/* ==========================================================================
   Health Support — Inicio v0.2 (6 bloques, P4). Hereda base-v2.css.
   Una clase por bloque; nada del CSS de las variantes descartadas se porta.
   ========================================================================== */
.seccion { padding: var(--seccion) 0; }
.seccion__cab { display: grid; grid-template-columns: 7fr 5fr; gap: 88px; align-items: end; margin-bottom: 72px; }
.seccion__cab .lead { font-size: 19px; }
@media (max-width: 900px) { .seccion__cab { grid-template-columns: 1fr; gap: 20px; margin-bottom: 44px; } }

/* ======================= 1 · Hero «Credencial depurada» (P5) ======================= */
.hero__grid { position: relative; display: grid; grid-template-columns: 7fr 5fr; min-height: min(calc(100vh - var(--header-h) - 132px), 720px); }
.hero__texto { display: flex; flex-direction: column; justify-content: center; padding: 72px 64px 72px 0; }
.hero__texto .lead { margin-bottom: 40px; }
.hero__foto { position: absolute; top: 0; bottom: 0; left: calc(var(--gutter) + (100% - 2 * var(--gutter)) * 7 / 12); right: calc((100vw - min(100vw, var(--cont))) / -2); margin: 0; overflow: hidden; }
.hero__foto img { width: 100%; height: 100%; object-fit: cover; object-position: 64% 30%; }
.ficha { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; padding: 0; border-top: 3px solid var(--cian); }
.ficha div { padding: 22px 24px 26px 0; }
.ficha div + div { padding-left: 24px; border-left: 1px solid var(--linea); }
.ficha dt { margin: 0 0 6px; font-size: 13px; font-weight: 700; letter-spacing: .04em; color: var(--muted); }
.ficha dd { margin: 0; font-size: 22px; font-weight: 700; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
@media (max-width: 900px) {
  .hero__grid { grid-template-columns: 1fr; min-height: 0; }
  .hero__texto { padding: 40px 0 32px; }
  .hero__texto .lead { margin-bottom: 28px; }
  .hero__foto { position: relative; left: auto; right: auto; margin: 0 calc(var(--gutter) * -1); aspect-ratio: 4 / 3.3; }
  .ficha { grid-template-columns: 1fr 1fr; }
  .ficha div:nth-child(3) { padding-left: 0; border-left: 0; }
  .ficha div:nth-child(n+3) { border-top: 1px solid var(--linea); }
  .ficha dd { font-size: 19px; }
}

/* ======================= 2 · Servicios: índice en capítulo (P6 → v0.5 A, elegida por Freddy el 19-oct-2026) =======================
   Capítulo gris mineral (el primer cambio de fondo pasa del 80 % al 9 % de la página). El titular vive en la
   columna del índice y el panel de familia sube hasta él: su foto absorbe la diferencia de alto, así que las dos
   columnas terminan en la misma línea por construcción (antes, 237 px de hueco bajo la columna de empresa). */
.servicios { background: var(--mineral); }
.servicios .h2 { max-width: 20ch; }
.servicios__grid { display: grid; grid-template-columns: 7fr 4fr; gap: 72px; align-items: stretch; }
.servicios__indice { display: flex; flex-direction: column; justify-content: space-between; gap: 72px; }
.lineas { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--navy); }
.linea { border-bottom: 1px solid var(--linea); }
.linea > a { display: grid; grid-template-columns: 1fr auto; gap: 8px 24px; align-items: baseline; padding: 30px 0 14px; text-decoration: none; }
.linea__nombre { font-size: var(--t-h3); font-weight: 300; line-height: 1.12; letter-spacing: -.02em; transition: color .2s var(--ease); }
/* sobre mineral el cian profundo da 4,34:1 (medido): el enlace va en azul marino */
.linea__flecha { font-size: 15px; font-weight: 700; color: var(--navy); white-space: nowrap; transition: transform .25s var(--ease); }
.linea > a:hover .linea__nombre { color: var(--cian-prof); }
.linea > a:hover .linea__flecha { transform: translateX(6px); }
.linea ul { display: flex; flex-wrap: wrap; gap: 4px 0; list-style: none; margin: 0; padding: 0 0 28px; font-size: 16px; color: var(--muted); }
.linea ul li + li::before { content: '·'; margin: 0 12px; color: var(--linea); }
.linea ul a { text-decoration: none; border-bottom: 1px solid transparent; }
.linea ul a:hover { color: var(--navy); border-bottom-color: currentColor; }
.familia { display: flex; flex-direction: column; }
.familia__foto { position: relative; flex: 1 1 0; min-height: 320px; margin: 0 0 28px; overflow: hidden; border-radius: var(--radio); }
.familia__foto img { position: absolute; left: 0; width: 100%; height: 100%; object-fit: cover; }
.familia .h3 { margin-bottom: 12px; }
.familia > p:not(.etiqueta) { margin: 0 0 24px; font-size: 17px; color: var(--muted); }
.familia .enlace { align-self: flex-start; }
@media (max-width: 900px) {
  .servicios__grid { grid-template-columns: 1fr; gap: 56px; }
  .servicios__indice { gap: 44px; }
  /* El enlace termina antes de la zona del WhatsApp flotante (54 px + 14 px): ningún control queda debajo del botón */
  .linea > a { grid-template-columns: 1fr; max-width: calc(100% - 64px); }
  .linea ul { display: block; padding-right: 64px; }
  .linea ul li { padding: 3px 0; }
  .linea ul li + li::before { content: none; }
  .linea__flecha { display: none; }
  .familia__foto { flex: none; min-height: 0; aspect-ratio: 4 / 3.4; }
}

