:root{--cream:#F5F1EC;--sand:#EBE7E1;--border:#D6CFC7;--ink:#2B2B2B;--bronze:#755f42;--muted:#444748;--subtle:#888580}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{background:var(--cream);color:var(--ink);font:400 16px/1.6 "Hanken Grotesk",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit}
h1,h2,h3{font-family:"Cormorant Garamond",Georgia,serif;font-weight:400;line-height:1.05;text-wrap:balance}
h1{font-size:clamp(3rem,7vw,5.5rem);font-weight:300}
h2{font-size:clamp(2.25rem,5vw,3.5rem);font-weight:300}
h3{font-size:24px}
h1 em,h2 em{font-style:italic;color:var(--bronze)}
.wrap{max-width:1280px;margin:0 auto;padding:0 20px}
@media(min-width:768px){.wrap{padding:0 40px}}
@media(min-width:1200px){.wrap{padding:0 64px}}

.bar{background:var(--ink);color:var(--cream);text-align:center;font-size:12px;padding:8px 20px;letter-spacing:.04em}
.nav{position:sticky;top:0;z-index:10;background:rgb(245 241 236/.88);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}
.nav-in{display:flex;justify-content:space-between;align-items:center;height:64px}
.logo{font:400 24px "Cormorant Garamond",serif;text-decoration:none}
.links{display:flex;gap:24px}
.links a{text-decoration:none;color:var(--muted)}
.links a:hover{color:var(--bronze)}
@media(max-width:640px){.links a:not(:last-child){display:none}}

.eyebrow{font-weight:600;font-size:12px;letter-spacing:.14em;color:var(--bronze);margin-bottom:20px}
.lede{font-size:20px;color:var(--muted);max-width:520px;margin:24px 0}
.fine{color:var(--subtle);max-width:560px}

.hero{display:grid;gap:40px;padding-top:48px;padding-bottom:64px;align-items:center}
@media(min-width:960px){.hero{grid-template-columns:5fr 7fr;gap:64px;padding-top:80px;padding-bottom:96px}}
.hero-img{position:relative;border-radius:24px;overflow:hidden;aspect-ratio:3/2;background:var(--sand)}
figcaption{position:absolute;left:16px;bottom:16px;font-size:12px;background:rgb(245 241 236/.85);padding:4px 8px;color:var(--muted)}
.ctas{display:flex;flex-wrap:wrap;gap:12px}

.btn{display:inline-block;background:var(--ink);color:var(--cream);padding:16px 28px;font:700 16px "Hanken Grotesk",sans-serif;text-decoration:none;border:1px solid var(--ink);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.btn:hover{background:var(--bronze);border-color:var(--bronze)}
.btn.ghost{background:none;color:var(--ink)}
.btn.ghost:hover{background:var(--sand);border-color:var(--ink)}
.btn:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--bronze);outline-offset:2px}

.promises{list-style:none;display:grid;gap:1px;background:var(--border);border:1px solid var(--border)}
@media(min-width:768px){.promises{grid-template-columns:repeat(3,1fr)}}
.promises li{background:var(--sand);padding:24px;display:grid;gap:4px}
.promises strong{font:400 24px "Cormorant Garamond",serif}
.promises span{color:var(--muted)}

section.wrap{padding-top:64px;padding-bottom:64px}
@media(min-width:960px){section.wrap{padding-top:96px;padding-bottom:96px}}
.head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px;margin-bottom:40px}
.head p{color:var(--muted)}

.grid{display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.card{background:var(--sand);border:1px solid var(--border);display:flex;flex-direction:column}
.photos{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;aspect-ratio:4/5;background:var(--border);scrollbar-width:none}
.photos img{flex:0 0 100%;scroll-snap-align:start}
.photos::-webkit-scrollbar{display:none}
.card .body{padding:20px;display:flex;flex-direction:column;flex:1}
.price{font:600 20px "Hanken Grotesk",sans-serif;margin:8px 0 12px}
.tag{align-self:start;font-size:12px;padding:4px 8px;border:1px solid var(--bronze);color:var(--bronze);margin-bottom:12px}
.card dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;color:var(--muted)}
.card dt{color:var(--subtle)}
.card .note{margin-top:12px;color:var(--muted);font-style:italic}
.card .btn{text-align:center;margin-top:auto}
.card .body>.btn{margin-top:20px}
.count{font-size:12px;color:var(--subtle);margin-top:8px}
.empty{grid-column:1/-1;padding:64px 24px;background:var(--sand);border:1px solid var(--border);text-align:center}
.empty p{margin:12px auto 24px;color:var(--muted);max-width:400px}

.split{display:grid;gap:40px;align-items:center}
@media(min-width:960px){.split{grid-template-columns:1fr 1fr;gap:80px}.flip>figure{order:2}}
.split-img{border-radius:24px;overflow:hidden;aspect-ratio:4/5;background:var(--sand);max-height:720px}
.checklist{list-style:none;border-top:1px solid var(--border);margin:8px 0 24px}
.checklist li{padding:12px 0;border-bottom:1px solid var(--border);display:flex;gap:12px}
.checklist li:before{content:"";flex:0 0 8px;height:8px;margin-top:8px;border-radius:50%;background:var(--bronze)}

.steps{list-style:none;display:grid;gap:1px;background:var(--border);border:1px solid var(--border);counter-reset:s}
@media(min-width:768px){.steps{grid-template-columns:repeat(4,1fr)}}
.steps li{background:var(--cream);padding:32px 24px;counter-increment:s}
.steps li:before{content:"0" counter(s);display:block;font:300 48px/1 "Cormorant Garamond",serif;color:var(--bronze);margin-bottom:24px}
.steps h3{margin-bottom:8px}
.steps p{color:var(--muted)}

form{display:grid;gap:16px;max-width:520px}
label{display:grid;gap:4px;color:var(--muted)}
input,textarea{font:400 16px "Hanken Grotesk",sans-serif;padding:12px;border:1px solid var(--border);background:var(--cream);color:var(--ink);border-radius:0}
form .btn{justify-self:start}

.faq{border-top:1px solid var(--border);max-width:800px}
details{border-bottom:1px solid var(--border)}
summary{cursor:pointer;list-style:none;padding:20px 0;font:400 24px "Cormorant Garamond",serif;display:flex;justify-content:space-between;gap:16px}
summary::-webkit-details-marker{display:none}
summary:after{content:"+";color:var(--bronze);transition:transform .2s}
details[open] summary:after{transform:rotate(45deg)}
details p{padding-bottom:20px;color:var(--muted);max-width:640px}

footer{padding-top:40px;padding-bottom:48px;border-top:1px solid var(--border);display:grid;gap:8px;color:var(--subtle)}

.reveal{opacity:0;transform:translateY(16px);transition:opacity .8s ease,transform .8s ease}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}
