/* Viva+Care — archivo generado por construir.py. NO editar: edita las fuentes listadas abajo. */

/* ===== assets/estilos.css ===== */
/* Viva+Care — «El abrazo». Sistema visual (versión final).
   Este archivo es la primera capa de assets/vivacare.css (lo arma construir.py):
   estilos.css → css-*.css (alfabético) → movil.css → impresion.css.
   Retícula de 12 columnas, título a la izquierda y contenido a la derecha.
   Sin sombras, sin píldoras, sin cejas en mayúsculas. La hoja del logo enmarca toda imagen. */

/* Respaldo métrico de Montserrat: Arial ajustado para que el salto al cargar la fuente sea mínimo (informe 02). */
@font-face{font-family:"Montserrat Respaldo";src:local("Arial"),local("ArialMT"),local("Liberation Sans"),local("Roboto");font-weight:300 500;size-adjust:112.83%;ascent-override:85.79%;descent-override:22.25%;line-gap-override:0%}
@font-face{font-family:"Montserrat Respaldo";src:local("Arial Bold"),local("Arial-BoldMT"),local("Liberation Sans Bold"),local("Roboto Bold");font-weight:600 700;size-adjust:109%;ascent-override:88.81%;descent-override:23.03%;line-gap-override:0%}

:root{
  --verde:#2E7D32; --verde-osc:#1B5E20; --verde-prof:#123D17; --verde-sombra:#256B29;
  --lima:#8BC34A; --lima-clara:#A2D465; --lima-activa:#7CB342; --lima-suave:#E4F0D3;
  --papel:#F8F6F0; --arena:#ECE8DD; --linea:#D8D3C6; --borde-campo:#6F8271;
  --filete-claro:rgba(255,255,255,.3);
  --blanco:#FFFFFF; --tinta:#2F2F2F; --tinta-2:#55594F; --error:#A3261B;
  --f:"Montserrat","Montserrat Respaldo",system-ui,sans-serif;
  --f-voz:"Newsreader","Times New Roman",Georgia,serif;
  --t-peq:1.0625rem;
  --ancho:1240px; --margen:clamp(24px,4.5vw,56px);
  --sec:clamp(72px,12vw,176px); --aire:clamp(56px,7vw,96px);
  --hoja:0 62% 0 62%; --hoja-esp:62% 0 62% 0;
  --enc:88px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--enc) + 16px)}
body{margin:0;font-family:var(--f);font-size:clamp(1.1875rem,.4vw + 1.1rem,1.25rem);line-height:1.6;color:var(--tinta);background:var(--papel);-webkit-font-smoothing:antialiased}
img,svg{max-width:100%;display:block}
h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0;list-style:none}
h1,h2,h3{font-weight:600;text-wrap:balance;overflow-wrap:break-word}
p,li,dd{text-wrap:pretty}
strong,b{font-weight:600}
h1{font-size:clamp(2.375rem,5.2vw,4rem);line-height:1.05;letter-spacing:-.025em}
h2{font-size:clamp(2rem,3.9vw,3rem);line-height:1.1;letter-spacing:-.02em}
h3{font-size:clamp(1.5rem,2.2vw,1.75rem);line-height:1.2;letter-spacing:-.01em}
.entrada{font-size:clamp(1.3125rem,1.9vw,1.5rem);line-height:1.45}
.peq{font-size:var(--t-peq);line-height:1.5;font-weight:500}
.sec2{color:var(--tinta-2)}
.voz{font-family:var(--f-voz);font-style:italic;font-weight:400;font-optical-sizing:auto;font-size:clamp(1.75rem,3.3vw,2.5rem);line-height:1.2;letter-spacing:0}
a{color:var(--verde);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:4px}
a:hover{color:var(--verde-osc)}
:focus-visible{outline:3px solid var(--verde-prof);outline-offset:3px;box-shadow:0 0 0 3px var(--blanco)}
/* Anclas: scroll-padding deja 16 px bajo el encabezado. En una sección con aire arriba, el aire queda oculto y el contenido cae ~40 px bajo el encabezado */
@media (min-width:701px){
  .seccion[id]:not(.junta):not(.filete){scroll-margin-top:calc(24px - var(--sec))}
  .seccion.filete[id]{scroll-margin-top:calc(8px - var(--aire))}
}
.oculto-v{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.nb,.junto{white-space:nowrap}
.tit-ancho{max-width:20ch;margin-bottom:clamp(48px,6vw,80px)}

/* Saltar al contenido (informe 09) */
.saltar{position:absolute;left:16px;top:-80px;z-index:60;background:var(--blanco);color:var(--verde-prof);padding:14px 20px;border-radius:8px;font-weight:600;text-decoration:none}
.saltar:focus{top:12px}
main:focus{outline:0}

/* ---------- Estructura */
.cont{max-width:calc(var(--ancho) + 2*var(--margen));margin-inline:auto;padding-inline:var(--margen)}
.seccion{padding-block:var(--sec)}
.seccion.junta{padding-top:0}
.seccion.filete>.cont::before{content:"";display:block;grid-column:1/-1;border-top:1px solid var(--linea);margin-bottom:var(--aire)}
.seccion.filete{padding-top:0}
.blanca{background:var(--blanco)}
/* Título fijo a la izquierda (cols 1–5), contenido a la derecha (cols 7–12) */
.partida{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;row-gap:40px}
.partida>.titulo{grid-column:1/6;align-self:start;position:sticky;top:128px}
.partida>.titulo.no-fija{position:static}
.partida>.titulo p{margin-top:20px;max-width:34ch}
.partida>.cuerpo{grid-column:7/13;min-width:0}
.ancha>*{max-width:60ch}
.ancha>h1,.ancha>h2{max-width:20ch}
.pila>*+*{margin-top:24px}
.pila-g>*+*{margin-top:56px}
@media (max-width:1023px){
  .partida{display:block}
  .partida>.titulo{position:static;margin-bottom:40px}
  .partida>.cuerpo{max-width:760px}
}

/* ---------- Botones: rectángulo de radio 8, 60 px de alto */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:60px;padding:14px 28px;border-radius:8px;border:2px solid var(--verde);background:var(--verde);color:var(--blanco);font:600 1.1875rem/1.2 var(--f);text-decoration:none;text-align:center;cursor:pointer;transition:background-color .15s,color .15s,border-color .15s}
.btn:hover{background:var(--verde-osc);border-color:var(--verde-osc);color:var(--blanco)}
.btn:active{background:var(--verde-prof);border-color:var(--verde-prof)}
.btn.lima{background:var(--lima);border-color:var(--lima);color:var(--verde-prof)}
.btn.lima:hover{background:var(--lima-clara);border-color:var(--lima-clara);color:var(--verde-prof)}
.btn.lima:active{background:var(--lima-activa);border-color:var(--lima-activa);color:var(--verde-prof)}
.btn.borde{background:transparent;color:var(--verde)}
.btn.borde:hover{background:var(--verde);color:var(--blanco)}
.btn.borde:active{background:var(--verde-prof);border-color:var(--verde-prof);color:var(--blanco)}
.btn.todo{width:100%}
.acciones{display:flex;flex-wrap:wrap;align-items:center;gap:16px 32px;margin-top:40px}
.acciones a:not(.btn){font-weight:600;min-height:48px;display:inline-flex;align-items:center}

/* ---------- Encabezado */
.enc{position:sticky;top:0;z-index:40;background:var(--verde);color:var(--blanco)}
.enc .cont{display:flex;align-items:center;gap:32px;min-height:var(--enc)}
.marca{flex:none;display:flex;align-items:center;gap:14px;min-height:48px;margin-right:auto;color:var(--blanco);text-decoration:none;font-weight:600;font-size:1.5rem;letter-spacing:.01em}
.marca:hover{color:var(--blanco)}
.marca img{height:52px;width:auto}
.marca span span{font-weight:400}
.nav{position:relative;display:flex;gap:clamp(14px,1.3vw,22px)}
.nav a{white-space:nowrap;color:var(--blanco);text-decoration:none;font-weight:500;font-size:var(--t-peq);min-height:48px;display:inline-flex;align-items:center;border-bottom:3px solid transparent}
.nav a:hover{border-bottom-color:var(--lima);color:var(--blanco)}
.nav a[aria-current="page"]{border-bottom-color:var(--blanco);color:var(--blanco)}
/* Llamar y WhatsApp: solo dentro del menú desplegable. En escritorio quedan fuera de la vista y del orden de tabulación. */
.nav .nav-acc{position:absolute;top:0;left:0;display:flex;width:1px;height:1px;overflow:hidden;visibility:hidden}
.enc .btn{min-height:52px;padding:10px 22px;font-size:var(--t-peq);white-space:nowrap}
.menu-btn{display:none;min-height:48px;min-width:104px;padding:8px 18px;border-radius:8px;border:2px solid var(--blanco);background:transparent;color:var(--blanco);font:600 var(--t-peq)/1.3 var(--f);cursor:pointer}
.menu-btn:active{background:var(--verde-prof)}
@media (min-width:1341px){.enc .cont{gap:24px}}
@media (max-width:1340px){
  :root{--enc:72px}
  .enc .cont{gap:16px}
  .marca{font-size:1.3125rem}.marca img{height:42px}
  .menu-btn{display:block;order:3}
  .enc .btn{min-height:48px;padding:8px 18px;font-size:1rem}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;gap:0;background:var(--verde-prof);padding:8px var(--margen) 24px;max-height:calc(100svh - var(--enc));overflow:auto}
  .nav.abierto{display:flex}
  .nav a{min-height:60px;font-size:1.1875rem;border-bottom:1px solid rgba(255,255,255,.2)}
  .nav a[aria-current="page"]{border-bottom:1px solid rgba(255,255,255,.2);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
  .nav .nav-acc{position:static;width:auto;height:auto;overflow:visible;visibility:visible;display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}
  .nav .nav-acc a{display:block;min-height:56px;text-align:center;white-space:normal;line-height:1.25;padding:15px 10px;border:2px solid var(--blanco);border-radius:8px;font-weight:600;font-size:var(--t-peq)}
  .nav .nav-acc a.wa{background:var(--lima);border-color:var(--lima);color:var(--verde-prof)}
}
@media (max-width:700px){.enc .btn{display:none}}

/* ---------- Portada del inicio: «El abrazo»
   Escritorio (≥1000 px): dos hojas en media luna nacen juntas bajo los botones y se cierran alrededor del titular.
   Teléfono y tableta: las hojas forman la V del logo debajo del texto, que descansa arriba.
   Todo se mide en --e (px de diseño): el gesto escala con el titular. */
