/* Palette follows the logo (black and white) and the printed menu (ivory and gold). */
:root{--bg:#faf8f3;--panel:#fff;--tint:#f2ede2;--ink:#161413;--muted:#6b645c;--gold:#c5a059;--gold-h:#d6b470;--gold-d:#8a6a28;--line:#e7e0d2;--dark:#0d0c0b;--dark-2:#1a1816;--dark-ink:#f7f3ea;--dark-muted:#b9b1a4;
  --serif:"Playfair Display",Georgia,"Times New Roman",serif;--sans:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:400 16.5px/1.65 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit}
img{max-width:100%;display:block}
h1,h2,h3{font-family:var(--serif);font-weight:600;letter-spacing:-.01em}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}

/* draft banner */
.draft{background:var(--gold);color:var(--ink);text-align:center;padding:6px 12px;font:600 .82rem var(--sans)}

/* header */
header{position:sticky;top:0;background:rgba(13,12,11,.96);backdrop-filter:blur(8px);z-index:20;color:var(--dark-ink)}
header .wrap{display:flex;align-items:center;justify-content:space-between;min-height:68px;gap:16px}
.logo{display:flex;align-items:center;gap:12px;font:600 1.15rem var(--serif);text-decoration:none;color:var(--dark-ink);white-space:nowrap}
.logo img{width:46px;height:46px;border-radius:50%}
nav{display:flex;align-items:center;gap:26px}
nav a{text-decoration:none;color:var(--dark-muted);font:500 .92rem var(--sans);letter-spacing:.02em}
nav a:hover,nav a.on{color:#fff}
nav a.on{box-shadow:0 2px 0 var(--gold)}
nav a.btn,nav a.btn:hover{color:var(--ink);padding:9px 20px;box-shadow:none}
.menu-toggle{display:none;background:none;border:1px solid rgba(255,255,255,.3);color:var(--dark-ink);border-radius:6px;padding:8px 12px;font:600 .9rem var(--sans);cursor:pointer}

/* buttons */
.btn{display:inline-block;background:var(--gold);color:var(--ink);padding:13px 28px;border-radius:999px;text-decoration:none;font:600 .98rem var(--sans);letter-spacing:.01em;border:1px solid var(--gold);cursor:pointer;transition:background .15s,color .15s,border-color .15s,transform .15s}
.btn:hover{background:var(--gold-h);border-color:var(--gold-h);transform:translateY(-1px)}
.btn.ghost{background:transparent;border-color:var(--ink);color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--bg)}
.on-dark .btn.ghost{border-color:rgba(247,243,234,.6);color:var(--dark-ink)}
.on-dark .btn.ghost:hover{background:var(--dark-ink);border-color:var(--dark-ink);color:var(--dark)}

