/* UXEN — home.css
 * Portado 1:1 de preview-home-final.html (capa de la portada; se encola SOLO en is_front_page()).
 * El mega header (.mh/.mhm/.mhs) NO se incluye aquí: vive en header.css (site-wide).
 */
.site-main{max-width:none;margin:0;padding:0}

:root{
	--bg:#f6f8ff; --bg2:#eef3ff; --surface:#ffffff;
	--fg:#666666; --muted:#8b90a2; --line:rgba(26,33,119,.12); --line2:rgba(26,33,119,.06);
	--accent:#2f6ef3; --accent-br:#1940e5; --accent-deep:#1a2177; --accent-soft:#e8effe; --accent-lt:#bcd3ff;
	--ink:#1a2177; --ink-fg:#ffffff; --ink-muted:rgba(255,255,255,.68); --ink-line:rgba(255,255,255,.16);
	--grad:radial-gradient(88% 78% at 8% 2%,rgba(47,110,243,.85) 0%,rgba(47,110,243,0) 52%),radial-gradient(82% 90% at 100% 100%,rgba(25,64,229,.92) 0%,rgba(25,64,229,0) 60%),linear-gradient(150deg,#1940e5 0%,#1b2a97 55%,#1a2177 100%);
	--shadow:0 18px 44px rgba(20,26,90,.14); --shadow-sm:0 8px 22px rgba(20,26,90,.10); --shadow-lg:0 50px 110px rgba(20,26,90,.22);
	--serif:"Playfair Display",Georgia,serif;
	--sans:"Inter",system-ui,-apple-system,sans-serif;
	--ease:cubic-bezier(.16,1,.3,1);
	--rad:12px;
}
*{box-sizing:border-box}
html{scroll-behavior:auto}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);-webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:clip}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--serif);font-weight:600;margin:0;letter-spacing:-.02em;line-height:1.04}
.container{width:100%;max-width:1240px;margin-inline:auto;padding-inline:clamp(20px,5vw,56px)}
.eyebrow{font:600 .72rem var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--accent)}
.eyebrow--light{color:var(--accent-lt)}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal[data-d="1"]{transition-delay:.08s}.reveal[data-d="2"]{transition-delay:.16s}.reveal[data-d="3"]{transition-delay:.24s}

