
:root{
  --ink:#16130F; --ink-2:#3E3833; --pearl:#FBFAF8; --paper:#F4F1EC;
  --silver:#C9CDD3; --silver-deep:#949BA1; --blush:#EFD3D6; --blush-soft:#F8ECEC;
  --rose:#8A3B4E; --rose-deep:#6E2C3D; --line:rgba(22,19,15,.16);
  --serif:"Cormorant Garamond",Georgia,serif; --sans:"Jost",Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);font-weight:300;color:var(--ink);background:var(--pearl);line-height:1.65;font-size:17px}
img{max-width:100%;display:block}
a{color:var(--rose-deep)}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.08;margin:0 0 .5em}
h1{font-size:clamp(2.5rem,5.4vw,4.3rem)}
h2{font-size:clamp(2rem,3.8vw,3rem)}
h3{font-size:1.45rem}
p{margin:0 0 1em}
.wrap{max-width:1180px;margin:0 auto;padding:0 22px}
.eyebrow{font-size:.78rem;letter-spacing:.34em;text-transform:uppercase;color:var(--rose);font-weight:500;margin:0 0 14px}
.eyebrow::before{content:"";display:inline-block;width:34px;height:1px;background:var(--rose);vertical-align:middle;margin-right:12px}
.lede{font-size:1.14rem;color:var(--ink-2);max-width:56ch}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:13px 30px;border-radius:999px;font-family:var(--sans);font-weight:500;font-size:1rem;letter-spacing:.04em;text-decoration:none;border:1px solid var(--ink);cursor:pointer;transition:transform .18s ease,background .18s ease,color .18s ease}
.btn:active{transform:scale(.97)}
.btn-dark{background:var(--ink);color:var(--pearl)}
.btn-dark:hover{background:var(--rose-deep);border-color:var(--rose-deep)}
.btn-rose{background:var(--rose);border-color:var(--rose);color:#fff}
.btn-rose:hover{background:var(--rose-deep);border-color:var(--rose-deep)}
.btn-ghost{background:transparent;color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--pearl)}
.btn-light{background:var(--pearl);color:var(--ink);border-color:var(--pearl)}
.btn-light:hover{background:var(--blush);border-color:var(--blush)}
:focus-visible{outline:3px solid var(--rose);outline-offset:3px;border-radius:4px}
/* skip link: fully off-canvas until focused */
.skip{position:fixed;top:0;left:16px;z-index:900;background:var(--ink);color:var(--pearl);padding:12px 22px;border-radius:0 0 12px 12px;transform:translateY(-400%);text-decoration:none;font-weight:500}
.skip:focus{transform:translateY(0);color:var(--pearl)}
/* preview banner */
.pv-banner{background:var(--ink);color:var(--pearl);text-align:center;font-size:.82rem;letter-spacing:.06em;padding:9px 16px;position:relative;z-index:40}
/* header */
header.site{position:sticky;top:0;z-index:300;background:var(--pearl);border-bottom:1px solid var(--line)}
.hd-in{display:flex;align-items:center;gap:18px;max-width:1180px;margin:0 auto;padding:10px 22px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--ink);min-width:0}
.brand img{height:52px;width:auto}
.brand-name{display:block;font-family:var(--serif);font-size:1.52rem;font-weight:700;line-height:1;white-space:nowrap}
.brand-city{display:block;font-size:.68rem;letter-spacing:.32em;text-transform:uppercase;color:var(--rose);font-weight:500;margin-top:4px;white-space:nowrap}
.hd-call{margin-left:auto}
.menu-btn{margin-left:6px;background:var(--ink);color:var(--pearl);border:1px solid var(--ink);border-radius:999px;min-height:48px;padding:10px 24px;font-family:var(--sans);font-size:1rem;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:9px}
.menu-btn .bars{display:inline-block;width:16px;height:2px;background:currentColor;position:relative}
.menu-btn .bars::before,.menu-btn .bars::after{content:"";position:absolute;left:0;width:16px;height:2px;background:currentColor}
.menu-btn .bars::before{top:-5px}.menu-btn .bars::after{top:5px}
.menu-panel{position:absolute;top:100%;left:0;right:0;background:var(--pearl);border-bottom:1px solid var(--line);box-shadow:0 30px 40px -30px rgba(22,19,15,.35)}
.menu-panel[hidden]{display:none}
.menu-panel nav{max-width:1180px;margin:0 auto;padding:14px 22px 22px;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:2px 26px}
.menu-panel a{color:var(--ink);text-decoration:none;font-size:1.06rem;padding:9px 4px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}
.menu-panel a:hover,.menu-panel a[aria-current]{color:var(--rose-deep);font-weight:500}
.menu-panel a span.arr{color:var(--silver-deep)}
/* watermark */
.wm{position:fixed;inset:0;z-index:600;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='520' height='520'%3E%3Ctext x='40' y='300' font-family='Georgia,serif' font-size='64' letter-spacing='10' fill='%236E675F' fill-opacity='0.16' transform='rotate(-32 260 260)'%3EPREVIEW%3C/text%3E%3C/svg%3E");background-size:520px 520px}
/* hero */
.hero{position:relative;overflow:hidden;background:linear-gradient(160deg,var(--pearl) 55%,var(--blush-soft) 130%)}
.hero::after{content:"";position:absolute;right:-70px;top:26px;width:340px;height:340px;background-image:radial-gradient(circle,rgba(138,59,78,.35) 1.6px,transparent 1.7px);background-size:22px 22px;border-radius:50%;-webkit-mask-image:radial-gradient(circle,#000 30%,transparent 68%);mask-image:radial-gradient(circle,#000 30%,transparent 68%);pointer-events:none}
.hero-in{display:grid;grid-template-columns:1.06fr .94fr;gap:54px;align-items:center;padding:64px 0 76px;position:relative;z-index:1}
.hero-copy .spark{width:30px;height:30px;margin-bottom:8px}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin:26px 0 20px}
.trust{display:flex;gap:10px 26px;flex-wrap:wrap;font-size:.94rem;color:var(--ink-2);border-top:1px solid var(--line);padding-top:18px}
.trust b{font-weight:500;color:var(--ink)}
.hero-photo{position:relative}
.hero-photo::before{content:"";position:absolute;inset:0;transform:translate(20px,20px);border:1px solid var(--silver-deep);border-radius:200px 200px 14px 14px;z-index:0}
.hero-photo img{position:relative;z-index:1;width:100%;height:auto;border-radius:200px 200px 14px 14px;object-fit:cover;aspect-ratio:2/3}
.hero-photo figcaption{position:relative;z-index:1;margin-top:30px;font-size:.9rem;color:var(--ink-2);letter-spacing:.05em}
/* sections */
section{padding:76px 0}
.band-ink{background:var(--ink);color:var(--pearl)}
.band-ink h2,.band-ink h3{color:var(--pearl)}
.band-ink .eyebrow{color:var(--blush)}
.band-ink .eyebrow::before{background:var(--blush)}
.band-blush{background:linear-gradient(180deg,var(--blush-soft),var(--pearl))}
.band-paper{background:var(--paper)}
.sec-head{max-width:720px;margin-bottom:38px}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
.sec-head.center .eyebrow::before{display:none}
/* booking form band */
.book-band{padding:0 0 84px;margin-top:-6px}
.book-card{background:var(--pearl);color:var(--ink);border-radius:20px;box-shadow:0 34px 60px -30px rgba(22,19,15,.45);padding:38px 40px;display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;border:1px solid var(--line)}
.book-card h2{font-size:2rem;color:var(--ink)}
.book-card .eyebrow{color:var(--rose)}
.book-card .eyebrow::before{background:var(--rose)}
form.lead{display:grid;grid-template-columns:1fr 1fr;gap:16px}
form.lead .full{grid-column:1/-1}
label{font-size:.86rem;font-weight:500;letter-spacing:.05em;display:block;margin-bottom:6px}
label .opt{color:var(--silver-deep);font-weight:300}
input,select,textarea{width:100%;font-family:var(--sans);font-size:1rem;font-weight:300;padding:13px 15px;border:1px solid var(--silver-deep);border-radius:10px;background:#fff;color:var(--ink)}
input:focus,select:focus,textarea:focus{border-color:var(--rose);outline:3px solid rgba(138,59,78,.25);outline-offset:1px}
.form-note{font-size:.88rem;color:var(--ink-2);margin-top:12px}
.book-side p{color:var(--ink-2)}
.sig-list{list-style:none;margin:22px 0 0;padding:0}
.sig-list li{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-top:1px solid var(--line);font-size:1rem}
.sig-list b{font-family:var(--serif);font-size:1.12rem;font-weight:600}
.sig-list .pr{color:var(--rose-deep);font-weight:500;white-space:nowrap}
/* service summary rows */
.svc-rows{border-top:1px solid var(--line)}
.svc-row{display:grid;grid-template-columns:64px 1fr auto;gap:20px;align-items:baseline;padding:24px 6px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.svc-row:hover{background:var(--blush-soft)}
.svc-row .num{font-family:var(--serif);font-style:italic;color:var(--rose);font-size:1.3rem}
.svc-row h3{margin:0 0 4px}
.svc-row p{margin:0;color:var(--ink-2);font-size:.98rem;max-width:62ch}
.svc-row .from{font-weight:500;color:var(--rose-deep);white-space:nowrap}
/* cards */
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.card-grid.two{grid-template-columns:repeat(2,1fr)}
.card{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;text-decoration:none;color:var(--ink);display:flex;flex-direction:column}
.card img{width:100%;object-fit:cover}
.card .pad{padding:24px 26px 28px}
.card h3{margin-bottom:6px}
.card p{color:var(--ink-2);font-size:.98rem}
.card .price{font-family:var(--serif);font-size:1.5rem;color:var(--rose-deep)}
.card .go{margin-top:auto;padding:0 26px 24px;font-weight:500;color:var(--rose-deep)}
/* signature duo */
.duo{display:grid;grid-template-columns:1fr 1fr;gap:0;border-radius:20px;overflow:hidden}
.duo>div{padding:44px 42px}
.duo .a{background:linear-gradient(150deg,#241d18,var(--ink))}
.duo .b{background:linear-gradient(150deg,var(--rose-deep),var(--rose))}
.duo .price{font-family:var(--serif);font-size:2.6rem;line-height:1}
.duo p{color:rgba(251,250,248,.85)}
/* menu tables */
.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 54px}
.menu-cat{break-inside:avoid;padding:22px 0 8px}
.menu-cat h3{border-bottom:1px solid var(--rose);padding-bottom:8px;margin-bottom:6px}
.mi{display:flex;justify-content:space-between;gap:18px;padding:8px 0;border-bottom:1px dotted var(--silver)}
.mi .nm{font-weight:400}
.mi .nm small{display:block;color:var(--ink-2);font-weight:300;font-size:.86rem}
.mi .pr{font-weight:500;color:var(--rose-deep);white-space:nowrap}
/* steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;counter-reset:step}
.step{border-top:2px solid var(--rose);padding-top:18px}
.step .n{font-family:var(--serif);font-style:italic;font-size:1.6rem;color:var(--rose)}
.step h3{margin:6px 0}
/* reviews */
.rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.rev{background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px}
.rev .stars{color:var(--rose);letter-spacing:4px;font-size:1.05rem}
.rev blockquote{margin:12px 0;font-size:1.02rem;line-height:1.6}
.rev figcaption{font-size:.9rem;color:var(--ink-2)}
.rev figcaption b{color:var(--ink);font-weight:500}
/* gallery */
.gal{columns:3;column-gap:22px}
.gal figure{margin:0 0 22px;break-inside:avoid;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:#fff}
.gal img{width:100%;height:auto}
.gal figcaption{padding:12px 16px;font-size:.9rem;color:var(--ink-2)}
/* faq */
.faq{max-width:820px}
details{border-bottom:1px solid var(--line);padding:6px 0}
summary{cursor:pointer;font-family:var(--serif);font-size:1.28rem;font-weight:600;padding:14px 34px 14px 2px;position:relative;list-style:none}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:6px;top:10px;font-size:1.5rem;color:var(--rose)}
details[open ] summary::after{content:"–"}
details .ans{padding:0 2px 18px;color:var(--ink-2);max-width:68ch}
/* page head */
.page-head{padding:64px 0 8px}
.page-head .lede{margin-bottom:8px}
.answer{font-size:1.22rem;max-width:60ch;color:var(--ink)}
.fact-block{display:flex;gap:12px 34px;flex-wrap:wrap;margin:26px 0 4px;font-size:.98rem}
.fact-block div b{display:block;font-size:.76rem;letter-spacing:.26em;text-transform:uppercase;color:var(--rose);font-weight:500;margin-bottom:3px}
/* visit */
.visit{display:grid;grid-template-columns:1fr 1.1fr;gap:44px;align-items:start}
.map-frame{border-radius:16px;overflow:hidden;border:1px solid var(--line);min-height:340px}
.map-frame iframe{width:100%;height:100%;min-height:340px;border:0;display:block}
table.hours{border-collapse:collapse;width:100%;max-width:420px}
table.hours td{padding:7px 0;border-bottom:1px dotted var(--silver);font-size:.99rem}
table.hours td:last-child{text-align:right;font-weight:400}
/* footer */
footer.site{background:var(--ink);color:var(--pearl);padding:64px 0 110px;margin-top:0}
.ft{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:36px}
footer.site a{color:var(--blush);text-decoration:none}
footer.site a:hover{text-decoration:underline}
footer.site h3{color:var(--pearl);font-size:1.15rem;margin-bottom:14px}
footer.site p,footer.site li{font-size:.96rem;color:rgba(251,250,248,.82)}
footer.site ul{list-style:none;margin:0;padding:0}
footer.site li{padding:4px 0}
.ft-logo{height:58px;width:auto;margin-bottom:16px}
.ft-credit{border-top:1px solid rgba(251,250,248,.22);margin-top:42px;padding-top:22px;font-size:.88rem;color:rgba(251,250,248,.7);display:flex;gap:8px 30px;flex-wrap:wrap;justify-content:space-between}
/* sticky bar */
.sticky-bar{display:none}
@media (max-width:900px){
  .hero-in{grid-template-columns:1fr;gap:38px;padding:44px 0 56px}
  .card-grid,.card-grid.two,.rev-grid,.steps,.duo,.visit,.book-card,.menu-grid{grid-template-columns:1fr}
  .ft{grid-template-columns:1fr 1fr}
  form.lead{grid-template-columns:1fr}
  .gal{columns:2}
  section{padding:56px 0}
}
@media (max-width:760px){
  body{padding-bottom:76px}
  .hd-in{padding:10px 12px;gap:6px}
  .brand{gap:8px;flex-shrink:1}
  .brand img{height:30px}
  .brand-name{font-size:1rem}
  .brand-city{font-size:.52rem;letter-spacing:.09em;margin-top:2px}
  .hd-call{flex-shrink:0}
  .hd-call .btn{min-height:44px;padding:8px 13px;font-size:.88rem}
  .menu-btn{flex-shrink:0;min-height:44px;padding:8px 13px;font-size:.88rem;margin-left:2px}
  .sticky-bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:400;background:var(--ink);padding-bottom:env(safe-area-inset-bottom,0px);transition:transform .25s ease}
  .sticky-bar.hide{transform:translateY(110%)}
  .sticky-bar a{flex:1;color:var(--pearl);text-decoration:none;text-align:center;padding:13px 4px 11px;font-size:.94rem;font-weight:500;min-height:52px;display:flex;align-items:center;justify-content:center;border-left:1px solid rgba(251,250,248,.18)}
  .sticky-bar a:first-child{border-left:0}
  .sticky-bar a.book{background:var(--rose)}
}
@media (max-width:430px){ .gal{columns:1} .ft{grid-template-columns:1fr} .brand img{height:24px} .brand-name{font-size:.92rem} }
@media (max-width:374px){ .brand-city{display:none} }
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *{animation:none!important;transition:none!important}
}
