/* R17. A reading system that complements the supplied identity artwork. */
@font-face{font-family:'Instrument Sans';src:url('/assets/fonts/instrument-sans-variable.ttf') format('truetype');font-style:normal;font-weight:400 700;font-display:swap}
:root{--ink:#201b1d;--muted:#60555a;--wine:#701c32;--paper:#faf7f4;--hairline:#dfd4d7;--reading:'Instrument Sans',Arial,sans-serif}
body{font-family:var(--reading);font-size:17px;line-height:1.65;color:var(--ink);font-weight:400;letter-spacing:0;font-synthesis:none}
button,input,select,textarea{font-family:var(--reading);letter-spacing:0}
h1,h2,h3{font-family:var(--reading);font-weight:600;letter-spacing:-.035em;text-transform:none;text-wrap:balance}
h1{font-size:clamp(40px,4.6vw,62px);line-height:1.1}
h2{font-size:clamp(30px,3.2vw,42px);line-height:1.2}
h3{font-size:23px;line-height:1.3;letter-spacing:-.02em}
p{line-height:1.65}.lede{font-size:19px;line-height:1.6;color:var(--muted);max-width:64ch}
.eyebrow,.welcome-copy .eyebrow,.quick-paths .path-card .eyebrow,.photo-card .eyebrow,.sector-grid .eyebrow{font:11px/1.7 Michroma,Arial,sans-serif;letter-spacing:.09em;text-transform:uppercase;margin-bottom:20px}
.section,.visual-services{padding-top:76px;padding-bottom:76px}.section-heading{gap:32px;margin-bottom:34px;align-items:end}.section-heading>p{font-size:16px;line-height:1.65;max-width:48ch}
.page-intro{padding-top:64px;padding-bottom:48px}.page-intro h1{font-size:clamp(40px,4.6vw,60px);line-height:1.12;max-width:24ch}.page-intro .lede{max-width:65ch}
.page-intro h1 br{display:initial}
.button,.button.small,.plain-link,.text-link,.event-actions .plain-link,.welcome-copy .button,.estimate-result .button{font-size:16px;font-weight:600;line-height:1.35;letter-spacing:0;min-height:48px;border-radius:4px}
.button{padding:16px 23px;gap:24px}.button.small{font-size:15px;padding:13px 18px;gap:20px}.plain-link{align-items:center;gap:16px;padding:12px 0;border-radius:0}
.button:hover{box-shadow:0 5px 16px #701c3218}.button:focus-visible,a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #8d3b53;outline-offset:4px}
.preview-bar,.preview-bar span{font:12px/1.5 var(--reading);letter-spacing:.03em}.preview-bar{padding:8px 20px}
/* Navigation uses space rather than smaller lettering. */
.v2-header .header-inner{min-height:100px;gap:28px}.v2-header .full-logo{width:300px}.v2-header nav{gap:23px}.v2-header nav>a,.v2-header .nav-trigger{font:500 15px/1.4 var(--reading);min-height:44px;display:inline-flex;align-items:center;padding-block:10px}
.nav-trigger{gap:7px}.menu-toggle,.menu-close{font-size:15px;min-height:44px}.mega-menu .eyebrow{font-size:11px}.mega-grid a{padding:18px}.mega-grid strong{font-size:18px;line-height:1.35;font-weight:600}.mega-grid span{font-size:14px;line-height:1.5}.mega-bottom a,.mega-bottom button{font-size:15px}
/* A clear first impression, with a quieter supporting hierarchy. */
.welcome-hero{min-height:640px}.welcome-copy{padding-top:64px;padding-bottom:54px}.welcome-copy h1{font:600 clamp(44px,4.5vw,65px)/1.08 var(--reading);letter-spacing:-.045em}.welcome-copy .eyebrow{margin-bottom:26px}.welcome-copy .hero-audience{font:17px/1.65 var(--reading);color:var(--muted);max-width:40ch;margin-top:24px}.welcome-copy .offer-line{font-size:15px;line-height:1.5}.hero-estimate-link{font:500 16px/1.5 var(--reading);display:inline-block;padding:10px 0}.welcome-image{min-height:640px}
.quick-paths{gap:20px;margin-top:28px;margin-bottom:68px}.quick-paths>.path-card{padding:30px;min-height:270px;border-radius:5px}.quick-paths .path-card strong{font:600 25px/1.2 var(--reading);letter-spacing:-.02em;margin:6px 0 16px}.quick-paths .path-card p{font:16px/1.6 var(--reading);max-width:32ch}.quick-paths .path-card .path-action{font:600 15px/1.4 var(--reading);min-height:44px;letter-spacing:0}.quick-paths .path-card,.quick-paths .path-card p,.quick-paths .path-card strong{color:#fff}.quick-paths .path-card .eyebrow{color:#fff}
.photo-cards{gap:24px}.photo-card{border-radius:5px;border:1px solid #e6ddda}.photo-card>div{padding:25px 26px 28px}.photo-card h3{font:600 25px/1.3 var(--reading);letter-spacing:-.025em;margin:10px 30px 0 0}.photo-card .eyebrow{font-size:11px;letter-spacing:.06em;margin-bottom:0}.card-arrow{right:26px;bottom:31px}
/* Readable category cards, with one generous action per card. */
.sector-section{padding-top:48px;padding-bottom:72px}.sector-grid{gap:16px;border:0;grid-template-columns:repeat(3,minmax(0,1fr))}.sector-grid article{position:relative;min-width:0;padding:26px;background:#fff;border:1px solid var(--hairline);border-radius:5px;transition:background .18s,border-color .18s,box-shadow .18s}.sector-grid article:hover,.sector-grid article:focus-within{background:#faf5f6;border-color:#ba8796;box-shadow:0 8px 25px #45232b08}.sector-grid .eyebrow{margin-bottom:22px;color:#8d5968}.sector-grid h3{font:600 22px/1.3 var(--reading);letter-spacing:-.02em;margin-bottom:14px}.sector-grid p{display:block;font:16px/1.6 var(--reading);color:var(--muted);margin-bottom:22px;max-width:37ch}.sector-grid a{font:600 15px/1.4 var(--reading);min-height:44px;display:flex;align-items:center;gap:12px;width:fit-content;text-decoration-thickness:1px}.sector-grid a:after{content:'';position:absolute;inset:0;border-radius:5px}.sector-grid a:focus-visible{outline:0}.sector-grid article:focus-within{outline:3px solid #8d3b53;outline-offset:3px}
.service-grid{gap:18px;border:0}.service-card{border:1px solid var(--hairline);border-radius:5px;padding:30px;min-height:270px}.service-card h3{font-size:25px;line-height:1.3}.service-card p{font-size:17px;line-height:1.65}.service-card .text-link{padding-top:15px;display:flex;align-items:center}
/* Partners and metrics stay factual and visually calm. */
.partners-section{padding-top:68px;padding-bottom:68px}.carousel-controls{gap:14px;flex-wrap:wrap}.carousel-controls button{font:500 14px/1.4 var(--reading);min-height:44px;padding:11px 16px;border-radius:4px}.slide-count,.carousel-status{font:14px/1.5 var(--reading);color:var(--muted)}.carousel-dot{min-height:44px;min-width:30px}.partner-logo-card{border-radius:4px}
.impact-section{padding-top:65px;padding-bottom:65px}.impact-section .metrics-context{font:15px/1.6 var(--reading);max-width:42ch;color:#f5e8ed}.impact-grid strong{font:500 clamp(38px,4.4vw,62px)/1.1 var(--reading);letter-spacing:-.05em;font-variant-numeric:tabular-nums}.impact-grid strong span{font-size:.6em;margin-left:2px}.impact-grid h3{font:500 16px/1.5 var(--reading);letter-spacing:0;max-width:none;margin-top:16px}.impact-grid article{padding:34px 25px}
/* Directory and map labels are real reading text. */
.locations-intro{font:16px/1.65 var(--reading)!important;max-width:45ch}.locations-section{padding-top:72px;padding-bottom:70px}.venue-explorer{grid-template-columns:370px minmax(0,1fr);border-radius:6px;overflow:hidden}.venue-search-label{font-size:15px;font-weight:500}.venue-count,.venue-location-note,.venue-popup .venue-location-note{font:14px/1.55 var(--reading);color:#60535a}.venue-select{padding-top:22px;padding-bottom:12px;gap:12px}.venue-select strong{font:600 18px/1.35 var(--reading);margin:5px 0 9px}.venue-number{font:500 14px/1.7 var(--reading)}.venue-city{font:500 12px/1.6 var(--reading);letter-spacing:.07em;color:#70505c}.venue-address{font:15px/1.5 var(--reading)}.venue-directions{font:500 15px/1.5 var(--reading);min-height:44px;display:flex;align-items:center;margin-bottom:12px}.venue-list{max-height:490px}.locations-note,.venue-no-results{font:14px/1.65 var(--reading);color:#60535a}.map-reset{font:600 14px/1.4 var(--reading);border-radius:4px}.venue-popup{font-family:var(--reading)}.venue-popup strong{font:600 18px/1.35 var(--reading)}.venue-popup p,.venue-popup a{font:14px/1.5 var(--reading)}#venue-map .png-map-popup{width:290px;padding:24px 20px 18px}#venue-map .png-map-marker span{font:600 14px/1 var(--reading)}#venue-map .ol-attribution ul{font:12px/1.4 var(--reading)}
/* Content pages, supporting text and policy reading measure. */
.editorial{gap:70px;padding-top:35px;padding-bottom:70px}.editorial h2,.operating-section h2,.contact-routes h2,.closing h2{font-size:clamp(30px,3.1vw,42px);line-height:1.2}.editorial p,.operating-section p,.about-story p,.about-principles p,.contact-routes p{font:17px/1.7 var(--reading);color:var(--muted);max-width:65ch}.operating-section h3,.about-principles h2{font:600 24px/1.3 var(--reading);letter-spacing:-.02em}.about-intro h1{font-size:clamp(40px,4.7vw,62px);line-height:1.1}.about-intro .lede{font-size:19px;line-height:1.65}.about-story h2{font-size:34px;line-height:1.2}.clean-list li{font-size:20px;line-height:1.4;padding:20px 0}.detail-photo{margin-bottom:50px}.closing{padding-top:65px;padding-bottom:70px}.closing .button{bottom:70px}.care-band h2{font:600 clamp(34px,4vw,50px)/1.2 var(--reading);letter-spacing:-.035em}.care-points p{font-size:17px;line-height:1.6}.care-points span{font-size:14px}.contact-routes article{padding:32px;border-radius:5px}.email-feature{font-size:21px;line-height:1.4;overflow-wrap:anywhere}.mailing-address address{font:16px/1.6 var(--reading)}
.legal{max-width:820px}.legal h2{font:600 25px/1.3 var(--reading);letter-spacing:-.02em;margin-top:36px}.legal p,.legal li{font:17px/1.7 var(--reading);color:#443a3f}.legal-preview-note{font:15px/1.6 var(--reading);padding:20px 22px}.preview-note,.preview-note small,.form-disclaimer{font-size:14px;line-height:1.6}.page-intro+.legal{padding-top:0}
/* Local FAQ. */
.faq-entry h2{font-size:34px;line-height:1.2}.faq-entry p{font-size:17px}.faq-browser{max-width:1000px}.faq-search-row label{font-size:16px;font-weight:500}.faq-clear{font-size:15px}.faq-count,.faq-local-note{font-size:14px}.faq-item summary{font:500 20px/1.45 var(--reading);padding-block:25px}.faq-category{font:500 12px/1.5 var(--reading);letter-spacing:.08em}.faq-answer{max-width:72ch;padding-bottom:25px}.faq-answer p{font:17px/1.7 var(--reading)}.faq-empty h2{font-size:26px}.faq-empty p{font-size:17px}
/* The estimator and dynamic questionnaire share the same reading layer. */
.estimate-inputs h2,.calculator-method h2{font-size:30px;line-height:1.25}.calc-grid label,.flow-grid label,.field label{font:500 16px/1.5 var(--reading)}.calc-grid input,.flow-grid input,.flow-grid textarea,input,select,textarea{font:400 17px/1.5 var(--reading)}.estimate-caution,.estimate-exclusions,.estimate-note,.calc-assumptions p,.field-hint,.field small{font:14px/1.65 var(--reading)}.calculator-method p{font:17px/1.7 var(--reading);max-width:72ch}.estimate-result{border-radius:5px;top:120px;padding:32px}.estimate-result h2{font-size:24px;line-height:1.3}.estimate-result #calc-total{font:500 clamp(34px,3.6vw,48px)/1.15 var(--reading);letter-spacing:-.035em;font-variant-numeric:tabular-nums}.estimate-result output small{font-size:18px;line-height:1.5}.estimate-result .button{min-height:50px}.estimate-result p{font-size:15px;line-height:1.6}
#finder-title{font:600 clamp(28px,3vw,38px)/1.2 var(--reading);letter-spacing:-.025em}.finder-intro,.finder-intro p{font-size:16px;line-height:1.6}.finder-choice{padding:22px;border-radius:6px}.finder-choice strong{font:600 19px/1.35 var(--reading)}.finder-choice span{font:15px/1.5 var(--reading)}.finder-close,.finder-back{font:500 16px/1.4 var(--reading)}.finder-footer{font-size:14px;gap:20px}.finder-footer a{font-size:14px}.finder-primary{font-size:16px;min-width:200px;min-height:50px}.flow-step-count,.flow-preview,.finder-selection,.draft-notice,.flow-progress-labels,.flow-steps,.review-edit,.flow-optional summary{font:14px/1.5 var(--reading)}.flow-optional summary{font-size:16px;font-weight:500}.flow-steps li{font:14px/1.4 var(--reading)}.flow-step-count{margin-bottom:12px}.flow-grid{gap:22px}.flow-grid input,.flow-grid textarea{margin-top:7px}.review-list{font:16px/1.6 var(--reading)}.review-list dt{font:14px/1.4 var(--reading);color:#66545c}.review-list dd{font:500 17px/1.5 var(--reading);margin-top:6px}.review-section h3{font-size:21px}.review-section button{font-size:15px;min-height:44px}.offer-mode h2{font:600 32px/1.2 var(--reading)}.offer-mode p,.offer-quote{font:16px/1.6 var(--reading)}.offer-qualification{font:14px/1.65 var(--reading)}.offer-percent{font:500 66px/1.1 var(--reading);letter-spacing:-.04em}.offer-mode .button{font-size:16px;min-height:50px}
.png-control-panel{font-family:var(--reading)}.png-select-trigger{font-size:17px}.png-select-option{font:16px/1.5 var(--reading);padding:13px}.png-calendar-month{font-size:17px}.png-calendar-weekdays{font-size:13px}.png-calendar-day{font:500 15px/1.3 var(--reading);min-height:40px}.png-calendar-text{font:500 15px/1.4 var(--reading);min-height:44px}.png-control-help{font:14px/1.5 var(--reading)}
/* Footer uses the supplied wordmark artwork rather than retyped letters. */
.footer-word img{width:220px;filter:brightness(0) invert(1)}.footer-top p,.footer-top a{font:16px/1.6 var(--reading)}.footer-top .eyebrow{font-size:11px}.footer-links{gap:5px}.footer-links a{min-height:38px;display:flex;align-items:center;gap:10px}.footer-bottom{font:14px/1.6 var(--reading);gap:24px;flex-wrap:wrap}.footer-bottom a{font-size:14px}.site-credit{font-size:13px}
@media(max-width:1100px){.v2-header .header-inner{min-height:86px;gap:20px}.v2-header .full-logo{display:none}.v2-header .mobile-logo{display:block;width:220px}.menu-toggle{display:flex;align-items:center;gap:12px;padding:10px 15px}.v2-header nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;background:#fff;padding:20px 32px;border-bottom:1px solid var(--hairline);max-height:calc(100dvh - 86px);overflow-y:auto}.v2-header nav.open{display:flex}.v2-header nav>a,.v2-header .nav-trigger{font-size:17px;min-height:44px}.v2-header .button.small{font-size:16px;width:100%;justify-content:space-between}.welcome-copy{padding:48px 32px}.welcome-copy h1{font-size:48px}.welcome-image{min-height:600px}.venue-explorer{grid-template-columns:340px minmax(0,1fr)}.section-heading{align-items:start}.photo-card>div{padding:23px 20px}.photo-card h3{font-size:23px}}
@media(max-width:900px){.sector-grid,.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.venue-explorer{grid-template-columns:1fr}.locations-intro{max-width:60ch}.welcome-copy h1{font-size:42px}.welcome-copy .hero-audience{font-size:16px}.quick-paths{grid-template-columns:1fr}.quick-paths>.path-card{min-height:240px}.quick-paths .path-card p{max-width:50ch}.quick-paths .path-card strong{font-size:28px}.estimate-result{position:static}.editorial{gap:40px}.operating-section{gap:35px}.closing .button{position:static}.closing h2{margin-bottom:25px}}
@media(max-width:600px){body{font-size:16px}.wrap{width:calc(100% - 40px)}.v2-header .header-inner{min-height:82px}.v2-header .mobile-logo{width:205px}.brand{padding:16px 0}.menu-toggle{font-size:14px;padding:10px 12px}.v2-header nav{padding:18px 20px;max-height:calc(100dvh - 82px)}.preview-bar,.preview-bar span{font-size:11px;line-height:1.45}.preview-bar span{margin-top:2px}.page-intro{padding-top:42px;padding-bottom:34px}.page-intro h1,.about-intro h1{font-size:38px;line-height:1.13}.page-intro .lede,.about-intro .lede,.lede{font-size:18px;line-height:1.6}.eyebrow,.welcome-copy .eyebrow{font-size:10px;line-height:1.8;letter-spacing:.07em}.section,.visual-services{padding-top:48px;padding-bottom:48px}.section-heading{gap:22px;margin-bottom:28px}.section-heading h2,.locations-section h2,.sector-section h2{font-size:31px;line-height:1.2}.section-heading>p{font-size:16px}.welcome-copy{padding:38px 20px 36px}.welcome-copy h1{font-size:43px;line-height:1.08}.welcome-copy .hero-audience{font-size:17px;max-width:35ch}.welcome-copy .offer-line{font-size:15px}.welcome-copy .button{font-size:16px;min-width:0}.welcome-image{min-height:330px}.hero-estimate-link{font-size:16px}.quick-paths{margin-top:22px;margin-bottom:42px;gap:16px}.quick-paths>.path-card{min-height:255px;padding:26px}.quick-paths .path-card strong{font-size:26px}.quick-paths .path-card p{font-size:16px}.photo-cards{gap:22px}.photo-card>div{padding:25px}.photo-card h3{font-size:25px}.photo-card .eyebrow{font-size:10px}.sector-section{padding-top:34px;padding-bottom:48px}.sector-grid,.service-grid{grid-template-columns:1fr;gap:14px}.sector-grid article{padding:26px}.sector-grid h3{font-size:23px;line-height:1.3}.sector-grid p{font-size:16px}.sector-grid a{font-size:16px}.sector-grid .eyebrow{font-size:11px;margin-bottom:16px}.service-card{padding:26px;min-height:250px}.partners-section{padding-block:48px}.carousel-controls{gap:8px}.carousel-controls button{font-size:14px;padding:10px 12px}.slide-count,.carousel-status{font-size:13px}.impact-section{padding:48px 0}.impact-section h2{font-size:32px}.impact-section .metrics-context{font-size:15px}.impact-grid strong{font-size:39px;letter-spacing:-.04em}.impact-grid article{padding:26px 16px!important}.impact-grid h3{font-size:15px;line-height:1.4;max-width:none;margin-top:12px}.locations-section{padding-block:48px}.locations-intro{font-size:16px!important}.venue-directory{padding:22px 16px}.venue-select strong{font-size:18px}.venue-address{font-size:15px}.venue-location-note,.locations-note{font-size:14px;line-height:1.6}.map-reset{font-size:13px;padding:10px 12px}.venue-directions{font-size:15px}#venue-map .png-map-popup{width:270px;max-width:calc(100vw - 70px)}#venue-map .ol-attribution ul{font-size:11px}.about-story h2,.editorial h2,.operating-section h2,.contact-routes h2,.closing h2,.faq-entry h2{font-size:31px;line-height:1.2}.about-story p,.about-principles p,.editorial p,.operating-section p,.contact-routes p{font-size:17px;line-height:1.65}.about-principles h2{font-size:24px}.clean-list li{font-size:19px}.legal p,.legal li{font-size:16px;line-height:1.7}.legal h2{font-size:24px}.legal-preview-note{font-size:14px}.mailing-address address{font-size:16px}.email-feature{font-size:20px}.care-band h2{font-size:34px;line-height:1.2}.care-points p{font-size:16px}.faq-item summary{font-size:19px;line-height:1.45}.faq-answer p{font-size:16px;line-height:1.7}.faq-search-row label{font-size:16px}.faq-entry .button{font-size:16px}.estimate-inputs,.estimate-result{padding:24px}.estimate-inputs h2{font-size:28px}.estimate-result #calc-total{font-size:40px}.calculator-method h2{font-size:28px}.calc-grid label,.flow-grid label{font-size:16px}.calc-grid input,.flow-grid input,.flow-grid textarea,input,select,textarea{font-size:16px}.estimate-caution,.estimate-exclusions,.estimate-note,.calc-assumptions p{font-size:14px}#finder-title{font-size:29px}.finder-choice{padding:20px}.finder-choice strong{font-size:18px}.finder-choice span{font-size:15px}.finder-footer{gap:12px}.finder-primary{font-size:16px;min-width:0}.finder-back,.finder-close{font-size:16px}.finder-footer>a{font-size:13px}.flow-preview,.finder-selection,.flow-step-count{font-size:14px}.review-list dd{font-size:16px}.offer-mode h2{font-size:29px}.offer-mode p{font-size:16px}.offer-qualification{font-size:14px}.footer-top p,.footer-top a{font-size:16px}.footer-bottom,.footer-bottom a{font-size:14px}.footer-word img{width:205px}.footer-links{gap:8px}}
@media(prefers-reduced-motion:reduce){.sector-grid article,.button,.path-card{transition:none}.sector-grid article:hover{box-shadow:none}}
/* At the earlier compact-navigation breakpoint, keep its submenu in flow too. */
@media(max-width:1100px){.v2-header .mega-menu{position:static;box-shadow:none;max-height:none;padding:12px 0 20px;border:0}.v2-header .mega-grid{grid-template-columns:1fr 1fr}.v2-header .mega-bottom{flex-wrap:wrap;gap:15px}.v2-header .services-disclosure{width:100%}}
@media(max-width:600px){.v2-header .mega-grid{grid-template-columns:1fr}.v2-header .mega-grid a{padding:16px 0}}
/* Separate the primary proposal action from the event-estimate alternative. */
.welcome-copy .hero-estimate-link{display:block;width:fit-content;max-width:100%;margin:18px 0 0;padding:13px 17px;line-height:1.5}.welcome-copy .secondary-finder{font:500 15px/1.5 var(--reading);min-height:44px;margin-top:6px}
/* Keep section hierarchy and short identity accents consistent after component rules. */
.sector-section h2{font:600 clamp(32px,3.2vw,40px)/1.2 var(--reading);letter-spacing:-.035em}
main p.eyebrow{font:11px/1.7 Michroma,Arial,sans-serif;letter-spacing:.09em;text-transform:uppercase}
@media(max-width:600px){.sector-section h2{font-size:31px}main p.eyebrow,.welcome-copy .eyebrow{font-size:11px;letter-spacing:.07em}}
/* The dialog-specific legacy rule must not flatten its heading hierarchy. */
#service-finder .finder-title{font:600 clamp(28px,3vw,36px)/1.2 var(--reading);letter-spacing:-.025em}
#service-finder.offer-mode .finder-title{font-size:32px!important;line-height:1.2}
@media(max-width:600px){#service-finder .finder-title{font-size:29px}#service-finder.offer-mode .finder-title{font-size:29px!important}}
#service-finder .offer-discount{font:500 36px/1.25 var(--reading);letter-spacing:-.025em;margin:22px 0 18px}#service-finder .offer-discount span{display:block;font:500 17px/1.5 var(--reading);letter-spacing:0;margin-top:6px}#service-finder .offer-qualification{font:14px/1.65 var(--reading)}#service-finder .offer-draft,#service-finder .offer-draft-note{font:14px/1.5 var(--reading)}#service-finder .leave-finder{font:500 15px/1.5 var(--reading);min-height:44px}

/* R18: stable touch navigation and form scrolling. */
html{scrollbar-gutter:stable}
nav,#finder-content,.png-control-panel{overflow-anchor:none;scroll-behavior:auto}
.png-control-panel{contain:layout}
@media(max-width:1100px){
 body.navigation-open{overflow:hidden}
 .v2-header nav{overscroll-behavior:contain;max-height:calc(100svh - var(--navigation-top,86px));scrollbar-gutter:stable}
 .v2-header .mega-menu{animation:none;transition:none}
}
@media(max-width:600px){
 html{scroll-behavior:auto}
 .v2-header nav{max-height:calc(100svh - var(--navigation-top,82px));padding-bottom:max(24px,env(safe-area-inset-bottom))}
 .v2-header .header-inner{gap:12px}
 .v2-header .brand{min-width:0;flex:1}
 .v2-header .mobile-logo{width:min(205px,100%)}
 .menu-toggle{flex-shrink:0;min-width:64px;min-height:44px}
 .png-month-arrow,.png-calendar-text{min-width:44px;min-height:44px}
 .png-calendar-day{min-height:44px}
 .png-select-option{font-size:16px;min-height:48px}
 #service-finder,.finder-shell{max-height:calc(100svh - 16px)}
 .finder-footer{padding-bottom:max(16px,env(safe-area-inset-bottom))}
 .flow-stages button{min-height:44px}
}
@media(hover:none){.button:hover,.sector-grid article:hover{box-shadow:none}.path-card:hover{transform:none}}
/* Keep the persistent next action compact on the narrowest supported phones. */
@media(max-width:360px){.finder-footer{gap:10px}.finder-primary{gap:8px;padding:14px 12px;font-size:15px;white-space:nowrap}.finder-back{font-size:15px;padding-inline:2px}}

/* R20: quiet editorial typography, without decorative caption clutter. */
@font-face{font-family:'Newsreader';src:url('/assets/fonts/newsreader-latin-standard-normal.woff2') format('woff2');font-weight:200 800;font-style:normal;font-display:swap}
:root{--editorial:'Newsreader',Georgia,'Times New Roman',serif}
main h1,main h2,main h3,.welcome-copy h1,.section-heading h2,.sector-section h2,.about-story h2,.editorial h2,.operating-section h2,.contact-routes h2,.closing h2,.faq-entry h2,.care-band h2,.about-principles h2,.calculator-method h2,.estimate-inputs h2{font-family:var(--editorial);font-weight:450;letter-spacing:-.025em;font-optical-sizing:auto}
.welcome-copy h1{font-size:clamp(48px,5.3vw,76px);line-height:1.04;letter-spacing:-.035em;margin-bottom:30px}
.welcome-copy h1 em{font-family:inherit;font-style:normal;font-weight:450}
.quick-paths .path-card strong,.photo-card h3,.sector-grid h3,.service-card h2,.service-card h3{font-family:var(--editorial);font-weight:500;letter-spacing:-.015em}
.quick-paths .path-card strong{font-size:36px;line-height:1.1}
.photo-card h3{font-size:32px;line-height:1.15}
.eyebrow,main p.eyebrow,.welcome-copy .eyebrow,.photo-card .eyebrow,.quick-paths .eyebrow{font-family:var(--reading);font-weight:600;letter-spacing:.1em}
.welcome-copy>.button{margin-top:0}
@media(max-width:600px){.welcome-copy h1{font-size:clamp(46px,10.8vw,58px);line-height:1.05;margin-bottom:26px}.quick-paths .path-card strong{font-size:32px}.photo-card h3{font-size:29px}.page-intro h1,.about-intro h1{font-size:42px;line-height:1.08}.sector-grid h3{font-size:26px}}

/* R21: a direct service-to-enquiry path, with one primary action. */
.service-overview{padding-block:56px 48px;display:grid;gap:40px;align-items:center}
.service-overview.has-photo{grid-template-columns:1fr 1fr}
.service-summary h1{font-size:clamp(40px,4.2vw,60px);line-height:1.08;margin:20px 0}
.service-summary .lede{max-width:38ch;margin-bottom:28px}
.service-back{font-size:15px;color:var(--muted);text-underline-offset:5px;display:inline-block;padding-block:8px}
.service-photo{margin:0;min-width:0}.service-photo img{width:100%;height:440px;display:block;object-fit:cover}
.service-estimate{display:block;margin-top:18px;font-size:16px;text-underline-offset:5px}
.service-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px;padding-block:34px 70px;border-top:1px solid var(--hairline)}
.service-facts h2{font-size:29px;line-height:1.2;margin:0 0 15px}.service-facts p{font-size:17px;line-height:1.65;margin:0;color:var(--muted)}
@media(max-width:800px){.service-overview.has-photo{grid-template-columns:1fr}.service-overview{padding-block:32px;gap:28px}.service-photo img{height:340px}.service-facts{grid-template-columns:1fr;gap:26px;padding-block:28px 44px}.service-facts h2{font-size:27px;margin-bottom:10px}.service-summary h1{font-size:43px}.service-summary .button{max-width:100%;font-size:16px}.service-summary .lede{font-size:18px}}
@media(max-width:360px){.service-summary h1{font-size:38px}.service-summary .button{padding-inline:16px;gap:12px;font-size:15px}.service-photo img{height:275px}}