.abrazo{position:relative;background:var(--verde);color:var(--blanco);--u:clamp(44px,7vw,88px);--e:max(calc(var(--u) / 88), .9px)}
.abrazo .escena{position:relative;overflow:hidden;display:grid;justify-items:center;padding:calc(150*var(--e)) 0 calc(200*var(--e))}
.abrazo .txt{position:relative;z-index:2;text-align:center;max-width:820px;padding-inline:var(--margen)}
.abrazo h1{font-size:var(--u);line-height:1.02;letter-spacing:-.03em}
.abrazo h1 span{display:block}
.abrazo .entrada{max-width:34ch;margin:28px auto 0}
.abrazo .acciones{justify-content:center}
.abrazo .acciones a:not(.btn){color:var(--blanco)}
.abrazo .hoja-g{position:absolute;z-index:1;pointer-events:none;overflow:visible}
.abrazo .hoja-g.esc{width:calc(600*var(--e));height:calc(740*var(--e));left:calc(50% - 590*var(--e));bottom:calc(-42*var(--e));transform-origin:98.333% 90.541%}
.abrazo .hoja-g.mov{display:none}
.abrazo .hoja-g.izq{--hasta:rotate(0deg);--desde:rotate(-15deg)}
.abrazo .hoja-g.der{--hasta:scaleX(-1);--desde:scaleX(-1) rotate(-15deg)}
.abrazo .hoja-g{transform:var(--hasta)}
.abrazo .hoja-g .relleno{fill:var(--verde-sombra)}
.abrazo .hoja-g .contorno{fill:none;stroke:var(--blanco);stroke-width:2;stroke-linejoin:round}
.abrazo .hoja-g .nervio,.abrazo .hoja-g .tallo{fill:none;stroke:var(--lima);stroke-width:2.5;stroke-linecap:round}
/* Línea de datos: el suelo del que nacen las hojas */
.hechos{position:relative;z-index:2;display:flex;justify-content:center;border-top:1px solid var(--filete-claro);padding-block:20px 28px;font-size:var(--t-peq);font-weight:500;line-height:1.4}
.hechos li{padding:4px 28px}
.hechos li+li{border-left:1px solid var(--filete-claro)}
@media (min-width:560px) and (max-width:999px){.abrazo .hoja-g .contorno{stroke-width:1.4}.abrazo .hoja-g .nervio,.abrazo .hoja-g .tallo{stroke-width:1.8}}
@media (max-width:999px){
  .abrazo{--s:calc(min(100vw,560px) / 390)}
  .abrazo .escena{padding:calc(56*var(--s)) 0 calc(166*var(--s))}
  .abrazo h1{font-size:clamp(2.25rem,11.2vw,3.5rem)}
  .abrazo .entrada{max-width:24ch;margin-top:20px}
  .abrazo .acciones{flex-direction:column;gap:4px;margin-top:28px}
  .abrazo .hoja-g.esc{display:none}
  .abrazo .hoja-g.mov{display:block;width:calc(340*var(--s));height:calc(300*var(--s));left:calc(50% - 330*var(--s));bottom:calc(-16*var(--s));transform-origin:97.06% 87.33%}
  .abrazo .hoja-g.izq{--desde:rotate(12deg)}
  .abrazo .hoja-g.der{--desde:scaleX(-1) rotate(12deg)}
  .hechos{flex-direction:column;align-items:center;text-align:center;padding-block:8px 20px}
  .hechos li{padding:10px 0;width:min(100%,320px)}
  .hechos li+li{border-left:0;border-top:1px solid var(--filete-claro)}
}
/* Movimiento: el titular llega primero; las hojas se cierran sobre él (0.15–1.35 s); botón a 1.1 s; total 1.6 s.
   El contenido no depende de la animación: la opacidad 0 solo existe dentro de los fotogramas («both»). */
@media (prefers-reduced-motion:no-preference){
  .abrazo h1 span{animation:vc-subir .6s cubic-bezier(.2,.7,.2,1) both}
  .abrazo h1 span:nth-child(1){animation-delay:.05s}
  .abrazo h1 span:nth-child(2){animation-delay:.17s}
  .abrazo .entrada{animation:vc-aparecer .4s .5s ease-out both}
  .abrazo .acciones{animation:vc-aparecer .4s .7s ease-out both}
  .abrazo .hechos{animation:vc-aparecer .4s .9s ease-out both}
  .abrazo .hoja-g{animation:vc-cerrar 1.2s .15s cubic-bezier(.4,0,.1,1) both}
  .abrazo .hoja-g .relleno{animation:vc-aparecer .5s .15s ease-out both}
  .abrazo .hoja-g .contorno{stroke-dasharray:1;animation:vc-trazar 1s .3s cubic-bezier(.4,0,.2,1) both}
  .abrazo .hoja-g .nervio{stroke-dasharray:1;animation:vc-trazar .45s 1.15s ease-out both}
  .abrazo .hoja-g .tallo{animation:vc-aparecer .3s 1.3s ease-out both}
}
@keyframes vc-cerrar{from{transform:var(--desde)}to{transform:var(--hasta)}}
@keyframes vc-trazar{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes vc-aparecer{from{opacity:0}to{opacity:1}}
@keyframes vc-subir{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.tras-abrazo{padding-top:clamp(96px,16.7vw,240px)}

/* ---------- Portada interior (papel, sin campo verde) */
.portada-int{padding-block:clamp(64px,9vw,128px) clamp(56px,7vw,96px)}
.portada-int .cont{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;row-gap:40px;align-items:end}
.portada-int .txt{grid-column:1/9}
.portada-int .txt .entrada{margin-top:28px;max-width:44ch}
.portada-int .marco{grid-column:9/13}
.portada-int.sola .txt{grid-column:1/11}
@media (max-width:900px){.portada-int .cont{display:block}.portada-int .marco{margin-top:48px;max-width:300px}}

/* ---------- Marco de hoja: contiene ilustración hoy, foto real mañana */
.marco{background:var(--lima-suave);border-radius:var(--hoja);aspect-ratio:4/5;overflow:hidden;display:grid;place-items:center}
.marco.esp{border-radius:var(--hoja-esp)}
.marco.paisaje{aspect-ratio:3/2}
.marco img{width:100%;height:100%;object-fit:contain}
.marco.foto img{object-fit:cover}
.marco .iniciales{font-size:clamp(2.5rem,4vw,3.5rem);font-weight:600;color:var(--verde);letter-spacing:.02em}

/* ---------- Declaración: una frase grande sobre papel */
.declaracion{font-size:clamp(1.875rem,3.6vw,3rem);line-height:1.18;font-weight:500;letter-spacing:-.02em;max-width:22ch;text-wrap:balance}
/* Datos en línea separados por filetes */
.datos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--linea);margin-top:var(--aire)}
.datos div{padding:28px 24px 0 0}
.datos div+div{border-left:1px solid var(--linea);padding-left:24px}
.datos dt{font-size:var(--t-peq);font-weight:500;color:var(--tinta-2)}
.datos dd{font-size:clamp(1.5rem,2.2vw,1.75rem);font-weight:600;line-height:1.2;margin-top:6px}
@media (max-width:820px){.datos{grid-template-columns:1fr}.datos div{padding:20px 0}.datos div+div{border-left:0;border-top:1px solid var(--linea);padding-left:0}}

/* ---------- Servicio protagonista + índice de filas */
.prot{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:40px;align-items:center;background:var(--blanco);padding:clamp(24px,3vw,40px)}
.prot .marco{max-width:260px}
.prot h3{font-size:clamp(1.5rem,2.2vw,1.75rem)}
.prot p{margin-top:12px}
.prot .precio-l{font-weight:600;margin-top:20px}
.prot .btn{margin-top:24px}
@media (max-width:600px){.prot{grid-template-columns:1fr}.prot .marco{max-width:200px}}
.filas{border-top:1px solid var(--linea)}
.prot+.filas{margin-top:40px}
.filas>li{border-bottom:1px solid var(--linea)}
/* El fondo del hover sangra 16 px hacia fuera: el texto no se mueve (informe 04) */
.filas a,.filas .fila{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 32px;align-items:baseline;padding-block:28px;color:var(--tinta);text-decoration:none;transition:background-color .15s,outline-color .15s}
/* El fondo sangra 16 px a los lados con un outline recortado arriba y abajo: no mueve el texto ni crea desborde */
.filas a:hover{background:var(--arena);color:var(--tinta)}
.filas a:hover:not(:focus-visible){outline:16px solid var(--arena);outline-offset:0;clip-path:inset(0 -16px)}
.filas a:hover h3{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
.filas a:hover .dato{color:var(--verde-osc)}
.filas h3{grid-column:1}
.filas .dato{grid-column:2;grid-row:1;font-weight:600;color:var(--verde);white-space:nowrap}
.filas p{grid-column:1/-1;color:var(--tinta-2);max-width:48ch}
@media (max-width:560px){.filas .dato{grid-column:1;grid-row:auto;white-space:normal}}
/* Variante a todo el ancho: tres columnas con filetes verticales */
.filas.tres{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:1px solid var(--linea)}
.filas.tres>li{border-bottom:0}
.filas.tres>li+li{border-left:1px solid var(--linea)}
.filas.tres a{grid-template-columns:1fr;align-content:start;height:100%;padding:32px 28px 36px}
.filas.tres>li:first-child a{padding-left:0}
.filas.tres .dato{grid-column:1;grid-row:1;font-size:var(--t-peq)}
@media (max-width:900px){.filas.tres{display:block;border-bottom:0}.filas.tres>li{border-bottom:1px solid var(--linea)}.filas.tres>li+li{border-left:0}.filas.tres a,.filas.tres>li:first-child a{padding:24px 0}}

/* ---------- Campo verde con la voz de la familia */
.campo{background:var(--verde);color:var(--blanco);padding-block:clamp(88px,11vw,152px)}
.campo .voz{font-size:clamp(2.25rem,5.4vw,4.25rem);line-height:1.08;max-width:16ch}
.campo .cont{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;row-gap:40px;align-items:end}
.campo .voz{grid-column:1/8}
.campo .apoyo{grid-column:8/13}
.campo .apoyo p{font-size:clamp(1.25rem,1.9vw,1.5rem);line-height:1.5}
.campo a{color:var(--blanco);font-weight:600}
.campo .apoyo a{display:inline-flex;min-height:48px;align-items:center;margin-top:20px}
@media (max-width:900px){.campo .cont{display:block}.campo .apoyo{margin-top:36px}}

/* ---------- Pasos: una secuencia real, ilustrada con el brote que crece */
.pasos>li{display:grid;grid-template-columns:88px minmax(0,1fr);gap:28px;align-items:start;padding-block:32px;border-bottom:1px solid var(--linea)}
.pasos>li:first-child{border-top:1px solid var(--linea)}
.pasos img{width:88px;height:88px}
.pasos p{margin-top:8px;color:var(--tinta-2);max-width:46ch}
@media (max-width:560px){.pasos>li{grid-template-columns:64px minmax(0,1fr);gap:18px}.pasos img{width:64px;height:64px}}
/* .pasos.fila: en escritorio, cuatro columnas; el brote crece de izquierda a derecha */
@media (min-width:1024px){
  .pasos.fila{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--linea)}
  .pasos.fila>li{display:block;padding:40px 28px 8px 0;border:0}
  .pasos.fila>li+li{border-left:1px solid var(--linea);padding-left:28px}
  .pasos.fila img{margin-bottom:32px}
  .pasos.fila p{max-width:30ch}
}

