/* Final responsive and accessibility pass. Load after page-specific styles. */
html{scroll-padding-top:100px}main [id]{scroll-margin-top:110px}main section>*,.service-hero>*,.contact>*,.contact-page>*,.delivery-grid>*,.price-request-layout>*{min-width:0}h1,h2,h3{text-wrap:balance;overflow-wrap:break-word}p,li{overflow-wrap:break-word}.note{font-size:13px;line-height:1.75}label{font-size:14px}input,select,textarea{font-size:16px;min-height:46px}input[type=checkbox],input[type=radio]{min-height:0}button,.button,summary{touch-action:manipulation}button:disabled{cursor:wait}button,.filters button,.object-controls button,.viewer-stage button,.viewer-top button,.slide-controls button{min-width:44px;min-height:44px}.object-thumbs button{min-height:0}.contact-tools button{min-height:44px}.contact a.big,.contact-direct{overflow-wrap:anywhere}.service-nav a,.service-links a,.footer-links a{display:inline-flex;align-items:center;min-height:44px}.object-back{font-size:14px;text-underline-offset:5px;padding:12px 0}.nav-services-panel a[aria-current=page]{font-weight:800;color:var(--accent)}header.site-header .brand-logo{height:auto}.nav-services-panel{max-height:calc(100dvh - 110px);overflow-y:auto;overscroll-behavior:contain}
/* Images occupy a real grid row; long captions cannot change their height. */
.hero .hero-image.visual-stage{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;isolation:isolate}.hero .visual-stage:before{content:none;display:none}.hero .visual-stage .hero-slide{grid-column:1/-1;grid-row:1;position:relative;inset:auto;width:100%;height:auto;aspect-ratio:16/9;max-height:none;object-fit:contain;align-self:stretch;pointer-events:none;z-index:0}.hero .visual-stage .hero-slide:not(.active){visibility:hidden}.hero .visual-stage .photo-label{grid-column:1;grid-row:2;padding:14px 80px 14px 20px;margin:0;min-width:0;font-size:12px;line-height:1.6}.hero .visual-stage .slide-controls{grid-column:2;grid-row:2;margin:10px 14px;gap:6px}.hero .visual-stage .slide-position{grid-column:1;grid-row:2;justify-self:end;align-self:center;margin-right:14px;font-size:11px;letter-spacing:.04em;z-index:1;color:#566253}.strip a{padding:9px 0;text-decoration:none;font-size:13px;min-height:44px;display:inline-flex;align-items:center}.strip a:hover{text-decoration:underline;text-underline-offset:5px}.hero .hero-slide{transition:opacity .6s ease}.hero .hero-message .intro{max-width:580px}.hero .visual-copy h1{font-size:clamp(38px,4vw,64px)}
.delivery-options{border-top:1px solid var(--line)}.delivery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.delivery-grid article{display:flex;flex-direction:column;align-items:flex-start;padding:28px;background:var(--sand);border-top:2px solid var(--accent)}.delivery-grid h3{font-size:29px;margin-top:18px;line-height:1.2}.delivery-grid p{font-size:14px;line-height:1.85}.delivery-grid .delivery-lead{font-size:16px;color:var(--ink);font-weight:600}.delivery-grid a{margin-top:auto;padding-top:18px;min-height:44px;font-size:14px;text-underline-offset:5px}.delivery-options>.note{margin:24px 0 0;max-width:900px}.service-detail-grid p,.project-card p,.visual-offers-grid p{font-size:15px}.gallery-main button,.photo-expand{min-height:44px}.service-hero .intro{max-width:650px}.contact-person>p{line-height:1.8}.object-main figcaption{gap:12px}.viewer-count{font-size:14px}
@media(max-width:1100px){header.site-header .links.open{max-height:calc(100dvh - 90px);overflow-y:auto;overscroll-behavior:contain;padding-bottom:18px}.nav-services-panel{max-height:none;overflow:visible}header.site-header nav{gap:10px}header.site-header .links>a,header.site-header summary{min-height:46px;display:flex;align-items:center}header.site-header summary{justify-content:space-between}header.site-header .nav-services-panel a{padding:11px 0;min-height:44px}.delivery-grid{gap:18px}.delivery-grid article{padding:24px}.delivery-grid h3{font-size:27px}}
@media(max-width:850px){.delivery-grid{grid-template-columns:1fr}.delivery-grid article{padding:26px}.delivery-grid p{max-width:65ch}.delivery-grid h3{margin-bottom:8px}.hero .visual-copy h1{font-size:clamp(37px,6vw,53px)}.section-head{gap:25px}.project-story .story-lead{line-height:1.6}.hero .visual-stage .hero-slide{aspect-ratio:4/3}.hero .visual-stage .photo-label{font-size:12px}.construction-choices{grid-template-columns:1fr}.construction-choices>a{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:26px;align-content:start}.construction-choices img{grid-column:1;grid-row:1/5;margin:0}.construction-choices .num,.construction-choices h3,.construction-choices p,.construction-choices .choice-link{grid-column:2}.construction-choices h3{margin-top:8px}.construction-choices p{margin-top:0}}
@media(max-width:570px){html{scroll-padding-top:85px}main [id]{scroll-margin-top:90px}header.site-header nav{padding:10px 16px}header.site-header .brand-logo{width:155px;max-width:49vw}header.site-header .menu{min-height:44px;font-size:13px;padding:10px 13px}.hero .visual-copy{padding-top:28px}.hero .visual-copy h1{font-size:clamp(33px,8.6vw,42px);letter-spacing:-.045em}.hero-message .intro{font-size:16px;line-height:1.8}.hero-message .actions{display:grid;grid-template-columns:1fr;gap:10px}.hero-message .button{font-size:14px;min-height:48px;width:100%}.hero .visual-stage .photo-label{padding:14px 60px 4px 13px;grid-column:1/-1;grid-row:2}.hero .visual-stage .slide-position{grid-column:1/-1;grid-row:2;margin-right:13px;align-self:start;padding-top:16px}.hero .visual-stage .slide-controls{grid-column:1/-1;grid-row:3;justify-content:flex-end;margin:7px 12px 12px;gap:8px}.hero .visual-stage .slide-controls button{width:44px;height:44px}.strip{justify-content:flex-start;gap:0 24px;padding-top:10px;padding-bottom:10px}.strip a{font-size:12px}.service-hero h1,.construction-hero h1,.contact-intro h1,.build-request-intro h1{font-size:clamp(33px,8.5vw,40px)}main section{padding-top:48px;padding-bottom:48px}.intro{font-size:16px}.construction-choices>a{display:flex;gap:0}.construction-choices img{margin-bottom:18px}.construction-choices h3{font-size:29px}.construction-choices .choice-link{padding-top:8px}.construction-choices p{font-size:15px}.section-head h2,h2{font-size:clamp(30px,8vw,39px)}.contact-person{padding:24px}.contact-direct{font-size:clamp(21px,5.8vw,27px)}.contact-paths h3{font-size:27px}.contact-paths .num{font-size:11px;line-height:1.6}.service-detail-grid h3{font-size:26px}.service-faq summary{font-size:16px;padding-right:4px}.service-faq p{font-size:15px}.service-brief li{font-size:15px}.breadcrumbs{font-size:12px}.eyebrow{font-size:10px;line-height:1.8;letter-spacing:.12em}.frame-package h3,.frame-promo h3{font-size:27px}.project-card h3{font-size:27px;line-height:1.25}.project-meta{line-height:1.7}.object-main>img{height:auto;min-height:0;max-height:58svh;aspect-ratio:4/3;object-fit:contain}.photo-expand{top:9px;right:9px}.object-main figcaption{padding:12px}.viewer-stage{gap:4px}.viewer-stage button{min-width:44px;padding:6px}.viewer-stage img{max-width:calc(100% - 96px)}.price-request-intro h1{font-size:clamp(33px,8.5vw,40px)}.build-send .button{min-height:48px}.footer-links a{font-size:13px}.note{font-size:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero .hero-slide{transition:none}}
.optional-brief{border-top:1px solid var(--line);margin:10px 0 24px;padding:15px 0}.optional-brief summary{cursor:pointer;font-size:14px;line-height:1.6;padding:9px 0;min-height:44px}.optional-brief summary span{font-weight:400;color:#596656}.optional-brief .build-fields{padding-top:18px}.optional-brief[open] summary{font-weight:600}
