@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Libre+Caslon+Display&display=swap');
:root{--ink:#20251e;--dark:#151914;--muted:#686c62;--paper:#f6f3ec;--surface:#ece8df;--gold:#d8b77a;--line:#d8d6cc;--error:#a52624;--radius:2px;--serif:'Libre Caslon Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--paper);font-size:16px;line-height:1.65}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #9d702f;outline-offset:5px}section{scroll-margin-top:70px}[hidden]{display:none!important}.skip{position:fixed;top:-70px;left:16px;z-index:50;background:var(--gold);padding:12px}.skip:focus{top:12px}.site-header{background:var(--dark);color:var(--paper);padding:18px 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff1c;gap:32px}.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}.brand img{width:64px;height:64px;object-fit:contain}.brand>span{font-size:23px;letter-spacing:.23em;font-weight:500;line-height:1.2;color:var(--gold)}.brand small{display:block;font-size:8px;letter-spacing:.23em;margin-top:7px;color:#f3eee2}.site-header nav{display:flex;gap:33px;align-items:center;font-size:13px}.site-header nav>a{padding:10px 0}.site-header nav>a:hover{color:var(--gold)}.site-header nav .nav-cta{border:1px solid #c4a16c99;padding:13px 20px;color:#ead1a5}.nav-cta span{margin-left:20px}.menu-toggle{display:none}.hero{min-height:660px;display:grid;grid-template-columns:1fr 1fr;background:var(--dark);color:var(--paper);overflow:hidden}.hero-copy{padding:65px 8% 40px 10%;align-self:center}.eyebrow{font-size:10px;font-weight:650;letter-spacing:.15em;text-transform:uppercase;line-height:1.8;margin:0 0 25px}.hero .eyebrow,.about .eyebrow{color:var(--gold)}h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-.025em;line-height:1.04;margin:0}h1{font-size:clamp(55px,5.7vw,88px)}h1 em,h2 em{font-style:normal;color:#8a7042}.hero h1 em{color:var(--gold)}.hero-description{color:#c9cec3;max-width:420px;line-height:1.8;font-size:14px;margin:28px 0 30px}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:35px;padding:16px 23px;font-size:13px;font-weight:600;border:1px solid transparent;border-radius:var(--radius);transition:background .2s,transform .2s}.gold{background:var(--gold);color:#20251e}.gold:hover{background:#e8cb94;transform:translateY(-2px)}.text-link{display:inline-flex;align-items:center;gap:25px;border-bottom:1px solid #8c795a;padding:8px 0;font-size:13px;font-weight:500}.light{color:#e4decf}.hero .text-link{margin-left:25px;border-color:#ffffff45}.hero-location{display:flex;align-items:center;gap:15px;margin-top:45px;color:#aeb6a7;font-size:11px;letter-spacing:.03em}.fine-rule{height:1px;background:var(--gold);width:35px}.hero-photo{position:relative;margin:0;min-height:660px}.hero-photo>img{width:100%;height:100%;object-fit:cover;position:absolute;object-position:50% 40%}.hero-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#101910a8,transparent 45%)}.hero-photo figcaption{position:absolute;z-index:1;bottom:29px;left:30px;right:30px;display:flex;justify-content:space-between;gap:15px;font-size:10px;color:white}.hero-photo figcaption span:first-child{font-size:14px;font-family:var(--serif)}.craft-strip{padding:23px 5%;display:flex;justify-content:space-between;gap:20px;align-items:center;background:var(--surface);border-bottom:1px solid var(--line);font-size:10px;letter-spacing:.12em;text-transform:uppercase}.craft-strip i{font-size:17px;font-style:normal;color:#9b7e49}.section-pad{padding:95px 7%}.section-heading{display:grid;grid-template-columns:1fr 1fr;align-items:end;column-gap:12%}.section-heading .eyebrow{grid-column:1/-1;margin-bottom:14px;color:#756748}h2{font-size:clamp(45px,4.4vw,66px)}.section-heading>p:last-child{max-width:440px;font-size:14px;color:var(--muted);margin:0 0 4px}.offer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:48px}.image-wrap{overflow:hidden;background:var(--surface);height:300px}.image-wrap img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.offer-card:hover img{transform:scale(1.04)}.offer-title{display:flex;align-items:center;gap:11px;margin-top:20px}.offer-title .number{font-size:10px;color:#8c795a}.offer-title h3{font-family:var(--serif);font-size:26px;font-weight:400;margin:0;line-height:1.2}.offer-title>span:last-child{margin-left:auto;color:#7d673e}.offer-card>p{margin:13px 0 0;font-size:13px;line-height:1.8;color:var(--muted)}.work{background:var(--surface);border-top:1px solid var(--line)}.work-heading{display:flex;justify-content:space-between;gap:100px;align-items:end}.work-heading .eyebrow{color:#756748;margin-bottom:14px}.work-heading>p{font-size:14px;max-width:330px;color:var(--muted);margin:0 0 4px}.filters{display:flex;gap:28px;margin:40px 0 29px;border-bottom:1px solid #cccdc1}.filter{font-size:12px;border:0;border-bottom:2px solid transparent;background:none;padding:12px 0 15px;color:var(--muted)}.filter.active{border-color:#7c673e;color:var(--ink)}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 24px}.project{padding:0;border:0;background:transparent;text-align:left;display:flex;flex-direction:column;min-width:0}.project>img{width:100%;height:330px;object-fit:cover;transition:filter .2s}.project:hover>img{filter:brightness(.88)}.project>span{display:flex;justify-content:space-between;padding-top:13px;gap:12px;font-size:12px;color:var(--ink);width:100%}.project>span>span{color:#8a7042}.gallery-count{color:var(--muted);font-size:11px;margin:25px 0 10px}.about{background:var(--dark);color:var(--paper);display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:center}.about-photo{margin:0;position:relative}.about-photo img{width:100%;max-height:560px;object-fit:cover}.about-photo figcaption{font-size:10px;color:#a6ad9e;padding-top:13px}.about h2{font-size:clamp(42px,4vw,61px)}.about h2 em{color:var(--gold)}.about-copy>p:not(.eyebrow){font-size:14px;color:#bac2b2;line-height:1.85;max-width:460px;margin:26px 0}.signature{border-top:1px solid #ffffff26;margin-top:40px;padding-top:30px;color:var(--gold);font-size:18px;letter-spacing:.2em}.signature span{display:block;color:#c7cbbb;font-size:10px;letter-spacing:.05em;margin-top:6px}.process{display:grid;grid-template-columns:1fr 1.2fr;gap:12%;align-items:start}.process .eyebrow{color:#756748}.process ol{list-style:none;padding:0;margin:0}.process li{border-top:1px solid var(--line);padding:24px 0;display:flex;gap:30px}.process li>span{font-family:var(--serif);font-size:27px;color:#987a43}.process h3{font-weight:500;font-size:16px;margin:0 0 9px}.process li p{font-size:13px;color:var(--muted);margin:0;max-width:430px}.contact{background:#e9e4d8;display:grid;grid-template-columns:1fr 1.05fr;gap:12%;border-top:1px solid var(--line)}.contact-copy>.eyebrow{color:#756748}.contact-copy>p:not(.eyebrow){max-width:370px;font-size:14px;color:#5f655a;margin-top:25px}.contact-details{margin-top:35px;display:grid;gap:22px}.contact-details>div>span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#6b6f62;margin-bottom:5px}.contact-details a{font-size:17px;overflow-wrap:anywhere}.contact-details a:hover{text-decoration:underline}.contact-details address{font-style:normal;font-size:14px}.visit-note{font-size:11px;color:var(--muted);margin:7px 0}.enquiry{background:var(--paper);padding:36px 38px;border-top:3px solid #ac8952;align-self:start}.enquiry>h3{font-family:var(--serif);font-size:31px;line-height:1.15;font-weight:400;margin:0 0 11px}.form-intro{font-size:12px;line-height:1.7;color:var(--muted);margin:0 0 25px}.form-intro span{display:block;font-size:10px;margin-top:6px}.form-fields{display:grid;grid-template-columns:1fr 1fr;gap:17px 18px}.field{min-width:0}.field-wide{grid-column:1/-1}.field label{display:block;font-size:11px;font-weight:550;margin-bottom:7px}.field input,.field select,.field textarea{border:1px solid #c9cbbf;background:#fffefb;width:100%;padding:11px 12px;color:var(--ink);font-size:13px;line-height:1.5;border-radius:var(--radius);min-height:44px}.field textarea{min-height:120px;resize:vertical}.field input::placeholder,.field textarea::placeholder{color:#777e6f;font-size:12px}.field .error{font-size:11px;color:var(--error);margin:5px 0 0}.field [aria-invalid=true]{border-color:var(--error)}.field .help{font-size:10px;color:var(--muted);margin:5px 0}.submit{width:100%;margin-top:23px;background:var(--ink);color:var(--paper);border:0;display:flex;justify-content:space-between;padding:15px 18px;font-size:12px}.submit:hover{background:#35422f}.submit:disabled{opacity:.6;cursor:wait}.form-error{color:var(--error);font-size:12px}.privacy-note{font-size:10px;line-height:1.7;color:var(--muted);margin:18px 0 0}.form-success{border-top:1px solid var(--line);padding:30px 0}.form-success h4{font-family:var(--serif);font-size:32px;font-weight:400;margin:0 0 10px}.form-success p{font-size:14px}footer{background:var(--dark);color:#c1c9b8;padding:55px 7% 22px}.footer-brand{font-size:26px;letter-spacing:.22em;color:var(--gold)}.footer-brand span{display:block;font-size:9px;letter-spacing:.23em;margin-top:4px}footer>p{font-family:var(--serif);font-size:25px;margin:20px 0 28px;color:#e5e6dd}.footer-links{display:flex;gap:30px;font-size:12px}.footer-links a:last-child{margin-left:auto}.footer-links a:hover{color:var(--gold)}.footer-bottom{margin-top:42px;padding-top:20px;border-top:1px solid #ffffff21;display:flex;justify-content:space-between;font-size:10px;color:#8f9986}dialog{border:0;background:#171c16;color:white;padding:55px 25px 15px;max-width:min(880px,95vw);max-height:95vh;border-radius:var(--radius)}dialog::backdrop{background:#080c08db}dialog img{max-height:72vh;width:auto;max-width:100%;object-fit:contain;margin:auto}dialog p{font-size:13px}.dialog-close{position:absolute;top:13px;right:20px;background:none;border:0;padding:5px;color:white;font-size:13px}
@media(min-width:1600px){.hero-copy{padding-left:14%}.hero{min-height:750px}.hero-photo{min-height:750px}.section-pad{padding-left:10%;padding-right:10%}.image-wrap{height:350px}.project>img{height:400px}}
@media(max-width:1100px){.site-header{padding:17px 4%;gap:15px}.site-header nav{gap:20px;font-size:12px}.hero-copy{padding:50px 7% 40px 8%}.hero .text-link{display:table;margin:16px 0 0}.hero-location{margin-top:26px}.hero,.hero-photo{min-height:650px}.section-pad{padding:75px 5%}.offer-grid{gap:20px}.image-wrap{height:250px}.offer-title h3{font-size:24px}.project>img{height:280px}.work-heading{gap:40px}.enquiry{padding:30px 25px}.contact{gap:7%}.form-fields{grid-template-columns:1fr}.field-wide{grid-column:auto}}
@media(max-width:760px){html{scroll-padding-top:15px}.site-header{padding:12px 5%;position:relative;flex-wrap:wrap;gap:0}.brand img{width:53px;height:53px}.brand>span{font-size:19px}.brand small{font-size:7px}.menu-toggle{display:flex;gap:12px;align-items:center;color:#e3d1a9;border:1px solid #6c745e;background:none;padding:9px 12px;font-size:12px}.site-header nav{display:none;width:100%;flex-direction:column;align-items:stretch;gap:0;padding:20px 0 10px}.site-header nav.open{display:flex}.site-header nav>a{border-top:1px solid #ffffff20;padding:13px 0}.site-header nav .nav-cta{margin-top:10px;padding:13px}.hero{grid-template-columns:1fr;min-height:0}.hero-copy{padding:48px 7% 42px}.hero .eyebrow{font-size:9px;letter-spacing:.13em}.hero h1{font-size:clamp(52px,10.5vw,74px)}.hero-description{font-size:14px;max-width:470px;margin:24px 0 25px}.hero .text-link{display:inline-flex;margin:0 0 0 20px}.hero-location{font-size:10px;margin-top:30px}.hero-photo{min-height:0;height:460px}.hero-photo img{object-position:50% 35%}.hero-photo figcaption{left:22px;right:22px;bottom:20px}.craft-strip{padding:19px 5%;display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;text-align:center;font-size:9px}.craft-strip i{display:none}.section-pad{padding:60px 7%}.section-heading{display:block}.eyebrow{font-size:9px;margin-bottom:17px}h2{font-size:48px}.section-heading>p:last-child{margin-top:23px}.offer-grid{margin-top:32px;grid-template-columns:1fr;gap:36px}.image-wrap{height:340px}.offer-title{margin-top:16px}.offer-title h3{font-size:28px}.offer-card>p{font-size:13px;max-width:470px}.work-heading{display:block}.work-heading>p{margin-top:22px;max-width:440px}.filters{gap:15px;margin:24px 0;flex-wrap:wrap;border:0}.filter{font-size:10px;padding:7px 0}.gallery{grid-template-columns:1fr 1fr;gap:24px 16px}.project>img{height:250px}.project>span{font-size:11px;line-height:1.45;padding-top:10px}.work>.text-link{font-size:12px}.about{grid-template-columns:1fr;gap:40px}.about-photo img{max-height:480px}.about h2{font-size:47px}.about-copy>p:not(.eyebrow){font-size:14px}.signature{margin-top:25px;padding-top:22px}.process{grid-template-columns:1fr;gap:32px}.process li{gap:22px;padding:22px 0}.process-heading .eyebrow{margin-bottom:17px}.contact{grid-template-columns:1fr;gap:35px}.contact-copy>p:not(.eyebrow){max-width:450px}.contact-details{gap:21px}.enquiry{padding:28px 24px}.form-fields{grid-template-columns:1fr 1fr}.field-wide{grid-column:1/-1}footer{padding:42px 7% 22px}footer>p{font-size:23px}.footer-links{font-size:11px;gap:22px}.footer-bottom{gap:20px;font-size:9px;line-height:1.7}.contact-details a{font-size:16px}}
@media(max-width:420px){.hero .text-link{display:table;margin:15px 0 0}.hero-photo{height:390px}.gallery{gap:22px 13px}.project>img{height:210px}h2{font-size:43px}.image-wrap{height:300px}.enquiry{padding:26px 19px}.form-fields{grid-template-columns:1fr}.field-wide{grid-column:auto}.enquiry>h3{font-size:29px}.footer-links{flex-wrap:wrap}.footer-links a:last-child{margin-left:0}.footer-bottom{flex-direction:column;gap:7px}.hero-photo figcaption{font-size:9px}.brand{gap:8px}.brand>span{font-size:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