/* ---------- Sí hace / no hace: dos listas, sin cajas. Marcado nuevo con plegables (base.si_no) o el antiguo (div>h3+ul) */
.si-no{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 40px}
.si-no h3{padding-bottom:16px;border-bottom:3px solid var(--verde)}
.si-no .no h3{border-bottom-color:var(--tinta-2)}
.si-no li{padding:16px 0 16px 34px;border-bottom:1px solid var(--linea);position:relative}
.si-no li::before{content:"";position:absolute;left:2px;top:1.55em;width:18px;height:10px;border-left:3px solid var(--verde);border-bottom:3px solid var(--verde);transform:translateY(-70%) rotate(-45deg)}
.si-no .no li::before{width:16px;height:0;border-left:0;border-bottom:3px solid var(--tinta-2);transform:translateY(-50%)}
.si-no+p{margin-top:32px;color:var(--tinta-2);max-width:52ch}
@media (max-width:640px){.si-no{grid-template-columns:1fr}}
@media (min-width:1024px) and (max-width:1100px){.partida .si-no,.partida .incluye{grid-template-columns:1fr}}
.lista-si li{padding:10px 0 10px 34px;position:relative}
.lista-si li::before{content:"";position:absolute;left:2px;top:1.35em;width:18px;height:10px;border-left:3px solid var(--verde);border-bottom:3px solid var(--verde);transform:translateY(-70%) rotate(-45deg)}

/* ---------- Plegables .pleg (details): abiertos y quietos en escritorio; en teléfono se pliegan (ver movil.css) */
.pleg>summary{list-style:none;display:block}
.pleg>summary::-webkit-details-marker{display:none}
.pleg>summary small{display:none}
@media (min-width:701px){.pleg>summary{cursor:default}}

/* ---------- Planes: las horas que recuperas */
.planes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;margin-top:clamp(72px,8vw,104px)}
.plan{padding:8px 36px 8px;display:flex;flex-direction:column}
.plan+.plan{border-left:1px solid var(--linea)}
.plan h3{font-size:1.5rem}
.plan .cifra{font-size:clamp(4rem,7vw,6rem);font-weight:300;line-height:1;letter-spacing:-.04em;color:var(--verde);font-variant-numeric:lining-nums proportional-nums;margin-top:16px}
.horas{display:flex;flex-wrap:wrap;gap:5px;margin-top:24px;min-height:61px;align-content:flex-start}
.horas i{width:14px;height:28px;background:var(--verde);border-radius:2px}
.plan .dur{font-weight:600;margin-top:16px}
.plan ul{margin-top:24px;border-top:1px solid var(--linea)}
.plan li{padding:12px 0;border-bottom:1px solid var(--linea)}
.plan .pie-plan{margin-top:auto;padding-top:32px}
.plan .pie-plan a:not(.btn){font-weight:600;display:inline-flex;min-height:48px;align-items:center}
.plan.rec{background:var(--verde-prof);color:var(--blanco);margin-block:-40px;padding-block:48px;border-left:0}
.plan.rec+.plan{border-left:0}
.plan.rec .cifra{color:var(--blanco)}
.plan.rec .horas i{background:var(--lima)}
.plan.rec ul,.plan.rec li{border-color:rgba(255,255,255,.25)}
.nota-planes{margin-top:clamp(72px,8vw,96px);padding-top:24px;border-top:1px solid var(--linea);color:var(--tinta-2);font-size:var(--t-peq);font-weight:500;max-width:58ch}
@media (max-width:900px){
  .planes{grid-template-columns:1fr;margin-top:48px}
  .plan{padding:36px 0;border-top:1px solid var(--linea)}
  .plan+.plan{border-left:0}
  .plan.rec{order:-1;margin:0 calc(-1*var(--margen)) 0;padding:44px var(--margen);border-top:0}
  .horas{min-height:0}
}

/* ---------- Tabla de precios simple */
.precios{width:100%;border-collapse:collapse;margin-top:32px}
.precios th{text-align:left;font-size:var(--t-peq);font-weight:500;color:var(--tinta-2);padding:0 16px 12px 0;border-bottom:1px solid var(--tinta)}
.precios td{padding:18px 16px 18px 0;border-bottom:1px solid var(--linea);vertical-align:baseline}
.precios td:first-child{font-weight:600}
.precios td:last-child,.precios th:last-child{text-align:right;padding-right:0;font-weight:600;color:var(--verde);font-variant-numeric:tabular-nums;white-space:nowrap}
.precios th:last-child{color:var(--tinta-2);font-weight:500}

/* ---------- Preguntas */
.preg details{border-bottom:1px solid var(--linea)}
.preg details:first-child{border-top:1px solid var(--linea)}
.preg summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) 28px;gap:24px;align-items:center;padding:26px 0;font-weight:600;font-size:clamp(1.25rem,1.9vw,1.5rem);line-height:1.3;text-wrap:balance}
.preg summary::-webkit-details-marker{display:none}
.preg summary::after{content:"";width:22px;height:22px;background:linear-gradient(var(--verde),var(--verde)) center/100% 3px no-repeat,linear-gradient(var(--verde),var(--verde)) center/3px 100% no-repeat}
.preg details[open] summary::after{background:linear-gradient(var(--verde),var(--verde)) center/100% 3px no-repeat}
.preg summary:hover{color:var(--verde-osc)}
.preg details p{padding:0 52px 28px 0;color:var(--tinta-2);max-width:60ch}

/* ---------- Formularios (el comportamiento lo pone sitio.js; ver la guía 05-sistema.md) */
.form{display:grid;gap:24px}
.form .dos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
@media (max-width:640px){.form .dos{grid-template-columns:1fr}}
.form label{display:grid;gap:8px;font-weight:600;font-size:var(--t-peq)}
.form .opc{font-weight:400;color:var(--tinta-2)}
.form .ayuda{font-weight:400;color:var(--tinta-2);font-size:var(--t-peq);max-width:58ch}
.form input,.form select,.form textarea{width:100%;min-height:60px;padding:14px 16px;border:2px solid var(--borde-campo);border-radius:8px;background:var(--blanco);color:var(--tinta);font:400 1.1875rem/1.4 var(--f)}
.form select{line-height:1.3}
.form textarea{min-height:132px;resize:vertical}
.form input:focus-visible,.form select:focus-visible,.form textarea:focus-visible{border-color:var(--verde-prof)}
.form [aria-invalid="true"]{border-color:var(--error);border-width:3px}
.form .casilla{display:grid;grid-template-columns:28px minmax(0,1fr);gap:14px;align-items:start;min-height:48px;font-weight:500;font-size:var(--t-peq);line-height:1.45;cursor:pointer}
.form .casilla input{width:28px;height:28px;min-height:0;margin:0;padding:0;accent-color:var(--verde)}
.form .nota{color:var(--tinta-2);font-size:var(--t-peq);font-weight:500;max-width:58ch}
.form .err{color:var(--error);font-weight:600;font-size:var(--t-peq);line-height:1.4;margin:0}
.form .err::before{content:"";display:inline-block;width:12px;height:12px;margin-right:8px;border-radius:2px;background:var(--error);vertical-align:-1px}
/* .ok: vacío y oculto hasta que sitio.js lo llena tras un envío válido. Nunca dice «enviado». */
.form .ok{display:none;padding:20px 24px;background:var(--lima-suave);border-left:4px solid var(--verde);font-weight:600;max-width:60ch}
.form .ok.visible{display:block}
.form .ok.bloqueado{border-left-color:var(--error)}
.form .ok a{display:inline-flex;min-height:48px;align-items:center}

/* ---------- Catálogo */
.filtros{display:flex;flex-wrap:wrap;gap:8px 36px;border-bottom:1px solid var(--linea);margin-bottom:8px}
.filtros button{min-height:56px;padding:0;border:0;border-bottom:3px solid transparent;margin-bottom:-1px;background:none;color:var(--tinta-2);font:500 1.1875rem/1.3 var(--f);cursor:pointer}
.filtros button:hover{color:var(--tinta)}
.filtros button[aria-pressed="true"]{color:var(--tinta);font-weight:600;border-bottom-color:var(--verde)}
.catalogo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:64px}
.ficha{display:grid;grid-template-columns:150px minmax(0,1fr);gap:28px;padding-block:48px;border-bottom:1px solid var(--linea);align-items:start}
.ficha .marco{width:150px}
.ficha .cat{color:var(--tinta-2);font-size:var(--t-peq);font-weight:500;margin-top:4px}
.ficha .desc{margin-top:12px}
.ficha .pie-ficha{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 24px;margin-top:20px;padding-top:16px;border-top:1px solid var(--linea)}
.ficha .precio{font-size:2rem;font-weight:500;font-variant-numeric:tabular-nums;line-height:1.2}
.ficha .pie-ficha a{font-weight:600;min-height:48px;display:inline-flex;align-items:center}
@media (max-width:1000px){.catalogo{grid-template-columns:1fr}}
@media (max-width:520px){.ficha{grid-template-columns:96px minmax(0,1fr);gap:20px}.ficha .marco{width:96px}}
.aviso{padding:24px 0 24px 24px;border-left:4px solid var(--verde);max-width:64ch}

/* ---------- Equipo */
.equipo>li{display:grid;grid-template-columns:150px minmax(0,1fr);gap:32px;align-items:center;padding-block:36px;border-bottom:1px solid var(--linea)}
.equipo>li:first-child{border-top:1px solid var(--linea)}
.equipo .marco{width:150px}
.equipo .cargo{color:var(--verde);font-weight:600;margin-top:4px}
.equipo p.bio{margin-top:12px;color:var(--tinta-2);max-width:46ch}
@media (max-width:520px){.equipo>li{grid-template-columns:96px minmax(0,1fr);gap:20px}.equipo .marco{width:96px}}

/* ---------- Tabla de paquetes */
.paquetes{border-top:1px solid var(--tinta)}
.paquetes>li{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,2fr) minmax(0,7fr);gap:8px 24px;padding-block:28px;border-bottom:1px solid var(--linea);align-items:baseline}
.paquetes .dias{font-weight:600;color:var(--verde)}
.paquetes p{color:var(--tinta-2)}
@media (max-width:760px){.paquetes>li{grid-template-columns:1fr}}

/* ---------- Cierre */
.cierre{padding-block:var(--sec)}
.cierre .cont::before{content:"";display:block;border-top:1px solid var(--linea);margin-bottom:var(--aire)}
.seccion:not(.blanca)+.cierre{padding-top:0}
.cierre h2{max-width:20ch}
.cierre p{margin-top:24px;max-width:46ch}

