/* Ratings and video controls: align the actual symbols, independently of font baselines. */
.rating>span{line-height:1;align-items:center}
.rating>span>img{flex:none;transform:translateY(.5px)}
.play{padding:0;line-height:1}
.play>svg{display:block;width:36%;height:36%;fill:currentColor}

/* Video captions remain available to screen readers without adding a visible heading. */
#media-dialog.video-modal #media-title{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#media-dialog.video-modal,#media-dialog.video-modal:has(iframe.portrait-player){padding:48px 20px 20px}
#media-dialog.video-modal #media-content,#media-dialog.video-modal:has(.portrait-player) #media-content{margin:0}
#media-dialog.video-modal #media-content .portrait-player{display:block;width:min(100%,calc((100dvh - 100px)*9/16));height:auto;max-height:calc(100dvh - 100px);aspect-ratio:9/16;margin:auto;object-fit:contain}

/* Trim excess exported white space, retaining the original photographs. */
.conditions{background:#fff;border-radius:12px;overflow:hidden;padding:0}
.conditions-picture{height:auto;aspect-ratio:1942/690;border-radius:0;position:relative;overflow:hidden}
.conditions-picture img{position:absolute;width:100%;height:auto;max-width:100%;left:0;top:-5.7971%;object-fit:contain}
.conditions ul{margin:0;border-radius:0;height:auto;min-height:48px}
@media(min-width:701px){.conditions li{font-size:max(14px,calc(18 * var(--u)));line-height:1.2}.conditions li img{width:max(20px,calc(34 * var(--u)));height:max(20px,calc(34 * var(--u)))}}
@media(max-width:700px){.conditions ul{min-height:50px;padding:8px 4px}.conditions li{font-size:12px;line-height:15px}}

/* Match the overlay to the photograph, excluding the exported white margins. */
@media(min-width:701px){
 .restore-choice figure{isolation:isolate}
 .restore-choice figure:first-child img{position:absolute;width:204.386%;height:104.33%;max-width:none;left:-2.193%;top:-.433%;object-fit:fill}
 .restore-choice figure:last-child img{position:absolute;width:104.31%;height:104.33%;max-width:none;left:-2.155%;top:-.433%;object-fit:fill}
 .restore-choice figure:after{inset:34% 0 0}
}

/* Clean stroke arrows in the before/after handle. */
.comparison-divider>span{font-size:0;line-height:0}
.comparison-divider>span>svg{display:block;width:66%;height:66%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* Align the labels with the photo tops and the descriptions with the reference. */
.care-grid>div{align-items:stretch}
.care-grid p{display:flex;flex-direction:column;align-items:flex-start;flex:1;min-width:0}
.care-grid b{flex:none;width:fit-content;max-width:100%;margin:0 0 6px;text-align:center;padding-inline:10px}
.care-grid>div:last-child b{margin-bottom:6px}
.care-description{display:block}
.care-grid strong{margin-top:4px}
.care-grid>div:last-child .care-description{margin-top:auto}
@media(min-width:1101px){.care-grid .photo{width:calc(100 * var(--u))}}
@media(min-width:701px){.care-grid p{font-size:max(14px,calc(16 * var(--u)))}.care-grid b{font-size:max(14px,calc(18 * var(--u)))}.care-grid strong{font-size:max(16px,calc(20 * var(--u)))}}
@media(min-width:701px) and (max-width:1100px){
 .care-grid .photo{width:80px;height:138px}
 .care-grid p{font-size:14px}
 .care-grid b{font-size:15px}
 .care-grid strong{font-size:16px}
}

/* Mobile care cards follow the supplied portrait layout. */
.care-mobile-break{display:none}
@media(max-width:700px){
 .care-grid>div{height:auto;min-height:172px}
 .care-grid b{width:145px;max-width:100%;padding:6px 9px;text-align:left;background:#d1edf2;margin-bottom:10px}
 .care-grid strong{margin-top:16px}
 .care-grid .care-description{max-width:180px}
 .care-grid>div:last-child b{margin-bottom:23px}
 .care-grid>div:last-child .care-description{margin-top:0}
 .care-desktop-break{display:none}
 .care-mobile-break{display:block}
}

/* All carousel pages use the height of the tallest doctor card. */
@media(min-width:701px){
 .doctor-card{min-height:var(--doctor-card-height,calc(468 * var(--u)))}
 .doctor-card .doctor-photo{height:100%;min-height:calc(408 * var(--u))}
}
/* Preserve the portrait frame when cards stack on tablet/small laptops. */
@media(min-width:701px) and (max-width:1100px){.doctor-card .doctor-photo{width:calc(350px * 250 / 408);max-width:100%;height:350px;min-height:350px;justify-self:center}}

/* Reserve space for the shield rather than letting it cover the text. */
@media(min-width:1101px){
 .responsibility p{max-width:none;padding-right:calc(115 * var(--u))}
 .responsibility>img{width:calc(130 * var(--u));height:calc(130 * var(--u));right:calc(-10 * var(--u));bottom:0}
}
@media(max-width:700px){
 .responsibility{--shield-size:118px;height:auto;min-height:247px}
 .responsibility p{max-width:none;padding-right:calc(var(--shield-size) + 10px);height:auto}
 .responsibility>img{width:var(--shield-size);height:var(--shield-size);right:8px;bottom:8px}
 .responsibility p>.mobile-copy>span{white-space:normal}
 .doctor-role,.doctor-card .recommendation{font-size:12px}
}
@media(max-width:359px){.responsibility{--shield-size:90px}.responsibility p{font-size:12px}}

/* License pages: one complete page at a time, with no internal scrollbar. */
#license-dialog{width:min(760px,calc((100dvh - 168px)*.7071 + 40px));max-width:calc(100vw - 24px);height:fit-content;max-height:calc(100dvh - 24px);padding:20px;overflow:hidden}
#license-dialog[open]{display:flex;flex-direction:column;gap:12px}
#license-dialog h2{flex:none;font-size:clamp(20px,2.2vw,28px);line-height:1.2;padding-right:44px}
#license-dialog .close{top:12px;right:12px;width:32px;height:32px;z-index:2}
#license-dialog .license-pages{display:block;flex:none;min-height:0;margin:0;overflow:hidden;aspect-ratio:1/1.4142}
#license-dialog .license-slide{display:block;width:100%;height:100%;object-fit:contain;border:0;border-radius:0}
.license-controls{display:flex;flex:none;align-items:center;justify-content:center;gap:24px}
.license-controls button{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#d2d4d5;color:#fff}
.license-controls button:hover,.license-controls button:focus-visible{background:#29bfd2}
.license-controls button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.license-controls span{min-width:48px;text-align:center;font-size:14px}
@media(max-height:450px){#license-dialog{padding:12px;gap:6px}.license-controls button{width:36px;height:36px}}

/* Center certificate controls independently of font baselines. */
.certificate-gallery__controls button{padding:0;line-height:0}
.certificate-gallery__controls button svg{display:block;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

@media(max-width:700px){
 /* Preserve the complete original frames of the additional patient reviews. */
 .case-slide:not(.single-case):nth-child(n+2) .case-video>.photo{height:auto;min-height:0;aspect-ratio:858/678}
 .case-slide:not(.single-case):nth-child(n+2) .case-video>.photo img{object-fit:contain;width:100%;height:100%;inset:0}
 /* Shared bottom baseline, with sufficient height for both captions. */
 .guarantee-main{grid-template-rows:104px 120px minmax(212px,auto)}
 .guarantee-main .original,.guarantee-main .passport{display:grid;grid-template-rows:148px 1fr;align-items:end;justify-items:center;gap:10px;padding:14px 10px;border:1px solid #fff}
 .original img,.passport img{height:148px;width:100%;max-width:100%;margin:0;object-fit:contain}
 .original h3,.passport h3{margin:0;min-height:34px;line-height:17px;align-self:end}
 /* Natural document flow prevents legal links and the logo from overlapping. */
 .footer{height:auto;padding:30px 0}
 .footer-grid{display:grid;height:auto;grid-template-columns:1fr;gap:20px;grid-template-areas:"logo" "button" "policy" "consent" "legal" "note1" "note2" "marketing"}
 .footer-logo{grid-area:logo;width:165px;margin:0 auto 4px}
 .footer-logo>img{display:block;width:100%;height:auto}
 .footer-docs,.footer-last{display:contents}
 .footer-legal{display:block;grid-area:legal}
 .footer-docs>.document-link,.footer-docs>p,.footer-legal>p,.footer-last>.legal-button,.footer-last>.marketing{position:static;inset:auto;width:100%;margin:0;transform:none;font-size:12px;line-height:1.5}
 .footer-docs>.document-link:first-child{grid-area:policy}
 .footer-docs>.document-link:nth-child(2){grid-area:consent}
 .footer-docs>p:nth-of-type(1){grid-area:note1}
 .footer-docs>p:nth-of-type(2){grid-area:note2}
 .footer-last>.legal-button{grid-area:button;min-height:58px;height:auto;padding:16px 10px;font-size:14px;font-weight:700}
 .footer-legal>p+p{margin-top:14px}
 .footer-legal>.medical-notice{padding-top:20px;margin-top:20px;max-width:100%}
 .footer-last>.marketing{grid-area:marketing;max-width:280px;justify-self:center}
}

/* Icons are centered by geometry, independent of text baselines and padding. */
.close,.arrow,.doctor-layout .arrow,.round,.license-controls button,.certificate-gallery__controls button{display:grid;place-items:center;padding:0;line-height:0}
.arrow>svg{display:block;width:clamp(28px,calc(48 * var(--u)),48px);height:clamp(28px,calc(48 * var(--u)),48px);fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.close>svg,.round>svg{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:700px){.arrow>svg{width:36px;height:36px}}
