/* Páginas — diseño abierto: poca caja, mucho aire, titulares grandes y un fondo animado con estilo de render.
   Estructura base: .row = etiqueta chica a la izquierda + contenido a la derecha (como en la referencia NeuroCare). */

/* Renders con fondo corregido: el blanco desaparece sobre fondos CLAROS */
.render--multiply{ mix-blend-mode:multiply; }

/* ---------- Piezas comunes ---------- */
.band--navy .band--navy .row{ display:grid; gap:1.25rem; grid-template-columns:minmax(0, 1fr); }
.row > *{ min-width:0; }
.row__body h2{ font-size:clamp(2rem, 1rem + 3.2vw, 3.8rem); margin:0 0 1.25rem; }
.statement{ font:300 clamp(1.45rem, 1rem + 1.9vw, 2.55rem)/1.22 var(--font-display); letter-spacing:-.02em; color:var(--navy); max-width:26em; margin:0 0 2rem; }
.statement .dim{ color:var(--steel); }
.cedulas .chip{ background:transparent!important; padding:0; border-radius:0; color:var(--ink-muted)!important; font-size:.9rem; }
.cedulas .chip + .chip::before{ content:"·"; margin-right:.5rem; color:var(--steel); }
.cedulas .chip__label{ color:inherit!important; }
.cedulas .chip strong{ color:var(--navy); }
.band--navy .cedulas .chip, .site-footer .cedulas .chip{ color:var(--on-navy-muted)!important; }
.band--navy .cedulas .chip strong, .site-footer .cedulas .chip strong{ color:var(--on-navy); }
.plain-links{ display:flex; flex-wrap:wrap; gap:.4rem 1.2rem; }
.plain-links a{ display:inline-flex; align-items:center; gap:.5em; min-height:44px; color:var(--navy); font-weight:500; font-size:.92rem; text-decoration:none; border-bottom:1px solid var(--line); }
.plain-links a:hover{ border-bottom-color:var(--navy); }
.plain-links img{ width:18px; height:18px; }

