:root {
  --koi-color-marca: #1a1a1a;
  --koi-color-fondo: #ffffff;
  --koi-max-ancho: 1200px;
}

/* Gendarmes de Seguridad — chrome sitewide (nav/footer/WhatsApp/modal), usado
   en TODAS las páginas (no solo el Home), por eso vive en base.css y no en
   front-page.css. Paleta/tipografía viene de final-1.html (diseño aprobado). */
:root{
  --navy:#000919; --navy2:#001D3F; --blue:#0A6ED3; --blue-hl:#4da3ff; --blue-acc:#5b9be0;
  --orange:#F26522; --gold:#E6B23E; --utility:#c9dcf0; --light-blue:#eaf2fb; --muted-dark:#c9dcf0; --muted-dark2:#8fa8c9;
  --muted-light:#5c6b80; --border-dark:rgba(255,255,255,0.14); --border-light:#e2e8f0;
}
.gsl *{box-sizing:border-box;}
html{scroll-behavior:smooth;}
.gsl{margin:0;background:#fff;font-family:'IBM Plex Sans',sans-serif;color:var(--navy);}
.gsl a{color:var(--blue);text-decoration:none;}
.gsl a:hover{color:var(--blue-acc);}
.gsl button{font-family:inherit;}
.gsl input{font-family:inherit;}
.gsl input::placeholder{color:#8fa8c9;}
.gsl img{max-width:100%;}
@keyframes pulseDot{0%,100%{opacity:1;}50%{opacity:.3;}}
@keyframes fadeUp{0%{opacity:0;transform:translateY(10px);}100%{opacity:1;transform:translateY(0);}}

/* Utility bar */
.utility-bar{background:var(--utility);padding:8px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;}
.utility-bar .social{display:flex;align-items:center;gap:14px;}
.utility-bar .social a{display:flex;}
.utility-bar .links{display:flex;align-items:center;gap:22px;}
.utility-bar .links a{color:var(--navy2);font-size:12.5px;font-weight:500;}
@media (max-width:600px){ .utility-bar .links{gap:12px;} }
@media (max-width:480px){ .utility-bar{padding:8px 14px;} .utility-bar .links a:nth-child(2){display:none;} }

/* Nav */
.nav-wrap{position:sticky;top:0;z-index:400;}
.nav-bar{background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-light);}
.nav-inner{max-width:1320px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 28px;}
@media (max-width:899px){ .nav-inner{padding:12px 18px;} }
.nav-inner img{height:46px;width:auto;display:block;}
@media (max-width:899px){ .nav-inner img{height:38px;} }
.nav-links{display:flex;align-items:center;gap:30px;}
.nav-links a{font-size:14px;font-weight:500;color:var(--navy);}
.nav-links a.active{color:var(--blue);font-weight:600;}
/* Servicios despliega la lista de servicios (hover, foco o toque). */
.nav-drop{position:relative;}
.nav-drop > a{display:inline-flex;align-items:center;gap:5px;}
.nav-drop-menu{position:absolute;top:100%;left:50%;transform:translate(-50%,6px);min-width:260px;padding:10px;margin-top:10px;
  background:#fff;border:1px solid var(--border-light);border-radius:10px;box-shadow:0 18px 40px rgba(0,29,63,.14);
  display:flex;flex-direction:column;opacity:0;visibility:hidden;transition:opacity .18s ease,transform .18s ease,visibility 0s .18s;}
.nav-drop-menu::before{content:"";position:absolute;left:0;right:0;top:-20px;height:20px;}
.nav-drop:hover .nav-drop-menu,.nav-drop:focus-within .nav-drop-menu{opacity:1;visibility:visible;transform:translate(-50%,0);transition:opacity .18s ease,transform .18s ease,visibility 0s;}
.gsl .nav-drop-menu a{padding:9px 12px;border-radius:6px;font-size:14px;font-weight:500;color:var(--navy);white-space:nowrap;}
.gsl .nav-drop-menu a:hover,.gsl .nav-drop-menu a:focus-visible{background:var(--light-blue);color:var(--blue);}
a.btn-cotizar{display:inline-flex;align-items:center;gap:8px;background:var(--blue);color:#fff;font-weight:600;
  font-size:13.5px;padding:11px 20px;border-radius:4px;white-space:nowrap;}
.pulse-dot{width:6px;height:6px;border-radius:50%;background:#fff;animation:pulseDot 1.6s infinite;display:inline-block;}
.burger{background:rgba(10,110,211,.1);border:none;border-radius:4px;width:38px;height:38px;
  display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;}
.mobile-menu{display:none;flex-direction:column;gap:2px;padding:0 18px 16px;}
.mobile-menu.open{display:flex;}
.mobile-menu a{color:var(--navy);font-size:15px;padding:10px 0;font-weight:500;}
.gsl .mobile-menu a.mobile-sub{font-size:14px;padding:7px 0 7px 16px;color:var(--muted-light);border-left:2px solid var(--border-light);}

@media (min-width:900px){ .mobile-only{display:none !important;} }
@media (max-width:899px){ .desktop-only{display:none !important;} }

/* Footer (siempre claro) */
.footer-band{background:#fff;}
.footer-outer{max-width:1320px;margin:0 auto;padding:0 28px;}
.footer-inner{border-top:1px solid var(--border-light);padding:48px 0 26px;color:var(--navy);}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:36px;margin-bottom:32px;}
@media (max-width:899px){ .footer-grid{grid-template-columns:1fr;gap:28px;} }
.footer-grid img{height:52px;width:auto;margin-bottom:16px;display:block;}
.footer-grid p.desc{color:var(--muted-light);font-size:13px;line-height:1.6;max-width:280px;margin:0;}
.footer-grid a.mail{display:inline-block;margin-top:12px;color:var(--blue);font-size:13.5px;}
.footer-col-title{font-weight:700;font-size:13.5px;margin-bottom:14px;}
.footer-links{display:flex;flex-direction:column;gap:10px;}
.footer-links a{color:var(--muted-light);font-size:13.5px;}
.sedes-block{border-top:1px solid var(--border-light);padding-top:24px;margin-bottom:24px;}
.sedes-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:18px;}
/* En 2 columnas cada columna fluye sola: una dirección larga no abre hueco en la otra. */
@media (max-width:899px){ .sedes-grid{display:block;column-count:2;column-gap:18px;} .sedes-grid > div{break-inside:avoid;margin-bottom:18px;} }
.sede-city{font-weight:700;font-size:13px;margin-bottom:4px;}
.sede-addr,.sede-phone{color:var(--muted-light);font-size:12.5px;line-height:1.5;}
.footer-bottom{border-top:1px solid var(--border-light);padding-top:18px;display:flex;justify-content:space-between;
  flex-wrap:wrap;gap:10px;color:#8fa8c9;font-size:12px;}

/* WhatsApp float */
.wa-float{position:fixed;bottom:26px;right:26px;z-index:300;width:56px;height:56px;}
.wa-item{position:absolute;bottom:28px;right:28px;width:46px;height:46px;margin:-23px;border-radius:50%;
  background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(0,0,0,.3);
  z-index:4;transition:transform .35s cubic-bezier(.34,1.56,.64,1),opacity .25s ease;
  transform:translate(0,0) scale(.3);opacity:0;pointer-events:none;}
.wa-float.open .wa-item{opacity:1;pointer-events:auto;}
.wa-float.open .wa-item.i2{transform:translate(0,-70px) scale(1);}
.wa-float.open .wa-item.i1{transform:translate(0,-128px) scale(1);transition-delay:.05s;}
.wa-float.open .wa-item.i0{transform:translate(0,-186px) scale(1);transition-delay:.1s;}
.wa-item.wa-catus{background:var(--orange);}
.wa-toggle{position:absolute;bottom:0;right:0;width:56px;height:56px;border-radius:50%;background:var(--blue);
  border:none;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(10,110,211,.45);
  cursor:pointer;z-index:5;}
.wa-toggle .wa-ico-close{display:none;}
.wa-float.open .wa-toggle .wa-ico-msg{display:none;}
.wa-float.open .wa-toggle .wa-ico-close{display:block;}

/* Call modal */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,9,25,.45);z-index:500;}
.modal-overlay.open{display:block;}
.modal-box{position:fixed;bottom:96px;right:26px;background:#fff;border-radius:8px;padding:28px;max-width:340px;
  width:calc(100% - 40px);box-shadow:0 20px 50px rgba(0,0,0,.35);animation:fadeUp .25s ease;color:var(--navy);}
