/* Small extensions of the accepted Butterfly controls and document layout. */
.experience-dialog .experience-dialog__close{width:44px;height:44px;flex-shrink:0}
.experience-dialog--gallery :is(.experience-dialog__close,.gallery-navigation button):focus-visible{outline:2px solid var(--ivory);outline-offset:4px}
html.a11y .experience-dialog--gallery :is(.experience-dialog__close,.gallery-navigation button):focus-visible{outline-color:#000}
.gallery-navigation button:not(:disabled),.experience-dialog__close{transition:transform 180ms cubic-bezier(.22,.75,.25,1)}
.gallery-navigation>button{flex-shrink:0}
.gallery-navigation>span{min-width:0;overflow-wrap:anywhere}
.gallery-navigation button:not(:disabled):active,.experience-dialog__close:active{transform:scale(.96)}
.booking-dialog,.experience-dialog{max-width:calc(100% - 40px)}
html.a11y :is(.booking-dialog,.experience-dialog){max-width:calc(100% - 48px)}
/* Negative margins keep the booking close in its original, zero-flow position. */
.booking-dialog{--booking-close-inset:20px;--booking-padding-block:42px;--booking-padding-inline:42px}
.booking-dialog>.dialog-close{position:sticky;top:calc(var(--booking-close-inset) - var(--booking-padding-block));right:auto;margin-block-start:calc(var(--booking-close-inset) - var(--booking-padding-block));margin-block-end:calc(var(--booking-padding-block) - var(--booking-close-inset) - 44px);margin-inline-start:auto;margin-inline-end:calc(var(--booking-close-inset) - var(--booking-padding-inline));background:inherit}
@media(max-width:640px){.booking-dialog{--booking-close-inset:14px;--booking-padding-block:28px;--booking-padding-inline:23px}}
.document-preview{display:flex;align-items:center;gap:22px;max-width:420px;margin-top:34px;padding-block:18px;border-top:1px solid var(--line);color:var(--ink);text-decoration:none}
.document-preview>img{display:block;flex:0 0 96px;width:96px;height:auto;aspect-ratio:632/840;object-fit:contain;border:1px solid #e0ddd6;background:#fff;box-shadow:0 5px 16px #282b2810;transition:transform 240ms cubic-bezier(.22,.75,.25,1)}
.document-preview>span{display:block;min-width:0;font-size:15px;line-height:1.55}
.document-preview small{display:block;margin-top:9px;font-size:11px;color:var(--muted)}
.document-preview__action{display:flex;align-items:center;gap:12px;min-height:44px;margin-top:10px;font-size:11px;color:var(--sage)}
.document-preview__action svg{width:18px;height:18px;flex-shrink:0}
/* Let enlarged text reflow inside the accepted layout, without shrinking type. */
.hero h1,.section-title,.service-item__title,.finder__panel h3{min-width:0;overflow-wrap:anywhere}
.service-item__number{min-width:max-content}
.section-heading__text,.service-item__body{overflow-wrap:anywhere}
.finder__panel,.booking-dialog__intro,.experience-dialog__body{overflow-wrap:anywhere}
.menu-layout>*{min-width:0}
.menu-column{overflow-wrap:anywhere}
.mobile-menu__links a{min-width:0}
.mobile-menu__links a>span{min-width:max-content;flex-shrink:0}
.mobile-menu__phone{white-space:normal}
.button{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.button>svg{flex-shrink:0}
.mobile-dock .button{min-width:0;max-width:100%}
.finder__layout>*,.finder__heading>*,.finder__content{min-width:0}
.finder__tabs button{min-width:0;overflow-wrap:anywhere}
.finder__tabs button>span:not(.finder__tab-number):not(.finder__tab-arrow){min-width:0}
.finder__bottom .text-link{min-width:0;flex-shrink:1;white-space:normal;overflow-wrap:anywhere}
.step,.direction-rail a,.fact-strip>div,.feature__content{min-width:0;overflow-wrap:anywhere}
.feature__content{max-width:100%}
.manifesto__statement,.journal-entry h3,.solution-panel h3,.journey-panel h3{min-width:0;overflow-wrap:anywhere}
.solution-panel,.journey-panel{overflow-wrap:anywhere}
.solution-tabs button,.journey-tabs button,.price-filters button{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.home-price h3{min-width:0;overflow-wrap:anywhere}
.home-price__amount{min-width:0;white-space:normal;overflow-wrap:anywhere}
.clinic-story>*,.clinic-chapter h3{min-width:0}
.clinic-chapters{overflow-wrap:anywhere}
.clinic-chapter summary>span{flex-shrink:0}
.footer__top>.brand{min-width:0;flex-wrap:wrap}
.footer__links,.footer__links a{min-width:0;max-width:100%;overflow-wrap:anywhere}
.production-legal a[href^="mailto:"]{overflow-wrap:anywhere}
/* These rem values equal the original 86/76/72px at the default 16px root. */
:root{--header-height:max(86px,5.375rem)}
.header{container:butterfly-header/inline-size}
.header__inner{flex-wrap:nowrap;align-content:center}
.header__actions{min-width:0;flex-shrink:0}
.skip-link{top:0;transform:translateY(calc(-100% - 16px))}
.skip-link:focus{top:12px;transform:none}
@media(max-width:960px){:root{--header-height:max(76px,4.75rem)}}
@media(max-width:640px){:root{--header-height:max(72px,4.5rem)}}
@container butterfly-header (width < 18rem){.header__inner{flex-wrap:wrap}}
@container butterfly-header (18rem <= width < 20rem){.header__inner{gap:4px}.header__actions{gap:6px}}
@media(hover:hover) and (pointer:fine){.document-preview:hover>img{transform:translateY(-3px)}}
@media(max-width:640px){.document-preview{gap:18px;margin-top:25px;max-width:360px}.document-preview>img{flex-basis:76px;width:76px}.document-preview>span{font-size:13px}.document-preview small,.document-preview__action{font-size:10px}}
@media(prefers-reduced-motion:reduce){.gallery-navigation button:not(:disabled),.experience-dialog__close,.document-preview>img{transition:none;transform:none!important}}
