/* ===== Landings de servicio (molde) ===== */
.psd-hero-service .psd-breadcrumb{margin-bottom:14px}
.psd-who-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:22px;margin-top:30px}
.psd-who-grid>*{flex:0 0 calc((100% - 66px)/4);min-width:0}
.psd-who{background:#fff;border-radius:var(--psd-radius);padding:26px 24px;box-shadow:var(--psd-shadow);border-left:4px solid var(--psd-green-soft)}
.psd-who:hover{border-left-color:var(--psd-green)}
.psd-who>*{position:relative;z-index:2}
.psd-who h3{font-size:18px;margin-bottom:8px}
.psd-who p{font-size:15.5px;margin:0}
/* pasos */
.psd-steps{list-style:none;margin:34px 0 0;padding:0;counter-reset:paso}
.psd-steps>li{position:relative;padding:0 0 34px 66px}
.psd-steps>li::before{content:"";position:absolute;left:21px;top:46px;bottom:0;width:2px;background:linear-gradient(var(--psd-green-soft),rgba(218,229,159,.2))}
.psd-steps>li:last-child::before{display:none}
.psd-steps>li::after{counter-increment:paso;content:counter(paso);position:absolute;left:0;top:0;width:44px;height:44px;border-radius:50%;background:var(--psd-green);color:#fff;font-family:var(--psd-sans);font-weight:900;font-size:18px;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 14px rgba(150,171,96,.4)}
.psd-steps h3{margin:2px 0 8px;font-size:20px}
.psd-steps p{margin-bottom:0}
/* especialista */
.psd-specialist{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:48px;align-items:center}
.psd-specialist-photo{margin:0}
.psd-specialist-photo img{border-radius:46% 54% 52% 48%/44% 46% 54% 56%;aspect-ratio:1/1;object-fit:cover;box-shadow:0 24px 60px rgba(31,39,58,.18)}
.psd-specialist-name{font-family:var(--psd-sans);font-size:16px;color:var(--psd-slate)}
.psd-colegiado{color:var(--psd-green-hover);font-weight:700}
.psd-specialist-quote{font-family:var(--psd-serif);font-style:italic;font-size:clamp(19px,2.2vw,24px);line-height:1.5;color:var(--psd-ink);margin:18px 0;padding-left:20px;border-left:4px solid var(--psd-green)}
.psd-specialist-lines{list-style:none;margin:0 0 18px;padding:0}
.psd-specialist-lines li{padding-left:26px;position:relative;margin-bottom:8px}
.psd-specialist-lines li::before{content:"\2713";position:absolute;left:0;top:0;color:var(--psd-green);font-weight:700}
/* tabla precios */
.psd-table-wrap{overflow-x:auto;margin:24px 0 6px}
.psd-table{width:100%;border-collapse:collapse;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 6px 22px rgba(31,39,58,.06);font-size:16px;min-width:640px}
.psd-table th{font-family:var(--psd-sans);font-size:14px;text-transform:uppercase;letter-spacing:.4px;background:var(--psd-dark);color:#fff;text-align:left;padding:14px 18px}
.psd-table td{padding:14px 18px;border-bottom:1px solid #eef0f2;vertical-align:top}
.psd-table tr:nth-child(even) td{background:#fafbf7}
.psd-table td strong{font-family:var(--psd-sans);white-space:nowrap}
/* faq */
.psd-faq{background:#fff;border:1px solid #e6e9ec;border-radius:16px;margin-bottom:14px;overflow:hidden}
.psd-faq summary{list-style:none;cursor:pointer;padding:20px 56px 20px 24px;position:relative}
.psd-faq summary::-webkit-details-marker{display:none}
.psd-faq summary h3{display:inline;font-size:18px;margin:0}
.psd-faq summary::after{content:"+";position:absolute;right:22px;top:50%;transform:translateY(-50%);font-family:var(--psd-sans);font-weight:400;font-size:26px;color:var(--psd-green);transition:transform .25s}
.psd-faq[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.psd-faq[open] summary{border-bottom:1px solid #eef0f2}
.psd-faq p{padding:18px 24px 20px;margin:0;max-width:none}
.psd-reviewed{font-family:var(--psd-sans);font-size:13px;color:var(--psd-slate);margin-top:26px}
/* cutout (retrato transparente) */
.psd-hero-cutout{display:flex;flex-direction:column;align-items:center}
.psd-hero-cutout::after{content:"";position:absolute;left:50%;bottom:30px;transform:translateX(-50%);width:min(94%,400px);aspect-ratio:1/1;border-radius:46% 54% 52% 48%/44% 46% 54% 56%;background:linear-gradient(160deg,rgba(218,229,159,.8),rgba(150,171,96,.6) 55%,rgba(79,131,137,.45));z-index:0}
.psd-hero-cutout img{width:min(80%,330px);aspect-ratio:auto;object-fit:contain;border-radius:0;box-shadow:none;filter:drop-shadow(0 24px 40px rgba(31,39,58,.35))}
@media (max-width:1024px){.psd-who-grid>*{flex-basis:calc((100% - 22px)/2)}}
@media (max-width:880px){.psd-who-grid>*{flex-basis:100%}.psd-specialist{grid-template-columns:1fr;gap:26px}.psd-specialist-photo{max-width:260px;margin:0 auto}.psd-steps>li{padding-left:58px}.psd-steps>li::before{left:19px}}
/* vídeos reales (reels) */
.psd-video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:34px}
.psd-video-grid .instagram-media{margin:0 auto!important;max-width:420px!important;min-width:0!important;width:100%!important;border-radius:18px!important;box-shadow:var(--psd-shadow)!important}
.psd-video-lang{font-family:var(--psd-sans);font-size:12px;color:var(--psd-slate);font-weight:400}
@media (max-width:880px){.psd-video-grid{grid-template-columns:1fr}}
/* ===== Equipo ===== */
.psd-team-hero{margin:0 0 40px;border-radius:24px;overflow:hidden;box-shadow:var(--psd-shadow-lg);max-width:960px}
.psd-team-hero img{aspect-ratio:4/3;object-fit:cover;width:100%}
.psd-team-list{display:grid;gap:26px;margin-top:30px}
.psd-team-item{display:grid;grid-template-columns:220px minmax(0,1fr);gap:30px;align-items:start;background:#fff;border-radius:var(--psd-radius);padding:26px;box-shadow:var(--psd-shadow);border:1px solid #eceff2;scroll-margin-top:130px}
.psd-team-item>*{position:relative;z-index:2}
.psd-team-item figure{margin:0}
.psd-team-item img{border-radius:18px;aspect-ratio:1/1;object-fit:cover;width:100%}
.psd-team-item h3{margin-bottom:6px}
.psd-team-role{font-family:var(--psd-sans);font-size:15px;color:var(--psd-slate);margin-bottom:14px}
.psd-staff-grid{display:grid;grid-template-columns:1fr 1fr 240px;gap:24px;margin-top:26px;align-items:start}
.psd-staff-group{background:#fff;border-radius:var(--psd-radius);padding:26px;box-shadow:var(--psd-shadow)}
.psd-staff-group>*{position:relative;z-index:2}
.psd-staff-group h3{font-size:18px}
.psd-staff-group ul{margin:0;padding-left:20px}
.psd-staff-group li{margin-bottom:6px}
.psd-staff-photo{margin:0}
.psd-staff-photo img{border-radius:18px;aspect-ratio:1/1;object-fit:cover}
.psd-staff-photo figcaption{font-family:var(--psd-sans);font-size:13px;color:var(--psd-slate);margin-top:8px}
/* ===== Galería clínica ===== */
.psd-gallery{display:flex;flex-wrap:wrap;justify-content:center;gap:18px}
.psd-gallery-item{margin:0;border-radius:18px;overflow:hidden;box-shadow:var(--psd-shadow);background:#fff;flex:0 0 calc((100% - 36px)/3);min-width:0}
.psd-gallery-item.is-wide{flex-basis:100%}
.psd-gallery-item img{width:100%;aspect-ratio:4/3;object-fit:cover}
.psd-gallery-item.is-wide img{aspect-ratio:21/9}
.psd-gallery-item figcaption{font-family:var(--psd-sans);font-size:13px;color:var(--psd-slate);padding:10px 14px}
.psd-cols-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;align-items:start}
.psd-hours-light dt{color:var(--psd-ink)}
/* ===== Contacto ===== */
.psd-contact-cards{display:flex;flex-wrap:wrap;justify-content:center;gap:20px}
.psd-contact-cards>*{flex:0 0 calc((100% - 60px)/4);min-width:0}
.psd-contact-card{display:flex;flex-direction:column;gap:6px;background:#fff;border-radius:var(--psd-radius);padding:26px 22px;box-shadow:var(--psd-shadow);border:1px solid #eceff2;text-decoration:none;color:inherit;transition:transform .25s,box-shadow .25s}
.psd-contact-card:hover{transform:translateY(-4px);box-shadow:var(--psd-shadow-lg)}
.psd-contact-card>*{position:relative;z-index:2}
.psd-contact-ico{font-size:26px;color:var(--psd-green-hover)}
.psd-contact-card strong{font-family:var(--psd-sans);font-size:17px;color:var(--psd-ink);word-break:break-word}
.psd-contact-card span:last-child{font-size:14px;color:var(--psd-slate)}
@media (max-width:1024px){.psd-contact-cards>*{flex-basis:calc((100% - 20px)/2)}.psd-staff-grid{grid-template-columns:1fr 1fr}.psd-staff-photo{grid-column:1/-1;max-width:240px}}
@media (max-width:880px){.psd-team-item{grid-template-columns:1fr}.psd-team-item figure{max-width:220px}.psd-gallery-item{flex-basis:100%}.psd-cols-2{grid-template-columns:1fr}.psd-contact-cards>*{flex-basis:100%}.psd-staff-grid{grid-template-columns:1fr}}
/* value stack (primera visita gratuita) */
.psd-stack{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:34px;align-items:center;background:linear-gradient(135deg,#fff 45%,rgba(218,229,159,.30));border:2px solid var(--psd-green);border-radius:var(--psd-radius);padding:34px 36px;box-shadow:var(--psd-shadow-lg);margin-top:26px}
.psd-stack>*{position:relative;z-index:2}
.psd-stack-list{list-style:none;margin:0;padding:0;columns:2;column-gap:30px}
.psd-stack-list li{break-inside:avoid;position:relative;padding:6px 0 6px 32px;font-size:16.5px;color:var(--psd-ink)}
.psd-stack-list li::before{content:"\2713";position:absolute;left:0;top:6px;width:22px;height:22px;border-radius:50%;background:var(--psd-green);color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center}
.psd-stack-side{text-align:center;border-left:1px dashed rgba(150,171,96,.55);padding-left:30px}
.psd-stack-price{display:block;font-family:var(--psd-sans);font-weight:900;font-size:clamp(52px,6vw,68px);line-height:1;color:var(--psd-green-ink)}
.psd-stack-tag{display:block;font-family:var(--psd-sans);font-size:13px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--psd-slate);margin:8px 0 18px}
.psd-stack-note{font-family:var(--psd-sans);font-size:14px;color:var(--psd-slate);margin-top:14px;max-width:80ch}
@media (max-width:880px){.psd-stack{grid-template-columns:1fr;padding:26px 22px;gap:22px}.psd-stack-list{columns:1}.psd-stack-side{border-left:0;padding-left:0;border-top:1px dashed rgba(150,171,96,.55);padding-top:20px}}
.psd-video-single{grid-template-columns:minmax(0,420px);justify-content:center}

/* ===== Fotos completas, sin recortes (queja de la clienta 15/09/2026) ===== */
/* Casos antes/después montados en una sola foto (4:5): se ven enteros, con su proporción real */
.psd-case-figure img{aspect-ratio:auto;height:auto;object-fit:contain;object-position:50% 50%}
/* Hero con foto vertical (blanqueamiento: antes y después completo en el primer pantallazo) */
.psd-hero-home-media.is-portrait{width:min(100%,360px)}
.psd-hero-home-media.is-portrait::before{border-radius:40px;inset:-5%}
.psd-hero-home-media.is-portrait img{aspect-ratio:4/5;border-radius:26px;object-fit:cover}
@media (max-width:880px){.psd-hero-home-media.is-portrait{width:148px}.psd-hero-home-media.is-portrait img{border-radius:18px}}

/* ===== Higienistas y atención al paciente: tarjetas con retrato ===== */
.psd-staff-cards{display:flex;flex-wrap:wrap;justify-content:center;gap:24px;margin-top:28px} /* 30/09/2026: tarjetas de 256 px como máximo: la foto del personal (≈220 px) mide lo mismo que la de los doctores en todos los anchos */
.psd-staff-card{flex:0 0 calc((100% - 72px)/4);min-width:0;max-width:256px;background:#fff;border-radius:var(--psd-radius);padding:18px 18px 20px;box-shadow:var(--psd-shadow);border:1px solid #eceff2;text-align:center}
.psd-staff-card>*{position:relative;z-index:2}
.psd-staff-card img,.psd-staff-mono{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:16px}
.psd-staff-mono{display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.55),transparent 55%),linear-gradient(145deg,var(--psd-green-soft),var(--psd-green) 55%,var(--psd-teal-ink));color:#fff;font-family:var(--psd-serif);font-size:clamp(34px,5vw,56px);letter-spacing:2px;text-shadow:0 2px 10px rgba(31,39,58,.25)}
.psd-staff-card h3{font-size:17px;margin:14px 0 4px;line-height:1.3}
.psd-staff-card p{margin:0;font-family:var(--psd-sans);font-size:14px;color:var(--psd-slate)}
@media (max-width:1024px){.psd-staff-card{flex-basis:calc((100% - 24px)/2)}}
@media (max-width:880px){.psd-staff-cards{gap:14px}.psd-staff-card{flex-basis:calc((100% - 14px)/2);padding:12px 12px 14px}.psd-staff-card h3{font-size:15px}.psd-staff-card p{font-size:13px}}
/* La clínica: la foto ancha de recepción con su proporción real (16:9): el rótulo de la pared se ve entero */
.psd-gallery-item.is-wide img{aspect-ratio:16/9}
/* Blanqueamiento en móvil: el hero vertical deja el CTA en el primer pantallazo también en pantallas bajas */
@media (max-width:880px){.psd-hero-home-media.is-portrait{width:132px}}
@media (max-width:880px) and (max-height:720px){.psd-hero-home-media.is-portrait{width:108px}}

/* ===== 23/09/2026 · Contacto: tarjeta con dos teléfonos (fijo + móvil) y correo SIEMPRE en una línea ===== */
.psd-contact-card{container-type:inline-size}
.psd-contact-card--multi{position:relative;cursor:pointer}
.psd-contact-card--multi>.psd-card-main{position:static;color:inherit;text-decoration:none}
.psd-contact-card--multi>.psd-card-main::after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit}
.psd-contact-card--multi>.psd-card-main:focus-visible{outline:none}
.psd-contact-card--multi:has(>.psd-card-main:focus-visible){outline:3px solid var(--psd-teal-ink);outline-offset:3px}
.psd-contact-card--multi .psd-card-note{font-size:14px;color:var(--psd-slate)}
.psd-contact-card--multi>.psd-card-sub{z-index:3;align-self:flex-start;margin-top:2px;font-size:14px;font-weight:600;color:var(--psd-teal-ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.psd-contact-card--multi>.psd-card-sub:hover{color:var(--psd-green-ink)}
/* El correo no se parte nunca («…dental.e / s»): tamaño fluido según el ancho real de la tarjeta (unidades de contenedor) */
.psd-contact-card strong.psd-email{white-space:nowrap;word-break:normal;overflow-wrap:normal;font-size:clamp(12.5px,calc(100cqi / 15.2),17px);letter-spacing:-.005em}
/* Horario: cada franja es indivisible y la conjunción se atenúa */
.psd-hours-slot{white-space:nowrap}
.psd-hours-and{opacity:.72}

/* ===== 23/09/2026 · Sedación: vídeo real de la clínica (reel) — sección oscura premium con marco animado ===== */
@property --psd-ang{syntax:'<angle>';inherits:false;initial-value:0deg}
.psd-video-feature{position:relative;overflow:hidden;isolation:isolate;color:#e8edf3;background:radial-gradient(120% 90% at 88% 8%,rgba(107,79,160,.30),transparent 55%),radial-gradient(90% 80% at 0% 100%,rgba(143,176,90,.20),transparent 60%),linear-gradient(160deg,#131a2a 0%,#1f273a 55%,#22304a 100%)}
.psd-video-glow{position:absolute;inset:auto -10% -40% auto;width:60vmax;height:60vmax;border-radius:50%;background:radial-gradient(closest-side,rgba(63,111,118,.35),transparent);filter:blur(10px);z-index:-1;pointer-events:none}
.psd-video-layout{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(28px,5vw,72px);align-items:center}
.psd-video-feature .psd-kicker{color:#b9c6d6}
.psd-video-feature .psd-kicker::before{opacity:.9}
.psd-video-feature .psd-hook{color:#fff}
.psd-video-feature .psd-hl{color:#fff;background-image:linear-gradient(120deg,rgba(143,176,90,.55),rgba(182,210,127,.42))}
.psd-video-intro{font-size:18px;line-height:1.6;color:#d5dde7;max-width:52ch;margin:0}
.psd-video-points{list-style:none;margin:22px 0 28px;padding:0;display:grid;gap:14px}
.psd-video-points li{position:relative;padding-left:36px;color:#eef2f7;line-height:1.5}
.psd-video-points li::before{content:"";position:absolute;left:0;top:.15em;width:24px;height:24px;border-radius:50%;background:rgba(143,176,90,.16) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b6d27f' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/13px no-repeat;box-shadow:inset 0 0 0 1px rgba(143,176,90,.55)}
.psd-video-cta{margin:0}
.psd-video-stage{position:relative;display:flex;flex-direction:column;align-items:center}
.psd-video-ring{position:relative;width:min(360px,100%);padding:3px;border-radius:34px;background:conic-gradient(from var(--psd-ang),#8fb05a,#6b4fa0,#3f6f76,#b6d27f,#8fb05a);animation:psdSpin 9s linear infinite;box-shadow:0 34px 80px -24px rgba(0,0,0,.7),0 0 70px -12px rgba(143,176,90,.35)}
@keyframes psdSpin{to{--psd-ang:360deg}}
.psd-video-frame{position:relative;border-radius:31px;overflow:hidden;background:#0d1320;aspect-ratio:9/16}
.psd-video-poster{position:absolute;inset:0;z-index:2;display:block;width:100%;height:100%;padding:0;margin:0;border:0;background:#0d1320;cursor:pointer;transition:opacity .6s ease,visibility .6s}
.psd-video-poster picture,.psd-video-poster img{display:block;width:100%;height:100%;object-fit:cover}
.psd-video-poster::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,19,32,0) 38%,rgba(13,19,32,.78))}
.psd-video-poster:hover .psd-video-play,.psd-video-poster:focus-visible .psd-video-play{transform:scale(1.07);background:rgba(255,255,255,.26)}
.psd-video-poster:focus-visible{outline:3px solid #b6d27f;outline-offset:-3px}
.psd-video-play{position:absolute;left:50%;top:50%;width:80px;height:80px;margin:-40px 0 0 -40px;border-radius:50%;background:rgba(255,255,255,.17);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.6),0 12px 30px rgba(0,0,0,.35);z-index:3;transition:transform .3s ease,background .3s ease}
.psd-video-play::before{content:"";position:absolute;left:32px;top:25px;border-style:solid;border-width:15px 0 15px 24px;border-color:transparent transparent transparent #fff}
.psd-video-play::after{content:"";position:absolute;inset:-12px;border-radius:50%;border:1.5px solid rgba(255,255,255,.5);animation:psdPulse 2.4s ease-out infinite}
@keyframes psdPulse{0%{transform:scale(.82);opacity:.95}100%{transform:scale(1.38);opacity:0}}
.psd-video-label{position:absolute;left:16px;right:16px;bottom:20px;z-index:3;color:#fff;font:700 14px/1.3 var(--psd-sans);letter-spacing:.03em;text-align:center;text-shadow:0 1px 8px rgba(0,0,0,.4)}
.psd-video-chip{position:absolute;z-index:3;padding:10px 14px;border-radius:14px;background:rgba(255,255,255,.1);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.24),0 12px 30px -10px rgba(0,0,0,.55);color:#fff;font:600 13px/1.2 var(--psd-sans);white-space:nowrap;animation:psdFloat 6s ease-in-out infinite}
.psd-video-chip-0{top:13%;right:calc(50% + 150px)}
.psd-video-chip-1{bottom:22%;left:calc(50% + 150px);animation-delay:-3s}
@keyframes psdFloat{50%{transform:translateY(-8px)}}
.psd-video-source{margin:18px 0 0;font-size:13px;color:#a9b8c9;text-align:center}
@media (max-width:1180px){.psd-video-chip-0{right:calc(50% + 120px)}.psd-video-chip-1{left:calc(50% + 120px)}}
@media (max-width:880px){
  .psd-video-layout{grid-template-columns:1fr}
  .psd-video-ring{width:min(340px,86vw)}
  .psd-video-chip{position:static;animation:none;margin:14px 4px 0;display:inline-block}
  .psd-video-stage{flex-direction:row;flex-wrap:wrap;justify-content:center}
  .psd-video-stage>.psd-video-ring,.psd-video-stage>.psd-video-source{flex-basis:100%}
  .psd-video-stage>.psd-video-ring{max-width:min(340px,86vw)}
}
@media (prefers-reduced-motion:reduce){.psd-video-ring,.psd-video-play::after,.psd-video-chip{animation:none}}
/* Visor del reel a pantalla (se abre al pulsar el póster) */
.psd-reel-dialog{width:min(440px,94vw);max-height:92vh;padding:52px 0 0;border:0;border-radius:24px;background:#fff;overflow:auto;box-shadow:0 40px 120px rgba(0,0,0,.55)}
.psd-reel-dialog::backdrop{background:rgba(10,14,24,.78);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.psd-reel-dialog[open]{animation:psdReelIn .35s cubic-bezier(.2,.8,.2,1)}
@keyframes psdReelIn{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}
.psd-reel-holder .instagram-media{margin:0!important;min-width:0!important;width:100%!important;max-width:none!important;border:0!important;border-radius:0!important;box-shadow:none!important}
.psd-reel-loading{margin:0;padding:22px;text-align:center;font:600 14px/1.3 var(--psd-sans);color:var(--psd-slate)}
.psd-reel-dialog.is-ready .psd-reel-loading{display:none}
.psd-reel-close{position:absolute;top:6px;right:8px;margin:0;z-index:5;width:40px;height:40px;border-radius:50%;border:0;background:rgba(31,39,58,.82);color:#fff;font-size:26px;line-height:40px;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.3)}
.psd-reel-close:hover{background:#1f273a}
.psd-reel-close:focus-visible{outline:3px solid #b6d27f;outline-offset:2px}
html.psd-reel-open{overflow:hidden}
@media (prefers-reduced-motion:reduce){.psd-reel-dialog[open]{animation:none}}

/* 29/09/2026 · Fachada real (foto de la clienta): bloque «Cómo llegar» de /contacto/ y /la-clinica/ + miniatura del cierre oscuro */
.psd-arrive{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,4vw,56px);align-items:center;margin-top:8px}
.psd-arrive-photo{position:relative;margin:0;border-radius:var(--psd-radius);overflow:hidden;box-shadow:var(--psd-shadow-lg);isolation:isolate}
.psd-arrive-photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.psd-arrive-photo:hover img{transform:scale(1.035)}
.psd-arrive-photo::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35);pointer-events:none}
.psd-arrive-photo figcaption{position:absolute;left:14px;bottom:14px;z-index:1;display:inline-flex;align-items:center;gap:8px;padding:7px 14px 7px 8px;border-radius:999px;background:rgba(255,255,255,.84);-webkit-backdrop-filter:blur(10px) saturate(1.4);backdrop-filter:blur(10px) saturate(1.4);color:var(--psd-ink);font:600 13.5px/1.2 var(--psd-sans);box-shadow:0 6px 20px rgba(31,39,58,.18)}
.psd-arrive-pin{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--psd-green-ink);color:#fff;flex:none}
.psd-arrive-clues{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:16px}
.psd-arrive-clues li{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr);gap:14px;align-items:start}
.psd-arrive-clues li:not(:last-child)::before{content:"";position:absolute;left:19px;top:44px;bottom:-14px;border-left:2px dotted rgba(95,114,56,.38)}
.psd-arrive-n{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:linear-gradient(145deg,var(--psd-green-soft),#eef3d6);color:var(--psd-green-ink);font:800 16px/1 var(--psd-sans);box-shadow:inset 0 0 0 1px rgba(95,114,56,.25)}
.psd-arrive-clues strong{display:block;font-family:var(--psd-sans);color:var(--psd-ink);font-size:16.5px;line-height:1.3;margin-top:2px}
.psd-arrive-clues li>div>span{display:block;color:var(--psd-body);font-size:15px;line-height:1.5;margin-top:3px}
.psd-arrive-addr{margin:0 0 14px;line-height:1.55}
.psd-arrive-cta{margin:0 0 14px}
.psd-arrive-zone{font-size:14.5px;line-height:1.55;color:var(--psd-slate);margin:0}
.psd-arrive-h{margin:22px 0 8px;font-size:17px}
.psd-arrive-map{margin-top:clamp(24px,3vw,40px)}
.psd-arrive-map iframe{display:block;width:100%;height:clamp(280px,32vw,400px);border:0;border-radius:20px;box-shadow:var(--psd-shadow)}
/* Complianz sustituye el mapa por una imagen de 1280x920 hasta aceptar cookies y le fija la altura por JS: se mantiene la misma caja */
.psd-arrive-map .cmplz-placeholder-parent{height:clamp(280px,32vw,400px)!important;border-radius:20px;overflow:hidden;background-size:cover!important;background-position:center!important;box-shadow:var(--psd-shadow)}
.psd-arrive-map .cmplz-placeholder-parent iframe{height:100%!important;box-shadow:none}
.psd-arrive-map .cmplz-blocked-content-container iframe{opacity:0} /* el iframe vacío (blanco) tapaba la imagen del mapa hasta aceptar cookies */
.psd-side-facade{position:relative;display:block;max-width:360px;margin:4px 0 14px;border-radius:16px;overflow:hidden;box-shadow:0 14px 34px rgba(0,0,0,.35);isolation:isolate}
.psd-side-facade img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.psd-side-facade::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16);background:linear-gradient(to top,rgba(15,20,32,.8),rgba(15,20,32,0) 48%);pointer-events:none}
.psd-side-facade-cap{position:absolute;left:14px;right:14px;bottom:11px;z-index:1;color:#fff;font:600 13.5px/1.3 var(--psd-sans);text-shadow:0 1px 8px rgba(0,0,0,.45)}
.psd-side-facade:hover img,.psd-side-facade:focus-visible img{transform:scale(1.04)}
.psd-side-facade:focus-visible{outline:2px solid #fff;outline-offset:3px}
@media (max-width:880px){.psd-arrive{grid-template-columns:1fr}.psd-arrive-photo figcaption{left:10px;bottom:10px;font-size:12.5px}.psd-side-facade{max-width:none}}
@media (prefers-reduced-motion:reduce){.psd-arrive-photo img,.psd-side-facade img{transition:none}.psd-arrive-photo:hover img,.psd-side-facade:hover img,.psd-side-facade:focus-visible img{transform:none}}
/* 30/09/2026 · Tarifa jubilados (dato de la clienta): distintivo sobrio junto a las tablas de precios */
.psd-price-note{display:flex;align-items:center;gap:9px;width:fit-content;max-width:100%;margin:16px 0 6px;padding:9px 16px;border-radius:16px;background:linear-gradient(135deg,#f3f7e2,var(--psd-green-soft));color:var(--psd-green-ink);font:700 14.5px/1.4 var(--psd-sans);box-shadow:inset 0 0 0 1px rgba(95,114,56,.22)}
.psd-price-note>span{flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--psd-green-ink);color:#fff;font-size:12px}
/* 30/09/2026 · Visita virtual (vídeo de la web antigua, desde el máster 4K) en /la-clinica/ */
.psd-tour{margin:28px 0 0}
.psd-tour-frame{position:relative;aspect-ratio:16/9;border-radius:26px;overflow:hidden;background:#1f273a;box-shadow:0 30px 70px rgba(31,39,58,.22);isolation:isolate}
.psd-tour-frame::after{content:"";position:absolute;inset:0;z-index:3;border-radius:inherit;padding:2px;background:conic-gradient(from var(--psd-ang),rgba(150,171,96,.95),rgba(63,111,118,.7),rgba(255,255,255,.6),rgba(182,210,127,.9),rgba(150,171,96,.95));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;animation:psdSpin 12s linear infinite}
.psd-tour-video{display:block;width:100%;height:100%;object-fit:cover;background:#1f273a}
.psd-tour-frame::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(15,20,32,.45),rgba(15,20,32,0) 38%),linear-gradient(to bottom,rgba(15,20,32,.35),rgba(15,20,32,0) 26%);pointer-events:none}
.psd-tour-badge{position:absolute;left:18px;top:16px;z-index:2;display:inline-flex;align-items:center;gap:9px;padding:8px 14px;border-radius:999px;background:rgba(15,20,32,.5);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;font:600 13px/1 var(--psd-sans);letter-spacing:.2px}
.psd-tour-badge i{width:8px;height:8px;border-radius:50%;background:#b6d27f;box-shadow:0 0 0 0 rgba(182,210,127,.7)}
.psd-tour.is-playing .psd-tour-badge i{animation:psdLive 1.6s ease-out infinite}
@keyframes psdLive{0%{box-shadow:0 0 0 0 rgba(182,210,127,.75)}100%{box-shadow:0 0 0 10px rgba(182,210,127,0)}}
.psd-tour-toggle{position:absolute;z-index:2;right:18px;bottom:16px;display:grid;place-items:center;width:52px;height:52px;padding:0;border-radius:50%;border:1px solid rgba(255,255,255,.55);background:rgba(15,20,32,.5);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;cursor:pointer;transition:transform .25s ease,background .25s ease,width .35s ease,height .35s ease,right .35s ease,bottom .35s ease}
.psd-tour-toggle:hover{background:rgba(15,20,32,.7);transform:scale(1.06)}
.psd-tour-toggle:focus-visible{outline:3px solid #fff;outline-offset:3px}
.psd-tour-toggle .psd-i-pause,.psd-tour.is-playing .psd-tour-toggle .psd-i-play{display:none}
.psd-tour.is-playing .psd-tour-toggle .psd-i-pause{display:block}
/* Antes de arrancar (reducir movimiento, ahorro de datos o pausa): botón grande en el centro, invitación clara a verlo */
.psd-tour:not(.is-started) .psd-tour-toggle{right:calc(50% - 40px);bottom:calc(50% - 40px);width:80px;height:80px;background:rgba(95,114,56,.88);border-color:rgba(255,255,255,.8);box-shadow:0 14px 40px rgba(15,20,32,.35)}
.psd-tour:not(.is-started) .psd-tour-toggle svg{width:34px;height:34px}
.psd-tour-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px}
.psd-tour-chips span{display:inline-flex;align-items:center;gap:7px;padding:8px 15px;border-radius:999px;background:#fff;border:1px solid #e3e7ea;color:var(--psd-ink);font:600 14px/1.2 var(--psd-sans);box-shadow:var(--psd-shadow)}
.psd-tour-chips span::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--psd-green)}
@media (max-width:880px){.psd-tour-frame{border-radius:18px}.psd-tour-badge{left:12px;top:10px;padding:6px 11px;font-size:12px}.psd-tour-toggle{right:12px;bottom:10px;width:44px;height:44px}.psd-tour:not(.is-started) .psd-tour-toggle{right:calc(50% - 32px);bottom:calc(50% - 32px);width:64px;height:64px}.psd-tour-chips span{font-size:13px;padding:7px 12px}}
@media (prefers-reduced-motion:reduce){.psd-tour-frame::after,.psd-tour.is-playing .psd-tour-badge i{animation:none}.psd-tour-toggle{transition:none}}
/* 30/09/2026 · Etiqueta visible en recreaciones con IA de personas reales (Reglamento UE de IA, art. 50.4) */
.psd-service-img{position:relative}
.psd-ai-badge{position:absolute;left:10px;bottom:10px;z-index:2;padding:4px 10px;border-radius:999px;background:rgba(15,20,32,.62);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;font:600 11px/1.25 var(--psd-sans);letter-spacing:.2px;pointer-events:none}
/* 30/09/2026 · Ajustes tras la verificación del staging */
/* Precio de los tests: la letra pequeña lleva su propio interlineado (si pasa a otra línea no hereda los 49 px del importe) */
.psd-wiz-price small{display:inline-block;line-height:1.45;vertical-align:baseline}
/* Visita virtual: el marco 16:9 cabe siempre bajo la cabecera fija (portátiles de 768 px de alto) */
.psd-tour-frame{max-width:min(100%,calc((100vh - 210px) * 16 / 9));margin-inline:auto}
@supports (height:100svh){.psd-tour-frame{max-width:min(100%,calc((100svh - 210px) * 16 / 9))}}
/* Menú lateral cerrado: fuera del orden de tabulación (antes el foco se iba a enlaces invisibles; WCAG 2.4.7) */
@media (max-width:1099px){.psd-nav{visibility:hidden;transition:transform .3s,visibility 0s linear .3s}.psd-nav.is-open{visibility:visible;transition:transform .3s,visibility 0s}}
/* Barra superior en una sola línea en móviles estrechos */
@media (max-width:420px){.psd-topbar-word{display:none}}
@media (max-width:360px){.psd-topbar{font-size:12px}.psd-topbar-inner{gap:6px 12px}.psd-langs{gap:2px}.psd-langs a{padding:2px 6px}}

/* 14/10/2026 · Vídeo propio en el marco (sin Instagram): el póster hace de botón y se retira al reproducir. Modo foto: sin botón. */
.psd-video-el{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#0d1320}
.psd-video-frame.is-playing .psd-video-poster{opacity:0;visibility:hidden;pointer-events:none}
.psd-video-poster.is-still{cursor:default}