.modal-close{position:absolute;top:14px;right:14px;background:#f2f4f7;border:none;width:30px;height:30px;
  border-radius:4px;cursor:pointer;color:#65636f;font-size:16px;}
.modal-eyebrow{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.1em;color:var(--blue);margin-bottom:10px;}
.modal-box h3{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:22px;margin:0 0 16px;}
.lead-form{display:flex;flex-direction:column;gap:10px;}
.modal-lead{font-size:14px;line-height:1.55;color:#4a5a70;margin:-6px 0 16px;}
.lead-form input[type=text],.lead-form input[type=tel]{width:100%;box-sizing:border-box;padding:12px 14px;border-radius:4px;border:1px solid #d8e2ee;background:#f7f9fc;
  color:var(--navy);font-size:16px;}
.lead-error{font-size:13px;font-weight:600;color:#d12f2f;min-height:1em;}
.lead-form button:disabled{opacity:.6;cursor:default;}
@media (max-height:640px){ .modal-box{bottom:16px;max-height:calc(100vh - 32px);overflow:auto;} }

/* Casilla de autorización de datos, compartida por todos los formularios. */
.gsl-check{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;line-height:1.5;color:#4a5a70;text-align:left;cursor:pointer;}
.gsl .gsl-check input[type=checkbox]{flex:0 0 auto;width:18px;height:18px;min-width:18px;padding:0;margin:1px 0 0;accent-color:var(--blue);box-shadow:none;}
.gsl .gsl-check a{color:var(--blue);text-decoration:underline;}
.lead-form button{background:var(--blue);color:#fff;font-weight:600;font-size:14.5px;padding:13px;border:none;
  border-radius:4px;cursor:pointer;}
.lead-success{display:none;background:var(--light-blue);border-radius:6px;padding:16px;font-weight:600;font-size:14px;}
.lead-success.show{display:block;}

.koi-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 32px;
  max-width: var(--koi-max-ancho);
  margin: 0 auto;
}

.koi-nav {
  list-style: none;
  display: flex;
  gap: 24px;
  margin: 0;
  padding: 0;
}

.koi-nav a {
  text-decoration: none;
}

.koi-main {
  max-width: var(--koi-max-ancho);
  margin: 0 auto;
  padding: 32px;
}

.koi-footer {
  padding: 32px;
  text-align: center;
  border-top: 1px solid #eee;
  margin-top: 48px;
}

.koi-footer__nav {
  margin-bottom: 12px;
}

.koi-bienvenida {
  text-align: center;
  padding: 80px 20px;
}