/* ---------- Hero con fondo animado tipo render ---------- */
.hero{ position:relative; overflow:hidden; isolation:isolate; background:linear-gradient(180deg, #eaf0f6 0%, #ffffff 100%); }
.hero__bg{ position:absolute; inset:0; z-index:-1; overflow:hidden; pointer-events:none; }
.blob{ position:absolute; border-radius:50%; filter:blur(70px); will-change:transform; }
.blob--a{ width:520px; height:520px; top:-140px; left:-100px; background:radial-gradient(circle at 35% 35%, var(--ice), transparent 70%); opacity:.9; animation:drift-a 24s ease-in-out infinite alternate; }
.blob--b{ width:640px; height:640px; right:-180px; top:20px; background:radial-gradient(circle, rgba(74,112,141,.42), transparent 70%); animation:drift-b 28s ease-in-out infinite alternate; }
.blob--c{ width:420px; height:420px; left:34%; bottom:-140px; background:radial-gradient(circle, rgba(255,255,255,.95), transparent 70%); animation:drift-c 20s ease-in-out infinite alternate; }
.hero__orb{
  position:absolute; right:max(2vw, calc(50vw - 590px)); bottom:-8%; width:min(580px, 54vw); aspect-ratio:1; border-radius:50%;
  background:conic-gradient(from 0deg, #f4f8fb, #b9cde0, #4a708d, #d7e5f1, #ffffff, #86a9c6, #f4f8fb);
  box-shadow:inset 0 0 90px rgba(255,255,255,.75), inset -50px -50px 130px rgba(0,40,80,.38);
  animation:orb-spin 30s linear infinite;
}
.hero__orb::after{ content:""; position:absolute; inset:7%; border-radius:50%; background:radial-gradient(circle at 30% 24%, rgba(255,255,255,.9), transparent 46%); mix-blend-mode:screen; }
@keyframes drift-a{ to{ transform:translate(120px, 80px) scale(1.12); } }
@keyframes drift-b{ to{ transform:translate(-140px, 60px) scale(.92); } }
@keyframes drift-c{ to{ transform:translate(90px, -50px) scale(1.18); } }
@keyframes orb-spin{ to{ transform:rotate(360deg); } }
@keyframes bob{ 0%,100%{ transform:translateY(0) rotate(-.6deg); } 50%{ transform:translateY(-6px) rotate(.6deg); } }

.hero__inner{ display:flex; flex-direction:column; padding-block:14px 28px; gap:1rem; }
.hero__copy{ display:flex; flex-direction:column; align-items:flex-start; gap:1.1rem; }
.hero__copy h1{ margin:0; font-size:clamp(2.3rem, 1rem + 4.6vw, 5rem); }
.hero__lede{ margin:0; max-width:34em; font-size:clamp(1.02rem, 1rem + .3vw, 1.2rem); color:var(--ink-muted); }
.hero__meta{ display:grid; gap:.25rem; }
.hero__stage{ order:-1; position:relative; display:flex; align-items:flex-end; }
.hero__doctor{ width:84px; height:84px; border-radius:50%; object-fit:cover; object-position:50% 20%; box-shadow:0 0 0 3px var(--white), var(--shadow-2); }
.hero__render{ display:none; }
@media (min-width:900px){
  .hero__inner{ display:grid; grid-template-columns:1fr 1fr; align-items:end; gap:0; padding-block:0; min-height:min(680px, calc(100vh - var(--header-h) - 8px)); }
  .hero__copy{ align-self:center; padding-block:2.5rem 3rem; }
  .hero__stage{ order:0; justify-self:center; align-self:end; height:min(660px, calc(100vh - var(--header-h) - 8px)); }
  .hero__doctor{ width:auto; height:100%; border-radius:0; box-shadow:none; object-fit:contain; object-position:bottom; filter:drop-shadow(0 24px 40px rgba(0,26,56,.28)); }
  .hero__render{ display:block; position:absolute; left:-12%; bottom:10%; width:clamp(110px, 13vw, 190px); height:auto; filter:drop-shadow(0 22px 28px rgba(0,26,56,.3)); animation:bob 16s ease-in-out infinite; }
}
@media (max-width:899px){ .hero__orb{ width:70vw; right:-18vw; bottom:auto; top:10px; opacity:.55; } }

/* ---------- Sobre mí ---------- */
.about2{ display:grid; gap:2rem; align-items:start; }
.arch{ width:min(300px, 70vw); aspect-ratio:3/4; overflow:hidden; border-radius:999px 999px 36px 36px; background:linear-gradient(180deg, var(--ice), var(--mist)); }
.arch img{ width:100%; height:100%; object-fit:contain; object-position:50% 100%; }
@media (max-width:859px){ .about--hero .arch img{ object-fit:cover; object-position:50% 6%; } }
@media (min-width:860px){ .about2{ grid-template-columns:300px minmax(0, 1fr); gap:4rem; } }
.about2 .cedulas{ margin-top:1.5rem; }
.about2__more{ margin:1.5rem 0 0; }

/* Tabs de texto: sin JS todo el contenido se ve apilado y la botonera se oculta */
.tabs__list{ display:none; }
.js .tabs__list{ display:flex; flex-wrap:wrap; gap:1.4rem; margin-bottom:1.25rem; border-bottom:1px solid var(--line); }
.tabs__tab{
  min-height:44px; padding:.4em 0; border:0; border-bottom:2px solid transparent; margin-bottom:-1px; background:transparent; cursor:pointer;
  font:600 .98rem/1 var(--font-text); color:var(--ink-muted); transition:color .2s ease, border-color .2s ease;
}
.tabs__tab:hover{ color:var(--navy); }
.tabs__tab[aria-selected="true"]{ color:var(--navy); border-bottom-color:var(--navy); }
.tabs__panel[hidden]{ display:none; }
html:not(.js) .tabs__panel + .tabs__panel{ margin-top:1.5rem; }
.checks{ display:grid; gap:.85rem; }
.checks li{ position:relative; padding-left:1.9rem; }
.checks li::before{ content:""; position:absolute; left:0; top:.8em; width:.9rem; height:1.5px; background:var(--steel); }

/* ---------- Localidades ---------- */
.mapa__fig{ margin:0 0 1.5rem; }
.mapa__svg{ width:100%; height:auto; border-radius:28px; }
.mapa__land{ fill:var(--steel-deep); }
.mapa__sea{ fill:var(--navy-deep); }
.mapa__coast{ fill:none; stroke:var(--ice); stroke-width:1.6; stroke-linejoin:round; stroke-linecap:round; }
.mapa__grid{ stroke:rgba(255,255,255,.06); stroke-width:1; }
.mapa__leader{ stroke:rgba(255,255,255,.45); stroke-width:1; }
.mapa__dot{ fill:var(--white); stroke:var(--navy); stroke-width:1.5; }
.mapa__dot--main{ fill:var(--wa-green); stroke:var(--white); stroke-width:2.5; }
.mapa__pulse{ fill:var(--wa-green); opacity:.28; transform-box:fill-box; transform-origin:center; }
@media (prefers-reduced-motion: no-preference){ .mapa__pulse{ animation:mapa-pulse 2.4s var(--ease-out) infinite; } }
@keyframes mapa-pulse{ 0%{ transform:scale(.5); opacity:.5; } 100%{ transform:scale(1.6); opacity:0; } }
.mapa__label{ font:500 13px var(--font-text); fill:var(--on-navy); paint-order:stroke; stroke:rgba(0,26,56,.7); stroke-width:3px; stroke-linejoin:round; }
.mapa__label--main{ font-weight:700; fill:var(--white); }
.mapa__edge line, .mapa__edge path{ stroke:var(--ice); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
@media (max-width:760px){
  .mapa__label, .mapa__leader{ display:none; }
  .mapa__label--main, .mapa__edge .mapa__label{ display:block; font-size:30px; stroke-width:6px; }
}

/* ---------- Consultorio: fotos en formas (arco, círculo, píldora) ---------- */
.shapes{ display:flex; flex-wrap:wrap; align-items:flex-end; gap:14px; margin-top:1rem; }
.shape{ margin:0; overflow:hidden; background:var(--mist); }
.shape img{ width:100%; height:100%; object-fit:cover; }
.shape--arch{ width:min(300px, 80vw); aspect-ratio:3/4; border-radius:999px 999px 36px 36px; }
.shape--pill{ flex:1 1 320px; max-width:520px; height:clamp(220px, 28vw, 330px); border-radius:999px; }
.shape--circle{ width:clamp(180px, 22vw, 260px); aspect-ratio:1; border-radius:50%; display:grid; place-items:center; background:var(--ice); }
.shape--circle img{ width:90%; height:90%; object-fit:contain; }

/* ---------- FAQ (details nativos: el contenido siempre está en el HTML) ---------- */
.faq__list{ max-width:860px; border-bottom:1px solid var(--line); }
.faq__item{ border-top:1px solid var(--line); }
.faq__item summary{
  display:flex; justify-content:space-between; align-items:center; gap:1rem; cursor:pointer; list-style:none;
  padding:1.2rem 0; font:400 1.1rem/1.35 var(--font-display); color:var(--navy); min-height:44px;
}
.faq__item summary::-webkit-details-marker{ display:none; }
.faq__item summary::after{ content:"+"; flex:none; width:36px; height:36px; display:grid; place-items:center; border-radius:50%; border:1px solid var(--line); font-size:1.4rem; line-height:1; transition:transform .25s var(--ease-out); }
.faq__item[open] summary::after{ transform:rotate(45deg); }
.faq__a{ padding:0 0 1.3rem; max-width:70ch; color:var(--ink-muted); }
.faq__a p{ margin:0; }

/* ---------- Ubicación ---------- */
.sede{ display:grid; gap:1.5rem; align-items:center; }
.sede__info h3{ margin-bottom:.75rem; }
.sede__map{ width:100%; height:320px; border:0; border-radius:28px; background:var(--mist); }
@media (min-width:860px){ .sede{ grid-template-columns:1fr 1.5fr; } }

/* ---------- Sub-páginas, servicios y contacto ---------- */
.page-hero{ position:relative; overflow:hidden; isolation:isolate; background:linear-gradient(180deg, #eaf0f6 0%, #ffffff 100%); padding-block:clamp(14px, 2vh, 28px) clamp(1.5rem, 1rem + 2vw, 3rem); }
.breadcrumb{ margin-bottom:1.2rem; font-size:.9rem; }
.breadcrumb ol{ display:flex; flex-wrap:wrap; gap:.4rem; }
.breadcrumb li + li::before{ content:"/"; margin-right:.4rem; color:var(--ink-muted); }
.breadcrumb a{ color:var(--ink-muted); }
.breadcrumb [aria-current]{ color:var(--navy); font-weight:600; }
.page-hero__grid{ display:grid; gap:1.5rem; align-items:center; }
.page-hero__copy{ display:flex; flex-direction:column; align-items:flex-start; gap:1.1rem; }
.page-hero__copy h1{ margin:0; font-size:clamp(2.6rem, 1rem + 6vw, 6rem); }
.page-hero__copy .lede{ margin:0; }
.page-hero__stage{ position:relative; display:grid; place-items:center; min-height:240px; }
.page-hero__stage .hero__orb{ position:absolute; right:auto; bottom:auto; left:50%; top:50%; width:min(380px, 78vw); transform:translate(-50%, -50%); animation:none; opacity:.9; }
.page-hero__img{ position:relative; width:auto; height:clamp(240px, 42vh, 460px); max-width:100%; object-fit:contain; filter:drop-shadow(0 22px 30px rgba(0,26,56,.28)); }
@media (min-width:900px){ .page-hero__grid{ grid-template-columns:1.2fr .8fr; } }
.lines{ display:grid; gap:2rem; }
@media (min-width:760px){ .lines{ grid-template-columns:1fr 1fr; gap:3rem; } }
.lines h3{ margin:0 0 1rem; padding-bottom:.8rem; border-bottom:1.5px solid var(--navy); }
.related-links{ display:grid; border-top:1px solid var(--line); }
.relink{ display:grid; grid-template-columns:72px 1fr auto; align-items:center; gap:1rem; padding:.9rem 0; border-bottom:1px solid var(--line); text-decoration:none; color:var(--navy); }
.relink img{ width:72px; height:72px; object-fit:contain; }
.relink__t{ font:400 1.3rem/1.2 var(--font-display); letter-spacing:-.015em; }
.relink:hover .pill-arrow__dot{ transform:rotate(45deg); }
.zone-list{ border-top:1px solid var(--navy); }
.zone-row{ display:grid; grid-template-columns:1fr; gap:.5rem 2rem; align-items:center; padding:1.6rem 0; border-bottom:1px solid var(--line); text-decoration:none; color:inherit; }
.zone-row__n{ font:600 .85rem/1 var(--font-text); color:var(--steel); letter-spacing:.1em; }
.zone-row h2{ margin:.2rem 0 .3rem; font-size:clamp(1.8rem, 1rem + 2.6vw, 3.2rem); }
.zone-row p{ margin:0 0 .6rem; color:var(--ink-muted); max-width:46ch; }
.zone-row .zone-row__procs{ font-size:.9rem; color:var(--steel-deep); margin-bottom:.9rem; }
.zone-row__img{ width:150px; height:190px; object-fit:contain; justify-self:start; }
@media (min-width:760px){ .zone-row{ grid-template-columns:70px 1fr 200px; } .zone-row__img{ justify-self:end; } }
.zone-row:hover h2{ color:var(--steel-deep); }
.contact-grid{ display:grid; gap:2rem; }
@media (min-width:860px){ .contact-grid{ grid-template-columns:1.1fr .9fr; gap:4rem; } }
.contact-grid ul{ display:grid; gap:1.1rem; margin:1rem 0 1.5rem; }
.contact-grid .contact-link{ align-items:flex-start; }
.contact-grid .contact-link .icon{ margin-top:.25em; }
.about--hero{ display:grid; gap:1.5rem; align-items:center; }
.about__intro{ display:flex; flex-direction:column; align-items:flex-start; gap:1.1rem; }
.about__intro h1, .about__intro .lede{ margin:0; }
.about__intro h1{ font-size:clamp(2.6rem, 1rem + 6vw, 6rem); }
@media (min-width:860px){ .about--hero{ grid-template-columns:300px minmax(0, 1fr); gap:4rem; } }
@media (max-width:859px){ .about--hero .arch{ width:132px; aspect-ratio:1; border-radius:50%; } }
.diploma__fig{ margin:0; max-width:720px; border-radius:28px; overflow:hidden; background:var(--mist); }
.diploma__fig img{ width:100%; height:auto; }
.page-404{ min-height:60vh; display:grid; align-items:center; }
.page-404 h1{ font-size:clamp(2.6rem, 1rem + 6vw, 6rem); }
.page-404 .lede{ margin-bottom:1.5rem; }

@media (prefers-reduced-motion: reduce){
  .blob, .hero__orb, .hero__render{ animation:none!important; }
}
.relink img{ width:72px; height:72px; object-fit:contain; }
.relink .pill-arrow__dot{ background:var(--navy); color:var(--white); }
.h-sm{ font-size:var(--fs-h3); margin:0 0 .5rem; }
/* Ajuste: el recorte del doctor nunca debe superar la altura del escenario (cabeza completa) */
@media (min-width:900px){
  .hero__stage picture{ display:block; height:100%; }
  .hero__doctor{ max-height:100%; }
  .hero__render{ left:-30%; bottom:14%; }
}
.shape--arch{ width:min(260px, 80vw); }
.shape--circle{ width:clamp(150px, 16vw, 200px); }
.shape--pill{ flex:1 1 360px; min-width:min(360px, 100%); }
/* Rodilla de fondo: ocupa el alto del hero, queda DETRÁS de la foto del doctor y se mueve apenas */
@media (min-width:900px){
  .hero__render{ top:0; bottom:0; left:-46%; width:auto; height:100%; z-index:0; opacity:.5; filter:drop-shadow(0 30px 40px rgba(0,26,56,.25)); }
  .hero__stage picture{ position:relative; z-index:1; }
}

/* ---------- Testimonios: una sola fila, como slider (citas abiertas, sin tarjetas) ---------- */
.slider{ margin:2rem 0 1.5rem; }
.quotes{ --qgap:1.5rem; display:flex; gap:var(--qgap); overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; cursor:grab; padding-block:.4rem 1rem; -webkit-overflow-scrolling:touch; }
.quotes::-webkit-scrollbar{ display:none; }
.quotes.is-dragging{ cursor:grabbing; scroll-snap-type:none; }
.slider__nav{ display:none; gap:.6rem; margin-top:1.4rem; }
.js .slider__nav{ display:flex; }
.slider__btn{ width:44px; height:44px; border-radius:50%; border:1px solid var(--navy); background:transparent; color:var(--navy); cursor:pointer; display:grid; place-items:center; transition:background-color .2s ease, color .2s ease, opacity .2s ease; }
.slider__btn .icon{ width:18px; height:18px; }
.slider__btn--prev .icon{ transform:rotate(180deg); }
.slider__btn:hover:not(:disabled){ background:var(--navy); color:var(--white); }
.slider__btn:disabled{ opacity:.3; cursor:default; }
.quote{ flex:0 0 min(380px, 86vw); scroll-snap-align:start; margin:0; padding-top:1.1rem; border-top:1px solid var(--navy); display:flex; flex-direction:column; gap:1rem; }
.quote blockquote{ margin:0; }
.quote blockquote p{ margin:0; font:300 1.2rem/1.5 var(--font-display); letter-spacing:-.01em; color:var(--navy); }
.quote blockquote p::before{ content:"\201C"; color:var(--steel); margin-right:.1em; }
.quote blockquote p::after{ content:"\201D"; color:var(--steel); margin-left:.05em; }
.quote figcaption{ display:flex; flex-wrap:wrap; align-items:center; gap:.4rem 1rem; margin-top:auto; font-size:.9rem; }
.quote__name{ font-weight:600; color:var(--navy); }
.quote__src{ display:inline-flex; align-items:center; gap:.4em; min-height:32px; color:var(--ink-muted); text-decoration:none; border-bottom:1px solid var(--line); }
.quote__src:hover{ color:var(--navy); border-bottom-color:var(--navy); }
.quote__src img{ width:16px; height:16px; }

/* ---------- Servicios: introducción con foto, pestañas y rejilla abierta ---------- */
.svc-intro{ display:grid; gap:2.5rem; align-items:start; }
.svc-intro h2{ font-size:clamp(2.2rem, 1rem + 3.6vw, 4.2rem); margin:0 0 .6rem; }
.svc-intro__q{ font:400 clamp(1.15rem, 1rem + .7vw, 1.6rem)/1.3 var(--font-display); color:var(--steel); margin:0 0 1.2rem; }
.svc-intro__text p{ color:var(--ink-muted); max-width:62ch; }
.svc-intro__text .btn-row{ margin-top:1.4rem; }
.svc-photo{
  border-radius:28px; overflow:hidden; aspect-ratio:4/5; max-width:380px; width:100%;
  background:linear-gradient(160deg, var(--steel), var(--navy) 70%); display:flex; align-items:flex-end; justify-content:center;
}
.svc-photo img{ height:100%; width:auto; max-width:100%; object-fit:contain; object-position:bottom; }
@media (min-width:900px){ .svc-intro{ grid-template-columns:minmax(0, 1fr) 380px; gap:4rem; } }
.svc-tabs-title{ font:600 1rem/1.4 var(--font-text); letter-spacing:0; color:var(--navy); margin:3.5rem 0 1rem; display:flex; align-items:center; gap:.5rem; }
.svc-down{ width:1em; height:1em; transform:rotate(90deg); }
.svc-note{ margin:0 0 1rem; color:var(--ink-muted); }
.checks--2{ gap:.85rem 3rem; }
@media (min-width:760px){ .checks--2{ display:block; columns:2; column-gap:3rem; } .checks--2 li{ break-inside:avoid; margin-bottom:.85rem; } }
.svc-zones-title{ margin:4rem 0 1.5rem; padding-bottom:.8rem; border-bottom:1.5px solid var(--navy); font-size:var(--fs-h3); }
.zgrid{ display:grid; gap:2.5rem 2rem; }
@media (min-width:640px){ .zgrid{ grid-template-columns:repeat(2, minmax(0, 1fr)); } }
@media (min-width:1000px){ .zgrid{ grid-template-columns:repeat(3, minmax(0, 1fr)); } }
.zitem{ display:flex; flex-direction:column; gap:.5rem; text-decoration:none; color:inherit; }
.zitem__img{ width:100%; height:240px; object-fit:contain; margin-bottom:.4rem; transition:transform .4s var(--ease-out); }
.zitem:hover .zitem__img{ transform:translateY(-4px); }
.zitem h3{ margin:0; }
.zitem p{ margin:0 0 .8rem; color:var(--ink-muted); font-size:.95rem; flex:1; }
.zitem .pill-arrow{ align-self:flex-start; }

/* ---------- Servicios compacto: pestañas en píldora junto a la foto ---------- */
.svc-intro{ gap:2rem; }
.svc-intro h2{ font-size:clamp(2rem, 1rem + 3vw, 3.6rem); margin:0 0 .4rem; }
.svc-intro__q{ margin:0 0 .8rem; }
.svc-intro__text > p:not(.svc-intro__q){ margin:0 0 1.2rem; }
.svc-photo{ max-width:320px; aspect-ratio:1; }
.svc-photo img{ height:112%; object-position:50% 0; }
@media (min-width:900px){ .svc-intro{ grid-template-columns:minmax(0, 1fr) 320px; gap:3.5rem; } }
.svc-tabs{ margin:0 0 1.4rem; }
.svc-tabs .tabs__list{ gap:.5rem; margin-bottom:1rem; border-bottom:0; }
.svc-tabs .tabs__tab{
  min-height:40px; padding:.4em 1.1em; margin:0; border:1px solid var(--navy); border-radius:999px; background:transparent; color:var(--navy);
  font:500 .9rem/1 var(--font-text);
}
.svc-tabs .tabs__tab:hover{ background:var(--mist); }
.svc-tabs .tabs__tab[aria-selected="true"]{ background:var(--navy); color:var(--white); border-color:var(--navy); }
.svc-tabs .svc-note{ font-size:.9rem; margin:0 0 .7rem; }
.svc-tabs .checks--2{ font-size:.92rem; gap:.5rem 2rem; }
.svc-tabs .checks li{ padding-left:1.6rem; line-height:1.4; }
@media (min-width:760px){ .svc-tabs .checks--2 li{ margin-bottom:.5rem; } }
.svc-zones-title{ margin-top:3rem; }

/* Zonas del cuerpo: cada una sobre fondo blanco y sin línea bajo el título */
.svc-zones-title{ border-bottom:0; padding-bottom:0; margin-bottom:1.4rem; }
.zitem{ background:var(--white); border-radius:28px; padding:1.1rem 1.1rem 1.3rem; box-shadow:var(--shadow-1); transition:transform .3s var(--ease-out), box-shadow .3s var(--ease-out); }
.zitem:hover{ transform:translateY(-4px); box-shadow:var(--shadow-3); }
.zitem__img{ height:220px; }
.zitem:hover .zitem__img{ transform:none; }

/* Formación: nombre del doctor, logos de instituciones y retrato de traje en el arco */
.arch img{ object-fit:cover; object-position:50% 10%; }
@media (max-width:859px){ .about--hero .arch img{ object-position:50% 12%; } }
.about2__name{ margin:0 0 .2rem; font:400 clamp(1.9rem, 1.2rem + 2vw, 2.9rem)/1.1 var(--font-display, var(--font-text)); color:var(--navy); }
.about2__role{ margin:0 0 1rem; }
.about2 h2{ font-size:clamp(1.2rem, 1rem + .6vw, 1.5rem); margin-bottom:.8rem; }
.about2__more{ align-items:center; }

.svc-photo img{ height:100%; width:100%; object-fit:cover; object-position:50% 30%; }

.svc-photo img{ object-position:50% 38%; }
/* Foto de servicios más alta (3:4, la proporción original) */
.svc-photo{ aspect-ratio:3/4; max-width:360px; align-self:stretch; }
.svc-photo img{ object-position:50% 30%; }
@media (min-width:900px){ .svc-intro{ grid-template-columns:minmax(0, 1fr) 360px; } .svc-photo{ aspect-ratio:auto; min-height:480px; } }

/* Logos de instituciones: cuadrícula al ancho de la sección, en gris */
.logos-strip{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:1.5rem; margin-top:3rem; align-items:end; }
@media (min-width:760px){ .logos-strip{ grid-template-columns:repeat(4, minmax(0, 1fr)); gap:2rem; } }
.logos-strip__item{ display:flex; flex-direction:column; align-items:center; gap:.7rem; text-align:center; }
.logos-strip img{ height:64px; width:auto; max-width:100%; object-fit:contain; filter:grayscale(1); opacity:.7; transition:opacity .2s ease; }
.logos-strip__item:hover img{ opacity:1; }
.logos-strip__item span{ font-size:.82rem; color:var(--ink-muted); }

/* ---------- Regla: fila de solo texto a ancho completo => título centrado ---------- */
.band--center, .band--center .row__body, .center{ text-align:center; }
.band--center .lede, .band--center .statement, .band--center .page-hero__copy .lede{ margin-inline:auto; }
.band--center .btn-row, .band--center .plain-links, .band--center .rating{ justify-content:center; }
.band--center .page-hero__copy, .band--center .container{ align-items:center; }
.band--center .faq__list{ margin-inline:auto; text-align:left; }
.band--center .quote, .band--center .lines, .band--center .checks, .band--center .related-links, .band--center .diploma__fig, .band--center .band--center .diploma__fig{ margin-inline:auto; }
.band--center .band--center .shapes{ justify-content:center; }
.band--center .slider__nav{ justify-content:center; }
.band--center .zone-list{ text-align:left; }
.page-404.band--center .btn-row{ justify-content:center; }
.svc-zones-title.center{ text-align:center; }

/* ---------- Ubicación desarrollada: mapa grande + datos ---------- */
.loc{ display:grid; gap:2rem; text-align:left; }
.loc .sede__map{ height:clamp(280px, 38vw, 440px); border-radius:28px; }
.loc__grid{ display:grid; gap:2rem; }
@media (min-width:860px){ .loc__grid{ grid-template-columns:repeat(3, minmax(0, 1fr)); gap:3rem; } }
.loc__col{ padding-top:1rem; border-top:1px solid var(--navy); }
.loc__col h3{ margin:0 0 .8rem; font-size:1.15rem; }
.loc__col p{ margin:0 0 .7rem; color:var(--ink-muted); }
.loc__col .contact-link{ color:var(--navy); align-items:flex-start; }
.loc__col .contact-link .icon{ margin-top:.2em; }

/* Cómo llegar: contenedor con color de fondo */
.loc__col--go{ background:var(--navy); border-top:0; border-radius:28px; padding:1.6rem 1.6rem 1.8rem; }
.loc__col--go h3{ color:var(--on-navy); }
.loc__col--go p{ color:var(--on-navy-muted); }

/* Consultorio: dos fotos en rectángulos iguales con pie de foto */
.rooms{ display:grid; gap:14px; margin-top:2rem; text-align:left; }
@media (min-width:760px){ .rooms{ grid-template-columns:repeat(2, minmax(0, 1fr)); } }
.rooms figure{ margin:0; }
.rooms img{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:24px; background:var(--mist); }
.rooms figcaption{ margin-top:.7rem; font-size:.92rem; color:var(--ink-muted); }

/* ---------- Localidades: mapa a la izquierda y lista bien visible a la derecha ---------- */
.mapa__layout{ display:grid; gap:2rem; text-align:left; align-items:start; }
@media (min-width:900px){ .mapa__layout{ grid-template-columns:minmax(0, 1.5fr) minmax(0, 1fr); gap:3rem; } }
.mapa__layout .mapa__fig{ margin:0; }
.localidades{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:0 1.5rem; border-top:1.5px solid var(--on-navy); }
.localidades li{ display:flex; align-items:center; gap:.6rem; padding:.7rem 0; border-bottom:1px solid rgba(255,255,255,.2); font-size:1.02rem; font-weight:500; color:var(--on-navy); line-height:1.3; }
.localidades li::before{ content:""; flex:none; width:8px; height:8px; border-radius:50%; background:var(--ice); }
.localidades .localidades__main{ grid-column:1 / -1; font-weight:700; color:var(--navy); background:var(--wa-green); border-radius:14px; padding:.8rem 1rem; border-bottom:0; margin:.8rem 0; }
.localidades .localidades__main::before{ background:var(--navy); }

/* Testimonios: cada uno en su contenedor blanco (sin la línea decorativa de arriba) */
.quote{ background:var(--white); border-top:0; border-radius:24px; padding:1.6rem 1.6rem 1.4rem; box-shadow:var(--shadow-1); }

/* Testimonios sin cortes: 3 completos a la vez en escritorio, 2 en tablet y 1 en mobile */
.quote{ flex:0 0 100%; }
@media (min-width:720px){ .quote{ flex-basis:calc((100% - var(--qgap)) / 2); } }
@media (min-width:1040px){ .quote{ flex-basis:calc((100% - 2 * var(--qgap)) / 3); } }

/* Localidades: dos columnas (mapa | título + texto + lista) */
.mapa__intro h2{ margin:0 0 .8rem; font-size:clamp(1.8rem, 1rem + 2.2vw, 3rem); }
.mapa__intro .lede{ margin:0 0 1.2rem; color:var(--on-navy-muted); }
@media (min-width:900px){
  .mapa__layout{ grid-template-columns:minmax(0, 1.4fr) minmax(0, 1fr); grid-template-rows:auto 1fr; column-gap:3rem; row-gap:0; }
  .mapa__layout .mapa__fig{ grid-column:1; grid-row:1 / span 2; }
  .mapa__layout .mapa__intro{ grid-column:2; grid-row:1; }
  .mapa__layout .localidades{ grid-column:2; grid-row:2; align-self:start; }
}

/* Ubicación: Dirección y Citas y urgencias en contenedores blancos (Cómo llegar conserva su color) */
.loc__col{ background:var(--white); border-top:0; border-radius:28px; padding:1.6rem 1.6rem 1.8rem; box-shadow:var(--shadow-1); }
.loc__col--go{ background:var(--navy); box-shadow:none; }
@media (min-width:900px){ .mapa__layout .mapa__fig{ display:flex; } .mapa__layout .mapa__svg{ height:100%; } }

/* ---------- Título de localidades: solo, en una sola fila ---------- */
.loc-title{ margin:0 0 2rem; font-size:clamp(1.6rem, .8rem + 2.4vw, 2.7rem); text-align:center; }
@media (min-width:900px){ .loc-title{ white-space:nowrap; } }

/* ---------- CTA final de contacto: foto del doctor, render y esfera (como el hero, en azul marino) ---------- */
.cta-band{ position:relative; overflow:hidden; isolation:isolate; padding-bottom:0; }
.cta-band__bg{ position:absolute; inset:0; z-index:-1; pointer-events:none; overflow:hidden; background:radial-gradient(120% 90% at 85% 100%, var(--steel-deep) 0%, var(--navy) 55%, var(--navy-deep) 100%); }
.cta-band__inner{ display:grid; gap:1.5rem; align-items:end; }
.cta-band__copy{ padding-block:clamp(2.5rem, 2rem + 3vw, 5rem); align-self:center; }
.cta-band__copy h2{ font-size:clamp(2.6rem, 1rem + 5.4vw, 5.6rem); margin-bottom:.5rem; }
.cta-band__copy p{ max-width:40ch; font-size:1.1rem; }
.cta-band__copy .btn-row{ margin-top:1.6rem; }
.cta-band__meta{ margin:1.4rem 0 0; font-size:.9rem!important; letter-spacing:.04em; color:var(--on-navy-muted); }
.cta-band__stage{ position:relative; display:none; align-self:end; justify-self:end; height:clamp(320px, 38vw, 480px); }
.cta-band__doctor{ position:relative; z-index:1; height:100%; width:auto; filter:drop-shadow(0 24px 40px rgba(0,0,0,.35)); }
.cta-band__render{ position:absolute; z-index:0; left:-62%; top:-14%; height:128%; width:auto; filter:drop-shadow(0 26px 34px rgba(0,0,0,.35)); animation:bob 16s ease-in-out infinite; }
@media (min-width:900px){ .cta-band__inner{ grid-template-columns:1.1fr .9fr; } .cta-band__stage{ display:block; } }
@media (prefers-reduced-motion: reduce){ .cta-band__render{ animation:none!important; } }

/* CTA final: pasos de la primera cita y calificación */
.cta-band__lede{ margin:0 0 1.2rem; }
.cta-steps{ counter-reset:paso; display:grid; gap:.7rem; margin:0 0 1.6rem; padding:0; list-style:none; max-width:46ch; }
.cta-steps li{ counter-increment:paso; display:flex; gap:.9rem; align-items:flex-start; color:var(--on-navy-muted); font-size:1rem; line-height:1.45; }
.cta-steps li::before{ content:counter(paso); flex:none; width:30px; height:30px; display:grid; place-items:center; border:1px solid var(--ice); border-radius:50%; color:var(--on-navy); font:600 .85rem/1 var(--font-text); margin-top:.1rem; }
.cta-steps strong{ color:var(--on-navy); font-weight:600; }
.cta-band .rating{ margin-top:1.4rem; }
.cta-band__copy{ padding-block:clamp(2.5rem, 2rem + 2vw, 4rem); }
.cta-band__meta{ margin-top:.6rem; }

/* Subtítulo (kicker) azul antes de cada título de sección */
.kicker{ margin:0 0 .6rem; font:600 .82rem/1.2 var(--font-text); letter-spacing:.14em; text-transform:uppercase; color:var(--steel); }
.band--navy .kicker, .cta-band .kicker{ color:var(--ice); }
.about2 .kicker{ margin-bottom:.4rem; }

/* CTA final: encabezado centrado de ancho completo */
.cta-band__head{ text-align:center; padding-top:clamp(2.5rem, 2rem + 3vw, 4.5rem); }
.cta-band__head h2{ font-size:clamp(2.4rem, 1rem + 4vw, 4.6rem); margin:0 0 .6rem; }
.cta-band__head .cta-band__lede{ max-width:56ch; margin:0 auto; font-size:1.1rem; }
.cta-band__copy{ padding-block:1.5rem clamp(2.5rem, 2rem + 3vw, 4rem); }
.cta-band__head .kicker{ max-width:none; }

/* Espaciado compacto en todo el sitio */
.band{ padding-block:clamp(2.25rem, 1.4rem + 3.2vw, 4.25rem); }
.cta-band{ padding-block:clamp(2rem, 1.2rem + 2.5vw, 3.5rem) 0; }
.cta-band__head{ padding-top:0; }
.cta-band__copy{ padding-block:1.2rem clamp(1.8rem, 1.2rem + 2vw, 3rem); }
.cta-band__head h2{ font-size:clamp(2.2rem, 1rem + 3.4vw, 4rem); }
.page-hero .btn-row{ margin-top:.2rem; }

/* Tarjetas blancas (mismo lenguaje que Inicio) en listas de páginas internas */
.lines > div{ background:var(--white); border-radius:var(--radius-lg, 20px); padding:clamp(1.4rem, 1rem + 1.5vw, 2.2rem); box-shadow:var(--shadow-1, 0 1px 2px rgba(0,40,80,.06)); text-align:left; }
.lines h3{ border-bottom:0; padding-bottom:0; }
@media (min-width:860px){ .lines{ grid-template-columns:1fr 1fr; gap:1.4rem; } }

/* Hero con foto de fondo (stock): capa clara para conservar la lectura del texto */
.page-hero--photo{ background:#eaf0f6 var(--hero-img) center 40%/cover no-repeat; }
.page-hero--photo::before{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg, rgba(243,246,249,.92) 0%, rgba(243,246,249,.78) 42%, rgba(243,246,249,.25) 100%); }
.page-hero--photo.band--center::before{ background:rgba(243,246,249,.68); }
.page-hero--photo .hero__bg{ opacity:.35; }
@media (max-width:859px){ .page-hero--photo::before{ background:rgba(243,246,249,.88); } }

/* MOVIL-CENTRADO */
@media (max-width:859px){
  .hero__copy, .page-hero__copy, .about__intro, .about2 > div:not(.arch), .cta-band__copy, .about--hero .about__intro{ text-align:center; align-items:center; }
  .hero__copy .btn-row, .page-hero__copy .btn-row, .about__intro .btn-row, .about2 .btn-row, .cta-band__copy .btn-row,
  .hero__meta, .hero__meta .rating, .hero__meta .cedulas, .hero__meta .plain-links, .about__intro .cedulas, .about__intro .plain-links,
  .about2 .cedulas, .cta-band .rating, .cta-band__head .btn-row{ justify-content:center; }
  .hero__lede, .page-hero__copy .lede, .about__intro .lede, .cta-band__copy p{ margin-inline:auto; }
  .hero__meta{ align-items:center; }
  .arch{ margin-inline:auto; }
  .about2 .tabs__list{ justify-content:center; }
  .cedulas .chip + .chip::before{ display:none; }
  .cedulas{ flex-direction:column; align-items:center; gap:.2rem; }
  .cta-steps{ text-align:left; max-width:34rem; margin-inline:auto; }
  .loc__col h3, .loc__col p{ text-align:center; }
  .loc__col .contact-link{ justify-content:center; text-align:center; }
  /* Resto de secciones: encabezados, tarjetas, pies y footer centrados */
  .svc-intro__text, .cv__body, .mapa__intro{ text-align:center; }
  .svc-intro__text .btn-row, .svc-tabs .tabs__list, .svc-tabs-title{ justify-content:center; }
  .svc-tabs .tabs__panel{ text-align:left; }
  .zslide > a{ align-items:flex-start; text-align:left; }
  .zslide > a .pill-arrow{ align-self:flex-start; }
  .zone-row{ text-align:center; justify-items:center; }
  .zone-row .pill-arrow{ margin-inline:auto; }
  .zone-row__n{ display:none; }
  figcaption, .rooms figcaption{ text-align:center; }
  .site-footer{ text-align:center; }
  .site-footer__grid{ justify-items:center; }
  .site-footer .contact-link, .site-footer .socials, .site-footer .cedulas{ justify-content:center; text-align:center; }
  .site-footer ul{ justify-items:center; }
  .site-footer__logo{ margin-inline:auto; }
  .lede, .statement{ margin-inline:auto; text-align:center; }
  .band .row__body > p, .band .wrap > p.kicker{ text-align:center; }
}
/* FIN MOVIL-CENTRADO */
.page-hero--photo.page-hero--op::before{ background:rgba(243,246,249,.72); }

/* Sobre mí: retrato junto al currículum (el hero queda solo con texto) */
.cv{ display:grid; gap:1.8rem; align-items:start; }
.cv .arch{ width:min(300px, 70%); margin-inline:auto; }
@media (min-width:1000px){ .cv{ grid-template-columns:300px minmax(0, 1fr); gap:3.5rem; align-items:center; } .cv .arch{ width:100%; } }
@media (max-width:859px){ .cv .arch{ width:132px; aspect-ratio:1; border-radius:50%; } .cv .arch img{ object-position:50% 12%; } }

/* Renders más grandes en las subpáginas de servicios (escritorio) */
@media (min-width:900px){
  .page-hero__img{ height:clamp(320px, 60vh, 640px); }
  .page-hero__stage{ min-height:0; justify-self:end; }
  .page-hero__grid{ grid-template-columns:1fr 1fr; }
}

/* Móvil: recorte transparente del doctor sobre un círculo gris azulado, centrado y sin borde blanco */
@media (max-width:899px){
  .hero__stage{ justify-content:center; }
  .hero__stage picture{ display:block; width:112px; height:112px; border-radius:50%; overflow:hidden; background:linear-gradient(160deg, #b4c8da 0%, #7b97ae 100%); box-shadow:0 10px 24px rgba(0,40,80,.18); }
  .hero__doctor{ width:100%; height:100%; border-radius:0; box-shadow:none; object-fit:cover; object-position:50% 0; }
}

/* Atención por zona del cuerpo: slider (1 / 2 / 3 tarjetas por vista) */
.slider--zonas{ margin:1.5rem 0 0; }
.zslide > a{ flex:0 0 86%; scroll-snap-align:start; }
@media (min-width:640px){ .zslide > a{ flex-basis:calc((100% - var(--qgap)) / 2); } }
@media (min-width:1000px){ .zslide > a{ flex-basis:calc((100% - 2 * var(--qgap)) / 3); } }
.zslide{ padding-block:.6rem 1.2rem; }
.zslide > a .zitem__img{ pointer-events:none; }
.slider--zonas .slider__nav{ justify-content:center; }


/* Móvil: rodilla (png) de fondo con opacidad, detrás del texto, sin taparlo */
@media (max-width:899px){
  .hero__inner{ position:relative; isolation:isolate; }
  .hero__stage{ position:static; }
  .hero__render{ display:block; position:absolute; z-index:-1; right:-22%; top:8%; height:70%; width:auto; max-width:none; opacity:.12; animation:none; filter:none; pointer-events:none; }
}

/* Móvil: sin el círculo grande de fondo del hero */
@media (max-width:899px){ .hero .hero__orb{ display:none; } }

/* Zonas de atención: slider a todo el ancho de la página; el render va como imagen de fondo a la derecha, grande */
#servicios{ overflow-x:clip; }
.slider--zonas{ width:100vw; margin:1.5rem 0 0 calc(50% - 50vw); }
.slider--zonas .zslide{
  --qgap:1.25rem; gap:var(--qgap);
  padding-inline:var(--gutter);
  scroll-padding-inline:var(--gutter);
}
.zslide > a{ flex:0 0 min(560px, 86vw); position:relative; overflow:hidden; isolation:isolate; min-height:clamp(300px, 34vw, 380px); padding:clamp(1.4rem, 1rem + 1.5vw, 2.2rem); justify-content:center; align-items:flex-start; text-align:left; }
.zslide > a h3, .zslide > a p, .zslide > a .pill-arrow{ position:relative; z-index:1; max-width:56%; }
.zslide > a .zitem__img{ position:absolute; z-index:0; right:-8%; bottom:-10%; top:auto; width:auto; height:118%; max-width:none; margin:0; object-fit:contain; object-position:right bottom; transform:none; }
.zslide > a:hover .zitem__img{ transform:scale(1.03); }
.slider--zonas .slider__nav{ justify-content:center; }
@media (max-width:639px){ .zslide > a h3, .zslide > a p, .zslide > a .pill-arrow{ max-width:62%; } .zslide > a .zitem__img{ right:-14%; height:104%; opacity:.9; } }