/* ---------- NAV (fijo, claro) ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:1000;transition:.4s var(--ease)}
.nav__in{display:flex;align-items:center;justify-content:space-between;padding-block:20px;border-bottom:1px solid transparent}
.brand img{height:26px;width:auto;display:block}
.nav__links{display:flex;gap:15px;font-size:.8rem;flex-wrap:wrap}
.nav__links a{position:relative;color:var(--muted);transition:color .3s}
.nav__links a:hover{color:var(--fg)}
.nav__links a::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:1px;background:currentColor;transition:width .35s var(--ease)}
.nav__links a:hover::after{width:100%}
.nav__cta{font:500 .82rem var(--sans);padding:11px 20px;border-radius:9px;border:1px solid var(--line);background:transparent;color:var(--ink);transition:.3s var(--ease);cursor:pointer}
.nav__cta:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.nav.is-stuck{background:rgba(255,255,255,.85);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.nav.is-stuck .nav__in{border-color:var(--line);padding-block:13px}
.nav.is-stuck .nav__cta{background:var(--accent);border-color:var(--accent);color:#fff}
.nav.is-stuck .nav__cta:hover{background:var(--accent-br);border-color:var(--accent-br)}
@media(max-width:860px){.nav__links{display:none}}

/* ---------- HERO 4.1 ---------- */
.gtext{font-style:italic;font-weight:600;background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.sb{display:flex;align-items:center;gap:10px;max-width:560px;padding:7px 7px 7px 20px;border-radius:14px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);transition:.3s var(--ease)}
.sb:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(47,110,243,.18),var(--shadow)}
.sb__ic{width:22px;height:22px;color:var(--accent);flex:0 0 auto}
.sb__in{flex:1 1 auto;min-width:0;border:0;background:transparent;color:#33384a;font:400 1.04rem var(--sans);padding:13px 4px;outline:none}
.sb__in::placeholder{color:#9aa0ad}
.sb__bt{flex:0 0 auto;border:0;cursor:pointer;font:500 .9rem var(--sans);padding:13px 26px;border-radius:10px;background:var(--grad);color:#fff;transition:.3s var(--ease)}
.sb__bt:hover{filter:brightness(1.08);transform:translateY(-1px)}
/* Móvil: el botón baja a su propia línea, pero la lupa y el campo se quedan
   juntos (con flex-basis:100% el input saltaba de línea y la lupa se quedaba
   sola en la primera fila). */
@media(max-width:430px){.sb{flex-wrap:wrap;border-radius:16px;padding:10px 14px;gap:8px}.sb__in{flex:1 1 120px;min-width:0;order:1;padding-inline:2px;font-size:1rem}.sb__bt{flex:1 0 100%;order:2;padding-block:12px}}
.qa1{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:26px;font-size:.82rem}
.qa1__lbl{font-size:.63rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);white-space:nowrap;margin-right:2px}
.qa1 a{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:100px;border:1px solid var(--line);color:var(--accent-deep);white-space:nowrap;flex:0 0 auto;transition:.25s var(--ease)}
.qa1 a i{width:6px;height:6px;border-radius:50%;background:var(--accent);flex:0 0 auto}
.qa1 a:hover{border-color:var(--accent);background:var(--accent-soft)}
.qa1 a.qa1__all{color:var(--accent);border-style:dashed}
.qa1 a.qa1__all:hover{background:var(--accent);color:#fff;border-style:solid}
/* ---------- SECCIÓN 1 · Hero de introducción (.hint) ----------
   Foto a sangre + copy de marca abajo, a dos columnas (titular / párrafos).
   El scrim es un div y no un ::after porque el <img> del fondo debe quedar
   debajo del degradado sin sacar el contenido a otro stacking context. */
.hint{position:relative;isolation:isolate;display:flex;align-items:flex-end;overflow:hidden;background:var(--ink);color:#fff;min-height:min(80vh,780px);min-height:min(80svh,780px);padding:clamp(96px,14vh,150px) 0 clamp(46px,6vh,74px)}
.hint__bg{position:absolute;inset:0;z-index:0}
.hint__bg img{width:100%;height:100%;object-fit:cover;object-position:50% 42%}
.hint__scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(10,14,58,.34) 0%,rgba(10,14,58,.05) 24%,rgba(10,14,58,.66) 54%,rgba(10,14,58,.94) 100%)}
.hint__in{position:relative;z-index:2;display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(24px,4vw,60px);align-items:end}
.hint__title{font:600 clamp(1.85rem,3.5vw,3.05rem)/1.09 var(--serif);letter-spacing:-.03em;color:#fff;margin-top:16px;text-wrap:balance}
.hint__title em{font-style:italic;font-weight:600;color:var(--accent-lt)}
.hint__copy p{margin:0;max-width:54ch;color:rgba(255,255,255,.86);font-size:clamp(.94rem,1.05vw,1.03rem);line-height:1.75}
.hint__copy p+p{margin-top:14px}
.hint__act{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.hint__btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 26px;border-radius:11px;font:500 .92rem var(--sans);transition:.3s var(--ease)}
.hint__btn--pri{background:#fff;color:var(--ink)}
.hint__btn--pri:hover{transform:translateY(-1px);box-shadow:0 16px 34px rgba(6,9,40,.34)}
.hint__btn--gh{border:1px solid rgba(255,255,255,.42);color:#fff}
.hint__btn--gh:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.72)}
/* ≤940 la rejilla se apila: el titular deja de competir con los párrafos y la
   foto se reencuadra hacia el edificio, que en retrato queda fuera del centro.
   Apilada, la copy ocupa mucho más alto y cae sobre el cielo (la parte clara de
   la foto): el degradado tiene que empezar a oscurecer mucho antes que en
   escritorio o el eyebrow en --accent-lt se vuelve ilegible. */
@media(max-width:940px){
	.hint{min-height:0;padding-top:clamp(84px,22vh,150px)}
	.hint__in{grid-template-columns:1fr;gap:22px}
	/* Apilada la foto se recorta a lo ancho (no a lo alto): la torre está al 44%
	   del original, así que el eje X es el único que la mantiene en cuadro. */
	.hint__bg img{object-position:44% 50%}
	.hint__scrim{background:linear-gradient(180deg,rgba(10,14,58,.44) 0%,rgba(10,14,58,.34) 20%,rgba(10,14,58,.64) 40%,rgba(10,14,58,.88) 70%,rgba(10,14,58,.95) 100%)}
	.hint__copy p{max-width:none}
}
/* En móvil la copy arranca mucho más arriba (el titular ocupa 6 líneas), justo
   sobre el cielo: hace falta otra vuelta de tuerca al degradado. */
@media(max-width:700px){
	.hint__scrim{background:linear-gradient(180deg,rgba(10,14,58,.46) 0%,rgba(10,14,58,.44) 16%,rgba(10,14,58,.76) 36%,rgba(10,14,58,.92) 68%,rgba(10,14,58,.96) 100%)}
}
@media(max-width:520px){.hint__act{flex-direction:column;align-items:stretch}}

/* ---------- SECCIÓN 2 · Buscador (antes hero de portada) ----------
   Al dejar de ser el primer bloque perdió el padding superior de hero. */
.hv1{position:relative;background:var(--bg);color:var(--fg);overflow:hidden;padding:clamp(56px,8vh,92px) 0 clamp(72px,9vh,110px)}
.hv1__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,5vw,64px);align-items:center}
.hv1__title{font:700 clamp(2.5rem,5.4vw,4.6rem)/1.02 var(--serif);letter-spacing:-.03em;color:var(--ink);margin-top:18px}
.hv1__lead{margin-top:18px;color:var(--fg);max-width:46ch;font-size:1.05rem;line-height:1.7}
.hv1 .sb{margin-top:28px}
.hv1__media{position:relative;z-index:0}
.hv1__media>img{width:100%;height:clamp(360px,50vh,520px);object-fit:cover;border-radius:18px;box-shadow:var(--shadow)}
.hv1__frame{position:relative;border-radius:18px;overflow:hidden;box-shadow:var(--shadow-lg)}
.hv1__frame img{display:block;width:100%;height:clamp(360px,50vh,500px);object-fit:cover}
.hv1__bar{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-around;gap:8px;padding:18px;color:#fff;background:linear-gradient(0deg,rgba(11,15,66,.86),rgba(11,15,66,.15) 70%,rgba(11,15,66,0))}
.hv1__st{text-align:center}
.hv1__st b{font:700 1.35rem/1 var(--serif)}
.hv1__st span{display:block;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.82);margin-top:5px}
@media(max-width:860px){.hv1__grid{grid-template-columns:1fr}}

/* ---------- SECCIÓN 2 · La red ---------- */
.s1{background:#fff;border-block:1px solid var(--line);padding-block:clamp(40px,6vw,68px);text-align:center}
.s1__in{max-width:1080px;margin-inline:auto}
.s1__ttl{font-size:clamp(1.7rem,3.4vw,2.6rem);margin-top:12px;color:var(--ink)}
.s1__ttl em{font-style:italic;font-weight:500;color:var(--accent)}
.s1__stats{margin-top:clamp(28px,4vw,44px);display:grid;grid-template-columns:repeat(5,1fr)}
.s1__stat{display:flex;flex-direction:column;align-items:center;gap:8px;padding:2px 8px;border-left:1px solid var(--line)}
.s1__stat:first-child{border-left:0}
.s1__stat b{display:block;font:700 clamp(1.6rem,3vw,2.4rem)/1 var(--sans);color:var(--ink);font-variant-numeric:tabular-nums;font-feature-settings:"tnum";letter-spacing:-.03em}
.s1__stat span{font:500 .68rem/1.35 var(--sans);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);text-align:center;text-wrap:balance}
/* Separadores: sólo entre columnas. Antes había cuatro medias-queries pisándose
   y en ≤440 la cuarta pintaba el borde del 4º dato con --ink-line (blanco sobre
   fondo blanco): se veía un hueco sin línea en mitad de la rejilla. */
@media(max-width:760px){.s1__stats{grid-template-columns:repeat(3,1fr);row-gap:34px}.s1__stat{border-left:1px solid var(--line)}.s1__stat:nth-child(3n+1){border-left:0}}
/* Ojo con la especificidad: en ≤440 conviven las dos medias-queries y `:nth-child(3n+1)`
   (0,2,0) le gana a `.s1__stat` (0,1,0), así que al 4º dato hay que devolverle el borde
   con otro :nth-child, no con la regla base — si no, queda un hueco sin línea. */
@media(max-width:440px){.s1__stats{grid-template-columns:repeat(2,1fr);row-gap:30px}.s1__stat:nth-child(even){border-left:1px solid var(--line)}.s1__stat:nth-child(odd){border-left:0}}

/* ---------- SECCIÓN 3 · Instalaciones (pin: scroll vertical -> horizontal) ---------- */
.hzp{position:relative;background:var(--grad)}
.hzp__sticky{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;align-items:center}
.hzp__track{display:flex;align-items:center;gap:clamp(18px,2.2vw,32px);padding-inline:clamp(20px,5vw,64px);will-change:transform}
.hzp__panel{flex:0 0 auto;height:min(76vh,640px)}
.hzp__intro{width:min(86vw,540px);display:flex;flex-direction:column;justify-content:center;padding-right:clamp(10px,3vw,40px)}
.hzp .eyebrow{color:var(--accent-lt)}
.hzp__intro h2{font-size:clamp(2.4rem,5vw,4.4rem);color:#fff;margin-top:16px;letter-spacing:-.03em;line-height:1}
.hzp__intro h2 em{font-style:italic;font-weight:600;color:var(--accent-lt);-webkit-text-fill-color:var(--accent-lt)}
.hzp__intro p{margin-top:18px;color:rgba(255,255,255,.82);max-width:38ch}
.hzp__scrollhint{display:inline-flex;align-items:center;gap:9px;margin-top:26px;color:#fff;font-weight:600;font-size:.9rem}
.hzp__scrollhint b{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.14);display:grid;place-items:center}
.hzp__slide{width:min(84vw,760px);position:relative;border-radius:28px;overflow:hidden;box-shadow:var(--shadow-lg)}
.hzp__slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hzp__slide::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 42%,rgba(12,14,50,.85))}
.hzp__no{position:absolute;top:22px;left:24px;z-index:2;font:italic 500 1rem var(--serif);color:rgba(255,255,255,.85)}
.hzp__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:clamp(26px,3.2vw,42px);color:#fff}
.hzp__cap h3{font:600 clamp(1.7rem,2.8vw,2.6rem) var(--serif)}
.hzp__cap p{margin-top:8px;color:rgba(255,255,255,.86);max-width:46ch}
.hzp__dots{position:absolute;left:0;right:0;bottom:30px;z-index:5;display:flex;gap:9px;justify-content:center}
.hzp__dot{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.34);transition:.3s var(--ease)}
.hzp__dot.on{width:30px;border-radius:100px;background:#fff}
@media(max-width:820px){
	.hzp{height:auto!important}
	.hzp__sticky{position:relative;top:0;height:auto;overflow:visible;display:block;padding-block:clamp(60px,10vw,90px)}
	.hzp__track{flex-direction:column;transform:none!important;padding-inline:clamp(20px,5vw,56px);gap:22px;max-width:640px;margin-inline:auto}
	.hzp__panel{width:100%!important;height:auto}
	.hzp__intro{padding:0 0 6px}
	.hzp__slide{aspect-ratio:16/12}
	.hzp__dots,.hzp__scrollhint{display:none}
}

/* ---------- FOOTER ---------- */
.foot{background:var(--ink);color:#fff;padding-block:clamp(56px,8vw,90px) 30px}
.foot__top{display:flex;justify-content:space-between;gap:32px;flex-wrap:wrap;padding-bottom:40px;border-bottom:1px solid var(--ink-line)}
.foot__brand img{height:34px;width:auto}
.foot__brand p{margin-top:14px;color:var(--ink-muted);max-width:34ch;font-size:.98rem}
.foot__cta{align-self:flex-start;padding:13px 26px;border-radius:11px;background:#fff;color:var(--ink);font:500 .92rem var(--sans);transition:.3s var(--ease)}
.foot__cta:hover{transform:translateY(-2px)}
.foot__cols{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;padding-block:44px}
.foot__col h4{font:600 .72rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 16px}
.foot__col ul{list-style:none;margin:0;padding:0;display:grid;gap:11px;font-size:.94rem}
.foot__col a{color:rgba(255,255,255,.8)}.foot__col a:hover{color:#fff}
.foot__bot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-top:24px;border-top:1px solid var(--ink-line);color:var(--ink-muted);font-size:.82rem}
@media(max-width:760px){.foot__cols{grid-template-columns:repeat(2,1fr)}}
@media(max-width:440px){.foot__cols{grid-template-columns:1fr}}

.wip{position:fixed;right:14px;bottom:14px;z-index:9000;background:var(--ink);color:#fff;font:600 11px/1 var(--sans);padding:8px 13px;border-radius:100px;letter-spacing:.02em;opacity:.9}

/* ---------- encabezado de sección ---------- */
.shead{max-width:800px;margin-bottom:clamp(34px,5vw,54px)}
.shead h2{font-size:clamp(2.1rem,4.8vw,3.6rem);margin-top:15px;color:var(--ink);letter-spacing:-.03em}
.shead h2 em{font-style:italic;font-weight:600;background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.shead p{margin-top:14px;color:var(--fg);max-width:56ch}

/* ---------- SECCIÓN 4 · Servicios (G5 · glass expandible) ---------- */
/* --g5-ph es la altura de la foto: el ícono va colgado justo del borde inferior
   de la imagen, así que si las dos se escriben a mano se despegan al primer
   retoque. Con la variable, cambiar la altura las mueve juntas. */
.g5{background:var(--surface);padding-block:clamp(56px,8vw,96px);--g5-ph:180px}
/* 3 columnas para las 6 tarjetas: en 4 quedaba una segunda fila coja de dos y un
   hueco a la derecha que se leía como si faltara contenido. */
.g5__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
/* La tarjeta es flex en columna y el body crece: así las seis cierran a la misma
   altura aunque solo dos lleven botón (ver .g5__btn). */
.g5__card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;transition:.2s var(--ease)}
.g5__card:hover{box-shadow:var(--shadow);transform:translateY(-3px)}
.g5__ph{height:var(--g5-ph);overflow:hidden}
.g5__ph img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.g5__card:hover .g5__ph img{transform:scale(1.07)}
.g5__ic{position:absolute;top:var(--g5-ph);left:18px;transform:translateY(-50%);z-index:3;width:44px;height:44px;border-radius:12px;background:var(--accent);color:#fff;display:grid;place-items:center;border:3px solid #fff;box-shadow:var(--shadow-sm)}
.g5__ic svg{width:22px;height:22px}
.g5__body{padding:32px 20px 22px;display:flex;flex-direction:column;flex:1}
.g5__body h3{font:600 1.2rem var(--serif);color:var(--ink)}
.g5__body p{font:400 .92rem var(--sans);color:var(--muted);margin-top:7px;line-height:1.55}
/* Unidades con micrositio propio (50 Labs, Hospital del Corazón). El margin-top
   auto empuja el botón al fondo de la tarjeta, y su ::after cubre la tarjeta
   entera para que todo el bloque sea clickeable sin envolver el <article> en un
   <a> (que se llevaría el h3 dentro del enlace). */
.g5__btn{align-self:flex-start;margin-top:auto;padding-top:16px;display:inline-flex;align-items:center;gap:7px;font:600 .85rem var(--sans);color:var(--accent);transition:color .2s var(--ease)}
.g5__btn svg{width:16px;height:16px;transition:transform .25s var(--ease)}
.g5__btn::after{content:"";position:absolute;inset:0;border-radius:16px}
.g5__btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
.g5__card--unit:hover{border-color:var(--accent-lt)}
.g5__card--unit:hover .g5__btn{color:var(--accent-br)}
.g5__card--unit:hover .g5__btn svg{transform:translateX(4px)}
@media(prefers-reduced-motion:reduce){.g5__btn svg{transition:none}}
@media(max-width:900px){.g5__grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.g5__grid{grid-template-columns:1fr}}

/* ---------- 5 · Presencia (mapa real MX + cards de sede) ---------- */
.pres{position:relative;background:#fff;padding:clamp(8px,1.5vw,20px) 0 clamp(56px,8vw,96px);text-align:center}
.pres .shead{margin-inline:auto;text-align:center}
.pres .shead p{margin-inline:auto}
/* Hospitales destacados: misma pieza que en Presencia, pero ahora vive sola justo
   debajo del hero, así que necesita su propio aire arriba (el .pres original casi
   no lleva padding-top porque venía pegado a la sección anterior). */
.pres--hosp{padding-block:clamp(44px,6vw,76px)}
.pres--hosp .scards{margin-top:26px}
/* Cuánto puede salirse el mapa del contenedor en móvil: exactamente el padding
   de .container, para que quede a sangre sin provocar scroll horizontal. */
.pres__map{--uxen-map-bleed:clamp(20px,5vw,56px)}
.mx{position:relative;width:100%;aspect-ratio:1000/643}
.mx__svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.cmap{max-width:880px;margin:0 auto}
.mfill use{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1;stroke-linejoin:round}
.pin{position:absolute;transform:translate(-50%,-50%);z-index:3}
.pin i{display:block;width:14px;height:14px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px rgba(47,110,243,.16),0 4px 12px rgba(47,110,243,.5);position:relative}
.pin i::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:1px solid var(--accent);animation:presPing 2.6s ease-out infinite;opacity:0}
@keyframes presPing{0%{transform:scale(.65);opacity:.7}100%{transform:scale(2);opacity:0}}
.pin em{position:absolute;bottom:calc(100% + 9px);left:50%;transform:translateX(-50%);white-space:nowrap;font:600 .72rem var(--sans);font-style:normal;color:#fff;background:var(--accent-deep);padding:4px 10px;border-radius:100px;box-shadow:0 6px 16px rgba(20,30,90,.25)}
.pin--soon i{background:#e0a23b;box-shadow:0 0 0 5px rgba(224,162,59,.18)}
.pin--soon i::after{border-color:#e0a23b}
.pin--soon em{background:#8a5a0c}
.scards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:34px;text-align:left;align-items:stretch}
@media(max-width:820px){.scards{grid-template-columns:1fr}}
.scard{position:relative;height:340px;border-radius:18px;overflow:hidden;box-shadow:var(--shadow-sm);color:#fff;transition:box-shadow .2s var(--ease),transform .2s var(--ease)}
.scard:hover{box-shadow:0 20px 44px rgba(20,26,90,.16);transform:translateY(-2px)}
.scard__ph{position:absolute;inset:0;z-index:0}
.scard__ph img{width:100%;height:100%;object-fit:cover}
.scard::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(12,14,50,.12) 25%,rgba(12,14,50,.88))}
.scard__badge{position:absolute;top:14px;left:14px;z-index:3;display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--ink);font:600 .64rem var(--sans);letter-spacing:.03em;padding:5px 11px;border-radius:100px}
.scard__badge i{width:6px;height:6px;border-radius:50%;background:#22a565}
.scard__badge--main i{background:var(--accent)}
.scard__over{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:20px}
.scard__over h4{font:600 1.08rem var(--sans);color:#fff;letter-spacing:-.01em}
.scard__loc{display:inline-flex;align-items:center;gap:6px;margin-top:4px;font:500 .85rem var(--sans);color:rgba(255,255,255,.94)}
.scard__loc svg{width:15px;height:15px;color:var(--accent-lt);flex:0 0 auto}
.scard__addr{font-size:.8rem;color:rgba(255,255,255,.72);margin:2px 0 0 21px}
.scard__btns{display:flex;gap:8px;margin-top:16px}
.scard__btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:9px;font:600 .8rem var(--sans);cursor:pointer;transition:.16s var(--ease);white-space:nowrap}
.scard__btn--primary{flex:1;background:#fff;color:var(--ink);padding:9px 12px}.scard__btn--primary:hover{filter:brightness(.95)}
.scard__btn--ghost{flex:1;background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.4);padding:9px 12px}.scard__btn--ghost:hover{background:rgba(255,255,255,.24)}
.scard__btn--icon{width:38px;padding:0;background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.4)}.scard__btn--icon:hover{background:rgba(255,255,255,.24)}.scard__btn--icon svg{width:17px;height:17px}
.scard__btn--wa{width:38px;padding:0;background:#25d366;color:#fff;border:0}.scard__btn--wa:hover{background:#1eb658}.scard__btn--wa svg{width:19px;height:19px;fill:currentColor}

/* ==== Bloques del plan añadidos: Especialidades · Tienda · Médicos · Inversionistas · Blog · Contacto ==== */
.ph-sec{padding-block:clamp(60px,8vw,100px)}
.ph-sec--tint{background:var(--surface)}
.ph-shead{max-width:640px;margin-bottom:clamp(26px,4vw,42px)}
.ph-shead--c{margin-inline:auto;text-align:center}
.ph-shead h2{font-size:clamp(1.9rem,4vw,3rem);color:var(--ink)}
.ph-shead p{margin-top:12px;color:var(--fg);max-width:54ch}
.ph-btn{display:inline-flex;align-items:center;gap:8px;font:600 .9rem var(--sans);padding:12px 22px;border-radius:11px;cursor:pointer;border:1px solid transparent;transition:.25s var(--ease)}
.ph-btn--grad{background:var(--grad);color:#fff;box-shadow:var(--shadow-sm)}
.ph-btn--grad:hover{filter:brightness(1.07);transform:translateY(-1px)}
.ph-btn--ghost{background:#fff;border-color:var(--line);color:var(--ink)}
.ph-btn--ghost:hover{border-color:var(--accent);background:var(--accent-soft)}
.ph-grid{display:grid;gap:18px}.ph-3{grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.ph-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.ph-3{grid-template-columns:1fr}}
.ph-spec{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
@media(max-width:900px){.ph-spec{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.ph-spec{grid-template-columns:repeat(2,1fr)}}
.ph-spec a{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:13px 15px;font-weight:600;color:var(--ink);font-size:.9rem}
.ph-spec a:hover{border-color:var(--accent);background:var(--accent-soft)}
.ph-spec .d{width:9px;height:9px;border-radius:50%;background:var(--accent);flex:0 0 auto}
/* Especialidades · fondo azul + tiles con icono */
.ph-sec--blue{background:var(--grad);color:#fff}
.ph-sec--blue .eyebrow{color:var(--accent-lt)}
.ph-sec--blue .ph-shead h2{color:#fff}
.ph-sec--blue .gtext{-webkit-text-fill-color:var(--accent-lt);color:var(--accent-lt);background:none}
.esp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.esp-tile{display:flex;align-items:center;gap:12px;padding:16px;border:1px solid rgba(255,255,255,.18);border-radius:14px;background:rgba(255,255,255,.07);transition:.16s var(--ease)}
.esp-tile:hover{background:#fff;transform:translateY(-2px)}
.esp-tile .ic{width:40px;height:40px;border-radius:11px;background:rgba(255,255,255,.14);color:#fff;display:grid;place-items:center;flex:0 0 auto;transition:.16s var(--ease)}
.esp-tile:hover .ic{background:var(--accent);color:#fff}.esp-tile .ic svg{width:21px;height:21px;display:block}
.esp-tile b{font:600 .92rem var(--sans);color:#fff}.esp-tile:hover b{color:var(--ink)}
.esp-more{display:inline-flex;align-items:center;gap:7px;margin-top:24px;color:#fff;font:600 .9rem var(--sans)}.esp-more svg{width:16px;height:16px;color:var(--accent-lt);display:block}
@media(max-width:900px){.esp-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){.esp-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:420px){.esp-grid{grid-template-columns:1fr}}
.ph-card{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-sm);transition:.3s var(--ease)}
.ph-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.ph-card img{width:100%;aspect-ratio:16/10;object-fit:cover}
.ph-card__b{padding:18px}.ph-card__b h3{font-size:1.15rem;color:var(--ink)}
.ph-tag{font-size:.8rem;color:var(--accent);font-weight:600}
.ph-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,48px);align-items:center}
@media(max-width:820px){.ph-split{grid-template-columns:1fr}}
.ph-split img{border-radius:16px;aspect-ratio:16/11;object-fit:cover;box-shadow:var(--shadow);width:100%}
.ph-split h2{font-size:clamp(1.9rem,4vw,3rem);color:var(--ink)}
.ph-mini{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.ph-mini span{font-size:.8rem;background:var(--accent-soft);color:var(--accent-deep);padding:6px 12px;border-radius:100px;font-weight:600}
.ph-shop{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:620px){.ph-shop{grid-template-columns:1fr}}
.ph-shop a{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;font-weight:600;color:var(--ink);display:flex;justify-content:space-between}
.ph-shop a:hover{border-color:var(--accent)}
/* ===== Tienda (copia fiel del demo, autocontenida) ===== */
.tshopx{line-height:1.5}
.tshopx a{color:inherit;text-decoration:none}
.tshopx .tx-wrap{max-width:1160px;margin:0 auto;padding-inline:clamp(20px,5vw,56px)}
.tshopx .tx-head{margin-bottom:clamp(24px,3vw,34px)}
.tshopx .tx-eye{font:600 .7rem var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}
.tshopx .tx-h2{font:600 clamp(1.7rem,3.6vw,2.7rem) var(--serif);color:var(--ink);margin:10px 0 0;letter-spacing:0}
.tshopx .tx-g{font-style:italic;font-weight:600;background:linear-gradient(135deg,#1940e5,#1a2177);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.tshopx .tx-ico{width:44px;height:44px;border-radius:12px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;flex:0 0 auto}.tshopx .tx-ico svg{width:22px;height:22px;display:block}
.tshopx .tx-price{font:700 1.05rem var(--sans);color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.tshopx .tx-price small{font-weight:500;font-size:.72rem;color:var(--muted)}
.tshopx .tx-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:9px;font:600 .8rem var(--sans);padding:9px 14px;transition:.16s var(--ease);white-space:nowrap}
.tshopx .tx-grid{display:grid;grid-template-columns:1.05fr 1.35fr;gap:18px}
.tshopx .tx-feat{background:linear-gradient(135deg,#1940e5,#1a2177);color:#fff;border-radius:18px;padding:26px;display:flex;flex-direction:column}
.tshopx .tx-feat .tx-ico{background:rgba(255,255,255,.16);color:#fff}
.tshopx .tx-feat h4{font:600 1.5rem var(--serif);margin:16px 0 0;color:#fff}
.tshopx .tx-feat>p{color:rgba(255,255,255,.82);font-size:.9rem;margin:6px 0 0}
.tshopx .tx-feat ul{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.tshopx .tx-feat li{display:flex;align-items:center;gap:9px;font-size:.86rem;color:rgba(255,255,255,.9)}.tshopx .tx-feat li svg{width:16px;height:16px;color:var(--accent-lt);flex:0 0 auto;display:block}
.tshopx .tx-fb{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:20px}
.tshopx .tx-feat .tx-price{color:#fff}.tshopx .tx-feat .tx-price small{color:rgba(255,255,255,.7)}
.tshopx .tx-feat .tx-btn{background:#fff;color:var(--ink)}.tshopx .tx-feat .tx-btn:hover{filter:brightness(.96)}
.tshopx .tx-mini{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-content:start}
.tshopx .tx-m{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;transition:.16s var(--ease);display:block}
.tshopx .tx-m:hover{border-color:var(--accent-lt);box-shadow:var(--shadow-sm)}
.tshopx .tx-m .tx-ico{width:38px;height:38px}.tshopx .tx-m .tx-ico svg{width:19px;height:19px}
.tshopx .tx-m h4{font:600 .98rem var(--serif);color:var(--ink);margin:12px 0 0}.tshopx .tx-m .tx-price{font-size:.9rem;margin-top:8px;display:block}
.tshopx .tx-m--more{background:var(--accent-soft);border-color:transparent;display:flex;flex-direction:column;justify-content:center}
.tshopx .tx-m--more:hover{background:#dfe9ff;box-shadow:none}
.tshopx .tx-m--more .tx-ico{background:var(--accent);color:#fff}
.tshopx .tx-m--more h4{color:var(--accent-deep)}
.tshopx .tx-m--more span{font:600 .8rem var(--sans);color:var(--accent);margin-top:6px;display:inline-flex;align-items:center;gap:6px}.tshopx .tx-m--more span svg{width:14px;height:14px;display:block}
@media(max-width:820px){.tshopx .tx-grid{grid-template-columns:1fr}}@media(max-width:480px){.tshopx .tx-mini{grid-template-columns:1fr}}
/* ===== Médicos (variante A, autocontenida = copia fiel del demo) ===== */
.mdx{line-height:1.5;background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-block:clamp(40px,5.5vw,72px)}
.mdx a{color:inherit;text-decoration:none}
.mdx .md-wrap{max-width:1160px;margin:0 auto;padding-inline:clamp(20px,5vw,56px)}
.mdx .md-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,56px);align-items:center}
.mdx .md-eye{font:600 .7rem var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}
.mdx .md-h2{font:600 clamp(1.9rem,4vw,3rem) var(--serif);color:var(--ink);margin:12px 0 0;line-height:1.05}
.mdx .md-g{font-style:italic;font-weight:600;background:linear-gradient(135deg,#1940e5,#1a2177);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.mdx .md-lead{margin:14px 0 0;color:#5b6070;font-size:1.02rem;max-width:46ch;line-height:1.6}
.mdx .md-blist{margin-top:22px;display:flex;flex-direction:column;gap:14px}
.mdx .md-item{display:flex;gap:13px;align-items:flex-start}
.mdx .md-item .ic{width:42px;height:42px;border-radius:11px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;flex:0 0 auto}.mdx .md-item .ic svg{width:21px;height:21px;display:block}
.mdx .md-item b{font:600 .95rem var(--sans);color:var(--ink)}.mdx .md-item small{display:block;font-size:.83rem;color:var(--muted);margin-top:2px}
.mdx .md-cta{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,#1940e5,#1a2177);color:#fff;border-radius:100px;padding:12px 22px;font:600 .9rem var(--sans);margin-top:24px}.mdx .md-cta svg{width:16px;height:16px;display:block}
.mdx .md-media img{width:100%;height:clamp(340px,44vh,460px);object-fit:cover;border-radius:18px;box-shadow:var(--shadow)}
@media(max-width:820px){.mdx .md-split{grid-template-columns:1fr}}
/* ===== Blog (variante E · lista editorial, autocontenida) ===== */
.blgx{line-height:1.5;background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-block:clamp(38px,5vw,64px)}
.blgx a{color:inherit;text-decoration:none}
.blgx .bl-wrap{max-width:1160px;margin:0 auto;padding-inline:clamp(20px,5vw,56px)}
.blgx .bl-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:clamp(24px,3vw,34px)}
.blgx .bl-eye{font:600 .7rem var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}
.blgx .bl-h2{font:600 clamp(1.7rem,3.6vw,2.7rem) var(--serif);color:var(--ink);margin:10px 0 0}
.blgx .bl-g{font-style:italic;font-weight:600;background:linear-gradient(135deg,#1940e5,#1a2177);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.blgx .bl-seeall{display:inline-flex;align-items:center;gap:7px;color:var(--accent);font:600 .88rem var(--sans)}.blgx .bl-seeall svg{width:16px;height:16px;display:block}
.blgx .bl-list{display:flex;flex-direction:column}
.blgx .bl-row{display:flex;align-items:center;gap:18px;padding:18px 4px;border-top:1px solid var(--line);transition:.16s var(--ease)}.blgx .bl-row:first-child{border-top:0}
.blgx .bl-row:hover{padding-left:8px}
.blgx .bl-thumb{width:96px;height:70px;object-fit:cover;border-radius:10px;flex:0 0 auto}
.blgx .bl-tx{flex:1;min-width:0}
.blgx .bl-tag{display:inline-block;font:600 .68rem var(--sans);letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);border-radius:100px;padding:4px 11px}
.blgx .bl-tx h3{font:600 1.15rem var(--serif);color:var(--ink);margin-top:6px}
.blgx .bl-meta{font-size:.78rem;color:var(--muted);display:inline-flex;align-items:center;gap:6px;flex:0 0 auto}.blgx .bl-meta svg{width:14px;height:14px;display:block}
.blgx .bl-arw{color:var(--accent);opacity:0;transition:.16s var(--ease);flex:0 0 auto}.blgx .bl-row:hover .bl-arw{opacity:1}.blgx .bl-arw svg{width:18px;height:18px;display:block}
@media(max-width:560px){.blgx .bl-thumb,.blgx .bl-meta{display:none}}
/* ===== CTA pre-footer (combo 1) — el footer .cf-foot vive en footer.css (site-wide) ===== */
.cf-cta{line-height:1.5;background:#f6f8ff;padding:clamp(40px,6vw,72px) 0;text-align:center}
.cf-cta .cf-wrap{max-width:1160px;margin:0 auto;padding-inline:clamp(20px,5vw,56px)}
.cf-cta .cf-eye{font:600 .7rem var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}
.cf-cta h2{font:600 clamp(2rem,4.4vw,3.3rem) var(--serif);color:var(--ink);margin:12px 0 0;line-height:1.05}.cf-cta h2 em{font-style:italic;color:var(--accent)}
.cf-cta p{color:var(--muted);margin:14px auto 0;max-width:46ch;font-size:1.02rem}
.cf-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:26px}
.cf-btn{display:inline-flex;align-items:center;gap:8px;border-radius:100px;padding:13px 24px;font:600 .9rem var(--sans);transition:.16s var(--ease)}.cf-btn svg{width:16px;height:16px;display:block}
.cf-btn--grad{background:linear-gradient(135deg,#1940e5,#1a2177);color:#fff}.cf-btn--grad:hover{filter:brightness(1.08)}
.cf-btn--wa{background:#22a565;color:#fff}.cf-btn--wa:hover{filter:brightness(.96)}

/* Móvil: enlaces de texto de una línea con altura de toque suficiente. */
@media(max-width:820px){.esp-more,.blgx .bl-seeall{padding-block:8px}.qa1 a{padding-block:9px}}

.ph-rows{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:760px){.ph-rows{grid-template-columns:1fr}}
.ph-row{background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:20px}
.ph-row b{display:block;font:600 1.05rem var(--serif);color:var(--ink);margin-bottom:4px}
