@font-face{font-family:Archivo;src:url(assets/archivo-400.ttf) format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:Archivo;src:url(assets/archivo-600.ttf) format("truetype");font-weight:600;font-display:swap}
:root{--ink:#242522;--paper:#f4f0e7;--clay:#91472f;--pad:clamp(22px,5vw,84px);--shell:1440px;color:var(--ink);background:var(--paper);font:16px/1.45 Archivo,Arial,sans-serif}
*,*::before,*::after{box-sizing:border-box}
body,h1,h2,p,figure,blockquote,ul{margin:0}
img{display:block;width:100%;object-fit:cover}
a{color:inherit;text-underline-offset:.22em}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid #bc7957;outline-offset:4px}
h1,h2,.footer-headline{font-weight:600;letter-spacing:-.065em;line-height:.97}
h2{font-size:clamp(42px,7vw,112px)}
p{max-width:34ch}
.wrap{width:min(100%,var(--shell));margin-inline:auto;padding-inline:var(--pad)}
.skip{position:fixed;z-index:20;top:8px;left:8px;transform:translateY(-160%);background:white;padding:12px}
.skip:focus{transform:none}
.header{position:absolute;inset:0 0 auto;z-index:3;color:white;display:flex;align-items:center;justify-content:space-between;padding:20px var(--pad)}
.logo{display:block;width:146px;height:auto}
.menu-toggle{width:48px;height:44px;display:grid;align-content:center;gap:6px;background:none;border:0;padding:10px}
.menu-toggle span{display:block;height:2px;background:currentColor}
.header nav{display:none}
.header nav.is-open{display:grid;position:absolute;top:100%;right:var(--pad);left:var(--pad);background:var(--ink);padding:22px;gap:16px}
.header nav a{text-decoration:none}
.button{display:inline-flex;justify-content:center;align-items:center;min-height:52px;padding:12px 20px;color:white;background:var(--clay);text-decoration:none;border:0;font-weight:600}
.button:hover{background:#743722}
.hero{min-height:96svh;position:relative;isolation:isolate;display:grid;align-items:end;color:#fff;background:#262725}
.hero-photo,.hero::after{position:absolute;inset:0;height:100%;width:100%;z-index:-1}
.hero-photo{object-position:47% 52%}
.hero::after{content:"";background:linear-gradient(180deg,#15171475,transparent 20%,transparent 36%,#1315123b 56%,#131512ed 100%)}
.hero-content{padding:118px var(--pad) clamp(48px,8svh,78px)}
.hero h1{font-size:clamp(47px,11.1vw,162px)}
.hero h1 span{color:#e9ac8d}
.hero-content p{margin:19px 0 25px;max-width:30ch}
.hero-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.hero-actions .text-link{font-size:14px}
.drawing{padding-block:54px 69px}
.drawing h2{margin-bottom:29px}
.drawing-sheet{background:var(--paper);margin-inline:calc(var(--pad) * -1)}
.drawing-sheet img{height:clamp(350px,104vw,660px);object-position:46% center}
.drawing-sheet figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;padding:12px var(--pad);font-size:12px}
.drawing-method{font-size:22px;line-height:1.16;font-weight:600;letter-spacing:-.035em;margin-top:25px}
.signature{max-width:var(--shell);margin:auto;display:grid;grid-template-columns:1fr}
.photo{display:block;width:100%;border:0;padding:0;background:none;text-align:left}
.signature-lead img{aspect-ratio:1 / 1.15;object-position:47% 60%}
.signature-note{padding:27px var(--pad) 23px}
.signature-note p{margin-top:13px}
.signature-detail{margin-left:var(--pad);margin-right:calc(var(--pad) * 2.7)}
.signature-detail img{aspect-ratio:1.5;object-position:center 54%}
.closer{background:var(--ink);color:var(--paper);padding-block:55px 61px}
.closer-title p{margin:9px 0 24px;color:var(--paper)}
.macro img{aspect-ratio:1.02;object-position:40% center}
.testimonials{background:var(--paper);padding:51px 0 46px}
.testimonials h2{font-size:clamp(39px,6vw,85px);margin-bottom:12px}
.testimonials a{font-size:14px}
.reviews{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--pad);padding:0 var(--pad);max-width:var(--shell);margin:25px auto 0;scrollbar-width:none}
.reviews::-webkit-scrollbar{display:none}
.reviews figure{flex:0 0 85%;background:var(--paper);padding:24px;min-height:198px;display:flex;flex-direction:column;justify-content:space-between;gap:14px;scroll-snap-align:start}
.reviews blockquote{font-size:22px;letter-spacing:-.025em;line-height:1.2}
.reviews figcaption{font-size:13px}
.review-dots{display:flex;justify-content:center;margin-top:9px}
.review-dots button{width:35px;height:38px;background:none;border:0}
.review-dots button::after{display:block;content:"";width:7px;height:7px;margin:auto;border-radius:50%;background:color-mix(in srgb,var(--ink) 48%,var(--paper))}
.review-dots button[aria-current=true]::after{background:var(--clay);transform:scale(1.4)}
.area{background:var(--paper);color:var(--ink);padding-block:47px 51px}
.area h2{font-size:clamp(40px,6vw,92px)}
.area ul{padding:0;list-style:none;margin-top:24px;font-size:clamp(21px,3vw,42px);line-height:1.18;letter-spacing:-.035em}
.enquiry{padding-block:58px 68px}
.enquiry>div>p{margin-top:17px}
form{margin-top:26px}
.form-grid{display:grid;gap:17px}
.form-grid label{display:block;font-size:14px}
input:not([type=file]),select,textarea{display:block;width:100%;margin-top:6px;min-height:54px;padding:12px;background:var(--paper);border:1px solid color-mix(in srgb,var(--ink) 30%,transparent);border-radius:0}
textarea{resize:vertical}
.form-grid .upload-zone{position:relative;display:grid;gap:3px;padding:18px;background:var(--paper);cursor:pointer}
.upload-zone input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}
.upload-zone:focus-within{outline:2px solid var(--clay);outline-offset:3px}
.upload-zone span,.delivery-note,.no-plans,#file-list{font-size:13px}
#file-list:empty,#form-error:empty{display:none}
#form-error{color:var(--clay);margin-top:9px}
form .button{width:100%;margin-top:14px}
.delivery-note,.no-plans{margin-top:12px}
footer{background:var(--ink);color:var(--paper);padding-block:39px 48px}
.footer-inner{display:grid;gap:33px}
.footer-headline{font-size:clamp(42px,7vw,108px);margin-top:26px}
.footer-inner nav{display:flex;gap:15px;flex-wrap:wrap;margin:10px 0 21px}
.footer-inner small{color:var(--paper)}
.mobile-enquiry{display:none}
.mobile-enquiry.is-visible{display:flex;position:fixed;z-index:2;bottom:max(12px,env(safe-area-inset-bottom));right:12px;min-height:44px;font-size:14px}
dialog{max-width:min(90vw,820px);max-height:90dvh;border:0;background:var(--paper);padding:20px}
dialog::backdrop{background:#191a18cc}
.modal-open{overflow:hidden}
.dialog-bar,.gallery-bottom,.review-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.dialog-bar h2{font-size:32px}
.close,.gallery-bottom button{background:none;border:1px solid color-mix(in srgb,var(--ink) 45%,transparent);padding:8px}
.gallery-frame img{max-height:67dvh;object-fit:contain;margin:12px auto}
#review-text{white-space:pre-wrap;overflow-wrap:anywhere;max-height:34dvh;overflow:auto;background:var(--paper);padding:10px}
#review p{margin-block:10px}
@media(min-width:768px){
 .header{padding-block:26px}
 .header nav,.header nav.is-open{display:flex;position:static;align-items:center;gap:26px;background:none;padding:0}
 .menu-toggle{display:none}
 .hero{min-height:94svh}
 .hero-photo{object-position:53% 55%}
 .hero::after{background:linear-gradient(90deg,#1315129e,transparent 76%),linear-gradient(0deg,#131512b5,transparent 56%),linear-gradient(180deg,#13151270,transparent 24%)}
 .hero-content{padding-bottom:9svh}
 .hero h1{font-size:clamp(84px,10vw,156px)}
 .hero-content p{max-width:none;font-size:19px}
 .drawing{padding-block:80px 107px}
 .drawing-sheet{margin-inline:8% 0}
 .drawing-sheet img{height:auto;aspect-ratio:1.65;object-fit:contain}
 .drawing-sheet figcaption{padding-inline:17px}
 .drawing-method{margin-left:8%;font-size:32px}
 .signature{grid-template-columns:1.7fr 1fr;grid-template-rows:auto 1fr;padding-right:var(--pad);gap:0 4%}
 .signature-lead{grid-row:1/3}
 .signature-lead img{aspect-ratio:1.14;object-position:center 60%}
 .signature-note{padding:18px 0 27px}
 .signature-note h2{font-size:clamp(45px,6vw,94px)}
 .signature-detail{margin:0;align-self:end}
 .signature-detail img{aspect-ratio:1.49}
 .closer{padding-block:80px}
 .closer-title{display:flex;align-items:end;justify-content:space-between;margin-bottom:28px}
 .closer-title p{margin:0}
 .macro img{height:100%;max-height:690px}
 .reviews figure{flex-basis:62%;min-height:215px;padding:31px}
 .reviews blockquote{font-size:32px}
 .area .wrap,.enquiry,.footer-inner{display:grid;grid-template-columns:1fr 1fr;gap:8%}
 .area{padding-block:72px}
 .area ul,form{margin:0}
 .enquiry{padding-block:85px 102px}
 .form-grid{grid-template-columns:1fr 1fr}
 .full{grid-column:1/-1}
 .footer-inner>div:last-child{align-self:end}
}
/* Keep the opening composition bounded on unusually tall viewports. */
.hero{min-height:min(96svh,811px)}
.hero-content{padding-bottom:clamp(48px,8svh,68px)}
.skip:not(:focus){clip-path:inset(50%)}
@media(min-width:768px){
 .hero{min-height:min(94svh,940px)}
 .hero-content{padding-bottom:clamp(60px,9svh,90px)}
}
@media(max-width:767px){
 .drawing-sheet img{height:auto;aspect-ratio:1.08;object-fit:contain}
 .drawing-sheet>a{display:block;background:var(--paper)}
 .hero-photo{object-position:44% 54%}
}

.editorial { padding-block: 66px 76px; }
.editorial h2 { margin-bottom: 36px; }
.editorial-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 28px; }
.editorial-list h3 { margin: 0 0 6px; font-size: 23px; letter-spacing: -.04em; line-height: 1.12; }
.editorial-list p { max-width: 43ch; }
.process .editorial-list { counter-reset: stages; }
.process li { position: relative; padding-left: 36px; counter-increment: stages; }
.process li::before { content: counter(stages, decimal-leading-zero); position: absolute; left: 0; top: .18em; font-size: 13px; color: var(--clay); }
.capabilities { padding-block: 63px 73px; }
.drawing { padding-bottom: 38px; }
.drawing-sheet figcaption { border-bottom: 1px solid color-mix(in srgb,var(--ink) 18%,transparent); }
.closer-images { display: grid; grid-template-columns: 1fr; gap: 12px; }
.reveal { width: 51%; justify-self: end; }
.reveal img { aspect-ratio: 1.34; object-position: 69% center; }
.secondary { padding-block: 68px 46px; }
.rumford { display: grid; gap: 16px; }
.rumford img { aspect-ratio: .81; object-position: 49% 69%; }
.rumford h2 { font-size: clamp(32px,5vw,75px); }
.rumford p { margin-top: 9px; }
.reviews figure { border: 1px solid color-mix(in srgb,var(--ink) 22%,transparent); }
.area { padding-block: 35px 38px; }
.area .wrap { display: grid; gap: 14px; }
.area h2 { font-size: clamp(33px,4vw,63px); }
.area ul { margin: 0; }
.enquiry { padding-top: 41px; }
.form-grid .upload-zone { border: 1px dashed color-mix(in srgb,var(--ink) 45%,transparent); }
@media (max-width:767px) {
 .drawing-sheet img { aspect-ratio: 1.45; object-fit: cover; }
}
@media (min-width:768px) {
 .editorial { display: grid; grid-template-columns: 1.15fr 1fr; gap: 7%; padding-block: 95px 108px; }
 .editorial h2 { margin: 0; font-size: clamp(54px,7.2vw,106px); }
 .editorial-list { gap: 32px; }
 .editorial-list h3 { font-size: 29px; }
 .drawing { padding-bottom: 45px; }
 .closer-images { grid-template-columns: 2fr 1fr; align-items: end; gap: 22px; }
 .reveal { width: 100%; }
 .macro img { aspect-ratio: 1.5; }
 .secondary { padding-block: 94px 60px; }
 .rumford { grid-template-columns: 1fr 1fr; align-items: center; gap: 8%; }
 .rumford .photo { max-width: 510px; }
 .rumford img { aspect-ratio: .88; }
 .area { padding-block: 48px; }
 .area .wrap { grid-template-columns: 1fr 1fr; gap: 8%; }
}

/* Process illustrations use the same ink and clay as the surrounding type. */
.process { display:block; padding-block:54px 64px; }
.process-heading { margin-bottom:25px; }
.process-heading h2 { margin:0 0 14px; }
.process-heading p { max-width:40ch; }
.process .editorial-list { gap:0; }
.process li {
 display:grid; grid-template-columns:clamp(68px,23vw,108px) minmax(0,1fr);
 gap:16px; align-items:center; padding:15px 0; border-top:1px solid color-mix(in srgb,var(--ink) 16%,transparent);
}
.process li::before { content:none; }
.process li>div::before { content:counter(stages,decimal-leading-zero); display:block; margin-bottom:3px; color:var(--clay); font-size:13px; font-weight:600; }
.process li h3 { font-size:21px; }
.process li p { font-size:15px; }
.reveal { width:94%; }
.reveal img { aspect-ratio:1.48; object-position:50% 56%; }
.area { padding-block:54px 48px; }
.area .wrap { gap:24px; }
.area h2 { font-size:clamp(44px,6vw,92px); }
.area li { display:flex; align-items:center; gap:13px; margin-block:6px; }
.area li::before { content:""; width:5px; height:5px; border-radius:50%; background:var(--clay); flex:none; }
.enquiry { padding-top:45px; }
.enquiry-intro { position:relative; }
.enquiry-bricks { display:none; }
.footer-inner nav a { padding-block:6px; }
@media(min-width:768px) {
 .process { padding-block:76px 90px; }
 .process-heading { display:grid; grid-template-columns:1.2fr 1fr; gap:7%; align-items:end; margin-bottom:34px; }
 .process-heading h2 { margin:0; }
 .process .editorial-list { grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
 .process li { grid-template-columns:minmax(0,1fr); align-content:start; gap:12px; }
 .process li h3 { font-size:clamp(20px,2vw,29px); }
 .closer-images { grid-template-columns:3fr 2fr; }
 .reveal { width:100%; }
 .area .wrap { gap:8%; align-items:center; }
 .enquiry { grid-template-columns:1fr minmax(0,1.12fr); padding-block:72px 96px; }
 .enquiry form { max-width:660px; }
 .enquiry-bricks { display:block; position:absolute; bottom:0; left:-11%; width:min(72%,300px); }
}
.area ul { position:relative; padding-left:19px; }
.area ul::before { content:""; position:absolute; left:0; top:.54em; width:6px; height:6px; border-radius:50%; background:var(--clay); }
.area li::before { content:none; }
.enquiry .upload-zone { padding:22px 18px; }
.enquiry .upload-zone strong { font-size:16px; }
.enquiry textarea { min-height:122px; }

.process-scene { aspect-ratio: .93; object-position: center 55%; }
.testimonials { background:color-mix(in srgb,var(--clay) 15%,var(--paper)); }
.area { padding-block:52px; }
.closer-images .reveal { width:100%; }
.closer-images .reveal img { aspect-ratio:1.27; object-position:center 60%; }
.enquiry-bricks { display:block; width:125px; margin:-7px 0 -14px -10px; }
@media (min-width:768px) {
 .process .editorial-list { gap:16px; }
 .process li { border:0; padding:0; }
 .process-scene { aspect-ratio:1.28; }
 .closer-images { grid-template-columns: 1.6fr 1fr; align-items:stretch; }
 .closer-images .photo img { height:100%; max-height:510px; }
 .closer-images .reveal img { aspect-ratio:auto; }
 .enquiry-bricks { width:min(78%,350px); left:-8%; margin:0; }
}
@media(max-width:767px) {
 .signature-detail { margin-right:var(--pad); }
 .signature-detail img { aspect-ratio:1.66; object-position:44% 55%; }
 .process-scene { object-position:center 48%; }
}
@media(min-width:768px) {
 .process-scene { aspect-ratio:1.16; }
 .signature-detail img { object-position:42% 53%; }
}

.process .editorial-list { grid-template-columns:1fr; }
.process li { grid-template-columns:minmax(0,.86fr) minmax(0,1fr); }
.process-scene { aspect-ratio:1.13; }
.area { background:var(--ink); color:var(--paper); overflow:hidden; padding:0; }
.area .wrap { position:relative; isolation:isolate; padding-block:53px 174px; gap:22px; }
.area h2 { font-size:clamp(52px,9vw,104px); }
.area-heading p { margin-top:18px; max-width:28ch; }
.area-heading p::before { content:""; display:block; width:46px; height:3px; margin-bottom:15px; background:#e9ac8d; }
.area ul { padding-left:0; font-size:clamp(19px,2.2vw,29px); }
.area ul::before { content:none; }
.area li { margin:0; padding-block:10px; }
.area li+li { border-top:1px solid color-mix(in srgb,var(--paper) 21%,transparent); }
.area li::before { content:""; width:15px; height:2px; border-radius:0; background:#e9ac8d; }
.area-terrain { position:absolute; z-index:-1; width:420px; right:-110px; bottom:-99px; }
.enquiry-intro { isolation:isolate; }
.enquiry-bricks { width:152px; margin:17px 0 -10px calc(-1 * var(--pad)); }
.enquiry-bricks img { height:auto; filter:drop-shadow(4px 3px 4px #24252226); }
@media(min-width:768px){
 .process-heading { margin-bottom:36px; }
 .process .editorial-list { grid-template-columns:repeat(4,minmax(0,1fr)); }
 .process li { grid-template-columns:1fr; }
 .process-scene { aspect-ratio:.98; }
 .area .wrap { grid-template-columns:minmax(0,1.15fr) minmax(0,.92fr) minmax(0,1fr); padding-block:78px; gap:4%; min-height:365px; }
 .area h2 { font-size:clamp(50px,6.2vw,102px); }
 .area ul { border-left:1px solid color-mix(in srgb,var(--paper) 24%,transparent); padding-left:22px; }
 .area li+li { border:0; }
 .area-terrain { width:min(41vw,590px); right:-3%; bottom:50%; transform:translateY(50%); }
 .enquiry-bricks { width:min(80%,370px); left:calc(-1 * var(--pad)); bottom:-96px; margin:0; }
}
@media(max-width:767px) {
 .area .wrap { padding-bottom:150px; }
 .area-terrain { bottom:-76px; }
 .enquiry-bricks { margin-bottom:0; }
}
