/* Shared finishing layer for concept A: the same reading scale and controls on every route. */
:root{--text:1rem;--label:.875rem;--meta:.75rem;--hero-size:clamp(2.75rem,4.7vw,4.25rem)}
body{font-size:var(--text)}
body .eyebrow,body .small-label,body .review-bar,body .hero-signature,body .hero-bottom,
body .hero-photo figcaption,body .team-hero-photo figcaption,body .business-hero-photo figcaption,
body .case-hero-photo figcaption,body .case-facts dt,body .frame-index,
body .footer-bottom,body .photo-dialog>p,body .program-card-heading .small-label,
body .scope-number,body .step-number,body .direction-index,body .team-fit-list article>span{font-size:var(--meta)}
.review-bar>.container{height:auto;min-height:30px;gap:16px;padding-block:5px}
body .desktop-nav,body .header-contact,body .menu-toggle,body .text-link,
body .hero-actions .text-link,body .hero-actions .button,body .scope-foot .text-link,
body .breadcrumbs,body .program-count,body .occasions li{font-size:var(--label)}
.header-inner{gap:24px}
.desktop-nav{gap:22px}
.desktop-nav a,.header-contact{white-space:nowrap}
.header-contact{margin-left:0}
body .button{font-size:var(--label);min-height:56px;line-height:1.5}
body .section-intro,body .approach-bottom p,body .direction-row>p,body .direction-detail>p,
body .scope-grid p,body .process-list p,body .estimate-intro,body .estimate-list article p,
body .faq>p,body .case-account p,body .team-organization-grid p,body .team-fit-list p,
body .team-format-grid p,body .project-caption>p:not(.small-label),body .program-card-summary{font-size:var(--text);line-height:1.7}
body .hero-description,body .team-hero-description,body .business-lead{font-size:1.0625rem;line-height:1.7}
body .hero h1,body .team-hero h1,body .business-hero h1{font-size:var(--hero-size);line-height:1.08;letter-spacing:-.045em}
.hero-layout,.team-hero-layout,.business-hero-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:48px;padding-top:40px}
.hero-copy,.team-hero-copy,.business-hero-copy{min-width:0}
.hero-photo>img,.team-hero-photo img,.business-hero-photo img{height:540px}
body .hero-actions{gap:10px 24px;align-items:flex-start}
.hero-actions .text-link{color:#f1f3f5}
body .hero-photo figcaption,body .team-hero-photo figcaption,body .business-hero-photo figcaption{line-height:1.6}
.hero-photo figcaption span,.team-hero-photo figcaption span,.business-hero-photo figcaption span{min-width:0}
.hero-photo figcaption span:last-child{white-space:nowrap}
.program-hero{background:var(--paper);padding-bottom:48px}
body .program-hero h1{font-size:clamp(2.625rem,4.3vw,3.875rem);line-height:1.1}
.program-hero-photo{justify-self:end}
.program-hero-photo .photo-open{background:transparent}
.program-hero-photo img{max-height:520px;object-fit:contain}
.program-hero-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.08fr)}
.program-catalog-intro{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:60px}
.program-catalog-intro h1{font-size:clamp(2.625rem,4.6vw,4rem)}
.case-title-grid,.case-story-intro{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:64px}
body .case-facts dd,body .case-frame figcaption,body .program-hero-photo figcaption,body .program-gallery-photo figcaption{font-size:var(--label)}
.questions-section{align-items:start}
.questions-section>div>.eyebrow{margin-bottom:22px}
body .faq summary{font-size:1.125rem;line-height:1.5;gap:24px}
.faq summary .plus{margin-left:auto}
body .faq>p{padding-bottom:26px}
.related-directions{display:grid;grid-template-columns:220px minmax(0,1fr);align-items:center;gap:40px;padding-block:28px;border-top:1px solid var(--line)}
.related-directions>div{display:flex;gap:12px 36px;flex-wrap:wrap}
.related-directions .text-link{gap:18px}
body .brief-form .field,body .form-description,body .extra-fields>summary{font-size:var(--label)}
body .form-note,body .field-help,body .field-error,body .optional,body .small-note,body .archive-note{font-size:var(--meta);line-height:1.65}

