:root{--bg:#FAF8F5;--ink:#1A1A1A;--mute:#6B6964;--line:#E7E3DC;--deep:#2D2926;--deepink:#FAF8F5;--brass:#9E7D56;--slot:#F3EFEA;
box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(72px + env(safe-area-inset-top,0px))}
body{margin:0;background:var(--bg);color:var(--ink);font:300 17px/1.7 Jost,system-ui,sans-serif}
h1,h2,h3{font-family:"Cormorant Garamond",Georgia,serif;font-weight:300;line-height:1.1;margin:0}
a{color:inherit}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
.wrap{max-width:1180px;margin:0 auto;padding:0 clamp(20px,5vw,56px)}
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
header .wrap{display:flex;align-items:center;justify-content:space-between;height:68px}
.brand{font-family:"Cormorant Garamond",serif;font-size:1.35rem;text-decoration:none;letter-spacing:.02em}
nav{display:flex;gap:clamp(14px,2.6vw,34px);font-size:.92rem}
nav a{text-decoration:none;color:var(--mute);padding:6px 0}
nav a:hover{color:var(--ink)}
nav a.ig{color:var(--brass);border-bottom:1px solid var(--brass)}
@media (max-width:640px){nav{gap:12px;font-size:.82rem}.brand{font-size:1.1rem}nav a.hide{display:none}}
.hero{background:var(--deep);color:var(--deepink);position:relative;overflow:hidden}
.hero .wrap{min-height:min(86vh,780px);display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:clamp(48px,9vw,96px);padding-top:120px;position:relative;z-index:1}
.hero h1{font-size:clamp(2.6rem,7.4vw,6rem);max-width:15ch;font-weight:300}
.hero p{max-width:46ch;margin:28px 0 36px;font-size:1.08rem;opacity:.82}
.btn{display:inline-block;border:1px solid currentColor;padding:14px 30px;text-decoration:none;font-size:.95rem;letter-spacing:.03em;transition:background .25s,color .25s}
.hero .btn:hover{background:var(--deepink);color:var(--deep)}
.plan{position:absolute;right:-4%;top:6%;width:min(70vw,760px);opacity:.22;color:var(--brass)}
section{padding:clamp(64px,10vw,128px) 0}
.intro{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(28px,6vw,90px);align-items:start}
.intro h2,.head h2{font-size:clamp(2rem,4.4vw,3.4rem)}
.intro p{margin:0 0 1.1em;color:var(--mute);max-width:60ch}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,56px);margin-top:clamp(48px,7vw,88px);border-top:1px solid var(--line);padding-top:36px}
.pillars h3{font-size:1.6rem;margin-bottom:10px}
.pillars p{margin:0;color:var(--mute);font-size:.98rem}
.head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:44px;flex-wrap:wrap}
.head p{margin:0;color:var(--mute);max-width:44ch}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:clamp(20px,3vw,36px)}
.card{cursor:pointer;background:none;border:0;padding:0;text-align:left;color:inherit;font:inherit}
.media{aspect-ratio:4/5;background:var(--slot);overflow:hidden;display:grid;place-items:center;position:relative}
.media img,.media video{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s}
.card:hover .media img,.card:hover .media video{transform:scale(1.03)}
.media span{color:var(--mute);font-size:.9rem;padding:20px;text-align:center}
.card h3{font-size:1.55rem;margin:16px 0 2px}
.card small{color:var(--mute);font-size:.9rem}
.dark{background:var(--deep);color:var(--deepink)}
.dark .head p,.dark .list p{color:inherit;opacity:.75}
.list{display:grid;grid-template-columns:repeat(2,1fr);gap:0 clamp(28px,6vw,90px)}
.list div{border-top:1px solid color-mix(in srgb,var(--deepink) 22%,transparent);padding:26px 0 30px}
.list h3{font-size:1.65rem;margin-bottom:8px}
.list p{margin:0;font-size:.98rem}
.about{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,6vw,90px);align-items:center}
.about .media{aspect-ratio:3/4}
.about p{color:var(--mute);max-width:56ch}
.rev{background:var(--slot)}
.rgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:clamp(28px,4vw,56px)}
.rgrid blockquote{margin:0;border-top:1px solid var(--brass);padding-top:24px}
.rgrid q{display:block;quotes:none;font:300 1.5rem/1.35 "Cormorant Garamond",Georgia,serif;margin-bottom:18px}
.rgrid cite{font-style:normal;color:var(--mute);font-size:.92rem}
.rev .btn{margin-top:48px;color:var(--ink)}
.rev .btn:hover{background:var(--ink);color:var(--bg)}
.contact{text-align:center}
.contact .ig2{display:block;margin-top:22px;color:var(--mute)}
.contact h2{font-size:clamp(2.2rem,5.4vw,4.2rem);max-width:16ch;margin:0 auto 24px}
.contact p{color:var(--mute);margin:0 auto 36px;max-width:44ch}
.contact .btn{color:var(--ink)}
.contact .btn:hover{background:var(--ink);color:var(--bg)}
footer{border-top:1px solid var(--line);padding:28px 0;color:var(--mute);font-size:.88rem}
footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
dialog{border:0;padding:0;background:transparent;max-width:min(94vw,1000px);width:100%;color:#fff}
dialog::backdrop{background:rgba(10,14,12,.86)}
dialog .box{display:grid;gap:14px}
dialog img,dialog video{max-height:78vh;max-width:100%;margin:0 auto;display:block}
dialog .cap{text-align:center}
dialog .cap h3{font-size:1.8rem}
dialog button{justify-self:end;background:none;border:1px solid #fff;color:#fff;padding:6px 16px;cursor:pointer;font:inherit}
@media (max-width:820px){.intro,.about,.list{grid-template-columns:1fr}.pillars{grid-template-columns:1fr}.plan{width:130vw;right:-40%}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

[hidden]{display:none!important}
.skip-link{position:fixed;top:12px;left:12px;z-index:10;background:var(--bg);padding:12px 20px;transform:translateY(-200%)}
.skip-link:focus{transform:translateY(0)}
.preview-note{color:var(--mute);font-size:.95rem}
.media .placeholder{display:flex;flex-direction:column;align-items:center;gap:16px}
.placeholder svg{width:72px;height:72px;color:var(--brass);opacity:.65}
.placeholder span{padding:0}
.dialog-placeholder{min-height:45vh;display:grid;place-items:center;border:1px solid var(--brass);color:var(--deepink)}
dialog{max-height:92dvh;overflow:auto;padding:20px;background:var(--deep)}
dialog .cap small{opacity:.8}
@media(max-width:380px){header .wrap{gap:12px}nav{gap:10px}.brand{font-size:1rem}}
.actions{display:flex;gap:14px;flex-wrap:wrap;justify-content:inherit}
.hero .btn-primary{background:var(--deepink);color:var(--deep);border-color:var(--deepink)}
.hero .btn-primary:hover{background:var(--brass);border-color:var(--brass);color:var(--deepink)}
.section-action{margin-top:36px}
.process{margin-top:0}.step{display:block;font-size:.8rem;letter-spacing:.14em;color:var(--brass);margin-bottom:16px}
.faq{max-width:780px;margin-top:64px}.faq>h3{font-size:1.8rem;margin-bottom:24px}
.faq details{border-top:1px solid var(--line);padding:20px 0}.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;font-weight:400}.faq p{color:var(--mute);margin-bottom:0}
#next{background:var(--slot)}
.enquiry-form{max-width:780px;margin:0 auto;text-align:left}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.full{grid-column:1/-1}
.enquiry-form label{display:block;font-size:.92rem;font-weight:400}.optional{color:var(--mute);font-size:.8rem;font-weight:300}
.enquiry-form input,.enquiry-form select,.enquiry-form textarea{display:block;width:100%;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);padding:12px 0;font:inherit;font-weight:300;min-height:48px}
.enquiry-form textarea{resize:vertical}.enquiry-form input:focus,.enquiry-form select:focus,.enquiry-form textarea:focus{border-bottom-color:var(--ink)}
.form-note{font-size:.85rem;color:var(--mute);margin:20px 0}.btn-submit{font:inherit;background:var(--ink);color:var(--bg);cursor:pointer;margin-top:20px}.btn-submit:hover{background:var(--deep)}
.btn-submit:disabled{opacity:.55;cursor:wait}.form-status{font-size:.95rem;min-height:1.7em}.form-status.error{color:#ba1a1a}
.honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.contact-alternatives{margin-top:48px}.contact-alternatives .actions{justify-content:center}
@media(max-width:640px){.form-grid{grid-template-columns:1fr}.actions .btn{padding:12px 20px}.enquiry-form .btn-submit{width:100%}}
.hero .actions{justify-content:flex-start}
@media(max-width:960px){nav a.hide{display:none}}
