:root{
  --ground:#F7F1EA; --surface:#FFFDFA; --line:#E7DCD0;
  --ink:#2A1A22; --ink-2:#5E4B55; --plum:#5B2445; --plum-hover:#471936;
  --honey:#E3A23B; --honey-tint:#F6E3C3; --blush:#F1D9D3;
  --r-md:12px; --r-lg:20px; --r-xl:32px;
  --max:1200px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ground);color:var(--ink);font:400 16px/1.6 Manrope,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--plum)}
h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:700;line-height:1.05;letter-spacing:-.02em;margin:0}
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}
@media(min-width:768px){.wrap{padding:0 40px}}
.eyebrow{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--plum)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 28px;border-radius:999px;border:0;font:600 16px Manrope,sans-serif;cursor:pointer;text-decoration:none;transition:background .15s,transform .15s}
.btn-primary{background:var(--plum);color:#FFF8F0}
.btn-primary:hover{background:var(--plum-hover)}
.btn-ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--ground)}
.btn:active{transform:scale(.98)}
:focus-visible{outline:2px solid var(--plum);outline-offset:3px}

/* Header */
header{position:sticky;top:0;z-index:20;background:rgba(247,241,234,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:68px}
.logo{font-family:Fraunces,serif;font-weight:700;font-size:22px;color:var(--ink);text-decoration:none;letter-spacing:-.02em}
.logo em{font-style:italic;font-weight:500;color:var(--plum)}
.nav-links{display:none;gap:32px}
.nav-links a{color:var(--ink);text-decoration:none;font-weight:500}
.nav-links a:hover{color:var(--plum)}
.nav .btn{min-height:44px;padding:0 20px;font-size:15px}
@media(min-width:900px){.nav-links{display:flex}}

/* Hero */
.hero{padding:48px 0 64px}
.hero-grid{display:grid;gap:40px}
.hero h1{font-size:clamp(48px,11vw,104px)}
.hero h1 em{font-weight:500;color:var(--plum)}
.hero p.lead{font-size:18px;color:var(--ink-2);max-width:32em;margin:20px 0 28px}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px}
.proof{display:flex;align-items:center;gap:12px;margin-top:28px;font-size:14px;color:var(--ink-2)}
.stars{color:var(--honey);letter-spacing:2px;font-size:18px}
.hero-img{position:relative;border-radius:var(--r-xl);overflow:hidden;aspect-ratio:4/5;background:linear-gradient(160deg,var(--blush),var(--honey-tint))}
.hero-img .ph{position:absolute;inset:0;display:grid;place-items:center;color:var(--ink-2);font-size:14px;text-align:center;padding:20px}
.badge{position:absolute;left:16px;bottom:16px;background:var(--surface);border-radius:var(--r-lg);padding:14px 18px;box-shadow:0 10px 30px rgba(42,26,34,.12)}
.badge strong{display:block;font-family:Fraunces,serif;font-size:28px;line-height:1}
.badge span{font-size:13px;color:var(--ink-2)}
@media(min-width:900px){
  .hero{padding:80px 0 96px}
  .hero-grid{grid-template-columns:1.15fr .85fr;align-items:center;gap:64px}
}