/* ======================= 3 · Quién lo atiende: secuencia (P7) =======================
   Sin JavaScript, en el celular o con reduced-motion: rejilla. Con JS en escritorio, .is-secuencia apila
   los rostros en un marco y GSAP los hace entrar uno a uno con el scroll (pin + scrub). */
.equipo { padding: var(--seccion) 0 0; }
.equipo__pin { display: flex; align-items: center; }
.equipo__grid { display: grid; grid-template-columns: 5fr 7fr; gap: 56px; align-items: center; }
.equipo__texto { display: grid; gap: 36px; }
.equipo__texto .lead { font-size: 19px; max-width: 40ch; }
.cita { margin: 0; }
.cita p { margin: 0 0 18px; font-size: clamp(21px, 1.8vw, 26px); font-weight: 300; line-height: 1.4; letter-spacing: -.01em; }
.cita footer { font-size: 15px; font-weight: 700; }
.cita footer span { display: block; font-weight: 400; color: var(--muted); }
.cifra { display: flex; align-items: baseline; gap: 18px; padding-top: 16px; border-top: 1px solid var(--navy); }
.cifra b { font-size: var(--t-cifra); font-weight: 200; line-height: .9; letter-spacing: -.045em; font-variant-numeric: tabular-nums; }
.cifra span { max-width: 30ch; font-size: 16px; }
.marco { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.retrato { margin: 0; aspect-ratio: 3 / 4; overflow: hidden; background: var(--mineral); }
.retrato img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 16%; }
.progreso { display: none; }
.equipo.is-secuencia { padding-top: 0; }
.equipo.is-secuencia .equipo__pin { min-height: 100vh; padding: 48px 0; }
/* clip-path y no overflow: recorta los rostros al marco y deja aire abajo para la barra de progreso */
.equipo.is-secuencia .marco { position: relative; display: block; width: 100%; max-width: 760px; justify-self: end; aspect-ratio: 4 / 4.4; max-height: calc(100vh - var(--header-h) - 92px); clip-path: inset(0 0 -40px 0); }
.equipo.is-secuencia .retrato { position: absolute; inset: 0; aspect-ratio: auto; }
.equipo.is-secuencia .progreso { position: absolute; left: 0; right: 0; bottom: -28px; display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.progreso i { height: 2px; background: var(--linea); transition: background-color .2s; }
.progreso i.is-on { background: var(--navy); }
.equipo__completo { margin: 104px 0 0; }
.equipo__completo-foto { height: clamp(380px, 78vh, 760px); overflow: hidden; }
.equipo__completo-foto img { width: 100%; height: 112%; object-fit: cover; object-position: 50% 30%; }
.equipo__completo figcaption { padding-top: 14px; padding-bottom: 14px; font-size: 14px; color: var(--muted); border-bottom: 1px solid var(--linea); }
@media (max-width: 900px) {
  .equipo__grid { grid-template-columns: 1fr; gap: 40px; }
  .marco { grid-template-columns: 1fr 1fr; gap: 8px; }
  .marco .retrato:nth-child(7) { grid-column: 1 / -1; aspect-ratio: 16 / 10; }
  .equipo__completo { margin-top: 64px; }
  .equipo__completo-foto { height: auto; aspect-ratio: 4 / 3; }
  .equipo__completo-foto img { height: 100%; }
}

/* ======================= 4 · Dónde lo atendemos: tríptico tipográfico (P8) ======================= */
.triptico { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--navy); }
.lugar { padding: 36px 40px 40px 0; }
.lugar + .lugar { padding-left: 40px; border-left: 1px solid var(--linea); }
.lugar .h3 { margin-bottom: 24px; font-size: clamp(34px, 3.4vw, 54px); }
.lugar p { margin: 0; font-size: 17px; line-height: 1.6; color: var(--muted); }
.lugar ul { list-style: none; margin: 24px 0 0; padding: 0; }
.lugar li { padding: 9px 0; border-top: 1px solid var(--linea); font-size: 16px; }
.eventos { margin: 64px 0 0; padding: 22px 0; border-top: 1px solid var(--navy); border-bottom: 1px solid var(--linea); font-size: 19px; }
.eventos b { font-weight: 700; }
.ruta { margin-top: 72px; }
.ruta h3 { margin: 0 0 24px; font-size: 13px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.ruta ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); counter-reset: paso; }
.ruta li { position: relative; padding: 18px 24px 0 0; border-top: 1px solid var(--linea); counter-increment: paso; }
.ruta li::before { content: counter(paso); position: absolute; top: 18px; left: 0; font-size: 13px; font-weight: 800; color: var(--cian-prof); }
.ruta li::after { content: ''; position: absolute; top: -1px; left: 0; width: 28px; height: 3px; background: var(--cian); transform-origin: left; transform: scaleX(var(--trazo, 1)); }
.ruta b { display: block; margin-top: 22px; font-size: 22px; font-weight: 300; letter-spacing: -.01em; }
.ruta span { display: block; margin-top: 4px; font-size: 15.5px; color: var(--muted); }
@media (max-width: 900px) {
  .triptico { grid-template-columns: 1fr; }
  .lugar, .lugar + .lugar { padding: 28px 0; border-left: 0; border-bottom: 1px solid var(--linea); }
  .ruta ol { grid-template-columns: 1fr 1fr; row-gap: 32px; }
}

