/* Shared navigation, service icons and enquiry flow. */
:root{--navigation-height:72px}
[id]{scroll-margin-top:calc(var(--navigation-height) + 20px)}
[hidden]{display:none!important}
.site-navigation{position:sticky;top:0;z-index:90;display:flex;align-items:center;justify-content:space-between;gap:32px;height:var(--navigation-height);padding:0 var(--gutter);background:var(--paper);border-bottom:1px solid #1d1d1f25;font:var(--weight-ui) var(--type-ui)/1.3 var(--font-body);transition:background-color .2s,border-color .2s}
.site-navigation--home{position:fixed;inset:0 0 auto;background:transparent;border-color:transparent}
.site-navigation--home.is-past-hero,.site-navigation--home.has-spaces-open{background:var(--paper);border-color:#1d1d1f25}
.navigation-brand{display:flex;align-items:center;flex:none;min-height:44px}
.navigation-brand svg{width:96px;height:auto}
.site-navigation .menu-toggle{display:none}
.navigation-panel{display:flex;align-items:center;gap:32px}
.navigation-panel>a,.navigation-spaces>summary{display:flex;align-items:center;gap:12px;min-height:44px;white-space:nowrap}
.navigation-panel [aria-current=page]{text-decoration:underline;text-underline-offset:5px}
.navigation-spaces{position:relative}
.navigation-spaces>summary{cursor:pointer;list-style:none}
.navigation-spaces>summary::-webkit-details-marker{display:none}
.navigation-spaces>summary svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.3;transition:transform .2s}
.navigation-spaces[open]>summary svg{transform:rotate(180deg)}
.navigation-categories{position:absolute;top:calc(100% + 13px);left:-20px;min-width:240px;padding:12px 20px;background:var(--paper);border:1px solid #1d1d1f25}
.navigation-categories a{display:flex;align-items:center;min-height:44px;white-space:nowrap}
.navigation-estimate{border-left:1px solid #1d1d1f30;padding-left:32px}
.page-header{padding-top:112px}
@media(hover:hover){.navigation-panel a:hover,.navigation-spaces>summary:hover{text-decoration:underline;text-underline-offset:5px}}
@media(max-width:1000px){.page-header{padding-top:96px;grid-template-rows:auto 1fr auto}.page-header-title{grid-row:1}.page-header-logo{grid-row:2}.page-header-description{grid-row:3}}
@media(max-width:800px){
 :root{--navigation-height:60px}
 .site-navigation{gap:16px}
 .navigation-brand svg{width:88px}
 .site-navigation .menu-toggle{display:flex;align-items:center;justify-content:flex-end;width:auto;min-width:60px;min-height:44px;font-size:var(--type-ui);line-height:1.3}
 .navigation-panel{position:absolute;top:100%;left:0;right:0;display:none;grid-template-columns:1fr 1fr;gap:12px 20px;padding:12px var(--gutter) 20px;background:var(--paper);border-bottom:1px solid #1d1d1f25}
 .site-navigation.is-open .navigation-panel{display:grid}
 .site-navigation--home.is-open{background:var(--paper);border-color:#1d1d1f25}
 .navigation-spaces{grid-column:1/-1}
 .navigation-spaces>summary{display:none}
 .navigation-categories{position:static;display:grid;grid-template-columns:1fr 1fr;gap:0 20px;min-width:0;padding:0 0 12px;border:0;border-bottom:1px solid #1d1d1f25}
 .navigation-categories a{white-space:normal;line-height:1.4;padding:6px 0}
 .navigation-panel>a{white-space:normal;gap:8px}
 .navigation-estimate{border-left:0;padding-left:0}
 .navigation-contact{justify-self:end}
 .page-header{padding-top:84px}
}
.interior-display{font:var(--weight-display) var(--type-display)/var(--line-display) var(--font-display);text-transform:uppercase;letter-spacing:normal;padding:.04em 0 .06em}
.services-grid--single .service-group{display:block}
.services-grid--single .service-group header{max-width:480px;min-height:88px}
.services-grid--single .service-group ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 32px;padding-top:8px}
.services-grid--single .service-group li{display:flex;flex-direction:column;align-items:flex-start;gap:24px;min-height:180px;padding:26px 0!important;border-top:1px solid #1d1d1f26!important;line-height:1.45;letter-spacing:0}
.service-item-icon{width:42px;height:42px;flex:none;fill:none}
.service-group li span{max-width:230px}
.calculator-section{padding:20px var(--gutter) clamp(80px,10vw,144px)}
.calculator-heading-row{display:grid;grid-template-columns:1.35fr .65fr;align-items:end;gap:40px;padding:64px 0 80px}
.calculator-heading-row p{max-width:390px;line-height:1.5}
.calculator-layout{display:grid;grid-template-columns:1fr 1.45fr;gap:clamp(40px,8vw,140px)}
.calculator-aside{display:flex;align-items:flex-start;flex-direction:column;gap:28px;max-width:340px;line-height:1.5}
.small-copy{font-size:var(--type-ui);line-height:1.5;letter-spacing:0}
.calculator-aside .small-copy{opacity:.7}
.text-link{text-decoration:underline;text-underline-offset:5px;font-size:var(--type-ui);line-height:1.5;min-height:44px;display:inline-flex;align-items:center}
.calculator-main{min-width:0}
#price-calculator fieldset{border:0;border-top:1px solid #1d1d1f65;padding:24px 0 32px;margin:0;min-width:0}
#price-calculator legend{float:left;width:100%;display:flex;gap:20px;font-weight:400;margin-bottom:24px;font-size:var(--type-body)}
#price-calculator legend span{font-size:var(--type-caption);padding-top:4px;opacity:.55}
.choice-grid{clear:both;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.choice{position:relative;min-width:0;cursor:pointer}
.choice input{position:absolute;opacity:0;width:1px;height:1px;inset:50%}
.choice span{display:flex;align-items:center;justify-content:center;min-height:60px;border:1px solid #1d1d1f45;padding:12px 10px;text-align:center;font-size:var(--type-ui);line-height:1.35;transition:background .2s,color .2s,border .2s}
.choice input:checked+span{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.choice input:focus-visible+span{outline:2px solid;outline-offset:3px}
.area-field{clear:both;display:flex;align-items:baseline;gap:12px;max-width:300px;border-bottom:1px solid #1d1d1f65;margin-bottom:12px}
.area-field input{width:100%;min-width:0;font:300 36px/1.2 var(--font-body);padding:8px 0 16px;border:0;color:var(--ink);background:transparent;border-radius:0}
.area-field span{font-size:var(--type-body)}
.calculator-submit,.estimate-actions{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:8px}
.calculator-submit p{max-width:180px;opacity:.7}
.primary-action{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;padding:16px 20px;min-height:54px;background:var(--ink);color:var(--paper);font-size:var(--type-ui);font-weight:400;line-height:1.4}
.primary-action:disabled{opacity:.5;cursor:wait}
.estimate-result{scroll-margin-top:calc(var(--navigation-height) + 20px);border:1px solid #1d1d1f45;padding:clamp(20px,3vw,40px);background:#ebe5d8}
.estimate-result h3{font:900 clamp(40px,4vw,64px)/.95 var(--font-display);text-transform:uppercase;margin:32px 0 16px}
.estimate-summary{font-size:var(--type-ui);line-height:1.5}
.estimate-total{font:900 clamp(48px,5vw,84px)/1 var(--font-display);margin:32px 0 12px;letter-spacing:normal}
.estimate-rate{font-size:var(--type-ui)}
.estimate-scope{margin:28px 0 16px;line-height:1.5}
.estimate-note{opacity:.75}
.estimate-sources{margin:24px 0;border-top:1px solid #1d1d1f30;border-bottom:1px solid #1d1d1f30;padding:12px 0;font-size:var(--type-ui)}
.estimate-sources summary{cursor:pointer;min-height:32px;padding:6px 0}
.estimate-sources p{margin:12px 0}
.estimate-source{display:block;min-height:auto;overflow-wrap:anywhere;margin:12px 0}
.contact-page .contact-section{padding-top:28px}
.contact-page h1{margin:64px 0 80px}
.contact-intro{line-height:1.5}
.contact-project{border-top:1px solid;margin-top:32px;padding-top:20px;max-width:420px}
.contact-project p+p{margin-top:12px;line-height:1.5}
.contact-project a{margin-top:14px}
.contact-calculate{margin-top:32px;max-width:340px}
@media(hover:hover){.choice:hover span{border-color:var(--ink)}.primary-action:hover{background:#594037}}
@media(max-width:1180px){.calculator-layout{grid-template-columns:.7fr 1.3fr;gap:40px}}
@media(max-width:800px){.services-grid--single .service-group ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}.services-grid--single .service-group li{min-height:154px;gap:18px;padding:22px 0!important}.service-item-icon{width:36px;height:36px}.calculator-heading-row{grid-template-columns:1fr;gap:28px;padding:40px 0 48px}.calculator-heading-row p{max-width:440px}.calculator-layout{grid-template-columns:1fr;gap:36px}.calculator-aside{max-width:520px;gap:16px}.calculator-aside>p:first-child{display:none}.calculator-aside .text-link{display:none}.calculator-submit{align-items:flex-start;flex-direction:column;gap:16px}.calculator-submit p{max-width:none}.calculator-submit .primary-action{width:100%}.choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.choice span{min-height:56px}.estimate-actions{align-items:stretch;flex-direction:column;gap:12px}.estimate-actions .text-link{min-height:40px}.contact-page h1{margin:40px 0 48px}.estimate-total{font-size:clamp(48px,12vw,76px)}.contact-page .contact-grid{gap:32px}}
@media(max-width:380px){.services-grid--single .service-group ul{gap:0 16px}.service-group li span{font-size:13px}}
/* Contact fields and the primary action use the existing palette and type scale. */
.contact-page .contact-form{gap:24px;align-content:start}
.contact-page .field{gap:10px}
.contact-page .field input,.contact-page .field textarea{border:1px solid #59403766;background:#fffcf5;padding:15px 16px;line-height:1.5;min-height:54px;transition:border-color .15s,box-shadow .15s}
.contact-page .field textarea{min-height:148px}
.contact-page .field input::placeholder,.contact-page .field textarea::placeholder{color:#786b64;opacity:1}
.contact-page .field input:focus,.contact-page .field textarea:focus{border-color:#594037;box-shadow:0 0 0 1px #594037;outline:none}
.contact-page .form-bottom{display:flex;flex-direction:column;align-items:stretch;gap:14px}
.contact-page .form-bottom .contact-submit{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:58px;padding:16px 20px;background:#594037;color:var(--paper);font-size:16px;line-height:1.4;text-decoration:none;transition:background-color .2s}
.contact-submit span:last-child{font-size:var(--type-icon);line-height:1}
.contact-page .form-bottom p{max-width:none;text-align:center}
.contact-page .form-feedback:empty{display:none}
@media(hover:hover){.contact-page .form-bottom .contact-submit:hover{background:var(--ink)}}
@media(max-width:800px){.contact-page h1{margin:32px 0}.contact-page .contact-form{gap:22px}.contact-page .field input,.contact-page .field textarea{font-size:16px}}
/* Larger invisible tap areas for small links on touch screens; no visual change. */
@media(pointer:coarse){.section-kicker a,.footer-logo{position:relative}.section-kicker a::after{content:"";position:absolute;inset:-15px -10px}.footer-logo::after{content:"";position:absolute;inset:-6px -4px}}
