html { scroll-behavior: smooth; }
body { margin: 0; background: #faf8f4; color: #23262f; font-family: Roboto, system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
a { color: #23262f; text-decoration: none; }
a:hover { color: #5a5f73; }
input, select, textarea, button { font-family: inherit; }
.btn-dark:hover { background: #3a3e4b; color: #faf8f4; }
.btn-lilac:hover { background: #e0daf0; color: #3b3560; }
.btn-submit:hover { background: #3d3762; }
.btn-submit:disabled { opacity: .6; cursor: progress; }
.field input:focus, .field select:focus, .field textarea:focus { box-shadow: 0 0 0 2px #9e94cf; }
.zone-tab { border: 0; cursor: pointer; padding: 10px 22px; border-radius: 999px; font-size: 15px; font-weight: 500; background: transparent; color: #6b7083; transition: background .2s; }
.zone-tab[aria-selected="true"] { background: #faf8f4; color: #23262f; box-shadow: 0 1px 3px rgba(35,38,47,0.08); }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
#floating-contact { position: fixed; right: 16px; bottom: 16px; z-index: 20; display: flex; flex-direction: column; gap: 10px; }
#floating-contact a { padding: 14px 20px; border-radius: 999px; font-weight: 500; color: #faf8f4; background: #23262f; box-shadow: 0 4px 16px rgba(35,38,47,.2); }
#floating-contact a.whatsapp { background: #1f7a4d; }
[hidden] { display: none !important; }

:is(a, button, input, select, textarea, [role="button"]):focus-visible { outline: 2px solid #5a4fa8 !important; outline-offset: 3px; }
@media (max-width: 639px) { .nav-link { display: none; } }

/* Coverage map */
#coverage-map svg { display: block; width: 100%; height: 100%; }
.map-sea { fill: #e3edf3; }
.zone-land { stroke: #e3edf3; stroke-width: 3; stroke-linejoin: round; cursor: pointer; transition: fill .3s ease; }
[data-zone="Norte"] .zone-land { fill: #d9eadf; }
[data-zone="Centro"] .zone-land { fill: #e6e1f4; }
[data-zone="Sur"] .zone-land { fill: #f5e2d4; }
[data-zone="Norte"].is-active .zone-land { fill: #9fc7ae; }
[data-zone="Centro"].is-active .zone-land { fill: #b3a8e0; }
[data-zone="Sur"].is-active .zone-land { fill: #efb994; }
.zone-land:hover { filter: brightness(.97); }
.zone-name { font: 500 15px Roboto, system-ui, sans-serif; fill: #6b7083; pointer-events: none; transition: fill .3s ease; }
.is-active .zone-name { fill: #23262f; }
.map-city { cursor: pointer; }
.city-dot { fill: #6b7083; stroke: #faf8f4; stroke-width: 2; transition: fill .3s ease, r .3s ease; }
.city-label { font: 400 12px Roboto, system-ui, sans-serif; fill: #4a4e5c; paint-order: stroke; stroke: #e3edf3; stroke-width: 3px; stroke-linejoin: round; pointer-events: none; }
.is-active .city-dot { fill: #23262f; }
.is-active .city-label { fill: #23262f; font-weight: 500; }
.hub-ring { fill: none; stroke: #23262f; stroke-width: 1.5; }
.hub-tag { font: 500 11px Roboto, system-ui, sans-serif; fill: #faf8f4; pointer-events: none; }
.hub-pill { fill: #23262f; }
.city-hit { fill: transparent; }
.zone-land:focus-visible { outline: none !important; stroke: #5a4fa8; stroke-width: 4; }
.map-city:focus-visible { outline: none !important; }
.map-city:focus-visible .city-dot { stroke: #5a4fa8; stroke-width: 4; }
@media (prefers-reduced-motion: reduce) {
  .zone-land, .zone-name, .city-dot { transition: none; }
}
@media (max-width: 639px) { #contact-header { overflow-wrap: anywhere; font-size: 13px; } }
@media (max-width: 639px) { .city-label { font-size: 17px; stroke-width: 4px; } .zone-name { font-size: 22px; } .hub-tag { font-size: 14px; } }
