/* FULL-002: bounded heading and grid measures for enlarged fallback fonts.
   Keep whole words,body/root size and loaded normal layouts; no overflow masking.
   FULL-001 and Sample003 remain immutable. */
main{container:page / inline-size}
h1,h2,h3,.cta,.choice-body,.text-link,.wordmark{overflow-wrap:normal;word-break:normal;hyphens:none}
h1,h2{ text-wrap:balance }
.cta,.text-link{max-width:100%;flex-wrap:wrap;column-gap:min(2rem,5vw);row-gap:.5rem}
.cta>span:first-child,.text-link>span:first-child{min-width:0;max-width:100%}
.cta .arrow,.text-link .arrow{margin-left:auto}
.image-shell img{font-size:0;color:transparent}
.image-failed picture{visibility:visible}
.image-failed{background:var(--input)}
.media-figure{min-width:0}
.media-figure figcaption{font-size:.6875rem;line-height:1.5;color:#565d5c;margin-top:.625rem}
.hero-frame-figure figcaption{margin-inline:5%}
.hero-frame-figure{margin-bottom:1rem}
.service-photo-figure{min-width:0}
.service-photo-figure .service-photo{height:23rem;min-height:0}
.story-media{height:clamp(15rem,34vw,32rem);border-radius:6px;overflow:hidden}
.planned-frame{height:clamp(20rem,41vw,38rem);margin-inline:5%;border-radius:6px;overflow:hidden;clip-path:polygon(0 0,100% 0,100% 94%,0 100%)}
.planned-frame-figure figcaption{margin-inline:5%}
.page-opening{padding:3.5rem 5% 3rem}
.page-heading{display:grid;grid-template-columns:minmax(0,1fr);gap:2rem;margin-top:1.25rem}
.page-heading>*{min-width:0}
.page-opening h1{font-size:min(clamp(1.5rem,calc(.75rem + 7vw),6rem),13.6cqi);max-width:15ch}
.page-heading .lead{max-width:42ch}
.page-heading .cta{margin-top:1.5rem}
.chapter{padding:4rem 5%;border-top:1px solid var(--line)}
.chapter-heading{min-width:0;max-width:48rem}
.chapter-heading h2{font-size:min(clamp(1.5rem,calc(.5rem + 4vw),3.5rem),13.6cqi);max-width:20ch;margin:1rem 0 1.25rem}
.chapter-heading>p:not(.eyebrow){font-size:1rem;max-width:51ch;line-height:1.75}
.editorial-item{min-width:0}
.editorial-item h3{font-size:1.25rem;line-height:1.3;letter-spacing:-.02em;max-width:30ch}
.editorial-item p{font-size:.9375rem;line-height:1.8;margin-top:.875rem;max-width:50ch}
.editorial-item .text-link{font-size:.875rem;margin-top:1.25rem}
.chapter-junction{display:grid;gap:2.5rem}
.intent-rows{display:grid;gap:0}
.intent-rows article{padding:1.625rem 0;border-top:1px solid #8b8e88}
.intent-rows article:first-child{border-top-color:var(--ink)}
.intent-rows .text-link{width:100%}
.chapter-split{display:grid;gap:2.5rem;align-items:center}
.split-copy .text-link{margin-top:1.5rem}
.chapter-band{background:var(--ink);color:var(--paper);display:grid;gap:2.5rem;border-top-color:var(--ink)}
.chapter-band .eyebrow{color:#f0b995}
.band-copy{display:grid;gap:2rem;align-content:start}
.band-copy .text-link{justify-self:start}
.chapter-band :focus-visible{outline-color:#f0b995}
.chapter-preparation,.chapter-questions{display:grid;gap:2.5rem}
.preparation-rows .editorial-item{padding:1.75rem 0;border-top:1px solid #8b8e88}
.preparation-rows .editorial-item:first-child{border-top-color:var(--ink)}
.question-rows details{border-top:1px solid #8b8e88}
.question-rows details:last-child{border-bottom:1px solid #8b8e88}
.question-rows summary{display:flex;align-items:baseline;justify-content:space-between;gap:1.5rem;cursor:pointer;padding:1.375rem 0;font-size:1rem;font-weight:650;list-style:none}
.question-rows summary::-webkit-details-marker{display:none}
.question-rows summary span{font-size:1.5rem;flex-shrink:0;line-height:1}
.question-rows details[open] summary span{transform:rotate(45deg)}
.question-rows details>p{font-size:.9375rem;line-height:1.8;max-width:53ch;padding-bottom:1.5rem}
.chapter-close{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:2rem;background:#e6e5db}
.chapter-close .chapter-heading{max-width:45rem}
.chapter-close .chapter-heading h2{max-width:22ch}
.service-rows{margin-top:3rem;display:grid;gap:4rem}
.service-row{display:grid;gap:2rem;align-items:center}
.service-row .editorial-item h3{font-family:Barlow,'Arial Narrow',Arial,sans-serif;text-transform:uppercase;font-size:min(clamp(1.5rem,calc(.75rem + 5vw),3.5rem),13.6cqi);line-height:1;max-width:16ch}
.service-row-1 .story-media{height:clamp(17rem,29vw,27rem);clip-path:polygon(0 0,100% 5%,100% 100%,0 100%)}
.chapter-useSpread>.chapter-heading{margin-bottom:3rem}
.use-spread{display:grid;gap:4rem}
.use-entry{display:grid;gap:2rem;align-items:center;min-width:0}
.use-entry-0 .story-media{height:clamp(18rem,32vw,32rem)}
.use-entry-2{padding-top:2.5rem;border-top:1px solid var(--line)}
.use-entry-2 .story-media{height:17rem}
.fixture-note{font-size:.625rem;color:#565d5c;margin-top:.25rem}
.recovery-opening{min-height:55vh}
.recovery-opening .lead{margin-block:1.5rem}
.recovery-opening .text-link{margin-left:1.5rem}
.contact-photo{height:13.125rem;border-radius:4px;overflow:hidden}
.contact-layout .media-figure figcaption{color:#c5cbc6}
.contact-context figure{height:auto;overflow:visible}
.contact-intro h1{font-size:clamp(1.75rem,calc(1.15rem + 9vw),5.75rem)}
/* Native menu takes space instead of covering the next keyboard target. */
.site-header{container:header / inline-size}
.header-row{gap:1rem}
.wordmark{flex:1 1 max-content;min-width:auto}
.desktop-nav{display:none}
.mobile-menu{display:block;font-size:.875rem}
.mobile-menu>summary{display:flex;align-items:center;gap:.625rem;min-height:2.75rem;cursor:pointer;list-style:none;border-bottom:1px solid currentColor;width:fit-content}
.mobile-menu>summary::-webkit-details-marker{display:none}
.mobile-menu[open]{flex-basis:100%;width:100%;order:3}
.mobile-menu[open]>summary{margin-left:auto}
.mobile-menu nav{position:static;display:flex;flex-direction:column;background:var(--paper);padding:.5rem 0;border:0;box-shadow:none}
.mobile-menu nav a{padding:.75rem 0;border-bottom:1px solid var(--line);min-height:3rem}
.inquiry-long{display:none}.inquiry-short{display:inline}
.home-opening{display:grid;grid-template-columns:1fr;gap:1.5rem;align-items:end}
.home-title h1{font-size:clamp(2.25rem,calc(1rem + 8vw),6rem)}
.service-layout{display:grid;grid-template-columns:1fr;gap:1rem;padding:1.5rem 5% 2.5rem}
.service-content{grid-column:auto;grid-row:auto;padding:0 0 1.5rem}
.service-content h1{font-size:clamp(1.5rem,calc(.75rem + 7vw),5.25rem)}
.service-photo-figure{grid-column:auto;grid-row:auto}
@container header (min-width:50em){.desktop-nav{display:flex}.mobile-menu{display:none}.inquiry-long{display:inline}.inquiry-short{display:none}}
@container page (min-width:62em){
 .home-opening{grid-template-columns:1.7fr 1fr;gap:3rem}
 .page-heading{grid-template-columns:1.3fr 1fr;gap:5rem;align-items:end}
 .chapter-junction{grid-template-columns:.9fr 1.1fr;gap:6rem}
 .chapter-split{grid-template-columns:1.05fr .95fr;gap:6rem}
 .chapter-band,.chapter-preparation,.chapter-questions{grid-template-columns:1fr 1fr;gap:6rem}
 .service-row{grid-template-columns:1.15fr .85fr;gap:6rem}
 .service-row-1{grid-template-columns:.85fr 1.15fr;margin-left:12%}
 .service-row-1 .media-figure{grid-column:2;grid-row:1}
 .service-row-1 .editorial-item{grid-column:1;grid-row:1}
 .use-entry-0{grid-template-columns:1.5fr 1fr;gap:5rem}
 .use-entry-1{grid-template-columns:1fr 1.2fr;gap:6rem;margin-left:10%}
 .use-entry-1 .media-figure{grid-column:2;grid-row:1}
 .use-entry-1 .editorial-item{grid-column:1;grid-row:1}
 .use-entry-2{grid-template-columns:.7fr 1.3fr;gap:5rem;margin-right:15%}
 .service-layout{grid-template-columns:minmax(0,49fr) minmax(0,51fr);gap:0;padding-inline:3%}
 .service-content{grid-column:2;grid-row:1;padding:1.875rem 4% 1.25rem 10%}
 .service-photo-figure{grid-column:1;grid-row:1}
 .service-photo-figure .service-photo{height:46.25rem;min-height:32rem}
}
@media(max-width:600px){
 .chapter{padding:2.5rem min(1.375rem,7vw)}
 .chapter-junction,.chapter-split,.chapter-band,.chapter-preparation,.chapter-questions{gap:1.75rem}
 .chapter-heading h2{margin:.75rem 0 1rem}
 .chapter-heading>p:not(.eyebrow){font-size:.9375rem;line-height:1.75}
 .page-opening{padding:2rem min(1.375rem,7vw) 2.5rem}
 .page-heading{gap:1.5rem}
 .service-layout{padding-inline:min(1.375rem,7vw)}
 .service-photo-figure .service-photo{height:18.5rem}
 .story-media{height:20rem}
 .media-figure figcaption{font-size:.625rem}
 .planned-frame{height:25rem;margin-inline:.75rem}
 .planned-frame-figure figcaption{margin-inline:1.375rem}
 .service-rows{gap:2.75rem;margin-top:2rem}
 .service-row-1 .story-media{height:22rem}
 .use-spread{gap:2.75rem}
 .use-entry-0 .story-media{height:18rem}
 .use-entry-1 .story-media{height:25rem}
 .use-entry-2 .story-media{height:15rem}
 .editorial-item h3{font-size:1.25rem}
 .question-rows summary{font-size:.9375rem;gap:1rem}
 .recovery-opening .text-link{margin:1.5rem 0 0}
}
@media(prefers-reduced-motion:reduce){.cta,.cta:hover,.cta:active{transform:none!important}}

/* Keep whole FAQ words readable when narrow layouts use enlarged text. */
@media(max-width:38em){.question-rows summary{font-size:clamp(.75rem,calc(.5rem + 2vw),1rem);gap:.5em}.question-rows summary span{font-size:1em}}
