/* 7 October: purposeful exploration, current-location cues and clearer choices.
   Patient accounts and prices remain still. No general scroll or hover lifts. */
@media(max-width:1000px){.site-head nav,.site-head .header-cta{display:none}.site-head .menu-button{display:flex}.site-head{height:68px}}
.stage-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:16px 0 0}
.stage-buttons button{font:500 15px/1.25 'Avenir Next',Avenir,Nunito Sans,sans-serif;min-height:64px;border:0;border-bottom:3px solid transparent;background:#e7eef2;color:#203846;padding:12px 8px;cursor:pointer}
.stage-buttons button[aria-pressed=true]{background:#2f4453;color:#fff;border-bottom-color:#ed873c}
.stage-buttons button:focus-visible{outline:3px solid #203846;outline-offset:3px}
.week-preview{min-width:0;align-self:stretch;padding-top:4px}
.week-preview .stage-panels{background:#f1f5f6;border:1px solid #d6e1e7;border-top:0;min-height:420px}
.week-preview .stage-panel{display:grid;grid-template-rows:230px 1fr;min-height:420px}
.week-preview .stage-panel[hidden]{display:none}
.week-preview .stage-panel>img{width:100%;height:230px;object-fit:cover;margin:0}
.week-preview .stage-panel>img[src*="design-wire"]{object-fit:cover;background:#101c22}
.stage-copy{padding:24px 28px 18px}
.stage-copy h2{font-size:27px;line-height:1.2;letter-spacing:-.025em;margin:0}
.stage-copy p{font-size:17px;line-height:1.55;margin:12px 0 0;color:#506875}
.stage-copy .stage-note{font-size:14px;line-height:1.5;margin-top:12px}
.stage-copy>a{display:flex;justify-content:space-between;align-items:center;min-height:48px;margin-top:10px;font-size:16px;text-decoration:none;color:#203846;font-weight:600}
.conversation-visual,.first-teeth-visual{background:#2f4453;color:#fff;display:flex;flex-direction:column;justify-content:center;padding:25px 42px;position:relative;overflow:hidden}
.conversation-visual span{font-size:28px;line-height:1.5;position:relative;z-index:1;letter-spacing:-.025em}
.conversation-visual span+span{align-self:flex-end;color:#c7dce6}
.conversation-visual svg{width:76%;height:76px;fill:none;stroke:#8caec2;stroke-width:1;align-self:center;margin-top:14px}
.first-teeth-visual{display:grid;grid-template-columns:1fr .6fr 1.3fr;gap:18px;align-items:center;text-align:center;padding:30px}
.first-teeth-visual svg{fill:none;stroke:#bfd3df;stroke-width:2;width:100%;height:55px}
.first-teeth-visual span{font-size:23px;line-height:1.35}
.first-teeth-visual strong{display:block;font-size:16px;color:#bfd3df;font-weight:500;margin-top:12px}
.opening-field .intro{gap:5vw;padding-block:52px 64px}
.opening-field .intro-copy h1{font-size:clamp(42px,4.4vw,62px)}
#reviews{scroll-margin-top:100px;border-top:1px solid #cad5da;padding-top:12px}
#reviews .reviews-opening h2{font-size:clamp(36px,4vw,52px)}
#reviews :is(a,button,summary),#reviews :is(a,button,summary) *{animation:none!important;transition:none!important}
#reviews :focus-visible{outline:2px solid #203846;outline-offset:4px}
.episode-discovery{display:grid;grid-template-columns:1fr .8fr auto;gap:20px;align-items:end;padding:24px;background:#edf2f5;margin-top:18px;clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px)}
.episode-discovery label{display:grid;gap:8px;font-size:15px;font-weight:600;color:#203846}
.episode-discovery select{font:400 16px/1.3 'Avenir Next',Avenir,Nunito Sans,sans-serif;color:#203846;min-width:0;width:100%;min-height:52px;background:#fff;border:1px solid #8da5b2;border-radius:0;padding:12px}
.episode-discovery button{font:500 16px 'Avenir Next',Avenir,Nunito Sans,sans-serif;min-height:52px;border:0;border-bottom:1px solid #7894a5;background:none;color:#203846;cursor:pointer}
.eps{gap:16px 24px}
.eps .ep{padding:26px;background:#f7f9fa;border-top:2px solid #bacdd8;min-width:0}
.eps .ep .n{font-size:14px;font-weight:500;margin-bottom:6px}
.eps .ep .t{font-size:22px;font-weight:600;line-height:1.35}
.eps .ep .d{font-size:16px;margin-top:14px}
.eps .ep .rel{font-size:15px;margin-top:7px}
.episodes-empty{grid-column:1/-1;padding:32px 0;font-size:18px}
.picker{gap:18px}
.picker .pick{display:flex;flex-direction:column;gap:14px;padding:28px 24px;border:1px solid #b9cbd5;position:relative;min-height:180px}
.picker .pick strong{font-size:25px;line-height:1.25}
.picker .office-address{font-size:16px;line-height:1.55;font-weight:400}
.picker .office-open{font-size:16px;font-weight:600;margin-top:auto;padding-top:12px}
.picker .pick[aria-pressed=true]{border-width:1px;box-shadow:inset 0 4px #4c7288;background:#e6eff4}
.doctor-first-cards{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:30px 0}
.doctor-first-cards .where,.doctor-first-cards .src{padding:24px;background:#edf2f5;margin:0;min-width:0}
.doctor-first-cards h2{font-size:22px;line-height:1.3;margin-bottom:18px;letter-spacing:0;text-transform:none}
.doctor-first-cards .where a{font-size:16px;line-height:1.45;min-height:48px;padding-block:10px;border-top:1px solid #c6d4dd}
.doctor-first-cards .src li{font-size:16px;padding-block:10px}
.doctor-first-cards .src a{font-size:18px;line-height:1.4}
.doctor-first-cards .src span{display:block;font-size:14px;margin-top:8px}
.doctor-first-cards .doctor-request{color:#203846}
@media(max-width:700px){
 .opening-field .intro{padding-block:30px 42px;gap:28px}.week-preview{order:0}.intro-copy{order:0}
 .intro-copy .lead{margin-top:18px!important}.intro-copy>.text-link{margin-top:8px}
 .stage-buttons{gap:4px}.stage-buttons button{font-size:14px;padding:10px 4px;min-height:60px}
 .week-preview .stage-panel{grid-template-rows:190px 1fr}.week-preview .stage-panel>img{height:190px}.stage-copy{padding:23px 20px 16px}
 .stage-copy h2{font-size:25px}.stage-copy p{font-size:16px}.week-preview .stage-panels,.week-preview .stage-panel{min-height:390px}
 .first-teeth-visual{gap:8px;padding:24px 14px}.first-teeth-visual span{font-size:19px}.first-teeth-visual strong{font-size:14px}
 .episode-discovery{grid-template-columns:1fr;padding:22px;gap:18px}.episode-discovery button{justify-self:start}
 .eps .ep{padding:24px}.eps .ep .t{font-size:21px}.picker .pick{min-height:0;padding:25px 22px;gap:8px}
 .picker .office-open{padding-top:8px}.doctor-first-cards{grid-template-columns:1fr;gap:18px}
 #reviews .reviews-opening h2{font-size:36px}
}
/* Interaction entry is quicker than withdrawal; the existing origins stay. */
@media(prefers-reduced-motion:no-preference){
 :is(.button,.btn):is(:active,:focus-visible)::before,
 .mobile-dock :is(.call,.button):is(:active,:focus-visible)::before{transition-duration:var(--dio-cta-wipe-duration,.45s)}
}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 :is(.button,.btn):hover::before,
 .mobile-dock :is(.call,.button):hover::before{transition-duration:var(--dio-cta-wipe-duration,.45s)}
}
/* Static aluminium replaces automatic arrival sweeps. */
.reduce-motion :is(.button,.btn)::before,
.reduce-motion .mobile-dock :is(.call,.button)::before{transition:none!important}


.stage-qualifier{font-size:14px;line-height:1.6;color:#506875;margin-top:16px!important}
/* The process opening also gets a gradual field edge on phone. */
@media(max-width:700px){.opening-field .hero-pattern{height:570px;max-height:100%;background:#e8eff3;clip-path:none;-webkit-mask-image:linear-gradient(#000,rgba(0,0,0,.8) 35%,rgba(0,0,0,.25) 70%,transparent);mask-image:linear-gradient(#000,rgba(0,0,0,.8) 35%,rgba(0,0,0,.25) 70%,transparent)}}
.page-section-jump{position:fixed;inset:68px 0 auto;z-index:42;background:#edf2f5;border-bottom:1px solid #c6d4dd;padding:8px max(24px,calc((100vw - 1180px)/2));font:16px 'Avenir Next',Avenir,Nunito Sans,sans-serif;color:#203846}
.page-section-jump[hidden]{display:none}.page-section-jump label{display:flex;align-items:center;gap:20px}.page-section-jump select{flex:1;min-width:0;min-height:48px;max-width:760px;padding:8px 12px;border:1px solid #8da5b2;border-radius:0;background:#fff;color:#203846;font:inherit}
.has-section-jump{scroll-margin-top:65px!important}.page-section-jump :focus-visible{outline:2px solid #203846;outline-offset:2px}
.faq-discovery{padding:26px;background:#edf2f5;margin:34px 0;color:#203846}
.faq-discovery label{display:grid;gap:12px;font-size:18px;font-weight:600}.faq-discovery input{font:400 16px/1.4 'Avenir Next',Avenir,Nunito Sans,sans-serif;min-height:52px;width:100%;padding:12px;border:1px solid #8da5b2;border-radius:0;color:#203846}
.faq-discovery>div{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:10px}.faq-discovery button{font:500 16px 'Avenir Next',Avenir,Nunito Sans,sans-serif;color:#203846;background:none;min-height:48px;border:0;border-bottom:1px solid #8da5b2;cursor:pointer}.faq-discovery p{font-size:15px;margin:18px 0 0}
.faq-group[hidden],.faq-group .qa[hidden]{display:none}
@media(max-width:700px){.page-section-jump{padding:6px 20px}.page-section-jump label{gap:14px}.page-section-jump select{max-width:calc(100% - 75px)}.faq-discovery{padding:22px}}
.opening-field .intro .lead{color:#304a5a}
@media(max-width:700px){.stage-buttons{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.stage-buttons button{font-size:16px;padding:10px 8px;min-height:56px}}
.office .doc a{display:inline-flex;align-items:center;min-height:48px;padding:8px 0}

/* 2026-11-11 audit: the "Jump to" menu was the browser's own grey dropdown, the one default-looking control on these pages. Same
   function, drawn in the site's ink with its own chevron and the cut corner used on other controls. */
.page-section-jump select,.jumpbar select{-webkit-appearance:none;appearance:none;padding-right:38px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23203846' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 14px center;border:1.5px solid #4C7288;font-weight:500;clip-path:polygon(0 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%)}
.page-section-jump label{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#4C7288}
.page-section-jump select{font-size:16px;letter-spacing:0;text-transform:none}
/* 2026-11-11 audit (regression review): a long section title was cut mid-letter in the Jump to control; it now ends on an ellipsis, and phones give the title more room */
.page-section-jump select,.jumpbar select{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}
@media(max-width:700px){.page-section-jump label{gap:10px}.page-section-jump select{max-width:calc(100% - 68px);padding-left:10px;padding-right:30px;background-position:right 10px center}}