/* ======================= 4b · Dónde: «Un mismo horizonte» (v0.5 C, elegida por Freddy el 19-oct-2026) =======================
   Pictogramas propios (retícula 64, línea 1,8, puntas redondas; assets/iconos-donde/): un lugar por columna, de pie sobre el
   filete del tríptico, que hace de suelo; el mismo profesional en cian en los tres. Sin caja ni fondo; aria-hidden. */
.lugar__pic { display: block; width: var(--pic); height: var(--pic); color: var(--navy); }
.lugar__pic svg, .eventos__pic svg { display: block; width: 100%; height: 100%; overflow: visible; }
.eventos--pic { display: flex; align-items: center; gap: 20px; }
.eventos__pic { flex: none; width: 52px; height: 52px; color: var(--navy); }


/* los tres lugares sobre un mismo horizonte: el filete del tríptico es el suelo */
.lugares { --pic: clamp(104px, 8.4vw, 136px); }
.lugares .triptico { position: relative; border-top: 0; margin-top: calc(var(--pic) * .875 + 64px); }   /* el margen de la cabecera (72) colapsa: aire propio sobre los dibujos */
.lugares .triptico::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: var(--navy); transform-origin: left center; }
.lugares .lugar { position: relative; padding-top: 40px; }
.lugares .lugar__pic { position: absolute; left: 0; top: calc(var(--pic) * -.875); }   /* y = 56/64: el suelo del dibujo cae en el filete */
.lugares .lugar + .lugar .lugar__pic { left: 40px; }
.lugares .lugar__pic .pic__suelo { display: none; }

