/* Diseño propio. Las medidas reproducen la referencia, también sus saltos en móvil. */
:root { --blue:#3994d6; --pale:#f7f9fc; --text:#666; }
* { box-sizing:border-box; }
html,body,h1,h2,h3,h4,p,ul,li { margin:0; padding:0; }
body { color:var(--text); background:#fff; font:500 14px/1.7 'Open Sans',Arial,sans-serif; -webkit-font-smoothing:antialiased; }
body { padding-top:167px; }
a { color:var(--blue); text-decoration:none; }
button { font:inherit; cursor:pointer; }
a:focus-visible,button:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
h1,h2,h3,h4 { color:#333; font-weight:500; line-height:1; padding-bottom:10px; overflow-wrap:break-word; }
h1 { font-size:30px; } h2 { font-size:26px; } h3 { font-size:22px; } h4 { font-size:18px; }
h1 a,h2 a,h3 a,h4 a { color:inherit; }
strong { font-weight:700; }
p { padding-bottom:1em; } p:last-of-type { padding-bottom:0; }
img { max-width:100%; height:auto; vertical-align:middle; }
ul { list-style:none; }
.wrap,.row { width:80%; max-width:1080px; margin-inline:auto; }
.section { position:relative; padding:4% 0; background:#fff; }
.row { position:relative; padding:2% 0; }
.icon { display:inline-block; width:1em; height:1em; fill:currentColor; vertical-align:middle; flex-shrink:0; }
.topbar { background:var(--blue); color:#fff; position:fixed; top:0; left:0; width:100%; z-index:100; font-size:12px; line-height:12px; }
.topbar-inner { display:flex; align-items:center; height:31.3333px; padding:9px 0 10.3333px; gap:13px; font-weight:600; }
.topbar a { color:inherit; }
.topbar .icon { margin-right:3px; }
.topbar .social-links { margin-left:7px; gap:16px; }
.topbar .social-links .icon { font-size:14px; margin:0; }
.social-links { display:flex; align-items:center; gap:20px; }
.social-links a { line-height:1; }
.social-links a:hover { opacity:.7; }
.site-header { position:fixed; z-index:99; inset:31.3333px 0 auto; background:#fff; box-shadow:0 1px 0 rgba(0,0,0,.1); }
.header-inner { text-align:center; }
.logo-area { height:101px; display:flex; align-items:center; justify-content:center; transition:height .4s; }
.logo-area a { height:90%; display:block; transform:translateX(1.833px); }
.logo-area img { width:auto; height:100%; }
.desktop-nav { padding-top:3.3333px; line-height:0; }
.desktop-nav ul { display:inline-flex; gap:25.6458px; }
.desktop-nav a { display:block; font-size:16px; font-weight:600; line-height:14px; padding-bottom:18px; color:rgba(0,0,0,.6); }
.desktop-nav a[aria-current] { color:var(--blue); }
.desktop-nav a:hover { opacity:.7; }
.site-header.is-compact { box-shadow:0 0 7px rgba(0,0,0,.1); }
.site-header.is-compact .logo-area { height:70px; }
.site-header.is-compact .desktop-nav a { font-size:15px; }
.mobile-navigation { display:none; }
.hero { margin-bottom:-70px; }
.hero-title { margin-bottom:2.75%; text-align:center; }
.hero-title h1 { font:500 80px/1 'Libre Franklin',Helvetica,Arial,sans-serif; color:#000; padding-bottom:10px; }
.hero-subtitle { text-align:center; margin-bottom:2.75%; }
.hero-subtitle h2 { font-size:62px; }
.hero-rule { height:32px; position:relative; }
.hero-rule::before { content:''; position:absolute; inset:0 0 auto; border-top:1px solid var(--blue); }
.brand-section { padding-bottom:0; }
.brand-section .row { margin-top:-52px; }
.brand-link { display:block; text-align:center; line-height:0; }
.introduction { background:var(--pale); text-align:center; }
.introduction::before { content:''; position:absolute; inset:0; background: url("data:image/svg+xml,%3Csvg fill='%23fff' viewBox='0 0 1920 1440' preserveAspectRatio='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0,1440H1920V0H0ZM1734.14,50H1830a40,40,0,0,1,40,40V1350a40,40,0,0,1-40,40H405.31C1070.07,1390,1069.38,50,1734.14,50Z'/%3E%3C/svg%3E") center/100% 100% no-repeat; }
.introduction-title h2 { font:300 45px/1.4 'Libre Franklin',Helvetica,Arial,sans-serif; }
.introduction-description { padding-top:16px; }
.introduction-description h3 { font-size:24px; line-height:1.8; letter-spacing:4px; }
.audiences { text-align:center; }
.audiences .row>div:not(:last-child) { margin-bottom:2.75%; }
.audiences h3 { font-size:40px; letter-spacing:1px; }
.callout { position:relative; z-index:2; background:var(--blue); color:#fff; padding:54px 0 75px; margin-top:-2px; margin-bottom:-33px; box-shadow:0 12px 18px -6px rgba(0,0,0,.3); }
.callout-inner { width:80%; max-width:1080px; margin:auto; display:flex; justify-content:center; }
.callout-content { width:80%; max-width:800px; padding:10px; margin:20px; text-align:center; }
.callout h2 { font:500 55px/1 'Libre Franklin',Helvetica,Arial,sans-serif; color:#fff; }
.phone-button { display:inline-block; margin:20px 15px 0; color:#fff; padding:.3em .7em .3em 2em; font-size:46px; line-height:1.7; font-weight:700; letter-spacing:5px; position:relative; box-shadow:0 12px 18px -6px rgba(0,0,0,.3); transition:background .2s; }
.phone-button .icon { position:absolute; left:.7em; top:50%; transform:translateY(-50%); }
.phone-button:hover { background:rgba(255,255,255,.2); }
.columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:5.5%; }
.coverage { margin-top:-1px; background:var(--pale); }
.coverage>.row { padding:0; }
.map-column { padding:6.042% 0; }
.coverage-map { height:490px; }
.province-column { padding-top:97px; }
.province-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:11.64%; padding:5.82% 0; }
.province-row h2 { font-size:50px; text-align:center; }
.services,.companies { background:var(--pale); padding:26px 0 54px; margin-top:-53px; }
.service-item { display:grid; grid-template-columns:32px minmax(0,1fr); gap:15px; margin-bottom:5.82%; }
.service-item:last-child { margin-bottom:0; }
.service-item>.icon,.service-item>.icon-link { font-size:32px; line-height:0; color:var(--blue); }
.service-column:nth-child(2) .icon,.service-column:nth-child(2) .icon-link { color:#d72326; }
.service-item h4 { font:600 18px/1.8 'Libre Franklin',Helvetica,Arial,sans-serif; }
.section-title { text-align:center; }
.section-title h3 { font:500 30px/1 'Libre Franklin',Helvetica,Arial,sans-serif; }
.counter-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); column-gap:5.5%; }
.counter { width:100%; max-width:225px; margin:0 auto 30px; text-align:center; }
.counter-graphic { width:100%; padding-top:calc(98% + 4px); position:relative; margin-bottom:20px; }
.counter-graphic svg { position:absolute; inset:0; width:100%; height:100%; transform:rotate(-90deg); }
.counter-track { fill:none; stroke:#000; stroke-opacity:.1; stroke-width:5; }
.counter-progress { fill:none; stroke:var(--blue); stroke-width:5; stroke-linecap:round; stroke-dasharray:100; stroke-dashoffset:100; }
.counter-value { position:absolute; inset:0; display:grid; place-items:center; font-size:40px; line-height:1; }
.counter h3 { font:700 20px/1 'Libre Franklin',Helvetica,Arial,sans-serif; }
.note-offset { height:1px; transform:translateY(-66px); text-align:center; }
.description-headings h4 { text-align:center; letter-spacing:2px; line-height:1.6; }
.description-paragraphs { text-align:center; font-size:15px; letter-spacing:2px; line-height:23.8px; }
.contact { position:relative; padding:8vw 0 0; }
.contact-title { padding:38px 40px 20px; margin-top:-76px; background:var(--blue); text-align:center; }
.contact-title h4 { font:700 14px/1.7 'Libre Franklin',Helvetica,Arial,sans-serif; text-transform:uppercase; letter-spacing:.3em; color:#fff; }
.contact-title a { color:inherit; }
.contact-grid { background:var(--blue); display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); column-gap:5.5%; padding:20px 80px 45px; }
.contact-item { text-align:center; font:500 14px/1.8 Ubuntu,Helvetica,Arial,sans-serif; }
.contact-image { display:block; line-height:0; margin-bottom:30px; }
.contact-image img { width:48px; height:48px; }
.contact-item h4 { font:700 20px/1.4 'Libre Franklin',Helvetica,Arial,sans-serif; color:#fff; }
.contact-item:nth-child(2) h4 { font:700 27px/1.4 Ubuntu,Helvetica,Arial,sans-serif; }
.site-footer { background:#222; }
.footer-navigation { background:rgba(255,255,255,.05); }
.footer-links { padding-block:15px; line-height:23.8px; font-size:12px; }
.footer-links li { display:inline-block; font-size:14px; padding-right:22px; font-weight:600; }
.footer-links a { color:#bbb; font-size:12px; }
.footer-links a:hover { color:#fff; }
.footer-bottom { background:rgba(0,0,0,.32); padding:15px 0 5px; }
.footer-bottom-inner::after { content:''; display:table; clear:both; }
.footer-bottom .social-links { float:right; font-size:24px; height:29.8021px; gap:23.6458px; padding-left:20px; }
.footer-bottom .social-links a { color:#666; }
.footer-bottom .social-links a:hover { color:var(--blue); }
.footer-bottom .copyright { float:left; padding-bottom:10px; }
.copyright a { color:#666; font-weight:700; }
.whatsapp { position:fixed; z-index:110; bottom:15px; right:15px; display:flex; align-items:center; }
.whatsapp>span { background:#25d366; color:#fff; border-radius:10px; padding:0 16px; margin:0 10px; line-height:1.6; font-size:17px; }
.whatsapp>img { width:50px; height:50px; }
.back-to-top { position:fixed; z-index:120; right:0; bottom:125px; border:0; border-radius:5px 0 0 5px; padding:5px; width:40px; height:40px; background:rgba(0,0,0,.4); color:#fff; font-size:30px; line-height:30px; }
@media(min-width:1350px) { .section { padding-block:54px; } .row { padding-block:27px; } .brand-section { padding-bottom:0; } .introduction-description { padding-top:16px; } .coverage>.row { padding:0; } .services,.companies { padding:26px 0 54px; } .contact-title { padding:38px 40px 20px; } .contact-grid { padding:20px 80px 45px; } }
@media(max-width:980px) {
  body { padding-top:0; }
  .topbar,.site-header { position:relative; inset:auto; }
  .topbar-inner { justify-content:center; }
  .topbar .social-links { display:none; }
  .site-header { padding:20px 0; }
  .logo-area,.site-header.is-compact .logo-area { height:60px; }
  .logo-area a { height:100%; }
  .desktop-nav { display:none; }
  .mobile-navigation { display:block; position:relative; margin-top:20px; }
  .menu-toggle { border:0; border-radius:5px; color:#666; background:rgba(0,0,0,.05); width:100%; padding:5px 10px; line-height:23px; font-size:14px; font-weight:600; display:flex; align-items:center; justify-content:space-between; text-align:left; }
  .menu-toggle { height:33px; }
  .menu-toggle .icon { font-size:32px; height:32px; color:var(--blue); }
  .mobile-menu { position:absolute; top:53px; left:0; width:100%; padding:5%; background:#fff; border-top:3px solid var(--blue); box-shadow:0 2px 5px rgba(0,0,0,.1); text-align:left; }
  .mobile-menu a { display:block; padding:10px 5%; border-bottom:1px solid rgba(0,0,0,.03); color:#666; font-weight:600; line-height:23px; }
  .mobile-menu a:hover { background:rgba(0,0,0,.03); opacity:.7; }
  main { margin-top:-2.6667px; }
  .section { padding:50px 0; }
  .row { padding:30px 0; }
  .hero-title,.hero-subtitle,.audiences .row>div:not(:last-child) { margin-bottom:30px; }
  .brand-section { padding-bottom:0; }
  .introduction-description { padding-top:16px; }
  .columns { display:block; }
  .columns>div:not(:last-child) { margin-bottom:30px; }
  .coverage>.row { padding:0; }
  .map-column { padding:0; }
  .province-row { padding:30px 0; column-gap:5.5%; }
  .services,.companies { padding:26px 0 54px; }
  .service-item { margin-bottom:30px; }
  .counter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 5.5%; }
  .contact-title { padding:38px 40px 20px; }
  .contact-title h4 { font-size:12px; }
  .contact-grid { display:block; padding:20px 50px 50px; }
  .contact-item:not(:last-child) { margin-bottom:30px; }
  .contact-item h4,.contact-item:nth-child(2) h4 { font-size:14px; }
  .footer-bottom .copyright,.footer-bottom .social-links { float:none; text-align:center; }
  .footer-bottom .social-links { justify-content:center; margin-bottom:5px; }
}
@media(max-width:767px) {
  .introduction-title h2 { font-size:32px; }
  .phone-button { font-size:19px; }
  .province-row { display:block; }
  .province-row>div:not(:last-child) { margin-bottom:30px; }
  .contact-title,.contact-grid { padding:20px; }
  .contact-title h4 { font-size:10px; }
  .contact-item { font-size:12px; }
}
@media(min-width:768px) and (max-width:980px) {
  .topbar-inner { justify-content:flex-start; }
  .topbar .social-links { display:flex; }
  main { margin-top:-1.3229px; }
}
@media(max-width:479px) { .counter-grid { display:block; } .counter-grid .counter:not(:last-child) { margin-bottom:60px; } .callout-content { width:80%; } }
@media(prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }
