@font-face{font-family:HeedDisplay;src:url('/assets/display.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:HeedSans;src:url('/assets/body.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:HeedSans;src:url('/assets/body-semibold.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap}
:root{--ink:#14272c;--muted:#536165;--gold:#9b7946;--gold-light:#cbb185;--paper:#fff;--soft:#f5f5f2;--line:#bcc3c3;--display:HeedDisplay,Georgia,serif;--body:HeedSans,Arial,sans-serif;--space:clamp(1.4rem,4.2vw,5rem)}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:5rem;scrollbar-color:var(--gold) var(--soft)}
body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.75 var(--body);-webkit-font-smoothing:antialiased}
::selection{color:white;background:#79603b}
a{color:inherit;text-underline-offset:.3em}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
a,button{touch-action:manipulation}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #987239;outline-offset:5px}
.site-header a:focus-visible,.hero a:focus-visible,.site-header button:focus-visible{outline-color:#fff}
img{display:block;max-width:100%;height:auto}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.2;text-wrap:balance}
h2{font-size:clamp(2rem,3.1vw,3.25rem)}
p+p{margin-top:1rem}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:1rem;left:1rem;padding:.7rem 1rem;background:white;color:var(--ink);z-index:100;transform:translateY(-200%)}
.skip-link:focus{transform:translateY(0)}
.site-header{position:absolute;z-index:10;top:0;left:0;width:100%;display:flex;align-items:center;justify-content:space-between;padding:1.35rem var(--space);gap:2rem;color:white}
.wordmark{display:inline-block;font-family:var(--display);font-size:clamp(1.9rem,2.3vw,2.35rem);letter-spacing:-.035em;line-height:1.3;text-decoration:none;padding:.35rem 0;white-space:nowrap}
.brand-dot{color:var(--gold-light)}
.menu-toggle{display:flex;align-items:center;gap:1rem;color:white;background:transparent;border:1px solid #d1d6d6;padding:.5rem .8rem;min-height:44px}
.menu-toggle>span{display:grid;gap:6px;width:18px}.menu-toggle i{display:block;height:1px;background:currentColor;width:100%}
#main-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--ink);padding:1rem var(--space) 1.5rem}
#main-nav.open{display:grid;gap:.45rem}
#main-nav a{display:flex;align-items:center;min-height:44px;text-decoration:none;padding:.55rem 0;font-size:.94rem}
#main-nav a:hover{text-decoration:underline}
#main-nav .nav-contact{border-top:1px solid #6f7a7c;margin-top:.5rem;padding-top:1rem}
.hero{position:relative;min-height:690px;height:92svh;max-height:1080px;color:white;background:var(--ink);display:flex;justify-content:center;isolation:isolate}
.hero-image,.hero-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 100%;z-index:-2}
.hero-shade{z-index:-1;background:linear-gradient(180deg,rgba(8,22,29,.59) 0%,rgba(8,22,29,.48) 45%,rgba(8,22,29,.07) 72%,rgba(8,22,29,.55) 100%)}
.hero-copy{text-align:center;padding:10.5rem 1.35rem 8rem;width:100%}
.hero h1{font-size:clamp(2.55rem,4.5vw,4.6rem);line-height:1.2}
.hero-copy p{max-width:30rem;margin:.5rem auto 1.6rem;font-size:clamp(.96rem,1.35vw,1.15rem);line-height:1.55}
.short-rule{width:24px;height:2px;background:currentColor;display:block;margin:1.2rem auto}
.short-rule.gold{background:var(--gold)}
.button{display:inline-flex;align-items:center;justify-content:center;gap:1.4rem;min-height:50px;padding:.75rem 1.4rem;text-decoration:none;font-size:.93rem;font-weight:600;border:1px solid transparent;border-radius:0;transition:background .2s,color .2s}
.button-light{background:rgba(16,33,40,.65);color:white;border-color:#fff}
.button-light:hover{background:white;color:var(--ink)}
.button-gold{background:var(--gold-light);color:#14272c;border-color:var(--gold-light)}
.button-gold:hover{background:#ddc69e;border-color:#ddc69e}
.button:disabled{cursor:wait;opacity:.7}
.arrow{display:inline-block;width:20px;height:20px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.25;vertical-align:middle}
.scroll-link{position:absolute;bottom:2.5rem;left:50%;transform:translateX(-50%);padding:.8rem;display:flex;align-items:center;justify-content:center;min-height:44px;min-width:44px}
.scroll-link svg{fill:none;stroke:currentColor;stroke-width:1.5}
.hero-credit{position:absolute;bottom:1.05rem;left:var(--space);font-size:.75rem;line-height:1.4;color:white;background:rgba(8,22,29,.7);padding:.4rem .6rem;max-width:calc(100% - 3rem)}
.section{padding:clamp(4rem,7.2vw,7.5rem) var(--space)}
.intro{text-align:center}
.reading-width{max-width:750px;margin:0 auto}
.intro .lead{font-size:clamp(1.12rem,1.6vw,1.38rem);line-height:1.7;margin:1.5rem 0 1.4rem}
.intro p:not(.lead){color:var(--muted);max-width:660px;margin-left:auto;margin-right:auto}
.text-link{font-size:.94rem;display:inline-flex;align-items:center;gap:1.3rem;padding:.7rem 0;margin-top:1.4rem;min-height:44px;text-decoration:none;border-bottom:1px solid var(--gold)}
.text-link:hover{color:#70542c}
.approach{position:relative;background:var(--soft)}
.approach>img{width:100%;height:310px;object-fit:cover;object-position:center}
.approach-panel{padding:3rem var(--space)}
.approach .short-rule{margin-left:0}
.approach-panel>p{max-width:38rem;color:var(--muted)}
.conversation-list{margin:1.5rem 0 0}
.conversation-list div{padding:1rem 0;border-bottom:1px solid #d4d8d6}
.conversation-list dt{font-weight:600;font-size:1rem}
.conversation-list dd{margin:.2rem 0 0;color:var(--muted);font-size:.92rem}
.section-heading{text-align:center;margin-bottom:2.5rem}
.section-heading p{color:var(--muted);margin-top:1rem}
.gallery{display:grid;grid-template-columns:1fr;gap:1.8rem;max-width:1500px;margin:0 auto}
.gallery-item{border:0;padding:0;background:transparent;text-align:left;color:var(--ink);min-width:0}
.gallery-image{display:block;position:relative;overflow:hidden;background:var(--soft)}
.gallery-image img{width:100%;aspect-ratio:519/403;object-fit:cover;transition:transform .35s ease-out}
.gallery-item:hover img{transform:scale(1.025)}
.image-view{position:absolute;bottom:.8rem;right:.8rem;padding:.35rem .65rem;background:rgba(12,30,36,.85);font-size:.73rem;color:white;opacity:0;transition:opacity .2s}
.gallery-item:hover .image-view,.gallery-item:focus-visible .image-view{opacity:1}
.gallery-caption{display:flex;align-items:center;justify-content:space-between;gap:1rem;font-family:var(--display);font-size:1.2rem;padding:1rem 0 .3rem}
.gallery-caption>span{font-family:var(--body);font-size:1.1rem}
.image-note{font-size:.78rem;line-height:1.6;color:var(--muted);text-align:center;max-width:760px;margin:1.8rem auto 0}
.image-note a{display:inline-block;min-height:24px}
.contact{background:var(--ink);color:white;display:grid;gap:2.5rem}
.contact-intro .short-rule{margin-left:0;background:var(--gold-light)}
.contact-intro>p{max-width:25rem;color:#d6dedf}
.contact-intro .contact-small{font-size:.9rem;color:#bdc9cb;margin-top:1.8rem}
.contact-details{margin-top:2.2rem;padding-top:1.5rem;border-top:1px solid #718085;max-width:26rem;font-size:.85rem}.contact-details p{display:flex;flex-wrap:wrap;gap:.3rem 1rem;justify-content:space-between}.contact-details p+p{margin-top:.65rem}.contact-details span{color:#e2e8e9}.contact-details .contact-placeholder{display:block;color:#bdc9cb;font-size:.75rem;line-height:1.6;margin-top:1rem}
.enquiry-form{width:100%;max-width:750px}
.form-row{display:grid;gap:1rem}
.enquiry-form label:not(.consent){display:block;font-size:.86rem;margin-bottom:1.15rem}
.optional{color:#bdc9cb;font-size:.78rem}
input,select,textarea{display:block;width:100%;color:white;background:#1d3339;border:1px solid #849396;border-radius:0;padding:.7rem .85rem;min-height:48px;margin-top:.4rem;caret-color:var(--gold-light)}
select{appearance:auto}select option{background:var(--ink);color:white}
textarea{resize:vertical;min-height:130px}
input::placeholder,textarea::placeholder{color:#bac6c8;opacity:1}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:var(--gold-light);outline-offset:3px}
.enquiry-form .honey{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.consent{display:flex;align-items:flex-start;gap:.8rem;font-size:.8rem;line-height:1.65;color:#d6dedf;cursor:pointer;margin:.5rem 0 1.5rem;padding:.35rem 0}
.consent input{width:20px;min-width:20px;height:20px;min-height:20px;accent-color:var(--gold-light);margin:.15rem 0 0}
.consent a{display:inline-block;min-height:24px}
.form-status{font-size:.9rem;line-height:1.65;margin-top:1rem;min-height:1.5em}
.form-status.error{color:#ffcccc}
.form-status.success{color:#daeecb}
.site-footer{padding:2.5rem var(--space) 1.5rem;background:#f4f4f0}
.footer-top{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 2rem;padding-bottom:2rem}
.footer-top p{font-size:.9rem;color:var(--muted)}
.footer-top .brand-dot{color:#826135}
.back-top{display:flex;align-items:center;gap:1rem;min-height:44px;margin-left:auto;font-size:.85rem}
.footer-bottom{border-top:1px solid #ccd1ce;padding-top:1.4rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem 1.5rem;font-size:.75rem;color:var(--muted)}
.footer-bottom>div{display:flex;gap:1.5rem}.footer-bottom a{display:inline-flex;min-height:44px;align-items:center}.footer-bottom p+p{margin:0}
dialog{width:min(760px,calc(100% - 2rem));max-height:90svh;border:0;padding:0;color:var(--ink);background:var(--paper)}
dialog::backdrop{background:rgba(5,17,22,.8)}
.dialog-close{display:flex;align-items:center;justify-content:flex-end;gap:1rem;min-height:50px;width:100%;background:white;color:var(--ink);padding:.5rem 1.3rem;border:0}
.dialog-close span{font-size:1.7rem;line-height:1}
#dialog-image{width:100%;max-height:48svh;object-fit:contain;background:#f5f5f2}
.dialog-copy{padding:1.5rem clamp(1.2rem,4vw,2.5rem) 2rem}
.dialog-copy h2{font-size:1.8rem}.dialog-copy>p{margin-top:.8rem}.dialog-copy .image-note{text-align:left;margin:1rem 0 0}
body.modal-open{overflow:hidden}
.document-header{position:relative;background:var(--ink)}
.document{max-width:850px;padding:4rem 1.5rem 5rem;margin:0 auto;min-height:65vh}
.document h1{font-size:clamp(2.3rem,5vw,3.5rem);margin-bottom:1.5rem}.document h2{font-size:1.5rem;margin:2.2rem 0 .8rem}.document p{color:var(--muted)}
@media(min-width:600px){.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}.form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}.approach>img{height:420px}.hero-copy{padding-top:12rem}.mobile-break{display:none}}
@media(min-width:980px){.menu-toggle{display:none}#main-nav{display:flex;position:static;align-items:center;gap:clamp(1.2rem,3vw,3.5rem);background:none;padding:0}#main-nav a{font-size:.88rem}#main-nav .nav-contact{border:1px solid #d6dede;margin:0;padding:.65rem 1.2rem}#main-nav .nav-contact:hover{background:white;color:var(--ink);text-decoration:none}.hero{min-height:760px;height:100svh}.hero-copy{padding-top:clamp(12rem,22vh,17rem)}.hero-copy p{max-width:40rem}.hero-credit{bottom:1.5rem}.scroll-link{bottom:2.3rem}.approach{display:grid;grid-template-columns:1fr 1fr;min-height:700px}.approach>img{height:100%;position:absolute;inset:0;width:54%;object-fit:cover}.approach-panel{grid-column:2;position:relative;align-self:center;background:var(--soft);margin:4rem 0;padding:3.5rem clamp(2rem,6vw,7rem) 3.5rem clamp(2rem,4vw,5rem)}.contact{grid-template-columns:1fr 1.25fr;gap:clamp(3rem,7vw,8rem)}.gallery{grid-template-columns:repeat(4,minmax(0,1fr));gap:1.4rem}.gallery-caption{font-size:1.15rem}.footer-top p{margin-left:1rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
