/* =========================================================
   ANDES ENERGY · Escala estándar (se carga al final en todas las páginas)
   Título de sección 38px (móvil 28) · lead 20 (18,5) · título de tarjeta 22 (20)
   párrafo 18 (17) · notas 15 · etiquetas 13–14 · botones 18
   El hero del Home conserva su propio título y subtítulo.
   ========================================================= */

/* Páginas v59: Proyectos, Empresas, Nosotros, Perspectiva, artículos y Legal */
.pv:not(#_) h2{font-size:clamp(28px,2.7vw,38px)!important;line-height:1.15!important}
.pv:not(#_) .art-body h2{font-size:28px!important}
.pv:not(#_) h3:not(.regs h3){font-size:22px!important}
.pv:not(#_) .pvhero h1{line-height:1.08!important}
.pv:not(#_) .pvhero .lead{color:#e3f1f9!important;font-size:20px!important}
.pv:not(#_) .cta,.pv:not(#_) .routes a,.pv:not(#_) .plink{font-size:18px!important}
@media (max-width:640px){
  .pv:not(#_) h3:not(.regs h3){font-size:20px!important}
  .pv:not(#_) .art-body h2{font-size:24px!important}
  .pv:not(#_) .pvhero .lead{font-size:18.5px!important}
}

/* Terrenos: botones con el mismo peso y tamaño que el resto del sitio */
body.terrenos-page:not(#_) section :is(.tp-hero-cta,.tp-cta-btn,.rp-btn,.tf-btn):not(#_){font-size:18px!important;font-weight:700!important}
.terrenos-page:not(#_) .rp-hero-sub{color:#e3f1f9!important}

/* Home: ninguna etiqueta por debajo de 13px */
.home-redesign:not(#_) .lo-chip,
.home-redesign:not(#_) .route-live-head span,
.home-redesign:not(#_) .lo-regs h5{font-size:13px!important}

/* Enlaces a secciones (#ancla): el título queda visible debajo del menú fijo */
[id]:not(#_){scroll-margin-top:112px!important}
@media (max-width:820px){[id]:not(#_){scroll-margin-top:84px!important}}

/* Menú del celular: panel blanco de alto completo, fondo oscurecido y botón que cambia a X.
   El desenfoque del encabezado encerraba el panel dentro de la franja superior. */
@media (max-width:820px){
  .site-header:not(#_){-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
  .site-header.scrolled:not(#_),body.solid-header .site-header:not(#_){background:#fff!important}
  .home-light-hero .site-header:not(.scrolled):not(#_){background:rgba(255,255,255,.95)!important}
  .nav-menu:not(#_){inset:0 0 auto auto!important;height:100vh;height:100dvh;background:#fff!important;overflow-y:auto;padding-top:6.2rem!important}
  .nav-menu.open:not(#_){box-shadow:0 0 0 100vmax rgba(8,32,46,.55)!important}
  .nav-menu:not(#_) .nav-link{font-size:18px!important;padding:.9rem 0!important}
  .nav-menu:not(#_) .nav-predio{margin-top:.9rem;padding:.8rem 1.1rem!important;border:1px solid var(--line)!important;border-radius:999px;width:auto!important}
  .nav-toggle[aria-expanded="true"]:not(#_) span{background:var(--ink)!important}
  .nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7.6px) rotate(45deg)}
  .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
  .nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7.6px) rotate(-45deg)}
}

/* Siempre en modo claro: evita que el modo oscuro forzado de algunos celulares oscurezca el sitio */
:root{color-scheme:only light}
/* Logos de clientes: la fila se repite para que el carrusel muestre todos sin saltos */
.logo-track:not(#_){gap:0!important;animation:logo-loop 42s linear infinite!important}
.logo-track:not(#_)>span{margin-right:1rem}
@keyframes logo-loop{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.logo-track:not(#_){animation:none!important}}

/* Preguntas obligatorias: asterisco del mismo color del texto, aviso y marca de las que faltan */
.pv form#inv .q:not(.opt) .qlab::after{content:" *";color:inherit;font-weight:600}
.pv form#inv .qs::before{content:"Las preguntas con * son obligatorias.";grid-column:1/-1;font:500 15px/1.4 var(--f-b);color:var(--body)}
.pv form#inv .q.miss{border-color:var(--sky,#1098dd)!important;box-shadow:0 0 0 3px rgba(16,152,221,.18)!important}
.pv form#inv .q.miss .qt::after{content:"Responde esta pregunta";display:block;margin-top:4px;font:600 14px/1.3 var(--f-b);color:var(--ink)}
.tf-band :is([data-q="dep"],[data-f="nombre"],[data-f="telefono"]) .tf-txt::after{content:" *";color:inherit;font-weight:600}
.tf-band .tf-q.tf-miss{border-color:#1098dd!important;box-shadow:0 0 0 3px rgba(16,152,221,.18)}
.tf-band .tf-q.tf-miss .tf-txt::after{content:" * obligatoria"}
.tf-band .tf-req-note{margin:.9rem 0 0;font-size:15px;color:inherit;opacity:.85}

/* Menú del botón de WhatsApp: hoja inferior en el celular y tarjeta junto al botón en el computador */
.wa-menu{position:fixed;inset:0;z-index:300;background:rgba(8,32,46,.45);display:flex;align-items:flex-end;justify-content:flex-end;padding:0 20px 92px;opacity:0;transition:opacity .2s}
.wa-menu[hidden]{display:none!important}
.wa-menu.on{opacity:1}
.wa-menu-card{position:relative;max-height:calc(100vh - 110px);overflow-y:auto;width:min(360px,100%);background:#fff;border-radius:18px;padding:22px 20px 16px;box-shadow:0 18px 50px rgba(8,32,46,.28);transform:translateY(12px);transition:transform .2s}
.wa-menu.on .wa-menu-card{transform:none}
.wa-menu-t{font:700 20px/1.25 var(--f-display);color:var(--ink);margin:0 34px 4px 0}
.wa-menu-s{font:400 15px/1.45 var(--f-body);color:var(--body);margin:0 0 12px}
.wa-menu-l{display:grid;gap:8px}
.wa-menu-l a,.wa-menu-l button{width:100%;cursor:pointer;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border:1px solid #d7e7f1;border-radius:12px;font:600 16px/1.3 var(--f-body);color:var(--ink);text-decoration:none;background:#fff;transition:border-color .15s,background .15s}
.wa-menu-l :is(a,button) span{color:var(--sky)}
.wa-menu-l :is(a,button):hover,.wa-menu-l :is(a,button):focus-visible{border-color:var(--sky);background:var(--sky-tint,#e3f2fb);outline:none}
.wa-menu-x{position:absolute;top:12px;right:12px;width:34px;height:34px;border:0;border-radius:50%;background:#eef4f8;color:var(--ink);font:400 22px/1 var(--f-body);cursor:pointer}
.wa-volver{border:0;background:none;padding:0 0 8px;font:600 14px var(--f-body);color:var(--sky);cursor:pointer}
.wa-campos{display:grid;gap:10px;margin-bottom:10px}
.wa-c{display:grid;gap:4px;font:600 14px/1.3 var(--f-body);color:var(--ink)}
.wa-c input{font:400 16px var(--f-body);color:var(--ink);padding:11px 12px;border:1px solid #d7e7f1;border-radius:10px;background:#fff;width:100%;box-sizing:border-box}
.wa-c input:focus{outline:none;border-color:var(--sky);box-shadow:0 0 0 3px rgba(16,152,221,.15)}
.wa-c.miss input{border-color:var(--sky);box-shadow:0 0 0 3px rgba(16,152,221,.2)}
.wa-c.miss span::after{content:" · obligatorio";font-weight:400}
.wa-ok{display:flex;gap:8px;align-items:flex-start;font:400 13px/1.4 var(--f-body);color:var(--body);margin:2px 0 10px}
.wa-ok input{margin-top:2px;accent-color:var(--sky)}
.wa-ok a{color:var(--sky)}
.wa-err{font:600 14px/1.35 var(--f-body);color:var(--ink);margin:0 0 10px}
.wa-ir{display:flex;justify-content:center;gap:8px;padding:13px 16px;border-radius:12px;background:var(--sky);color:#fff!important;font:700 16px var(--f-body);text-decoration:none}
.wa-ir:hover{background:var(--sky-d,#0d7fbd)}
@media (max-width:640px){
  .wa-menu{padding:0;align-items:flex-end;justify-content:stretch}
  .wa-menu-card{width:100%;border-radius:20px 20px 0 0;padding:22px 16px calc(18px + env(safe-area-inset-bottom))}
}
@media (prefers-reduced-motion:reduce){.wa-menu,.wa-menu-card{transition:none}}

/* Datos de contacto en la autoevaluación de la home (oct 2026) */
.lo-contact{margin:1rem 0 .2rem}
.lo-contact-h{font:700 1rem/1.3 var(--f-d,inherit);color:var(--primary,#0b4a6b);margin:0 0 .55rem}
.lo-cgrid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.lo-cf{display:grid;gap:.4rem;padding:.8rem .9rem;border:1px solid var(--line,#dbe7ee);border-radius:var(--radius-sm,14px);background:#fff;transition:border-color .3s,box-shadow .3s}
.lo-cf span{font-size:.95rem;color:var(--ink,#0b2b3c)}
.lo-cf input{width:100%;border:1px solid var(--line,#dbe7ee);border-radius:999px;background:#f4f9fc;padding:.55rem .9rem;font:inherit;font-size:.95rem}
.lo-cf input:focus{outline:none;border-color:#1098dd;box-shadow:0 0 0 3px rgba(16,152,221,.15)}
.lo-cf.miss{border-color:#1098dd;box-shadow:0 0 0 3px rgba(16,152,221,.18)}
.lo-cf.miss span::after{content:" · obligatoria";font-weight:700}
@media (max-width:640px){.lo-cgrid{grid-template-columns:1fr}}

/* Conectamos: título de las tarjetas después del video */
.home-redesign .eco-conecta{margin:clamp(2.5rem,5vw,4rem) 0 0;color:var(--primary)!important;font-family:var(--f-display);font-size:var(--type-h2)!important;line-height:1.12}
.home-redesign .eco-conecta+.ecosystem-elements{margin-top:1.25rem}
/* Ruta (celular): texto completo con Ver más */
.route-more{display:none}
@media(max-width:700px){
  .route-stage.is-active{display:flex;flex-direction:column;justify-content:flex-end;min-height:340px}
  .route-stage.is-active .route-stage-content{position:relative;inset:auto;padding:5.5rem 1rem .95rem}
  .route-stage.is-active p{max-height:none;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:7;overflow:hidden}
  .route-stage.is-active.rs-open p{display:block;-webkit-line-clamp:unset}
  .route-stage.is-active.rs-long .route-more{display:inline-flex;align-items:center;gap:.35rem;margin-top:.6rem;padding:.35rem .9rem;border:1px solid rgba(255,255,255,.55);border-radius:999px;background:rgba(255,255,255,.14);color:#fff;font:600 .85rem/1.2 var(--f-body,inherit);cursor:pointer}
  .route-stage.is-active.rs-long .route-more::after{content:"";width:.45rem;height:.45rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px)}
  .route-stage.is-active.rs-open .route-more::after{transform:rotate(-135deg) translateY(-1px)}
}

/* Inicio · autoevaluación: municipio y vereda con lista para elegir (picker.js) */
.lo-q[hidden]{display:none!important}
.lo-q .lo-in{font:500 .92rem var(--f-body,"Hind Madurai",system-ui,sans-serif);color:var(--ink,#0b2c3e);border:1px solid var(--line,#dce7ee);border-radius:99px;padding:.45rem .95rem;background:var(--bg-soft,#f4f9fc);width:100%;min-width:0}
.lo-q .lo-in::placeholder{color:#8a99a1}
.lo-q .lo-in:focus{outline:none;border-color:#1098dd;box-shadow:0 0 0 3px rgba(16,152,221,.14);background:#fff}
.lo-q>.aep{width:220px;max-width:100%;min-width:0}
@media (max-width:640px){.lo-q>.aep{grid-column:2;width:100%}}

/* Menú de WhatsApp · Postular un predio: departamento, municipio y vereda */
.wa-c select.wa-sel{font:400 16px var(--f-body);color:var(--ink);padding:11px 12px;border:1px solid #d7e7f1;border-radius:10px;background:#fff;width:100%;box-sizing:border-box}
.wa-c select.wa-sel:focus{outline:none;border-color:var(--sky);box-shadow:0 0 0 3px rgba(16,152,221,.15)}
.wa-c.miss select.wa-sel{border-color:var(--sky);box-shadow:0 0 0 3px rgba(16,152,221,.2)}
.wa-c>.aep{width:100%}
.wa-c .aep-list{max-height:min(240px,45vh)}