/* ---------- Pie */
.pie{background:var(--verde-prof);color:var(--blanco);padding-block:72px 40px}
.pie .cont{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,3fr) minmax(0,4fr);gap:48px 24px}
.pie.sin-nav .cont{grid-template-columns:minmax(0,5fr) minmax(0,4fr)}
.pie img{width:190px;height:auto}
.pie .lema{margin-top:24px;max-width:30ch}
.pie .pie-t{font-size:var(--t-peq);font-weight:600;letter-spacing:0;color:var(--lima);margin-bottom:8px}
.pie .pie-t+ul+.pie-t{margin-top:24px}
.pie a{color:var(--blanco);text-decoration:none;display:flex;align-items:center;min-height:48px;overflow-wrap:anywhere}
.pie a:hover{text-decoration:underline;color:var(--blanco)}
.pie li.txt{min-height:48px;display:flex;align-items:center}
.pie .legal{grid-column:1/-1;border-top:1px solid var(--filete-claro);padding-top:28px;font-size:var(--t-peq)}
.pie .legal p{max-width:60ch}
.pie .legal ul{display:flex;flex-wrap:wrap;gap:0 32px;margin-top:12px}
@media (max-width:820px){.pie .cont,.pie.sin-nav .cont{grid-template-columns:1fr}.pie{padding-top:56px}}

