@font-face{font-family:Barlow;src:url("assets/display.woff2") format("woff2");font-weight:800;font-display:swap}
@font-face{font-family:Manrope;src:url("assets/body.woff2") format("woff2");font-weight:400 800;font-display:swap}
:root{
  --ink:#222821;--deep:#1d231d;--paper:#f8f6ef;--stock:#eeebe0;--amber:#ffb637;
  --line:#cbc8bc;--muted:#52594d;--light:#dfdfd2;--measure:1272px;--gutter:clamp(22px,5.25vw,84px);
  --display:Barlow,"Arial Narrow",sans-serif;--body:Manrope,Arial,sans-serif;
  color:var(--ink);background:var(--paper);font-family:var(--body);font-size:16px;
  scrollbar-color:#71756a var(--stock);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{margin:0}
::selection{color:var(--ink);background:var(--amber)}
:focus-visible{outline:3px solid #986200;outline-offset:4px}
.hero :focus-visible,.footer :focus-visible,.utility :focus-visible,dialog :focus-visible{outline-color:var(--amber)}
img{display:block;width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
button:disabled{cursor:default}
figure,blockquote,p{margin:0}
h1,h2,h3,h4{margin:0}
h1,h2,h3{font-family:var(--display);font-weight:800;line-height:.94;letter-spacing:-.022em}
h2{font-size:clamp(3.45rem,6.3vw,6rem);text-wrap:balance}
p{line-height:1.68}
.wrap{width:min(var(--measure),calc(100% - var(--gutter)*2));margin-inline:auto}
.symbols{position:absolute;width:0;height:0;overflow:hidden}
.icon{width:1.2em;height:1.2em;flex:none;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.skip{position:fixed;z-index:10;top:10px;left:10px;padding:12px;background:var(--amber);clip-path:inset(50%)}
.skip:focus{clip-path:none}
.utility{background:var(--deep);color:var(--paper);font-size:.75rem;font-weight:720}
.utility-inner{min-height:35px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.utility-inner>span,.utility-inner a{display:inline-flex;align-items:center;gap:7px}
.utility .icon{color:var(--amber)}
.utility a:hover{text-decoration:underline}
.header{background:var(--paper);position:relative;z-index:2}
.header-inner{min-height:86px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:inline-flex;align-items:center;gap:13px;flex:none}
.brand img{width:50px;height:50px;object-fit:contain;background:#000;padding:4px}
.brand strong,.brand small{display:block}
.brand strong{font-family:var(--display);font-size:1.94rem;line-height:.92;letter-spacing:-.012em}
.brand small{margin-top:5px;font-size:.69rem;line-height:1.25;font-weight:800}
.header nav{display:flex;align-items:center;gap:clamp(18px,3vw,44px);font-size:.83rem;font-weight:800}
.header nav>a:not(.button):hover{text-decoration:underline;text-underline-offset:5px}
.button{display:inline-flex;justify-content:center;align-items:center;gap:14px;min-height:49px;padding:12px 19px;border:1px solid transparent;border-radius:3px;white-space:nowrap;font-weight:800;font-size:.83rem;line-height:1.25;transition:background-color .18s,color .18s,border-color .18s}
.button-dark{background:var(--ink);color:var(--paper)}
.button-dark:hover{background:#3c463b}
.button-gold{background:var(--amber);color:var(--deep)}
.button-gold:hover{background:#ffd084}
.icon-button{display:grid;place-items:center;width:47px;height:44px;border:0;background:transparent;color:inherit;font-size:1.05rem}
.icon-button:hover{background:color-mix(in srgb,currentColor 12%,transparent)}
.text-link{display:inline-flex;align-items:center;gap:9px;border:0;background:none;padding:0;width:fit-content;font-weight:800;font-size:.88rem;line-height:1.5;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.text-link:hover{text-decoration-thickness:2px}
.menu-toggle{display:none}

.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px 22px;margin-top:29px}
.section{padding-block:clamp(64px,8vw,116px);scroll-margin-top:18px}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:22px;margin-bottom:35px}
.section-heading p{max-width:39ch;color:var(--muted);font-weight:650}
.section-heading .text-link{margin-bottom:5px;flex:none}
.service-grid{display:grid;grid-template-columns:1fr .94fr;gap:clamp(25px,5vw,72px);align-items:start}
.service-list{border-top:1px solid var(--line)}
.service-list details{border-bottom:1px solid var(--line)}
summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:15px}
summary::-webkit-details-marker{display:none}
.service-list summary{padding:17px 0;font-family:var(--display);font-size:clamp(2.2rem,4vw,3.65rem);letter-spacing:-.02em;line-height:1}
.service-list summary:hover{color:#655020}
summary .icon{width:27px;height:27px;transition:transform .22s ease}
details[open] summary .icon{transform:rotate(45deg)}
.service-figure{background:var(--stock)}
.service-figure img{height:auto;aspect-ratio:1.57;object-fit:cover}
.service-figure figcaption{padding:11px 14px;border:1px solid var(--line);border-top:0;color:var(--muted);font-size:.73rem;font-weight:800}
.work{background:var(--stock);border-block:1px solid #e2ded1}
.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.work-photo{position:relative;overflow:hidden;background:var(--deep);color:var(--paper);display:grid;grid-template-rows:1fr auto}
.work-photo img{width:100%;height:clamp(160px,17vw,240px);object-fit:cover;transition:filter .22s ease;filter:brightness(.95)}
.work-photo:hover img{filter:brightness(1.08)}
.work-photo span{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:13px 15px;font-size:.82rem;font-weight:800}
.work-photo:hover span{color:var(--amber)}
.review-stars{display:flex;gap:3px;color:#74500c}
.review-stars .icon{width:14px;height:14px;fill:currentColor}
.consultation{background:var(--amber);padding-block:clamp(65px,7vw,103px)}
.consultation-grid{display:grid;grid-template-columns:.88fr 1fr;align-items:center;gap:25px 65px}
.consultation-copy p{max-width:31ch;margin:20px 0 17px;font-weight:680}
.project-pad{background:var(--paper);padding:clamp(22px,3vw,40px);border-top:5px solid var(--ink);min-width:0}
.pad-heading{margin-bottom:16px}
.pad-heading h3{font-size:clamp(2.1rem,3.3vw,3rem)}
.pad-heading p,#project-result p{font-size:.85rem;color:var(--muted);margin-top:6px}
.fields{display:grid;grid-template-columns:1.45fr 1fr;gap:12px}
label{font-size:.79rem;font-weight:800;display:block;margin-bottom:11px}
label small{font-weight:650;color:var(--muted)}
input,select,textarea{display:block;width:100%;min-height:43px;margin-top:5px;border:1px solid #858878;border-radius:2px;background:#fffef9;padding:9px 10px;font-size:.88rem;caret-color:#805418}
textarea{resize:vertical}
::placeholder{color:#656b5e}
.form-help{font-size:.8rem;margin:8px 0 0;color:var(--muted)}
.contact-link{margin-top:14px}
#project-result h4{font-weight:800}
#project-summary{margin:9px 0 12px}
.result-actions{display:flex;align-items:center;gap:13px;flex-wrap:wrap}
.footer{background:var(--deep);color:var(--paper);padding:27px 0}
dialog{color:var(--paper);background:var(--deep);border:1px solid #525a4c;padding:0;max-width:min(930px,calc(100vw - 30px));max-height:calc(100dvh - 30px)}
dialog::backdrop{background:rgba(17,22,17,.84)}
.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:7px 12px 7px 18px}
.dialog-heading h2{font-size:1.8rem}
dialog img{width:auto;max-width:100%;height:auto;max-height:calc(100dvh - 98px);object-fit:contain}
.photo-change{animation:photo-in .32s ease-out}
@keyframes photo-in{from{opacity:.55}to{opacity:1}}
@media(max-width:1050px){
  .hero-actions{gap:13px 16px}
}
@media(max-width:810px){
  .header-inner{min-height:72px;flex-wrap:wrap;gap:0 20px;padding-block:9px}
  .brand img{width:44px;height:44px}
  .brand strong{font-size:1.72rem}
  .brand small{font-size:.7rem}
  .header nav{width:100%;gap:0;align-items:stretch;flex-direction:column;padding-bottom:8px}
  .header nav>a{padding:12px 0;border-top:1px solid var(--line)}
  .header nav .button{width:fit-content;margin-top:4px;padding:11px 15px}
  .has-js .header nav:not(.is-open){display:none}
  .has-js .menu-toggle{display:grid}
  .hero-actions{margin-top:22px}
  .section-heading{align-items:start;flex-direction:column;gap:12px;margin-bottom:25px}
  .coverage,.consultation-grid{gap:26px}
}
@media(max-width:620px){
  .section{padding-block:55px}
  .service-grid,.coverage,.consultation-grid{grid-template-columns:1fr}
  .service-figure img{aspect-ratio:1.62}
  .work-grid{grid-template-columns:1fr 1fr;gap:8px}
  .work-photo img{height:135px}
  .work-photo span{padding:11px 9px}
  .consultation{padding-block:51px}
}
@media(max-width:350px){
  .fields{grid-template-columns:1fr;gap:0}
  .brand{gap:8px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
}

.service-entries{list-style:none;margin:0;padding:0 0 14px}
.service-entries li{padding:9px 0 10px;scroll-margin-top:18px}
.service-entries li+li{border-top:1px solid #dfdccf}
.service-entries a{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:28px;font-size:.96rem}
.service-entries a:hover strong{text-decoration:underline;text-underline-offset:4px}
.service-entries a .icon{color:#78500c}
.service-entries p{color:var(--muted);font-size:.83rem;margin-top:2px}
.services .service-figure{position:sticky;top:22px}
.footer{padding:54px 0 28px}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1.05fr .75fr;gap:22px 34px}
.footer h2{font-family:var(--body);font-size:.85rem;font-weight:800;line-height:1.3;letter-spacing:0;color:var(--amber);margin-bottom:13px;text-wrap:initial}
.footer-links,.payment-list{list-style:none;margin:0;padding:0}
.footer-links{display:grid;gap:8px;font-size:.84rem;line-height:1.5}
.footer-contact .brand{margin-bottom:19px}
.footer-contact .brand strong{font-size:1.72rem}
.footer-contact .brand small{font-size:.69rem}
.footer-contact address{font-style:normal;display:grid;gap:7px;font-size:.86rem}
.footer-contact address a,.footer-social a{display:inline-flex;align-items:center;gap:6px;width:fit-content}
.footer-contact address .icon{color:var(--amber)}
.footer-contact p{font-size:.82rem;color:var(--light);margin:9px 0 14px}
.footer-contact .button{min-height:42px}
.footer a:not(.button):not(.brand):hover{color:var(--amber);text-decoration:underline;text-underline-offset:4px}
.footer-bottom{border-top:1px solid #535c50;display:flex;justify-content:space-between;gap:22px;margin-top:31px;padding-top:21px}
.payment-list,.footer-social{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;font-size:.78rem}
.payment-list li{padding:4px 8px;border:1px solid #6a7465;border-radius:2px;color:var(--light)}
.footer-social{align-self:end;font-weight:800}

.breadcrumbs ol{display:flex;align-items:center;gap:8px 11px;flex-wrap:wrap;list-style:none;margin:0;padding:13px 0;font-size:.79rem;color:var(--muted);font-weight:750}
.breadcrumbs li+li::before{content:"/";margin-right:11px;color:#866020}
.breadcrumbs a{text-decoration:underline;text-underline-offset:3px}
.detail-hero{background:var(--ink);color:var(--paper);border-bottom:8px solid var(--amber)}
.detail-hero :focus-visible{outline-color:var(--amber)}
.detail-hero-grid{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:clamp(20px,5vw,70px);padding-block:clamp(33px,5vw,75px)}
.detail-intro h1{font-size:clamp(3.75rem,7.5vw,6rem);text-wrap:balance}
.detail-intro p{font-size:clamp(1rem,1.4vw,1.17rem);color:var(--light);max-width:42ch;margin-top:20px}
.detail-photo img{aspect-ratio:1.5;object-fit:cover}
.detail-photo figcaption{padding:10px 12px;background:#313a2e;color:var(--paper);font-size:.77rem;font-weight:700}
.detail-body{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(24px,6vw,85px);align-items:start}
.detail-body h2,.related-grid h2{font-size:clamp(2.7rem,5.5vw,4.8rem);text-wrap:initial}
.scope-list{margin:22px 0 0}
.scope-list>div{border-top:1px solid var(--line);padding:15px 0}
.scope-list dt{font-size:1.08rem;font-weight:800}
.scope-list dd{color:var(--muted);margin:4px 0 0;line-height:1.65;max-width:56ch}
.detail-aside{padding:clamp(18px,3vw,36px);background:var(--stock);border-top:4px solid var(--ink)}
.detail-aside h2{font-size:clamp(2.3rem,4vw,3.6rem);margin-bottom:15px}
.detail-aside details{border-top:1px solid var(--line)}
.detail-aside summary{font-size:.88rem;font-weight:800;min-height:46px;padding-block:10px}
.detail-aside summary .icon{width:18px;height:18px}
.detail-aside details p{color:var(--muted);font-size:.87rem;padding:0 0 13px}
.detail-resources{display:grid;gap:10px;margin:12px 0 0;padding:0;list-style:none}
.related-services{padding:clamp(34px,6vw,75px) 0;background:var(--amber)}
.related-grid{display:grid;grid-template-columns:1.4fr 1fr;align-items:center;gap:24px 55px}
.related-grid p{margin:11px 0 15px}
.related-grid ul{list-style:none;padding:0;margin:0}
.related-grid li{border-top:1px solid #996d28}
.related-grid li a{display:flex;justify-content:space-between;gap:12px;padding:12px 0;font-size:.94rem;font-weight:800}
.related-grid li a:hover{text-decoration:underline;text-underline-offset:4px}
@media(max-width:960px){
  .footer-grid{grid-template-columns:1.05fr 1fr}
}
@media(max-width:620px){
  .services .service-figure{position:static}
  .footer{padding-top:34px}
  .footer-grid{gap:22px 14px}
  .footer-contact,.footer-grid section:last-child{grid-column:1/-1}
  .footer-grid section:last-child .footer-links{grid-template-columns:1fr 1fr}
  .footer-bottom{flex-direction:column}
  .footer-social{align-self:start}
  .detail-hero-grid,.detail-body,.related-grid{grid-template-columns:1fr}
  .detail-hero-grid{gap:23px}
  .detail-intro h1{font-size:clamp(3.45rem,13vw,4.5rem)}
}

/* The home masthead sits over the opening photographs. */
.home-page .utility,.home-page .header{position:absolute;left:0;right:0;color:var(--paper)}
.home-page .utility{top:0;z-index:3;background:#171d18}
.home-page .header{top:35px;background:linear-gradient(180deg,rgba(17,23,18,.91),rgba(17,23,18,.70) 58%,transparent)}
.home-page .header :focus-visible{outline-color:var(--amber)}
.home-page .header .button-dark{background:rgba(26,32,26,.9);border-color:#e2dfd0;color:var(--paper)}
.home-page .header .button-dark:hover{background:var(--paper);color:var(--ink)}
.hero{position:relative;isolation:isolate;display:flex;align-items:end;min-height:max(630px,100svh);padding-top:128px;background:var(--deep);color:var(--paper);overflow:hidden}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,rgba(13,19,14,.12) 18%,transparent 38%,rgba(13,19,14,.20) 55%,rgba(13,19,14,.86) 83%,#101710 100%)}
.hero-frames,.hero-frame,.hero-frame img{position:absolute;inset:0;width:100%;height:100%}
.hero-frames{z-index:-2;background:var(--deep)}
.hero-frame{opacity:0}
.hero-frame.is-outgoing{opacity:1}
.hero-frame.is-current{z-index:1;opacity:1;transition:opacity .82s cubic-bezier(.24,.68,.33,1)}
.hero-frame img{object-fit:cover;object-position:50% 20%}
.hero-trust{color:var(--light);white-space:nowrap}
.hero-frame:nth-child(2) img{object-position:50% 56%}
.hero-frame:nth-child(3) img{object-position:52% 52%}
.hero-frame:nth-child(4) img{object-position:54% 50%}
.hero-overlay{padding-bottom:clamp(24px,4vw,57px)}
.hero-content{display:flex;align-items:end;justify-content:space-between;gap:14px 40px}
.hero-content h1{font-size:clamp(3.7rem,6vw,5.75rem);text-wrap:balance;text-shadow:0 3px 26px rgba(0,0,0,.22)}
.hero-content p{max-width:49ch;margin-top:13px;font-size:clamp(.95rem,1.25vw,1.1rem);color:#f1f1e7}
.hero-content .hero-actions{margin:0 0 2px;justify-content:end}
.hero-controls{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:14px}
.hero-select{display:flex;gap:10px;width:min(100%,610px)}
.hero-select button{position:relative;flex:1;min-width:0;height:44px;padding:0;border:0;color:inherit;background:none;transition:flex-grow .48s cubic-bezier(.24,.68,.33,1)}
.hero-select button[aria-current="true"]{flex:2.3}
.hero-select button::before,.hero-select button span{content:"";position:absolute;inset:50% 0 auto;height:3px;transform:translateY(-50%);background:rgba(248,246,239,.48)}
.hero-select button span{background:var(--amber);transform:translateY(-50%) scaleX(0);transform-origin:left}
.hero-select button[aria-current="true"]::before,.hero-select button:hover::before{background:var(--paper)}
.hero-status{display:flex;align-items:center;gap:14px;font-size:.78rem;font-weight:750}
.hero-toggle{display:flex;gap:6px;align-items:center;justify-content:center;min-width:78px;min-height:44px;border:1px solid #d1d0c2;background:#252d24;color:var(--paper);padding:5px 8px;font-size:.78rem;font-weight:800}
.hero-toggle:hover{background:var(--paper);color:var(--ink)}
@media(max-width:810px){
  .home-page .header nav{background:#1d231d;padding:6px 13px 13px;margin-top:5px}
  .home-page .header nav>a{border-color:#636a5e}
  .hero-content{align-items:start;flex-direction:column}
  .hero-content .hero-actions{justify-content:start}
  .hero-controls{margin-bottom:8px}
  .hero-select{gap:7px}
}
@media(max-width:620px){
  .utility-inner .utility-region,.utility-inner .hero-trust{display:none}
  .utility-inner>a{white-space:nowrap}
  .hero{min-height:max(580px,100svh);padding-top:113px}
  .hero::after{background:linear-gradient(180deg,rgba(13,19,14,.15) 18%,transparent 34%,rgba(13,19,14,.35) 53%,rgba(13,19,14,.89) 80%,#101710 100%)}
  .hero-frame img{object-position:52% 50%}
  .hero-content h1{font-size:clamp(2.95rem,10.4vw,4.1rem);text-wrap:initial;max-width:12ch}
  .hero-content p{margin-top:10px}
  .hero-content .hero-actions{gap:10px 17px}
  .hero-status #shot-title{display:none}
  .hero-toggle{min-width:70px}
}

.featured-project{display:grid;grid-template-columns:1.65fr 1fr;background:var(--ink);color:var(--paper);min-height:350px}
.featured-project>img{width:100%;height:100%;min-height:0;max-height:470px;aspect-ratio:1.68;object-fit:cover;object-position:center 32%;transition:filter .22s ease}
.featured-project-copy{display:flex;flex-direction:column;justify-content:end;align-items:start;padding:clamp(25px,4vw,56px)}
.featured-project-copy h3{font-size:clamp(2.9rem,5vw,5.2rem);text-wrap:balance}
.featured-project-copy p{max-width:29ch;margin-top:12px;color:var(--light)}
.featured-project-copy span{display:inline-flex;align-items:center;gap:9px;margin-top:19px;font-size:.88rem;font-weight:800;color:var(--amber);text-decoration:underline;text-underline-offset:4px}
.featured-project:hover img{filter:brightness(1.08)}
.featured-project:hover span{text-decoration-thickness:2px}
.related-project{margin:14px 0 4px}
.project-intro,.project-details-heading{display:grid;grid-template-columns:1.15fr .85fr;align-items:end;gap:12px 45px}
.project-intro{padding:clamp(24px,5vw,68px) 0 clamp(20px,3vw,41px);border-top:1px solid var(--line)}
.project-intro h1{font-size:clamp(4rem,8vw,6rem)}
.project-intro p,.project-details-heading p{max-width:42ch;color:var(--muted)}
.project-cover img{max-height:650px;width:100%;object-fit:cover;object-position:center 32%;aspect-ratio:1.65}
.project-page figcaption{display:flex;justify-content:space-between;gap:7px 16px;align-items:baseline;flex-wrap:wrap;padding:11px 0;border-bottom:1px solid var(--line);font-size:.83rem;color:var(--muted)}
.project-page figcaption strong{color:var(--ink)}
.project-details{padding:clamp(54px,7vw,105px) 0}
.project-details-heading{margin-bottom:20px}
.project-details-heading h2{font-size:clamp(3.2rem,6.4vw,5.5rem);text-wrap:initial}
.project-views{display:grid;grid-template-columns:1.25fr .85fr;gap:15px}
.project-views img{width:100%;height:clamp(230px,31vw,450px);object-fit:cover}
.project-views figure:nth-child(2) img{object-position:center 55%}
@media(max-width:620px){
  .featured-project{grid-template-columns:1fr;min-height:0}
  .featured-project>img{height:auto;aspect-ratio:1.6}
  .featured-project-copy{padding:24px}
  .project-intro,.project-details-heading,.project-views{grid-template-columns:1fr}
  .project-cover img{aspect-ratio:1.33}
  .project-views img{height:auto;aspect-ratio:1.2}
  .project-views{gap:24px}
}

.home-page .service-grid{
  grid-template-columns:1fr 1.06fr;
  grid-template-areas:"photo list";
  gap:clamp(22px,4.2vw,62px);
}
.home-page .service-list{grid-area:list}
.home-page .service-figure{grid-area:photo;background:var(--deep);color:var(--paper)}
.home-page .service-figure img{aspect-ratio:1.22}
.home-page .service-figure figcaption{
  display:flex;justify-content:space-between;gap:7px 14px;flex-wrap:wrap;
  padding:13px 15px;border:0;color:var(--paper);
}
.home-page .service-figure figcaption span:last-child{color:var(--light);font-weight:650}
.home-page .service-list summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:clamp(7px,1.2vw,16px)}
.home-page .service-list summary small{font:750 .76rem var(--body);letter-spacing:0;color:var(--muted);white-space:nowrap}
.home-page .service-list details[open] summary .icon{color:#78500c}
.home-page .featured-project>img{object-position:center 45%}
.home-process{display:grid;grid-template-columns:1fr .9fr;gap:clamp(25px,6vw,88px);align-items:stretch}
.process-steps{margin:23px 0 15px;padding:0;list-style:none}
.process-steps li{display:grid;grid-template-columns:29px 1fr;gap:10px 15px;padding:15px 0;border-top:1px solid var(--line)}
.process-steps li>span{color:#78500c;font-size:.75rem;font-weight:800;margin-top:5px;font-variant-numeric:tabular-nums}
.process-steps h3{font-size:clamp(1.6rem,2.5vw,2.32rem)}
.process-steps p{color:var(--muted);margin-top:6px;max-width:49ch;font-size:.92rem}
.home-review{
  display:flex;flex-direction:column;justify-content:center;align-items:start;
  gap:18px;padding:clamp(25px,5vw,68px);background:var(--ink);color:var(--paper);
}
.home-review .review-stars{color:var(--amber)}
.home-review blockquote{font-family:var(--body);font-size:clamp(1.65rem,2.8vw,2.75rem);font-weight:780;line-height:1.15;letter-spacing:-.025em}
.home-review figcaption{display:flex;flex-direction:column;align-items:start;gap:7px;font-size:.88rem}
.home-review figcaption a{color:var(--light);font-size:.78rem;display:inline-flex;align-items:center;gap:5px;text-decoration:underline;text-underline-offset:4px}
.home-review :focus-visible{outline-color:var(--amber)}
.home-area{background:var(--stock);border-top:1px solid #e2ded1}
.home-area .coverage{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:23px clamp(25px,5vw,70px);padding-block:clamp(47px,6.6vw,94px)}
.coverage h2{font-size:clamp(3rem,5vw,5.05rem);text-wrap:initial}
.coverage p{color:var(--muted);max-width:40ch;margin:16px 0 12px}
.places{padding:0;margin:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;column-gap:18px}
.places li{display:flex;align-items:stretch;border-bottom:1px solid var(--line);min-width:0;font-size:.86rem;font-weight:800}
.places li>a,.places li>span{display:flex;align-items:center;justify-content:space-between;gap:5px;min-height:43px;width:100%;padding-block:5px}
.places li>a:hover{text-decoration:underline;text-underline-offset:4px}
.places .icon{color:#78500c}
.consultation-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 17px}
.home-page .consultation-copy h2{max-width:10ch;text-wrap:initial}
.project-basics{grid-template-columns:.82fr 1.18fr}
@media(max-width:780px){
  .home-page .service-list summary{font-size:clamp(1.75rem,4vw,2.4rem)}
  .home-process{gap:25px}
}
@media(max-width:620px){
  .home-page .service-grid{grid-template-columns:1fr;grid-template-areas:"list" "photo"}
  .home-page .service-list summary{font-size:clamp(2rem,7.8vw,2.85rem)}
  .home-page .service-figure img{aspect-ratio:1.5}
  .home-process,.home-area .coverage{grid-template-columns:1fr}
  .home-review{padding:27px}
  .project-basics{grid-template-columns:1fr 1fr}
}
@media(max-width:350px){
  .project-basics{grid-template-columns:1fr}
}

.house-tour{
  --tour-progress:0%;
  --tour-ink:#172b43;
  color:#f7f7f3;
  background:#142740;
}
.house-tour :focus-visible{outline-color:#ffca74}
.tour-board{
  position:relative;isolation:isolate;min-height:max(630px,100svh);
  display:flex;flex-direction:column;justify-content:space-between;
  background:linear-gradient(180deg,#c3c7cd 0%,#a2b4ca 20%,#7d9bbd 42%,#496f9e 70%,#233d60 100%);
}
.tour-board::after{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,transparent 56%,rgba(20,39,64,.22) 72%,rgba(15,31,52,.81) 100%);
}
.tour-stage,.tour-poster,.tour-mount{position:absolute;inset:0;width:100%;height:100%}
.tour-stage{z-index:-2;overflow:hidden}
.tour-poster img{width:100%;height:100%;object-fit:cover}
.tour-stage[data-renderer="webgl"] .tour-poster{visibility:hidden}
.tour-mount canvas{display:block;width:100%;height:100%;touch-action:pan-y;cursor:grab}
.tour-mount canvas:active{cursor:grabbing}
.tour-heading{display:flex;justify-content:space-between;align-items:start;gap:10px 20px;padding-top:clamp(22px,4vw,54px);color:var(--tour-ink);pointer-events:none}
.tour-heading h2{font-family:var(--body);font-size:clamp(1.16rem,2.35vw,1.9rem);font-weight:790;line-height:1.1;letter-spacing:-.035em;text-wrap:initial}
.tour-model-note{display:block;margin-top:5px;font-size:.71rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.tour-heading>.text-link{white-space:nowrap;pointer-events:auto}
.tour-chapters{
  position:absolute;right:max(17px,calc((100vw - min(var(--measure),100vw - var(--gutter)*2))/2 - 14px));top:50%;
  transform:translateY(-50%);display:grid;justify-items:center;z-index:2
}
.tour-chapters::before{
  content:"";position:absolute;top:21px;bottom:21px;width:1px;background:rgba(255,255,255,.47);pointer-events:none
}
.tour-chapters button{display:grid;place-items:center;position:relative;width:44px;height:44px;border:0;background:none;color:inherit}
.tour-chapters button::before{
  content:"";width:9px;height:9px;border:1px solid #f7f7f3;border-radius:50%;background:#6e8db2;
  transition:background-color .2s,box-shadow .2s,transform .2s
}
.tour-chapters button:hover::before{background:#f7f7f3}
.tour-chapters button[aria-current="step"]::before{
  background:#fff;border-color:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.30);transform:scale(1.38)
}
.tour-overlay{padding-bottom:clamp(18px,3vw,34px);pointer-events:none}
.tour-footer{display:flex;align-items:end;justify-content:space-between;gap:12px 26px}
.tour-copy{min-width:0}
.tour-copy h3{font-family:var(--body);font-size:clamp(3.25rem,6.7vw,6rem);line-height:.95;font-weight:620;letter-spacing:-.052em;text-wrap:balance}
.tour-copy p{max-width:55ch;color:#edf1fa;margin-top:13px;line-height:1.55;font-size:clamp(.86rem,1.4vw,1.05rem)}
.tour-copy>a{margin-top:11px;color:#ffe0a5;pointer-events:auto}
.tour-index{display:flex;flex-direction:column;align-items:end;gap:8px;flex:none;line-height:1}
.tour-index strong{font-family:var(--body);font-size:clamp(4rem,9vw,8.4rem);font-weight:560;letter-spacing:-.075em;font-variant-numeric:tabular-nums}
.tour-index span{font-size:.68rem;font-weight:800;color:#e2eaf8;letter-spacing:.17em}
.tour-scrub{position:relative;margin-top:12px;pointer-events:auto;height:40px;display:grid;align-items:center}
.tour-scrub::before{
  content:"";position:absolute;inset:50% 7px auto;height:2px;pointer-events:none;
  background:linear-gradient(90deg,#f9f8f4 var(--tour-progress),rgba(235,242,255,.4) var(--tour-progress))
}
.tour-ticks{display:flex;justify-content:space-between;position:absolute;inset:calc(50% - 4px) 7px auto;pointer-events:none}
.tour-ticks i{width:1px;height:10px;background:#d7e3f4}
.tour-scrub input{
  display:block;position:relative;appearance:none;-webkit-appearance:none;width:100%;min-height:40px;
  margin:0;padding:0;border:0;background:transparent;cursor:ew-resize
}
.tour-scrub input::-webkit-slider-runnable-track{height:2px;background:transparent}
.tour-scrub input::-moz-range-track{height:2px;background:transparent}
.tour-scrub input::-webkit-slider-thumb{
  appearance:none;-webkit-appearance:none;width:14px;height:14px;margin-top:-6px;border:0;border-radius:50%;
  background:#fff;box-shadow:0 0 10px rgba(238,248,255,.64)
}
.tour-scrub input::-moz-range-thumb{
  width:14px;height:14px;border:0;border-radius:50%;background:#fff;box-shadow:0 0 10px rgba(238,248,255,.64)
}
.tour-scroll-tip{display:none}
@media(min-width:960px) and (min-height:620px) and (prefers-reduced-motion:no-preference){
  .tour-interactive{height:250svh}
  .tour-interactive .tour-board{position:sticky;top:0}
  .tour-interactive .tour-scroll-tip{display:inline}
}
@media(max-width:720px){
  .tour-board{min-height:max(610px,100svh)}
  .tour-chapters{right:4px;top:45%}
  .tour-chapters button{height:39px;width:39px}
  .tour-chapters::before{top:19px;bottom:19px}
  .tour-footer{gap:13px}
  .tour-copy h3{font-size:clamp(2.65rem,9vw,4rem)}
  .tour-copy p{margin-top:8px}
  .tour-index{gap:6px}
  .tour-index strong{font-size:clamp(2.8rem,13vw,5rem)}
  .tour-index span{font-size:.59rem}
  .tour-overlay{padding-bottom:10px}
  .tour-scrub{margin-top:4px}
}
@media(max-width:390px){
  .tour-heading{gap:8px}
  .tour-heading>.text-link{font-size:.72rem;gap:4px}
}

/* Shared page rhythm and controls. */
main:focus{outline:none}
.section{padding-block:clamp(52px,6.1vw,88px)}
.service-grid,.detail-body,.related-grid,.footer-grid,.home-process{min-width:0}
.service-grid>* ,.detail-body>* ,.related-grid>* ,.footer-grid>*{min-width:0}
.button{white-space:normal;text-align:center;min-height:48px}
.text-link{min-height:32px}
.service-entries a{min-height:44px}
.service-entries li{padding:5px 0 10px}
.service-entries p{font-size:.88rem}
.footer-links{gap:0}
.footer-links a{display:block;padding-block:7px;min-height:34px}
.footer-contact .button{min-height:44px}
.footer-social a{min-height:40px}
.breadcrumbs li a{display:inline-block;padding-block:7px}
input,select,textarea{min-height:44px;font-size:1rem}
label{font-size:.84rem}
.required-note{font-size:.77rem;font-weight:500;color:var(--muted)}
.photo-open{overflow:hidden}
.home-contact{display:flex;justify-content:space-between;align-items:center;gap:24px 45px}
.home-contact h2{font-size:clamp(3.2rem,6vw,5.65rem);text-wrap:initial}
.home-contact p{max-width:43ch;margin-top:14px}
.home-contact .consultation-actions{align-items:start;flex-direction:column}
.page-intro{padding:clamp(30px,5vw,65px) 0 clamp(25px,4vw,45px);max-width:1050px}
.page-intro h1{font-size:clamp(3.45rem,7.3vw,6rem);text-wrap:balance}
.page-intro>p{font-size:clamp(1rem,1.4vw,1.16rem);color:var(--muted);max-width:60ch;margin-top:18px}
.page-intro>p:empty{display:none}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,70px);align-items:start;padding-bottom:var(--page-bottom,72px)}
.about-grid img{aspect-ratio:1.1;object-fit:cover}
.about-grid figcaption{font-size:.8rem;color:var(--muted);margin-top:9px}
.prose-stack{display:grid;gap:29px}
.prose-stack h2,.reading-aside h2,.contact-choices h2{font-size:clamp(2rem,3.5vw,3.1rem);text-wrap:initial}
.prose-stack p{margin-top:11px;color:var(--muted);max-width:60ch}
.page-action{display:flex;flex-wrap:wrap;align-items:center;gap:13px 23px;margin-top:22px}
.reading-layout{display:grid;grid-template-columns:1.4fr .75fr;gap:clamp(23px,6vw,80px);padding-bottom:72px;align-items:start}
.reading-aside{padding:24px;background:var(--stock);border-top:3px solid var(--ink)}
.reading-aside p{margin-top:12px;color:var(--muted)}
.faq-list details{border-top:1px solid var(--line)}
.faq-list details:last-child{border-bottom:1px solid var(--line)}
.faq-list summary{padding:16px 0;min-height:52px;font-size:1.04rem;font-weight:800;line-height:1.4}
.faq-list summary .icon{width:19px;height:19px}
.faq-list details p{padding:0 18px 19px 0;color:var(--muted)}
.customer-quote{max-width:920px;padding:28px clamp(20px,4vw,50px);background:var(--ink);color:var(--paper)}
.customer-quote blockquote{font-size:clamp(1.55rem,3.5vw,2.7rem);font-weight:750;line-height:1.3;letter-spacing:-.025em}
.customer-quote figcaption{display:grid;gap:5px;margin-top:23px;font-size:.9rem}
.customer-quote figcaption span{color:var(--light);font-size:.8rem}
main:has(.customer-quote) .page-action{margin-bottom:65px}
.gallery-story{margin-bottom:23px}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;padding-bottom:72px}
.gallery-grid .work-photo img{height:auto;aspect-ratio:1.2}
.gallery-grid .work-photo span{padding:12px}
.area-directory{display:grid;grid-template-columns:1fr 1fr;list-style:none;padding:0;margin:0;gap:0 25px}
.area-directory li{border-top:1px solid var(--line);padding:18px 0;font-weight:800}
.guide-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px;margin:0;padding:0 0 72px;list-style:none}
.guide-list li{border-top:1px solid var(--line)}
.guide-list a{display:grid;grid-template-columns:1fr auto;gap:8px 13px;align-items:center;padding:21px 0}
.guide-list a>span{grid-column:1/-1;color:var(--muted);font-size:.79rem;font-weight:800}
.guide-list h2{font-family:var(--body);font-size:clamp(1.17rem,2vw,1.55rem);font-weight:750;line-height:1.3;letter-spacing:-.02em;text-wrap:initial}
.guide-list a:hover h2{text-decoration:underline;text-underline-offset:5px}
.guide-article .page-intro{max-width:1000px}
.guide-body{max-width:720px;padding-bottom:72px}
.guide-body section+section{margin-top:30px}
.guide-body h2{font-size:clamp(2rem,4vw,3rem);text-wrap:initial}
.guide-body p{margin-top:13px;color:var(--muted);max-width:65ch}
.guide-body>.text-link{margin-top:29px}
.contact-layout{display:grid;grid-template-columns:.85fr 1fr;gap:clamp(25px,6vw,80px);align-items:start;padding-bottom:72px}
.contact-phone{display:inline-block;margin:17px 0 10px;font-size:clamp(1.6rem,3vw,2.5rem);font-weight:750;letter-spacing:-.025em;line-height:1.2}
.contact-phone:hover{text-decoration:underline;text-underline-offset:6px}
.contact-choices>p{color:var(--muted);margin-bottom:18px}
.contact-choices .form-help{margin-top:9px;font-size:.8rem}
.contact-prep{border-top:1px solid var(--line);margin-top:28px;padding-top:22px}
.contact-prep h3{font-family:var(--body);font-size:1rem;font-weight:800;line-height:1.4;letter-spacing:0}
.contact-prep ul{padding-left:19px;line-height:1.8;color:var(--muted);font-size:.93rem}
.project-pad .pad-heading h2{font-size:2.6rem}
.detail-resources .text-link{font-size:.88rem}
.project-details{padding-block:clamp(44px,6vw,80px)}
.header nav [aria-current="page"]{text-decoration:underline;text-underline-offset:5px}
@media(max-width:960px){
  .header-inner{min-height:74px;flex-wrap:wrap;gap:0 18px;padding-block:9px}
  .header nav{width:100%;gap:0;align-items:stretch;flex-direction:column;padding-bottom:8px}
  .header nav>a{padding:12px 0;border-top:1px solid var(--line)}
  .header nav .button{width:fit-content;margin-top:4px;padding:11px 15px}
  .has-js .header nav:not(.is-open){display:none}
  .has-js .menu-toggle{display:grid}
  .home-page .header nav{background:var(--deep);padding:6px 13px 13px;margin-top:5px}
  .home-page .header nav>a{border-color:#636a5e}
  .hero-content{align-items:start;flex-direction:column}
  .hero-content .hero-actions{justify-content:start}
}
@media(max-width:720px){
  .tour-chapters button{width:44px;height:44px}
  .home-process{grid-template-columns:1fr}
  .about-grid,.reading-layout,.contact-layout{grid-template-columns:1fr}
  .reading-aside{max-width:100%}
}
@media(max-width:620px){
  .home-contact{align-items:start;flex-direction:column}
  .home-contact .consultation-actions{gap:13px}
  .section{padding-block:46px}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .guide-list{grid-template-columns:1fr}
  .page-intro{padding-top:24px}
  .tour-copy{max-width:calc(100% - 58px)}
  .tour-copy p{max-width:40ch}
  .tour-index strong{font-size:2.8rem}
}

.footer-group summary{cursor:default}
.footer-group summary h2{margin:0}
.footer-group summary>.icon{display:none}
.footer-group .footer-links{margin-top:8px}
@media(max-width:620px){
  .fields,.project-basics{grid-template-columns:1fr;gap:0}
  .footer-grid{grid-template-columns:1fr;gap:0}
  .footer-grid>section{grid-column:1}
  .footer-contact{margin-bottom:20px}
  .footer-group{border-top:1px solid #535c50}
  .footer-group summary{cursor:pointer;min-height:52px}
  .footer-group summary>.icon{display:block;width:19px;height:19px}
  .footer-group .footer-links{display:grid!important;grid-template-columns:1fr 1fr;gap:0 14px;padding-bottom:12px;margin:0}
  .footer-links a{min-height:44px;padding-block:10px;line-height:1.5}
  .footer-group:not([open]) .footer-links{display:none!important}
  .footer-grid section:last-child{border-bottom:1px solid #535c50}
}

@media(max-width:960px){
  .utility-inner .hero-trust,.utility-inner .utility-region{display:none}
  .home-area .coverage,.contact-layout,.about-grid,.reading-layout{grid-template-columns:1fr}
}
@media(min-width:621px) and (max-width:960px){
  .home-page .service-list summary{font-size:clamp(1.6rem,4.5vw,2.5rem);gap:7px}
  .detail-hero-grid,.detail-body,.related-grid{grid-template-columns:1fr}
  .detail-photo{max-width:620px}
}