/* el trazo se dibuja una sola vez al entrar (js/home-v2.js añade .is-dibujado; sin pin ni scrub) */
.js .lugares .pic path { stroke-dasharray: 1 1; stroke-dashoffset: 1; opacity: 0; transition: stroke-dashoffset 1s var(--ease), opacity .01s linear; }
.js .lugares .pic__persona { opacity: 0; transform: translateY(5px); transition: opacity .4s var(--ease), transform .4s var(--ease); transition-delay: .8s; }
.js .lugares.is-dibujado .pic path { stroke-dashoffset: 0; opacity: 1; }
.js .lugares.is-dibujado .pic__persona { opacity: 1; transform: none; }
.lugares .lugar:nth-child(2) .pic path { transition-delay: .15s; }
.lugares .lugar:nth-child(3) .pic path { transition-delay: .3s; }
.lugares .lugar:nth-child(2) .pic__persona { transition-delay: .95s; }
.lugares .lugar:nth-child(3) .pic__persona { transition-delay: 1.1s; }
.lugares .eventos__pic .pic path { transition-delay: .5s; }
.lugares .eventos__pic .pic__persona { transition-delay: 1.1s; }
.js .lugares .triptico::before { transform: scaleX(0); transition: transform .9s var(--ease); }
.js .lugares.is-dibujado .triptico::before { transform: none; }
@media (prefers-reduced-motion: reduce) {
  .js .lugares .pic path, .js .lugares .pic__persona, .js .lugares .triptico::before { stroke-dashoffset: 0; opacity: 1; transform: none; transition: none; }
}

@media (max-width: 900px) {
  .lugares { --pic: 76px; }
  /* C en columna: cada lugar se apoya en su propio filete */
  .lugares .triptico { margin-top: 0; }
  .lugares .triptico::before { display: none; }
  .lugares .lugar, .lugares .lugar + .lugar { padding-top: 0; margin-top: calc(var(--pic) * .875 + 28px); border-top: 1px solid var(--navy); border-bottom: 0; }
  .lugares .lugar:first-child { margin-top: calc(var(--pic) * .875); }
  .lugares .lugar .h3 { margin-top: 28px; }
  .lugares .lugar + .lugar .lugar__pic { left: 0; }
  .eventos__pic { width: 44px; height: 44px; }
}

