﻿/* vietnamese */
/* latin-ext */
/* latin */
@font-face {
  font-family: 'Barlow Semi Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/barlow-semi-condensed-600.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
/* latin-ext */
/* latin */
@font-face {
  font-family: 'Barlow Semi Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/barlow-semi-condensed-700.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
/* latin-ext */
/* latin */
@font-face {
  font-family: 'Barlow Semi Condensed';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../fonts/barlow-semi-condensed-800.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
/* cyrillic */
/* greek-ext */
/* greek */
/* vietnamese */
/* latin-ext */
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/inter-400.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
/* cyrillic */
/* greek-ext */
/* greek */
/* vietnamese */
/* latin-ext */
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/inter-500.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
/* cyrillic */
/* greek-ext */
/* greek */
/* vietnamese */
/* latin-ext */
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/inter-600.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
/* cyrillic */
/* greek-ext */
/* greek */
/* vietnamese */
/* latin-ext */
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/inter-700.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

body{margin:0;background:#fff;}
  @keyframes fadeInUp{from{opacity:0;transform:translateY(28px);}to{opacity:1;transform:translateY(0);}}
  @keyframes heroIn{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}
  @keyframes pulseDot{0%{box-shadow:0 0 0 0 rgba(47,126,166,0.55);}70%{box-shadow:0 0 0 12px rgba(47,126,166,0);}100%{box-shadow:0 0 0 0 rgba(47,126,166,0);}}
  a{color:#2f7ea6;text-decoration:none;}
  a:hover{color:#5aa8c9;}

section[id] { scroll-margin-top: 76px; }

/* Microtransiciones */
a, button { transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease; }
nav a[href="#contacto"]:hover, #form-contacto button[type="submit"]:hover, #form-contacto a[href="#contacto"]:hover { transform: translateY(-1px); }
img[style*="object-fit:cover"] { transition: transform 0.4s ease; }
@media (hover: hover) and (pointer: fine) {
  #mapa-cobertura:hover .map-chip { opacity: 1; }
  div[style*="overflow:hidden"] > img[style*="object-fit:cover"]:hover { transform: scale(1.03); }
}
#mapa-cobertura[data-open] .map-chip { opacity: 1; }

/* Mapa: iluminación progresiva, pulsos y conexiones */
#mapa-anim .map-reg { opacity: 0; pointer-events: auto; transition: opacity 0.3s ease; }
#mapa-anim .map-ln { stroke: #7fb6d4; stroke-width: 1; opacity: 0; stroke-dasharray: 1; stroke-dashoffset: 1; }
#mapa-anim .map-pt { fill: #cfe9f7; opacity: 0; transform-box: fill-box; transform-origin: center; }
#mapa-cobertura[data-anim] .map-reg { animation: regIn 1.1s ease forwards var(--d), regPulse 8s ease-in-out infinite alternate calc(var(--d) + 1.2s); }
#mapa-cobertura[data-anim] .map-ln { animation: lnDraw 1.1s ease forwards var(--d); }
#mapa-cobertura[data-anim] .map-pt { animation: ptIn 0.5s ease forwards var(--d), ptPulse var(--p) ease-in-out infinite alternate calc(var(--d) + 0.5s); }
#mapa-cobertura[data-anim] .map-reg:hover { opacity: 0.24 !important; animation-play-state: paused; }
@keyframes regIn { from { opacity: 0; } to { opacity: 0.12; } }
@keyframes regPulse { from { opacity: 0.09; } to { opacity: 0.16; } }
@keyframes lnDraw { from { opacity: 0; stroke-dashoffset: 1; } to { opacity: 0.45; stroke-dashoffset: 0; } }
@keyframes ptIn { from { opacity: 0; transform: scale(0.6); } to { opacity: 0.9; transform: scale(1); } }
@keyframes ptPulse { from { opacity: 0.55; transform: scale(0.92); } to { opacity: 1; transform: scale(1.12); } }

@media (prefers-reduced-motion: reduce) {
  a, button, img[style*="object-fit:cover"] { transition-duration: 0.01s !important; transform: none !important; }
  #mapa-cobertura[data-anim] .map-reg, #mapa-cobertura[data-anim] .map-ln, #mapa-cobertura[data-anim] .map-pt { animation: none !important; }
  #mapa-cobertura[data-anim] .map-reg { opacity: 0.12; }
  #mapa-cobertura[data-anim] .map-ln { opacity: 0.45; stroke-dashoffset: 0; }
  #mapa-cobertura[data-anim] .map-pt { opacity: 0.9; }
}
#form-contacto select:required:invalid { color: #5b6b7a; }
#form-contacto select option { color: #1b232c; background-color: #fff; }
#form-contacto select option:disabled { color: #8592a0; }
#form-contacto input:focus, #form-contacto select:focus, #form-contacto textarea:focus { outline: 2px solid #2f7ea6; outline-offset: 1px; border-color: #2f7ea6; }
#form-contacto button:focus-visible, a:focus-visible { outline: 2px solid #2f7ea6; outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
  .agenda-modal-panel { transition: none !important; }
}
.agenda-modal button:focus-visible, .agenda-day-btn:focus-visible, .agenda-slot-btn:focus-visible { outline: 2px solid #2f7ea6; outline-offset: 2px; }
@media (max-width: 640px) {
  #form-contacto { grid-template-columns: 1fr !important; }
  #form-contacto > * { grid-column: auto !important; width: 100%; }
  #agenda-days { grid-template-columns: repeat(3,1fr) !important; }
}

/* ====================================================================
   Estilos propios de producción (menú, hover, carrusel, fab, formulario)
   ==================================================================== */

/* ====== Variables y base ====== */
:root{
  --navy:#12345f; --navy-dark:#0a2440; --gold:#2f7ea6; --gold-light:#5aa8c9;
  --gray:#f3f5f7; --ink:#1b232c; --sub:#5b6b7a;
}
html{ scroll-behavior:smooth; }
body{
  font-family:'Inter',sans-serif; color:var(--ink); background:#fff;
  position:relative; overflow-x:hidden;
}
img{ max-width:100%; }

/* ====== Header / navegación ====== */
.site-nav{ display:flex; }
.hamburger-btn{ display:none; }
.mobile-menu{ display:none; }
.mobile-menu.is-open{ display:flex; }
@media (max-width: 1180px){
  .site-nav{ display:none; }
  .hamburger-btn{ display:flex; }
}
@media (min-width: 1181px){
  .hamburger-btn{ display:none; }
}

/* ====== Estados de hover (sustituyen al framework de prototipo) ====== */
.hov-blue-text:hover{ color:#5aa8c9; }
.hov-gold-bg:hover{ background:#5aa8c9; }
.hov-blue-outline:hover{ border-color:#2f7ea6; color:#2f7ea6; }
.hov-blue-outline-light:hover{ border-color:#5aa8c9; color:#5aa8c9; }
.hov-agenda-btn:hover{ border-color:#7fc0dd; color:#7fc0dd; box-shadow:0 0 0 3px rgba(90,168,201,0.18); }
.hov-blue-outline:hover{ box-shadow:0 0 0 3px rgba(47,126,166,0.12); }
.hov-gold-bg:hover{ box-shadow:0 0 0 3px rgba(47,126,166,0.18); }
.svc-card{ transition:box-shadow 0.3s ease, transform 0.3s ease; }
.svc-card:hover{ box-shadow:0 18px 34px rgba(15,42,74,0.16), 0 0 0 1px rgba(47,126,166,0.14); transform:translateY(-6px); }
.svc-card:hover .svc-body{ border-top-color:#2f7ea6; }
.hdr-dot{ animation: hdrDotPulse 3.6s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
@keyframes hdrDotPulse{ 0%,100%{ opacity:0.55; transform:scale(1); } 50%{ opacity:1; transform:scale(1.6); } }
@media (prefers-reduced-motion: reduce){
  .hdr-dot{ animation:none; opacity:0.8; }
}

/* ====== Tarjeta de contacto directo integrada (reemplaza al panel flotante) ====== */
.contact-method{ display:flex; align-items:center; gap:12px; padding:12px 0; border-bottom:1px solid rgba(255,255,255,0.08); color:#fff; transition:padding-left 0.18s ease; }
.contact-method:last-of-type{ border-bottom:none; }
.contact-method:hover{ padding-left:4px; }
.contact-method-icon{ flex:none; width:34px; height:34px; border-radius:2px; background:rgba(90,168,201,0.14); display:flex; align-items:center; justify-content:center; color:#7fc0dd; }
.contact-method-text{ display:flex; flex-direction:column; line-height:1.35; }
.contact-method-label{ font-size:11px; color:#9fb0bf; letter-spacing:0.03em; }
.contact-method-value{ font-size:14.5px; font-weight:600; color:#fff; }
.social-inline{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.social-inline a{ color:#9fb0bf; display:flex; align-items:center; justify-content:center; width:30px; height:30px; border:1px solid rgba(255,255,255,0.14); border-radius:2px; transition:color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease; }
.social-inline a:hover{ color:#7fc0dd; border-color:#5aa8c9; box-shadow:0 0 0 3px rgba(90,168,201,0.14); }

/* ====== Modal de agenda (demostración tipo Calendly) ====== */
.agenda-modal-panel{ animation: agendaModalIn 0.25s ease-out both; }
@keyframes agendaModalIn{ from{ opacity:0; transform:translateY(10px) scale(0.98); } to{ opacity:1; transform:translateY(0) scale(1); } }
@media (prefers-reduced-motion: reduce){
  .agenda-modal-panel{ animation:none; }
}
.agenda-day-btn, .agenda-slot-btn{ border:1px solid #dde2e6; background:#fff; color:var(--ink); border-radius:2px; padding:9px 6px; font-family:inherit; cursor:pointer; text-align:center; transition:border-color 0.16s ease, background 0.16s ease, box-shadow 0.16s ease; }
.agenda-day-btn:hover, .agenda-slot-btn:hover{ border-color:#5aa8c9; }
.agenda-day-btn.is-selected, .agenda-slot-btn.is-selected{ background:var(--navy); border-color:var(--navy); color:#fff; box-shadow:0 0 0 3px rgba(47,126,166,0.18); }
.agenda-slot-btn{ font-size:13.5px; font-weight:600; padding:10px 6px; }
#agenda-confirm-btn:disabled{ opacity:0.45; cursor:not-allowed; box-shadow:none !important; }

/* ====== Reveal al hacer scroll (antes vía IntersectionObserver inline) ====== */
[data-reveal]{ }
[data-reveal].is-visible{ opacity:1 !important; transform:none !important; }

/* ====== Relleno progresivo de los pasos de metodología ====== */
[data-step-fill].is-filled{
  background:#2f7ea6 !important; border-color:#2f7ea6 !important; color:#fff !important;
}

/* ====== Carrusel de casos de éxito ====== */
.cases-track{ }
.case-dot{ transition:background 0.2s ease; }

/* ====== Panel flotante de contacto ====== */
/* ====== Panel flotante de contacto: eliminado (ver bloque "Modal de agenda" y tarjeta de contacto integrada en #contacto) ====== */

/* ====== CTA fijo de cotización ====== */
.sticky-cta{ opacity:0; transform:translateY(16px); pointer-events:none; }
.sticky-cta.is-visible{ opacity:1; transform:translateY(0); pointer-events:auto; }

/* ====== Formulario: alertas ====== */
.form-alert{ display:none; }
.form-alert.is-visible{ display:block; }

/* ====== Certificaciones y especializaciones: tarjetas uniformes ====== */
.cert-card{
  border:1px solid #dde2e6; border-top:3px solid var(--gold); background:#fff;
  border-radius:2px; padding:22px 16px; min-height:150px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
  text-align:center;
}
.cert-card-label{
  font-size:12px; font-weight:700; color:var(--navy); letter-spacing:0.04em; line-height:1.4;
}
.cert-card-label span{
  display:block; font-size:11px; font-weight:500; color:var(--sub); letter-spacing:0; margin-top:4px;
}
.cert-card-label--text{ padding:8px 0; }

/* ====== Formulario: etiquetas visibles ====== */
.field-group{ display:flex; flex-direction:column; gap:5px; }
.field-label{ font-size:12px; font-weight:600; color:var(--sub); }

/* ====== Accesibilidad y utilidades ya definidas por el sitio (conservadas) ====== */
