/* ==========================================================================
   Kiloverde · Sitio público (layouts/publico.php) · dueño: A2 Sitio y Marca
   Orden: cabecera · secciones compartidas · pie · cookies · páginas del sitio (prefijo s-) · compatibilidad
   Paleta: bosque #153A21 · hoja #67B346 · sol #F2B705 (≤10 %) · pizarra #4A5550 · marfil #FDFDFB
   ========================================================================== */

:root {
  --s-display: clamp(2.4rem, 1.35rem + 3.8vw, 4.1rem);
  --s-h2: clamp(1.85rem, 1.25rem + 2.3vw, 3rem);
  --s-lead: clamp(1.0625rem, 1rem + .35vw, 1.25rem);
  --s-seccion: clamp(4rem, 2.5rem + 6vw, 7.5rem);
  --s-linea-oscura: rgba(255, 255, 255, .12);
  --s-texto-oscuro: #CFE0C8;
}

/* ---------- Cabecera ---------- */
.cabecera { position: sticky; top: 0; z-index: 50; background: rgba(253, 253, 251, .9); backdrop-filter: saturate(1.5) blur(12px); -webkit-backdrop-filter: saturate(1.5) blur(12px); border-bottom: 1px solid rgba(21, 58, 33, .08); }
.cabecera .contenedor { display: flex; align-items: center; gap: var(--kv-e-4); min-height: 68px; }
.logo { display: inline-flex; align-items: center; flex: none; }
.logo img { height: 36px; width: auto; }
@media (min-width: 1100px) { .logo img { height: 42px; } .cabecera .contenedor { min-height: 76px; } }
.nav-principal { display: none; margin-left: auto; }
.nav-principal ul { display: flex; gap: .15rem; list-style: none; margin: 0; padding: 0; }
.nav-principal a { position: relative; display: inline-flex; align-items: center; min-height: 44px; padding: 0 .75rem; border-radius: var(--kv-radio-pill); color: var(--kv-bosque); font-weight: 500; font-size: .9375rem; text-decoration: none; transition: background var(--kv-transicion); }
.nav-principal a:hover { background: var(--kv-hoja-50); }
.nav-principal a[aria-current="page"] { font-weight: 600; }
.nav-principal a[aria-current="page"]::after { content: ""; position: absolute; left: .75rem; right: .75rem; bottom: 6px; height: 2px; border-radius: 2px; background: var(--kv-hoja); }
.acciones-cabecera { display: flex; align-items: center; gap: .5rem; margin-left: auto; }
.enlace-portal { display: none; }
.boton-menu { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid var(--kv-borde); background: #fff; border-radius: 12px; color: var(--kv-bosque); cursor: pointer; }
.acciones-cabecera .btn-peq { min-height: 44px; }
.cta-cabecera-texto-corto { display: inline; }
.cta-cabecera-texto-largo { display: none; }
@media (min-width: 480px) { .cta-cabecera-texto-corto { display: none; } .cta-cabecera-texto-largo { display: inline; } }
@media (min-width: 720px) { .enlace-portal { display: inline-flex; } }
@media (min-width: 1100px) {
  .nav-principal { display: block; }
  .acciones-cabecera { margin-left: var(--kv-e-3); }
  .boton-menu { display: none; }
}
.menu-movil { display: none; border-top: 1px solid var(--kv-borde); background: var(--kv-marfil); }
.menu-movil.abierto { display: block; }
.menu-movil ul { list-style: none; margin: 0; padding: var(--kv-e-3) var(--kv-canal) var(--kv-e-5); display: grid; gap: .15rem; }
.menu-movil a:not(.btn) { display: flex; align-items: center; min-height: 48px; padding: 0 .75rem; border-radius: var(--kv-radio-s); color: var(--kv-bosque); font-weight: 500; font-size: var(--kv-t-l); text-decoration: none; }
.menu-movil a:not(.btn):hover, .menu-movil a[aria-current="page"] { background: var(--kv-hoja-50); }
.menu-movil-acciones { display: grid; gap: .5rem; margin-top: var(--kv-e-3); }
@media (min-width: 1100px) { .menu-movil { display: none !important; } }

/* ---------- Secciones compartidas (núcleo y demás módulos) ---------- */
.seccion { padding: var(--kv-e-8) 0; }
.seccion-suave { background: var(--kv-fondo-suave); }
.seccion-oscura { background: var(--kv-bosque); color: #DCEBD5; }
.seccion-oscura h1, .seccion-oscura h2, .seccion-oscura h3 { color: #fff; }
.seccion-oscura a:not(.btn) { color: var(--kv-hoja-claro); }
.miga { font-size: var(--kv-t-s); margin: var(--kv-e-5) 0 0; color: var(--kv-pizarra-suave); }
.miga ol { list-style: none; display: flex; flex-wrap: wrap; gap: .35rem; padding: 0; margin: 0; }
.miga li + li::before { content: "/"; margin-right: .35rem; color: var(--kv-borde-fuerte); }

/* ---------- Pie ---------- */
.pie { background: var(--kv-bosque-900); color: #BFD3B8; padding: var(--kv-e-8) 0 var(--kv-e-5); font-size: var(--kv-t-s); position: relative; overflow: hidden; }
.pie::before { content: ""; position: absolute; inset: 0 0 auto; height: 1px; background: linear-gradient(90deg, transparent, rgba(143, 209, 111, .5), transparent); }
.pie a { color: #E4F0DE; text-decoration: none; }
.pie a:hover { color: #fff; text-decoration: underline; }
.pie h2 { color: #fff; font-size: var(--kv-t-s); letter-spacing: .08em; text-transform: uppercase; font-family: var(--kv-fuente-texto); font-weight: 600; margin-bottom: var(--kv-e-4); }
.pie-superior { display: grid; gap: var(--kv-e-7); }
@media (min-width: 960px) { .pie-superior { grid-template-columns: 1.1fr 2fr; } }
.pie-columnas { display: grid; gap: var(--kv-e-6) var(--kv-e-4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 140px), 1fr)); }
.logo-pie img { height: 40px; width: auto; margin-bottom: var(--kv-e-5); }
.pie ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .6rem; }
.pie .firma { font-family: var(--kv-fuente-titulos); color: #fff; font-weight: 600; font-size: var(--kv-t-xl); line-height: 1.3; margin-bottom: var(--kv-e-3); }
.pie-marca p:not(.firma) { max-width: 44ch; }
.redes { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: var(--kv-e-5); }
.redes a { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: rgba(255, 255, 255, .07); color: #fff; border: 1px solid rgba(255, 255, 255, .1); transition: background var(--kv-transicion); }
.redes a:hover { background: var(--kv-hoja); color: var(--kv-bosque); }
.enlace-boton { background: none; border: 0; padding: 0; font: inherit; color: #E4F0DE; cursor: pointer; text-align: left; min-height: 24px; }
.enlace-boton:hover { color: #fff; text-decoration: underline; }
.pie-legal { border-top: 1px solid var(--s-linea-oscura); margin-top: var(--kv-e-7); padding-top: var(--kv-e-5); display: flex; flex-wrap: wrap; gap: var(--kv-e-4) var(--kv-e-6); align-items: flex-start; justify-content: space-between; }
.pie-datos p { margin: 0 0 .35rem; color: #fff; }
.pie-datos-lista { display: flex !important; flex-wrap: wrap; gap: .35rem 1.25rem !important; }
.pie-datos-lista li { display: inline-flex; align-items: center; gap: .4rem; }
.pie-datos-lista .ico { color: var(--kv-hoja-claro); }
.pie-legal nav ul { display: flex; flex-wrap: wrap; gap: .35rem 1.25rem; }

/* ---------- Banner de cookies ---------- */
.cookies { position: fixed; z-index: 90; left: var(--kv-canal); right: var(--kv-canal); bottom: var(--kv-canal); display: flex; justify-content: flex-start; pointer-events: none; }
.cookies[hidden] { display: none; }
.cookies-caja { pointer-events: auto; width: 100%; max-width: 480px; background: #fff; border: 1px solid var(--kv-borde); border-radius: 16px; box-shadow: 0 24px 60px rgba(15, 42, 24, .22); padding: var(--kv-e-5); font-size: var(--kv-t-s); }
.cookies-titulo { font-size: var(--kv-t-l); margin: 0 0 .4rem; }
.cookies-caja p { margin: 0 0 var(--kv-e-4); }
.cookies-config { display: grid; gap: .6rem; padding: var(--kv-e-3) 0 var(--kv-e-4); border-top: 1px solid var(--kv-borde); }
.cookies-config[hidden], .cookies-botones [hidden] { display: none; }
.cookies-botones { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: flex-end; }
.cookies-botones .btn { min-height: 44px; flex: 1 1 auto; }
@media (min-width: 480px) { .cookies-botones .btn { flex: 0 0 auto; } }
/* G6 · UX 6: en escritorio el banner va a la DERECHA, lejos del formulario del hero (dirección), que está a la izquierda. */
@media (min-width: 900px) { .cookies { justify-content: flex-end; } .cookies-caja { max-width: 420px; } }

/* =========================================================================
   Páginas del sitio (prefijo s-)
   ========================================================================= */
.s-seccion { padding: var(--s-seccion) 0; position: relative; }
.s-seccion-blanca { background: #fff; }
.s-seccion-suave { background: var(--kv-fondo-suave); }
.s-seccion-oscura { background: var(--kv-bosque); color: var(--s-texto-oscuro); overflow: hidden; }
.s-seccion-oscura h2, .s-seccion-oscura h3 { color: #fff; }
.s-seccion + .s-seccion-blanca, .s-seccion-blanca + .s-seccion { border-top: 1px solid var(--kv-borde); }

.s-etiqueta { display: inline-flex; align-items: center; gap: .5rem; font: 600 var(--kv-t-xs)/1.4 var(--kv-fuente-texto); letter-spacing: .14em; text-transform: uppercase; color: var(--kv-hoja-texto); margin: 0 0 var(--kv-e-4); }
.s-etiqueta::before { content: ""; width: 18px; height: 2px; border-radius: 2px; background: var(--kv-hoja); }
.s-seccion-oscura .s-etiqueta, .s-hero .s-etiqueta, .s-cabecera-pagina .s-etiqueta { color: var(--kv-hoja-claro); }
.s-cabeza { max-width: 760px; margin-bottom: clamp(2.5rem, 1.5rem + 3vw, 4rem); }
.s-cabeza-centro { margin-left: auto; margin-right: auto; text-align: center; }
.s-cabeza-centro .s-etiqueta { justify-content: center; }
.s-cabeza h2, .s-h2 { font-size: var(--s-h2); letter-spacing: -.025em; line-height: 1.08; margin-bottom: var(--kv-e-4); }
.s-lead { font-size: var(--s-lead); line-height: 1.6; color: var(--kv-pizarra); max-width: 62ch; }
.s-seccion-oscura .s-lead { color: var(--s-texto-oscuro); }
.s-cabeza-centro .s-lead { margin-left: auto; margin-right: auto; }
.s-acento { color: var(--kv-hoja-texto); }
.s-seccion-oscura .s-acento, .s-hero .s-acento, .s-cabecera-pagina .s-acento, .s-cta .s-acento { color: var(--kv-hoja-claro); }
.s-nota { font-size: var(--kv-t-xs); color: var(--kv-pizarra-suave); line-height: 1.5; }
.s-seccion-oscura .s-nota { color: #A9C3A0; }
.s-ilustrativo { display: inline-flex; align-items: center; gap: .4rem; padding: .25rem .65rem; border-radius: var(--kv-radio-pill); background: var(--kv-sol-50); color: var(--kv-alerta); border: 1px solid #F5DF96; font: 600 .75rem/1.4 var(--kv-fuente-texto); letter-spacing: .01em; white-space: nowrap; }
.s-ilustrativo .ico { flex: none; }

/* ---------- Hero del inicio ---------- */
.s-hero { position: relative; background: var(--kv-bosque); color: var(--s-texto-oscuro); overflow: hidden; padding: clamp(3rem, 2rem + 5vw, 6rem) 0 clamp(7rem, 5rem + 6vw, 10rem); isolation: isolate; }
.s-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: .5;
  background-image: linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px);
  background-size: 56px 56px; mask-image: radial-gradient(ellipse 80% 70% at 70% 40%, #000 30%, transparent 75%); -webkit-mask-image: radial-gradient(ellipse 80% 70% at 70% 40%, #000 30%, transparent 75%); }
.s-hero::after { content: ""; position: absolute; z-index: -1; width: 720px; height: 720px; right: -220px; top: -260px; border-radius: 50%; background: radial-gradient(circle, rgba(103, 179, 70, .32), rgba(103, 179, 70, 0) 65%); }
.s-hero-rejilla { display: grid; gap: clamp(2.5rem, 1rem + 4vw, 4rem); align-items: center; }
@media (min-width: 1000px) { .s-hero-rejilla { grid-template-columns: 1.05fr .95fr; } }
.s-hero h1 { color: #fff; font-size: var(--s-display); letter-spacing: -.035em; line-height: 1.02; margin: 0 0 var(--kv-e-5); max-width: 14ch; }
.s-hero h1 .s-acento { display: block; }
.s-hero-bajada { font-size: var(--s-lead); max-width: 50ch; color: var(--s-texto-oscuro); margin-bottom: var(--kv-e-6); }
.s-hero .grupo-botones .btn { min-height: 52px; padding: .8rem 1.6rem; font-size: var(--kv-t-m); }
.btn-contorno-claro { --_bg: transparent; --_fg: #fff; --_borde: rgba(255, 255, 255, .45); }
.btn-contorno-claro:hover { --_bg: rgba(255, 255, 255, .08); --_fg: #fff; --_borde: #fff; }
.s-hero-confianza { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin: var(--kv-e-6) 0 0; padding: 0; list-style: none; font-size: var(--kv-t-s); color: #B9D1B0; }
.s-hero-confianza li { display: inline-flex; align-items: center; gap: .45rem; }
.s-hero-confianza .ico { color: var(--kv-hoja-claro); }
.s-hero-visual { position: relative; }
.s-hero-visual > svg { width: 100%; height: auto; display: block; filter: drop-shadow(0 30px 60px rgba(0, 0, 0, .25)); }
.s-flotante { position: absolute; background: rgba(255, 255, 255, .97); color: var(--kv-pizarra); border-radius: 14px; box-shadow: 0 18px 40px rgba(0, 0, 0, .22); padding: .8rem 1rem; font-size: var(--kv-t-xs); line-height: 1.35; min-width: 180px; }
.s-flotante strong { display: block; font: 700 1.35rem/1.15 var(--kv-fuente-titulos); color: var(--kv-bosque); margin: .15rem 0; letter-spacing: -.01em; }
.s-flotante .s-punto { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--kv-hoja); margin-right: .35rem; box-shadow: 0 0 0 3px rgba(103, 179, 70, .25); }
.s-flotante-a { right: 0; bottom: 6%; }
.s-flotante-b { left: 0; top: 10%; }
@media (max-width: 560px) { .s-hero-visual { display: flex; flex-wrap: wrap; gap: .5rem; } .s-hero-visual > svg { flex: 1 1 100%; } .s-flotante { position: static; flex: 1 1 0; min-width: 0; padding: .65rem .75rem; } .s-flotante strong { font-size: 1.05rem; } }

/* ---------- Franja de cifras (sobre el hero) ---------- */
.s-cifras-envoltura { margin-top: calc(-1 * clamp(4.5rem, 3rem + 4vw, 6.5rem)); position: relative; z-index: 3; }
.s-cifras { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); background: #fff; border: 1px solid var(--kv-borde); border-radius: 20px; box-shadow: 0 24px 60px rgba(21, 58, 33, .12); overflow: hidden; }
@media (min-width: 900px) { .s-cifras { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.s-cifra { padding: clamp(1.25rem, 1rem + 1vw, 2rem); border-right: 1px solid var(--kv-borde); border-bottom: 1px solid var(--kv-borde); }
.s-cifra:nth-child(2n) { border-right: 0; }
.s-cifra:nth-last-child(-n + 2) { border-bottom: 0; }
@media (min-width: 900px) { .s-cifra { border-bottom: 0; border-right: 1px solid var(--kv-borde); } .s-cifra:nth-child(2n) { border-right: 1px solid var(--kv-borde); } .s-cifra:last-child { border-right: 0; } }
.s-cifra-valor { font: 700 clamp(1.4rem, 1rem + 1.6vw, 2.25rem)/1.1 var(--kv-fuente-titulos); color: var(--kv-bosque); letter-spacing: -.03em; margin: 0 0 .5rem; font-variant-numeric: tabular-nums; }
.s-cifra-etiqueta { font-size: var(--kv-t-s); color: var(--kv-pizarra-suave); margin: 0; line-height: 1.45; }
.s-cifra:first-child .s-cifra-valor::after { content: ""; display: block; width: 28px; height: 4px; border-radius: 2px; background: var(--kv-sol); margin-top: .6rem; }

/* ---------- Pasos ---------- */
.s-pasos { display: grid; gap: var(--kv-e-4); counter-reset: paso; list-style: none; margin: 0; padding: 0; }
@media (min-width: 700px) { .s-pasos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .s-pasos { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.s-paso { position: relative; background: #fff; border: 1px solid var(--kv-borde); border-radius: 18px; padding: var(--kv-e-6) var(--kv-e-5) var(--kv-e-5); transition: border-color var(--kv-transicion), box-shadow var(--kv-transicion), transform var(--kv-transicion); }
.s-paso:hover { border-color: var(--kv-hoja); box-shadow: var(--kv-sombra-2); transform: translateY(-2px); }
.s-paso-num { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--kv-bosque); color: #fff; font: 700 1rem/1 var(--kv-fuente-titulos); margin-bottom: var(--kv-e-5); }
.s-paso h3 { font-size: var(--kv-t-l); margin-bottom: .5rem; }
.s-paso p { margin: 0; font-size: var(--kv-t-s); line-height: 1.6; }
.s-paso-dato { display: inline-block; margin-top: var(--kv-e-4); font: 600 var(--kv-t-xs)/1.4 var(--kv-fuente-texto); color: var(--kv-hoja-texto); background: var(--kv-hoja-50); padding: .25rem .6rem; border-radius: var(--kv-radio-pill); }

/* ---------- Dividido (texto + visual) ---------- */
.s-dividido { display: grid; gap: clamp(2.5rem, 1rem + 4vw, 5rem); align-items: center; }
@media (min-width: 960px) { .s-dividido { grid-template-columns: 1fr 1fr; } .s-dividido-invertido > :first-child { order: 2; } }
.s-lista-check { list-style: none; padding: 0; margin: var(--kv-e-5) 0 0; display: grid; gap: .85rem; }
.s-lista-check li { display: grid; grid-template-columns: 24px 1fr; gap: .75rem; align-items: start; }
.s-lista-check li > .ico { margin-top: .2rem; color: var(--kv-hoja-texto); }
.s-seccion-oscura .s-lista-check li > .ico { color: var(--kv-hoja-claro); }
.s-lista-check strong { color: var(--kv-bosque); display: block; }
.s-seccion-oscura .s-lista-check strong { color: #fff; }
.s-visual-marco { position: relative; background: #fff; border: 1px solid var(--kv-borde); border-radius: 24px; padding: clamp(1rem, .5rem + 2vw, 2rem); box-shadow: 0 30px 70px rgba(21, 58, 33, .10); }
.s-visual-marco > svg { display: block; width: 100%; height: auto; }
.s-visual-pie { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; align-items: center; margin-top: var(--kv-e-3); }

/* ---------- Tarjetas de producto / servicios ---------- */
.s-dos { display: grid; gap: var(--kv-e-5); }
@media (min-width: 900px) { .s-dos { grid-template-columns: 1.15fr .85fr; } }
.s-producto { position: relative; border-radius: 24px; padding: clamp(1.75rem, 1rem + 2.5vw, 3rem); overflow: hidden; display: flex; flex-direction: column; gap: var(--kv-e-3); min-height: 100%; }
.s-producto h3 { font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.1rem); letter-spacing: -.02em; margin: 0; }
.s-producto p { margin: 0; }
.s-producto .grupo-botones { margin-top: auto; padding-top: var(--kv-e-4); }
.s-producto-oscuro { background: var(--kv-bosque); color: var(--s-texto-oscuro); }
.s-producto-oscuro h3 { color: #fff; }
.s-producto-oscuro::after { content: ""; position: absolute; right: -120px; bottom: -160px; width: 380px; height: 380px; border-radius: 50%; background: radial-gradient(circle, rgba(103, 179, 70, .35), transparent 65%); }
.s-producto-claro { background: #fff; border: 1px solid var(--kv-borde); }
.s-chips { display: flex; flex-wrap: wrap; gap: .45rem; list-style: none; margin: var(--kv-e-2) 0 0; padding: 0; }
.s-chips li { font-size: var(--kv-t-xs); font-weight: 500; padding: .35rem .7rem; border-radius: var(--kv-radio-pill); background: var(--kv-fondo-suave); color: var(--kv-bosque); border: 1px solid var(--kv-borde); }
.s-producto-oscuro .s-chips li { background: rgba(255, 255, 255, .07); color: #E4F0DE; border-color: rgba(255, 255, 255, .12); }
.s-rejilla-tarjetas { display: grid; gap: var(--kv-e-4); grid-template-columns: repeat(auto-fill, minmax(min(100%, 270px), 1fr)); }
.s-tarjeta { background: #fff; border: 1px solid var(--kv-borde); border-radius: 18px; padding: var(--kv-e-5); transition: border-color var(--kv-transicion), box-shadow var(--kv-transicion); }
.s-tarjeta:hover { border-color: var(--kv-hoja-100); box-shadow: var(--kv-sombra-2); }
.s-tarjeta h3 { font-size: var(--kv-t-l); margin: var(--kv-e-4) 0 .4rem; }
.s-tarjeta p { margin: 0; font-size: var(--kv-t-s); }
.s-tarjeta ul { margin: .6rem 0 0; padding-left: 1.1rem; font-size: var(--kv-t-s); }
.s-tarjeta ul li + li { margin-top: .25rem; }
.s-icono { display: inline-grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; background: var(--kv-hoja-50); color: var(--kv-hoja-texto); }
.s-seccion-oscura .s-tarjeta { background: rgba(255, 255, 255, .04); border-color: rgba(255, 255, 255, .1); }
.s-seccion-oscura .s-tarjeta h3 { color: #fff; }
.s-seccion-oscura .s-icono { background: rgba(143, 209, 111, .12); color: var(--kv-hoja-claro); }

/* ---------- ODS y normas ---------- */
.s-ods { display: grid; gap: var(--kv-e-3); grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 900px) { .s-ods { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.s-ods-item { border-radius: 16px; padding: var(--kv-e-5); background: #fff; border: 1px solid var(--kv-borde); }
.s-ods-num { font: 700 2rem/1 var(--kv-fuente-titulos); color: var(--kv-bosque); letter-spacing: -.03em; }
.s-ods-num span { font-size: var(--kv-t-xs); letter-spacing: .12em; color: var(--kv-hoja-texto); display: block; margin-bottom: .4rem; font-family: var(--kv-fuente-texto); font-weight: 600; }
.s-ods-item p { margin: .6rem 0 0; font-size: var(--kv-t-s); }
.s-normas { display: flex; flex-wrap: wrap; gap: .6rem; list-style: none; padding: 0; margin: 0; }
.s-normas li { padding: .6rem 1rem; border-radius: 12px; border: 1px solid var(--kv-borde); background: #fff; font-size: var(--kv-t-s); color: var(--kv-pizarra); }
.s-normas strong { color: var(--kv-bosque); font-family: var(--kv-fuente-titulos); margin-right: .35rem; }

/* ---------- Cita / diferenciador ---------- */
.s-cita { font: 600 clamp(1.4rem, 1rem + 1.8vw, 2.2rem)/1.3 var(--kv-fuente-titulos); color: #fff; letter-spacing: -.02em; max-width: 30ch; margin: 0 0 var(--kv-e-5); }
.s-cita::before { content: "“"; display: block; font-size: 4rem; line-height: .6; color: var(--kv-hoja); margin-bottom: .5rem; }

/* ---------- CTA final ---------- */
.s-cta { position: relative; border-radius: 28px; padding: clamp(2rem, 1rem + 4vw, 4.5rem); background: var(--kv-bosque); color: var(--s-texto-oscuro); overflow: hidden; display: grid; gap: var(--kv-e-5); align-items: center; isolation: isolate; }
@media (min-width: 900px) { .s-cta { grid-template-columns: 1.4fr auto; } }
.s-cta::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(ellipse 60% 90% at 100% 0%, rgba(103, 179, 70, .38), transparent 60%), radial-gradient(ellipse 40% 60% at 0% 100%, rgba(242, 183, 5, .10), transparent 60%); }
.s-cta h2 { color: #fff; font-size: var(--s-h2); letter-spacing: -.025em; line-height: 1.08; margin: 0 0 var(--kv-e-3); }
.s-cta p { margin: 0; font-size: var(--s-lead); max-width: 52ch; }
.s-cta .grupo-botones .btn { min-height: 52px; padding: .8rem 1.6rem; }

/* ---------- Cabecera de páginas internas ---------- */
.s-cabecera-pagina { position: relative; background: var(--kv-bosque); color: var(--s-texto-oscuro); overflow: hidden; padding: clamp(2.5rem, 1.5rem + 4vw, 5rem) 0 clamp(3rem, 2rem + 4vw, 5.5rem); isolation: isolate; }
.s-cabecera-pagina::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: .5; background-image: linear-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .04) 1px, transparent 1px); background-size: 56px 56px; mask-image: radial-gradient(ellipse 70% 90% at 85% 20%, #000 25%, transparent 70%); -webkit-mask-image: radial-gradient(ellipse 70% 90% at 85% 20%, #000 25%, transparent 70%); }
.s-cabecera-pagina::after { content: ""; position: absolute; z-index: -1; width: 560px; height: 560px; right: -200px; top: -240px; border-radius: 50%; background: radial-gradient(circle, rgba(103, 179, 70, .3), transparent 65%); }
.s-cabecera-pagina h1 { color: #fff; font-size: clamp(2.1rem, 1.3rem + 3.2vw, 3.75rem); letter-spacing: -.03em; line-height: 1.05; max-width: 20ch; margin: 0 0 var(--kv-e-4); }
.s-cabecera-pagina .s-lead { color: var(--s-texto-oscuro); max-width: 60ch; margin: 0; }
.s-cabecera-pagina .miga { color: #A9C3A0; margin: 0 0 var(--kv-e-6); }
.s-cabecera-pagina .miga a { color: #E4F0DE; }
.s-cabecera-pagina .miga li + li::before { color: rgba(255, 255, 255, .3); }
.s-cabecera-pagina .grupo-botones { margin-top: var(--kv-e-6); }

/* ---------- Tabla de descuento ---------- */
.s-escalera { display: grid; grid-template-columns: repeat(15, minmax(0, 1fr)); gap: 4px; align-items: end; height: 220px; padding: 0 0 .25rem; }
.s-escalon { position: relative; border-radius: 6px 6px 2px 2px; background: linear-gradient(180deg, var(--kv-hoja), #4F9E32); min-height: 12px; }
.s-escalon:last-child { background: linear-gradient(180deg, var(--kv-sol), #D9A300); }
.s-escalon span { position: absolute; left: 50%; top: -1.5rem; transform: translateX(-50%); font: 600 .6875rem/1 var(--kv-fuente-texto); color: var(--kv-bosque); white-space: nowrap; }
.s-escalera-ejes { display: grid; grid-template-columns: repeat(15, minmax(0, 1fr)); gap: 4px; font-size: .6875rem; color: var(--kv-pizarra-suave); text-align: center; border-top: 1px solid var(--kv-borde-fuerte); padding-top: .4rem; }
@media (max-width: 560px) { .s-escalon span { display: none; } .s-escalon:first-child span, .s-escalon:last-child span { display: block; } .s-escalera-ejes span:not(:first-child):not(:last-child) { visibility: hidden; } }

/* ---------- Incluye ---------- */
.s-incluye { display: grid; gap: 1px; background: var(--kv-borde); border: 1px solid var(--kv-borde); border-radius: 20px; overflow: hidden; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }
.s-incluye > div { background: #fff; padding: var(--kv-e-5); display: grid; grid-template-columns: 40px 1fr; gap: .85rem; align-items: start; }
.s-incluye .s-icono { width: 40px; height: 40px; border-radius: 12px; }
.s-incluye h3 { font-size: var(--kv-t-m); margin: .15rem 0 .25rem; }
.s-incluye p { margin: 0; font-size: var(--kv-t-s); }

/* ---------- Transferencia año 15 ---------- */
.s-linea-tiempo { position: relative; display: grid; gap: var(--kv-e-4); list-style: none; padding: 0; margin: 0; }
@media (min-width: 900px) { .s-linea-tiempo { grid-template-columns: repeat(3, minmax(0, 1fr)); } .s-linea-tiempo::before { content: ""; position: absolute; top: 22px; left: 22px; right: 22px; height: 2px; background: linear-gradient(90deg, var(--kv-hoja), var(--kv-sol)); } }
.s-hito { position: relative; }
.s-hito-punto { position: relative; z-index: 1; display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--kv-bosque); color: #fff; border: 4px solid var(--kv-marfil); box-shadow: 0 0 0 2px var(--kv-hoja); margin-bottom: var(--kv-e-3); }
.s-hito:last-child .s-hito-punto { background: var(--kv-sol); color: var(--kv-bosque); box-shadow: 0 0 0 2px var(--kv-sol); }
.s-seccion-suave .s-hito-punto { border-color: var(--kv-fondo-suave); }
.s-hito h3 { font-size: var(--kv-t-l); margin-bottom: .35rem; }
.s-hito p { margin: 0; font-size: var(--kv-t-s); }

/* ---------- Preguntas frecuentes ---------- */
.s-faq { display: grid; gap: .75rem; max-width: 860px; margin: 0 auto; }
.s-faq details { background: #fff; border: 1px solid var(--kv-borde); border-radius: 16px; transition: border-color var(--kv-transicion), box-shadow var(--kv-transicion); }
.s-faq details[open] { border-color: var(--kv-hoja); box-shadow: var(--kv-sombra-2); }
.s-faq summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.1rem 1.25rem; min-height: 56px; font: 600 var(--kv-t-m)/1.4 var(--kv-fuente-titulos); color: var(--kv-bosque); }
.s-faq summary::-webkit-details-marker { display: none; }
.s-faq summary::after { content: ""; flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--kv-hoja-50) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23153A21' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 6v12M6 12h12'/%3E%3C/svg%3E") center/14px no-repeat; transition: transform var(--kv-transicion); }
.s-faq details[open] summary::after { transform: rotate(45deg); }
.s-faq details > div { padding: 0 1.25rem 1.2rem; font-size: var(--kv-t-s); line-height: 1.7; }
.s-faq details > div p { margin: 0; max-width: 70ch; }

/* ---------- Tecnología: maquetas HTML/SVG ---------- */
.s-tec { display: grid; gap: clamp(3.5rem, 2rem + 5vw, 7rem); }
.s-maqueta { position: relative; background: #fff; border: 1px solid var(--kv-borde); border-radius: 20px; box-shadow: 0 30px 70px rgba(21, 58, 33, .12); overflow: hidden; }
.s-maqueta-barra { display: flex; align-items: center; gap: .4rem; padding: .7rem 1rem; border-bottom: 1px solid var(--kv-borde); background: var(--kv-fondo-suave); }
.s-maqueta-barra i { width: 10px; height: 10px; border-radius: 50%; background: var(--kv-borde-fuerte); }
.s-maqueta-barra span { margin-left: .6rem; font-size: .75rem; color: var(--kv-pizarra-suave); background: #fff; border: 1px solid var(--kv-borde); border-radius: 999px; padding: .15rem .75rem; flex: 1; max-width: 280px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.s-maqueta-cuerpo { padding: clamp(1rem, .6rem + 1.5vw, 1.5rem); }
.s-maqueta-oscura { background: linear-gradient(135deg, #153A21, #1E4D2C); color: #DCEBD5; border-radius: 14px; padding: 1.1rem 1.25rem; display: grid; grid-template-columns: auto 1fr; gap: 1.25rem; align-items: center; }
.s-maqueta-oscura > svg { width: 104px; height: 104px; }
.s-maqueta-oscura .s-mq-titulo { color: #fff; font: 700 1.05rem/1.2 var(--kv-fuente-titulos); margin: .1rem 0 .5rem; }
.s-mq-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
.s-mq-kpis div { background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .1); border-radius: 10px; padding: .45rem .6rem; font-size: .6875rem; letter-spacing: .04em; text-transform: uppercase; }
.s-mq-kpis strong { display: block; color: #fff; font: 700 1rem/1.2 var(--kv-fuente-titulos); text-transform: none; letter-spacing: 0; }
.s-mq-grafica { margin-top: 1rem; }
.s-mq-grafica svg { display: block; width: 100%; height: auto; }
.s-mq-leyenda { display: flex; flex-wrap: wrap; gap: .35rem 1rem; font-size: .75rem; color: var(--kv-pizarra-suave); margin: .4rem 0 0; padding: 0; list-style: none; }
.s-mq-leyenda i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: .35rem; vertical-align: -1px; }
.s-mq-fila { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .7rem 0; border-bottom: 1px solid var(--kv-borde); font-size: var(--kv-t-s); }
.s-mq-fila:last-child { border-bottom: 0; }
.s-mq-fila strong { color: var(--kv-bosque); font-variant-numeric: tabular-nums; }
.s-mq-ahorro { border-radius: 14px; padding: 1rem 1.1rem; background: var(--kv-hoja-50); border: 1px solid var(--kv-hoja-100); }
.s-mq-ahorro small { font-size: .75rem; color: var(--kv-pizarra-suave); text-transform: uppercase; letter-spacing: .06em; font-weight: 600; }
.s-mq-ahorro strong { display: block; font: 700 1.75rem/1.15 var(--kv-fuente-titulos); color: var(--kv-exito); letter-spacing: -.02em; margin: .15rem 0; font-variant-numeric: tabular-nums; }
.s-mq-ahorro p { margin: 0; font-size: .8125rem; }
.s-mq-otp { display: flex; gap: .4rem; margin: .75rem 0; }
.s-mq-otp span { width: 40px; height: 48px; border-radius: 10px; border: 1.5px solid var(--kv-borde-fuerte); display: grid; place-items: center; font: 700 1.25rem/1 var(--kv-fuente-titulos); color: var(--kv-bosque); background: #fff; }
.s-mq-otp span.activo { border-color: var(--kv-hoja-texto); box-shadow: var(--kv-foco); }
.s-mq-doc { border: 1px solid var(--kv-borde); border-radius: 12px; padding: 1rem; background: repeating-linear-gradient(180deg, transparent 0 22px, var(--kv-fondo-suave) 22px 23px); }
.s-mq-doc h4 { font-size: var(--kv-t-s); margin: 0 0 .4rem; }
.s-mq-sello { display: inline-flex; align-items: center; gap: .4rem; margin-top: .75rem; padding: .35rem .7rem; border-radius: 999px; background: var(--kv-exito-fondo); color: var(--kv-exito); font-size: .75rem; font-weight: 600; }
.s-mq-hash { font: 500 .6875rem/1.4 ui-monospace, Menlo, Consolas, monospace; color: var(--kv-pizarra-suave); overflow-wrap: anywhere; margin-top: .5rem; }
.s-telefono { max-width: 330px; margin: 0 auto; border-radius: 36px; background: #0F2A18; padding: 12px; box-shadow: 0 30px 70px rgba(21, 58, 33, .25); }
.s-telefono-pantalla { border-radius: 26px; background: var(--kv-marfil); overflow: hidden; }
.s-telefono-cab { background: var(--kv-bosque); color: #fff; padding: 1.25rem 1rem 1rem; font-size: .8125rem; }
.s-telefono-cab strong { display: block; font: 700 1.05rem/1.2 var(--kv-fuente-titulos); }
.s-telefono-cuerpo { padding: 1rem; display: grid; gap: .75rem; }
.s-telefono .btn { min-height: 44px; }

/* ---------- Equipo ---------- */
.s-equipo { display: grid; gap: var(--kv-e-5); }
@media (min-width: 900px) { .s-equipo { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.s-persona { background: #fff; border: 1px solid var(--kv-borde); border-radius: 24px; padding: clamp(1.5rem, 1rem + 1.5vw, 2.25rem); display: flex; flex-direction: column; gap: var(--kv-e-4); }
.s-persona-cab { display: flex; gap: 1.1rem; align-items: center; }
.s-avatar { flex: none; width: 88px; height: 88px; border-radius: 50%; overflow: hidden; background: var(--kv-bosque); display: grid; place-items: center; box-shadow: 0 0 0 4px #fff, 0 0 0 6px var(--kv-hoja); }
.s-avatar img { width: 100%; height: 100%; object-fit: cover; }
.s-avatar span { font: 700 1.9rem/1 var(--kv-fuente-titulos); color: #fff; letter-spacing: -.02em; }
.s-persona h3 { font-size: var(--kv-t-xl); margin: 0 0 .15rem; }
.s-persona-cargo { margin: 0; color: var(--kv-hoja-texto); font-weight: 600; font-size: var(--kv-t-s); }
.s-persona p { margin: 0; font-size: var(--kv-t-s); line-height: 1.7; }
.s-premio { display: flex; gap: .7rem; align-items: center; padding: .75rem 1rem; border-radius: 14px; background: var(--kv-sol-50); border: 1px solid #F5DF96; color: #6B4700; font-size: var(--kv-t-s); font-weight: 600; }
.s-premio .ico { color: #B58900; flex: none; }
.s-persona .grupo-botones { margin-top: auto; }

/* ---------- Contacto ---------- */
.s-contacto { display: grid; gap: var(--kv-e-6); align-items: start; }
@media (min-width: 960px) { .s-contacto { grid-template-columns: .8fr 1.2fr; gap: var(--kv-e-8); } }
.s-canal { display: grid; grid-template-columns: 48px 1fr; gap: 1rem; align-items: center; padding: 1rem 0; border-bottom: 1px solid var(--kv-borde); }
.s-canal:last-of-type { border-bottom: 0; }
.s-canal p { margin: 0; font-size: var(--kv-t-s); color: var(--kv-pizarra-suave); }
.s-canal a, .s-canal strong { font-weight: 600; color: var(--kv-bosque); font-size: var(--kv-t-m); }
.s-formulario { background: #fff; border: 1px solid var(--kv-borde); border-radius: 24px; padding: clamp(1.25rem, .8rem + 2vw, 2.5rem); box-shadow: 0 24px 60px rgba(21, 58, 33, .08); }
.s-formulario .formulario-2 { gap: var(--kv-e-4) var(--kv-e-4); }
.s-formulario .btn[type="submit"] { min-height: 52px; padding: .8rem 1.75rem; }
.s-trampa { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.s-enviado { text-align: center; padding: var(--kv-e-6) var(--kv-e-4); }
.s-enviado .s-icono { width: 64px; height: 64px; border-radius: 50%; margin-bottom: var(--kv-e-4); }

/* ---------- Referencia ---------- */
.s-ficha { display: grid; gap: 1px; background: var(--kv-borde); border: 1px solid var(--kv-borde); border-radius: 20px; overflow: hidden; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); }
.s-ficha > div { background: #fff; padding: var(--kv-e-5); }
.s-ficha dt { font-size: var(--kv-t-xs); text-transform: uppercase; letter-spacing: .08em; color: var(--kv-pizarra-suave); font-weight: 600; }
.s-ficha dd { margin: .35rem 0 0; font: 700 1.35rem/1.2 var(--kv-fuente-titulos); color: var(--kv-bosque); }

/* ---------- 404 ---------- */
.s-404 { min-height: 70vh; display: grid; align-items: center; padding: var(--kv-e-8) 0; }
.s-404-rejilla { display: grid; gap: var(--kv-e-6); align-items: center; }
@media (min-width: 900px) { .s-404-rejilla { grid-template-columns: 1fr 1fr; } }
.s-404-codigo { font: 700 clamp(4rem, 2rem + 8vw, 8rem)/1 var(--kv-fuente-titulos); color: var(--kv-bosque); letter-spacing: -.05em; margin: 0; }
.s-404-codigo span { color: var(--kv-hoja); }
.s-404 h1 { font-size: var(--s-h2); letter-spacing: -.025em; }
.s-404-enlaces { display: grid; gap: .5rem; list-style: none; padding: 0; margin: var(--kv-e-5) 0 0; }
.s-404-enlaces a { display: flex; justify-content: space-between; align-items: center; padding: .85rem 1rem; border: 1px solid var(--kv-borde); border-radius: 12px; background: #fff; color: var(--kv-bosque); font-weight: 600; text-decoration: none; }
.s-404-enlaces a:hover { border-color: var(--kv-hoja); }

/* ---------- Animaciones sutiles ---------- */
@media (prefers-reduced-motion: no-preference) {
  [data-revelar] { transition: opacity .7s cubic-bezier(.2, .7, .2, 1), transform .7s cubic-bezier(.2, .7, .2, 1); }
  [data-revelar].por-revelar { opacity: 0; transform: translateY(18px); }
  .s-flujo { stroke-dasharray: 6 8; animation: s-flujo 1.6s linear infinite; }
  .s-latido { animation: s-latido 2.4s ease-in-out infinite; transform-origin: center; transform-box: fill-box; }
  .s-flotante-a { animation: s-flotar 6s ease-in-out infinite; }
  .s-flotante-b { animation: s-flotar 7s ease-in-out -2s infinite; }
}
@keyframes s-flujo { to { stroke-dashoffset: -28; } }
@keyframes s-latido { 0%, 100% { opacity: .55; transform: scale(1); } 50% { opacity: 1; transform: scale(1.08); } }
@keyframes s-flotar { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@media (max-width: 560px) { .s-flotante-a, .s-flotante-b { animation: none; } }

/* =========================================================================
   Compatibilidad: clases usadas por vistas del núcleo y de otros módulos
   ========================================================================= */
.hero { position: relative; overflow: hidden; background: var(--kv-bosque); color: #DCEBD5; padding: var(--kv-e-8) 0 var(--kv-e-9); }
.hero::after { content: ""; position: absolute; right: -120px; top: -120px; width: 420px; height: 420px; border-radius: 50%; background: radial-gradient(circle at center, rgba(103, 179, 70, .35), rgba(103, 179, 70, 0) 70%); pointer-events: none; }
.hero .contenedor { position: relative; z-index: 1; }
.hero h1 { color: #fff; font-size: var(--kv-t-4xl); max-width: 16ch; margin-bottom: var(--kv-e-5); }
.hero h1 em { font-style: normal; color: var(--kv-hoja-claro); }
.hero p.bajada { font-size: var(--kv-t-l); max-width: 52ch; color: #DCEBD5; }
.hero .eyebrow { color: var(--kv-hoja-claro); }
.hero .grupo-botones { margin-top: var(--kv-e-6); }
.hero .btn-secundario { --_fg: #fff; --_borde: rgba(255, 255, 255, .7); }
.hero .btn-secundario:hover { --_bg: rgba(255, 255, 255, .08); --_fg: #fff; --_borde: #fff; }
.pilares { display: grid; gap: var(--kv-e-4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); margin-top: calc(-1 * var(--kv-e-8)); position: relative; z-index: 2; }
.pilar { background: #fff; border: 1px solid var(--kv-borde); border-radius: var(--kv-radio); padding: var(--kv-e-5); box-shadow: var(--kv-sombra-2); }
.pilar .ico-circulo { display: inline-grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--kv-hoja-50); color: var(--kv-hoja-texto); margin-bottom: var(--kv-e-3); }
.pilar h2 { font-size: var(--kv-t-l); margin-bottom: var(--kv-e-2); }
.pilar p { margin: 0; font-size: var(--kv-t-s); }
.aviso-construccion { font-size: var(--kv-t-s); }
.lista-publicaciones { display: grid; gap: var(--kv-e-5); grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.tarjeta-publicacion { display: flex; flex-direction: column; gap: .5rem; }
.tarjeta-publicacion h2 { font-size: var(--kv-t-l); margin: 0; }
.tarjeta-publicacion h2 a { color: var(--kv-bosque); text-decoration: none; }
.tarjeta-publicacion h2 a:hover { text-decoration: underline; }
.meta-publicacion { font-size: var(--kv-t-xs); color: var(--kv-pizarra-suave); display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.documento-legal .meta { display: flex; flex-wrap: wrap; gap: .5rem 1rem; font-size: var(--kv-t-s); color: var(--kv-pizarra-suave); margin-bottom: var(--kv-e-5); }
.m-0 { margin: 0; }
body:not(.sitio) .pie { margin-top: var(--kv-e-8); }
.s-cifra-valor-largo { font-size: clamp(1.2rem, .95rem + 1vw, 1.6rem); padding-top: .35rem; }
.s-ods-item .s-ods-num { font: 700 2.5rem/1 var(--kv-fuente-titulos); color: var(--kv-bosque); letter-spacing: -.03em; margin: 0; }
.s-ods-item .s-ods-num span { font: 600 var(--kv-t-xs)/1 var(--kv-fuente-texto); letter-spacing: .14em; color: var(--kv-hoja-texto); display: block; margin-bottom: .5rem; }
.s-ods-item { border-top: 4px solid var(--kv-hoja); }
@media (max-width: 560px) {
  .s-maqueta-oscura { grid-template-columns: 1fr; gap: .75rem; }
  .s-maqueta-oscura > svg { width: 96px; height: 96px; }
  .s-mq-kpis strong { font-size: .9rem; }
}
.s-dividido > *, .s-dos > *, .s-contacto > * { min-width: 0; }
@media (max-width: 560px) { .sitio .tabla thead th { white-space: normal; } .sitio .tabla th, .sitio .tabla td { padding: .6rem .6rem; } }
.s-seccion-suave .texto-suave, .s-seccion-suave .s-nota, .s-seccion-suave .s-mq-leyenda { color: #5B655F; }

/* =========================================================================
   F6-B · Correcciones de marca y UX (qa/AUDITORIA_MARCA_UX.md)
   ========================================================================= */
/* A14 · objetivos táctiles del pie (≥44 px en móvil; cómodos en escritorio) */
.pie ul { gap: 0 .25rem; }
.pie a, .pie .enlace-boton { display: inline-flex; align-items: center; min-height: 36px; padding: 4px 0; }
.pie .redes a { display: inline-grid; padding: 0; }
@media (max-width: 760px) {
  .pie a, .pie .enlace-boton, .pie button { min-height: 44px; }
  .pie li { margin: 0; }
  .miga a { display: inline-flex; align-items: center; min-height: 44px; }
}
/* M6 · la primera columna de las tablas del sitio no se parte ("Año 10") */
.sitio .tabla th:first-child, .sitio .tabla td:first-child { white-space: nowrap; }
/* M17 · titulares equilibrados y medida máxima en secciones */
.s-cabeza h2, .s-dividido h2 { max-width: 22ch; }
.s-cabeza-centro h2 { margin-left: auto; margin-right: auto; }
/* A4 · layout de embudo del simulador: cabecera mínima y pie de una línea */
.embudo-acciones { gap: .25rem; margin-left: auto !important; }
.embudo-tel { white-space: nowrap; display: inline-flex; align-items: center; gap: .45rem; min-height: 44px; padding: 0 .75rem; border-radius: var(--kv-radio-pill); color: var(--kv-bosque); font-weight: 600; font-size: var(--kv-t-s); text-decoration: none; }
.embudo-tel:hover { background: var(--kv-hoja-50); color: var(--kv-bosque); }
.embudo-tel .ico { color: var(--kv-hoja-texto); }
@media (max-width: 480px) { .embudo-tel-texto { display: none; } }
@media (max-width: 400px) { .embudo-tel > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } .embudo-tel { width: 44px; justify-content: center; padding: 0; border: 1px solid var(--kv-borde); } }
.pie-embudo { padding: var(--kv-e-5) 0; }
.pie-embudo .contenedor { display: flex; flex-wrap: wrap; gap: .25rem 1.5rem; align-items: center; justify-content: space-between; }
.pie-embudo p { margin: 0; color: #E4F0DE; }
.pie-embudo ul { display: flex; flex-wrap: wrap; gap: 0 1.25rem; }

/* F6-A (legal B2): nota de condiciones del ahorro visible sobre fondo oscuro (hero y CTA). */
.s-hero .s-hero-nota, .s-cabecera-pagina .s-hero-nota, .s-cta .s-nota { color: #B9D1B0; margin: var(--kv-e-4) 0 0; max-width: 62ch; }
/* §5.6 · Simulación rápida */
.s-rapida-seccion { padding-top: clamp(3.5rem, 2rem + 4vw, 6rem); }
.s-rapida { display: grid; gap: var(--kv-e-6); align-items: stretch; background: #fff; border: 1px solid var(--kv-borde); border-radius: 28px; padding: clamp(1.25rem, .75rem + 2.5vw, 3rem); box-shadow: 0 30px 70px rgba(21, 58, 33, .08); }
@media (min-width: 960px) { .s-rapida { grid-template-columns: 1fr 1fr; gap: var(--kv-e-7); } }
.s-rapida-intro .s-h2 { margin-bottom: var(--kv-e-3); }
.s-rapida-intro .s-lead { margin-bottom: var(--kv-e-5); }
.s-rapida-form { display: grid; gap: var(--kv-e-4); }
@media (min-width: 600px) { .s-rapida-form { grid-template-columns: 1fr 1fr; } .s-rapida-form .btn { grid-column: 1 / -1; justify-self: start; } }
.s-rapida-form .btn { min-height: 52px; padding: .8rem 1.6rem; }
.s-rapida-pesos { position: relative; }
.s-rapida-pesos span { position: absolute; left: .85rem; top: 50%; transform: translateY(-50%); color: var(--kv-pizarra-suave); font-weight: 600; pointer-events: none; }
.s-rapida-pesos input { padding-left: 1.75rem; font-variant-numeric: tabular-nums; }
.s-rapida-panel { border-radius: 20px; background: linear-gradient(160deg, var(--kv-bosque) 0%, #1E4D2C 100%); color: var(--s-texto-oscuro); padding: clamp(1.25rem, 1rem + 1.5vw, 2.25rem); display: grid; align-content: center; position: relative; overflow: hidden; isolation: isolate; min-height: 260px; }
.s-rapida-panel::after { content: ""; position: absolute; z-index: -1; right: -120px; top: -140px; width: 360px; height: 360px; border-radius: 50%; background: radial-gradient(circle, rgba(103, 179, 70, .35), transparent 65%); }
.s-rapida-panel[aria-busy="true"] { opacity: .7; }
.s-rapida-panel .s-nota { color: #A9C3A0; margin: var(--kv-e-4) 0; }
.s-rapida-panel strong { color: #fff; }
.s-rapida-panel .grupo-botones .s-nota { margin: 0; }
.s-rapida-panel .alerta { margin: 0; }
.s-rapida-vacio { display: grid; gap: var(--kv-e-3); justify-items: start; max-width: 40ch; }
.s-rapida-vacio p { margin: 0; }
.s-rapida-panel .s-icono { background: rgba(143, 209, 111, .14); color: var(--kv-hoja-claro); }
.s-rapida-etq { margin: 0 0 .35rem; font: 600 var(--kv-t-xs)/1.4 var(--kv-fuente-texto); letter-spacing: .12em; text-transform: uppercase; color: var(--kv-hoja-claro); }
.s-rapida-cifra { margin: 0 0 .5rem; font: 700 clamp(1.75rem, 1.2rem + 2vw, 2.6rem)/1.1 var(--kv-fuente-titulos); color: #fff; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.s-rapida-cifra span { font-size: .55em; font-weight: 600; color: var(--s-texto-oscuro); margin: 0 .15em; }
.s-rapida-cifra small { font-size: .45em; font-weight: 600; color: var(--s-texto-oscuro); margin-left: .2em; }
.s-rapida-cifra-texto { font-size: clamp(1.35rem, 1.1rem + 1vw, 1.75rem); }
.s-rapida-sub { margin: 0; font-size: var(--kv-t-s); }
.s-rapida-datos { list-style: none; margin: var(--kv-e-5) 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
.s-rapida-datos li { background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .1); border-radius: 12px; padding: .6rem .7rem; display: grid; gap: .15rem; font-size: .75rem; }
.s-rapida-datos strong { font: 700 .95rem/1.2 var(--kv-fuente-titulos); }
@media (max-width: 480px) { .s-rapida-datos { grid-template-columns: 1fr; } .s-rapida-datos li { grid-template-columns: 1fr auto; align-items: baseline; } }
/* §5.2 · Contador público (solo con datos medidos) */
.s-contador { padding-top: var(--kv-e-6); }
.s-contador-caja { display: grid; gap: var(--kv-e-4); align-items: center; border-radius: 20px; padding: var(--kv-e-5) clamp(1.25rem, 1rem + 2vw, 2.5rem); background: var(--kv-hoja-50); border: 1px solid var(--kv-hoja-100); }
@media (min-width: 900px) { .s-contador-caja { grid-template-columns: auto 1fr; } .s-contador-caja .s-nota { grid-column: 1 / -1; margin: 0; } }
.s-contador-titulo { margin: 0; display: inline-flex; align-items: center; gap: .5rem; font-weight: 600; color: var(--kv-bosque); font-size: var(--kv-t-s); }
.s-punto-vivo { width: 10px; height: 10px; border-radius: 50%; background: var(--kv-hoja); box-shadow: 0 0 0 4px rgba(103, 179, 70, .25); }
.s-contador-cifras { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--kv-e-4); margin: 0; }
.s-contador-cifras dt { font-size: var(--kv-t-xs); color: var(--kv-pizarra-suave); order: 2; }
.s-contador-cifras div { display: flex; flex-direction: column; }
.s-contador-cifras dd { margin: 0; font: 700 clamp(1.4rem, 1rem + 1.5vw, 2.1rem)/1.1 var(--kv-fuente-titulos); color: var(--kv-bosque); font-variant-numeric: tabular-nums; }
.s-rapida-seccion { padding-bottom: 0; }
.s-rapida-confianza { list-style: none; margin: var(--kv-e-6) 0 0; padding: var(--kv-e-5) 0 0; border-top: 1px solid var(--kv-borde); display: grid; gap: .6rem; font-size: var(--kv-t-s); color: var(--kv-pizarra); }
.s-rapida-confianza li { display: grid; grid-template-columns: 20px 1fr; gap: .6rem; align-items: start; }
.s-rapida-confianza .ico { color: var(--kv-hoja-texto); margin-top: .2rem; }
/* M1 · el subrayado sol va en las cuatro cifras (antes solo en la primera) y las cifras no se parten */
.s-cifra .s-cifra-valor::after { content: ""; display: block; width: 28px; height: 4px; border-radius: 2px; background: var(--kv-sol); margin-top: .6rem; }
.s-cifra-valor { white-space: nowrap; }
@media (max-width: 420px) { .s-cifra-valor-largo { white-space: normal; } }
/* C5 · heros interiores a dos columnas con visual propio */
.s-cabecera-rejilla { display: grid; gap: clamp(2rem, 1rem + 3vw, 3.5rem); align-items: center; }
@media (min-width: 1000px) { .s-cabecera-rejilla { grid-template-columns: 1.1fr .9fr; } }
.s-cabecera-texto { min-width: 0; }
.s-cab-visual { position: relative; min-width: 0; max-width: 520px; width: 100%; justify-self: center; }
@media (max-width: 999px) { .s-cab-visual { max-width: 440px; } .s-cab-visual-ingenieria svg { max-height: 280px; } }
.s-cv-svg { width: 100%; height: auto; display: block; filter: drop-shadow(0 30px 60px rgba(0, 0, 0, .25)); }
.s-cv-tarjeta { position: relative; background: rgba(255, 255, 255, .97); color: var(--kv-pizarra); border-radius: 24px; padding: clamp(1.25rem, 1rem + 1vw, 2rem); box-shadow: 0 30px 70px rgba(0, 0, 0, .28); }
.s-cv-etq { margin: 0 0 .35rem; display: flex; align-items: center; gap: .5rem; font: 600 var(--kv-t-xs)/1.4 var(--kv-fuente-texto); letter-spacing: .12em; text-transform: uppercase; color: var(--kv-hoja-texto); }
.s-cv-formula { margin: 0 0 .35rem; font: 700 clamp(1.4rem, 1.1rem + 1.2vw, 2rem)/1.15 var(--kv-fuente-titulos); color: var(--kv-bosque); letter-spacing: -.02em; }
.s-cv-formula .s-cv-desc { color: var(--kv-hoja-texto); }
.s-cv-formula-peq { font-size: clamp(1.25rem, 1rem + 1vw, 1.6rem); margin-bottom: var(--kv-e-4); }
.s-cv-sub { margin: 0 0 var(--kv-e-4); font-size: var(--kv-t-s); color: var(--kv-pizarra-suave); }
.s-cv-barras { display: block; width: 100%; height: 120px; }
.s-cv-ejes { display: flex; justify-content: space-between; margin-top: .4rem; padding-top: .4rem; border-top: 1px solid var(--kv-borde); font-size: var(--kv-t-xs); font-weight: 600; color: var(--kv-bosque); }
.s-cv-chip { position: absolute; display: inline-flex; align-items: center; gap: .45rem; padding: .55rem .85rem; border-radius: 999px; background: var(--kv-bosque-900); color: #fff; border: 1px solid rgba(255, 255, 255, .16); font-size: var(--kv-t-xs); font-weight: 600; box-shadow: 0 14px 30px rgba(0, 0, 0, .3); white-space: nowrap; }
.s-cv-chip .ico { color: var(--kv-hoja-claro); }
.s-cv-chip-a { right: -12px; top: -18px; }
.s-cv-chip-b { left: -16px; bottom: -18px; }
.s-cv-chip-a .ico { color: var(--kv-sol); }
@media (max-width: 560px) { .s-cv-chip { position: static; margin-top: .6rem; } .s-cab-visual { display: grid; justify-items: start; } }
/* Tecnología: teléfono con el portal de energía */
.s-cv-telefono { width: min(280px, 78%); margin: 0 auto; border-radius: 36px; background: #0B2013; padding: 10px; box-shadow: 0 30px 70px rgba(0, 0, 0, .35), inset 0 0 0 1px rgba(255, 255, 255, .08); }
.s-cv-telefono-pantalla { border-radius: 28px; overflow: hidden; background: linear-gradient(170deg, #1E4D2C, #153A21 60%); }
.s-cv-tel-cab { padding: 1.1rem 1rem .6rem; color: #CFE0C8; font-size: .75rem; }
.s-cv-tel-cab strong { display: block; color: #fff; font: 700 1rem/1.2 var(--kv-fuente-titulos); }
.s-cv-tel-cuerpo { padding: 0 1rem 1.1rem; display: grid; gap: .6rem; }
.s-cv-medidor { width: 132px; height: 132px; margin: 0 auto; display: block; }
.s-cv-curva { width: 100%; height: 64px; display: block; background: rgba(255, 255, 255, .04); border-radius: 10px; }
.s-cv-tel-fila { display: flex; justify-content: space-between; align-items: center; padding: .6rem .75rem; border-radius: 12px; background: var(--kv-hoja-50); color: var(--kv-pizarra); font-size: .75rem; }
.s-cv-tel-fila strong { color: var(--kv-exito); font-family: var(--kv-fuente-titulos); }
.s-cv-leyenda { text-align: center; margin: 1.6rem 0 0; font-size: .75rem; color: #A9C3A0; }
/* Nosotros: composición de las dos tarjetas de los fundadores */
.s-cv-equipo { position: relative; display: grid; gap: 1rem; padding: 1.25rem 0; }
.s-cv-persona { display: flex; align-items: center; gap: 1rem; background: rgba(255, 255, 255, .97); border-radius: 20px; padding: 1rem 1.25rem; box-shadow: 0 24px 50px rgba(0, 0, 0, .28); max-width: 400px; }
.s-cv-persona-1 { margin-left: auto; }
.s-cv-persona strong { display: block; font: 700 1.05rem/1.25 var(--kv-fuente-titulos); color: var(--kv-bosque); }
.s-cv-persona span { font-size: var(--kv-t-xs); color: var(--kv-hoja-texto); font-weight: 600; }
.s-cv-avatar { flex: none; width: 64px; height: 64px; border-radius: 50%; overflow: hidden; box-shadow: 0 0 0 3px #fff, 0 0 0 5px var(--kv-hoja); }
.s-cv-avatar img, .s-cv-avatar svg { width: 100%; height: 100%; object-fit: cover; display: block; }
.s-cv-chip-c { position: static; justify-self: center; }
.s-avatar-neutro { width: 100%; height: 100%; display: block; }
/* Contacto: tarjeta de canales */
.s-cv-canales { list-style: none; margin: 0; padding: 0; display: grid; }
.s-cv-canales li { display: grid; grid-template-columns: 44px 1fr; gap: .85rem; align-items: center; padding: .8rem 0; border-top: 1px solid var(--kv-borde); }
.s-cv-canales .s-icono { width: 44px; height: 44px; border-radius: 12px; }
.s-cv-canales small { display: block; font-size: var(--kv-t-xs); color: var(--kv-pizarra-suave); }
.s-cv-canales a, .s-cv-canales strong { font-weight: 600; color: var(--kv-bosque); overflow-wrap: anywhere; }
.s-cab-visual-tecnologia .s-cv-chip-b { bottom: 44px; left: 0; }
.s-cab-visual-tecnologia .s-cv-chip-a { right: 0; }
.miga ol { align-items: center; }
.miga li { display: inline-flex; align-items: center; }
@media (max-width: 560px) {
  .s-cv-chip-a, .s-cv-chip-b { display: none; }
  .s-cv-barras { height: 84px; }
  .s-cv-telefono { width: min(240px, 70%); }
  .s-cv-medidor { width: 104px; height: 104px; }
  .s-cv-leyenda { margin-top: .75rem; }
}
/* M16 · en Tecnología el rótulo de las maquetas es una leyenda discreta (el aviso general sigue al final de la página) */
.s-maqueta .s-ilustrativo, .s-telefono .s-ilustrativo, .s-visual-marco .s-ilustrativo { background: none; border: 0; padding: 0; color: var(--kv-pizarra-suave); font-weight: 500; font-size: .75rem; }
.s-maqueta .s-ilustrativo .ico, .s-telefono .s-ilustrativo .ico { color: var(--kv-pizarra-suave); }
/* C2 · Respaldo verificable (solo con datos reales configurados) */
.s-prueba { padding-top: 0; }
.s-prueba-rejilla { display: grid; gap: var(--kv-e-5); grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.s-caso { background: #fff; border: 1px solid var(--kv-borde); border-radius: 20px; overflow: hidden; }
.s-caso img, .s-caso-sin-foto { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: grid; place-items: center; background: linear-gradient(160deg, var(--kv-hoja-50), var(--kv-hoja-100)); color: var(--kv-hoja-texto); }
.s-caso-texto { padding: var(--kv-e-5); }
.s-caso h3 { font-size: var(--kv-t-l); margin: 0 0 .4rem; }
.s-reconocimientos { list-style: none; margin: var(--kv-e-5) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--kv-e-3); }
.s-reconocimientos li { display: flex; gap: .75rem; align-items: center; padding: .9rem 1.2rem; border-radius: 16px; background: #fff; border: 1px solid var(--kv-borde); font-size: var(--kv-t-s); color: var(--kv-pizarra-suave); }
.s-reconocimientos .ico { color: #B58900; flex: none; }
.s-reconocimientos strong { display: block; color: var(--kv-bosque); }
/* M14 · banner de cookies compacto en móvil (hoja inferior; los tres botones con el mismo peso visual en una fila) */
@media (max-width: 600px) {
  .cookies { left: 0; right: 0; bottom: 0; }
  .cookies-caja { max-width: none; border-radius: 16px 16px 0 0; padding: var(--kv-e-4); max-height: 40vh; overflow-y: auto; }
  .cookies-titulo { font-size: var(--kv-t-m); }
  .cookies-caja p { margin-bottom: var(--kv-e-3); line-height: 1.45; }
  .cookies-botones { flex-wrap: nowrap; }
  .cookies-botones .btn { flex: 1 1 0; min-width: 0; padding-left: .5rem; padding-right: .5rem; }
  /* Integrador: con «Configurar» abierto, «Guardar selección» ocupa su propia fila (a 390 px se cortaba) y la hoja crece. */
  .cookies-botones { flex-wrap: wrap; }
  .cookies-botones [data-cookies-accion="guardar"] { flex: 1 1 100%; order: -1; }
  .cookies-caja:has([data-cookies-config]:not([hidden])) { max-height: 80vh; }
}
@media (max-width: 959px) { .s-rapida-panel { min-height: 0; } }