/* ======================= 5 · Respaldo: cifra monumental (P9) ======================= */
.respaldo { background: var(--mineral); }
.monumental { display: grid; grid-template-columns: auto 1fr; gap: 48px; align-items: end; margin-bottom: 56px; padding-bottom: 56px; border-bottom: 1px solid var(--navy); }
.monumental b { font-size: var(--t-monumental); font-weight: 200; line-height: .8; letter-spacing: -.06em; font-variant-numeric: tabular-nums; }
.monumental span { max-width: 26ch; padding-bottom: 14px; font-size: clamp(20px, 1.7vw, 26px); font-weight: 300; line-height: 1.35; }
.logos { list-style: none; margin: 28px 0 112px; padding: 0; display: grid; grid-template-columns: repeat(9, auto); justify-content: space-between; align-items: center; gap: 24px; }
/* La mezcla va en el li, no en la img: GSAP le da transform al li y eso crea un contexto de apilamiento (gotcha v0.1) */
.logos li { mix-blend-mode: multiply; }
/* El fondo casi blanco de los PNG se va a blanco (y el multiply lo borra); el trazo claro de algunos logos se oscurece */
.logos img { display: block; width: auto; max-width: 100%; filter: grayscale(1) brightness(.85) contrast(2.2); opacity: .9; }
.aliados { display: grid; grid-template-columns: 5fr 7fr; gap: 88px; align-items: start; }
.aliados .h3 { margin-bottom: 16px; font-size: clamp(30px, 2.8vw, 44px); }
.aliados > div > p { margin: 0 0 28px; max-width: 42ch; font-size: 17px; line-height: 1.6; color: var(--muted); }
.filas { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--navy); }
.filas li { display: grid; grid-template-columns: 5fr 6fr; gap: 32px; padding: 24px 0; border-bottom: 1px solid var(--linea); }
.filas b { font-size: 22px; font-weight: 300; line-height: 1.25; letter-spacing: -.01em; }
.filas span { font-size: 16px; color: var(--muted); }
@media (max-width: 1180px) { .logos { grid-template-columns: repeat(5, auto); row-gap: 36px; } }
@media (max-width: 900px) {
  .monumental, .aliados, .filas li { grid-template-columns: 1fr; gap: 16px; }
  .aliados { gap: 40px; }
  .logos { grid-template-columns: repeat(3, 1fr); justify-items: center; gap: 28px 16px; margin-bottom: 72px; }
  .logos img { transform: scale(.8); }
}

/* ======================= 6 · Cierre: «¿Para quién es la cotización?» (P10) ======================= */
.cierre { background: var(--navy); color: #fff; }
.cierre__grid { display: grid; grid-template-columns: 5fr 7fr; gap: 88px; align-items: start; }
.cierre .h2 { margin-bottom: 24px; }
.cierre__texto p { margin: 0 0 32px; max-width: 42ch; font-size: 18px; color: var(--sobre-oscuro); }
.cierre .enlace { color: #fff; }
.cierre .enlace:hover { color: var(--cian); }
.respuestas { list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(230, 247, 252, .5); }
.respuestas a { display: grid; grid-template-columns: 1fr auto; gap: 4px 24px; align-items: center; padding: 28px 0; border-bottom: 1px solid rgba(230, 247, 252, .18); text-decoration: none; }
.respuestas b { font-size: clamp(30px, 3vw, 46px); font-weight: 300; line-height: 1.1; letter-spacing: -.02em; transition: color .2s var(--ease); }
.respuestas small { grid-column: 1; font-size: 16px; color: var(--sobre-oscuro); }
.respuestas .ico { grid-row: 1 / span 2; grid-column: 2; width: 28px; height: 28px; color: var(--cian); transition: transform .25s var(--ease); }
.respuestas a:hover b { color: var(--cian); }
.respuestas a:hover .ico { transform: translateX(6px); }
@media (max-width: 900px) { .cierre__grid { grid-template-columns: 1fr; gap: 48px; } }

.nowrap { white-space: nowrap; }

/* ---------- Pantallas táctiles y pantallas angostas (auditoría móvil v1.0, 19-oct-2026) ---------- */
@media (pointer: coarse) {
  .linea ul a { display: inline-block; padding-block: 10px; }
  .linea ul li { padding: 0; }
  .ficha__verificar { display: inline-block; padding-block: 11px; margin-block: -11px; }
}
/* Por debajo de 375 px, «Documentación» (22 px) no cabe en media columna: la ruta va en una sola */
@media (max-width: 374px) { .ruta ol { grid-template-columns: 1fr; } }