.footer-legal{display:flex;align-items:center;gap:24px}.footer-legal a{color:inherit;text-decoration-color:#b9bdc0;text-underline-offset:3px}.footer-legal a:hover,.footer-legal a:focus-visible{color:var(--ink);text-decoration-color:currentColor}
.legal-document{max-width:980px;padding-block:84px 110px}.legal-document>h1{font-size:clamp(42px,6vw,78px);line-height:1.03;letter-spacing:-.055em;max-width:900px;margin-bottom:38px}.legal-document h2{font-size:34px;line-height:1.2;margin-top:64px;padding-top:26px;border-top:1px solid var(--line)}.legal-document h3{font-size:23px;line-height:1.3;margin-top:38px}.legal-document p,.legal-document li{font-size:16px;line-height:1.75}.legal-document p{margin-top:18px}.legal-document ul{padding-left:24px;margin:18px 0 0}.legal-document li+li{margin-top:9px}.legal-document code{font:inherit;background:#eef0f1;border-radius:2px;padding:1px 5px}.legal-warning{background:#fff2dc;border-left:4px solid var(--red-dark);padding:22px 26px;margin:0 0 42px}.legal-warning p{margin:0;font-weight:650}.page-legal .site-header{position:relative;background:var(--ink)}

@media(max-width:760px){.footer-legal{display:block}.footer-legal span{margin-top:9px}.footer-legal a{display:block;line-height:1.5}.legal-document{padding-block:50px 72px}.legal-document>h1{font-size:38px;line-height:1.1;margin-bottom:28px}.legal-document h2{font-size:27px;margin-top:48px;padding-top:22px}.legal-document h3{font-size:21px;margin-top:32px}.legal-document p,.legal-document li{font-size:15px;line-height:1.7}.legal-warning{padding:18px 17px;margin-bottom:30px}}
.brief-form .form-note{margin:0 0 28px;padding:14px 16px;border-left:3px solid var(--red);background:var(--paper);color:var(--muted)}
.brief-form h3{line-height:1.25}
.brief-form .form-description{margin-bottom:18px}
.brief-copy>.eyebrow{overflow-wrap:anywhere}
body .form-status{font-size:var(--label);line-height:1.65}
.field,.form-row>*{min-width:0}
.field input,.field select,.field textarea{width:100%;min-width:0;font-size:1rem}
body .dialog-close{font-size:var(--label)}
.case-story-intro:only-child{margin-bottom:0}
@media(max-width:1239px){
  .desktop-nav{display:none}.menu-toggle{display:flex}.header-contact{margin-left:auto}
  .hero-layout,.team-hero-layout,.business-hero-layout{gap:32px}
  :root{--hero-size:clamp(2.5rem,4.65vw,3.5rem)}
  .hero-photo>img,.team-hero-photo img,.business-hero-photo img{height:560px}
  .hero-actions{flex-direction:column}
  .case-title-grid,.case-story-intro{gap:40px}
  .related-directions{grid-template-columns:180px minmax(0,1fr);gap:30px}
}
@media(max-width:760px){
  :root{--hero-size:clamp(2.125rem,9.2vw,3.75rem)}
  .header-contact{display:none}.header-inner{gap:12px}.menu-toggle{gap:7px}
  .review-bar>.container{min-height:32px;font-size:.75rem}
  .review-bar span:last-child{text-align:right}
  .hero-layout,.team-hero-layout,.business-hero-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:30px;padding-top:26px}
  .hero-copy,.team-hero-copy,.business-hero-copy{padding:0}
  body .hero-description,body .team-hero-description,body .business-lead{font-size:1rem;line-height:1.65}
  body .hero-actions{align-items:stretch;margin-top:24px;gap:8px}
  .hero-actions .text-link{justify-content:flex-start}
  .hero-photo>img,.team-hero-photo img,.business-hero-photo img{height:auto;aspect-ratio:3/2}
  .hero-bottom{gap:12px;flex-wrap:wrap}
  .hero-bottom a{min-height:44px}
  body .breadcrumbs{font-size:.875rem;line-height:1.6;gap:6px 10px}
  .business-hero .eyebrow,.team-hero-eyebrow{margin-bottom:20px}
  .program-hero{padding-bottom:32px}
  body .program-hero h1{font-size:clamp(2.125rem,9.2vw,3.25rem)}
  .program-hero-layout,.program-catalog-intro,.case-title-grid,.case-story-intro{grid-template-columns:minmax(0,1fr);gap:26px}
  .program-hero-photo{justify-self:start}
  .program-hero-photo img{max-height:none}
  .program-catalog-intro h1{font-size:clamp(2rem,8.4vw,3.25rem);line-height:1.12}
  .program-catalog-intro h1 br{display:none}
  .case-title-grid h1{font-size:2.375rem;overflow-wrap:break-word}
  body .direction-row h3{font-size:1.5rem}
  .direction-row{grid-template-columns:24px minmax(0,1fr) 22px}
  .direction-row>p{max-width:none}
  .scope-foot>p{max-width:none}
  .related-directions{display:block;padding-block:24px}
  .related-directions>div{margin-top:12px;display:grid;gap:4px}
  .related-directions .text-link{justify-content:space-between}
  .brief-copy h2{font-size:3.25rem}
  .brief-form{padding:24px 20px}
  .extra-fields>summary{flex-wrap:wrap}
  .photo-dialog .dialog-top h2{font-size:1.125rem;max-width:none}
  .photo-dialog .dialog-close{font-size:0;min-width:44px}
  .dialog-close span{font-size:2rem}
}

/* Compact shared navigation, 19 September 2026. */
.site-header{position:relative;z-index:20}
.header-inner{display:flex;flex-wrap:nowrap;gap:20px;min-height:92px;padding-block:14px}
.header-inner>.brand,.header-inner>.brand img{width:208px;height:auto;flex:none}
.desktop-nav{display:flex;align-items:center;gap:22px;margin-left:auto}
.desktop-nav>a,.directions-toggle{min-height:44px;display:flex;align-items:center;font-size:14px;white-space:nowrap}
.directions-toggle{background:none;color:inherit;border:0;padding:0;gap:8px;cursor:pointer;font-family:inherit}
.nav-directions{position:relative}
.nav-chevron{font-size:18px;transition:transform .15s}
.directions-toggle[aria-expanded="true"] .nav-chevron{transform:rotate(180deg)}
.directions-toggle.is-active,.desktop-nav [aria-current],.mobile-nav [aria-current]{color:#ff9295}
.directions-toggle.is-active::before{content:"";width:5px;height:5px;background:currentColor;border-radius:50%}
.directions-menu{position:absolute;left:-20px;top:calc(100% + 10px);width:330px;background:#23272b;color:var(--white);padding:10px;border:1px solid #52585d;box-shadow:0 12px 26px #0003}
.directions-menu a{display:block;white-space:normal;padding:14px 12px;font-size:14px;line-height:1.45;border:0}
.directions-menu a:hover{background:#363c42}
.header-phone{font-size:13px;margin:0;flex:none;min-height:44px;display:flex;align-items:center;border:0}
.header-contact{display:flex;align-items:center;justify-content:center;gap:12px;margin:0;padding:11px 15px;min-height:44px;background:var(--red);border:0;font-size:14px}
.header-contact .arrow{width:17px;height:17px}
.menu-toggle{display:none}
.site-header :focus-visible{outline:2px solid #ff9295;outline-offset:5px}
.directions-menu[hidden],.mobile-nav[hidden]{display:none}
.mobile-nav-label{font-size:12px;color:#bac1c7;padding:18px 0 6px}
@media(min-width:1000px) and (max-width:1279px){
 .header-inner{gap:16px}.header-inner>.brand,.header-inner>.brand img{width:174px}
 .desktop-nav{gap:16px}.desktop-nav>a,.directions-toggle{font-size:13px}
 .header-phone{font-size:12px}.header-contact{padding-inline:12px}
}
@media(min-width:1000px){.mobile-nav{display:none}}
@media(max-width:999px){
 .desktop-nav{display:none}.menu-toggle{display:flex;margin-left:0;grid-column:2;grid-row:1;justify-self:end}
 .header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 18px;padding-block:13px}
 .header-inner>.brand,.header-inner>.brand img{width:200px}
 .header-phone{grid-column:1;grid-row:2;justify-self:start;font-size:14px;padding:5px 0;margin:0}
 .header-contact{grid-column:2;grid-row:2;display:flex;padding:10px 13px;gap:9px;font-size:13px}
 .mobile-nav{padding-bottom:22px;max-height:calc(100dvh - 186px);overflow:auto;overscroll-behavior:contain}
 .mobile-nav a{display:flex;align-items:center;min-height:48px;padding:12px 0;font-size:16px;line-height:1.45;border-bottom:1px solid #42484c}
 .mobile-directions{padding-bottom:10px}.mobile-sections{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
}
@media(max-width:359px){.header-inner>.brand,.header-inner>.brand img{width:172px}.header-phone{font-size:12px}.header-contact{font-size:12px}}
/* Content-specific reading rhythm. */
.program-discussion-section{padding-block:42px;background:var(--paper)}
.program-discussion-section .container{display:grid;grid-template-columns:1fr 1.08fr;gap:48px}
.program-discussion-section h2{font-size:30px;line-height:1.25}
.program-discussion-section ul{padding-left:20px;margin:0;line-height:1.8}
.program-discussion-section li+li{margin-top:12px}
.case-account{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:760px){.program-discussion-section .container,.case-account{grid-template-columns:1fr;gap:24px}.program-discussion-section h2{font-size:26px}}

@media(min-width:761px){.process-list{grid-template-columns:repeat(4,minmax(0,1fr))}}