/* Strip */
.strip{background:var(--plum);color:#FFF8F0;padding:18px 0;overflow:hidden}
.strip ul{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 32px;list-style:none;margin:0;padding:0;font-weight:600;font-size:14px}
.strip li::before{content:"✦";color:var(--honey);margin-right:10px}

/* Sections */
section{padding:72px 0}
@media(min-width:900px){section{padding:112px 0}}
.sec-head{display:flex;flex-direction:column;gap:12px;margin-bottom:36px}
.sec-head h2{font-size:clamp(36px,6vw,60px)}
.sec-head p{color:var(--ink-2);max-width:36em;margin:0}

/* Services */
.tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;margin:0 -20px 24px;padding-left:20px;padding-right:20px;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
@media(min-width:768px){.tabs{flex-wrap:wrap;margin:0 0 28px;padding:0}}
.tab{flex:none;min-height:44px;padding:0 18px;border-radius:999px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);font:600 14px Manrope,sans-serif;cursor:pointer}
.tab[aria-selected="true"]{background:var(--ink);border-color:var(--ink);color:var(--ground)}
.menu{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.row{display:grid;grid-template-columns:1fr auto;gap:4px 16px;align-items:center;padding:16px 20px;border-top:1px solid var(--line)}
.row:first-child{border-top:0}
.row .name{font-weight:600}
.row .meta{font-size:13px;color:var(--ink-2)}
.row .price{font-family:Fraunces,serif;font-weight:700;font-size:20px;text-align:right}
.row .book{grid-column:2;justify-self:end;min-height:40px;padding:0 16px;font-size:14px}
@media(min-width:768px){
  .row{grid-template-columns:1fr 90px 110px;padding:18px 28px}
  .row .book{grid-column:auto;grid-row:1/span 2;grid-column:3}
  .row .price{grid-row:1/span 2;grid-column:2}
}
.menu-note{font-size:13px;color:var(--ink-2);margin-top:14px}

/* Why */
.why{background:var(--surface)}
.why-grid{display:grid;gap:16px}
@media(min-width:768px){.why-grid{grid-template-columns:repeat(3,1fr);gap:24px}}
.card{background:var(--ground);border-radius:var(--r-lg);padding:28px}
.card .ic{width:48px;height:48px;border-radius:50%;background:var(--honey-tint);display:grid;place-items:center;color:var(--plum);margin-bottom:18px}
.card h3{font-size:24px;margin-bottom:8px}
.card p{margin:0;color:var(--ink-2)}

/* Team */
.team-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
@media(min-width:900px){.team-grid{grid-template-columns:repeat(4,1fr);gap:24px}}
.member .pic{aspect-ratio:4/5;border-radius:var(--r-lg);background:linear-gradient(160deg,var(--honey-tint),var(--blush));display:grid;place-items:center;font-family:Fraunces,serif;font-size:56px;color:var(--plum)}
.member h3{font-size:22px;margin-top:12px}

/* Reviews */
.reviews{background:var(--ink);color:var(--ground)}
.reviews .eyebrow{color:var(--honey)}
.reviews .sec-head p{color:#CDBFC6}
.rev-grid{display:grid;gap:16px}
@media(min-width:900px){.rev-grid{grid-template-columns:repeat(3,1fr);gap:24px}}
.rev{border:1px solid rgba(247,241,234,.18);border-radius:var(--r-lg);padding:28px}
.rev blockquote{margin:12px 0 18px;font-family:Fraunces,serif;font-size:22px;line-height:1.3}
.rev cite{font-style:normal;font-size:14px;color:#CDBFC6}

/* Booking */
.booking-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);padding:28px;display:grid;gap:28px}
@media(min-width:900px){.booking-box{grid-template-columns:1fr 1fr;padding:56px;align-items:center}}
.booking-box h2{font-size:clamp(36px,5vw,56px)}
.booking-box ul{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:10px;color:var(--ink-2)}
.booking-box li::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--honey);margin-right:12px;vertical-align:middle}
.book-panel{background:var(--ground);border-radius:var(--r-lg);padding:28px;text-align:center}
.book-panel .btn{width:100%}
.book-panel small{display:block;margin-top:14px;color:var(--ink-2)}
#booksy-slot{margin-top:16px;min-height:0}

/* Visit */
.visit-grid{display:grid;gap:24px}
@media(min-width:900px){.visit-grid{grid-template-columns:1fr 1.2fr;gap:48px}}
.info dl{margin:0;display:grid;gap:20px}
.info dt{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--plum)}
.info dd{margin:4px 0 0;font-size:18px}
.map{border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);min-height:320px;background:var(--blush)}
.map iframe{width:100%;height:100%;min-height:320px;border:0;display:block}

footer{border-top:1px solid var(--line);padding:32px 0 100px;font-size:14px;color:var(--ink-2)}
footer .wrap{display:flex;flex-wrap:wrap;gap:12px 32px;justify-content:space-between}
@media(min-width:900px){footer{padding-bottom:32px}}

/* Mobile sticky book bar */
.mbar{position:fixed;left:12px;right:12px;bottom:12px;z-index:30;display:flex}
.mbar .btn{flex:1;box-shadow:0 10px 30px rgba(42,26,34,.25)}
@media(min-width:900px){.mbar{display:none}}

/* Nav active + training */
.nav-links a[aria-current="page"]{color:var(--plum);font-weight:700}
.courses{display:grid;gap:16px}
@media(min-width:768px){.courses{grid-template-columns:repeat(2,1fr);gap:24px}}
.course{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:28px;display:flex;flex-direction:column;gap:10px}
.course h3{font-size:26px}
.course .tag{align-self:flex-start;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;background:var(--honey-tint);color:var(--plum);padding:4px 10px;border-radius:999px}
.course ul{margin:4px 0 0;padding-left:18px;color:var(--ink-2)}
.course .foot{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:14px;border-top:1px solid var(--line)}
.course .price{font-family:Fraunces,serif;font-weight:700;font-size:22px}
.form{display:grid;gap:14px}
.form label{display:grid;gap:6px;font-weight:600;font-size:14px}
.form input,.form select,.form textarea{font:400 16px Manrope,sans-serif;padding:12px 14px;border:1.5px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:var(--ink)}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--plum)}
.teaser{background:var(--blush)}
.teaser .booking-box{background:var(--surface)}
.member .pic{overflow:hidden}
.member .pic img{width:100%;height:100%;object-fit:cover}
.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.gallery img{width:100%;height:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--r-lg)}
.gallery .g-wide{grid-column:span 2;aspect-ratio:2/1}
@media(min-width:900px){.gallery{grid-template-columns:repeat(4,1fr);gap:20px}}