/* ---------- Barra de acción fija en móvil (40/60; aparece al pasar la primera acción; ver sitio.js) */
.barra{display:none}
@media (max-width:700px){
  html{scroll-padding-bottom:96px}
  .barra{display:grid;grid-template-columns:2fr 3fr;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--blanco);border-top:1px solid var(--linea);padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));transition:transform .2s,visibility .2s}
  .barra .btn{min-height:52px;padding:8px 10px;font-size:var(--t-peq)}
  .barra.fuera{transform:translateY(110%);visibility:hidden}
  body{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}
  body.escribe .barra{transform:translateY(110%);visibility:hidden}
}
/* Zoom de 400 % o pantalla muy baja: encabezado y barra dejan de estar fijos (informe 09) */
@media (max-height:480px){.enc{position:static}.barra{position:static}body{padding-bottom:0}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* ===== assets/css-bienestar.css ===== */
/* Paquetes de Bienestar — reglas propias. Todo va prefijado con clases o id de esta página
   (.portada-int.bien, .categorias, .no-terapia, .cabeza, .paq-b, #condiciones, .ficha-org, #propuesta). */

/* Portada: la misma estructura que las demás portadas interiores (informe 01, H8) */
@media (min-width:901px){
  .portada-int.bien .cont{align-items:center}
  .portada-int.bien .txt{grid-column:1/8}
  .portada-int.bien h1{font-size:clamp(2.375rem,4.2vw,3.5rem)}
  .portada-int.bien .marco{grid-column:8/13}
}
@media (max-width:900px){.portada-int.bien .marco{max-width:420px}}

/* Categorías: filas con su hojita a la izquierda (sin secuencia: no son pasos) */
.categorias{border-top:1px solid var(--tinta)}
.categorias>li{display:grid;grid-template-columns:80px minmax(0,1fr);gap:28px;align-items:center;padding-block:28px;border-bottom:1px solid var(--linea)}
.categorias img{width:80px;height:80px}
.categorias p{margin-top:6px;color:var(--tinta-2);max-width:44ch}
@media (min-width:701px){.cat-pleg>summary{display:none}}
.no-terapia{margin-top:24px;font-size:var(--t-peq);font-weight:500;line-height:1.5;color:var(--tinta);max-width:52ch}
@media (max-width:560px){
  .categorias>li{grid-template-columns:72px minmax(0,1fr);gap:12px 18px;padding-block:24px}
  .categorias img{width:72px;height:72px}
  .categorias>li>div{display:contents}
  .categorias p{grid-column:1/-1;margin-top:0;max-width:none}
}

/* Cabecera de sección a todo el ancho: título a la izquierda, apoyo a la derecha (retícula de .partida) */
.cabeza{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;row-gap:20px;align-items:end;margin-bottom:56px}
.cabeza h2{grid-column:1/6}
.cabeza p{grid-column:7/13;max-width:46ch}
@media (max-width:900px){.cabeza{display:block;margin-bottom:40px}.cabeza p{margin-top:20px}}

/* Tabla de paquetes: nombre | una hoja por día | para quién + actividades */
.paq-b>li{grid-template-columns:minmax(0,4fr) minmax(0,2fr) minmax(0,6fr);align-items:start;padding-block:32px}
.paq-b .nom h3{font-size:clamp(1.3125rem,1.8vw,1.5rem)}
.paq-b .dato{display:block;margin-top:6px;font-size:var(--t-peq);font-weight:600;color:var(--verde-osc)}
.paq-b .dias{display:flex;flex-direction:column;gap:10px;white-space:nowrap;padding-top:4px}
.paq-b .marcas{display:flex;gap:5px}
.paq-b .marcas i{width:15px;height:22px;background:var(--verde);border-radius:var(--hoja)}
.paq-b .txt .para{color:var(--tinta);font-weight:500}
.paq-b .txt .act{margin-top:6px;color:var(--tinta-2)}
/* Esencial, el punto de entrada: la fila se asienta sobre un campo lima suave, sin etiquetas */
.paq-b>li.primero{background:var(--lima-suave);border-bottom-color:transparent;padding-inline:24px;margin-inline:-24px;border-radius:0 0 24px 0}
@media (max-width:900px){
  .paq-b>li{grid-template-columns:minmax(0,1fr) auto;gap:2px 16px;align-items:center}
  .paq-b .nom{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 10px}
  .paq-b .dato{margin:0}
  .paq-b .dias{flex-direction:row;align-items:center;gap:12px;padding:0}
  .paq-b .txt{grid-column:1/-1}
}

/* Lo que su organización necesita saber: puntos con filetes (plegables solo en teléfono) */
.ficha-org{border-top:1px solid var(--tinta)}
.ficha-org>.pleg{padding-block:24px;border-bottom:1px solid var(--linea)}
.ficha-org h3{font-size:1.25rem;line-height:1.35}
.ficha-org p{margin-top:6px;color:var(--tinta-2);max-width:52ch}
.llevar{margin-top:28px}
.llevar .imprimir{display:inline-flex;align-items:center;min-height:48px;padding:0;border:0;background:none;color:var(--verde);font:600 var(--t-peq)/1.3 var(--f);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:4px;cursor:pointer}
.llevar .imprimir:hover{color:var(--verde-osc)}
.llevar .imprimir:active{color:var(--verde-prof)}

/* Formulario de propuesta */
#propuesta .form .grupo{display:grid;gap:8px;align-content:start}
#propuesta .form .ayuda{margin:0}
#propuesta .form .envio{display:grid;gap:12px;justify-items:start;margin-top:8px}
#propuesta .form .nota a{font-weight:600}
#propuesta .form .sin-wa{color:var(--tinta)}
/* Contacto directo junto al formulario (escritorio) */
.directo{margin-top:40px;border-top:1px solid var(--linea);max-width:420px}
.directo div{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:16px;min-height:60px;border-bottom:1px solid var(--linea)}
.directo dt{font-size:var(--t-peq);font-weight:500;color:var(--tinta-2)}
.directo dd a{font-weight:600;display:inline-flex;align-items:center;min-height:48px;overflow-wrap:anywhere}
@media (max-width:900px){#propuesta .directo{display:none}}   /* repite la barra y el pie; quien llega al ancla ve los campos (informe 10, H6) */

/* Teléfono */
@media (max-width:700px){
  .portada-int.bien .marco{display:none}  /* el abanico repite las hojas de las categorías; en teléfono el espacio es para el contenido */
  .cat-pleg>summary{border-top:1px solid var(--tinta);border-bottom:1px solid var(--linea)}
  .cat-pleg[open]>summary{border-bottom:0}
  .categorias>li{grid-template-columns:40px minmax(0,1fr);gap:0 14px;padding-block:14px;align-items:start}
  .categorias img{width:40px;height:40px}
  .categorias>li>div{display:block}
  .categorias h3{font-size:1.1875rem}
  .categorias p{margin-top:2px;font-size:var(--t-peq);line-height:1.45}
  @media (min-width:701px){.cat-pleg>summary{display:none}}
.no-terapia{margin-top:14px}
  .cabeza p{font-size:var(--t-peq);line-height:1.5;margin-top:12px}
  .paq-b>li{padding-block:16px}
  .paq-b>li.primero{padding-inline:16px;margin-inline:-16px}
  .paq-b .nom h3{font-size:1.1875rem}
  .paq-b .dato{margin:0}
  .paq-b .dias{padding:0;gap:8px;font-size:var(--t-peq)}
  .paq-b .marcas i{width:11px;height:16px}
  .paq-b .txt{grid-column:1/-1;font-size:var(--t-peq);line-height:1.45}
  .paq-b .txt .act{margin-top:2px}
  .ficha-org>.pleg{padding-block:0}
  .ficha-org h3{font-size:1.1875rem}
  .ficha-org p{margin:0 0 16px;font-size:var(--t-peq);line-height:1.5}
  .llevar{margin-top:8px}
  #condiciones .partida>.titulo{margin-bottom:20px}
  .pasos-b{display:none}               /* en teléfono el proceso ya lo cuentan «Qué recibe» y el formulario */
}

/* Impresión: una hoja limpia para la junta (paquetes, condiciones y contacto). Sin formulario ni bloques decorativos. */
@media print{
  .portada-int.bien .marco,.portada-int.bien .acciones,.categorias img,.llevar,
  body:has(.paq-b) .campo,#propuesta .cuerpo,.pasos-b,body:has(.paq-b) .pie .pie-col,body:has(.paq-b) .pie-marca,body:has(.paq-b) .pie .legal .enl{display:none!important}
  .portada-int.bien{padding-block:0 12pt}
  .portada-int.bien h1{font-size:22pt}
  .portada-int.bien .entrada{font-size:12pt}
  .categorias>li{padding-block:6pt;grid-template-columns:1fr;gap:0}
  .categorias h3,.paq-b h3{font-size:12pt}
  .paq-b>li{grid-template-columns:minmax(0,3fr) minmax(0,1.2fr) minmax(0,5.8fr);gap:4pt 12pt;padding-block:7pt;break-inside:avoid}
  .paq-b .txt p,.categorias p,.ficha-org p{max-width:none}
  #condiciones{break-before:page}
  .paq-b>li.primero{background:none;border-radius:0;margin-inline:0;padding-inline:0;border-bottom:1pt solid #BDB7A8}
  .paq-b .marcas{display:none}
  .paq-b .dias{color:#1B5E20}
  .cabeza{margin-bottom:12pt}
  .ficha-org>.pleg{padding-block:6pt;break-inside:avoid}
  .ficha-org h3{font-size:11pt}
  .ficha-org p{font-size:10pt;margin-top:1pt}
  #propuesta h2{font-size:14pt}
  .legal{font-size:9pt}
  #propuesta{background:none}
  #propuesta .directo{display:block!important;margin-top:8pt}
  #propuesta .directo div{min-height:0;padding-block:2pt}
  #propuesta .directo dd a{min-height:0}
  #propuesta .titulo>.sec2,#propuesta .directo div:last-child{display:none!important}
  #condiciones .partida>.titulo,#propuesta .partida>.titulo{margin-bottom:8pt;break-after:avoid}
  .directo{break-inside:avoid}
  #propuesta{padding-top:4pt}
  .seccion{padding-block:12pt}
  body:has(.paq-b) .pie{padding-block:8pt 0}
  h2{font-size:17pt}
}

/* ===== assets/css-contacto.css ===== */
/* Contacto: lo único que el sistema no cubre. Reglas prefijadas con clases propias (.contacto, .canales, .quieta, .sigue, .cont-*). */
/* Portada: titular a la izquierda, canales de contacto como filas grandes y tocables a la derecha */
.portada-int.contacto .txt{grid-column:1/6;align-self:start}
.canales{grid-column:7/13;border-top:1px solid var(--tinta)}
.canales li{border-bottom:1px solid var(--linea)}
.canales a,.canales div{display:grid;gap:2px;min-height:96px;align-content:center;padding:18px 16px 18px 0;color:var(--tinta);text-decoration:none;transition:background-color .15s}
.canales a:hover{background:var(--arena);color:var(--tinta);outline:16px solid var(--arena);outline-offset:0;clip-path:inset(0 -16px)}
.canales .rot{font-size:var(--t-peq);font-weight:500;color:var(--tinta-2)}
.canales .val{font-size:clamp(1.5rem,2.4vw,2rem);font-weight:600;line-height:1.2;letter-spacing:-.01em;overflow-wrap:anywhere}
.canales a .val{color:var(--verde);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
.canales div .val{font-size:clamp(1.3125rem,1.9vw,1.5rem)}
.pie-canales{grid-column:7/13;max-width:46ch}
@media (max-width:900px){.canales{margin-top:40px}.pie-canales{margin-top:24px}}
/* Secciones con formulario: la columna del título no se queda fija (es más alta que la pantalla) */
.partida.quieta>.titulo{position:static}
/* Lo que sigue: lista breve, con filetes, sin números */
.sigue{margin-top:48px}
.sigue h3{font-size:var(--t-peq);font-weight:500;letter-spacing:0;color:var(--tinta-2);padding-bottom:12px;border-bottom:1px solid var(--tinta)}
.sigue li{padding:18px 0;border-bottom:1px solid var(--linea);color:var(--tinta-2);max-width:none}
.sigue strong{display:block;font-weight:600;color:var(--tinta)}
/* Campo del formulario: etiqueta (con «(opcional)» en la misma línea), control y ayuda como una unidad */
.quieta .form .grupo{display:grid;gap:8px;align-content:start}
.quieta .form .grupo>label{display:block}
.quieta .form .ayuda{margin:0}
.quieta .form .envio{display:grid;gap:16px;justify-items:start;margin-top:8px}
@media (max-width:640px){.quieta .form .envio .btn{width:100%}}
/* Canal médico: una sola fila hacia para-medicos.html */
.cont-medicos .filas{border-top:1px solid var(--tinta)}
.cont-medicos .filas p{max-width:60ch}
/* En móvil el formulario va antes que la lista de pasos: quien llega al ancla ve los campos enseguida */
@media (max-width:900px){
  .partida.quieta{display:flex;flex-direction:column;row-gap:0}
  .partida.quieta>.titulo{display:contents}
  .partida.quieta .titulo>p{margin-top:20px}
  .partida.quieta>.cuerpo{order:2;margin-top:40px}
  .partida.quieta .sigue{order:3;margin-top:56px}
}
.quieta .form .dos{align-items:end}
/* La fila de médicos es una sección corta: menos aire que una sección normal */
.cont-medicos{padding-block:var(--aire) calc(var(--aire) + 24px)}
@media (min-width:701px){#medicos.seccion.cont-medicos{scroll-margin-top:calc(24px - var(--aire))}}

/* ===== assets/css-cuidado.css ===== */
/* Cuidado en el hogar (cuidado-en-el-hogar.html). Todo prefijado con .cuidado-p, .servicio, .incluye, .tarifa, .indice,
   .nota-serv o .puente, clases que solo usa esta página. */

/* ---------- Portada: índice de salto con filetes, hermano del texto y la hoja */
.indice{grid-column:1/-1;border-top:1px solid var(--tinta);margin-top:clamp(16px,4vw,56px)}
.indice ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.indice a{display:block;height:100%;padding:24px 24px 8px 0;color:var(--tinta);text-decoration:none}
.indice li+li a{border-left:1px solid var(--linea);padding-left:24px}
.indice b{display:block;font-weight:600;font-size:1.25rem;line-height:1.25}
.indice span{display:block;margin-top:6px;font-size:var(--t-peq);font-weight:600;color:var(--verde)}
.indice a:hover b{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
@media (max-width:1023px){.indice{margin-top:48px}.indice b{font-size:1.25rem}.indice span{margin-top:2px}}
@media (max-width:700px){.cuidado-p .indice{display:none}}   /* en teléfono el índice son los propios plegables */

/* ---------- Servicio: el resumen del plegable es el título de la sección */
.servicio.primero{padding-top:clamp(40px,6vw,80px)}
.serv-pleg[id]{scroll-margin-top:24px}
.serv-pleg>summary h2{max-width:22ch}
@media (min-width:701px){
  .serv-pleg>summary{margin-bottom:clamp(40px,4.5vw,64px)}
  .serv-pleg>summary::after{content:none}
}
/* columna del título: para quién es, precio y la hoja (todas las ilustraciones aquí, siempre con su marco) */
.servicio .titulo .sec2{max-width:34ch}
.tarifa{margin-top:32px!important;padding-top:24px;border-top:1px solid var(--linea);max-width:22rem!important}
.tarifa span{display:block}
.tarifa .pre,.tarifa .post{font-size:var(--t-peq);font-weight:500;line-height:1.5;color:var(--tinta-2)}
.tarifa .cifra-s{font-size:clamp(3.5rem,5.4vw,4.5rem);font-weight:300;line-height:1;letter-spacing:-.04em;color:var(--verde);font-variant-numeric:lining-nums proportional-nums;margin-block:2px 10px}
.tarifa.texto .cifra-s{font-size:clamp(2rem,3.1vw,2.5rem);letter-spacing:-.025em;line-height:1.1;margin-block:0 12px}
.servicio .titulo .marco{width:min(280px,70%);margin-top:48px}

/* ---------- Qué incluye / qué no incluye: misma escala que el resto del sitio (h3 24, listas 20) */
.incluye{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 32px;margin-top:48px}
.incluye h3{font-size:1.5rem;line-height:1.25;padding-bottom:14px;border-bottom:3px solid var(--verde)}
.incluye .no h3{border-bottom-color:var(--tinta-2)}
.incluye li{position:relative;padding:14px 0 14px 32px;border-bottom:1px solid var(--linea);font-size:1.25rem;line-height:1.5}
.incluye .no li{color:var(--tinta-2)}
.incluye .si li::before{content:"";position:absolute;left:2px;top:1.55em;width:16px;height:9px;border-left:3px solid var(--verde);border-bottom:3px solid var(--verde);transform:translateY(-70%) rotate(-45deg)}
.incluye .no li::before{content:"";position:absolute;left:2px;top:1.6em;width:15px;border-bottom:3px solid var(--tinta-2)}
.precios+.incluye{margin-top:56px}
.nota-serv{margin-top:24px;padding-left:20px;border-left:3px solid var(--verde);color:var(--tinta-2);font-size:var(--t-peq);font-weight:500;line-height:1.5;max-width:52ch}
.entrada+.nota-serv{margin-top:28px}
.puente{margin-top:40px;padding-top:20px;border-top:1px solid var(--linea);font-size:var(--t-peq);line-height:1.55;color:var(--tinta-2);max-width:56ch}
.puente a{font-weight:600}
.servicio .acciones{margin-top:48px}

/* Tabla de Respiro: bajo la duración, un bloque por hora (el gráfico de los planes, en pequeño) */
.precios.con-horas .horas{display:flex;gap:3px;min-height:0;margin-top:8px;max-width:117px}
.precios.con-horas .horas i{width:9px;height:18px}
.precios.con-horas td:nth-child(2){white-space:nowrap}

/* ---------- 701–1023: la retícula partida ya es una columna; la hoja se pone junto al precio */
@media (min-width:701px) and (max-width:1023px){
  .servicio .titulo{display:grid;grid-template-columns:minmax(0,1fr) 200px;column-gap:48px;align-items:end;margin-bottom:48px}
  .servicio .titulo .sec2,.servicio .titulo .tarifa{grid-column:1}
  .servicio .titulo .marco{grid-column:2;grid-row:1/3;width:200px;margin:0}
}
@media (min-width:1024px) and (max-width:1180px){.incluye{grid-template-columns:1fr}}

/* ---------- Teléfono: cada servicio es una fila plegable con nombre y precio */
@media (max-width:700px){
  .servicio{padding-bottom:0}
  .servicio.primero{padding-top:28px}
  .servicio.filete>.cont::before{margin-bottom:0}
  .serv-pleg>summary{padding-block:18px}
  .serv-pleg>summary h2{font-size:1.5rem;line-height:1.2}
  .serv-pleg>summary small{font-weight:600;color:var(--verde)}
  .serv-pleg[open]>summary{padding-bottom:12px}
  .serv-pleg[open]>.partida{padding-bottom:40px}
  .incluye{grid-template-columns:1fr;gap:24px}
  .incluye h3{font-size:1.3125rem;padding-bottom:10px}
  .nota-serv{padding-left:14px}
  .puente{margin-top:24px;padding-top:14px}
  .servicio .acciones{margin-top:28px}
  #caidas.servicio{padding-bottom:28px}
}
@media (max-width:359px){.incluye li{font-size:var(--t-peq)}}

/* Campo verde: la frase es más larga que la del inicio; se le da más medida para que no pase de tres líneas */
.campo-cuidado .voz{max-width:21ch;font-size:clamp(2rem,4.4vw,3.5rem)}

/* ===== assets/css-medicos.css ===== */
/* Para médicos: lo único que el sistema no cubre. Reglas prefijadas con clases propias (.med-*, .hoja-*, .hc-*, .medicos-form). */
/* Portada */
.med-portada .txt h1{max-width:18ch}
.med-portada .acciones .btn{font-family:var(--f)}
/* A qué pacientes aplica */
.med-lista li{padding-block:14px;border-bottom:1px solid var(--linea)}
.med-lista li:first-child{border-top:1px solid var(--linea)}
.med-lista li::before{top:1.55em}
.med-nota{margin-top:24px;font-size:var(--t-peq);max-width:52ch}
/* Cómo referir: tres pasos (el sistema prevé cuatro) */
@media (min-width:1024px){.pasos.fila.med-pasos{grid-template-columns:repeat(3,minmax(0,1fr))}.pasos.fila.med-pasos p{max-width:34ch}}
.med-secundaria{margin-top:40px;max-width:60ch;color:var(--tinta-2)}
.med-secundaria a{font-weight:600}
/* Campo verde: la frase corta a la izquierda, la declaración completa a la derecha */
.med-campo .voz{max-width:14ch}
/* La hoja para el consultorio: en pantalla, una hoja tamaño carta sobre el papel */
#hoja.blanca{background:var(--arena)}
.hoja-sec .acciones{margin-top:32px}
.hoja-ayuda{margin-top:16px;max-width:34ch}
.hoja-pleg>summary{display:none}
.hoja-consultorio{background:var(--blanco);border:1px solid var(--linea);padding:clamp(24px,4vw,56px);aspect-ratio:8.5/11;display:flex;flex-direction:column;gap:20px;color:var(--tinta)}
.hc-enc{display:flex;align-items:center;gap:12px;padding-bottom:16px;border-bottom:3px solid var(--verde)}
.hc-enc img{width:40px;height:40px}
.hc-marca{font-size:1.5rem;font-weight:600;color:var(--verde);letter-spacing:.01em;margin-right:auto}
.hc-marca span{font-weight:400}
.hc-web{font-size:var(--t-peq);font-weight:500;color:var(--tinta-2)}
.hc-tit{font-size:clamp(1.5rem,2.2vw,1.75rem);line-height:1.2;max-width:24ch}
.hc-entrada{font-size:var(--t-peq);line-height:1.5}
.hc-dos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.hc-sub{font-weight:600;padding-bottom:8px;border-bottom:1px solid var(--tinta)}
.hc-dos li{position:relative;padding:8px 0 8px 26px;border-bottom:1px solid var(--linea);font-size:var(--t-peq);line-height:1.4}
.hc-si li::before{content:"";position:absolute;left:1px;top:1.1em;width:14px;height:8px;border-left:2.5px solid var(--verde);border-bottom:2.5px solid var(--verde);transform:translateY(-70%) rotate(-45deg)}
.hc-no li::before{content:"";position:absolute;left:1px;top:1.1em;width:13px;border-bottom:2.5px solid var(--tinta-2)}
.hc-datos{display:grid;gap:12px}
.hc-datos div{display:grid;grid-template-columns:9.5em minmax(0,1fr);gap:16px;font-size:var(--t-peq);line-height:1.45}
.hc-datos dt{font-weight:600}
.hc-tel{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 24px;padding-block:16px;border-block:1px solid var(--linea);margin-top:auto}
.hc-num{font-size:clamp(2rem,3.4vw,2.5rem);font-weight:600;color:var(--verde);letter-spacing:-.01em;line-height:1.1}
.hc-tel p:last-child{font-size:var(--t-peq);line-height:1.45}
.hc-legal{font-size:var(--t-peq);line-height:1.45;color:var(--tinta-2)}
@media (max-width:640px){
  .hoja-consultorio{aspect-ratio:auto}
  .hc-dos{grid-template-columns:1fr}
  .hc-datos div{grid-template-columns:1fr;gap:2px}
  .hc-web{display:none}
}
@media (max-width:700px){
  .med-portada .marco{display:none}
  .hoja-pleg>summary{display:grid}
  .hoja-pleg[open]>summary{margin-bottom:16px}
  .hoja-pleg>summary{border-bottom:3px solid var(--verde);padding-block:10px}
  .med-lista li{padding-block:10px;font-size:var(--t-peq)}
  .med-secundaria{margin-top:24px;font-size:var(--t-peq)}
}
/* Formulario de referido: etiqueta con «(opcional)» en la misma línea */
.medicos-form .grupo{display:grid;gap:8px;align-content:start}
.medicos-form .grupo>label{display:block}
.medicos-form .envio{display:grid;gap:16px;justify-items:start;margin-top:8px}
.medicos-form>.titulo{position:static}
.med-aviso{margin-top:32px;font-weight:500}
@media (max-width:640px){.medicos-form .envio .btn{width:100%}}

/* Impresión: en esta página solo sale la hoja, en una página carta limpia */
@media print{
  @page{size:letter;margin:14mm 16mm}
  body:has(.hoja-consultorio){font-size:11pt}
  body:has(.hoja-consultorio) .enc,body:has(.hoja-consultorio) .pie,body:has(.hoja-consultorio) .barra,body:has(.hoja-consultorio) .saltar{display:none!important}
  main:has(.hoja-consultorio)>:not(#hoja){display:none!important}
  #hoja{padding:0!important;background:none!important}
  #hoja>.cont{padding:0!important;max-width:none}
  #hoja .hoja-sec{display:block}
  #hoja .hoja-sec>.titulo,.hoja-pleg>summary{display:none!important}
  .hoja-consultorio{border:0;padding:0;aspect-ratio:auto;min-height:240mm;gap:12pt;break-inside:avoid}
  .hc-enc{padding-bottom:10pt;border-bottom:2pt solid #2E7D32!important}
  .hc-enc img{width:30pt;height:30pt}
  .hc-marca{font-size:18pt;color:#1B5E20!important}
  .hc-web,.hc-entrada,.hc-dos li,.hc-datos div,.hc-tel p:last-child{font-size:11.5pt}
  .hc-tit{font-size:21pt;max-width:none}
  .hc-entrada{font-size:12.5pt}
  .hc-sub{font-size:12.5pt}
  .hc-dos li{padding-block:5pt}
  .hc-num{font-size:30pt;color:#1B5E20!important}
  .hc-legal{font-size:9.5pt;line-height:1.4}
  .hc-si li::before{border-color:#2E7D32!important}
}
/* Formularios en dos columnas: los campos se alinean aunque una etiqueta ocupe dos líneas */
.medicos-form .form .dos{align-items:end}
@media (max-width:700px){
  .hoja-acc,.hoja-ayuda{display:none}           /* en teléfono se imprime desde la portada; aquí basta con ver la hoja */
  .med-campo .voz{max-width:12ch}
}
.med-agencia{margin-top:32px;color:var(--tinta-2);max-width:52ch}
@media (max-width:700px){.med-agencia{margin-top:20px;font-size:var(--t-peq)}.med-portada .acciones a:not(.btn){display:none}}

/* ===== assets/css-nosotros.css ===== */
/* Nosotros: lo único que el sistema no cubre. Todas las reglas van prefijadas con clases propias de la página. */
/* Texto editorial: la declaración ocupa el ancho; la prosa corre en las columnas 7–12, como el resto del sitio (informe 01, H10) */
.editorial{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;row-gap:clamp(40px,6vw,80px)}
.editorial .declaracion{grid-column:1/11;font-size:clamp(2rem,4.4vw,3.75rem);line-height:1.1;max-width:19ch}
.editorial .prosa{grid-column:7/13;max-width:60ch}
.editorial .al-mayor{padding-top:24px;border-top:1px solid var(--linea);font-weight:500;color:var(--tinta)}
@media (max-width:900px){.editorial{display:block}.editorial .prosa{margin-top:40px}}
/* Nota bajo el equipo */
.nota-equipo{margin-top:32px;max-width:52ch}
/* Compromisos: el dato («Antes de…») no se separa de su fila */
.filas.compromisos .dato{font-size:var(--t-peq)}
/* Iniciales dentro del marco pequeño de móvil: que no toquen el borde de la hoja */
@media (max-width:520px){.equipo .marco .iniciales{font-size:1.75rem}}
@media (max-width:700px){
  .nos-portada .marco{display:none}               /* en teléfono la ilustración del equipo repite lo que dicen las iniciales */
  .editorial .al-mayor{padding-top:16px}
}

/* ===== assets/css-productos.css ===== */
/* Productos — reglas propias, prefijadas con .catalogo-s / .portada-int.prod / .catalogo .ficha / .barra-cat */

/* Portada: menos aire abajo; el catálogo es el contenido */
.portada-int.prod{padding-bottom:clamp(40px,5vw,64px)}

/* Aviso antes del catálogo */
.catalogo-s .aviso{margin-bottom:clamp(40px,5vw,56px)}
.catalogo-s .aviso strong{font-weight:600}

/* Filtros y nota de precios en una sola franja */
.barra-cat{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:8px 32px;border-bottom:1px solid var(--linea);margin-bottom:8px}
.barra-cat .filtros{border-bottom:0;margin-bottom:-1px;flex-wrap:nowrap}
.barra-cat .filtros button{white-space:nowrap;line-height:1.3}
.filtros .n{font-weight:400;color:var(--tinta-2)}
.precios-nota{font-size:var(--t-peq);font-weight:500;color:var(--tinta-2);padding-bottom:16px}

/* Hasta 1023 px los filtros no caben con la nota al lado: fila propia que se desliza si hace falta (sin dos filas) */
@media (max-width:1023px){
  .barra-cat{display:block;border-bottom:0;margin-bottom:0}
  .barra-cat .filtros{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;margin-inline:calc(-1 * var(--margen));padding-inline:var(--margen);border-bottom:1px solid var(--linea);margin-bottom:0}
  .barra-cat .filtros::-webkit-scrollbar{display:none}
  .barra-cat .filtros button{flex:none}
  .precios-nota{padding:12px 0 0}
}
@media (max-width:700px){.barra-cat .filtros{gap:0 22px}}

/* Fichas: marco más grande para que el dibujo se lea (informe 01, H9); pie alineado con el de la vecina */
.catalogo .ficha[hidden]{display:none}
.catalogo .ficha{grid-template-columns:160px minmax(0,1fr);gap:24px}
.catalogo .ficha .marco{width:160px}
.catalogo .ficha>.txt{align-self:stretch;display:flex;flex-direction:column}
.catalogo .ficha h3{font-size:clamp(1.375rem,1.9vw,1.625rem)}
.catalogo .ficha .cat{margin-top:6px}
.catalogo .ficha .desc{margin-bottom:12px;max-width:38ch}
.catalogo .ficha .orden{font-size:var(--t-peq);font-weight:500;line-height:1.45;color:var(--tinta);padding-left:14px;border-left:3px solid var(--lima);margin-bottom:16px;max-width:36ch}
.catalogo .ficha .orden.rx{border-left-color:var(--verde);font-weight:600}
.catalogo .ficha .pie-ficha{margin-top:auto}
.catalogo .ficha .precio{white-space:nowrap}
.catalogo .ficha .pie-ficha a{white-space:nowrap;font-size:var(--t-peq)}
.catalogo .ficha .pie-ficha{column-gap:20px}
/* Tras el campo verde, el cierre no necesita filete ni todo el aire de arriba */
.catalogo-s~.campo+.cierre{padding-top:var(--aire)}
.catalogo-s~.campo+.cierre .cont::before{display:none}
.catalogo+.nota-planes{margin-top:28px;padding-top:0;border-top:0}
@media (max-width:1180px) and (min-width:1001px){.catalogo .ficha{grid-template-columns:136px minmax(0,1fr)} .catalogo .ficha .marco{width:136px}}

/* Teléfono: una sola fila de filtros que se desliza; ficha compacta (el primer artículo entra en la primera pantalla) */
@media (max-width:700px){
  .portada-int.prod{padding-block:32px 28px}
  .catalogo-s .aviso{margin-bottom:24px;line-height:1.5}
  .barra-cat .filtros button{flex:none;font-size:1.0625rem;min-height:48px}
  .precios-nota{padding:10px 0 0;line-height:1.45}
  .catalogo .ficha{grid-template-columns:88px minmax(0,1fr);gap:0 16px;padding-block:20px;row-gap:0}
  .catalogo .ficha .marco{width:88px}
  .catalogo .ficha>.txt{display:contents}
  .catalogo .ficha .marco{grid-row:1/5;align-self:start}
  .catalogo .ficha h3,.catalogo .ficha .cat,.catalogo .ficha .desc,.catalogo .ficha .orden{grid-column:2}
  .catalogo .ficha h3{font-size:1.1875rem;line-height:1.25}
  .catalogo .ficha .cat{font-size:1.0625rem;margin-top:2px}
  .catalogo .ficha .desc{margin:4px 0 0;font-size:var(--t-peq);line-height:1.45}
  .catalogo .ficha .cat .pref{display:none}
  .catalogo .ficha .orden{margin:8px 0 0;padding-left:10px}
  .catalogo .ficha .pie-ficha{grid-column:1/-1;margin-top:8px;gap:0 16px;padding-top:0}
  .catalogo .ficha .precio{font-size:1.375rem}
  .catalogo .ficha .pie-ficha a{font-size:1.0625rem}
}
@media (max-width:360px){.catalogo .ficha{grid-template-columns:72px minmax(0,1fr)} .catalogo .ficha .marco{width:72px}}

@media print{
  .barra-cat{border:0}
  .catalogo .ficha{grid-template-columns:72pt minmax(0,1fr);padding-block:8pt}
  .catalogo .ficha .marco{width:72pt;background:none}
  .catalogo .ficha .pie-ficha a{display:none}
  body:has(.catalogo-s) .campo{display:none}
}

/* ===== assets/css-respiro.css ===== */
/* Respiro Familiar (landing de campaña). Prefijos propios: .portada-r, .tit-planes, .plan-pleg, .vis-pleg, .visita.
   La portada es sobria a propósito: campo verde y h1 del sistema (Montserrat 600). El momento memorable es el del inicio. */

/* ---------- Portada verde, continua con el encabezado */
.portada-r{background:var(--verde);color:var(--blanco);padding-block:clamp(48px,7vw,104px) clamp(40px,5vw,64px)}
.portada-r .cont{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;align-items:end}
.portada-r .txt{grid-column:1/9}
.portada-r h1{font-family:var(--f);font-style:normal;font-weight:600;font-size:clamp(2.375rem,5.2vw,4rem);line-height:1.05;letter-spacing:-.025em}
@media (min-width:701px){.portada-r h1 span{display:block}}
.portada-r .entrada{margin-top:clamp(24px,3vw,32px);max-width:40ch}
.portada-r .acciones a:not(.btn){color:var(--blanco)}
.portada-r .marco{grid-column:10/13}
.portada-r .datos{grid-column:1/-1;border-top-color:var(--filete-claro);margin-top:clamp(48px,6vw,80px)}
.portada-r .datos div+div{border-color:var(--filete-claro)}
.portada-r .datos dt{color:var(--blanco)}
/* ≤900: texto arriba; debajo, los datos en una columna y la hoja a su derecha (nunca encima de ellos) */
@media (max-width:900px){
  .portada-r .cont{grid-template-columns:minmax(0,1fr) 200px;column-gap:32px;align-items:center}
  .portada-r .txt{grid-column:1/-1}
  .portada-r .datos{grid-column:1;grid-row:2;margin-top:40px}
  .portada-r .marco{grid-column:2;grid-row:2;width:100%;margin-top:40px}
}
@media (max-width:700px){
  /* teléfono: la hoja acompaña a los botones; los datos van debajo, en filas de una línea */
  .portada-r .cont{grid-template-columns:minmax(0,1fr) 104px;column-gap:16px;align-items:center}
  .portada-r .txt{display:contents}
  .portada-r h1,.portada-r .entrada{grid-column:1/-1}
  .portada-r .acciones{grid-column:1;grid-row:3;align-self:center}
  .portada-r .acciones .btn{width:100%;padding-inline:12px}
  .portada-r .marco{grid-column:2;grid-row:3;margin-top:28px}
  .portada-r .datos{grid-column:1/-1;grid-row:4;margin-top:28px}
  .portada-r dl.datos>div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:12px 0}
  .portada-r dl.datos>div dd{font-size:1.125rem;margin:0;text-align:right}
}
@media (max-width:359px){.portada-r .cont{grid-template-columns:minmax(0,1fr) 88px}}

/* ---------- Planes */
.tit-planes{max-width:24ch}
.plan .det{margin-top:6px;font-size:var(--t-peq);line-height:1.5;min-height:3em}
.plan:not(.rec) .det{color:var(--tinta-2)}
.plan .horas.mes{max-width:185px}
.plan-pleg{margin-top:24px}
.plan-pleg>summary .pleg-t{font-size:var(--t-peq);font-weight:600;padding-bottom:10px}
.plan-pleg ul{margin-top:0}
.plan .pie-plan .btn{width:100%}
.plan.rec .plan-pleg>summary .pleg-t{color:var(--blanco)}
@media (max-width:900px){.plan .det{min-height:0}.planes .plan:first-child{border-top:0}}
@media (max-width:700px){
  .plan-pleg{margin-top:12px}
  .plan-pleg>summary{border-top:1px solid var(--linea);min-height:56px}
  .plan-pleg>summary .pleg-t{padding:0}
  .plan-pleg[open]>summary{border-bottom:0}
  .plan.rec .plan-pleg>summary{border-top-color:rgba(255,255,255,.25)}
  .plan.rec .plan-pleg>summary::after{content:none}
}

/* ---------- Ejemplo de visita: hora y actividad, con filetes */
.vis-pleg>summary .pleg-t{font-weight:600}
@media (min-width:701px){.vis-pleg>summary{display:none}}
.visita{border-top:1px solid var(--tinta)}
.visita>li{display:grid;grid-template-columns:9rem minmax(0,1fr);column-gap:24px;align-items:baseline;padding-block:24px;border-bottom:1px solid var(--linea)}
.visita .hora{font-size:1.75rem;font-weight:300;line-height:1.1;letter-spacing:-.02em;color:var(--verde);font-variant-numeric:lining-nums proportional-nums;white-space:nowrap}
.visita .hora span{font-size:var(--t-peq);font-weight:500;letter-spacing:0;color:var(--tinta-2)}
.visita h3{font-size:1.5rem}
.visita div p{margin-top:6px;color:var(--tinta-2);max-width:42ch}
@media (max-width:700px){
  .vis-pleg>summary{border-top:1px solid var(--tinta);border-bottom:1px solid var(--linea)}
  .vis-pleg[open]>summary{border-bottom:0}
  .visita>li{grid-template-columns:7.75rem minmax(0,1fr);column-gap:12px}
  .visita .hora{font-size:1.375rem}
  .visita h3{font-size:1.1875rem}
}

/* Teléfono: lo que ya se dice en otro lugar de la página se omite para quedar por debajo de 6,000 px */
@media (max-width:700px){
  .r-quien .titulo .sec2,.r-sino .titulo .sec2,.r-sino .si-no+p{display:none}
  .r-quien .filas li:first-child .fila{padding-top:0}
  .plan .horas{gap:4px}.plan .horas i{width:11px;height:22px}.plan .horas.mes{max-width:none}
  .pasos.r-pasos>li{padding-block:14px}
}

/* ===== assets/movil.css ===== */
/* Viva+Care — capa posterior (va DESPUÉS de los css-*.css en vivacare.css).
   1) Conciliación: resuelve los choques que aparecen al unir los css-*.css en un solo archivo (informe 11, H4).
   2) Capa móvil (≤700 px): compacta el sitio para que cada página quede cerca de 6,000 px a 390 (informe 10).
   3) Plegables .pleg en teléfono.
   Si una página necesita ganar a esta capa, usa un selector más específico en su css-*.css. */

/* ===== 1. Conciliación ===== */
.form .aviso{margin-bottom:0}                       /* .aviso de productos no debe alcanzar al aviso del formulario */
.servicio .titulo .marco{margin-bottom:0}           /* .partida .titulo .marco (contacto) no debe alcanzar a cuidado */
.servicio .partida>.titulo,#evaluacion .partida>.titulo{position:static} /* títulos más altos que la pantalla (QA D6) */
@media (max-width:1023px){                          /* cuidado: el índice de cuatro columnas sigue a .partida (QA D3) */
  .indice ul{grid-template-columns:1fr}.indice a{padding:14px 0;border-bottom:1px solid var(--linea)}.indice li+li a{border-left:0;padding-left:0}
}
@media (max-width:900px){                           /* respiro 701–900: la hoja no tapa los datos (QA D1) */
  .portada-r .datos{grid-template-columns:1fr}.portada-r .datos div{padding:20px 0}
  .portada-r .datos div+div{border-left:0;border-top:1px solid var(--filete-claro);padding-left:0}
}
@media (max-width:359px){                           /* cuidado a 320: la tabla de precios cabe (QA D4) */
  .precios.con-horas td:nth-child(2){white-space:normal}
  .precios th,.precios td,.precios td:first-child{padding-right:8px}
  .precios.con-horas .horas{display:none}
  h2{font-size:1.625rem}
}
.canales a,.directo dd a{overflow-wrap:anywhere}
.seccion.servicio.primero[id]:not(.junta){scroll-margin-top:0}          /* cuidado: la primera sección tiene menos aire arriba */

/* ===== 2. Capa móvil ===== */
@media (max-width:700px){
  :root{--sec:48px;--margen:20px;--aire:32px;--enc:60px}
  body{font-size:1.125rem;line-height:1.55}
  h1{font-size:clamp(1.875rem,8.7vw,2.125rem)}
  h2{font-size:clamp(1.625rem,7.2vw,1.75rem)}
  h3{font-size:1.3125rem}
  .entrada{font-size:1.1875rem}
  html{scroll-padding-top:72px}
  section[id]{scroll-margin-top:0}
  .tit-ancho{margin-bottom:28px}
  .partida>.titulo{margin-bottom:28px}
  .partida>.titulo p{margin-top:14px}
  .acciones{margin-top:28px;gap:8px 24px}
  .pila-g>*+*{margin-top:36px}
  /* Encabezado de 60 px */
  .enc .cont{min-height:60px}
  .marca{font-size:1.25rem;gap:10px}.marca img{height:36px}
  .menu-btn{min-height:48px;padding:6px 16px}
  .nav{padding:4px var(--margen) 20px}
  .nav a{min-height:56px}
  /* Portada del inicio en teléfono */
  .abrazo h1{font-size:clamp(2.125rem,11.2vw,2.75rem)}
  .abrazo .entrada{font-size:1.1875rem}
  .tras-abrazo{padding-top:56px}
  /* Declaración y datos */
  .declaracion{font-size:1.625rem}
  .datos{margin-top:28px}
  .datos div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:12px 0}
  .datos dt{flex:none}
  .datos dd{margin:0;text-align:right;font-size:1.125rem}
  .portada-r .datos div{display:block}
  .portada-r .datos dd{text-align:left;font-size:1.25rem}
  /* Protagonista: hoja pequeña a la izquierda */
  .prot{grid-template-columns:96px minmax(0,1fr);gap:4px 16px;padding:20px;align-items:start}
  .prot .marco{max-width:96px;grid-row:1/4}
  .prot>div:last-child{display:contents}
  .prot h3{font-size:1.5rem;grid-column:2}
  .prot p{grid-column:2;margin-top:4px;font-size:var(--t-peq)}
  .prot .precio-l{margin-top:8px}
  .prot .btn{grid-column:1/-1;margin-top:16px;width:100%}
  .prot+.filas{margin-top:24px}
  .filas a,.filas .fila{padding-block:20px;gap:2px 16px}
  .filas p{font-size:var(--t-peq);line-height:1.5}
  .filas.breve p{display:none}
  /* Campo */
  .campo{padding-block:56px}
  .campo .voz{font-size:2rem}
  .campo .apoyo{margin-top:24px}
  .campo .apoyo p{font-size:1.125rem}
  .campo .apoyo a{margin-top:12px}
  /* Pasos */
  .pasos>li{grid-template-columns:48px minmax(0,1fr);gap:14px;padding-block:18px}
  .pasos img{width:48px;height:48px}
  .pasos p{font-size:var(--t-peq);line-height:1.5;margin-top:4px}
  .pasos.breve p{display:none}
  .pasos.breve>li{align-items:center}
  /* Sí / no */
  .si-no{gap:0}
  .si-no li{padding:12px 0 12px 32px;font-size:var(--t-peq);line-height:1.45}
  .si-no+p{margin-top:20px;font-size:var(--t-peq)}
  /* Preguntas */
  .preg summary{padding:16px 0;font-size:1.1875rem;min-height:60px}
  .preg details p{padding:0 0 20px;font-size:var(--t-peq)}
  /* Cierre */
  .cierre p{margin-top:16px}
  /* Pie corto */
  .pie{padding-block:32px 20px}
  .pie .cont{gap:16px}
  .pie img{width:72px}
  .hechos li{padding:7px 0}
  .pie .lema{display:none}
  .pie .pie-t{margin-bottom:0}
  .pie .pie-t+ul+.pie-t{margin-top:12px}
  .pie ul.enl{display:flex;flex-wrap:wrap;gap:0 24px}
  .pie a,.pie li.txt{font-size:var(--t-peq)}
  .pie .legal{padding-top:20px}
  /* Portadas interiores */
  .portada-int{padding-block:40px 48px}
  .portada-int .txt .entrada{margin-top:18px}
  .portada-int .marco{max-width:168px;margin-top:32px}
  .portada-int.bien .marco{max-width:240px}
  .portada-r{padding-block:36px 32px}
  /* Cuidado en el hogar */
  .indice{margin-top:28px}
  .indice a{padding:10px 0;min-height:60px}
  .servicio .titulo{display:grid;grid-template-columns:minmax(0,1fr) 96px;gap:0 16px;align-items:end;margin-bottom:24px}
  .servicio .titulo h2,.servicio .titulo .sec2{grid-column:1/-1}
  .servicio .titulo .marco{width:96px;margin:0}
  .tarifa{margin-top:20px!important;padding-top:16px}
  .tarifa .cifra-s{font-size:3rem}
  .tarifa.texto .cifra-s{font-size:1.75rem}
  .incluye{gap:20px;margin-top:28px}
  .incluye li{padding:9px 0 9px 28px;font-size:var(--t-peq)}
  .incluye .marco{width:112px;margin-top:20px}
  .incluye+.precios,.precios+.incluye{margin-top:28px}
  .precios{margin-top:20px}
  .precios td{padding:12px 12px 12px 0}
  .precios.con-horas td:nth-child(2){white-space:normal}
  /* Planes de Respiro */
  .planes{margin-top:24px}
  .plan{padding:24px 0}
  .plan.rec{padding:32px var(--margen)}
  .plan .cifra{font-size:3.5rem;margin-top:8px}
  .plan:not(.rec){display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;column-gap:16px}
  .plan:not(.rec)>*{grid-column:1/-1}
  .plan:not(.rec)>h3{grid-column:1}
  .plan:not(.rec)>.cifra{grid-column:2;grid-row:1;font-size:2.5rem;margin:0}
  .horas{margin-top:14px}
  .plan .dur{margin-top:10px}
  .plan ul{margin-top:16px}
  .plan li{padding:9px 0;font-size:var(--t-peq)}
  .plan .det{font-size:var(--t-peq)}
  .plan .pie-plan{padding-top:16px}
  .nota-planes{margin-top:28px;padding-top:16px}
  .visita>li{padding-block:14px;row-gap:2px}
  .visita .hora{font-size:1.5rem}
  .visita div p{font-size:var(--t-peq);margin-top:2px}
  /* Paquetes de Bienestar */
  .categorias>li{grid-template-columns:48px minmax(0,1fr);gap:6px 14px;padding-block:14px}
  .categorias img{width:48px;height:48px}
  .categorias p{font-size:var(--t-peq);line-height:1.5}
  .paquetes>li{grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;padding-block:18px;align-items:center}
  .paquetes>li>p{grid-column:1/-1;font-size:var(--t-peq);line-height:1.5}
  .paquetes .dias{margin:0;gap:8px}
  .cabeza{margin-bottom:24px}
  .cotiza{margin-top:32px;padding-top:16px}
  .cotiza p{font-size:var(--t-peq)}
  .directo{margin-top:24px}
  /* Formularios */
  .form{gap:16px}
  .form .dos{gap:16px}
  .form input,.form select{min-height:56px;padding:12px 14px}
  .form textarea{min-height:104px}
  .form .envio .btn{width:100%}
  .sigue{margin-top:32px}
  .sigue li{padding:12px 0;font-size:var(--t-peq)}
  .partida.quieta>.cuerpo{margin-top:24px}
  .partida.quieta .sigue{margin-top:36px}
  #medicos .titulo .marco{display:none}
  .form .aviso{padding:10px 0 10px 16px;font-size:var(--t-peq)}
  .canales{margin-top:24px}
  .canales a,.canales div{min-height:68px;padding:10px 0}
  .canales .val{font-size:1.375rem}
  .canales div .val{font-size:1.1875rem}
  /* Catálogo */
  .aviso{padding:4px 0 4px 16px;font-size:var(--t-peq)}
  .filtros{gap:0 24px}
  .filtros button{min-height:52px;font-size:1.125rem}
  .ficha{grid-template-columns:72px minmax(0,1fr);gap:0 16px;padding-block:22px}
  .ficha .marco{width:72px}
  .ficha h3{font-size:1.25rem}
  .ficha .cat{margin-top:2px}
  .ficha .desc{margin:6px 0 0;font-size:var(--t-peq);line-height:1.45;max-width:none}
  .ficha .pie-ficha{grid-column:1/-1;margin-top:6px;padding-top:0;border-top:0}
  .ficha .precio{font-size:1.375rem;font-weight:600}
  /* Equipo y editorial */
  .equipo>li{grid-template-columns:72px minmax(0,1fr);gap:16px;padding-block:22px;align-items:start}
  .equipo .marco{width:72px}
  .equipo .marco .iniciales{font-size:1.25rem}
  .equipo p.bio{font-size:var(--t-peq);line-height:1.5;margin-top:8px}
  .nota-equipo{margin-top:20px;font-size:var(--t-peq)}
  .editorial .declaracion{font-size:1.75rem}
  .editorial .prosa{margin-top:24px}
  .pila>*+*{margin-top:16px}
}
@media (max-width:380px){
  .marca span{font-size:1.125rem}
}

/* ===== 3. Plegables .pleg en teléfono =====
   Marcado: <details class="pleg" open data-movil="cerrado"><summary><div><h3>Título</h3><small>Resumen de una línea</small></div></summary>…</details>
   El HTML lleva «open»: sin JS todo se ve. sitio.js cierra en teléfono los que llevan data-movil="cerrado"
   y abre el que contiene el ancla de la URL. En escritorio quedan abiertos y el resumen se comporta como un título. */
@media (max-width:700px){
  .pleg>summary{cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) 22px;gap:16px;align-items:center;min-height:60px}
  .pleg>summary::after{content:"";width:20px;height:20px;background:linear-gradient(var(--verde),var(--verde)) center/100% 3px no-repeat,linear-gradient(var(--verde),var(--verde)) center/3px 100% no-repeat}
  .pleg[open]>summary::after{background:linear-gradient(var(--verde),var(--verde)) center/100% 3px no-repeat}
  .pleg>summary small{display:block;font:500 var(--t-peq)/1.4 var(--f);color:var(--tinta-2);letter-spacing:0;margin-top:2px}
  .pleg[open]>summary small{display:none}
  .si-no .pleg>summary{border-bottom:3px solid var(--verde);padding-block:10px}
  .si-no .pleg.no>summary{border-bottom-color:var(--tinta-2)}
  .si-no .pleg h3{padding:0;border:0}
  .si-no .pleg+.pleg{margin-top:16px}
}

/* ===== assets/impresion.css ===== */
/* Viva+Care — impresión (última capa de vivacare.css). Texto oscuro sobre blanco, nada fijo, campos verdes
   convertidos a borde, y URL visible solo para teléfono y correo (informe 16, D8). */
@media print{
  @page{margin:16mm 14mm}
  html{scroll-padding:0}
  body{background:#fff!important;color:#2F2F2F;padding-bottom:0!important;font-size:11pt;line-height:1.45}
  .saltar,.barra,.menu-btn,.nav,.enc .btn,.abrazo .hoja-g,.filtros,.acciones .btn,.cierre .acciones,.pleg>summary::after,.preg summary::after{display:none!important}
  .enc,.partida>.titulo,.partida>.titulo.no-fija{position:static!important}
  .enc,.abrazo,.campo,.portada-r,.pie,.plan.rec,.blanca,.prot{background:none!important;color:#2F2F2F!important}
  .enc *,.abrazo *,.campo *,.portada-r *,.pie *,.plan.rec *{color:#2F2F2F!important;border-color:#BDB7A8!important}
  .abrazo,.campo,.portada-r,.plan.rec,.prot{border:1.5pt solid #2E7D32!important;padding:18pt!important;margin-block:12pt!important}
  .enc{border-bottom:1pt solid #BDB7A8}
  .marca img,.pie img{filter:brightness(0)}
  .abrazo .escena{padding:0!important}
  .abrazo h1 span,.abrazo .entrada,.abrazo .acciones,.abrazo .hechos{opacity:1!important;animation:none!important;transform:none!important}
  .seccion,.cierre,.campo{padding-block:18pt}
  .seccion.tras-abrazo{padding-top:18pt}
  .btn{background:none!important;color:#1B5E20!important;border:1.5pt solid #1B5E20!important;min-height:0;padding:4pt 10pt}
  a{color:#1B5E20!important}
  /* El número se imprime: si el texto del enlace no lo muestra («Llamar»), se añade. Los plegables se abren al imprimir (sitio.js). */
  a[href="tel:+19393267278"]:not(:has(.nb))::after{content:" (939-326-7278)";font-weight:400}
  .plan,.ficha,.pasos>li,.equipo>li,.preg details,.form .grupo,.filas>li,.si-no li{break-inside:avoid}
  h1,h2,h3{break-after:avoid}
  .pie .legal{border-top:1pt solid #BDB7A8}
}
