:root{--forest:#0A2016;--cream:#F6F1E4;--gold:#D9AE5C;--ink:#123523;--line:rgba(246,241,228,.17)}
.scroll-progress{position:fixed;z-index:50;top:0;left:0;width:100%;height:3px;background:rgba(246,241,228,.08);pointer-events:none}.scroll-progress__bar{display:block;width:100%;height:100%;background:var(--gold);transform:scaleX(0);transform-origin:left center;box-shadow:0 0 14px rgba(217,174,92,.65)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--forest);color:var(--cream);font-family:Inter,Arial,sans-serif;font-size:15px;line-height:1.55}
a{color:inherit;text-decoration:none}
.site-header{position:fixed;z-index:10;top:0;left:0;width:100%;padding:21px 4.3%;display:flex;align-items:center;justify-content:space-between;transition:.35s ease}
.site-header.scrolled{padding:13px 4.3%;background:rgba(10,32,22,.88);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:13px;line-height:.9;letter-spacing:.04em}
.brand-mark{color:var(--gold);font:42px/25px Fraunces,serif;transform:rotate(-12deg)}
.brand em{font-style:normal;font-size:7px;font-weight:500;letter-spacing:.15em}
.site-header nav{display:flex;align-items:center;gap:27px;font-size:12px}
.site-header nav>a:not(.nav-cta){opacity:.72}
.site-header nav>a:hover,.site-header nav>a.active{opacity:1;color:var(--gold)}
.nav-cta{border:1px solid rgba(217,174,92,.65);padding:10px 14px}
.nav-cta span,.text-link span{color:var(--gold);font-size:18px;margin-left:6px}
.menu-toggle{display:none}
.hero{min-height:100vh;position:relative;overflow:hidden;padding:22vh 8.4% 8vh}
.hero-grid{position:absolute;inset:0;background:linear-gradient(90deg,transparent 49.9%,rgba(246,241,228,.05) 50%,transparent 50.1%),linear-gradient(rgba(246,241,228,.04) 1px,transparent 1px);background-size:100% 100%,100% 128px;opacity:.8}
.hero-copy{position:relative;z-index:1;width:57%}
.eyebrow{font-size:10px;letter-spacing:.18em;font-weight:600;color:var(--gold);margin:0 0 22px}
.hero h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:500;letter-spacing:-.065em;margin:0}
.hero h1{font-size:clamp(64px,8.5vw,128px);line-height:.83}
.hero h1 i,h2 i{font-style:italic;color:var(--gold)}
.intro{max-width:350px;margin:38px 0 31px;color:rgba(246,241,228,.72);font-size:15px}
.text-link{font-size:12px;text-transform:uppercase;letter-spacing:.11em;font-weight:600}
.hero-art{position:absolute;width:min(53vw,690px);right:-2vw;top:11vh;opacity:.95}
.hero-art svg{width:100%;height:auto}
.ribbon-shadow{fill:none;stroke:#062115;stroke-width:90;opacity:.6}
.ribbon{fill:none;stroke:var(--gold);stroke-width:14;stroke-linecap:round;stroke-dasharray:1600;stroke-dashoffset:1600;animation:draw 2.2s cubic-bezier(.6,0,.2,1) .2s forwards}
@keyframes draw{to{stroke-dashoffset:0}
}
.hero-index{position:absolute;right:16%;top:11%;font:12px Fraunces;color:var(--gold)}
.hero-foot{position:absolute;bottom:25px;left:4.3%;right:4.3%;display:flex;justify-content:space-between;font-size:9px;letter-spacing:.16em;color:rgba(246,241,228,.6)}
.hero-foot b{color:var(--gold);font-size:18px;margin-left:8px}
.marquee{overflow:hidden;white-space:nowrap;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:17px 0;color:var(--gold)}
.marquee-track{display:inline-flex;align-items:center;gap:27px;animation:marquee 28s linear infinite;font:24px Fraunces,serif}
.marquee b{font:24px Inter;font-weight:400}
@keyframes marquee{to{transform:translateX(-50%)}
}
.cream{background:var(--cream);color:var(--forest)}
.statement{padding:13vw max(8.4%,40px);min-height:68vh;display:flex;flex-direction:column;justify-content:center}
.statement h2{font-size:clamp(44px,6.8vw,92px);line-height:.92;max-width:970px}
.statement h2 i{color:#84601d}
.statement>p:last-child{margin:37px 0 0;max-width:380px;color:rgba(10,32,22,.7)}
.section{padding:11vw 8.4%}
.section-head{display:grid;grid-template-columns:1fr 1.1fr .6fr;align-items:end;margin-bottom:85px}
.section-head h2{font-size:clamp(43px,5.6vw,78px);line-height:.9}
.section-head .text-link{justify-self:end}
.service-list{border-top:1px solid var(--line)}
.service-row{min-height:148px;display:grid;grid-template-columns:11% 34% 1fr 34px;gap:10px;align-items:center;border-bottom:1px solid var(--line);transition:.3s;padding:17px 0}
.service-row:hover{padding-left:20px;background:rgba(217,174,92,.07)}
.service-row>span{font:16px Fraunces;color:var(--gold)}
.service-row h3{font-size:31px;line-height:.95}
.service-row p{max-width:280px;color:rgba(246,241,228,.6);font-size:13px}
.service-row b{color:var(--gold);font-size:20px}
.proof{display:grid;grid-template-columns:1fr 1fr;min-height:710px;background:#0c2a1b}
.proof-image{overflow:hidden;background:var(--cream);display:flex;align-items:center;justify-content:center}
.proof-image img{width:80%;mix-blend-mode:multiply;transform:scale(1.12);transition:transform 1s ease}
.proof-copy{padding:13% 15%;align-self:center}
.proof-copy h2{font-size:clamp(48px,5vw,75px);line-height:.9}
.proof-copy>p:not(.eyebrow){max-width:330px;color:rgba(246,241,228,.65);margin:30px 0 42px}
.proof dl{display:flex;gap:42px;margin:0}
.proof dt{font:50px Fraunces;color:var(--gold);letter-spacing:-.08em}
.proof dd{margin:0;color:rgba(246,241,228,.55);font-size:10px;text-transform:uppercase;letter-spacing:.12em}
.gold-cta{background:var(--gold);color:var(--forest);padding:11vw 8.4%;position:relative}
.gold-cta .eyebrow{color:#725119}
.gold-cta h2{font-size:clamp(65px,10vw,142px);line-height:.8}
.gold-cta h2 i{color:var(--forest)}
.gold-cta a{position:absolute;right:8.4%;bottom:20%;border-bottom:1px solid var(--forest);padding-bottom:8px;font-size:12px;text-transform:uppercase;letter-spacing:.12em;font-weight:700}
.gold-cta a span{font-size:20px;margin-left:8px}
footer{padding:62px 8.4% 29px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:30px;border-top:1px solid var(--line)}
.footer-brand{display:flex;align-items:center;gap:6px}
.footer-brand span{font:44px Fraunces;color:var(--gold)}
.footer-brand strong{font-size:19px;letter-spacing:-.04em}
.footer-brand small{font-size:7px;letter-spacing:.14em}
.footer-brand+p{font:22px Fraunces;margin:0;color:var(--gold)}
footer div:nth-of-type(2){display:flex;gap:18px;font-size:12px}
footer>small{grid-column:1/-1;color:rgba(246,241,228,.4);font-size:10px;letter-spacing:.08em;margin-top:30px}
.page-hero{padding:24vh 8.4% 12vh;min-height:72vh;position:relative;border-bottom:1px solid var(--line)}
.page-hero h1{font:clamp(68px,10vw,144px)/.8 Fraunces;letter-spacing:-.075em;margin:0;max-width:900px}
.page-hero p:last-child{max-width:415px;margin:34px 0 0;color:rgba(246,241,228,.68)}
.page-hero .page-number{position:absolute;right:8.4%;bottom:14%;font:clamp(90px,16vw,220px)/1 Fraunces;color:rgba(217,174,92,.15)}
.detail-list{padding:0 8.4%}
.detail-row{display:grid;grid-template-columns:12% 1fr 1fr;gap:5%;padding:85px 0;border-bottom:1px solid var(--line)}
.detail-row>span{font:17px Fraunces;color:var(--gold)}
.detail-row h2{font-size:clamp(38px,4vw,62px);line-height:.9}
.detail-row p{color:rgba(246,241,228,.7);margin:0 0 22px}
.detail-row ul{padding:0;list-style:none;font-size:12px;color:var(--gold)}
.detail-row li{border-top:1px solid rgba(217,174,92,.35);padding:9px 0}
.about-story{padding:12vw 8.4%;display:grid;grid-template-columns:1fr 1.3fr;gap:10%}
.about-story h2{font-size:clamp(50px,7vw,98px);line-height:.87}
.about-story p{max-width:490px;color:rgba(246,241,228,.7);font-size:17px}
.about-logo{margin-top:45px;background:var(--cream);padding:7%;max-width:530px}
.about-logo img{width:100%;display:block;mix-blend-mode:multiply}
.values{padding:10vw 8.4%;background:var(--cream);color:var(--forest)}
.values h2{font-size:clamp(45px,6vw,86px);line-height:.9;margin-bottom:70px}
.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px}
.value-grid div{border-top:1px solid rgba(10,32,22,.24);padding-top:17px}
.value-grid span{color:#9d752a;font:20px Fraunces}
.value-grid h3{font-size:28px;margin:18px 0 12px}
.value-grid p{font-size:13px;color:rgba(10,32,22,.7)}
.contact-grid{padding:0 8.4% 11vw;display:grid;grid-template-columns:1fr 1fr;gap:10%}
.contact-grid h2{font-size:40px;margin-bottom:25px}
.contact-list{list-style:none;padding:0;font:20px Fraunces}
.contact-list li{padding:12px 0;border-bottom:1px solid var(--line)}
.contact-list small{display:block;font:10px Inter;text-transform:uppercase;letter-spacing:.14em;color:var(--gold);margin-bottom:5px}
.enquiry{background:var(--cream);color:var(--forest);padding:40px}
.enquiry label{display:block;font-size:10px;letter-spacing:.14em;text-transform:uppercase;margin-top:21px}
.enquiry input,.enquiry textarea{width:100%;border:0;border-bottom:1px solid rgba(10,32,22,.4);background:transparent;padding:12px 0;font:15px Inter;color:var(--forest);outline:0}
.enquiry textarea{height:85px;resize:vertical}
.enquiry button{margin-top:31px;background:var(--forest);color:var(--cream);border:0;padding:14px 19px;font:600 11px Inter;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.map{height:450px;background:#173928;display:grid;place-items:center;color:var(--gold);font:18px Fraunces;text-align:center}
.map small{display:block;color:rgba(246,241,228,.6);font:11px Inter;margin-top:10px}
.reveal{opacity:0;transform:translateY(27px);transition:opacity .8s ease,transform .8s ease}
.reveal.in-view{opacity:1;transform:none}

@media(max-width:760px){.site-header{padding:18px 6%}
.site-header.scrolled{padding:12px 6%}
.site-header nav{display:none;position:absolute;top:100%;left:0;width:100%;padding:25px 6% 30px;background:#0a2016;border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:21px}
.site-header.nav-open nav{display:flex}
.menu-toggle{display:flex;background:transparent;border:0;width:34px;height:28px;flex-direction:column;justify-content:center;gap:6px}
.menu-toggle i{display:block;width:26px;height:1px;background:var(--cream)}
.hero{padding:20vh 7% 11vh;min-height:730px}
.hero-copy{width:100%}
.hero h1{font-size:62px}
.hero-art{width:105vw;top:43%;right:-34vw;opacity:.65}
.hero-foot{left:7%;right:7%;font-size:8px}
.hero-foot span:first-child{display:none}
.statement{padding:25vw 7%;min-height:570px}
.statement h2{font-size:48px}
.section{padding:24vw 7%}
.section-head{display:block;margin-bottom:52px}
.section-head h2{font-size:47px}
.section-head .text-link{display:inline-block;margin-top:28px}
.service-row{grid-template-columns:15% 1fr 22px;min-height:127px}
.service-row h3{font-size:27px}
.service-row p{display:none}
.proof{grid-template-columns:1fr}
.proof-image{min-height:310px}
.proof-copy{padding:22vw 7%}
.gold-cta{padding:24vw 7%;min-height:520px}
.gold-cta h2{font-size:72px}
.gold-cta a{left:7%;right:auto;bottom:16%}
footer{padding:55px 7% 25px;grid-template-columns:1fr;gap:16px}
footer>small{margin-top:15px}
.page-hero{padding:20vh 7% 13vh;min-height:600px}
.page-hero h1{font-size:68px}
.page-hero .page-number{right:7%;bottom:8%}
.detail-list{padding:0 7%}
.detail-row{grid-template-columns:1fr;gap:20px;padding:61px 0}
.detail-row h2{font-size:45px}
.about-story{padding:24vw 7%;display:block}
.about-story h2{font-size:59px;margin-bottom:34px}
.value-grid{grid-template-columns:1fr;gap:30px}
.values{padding:23vw 7%}
.contact-grid{padding:0 7% 24vw;display:block}
.contact-grid>div{margin-bottom:60px}
.enquiry{padding:28px}
.map{height:310px}
}
/* Service photography: editorial, wide crop treatment */
.faq{display:grid;grid-template-columns:1fr 1fr;gap:10%;padding:11vw 8.4%}.faq h2{font-size:clamp(45px,5vw,75px);line-height:.9}.faq h2 i{color:#84601d}.faq-list{border-top:1px solid rgba(10,32,22,.25)}.faq details{border-bottom:1px solid rgba(10,32,22,.25);padding:18px 0}.faq summary{cursor:pointer;font:24px/1.05 Fraunces;letter-spacing:-.04em;list-style:none}.faq summary::after{content:'+';float:right;color:#9d752a}.faq details[open] summary::after{content:'−'}.faq details p{max-width:480px;margin:18px 30px 4px 0;color:rgba(10,32,22,.7);font-size:13px}
.map{position:relative}.map iframe{width:100%;height:100%;border:0}.map-fallback{position:absolute;z-index:1;right:22px;bottom:20px;padding:11px 14px;background:var(--forest);color:var(--cream);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;box-shadow:0 5px 20px rgba(0,0,0,.25)}.map-fallback span{color:var(--gold);font-size:16px;margin-left:5px}
.service-row{grid-template-columns:8% 130px 1fr 1fr 34px;gap:22px}
.service-photo{height:86px;overflow:hidden;background:#183827}
.service-photo img{width:100%;height:100%;display:block;object-fit:cover;filter:saturate(.65) contrast(1.06);transition:transform .6s ease,filter .6s ease}
.service-row:hover .service-photo img{transform:scale(1.08);filter:saturate(1) contrast(1.05)}
.motion-tilt{transform-style:preserve-3d;will-change:transform}.motion-tilt .service-photo,.motion-tilt h3{transform:translateZ(9px)}
@media(max-width:760px){.service-row{grid-template-columns:15% 78px 1fr 22px;gap:12px;min-height:115px}.service-photo{height:70px}}
@media(max-width:760px){.faq{grid-template-columns:1fr;gap:45px;padding:22vw 7%}.faq h2{font-size:50px}.faq summary{font-size:22px}}