/* hero */
.eyebrow{display:inline-block;color:var(--gold-d);letter-spacing:.22em;text-transform:uppercase;font:600 .76rem var(--sans)}
.on-dark .eyebrow{color:var(--gold)}
.hero{padding:96px 0 104px;text-align:center;background:radial-gradient(ellipse 80% 60% at 50% 0,#2a2318 0,var(--dark) 70%);background-size:cover;background-position:center;color:var(--dark-ink)}
.hero h1{font-size:clamp(2.2rem,5.6vw,3.9rem);line-height:1.12;margin:16px auto;max-width:880px}
.hero p{max-width:600px;margin:0 auto 32px;color:var(--dark-muted);font-size:1.12rem}
.hero .btn{margin:6px}
.hero-logo{width:150px;height:150px;border-radius:50%;margin:0 auto 26px}
.page-head{padding:72px 0 64px;text-align:center;background:radial-gradient(ellipse 80% 80% at 50% 0,#2a2318 0,var(--dark) 75%);color:var(--dark-ink)}
.page-head .eyebrow{color:var(--gold)}
.page-head h1{font-size:clamp(2rem,5vw,3rem);margin:12px 0 8px;line-height:1.15}
.page-head p{color:var(--dark-muted);max-width:640px;margin:0 auto}
.page-head .btn.ghost{border-color:rgba(247,243,234,.6);color:var(--dark-ink)}
.page-head .btn.ghost:hover{background:var(--dark-ink);color:var(--dark)}

/* sections */
section{padding:76px 0}
h2{font-size:clamp(1.7rem,3.4vw,2.2rem);line-height:1.2;margin:10px 0 10px}
.sub{color:var(--muted);margin:0 0 36px;max-width:640px}
.center{text-align:center}
.center .sub{margin-left:auto;margin-right:auto}
.alt{background:var(--tint)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:20px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:28px 26px;box-shadow:0 1px 2px rgba(22,20,19,.04),0 8px 24px -16px rgba(22,20,19,.18)}
.card h3{margin:0 0 8px;font-size:1.18rem}
.card h3::after{content:"";display:block;width:28px;height:2px;background:var(--gold);margin-top:10px}
.card p{margin:0;color:var(--muted);font-size:.96rem}
.more{margin-top:32px}
.narrow{max-width:780px}

/* steps */
.steps{counter-reset:s}
.steps .card{position:relative;padding-top:68px}
.steps .card::before{counter-increment:s;content:counter(s);position:absolute;top:24px;left:26px;width:32px;height:32px;border-radius:50%;background:var(--ink);color:var(--gold);display:grid;place-items:center;font:600 .95rem var(--serif)}

/* menu */
.menu-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;align-items:start}
.menu-cols .card{padding:34px 32px}
.menu-cols h2{margin-top:0;text-transform:uppercase;letter-spacing:.12em;font-size:1.2rem;color:var(--gold-d)}
.menu-list{list-style:none;margin:0;padding:0}
.menu-list li{padding:13px 0;border-bottom:1px solid var(--line);font:italic 400 1.12rem var(--serif)}
.menu-list li:last-child{border-bottom:0;padding-bottom:0}
.note{color:var(--muted);font-size:.9rem;margin:0 0 8px}
.ticks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px 24px}
.ticks li{padding-left:28px;position:relative}
.ticks li::before{content:"✓";position:absolute;left:0;color:var(--gold-d);font-weight:700}

/* instagram embeds */
.ig{display:grid;grid-template-columns:repeat(auto-fill,minmax(326px,1fr));gap:16px;align-items:start}
.ig .instagram-media{margin:0 auto!important;min-width:0!important;width:100%!important;max-width:400px!important}
.ig blockquote.instagram-media{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:40px 16px;text-align:center;font:600 .9rem var(--sans);color:var(--gold-d)}
.ig+.gallery{margin-top:16px}

/* gallery */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.gallery figure{margin:0;position:relative;aspect-ratio:4/3;border-radius:12px;overflow:hidden;background:var(--tint);border:1px solid var(--line);cursor:pointer}
.gallery img{width:100%;height:100%;object-fit:cover}
.gallery figcaption{position:absolute;inset:auto 0 0 0;padding:22px 12px 8px;background:linear-gradient(transparent,rgba(0,0,0,.7));color:#fff;font:600 .85rem var(--sans)}
.gallery .ph{position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:var(--muted);font:.8rem var(--sans);padding:12px}
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.92);display:none;place-items:center;z-index:50;padding:20px}
.lightbox.open{display:grid}
.lightbox img{max-height:88vh;border-radius:6px}

/* reviews */
.review{margin:0}
.review .stars{color:var(--gold);letter-spacing:3px}
.review p{color:var(--ink);margin:10px 0 16px;font:italic 400 1.05rem/1.6 var(--serif)}
.review footer{font:.88rem var(--sans);color:var(--muted)}
.review footer b{color:var(--ink);display:block}

/* forms */
form.f{display:grid;gap:18px;grid-template-columns:1fr 1fr}
form.f .full{grid-column:1/-1}
.form-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:32px;box-shadow:0 1px 2px rgba(22,20,19,.04),0 16px 40px -24px rgba(22,20,19,.25)}
#inquiry{scroll-margin-top:92px}
label,legend{display:block;font:600 .84rem var(--sans);color:var(--ink);margin-bottom:7px;padding:0}
.opt{font-weight:400;color:var(--muted)}
input,select,textarea{width:100%;padding:12px 14px;background:var(--bg);color:var(--ink);border:1px solid #d9d0be;border-radius:10px;font:1rem var(--sans)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:var(--gold)}
.hp{position:absolute;left:-9999px}
fieldset{border:0;margin:0;padding:0;min-width:0}
.chipset{display:flex;flex-wrap:wrap;gap:8px}
label.chip{margin:0;cursor:pointer;position:relative}
.chip input{position:absolute;opacity:0;width:100%;height:100%;inset:0;margin:0;cursor:pointer}
.chip span{display:block;padding:10px 17px;border:1px solid #d9d0be;border-radius:999px;background:var(--bg);color:var(--ink);font:500 .92rem var(--sans);transition:background .12s,color .12s,border-color .12s}
.chip:hover span{border-color:var(--ink)}
.chip input:checked+span{background:var(--ink);border-color:var(--ink);color:var(--gold-h)}
.chip input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
label.check{display:flex;align-items:center;gap:8px;margin:10px 0 0;font-weight:500;color:var(--muted);cursor:pointer}
label.check input{width:auto;accent-color:var(--ink)}
.hint{font:.86rem var(--sans);color:var(--muted);margin:6px 0 0}
.submit-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.submit-row .hint{margin:0}
.contact-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:16px}

/* faq */
details{border-bottom:1px solid var(--line);padding:18px 0}
summary{cursor:pointer;font:600 1.08rem var(--serif)}
summary::marker{color:var(--gold-d)}
details p{color:var(--muted);margin:10px 0 0}

/* cta + footer */
.cta{text-align:center;background:var(--dark-2);color:var(--dark-ink)}
.cta .sub{color:var(--dark-muted);margin:0 auto 28px}
footer.site{background:var(--dark);padding:52px 0 44px;color:var(--dark-muted);font:.9rem var(--sans)}
footer.site .cols{display:flex;justify-content:space-between;gap:32px;flex-wrap:wrap}
footer.site b{color:var(--dark-ink);display:block;margin-bottom:8px;font:600 1rem var(--serif)}
footer.site a{display:block;text-decoration:none;margin:4px 0}
footer.site a:hover{color:var(--gold)}
footer.site .fine{margin-top:32px;padding-top:20px;border-top:1px solid rgba(255,255,255,.1);font-size:.8rem}
.flogo{width:76px;height:76px;border-radius:50%;margin-bottom:14px}

/* sticky action bar (phones only) */
.sticky{display:none}

@media(max-width:820px){
  section{padding:56px 0}
  .menu-toggle{display:block}
  nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--dark);border-top:1px solid rgba(255,255,255,.1);flex-direction:column;align-items:stretch;padding:12px 20px 18px;gap:4px}
  nav.open{display:flex}
  nav a{padding:10px 0}
  nav a.on{box-shadow:none;color:var(--gold)}
  nav a.btn{text-align:center;margin-top:8px}
  .logo{font-size:1rem}
  form.f{grid-template-columns:1fr}
  .form-card{padding:22px 18px}
  .menu-cols .card{padding:26px 22px}
  .hero{padding:64px 0 72px}
  .hero-logo{width:128px;height:128px}
  .page-head{padding:52px 0 46px}
  .sticky{display:flex;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:30;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(13,12,11,.96);box-shadow:0 -4px 16px rgba(0,0,0,.2)}
  .sticky .btn{flex:1;text-align:center;padding:12px 8px;font-size:.93rem;white-space:nowrap}
  .sticky .btn.ghost{border-color:rgba(247,243,234,.5);color:var(--dark-ink)}
  body.has-sticky{padding-bottom:72px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn{transition:none}.btn:hover{transform:none}}

/* single-page sections */
section[id]{scroll-margin-top:68px}
.menu-cols h3{margin:0 0 10px;text-transform:uppercase;letter-spacing:.12em;font-size:1.15rem;color:var(--gold-d)}
.menu-cols h3::after{display:none}
.review::before{content:"“";display:block;font:600 3rem/0.6 var(--serif);color:var(--gold);margin-bottom:6px}
.review p{margin-top:0}

/* inquiry band: dark, so it stands apart from the sections around it */
.cta .form-card{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.14);box-shadow:none;color:var(--dark-ink)}
.cta .hint{color:var(--dark-muted)}

/* reviews: fixed columns so rows are always full */
[data-render="reviews"]{grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){[data-render="reviews"]{grid-template-columns:1fr}}
