:root{
  --green:#17392f;--green-2:#254b3f;--cream:#f3efe6;--paper:#faf8f3;--gold:#b4985a;
  --ink:#1f2a26;--muted:#737871;--line:rgba(31,42,38,.16);
  --serif:"Fraunces",Georgia,serif;--sans:"Manrope",Arial,sans-serif
}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--paper);line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button,input,textarea,select{font:inherit}
.skip-link{position:fixed;left:10px;top:-60px;background:#fff;padding:10px 14px;z-index:999}.skip-link:focus{top:10px}
.site-header{height:92px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;position:sticky;top:0;z-index:50;background:rgba(23,57,47,.96);backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.08);color:#f7f3ea}
.brand{display:flex;flex-direction:column;line-height:.9}.brand-mark{font-family:var(--serif);font-weight:600;font-size:34px;letter-spacing:.08em}.brand-sub{font-size:9px;letter-spacing:.36em;margin-top:6px;margin-left:2px}
.nav{display:flex;gap:28px;align-items:center;font-size:13px}.nav a{opacity:.78;transition:.2s}.nav a:hover{opacity:1}.nav-cta{border-bottom:1px solid var(--gold);padding-bottom:3px}
.menu-toggle{display:none;background:none;border:0;padding:8px}.menu-toggle span{display:block;width:26px;height:1px;background:var(--ink);margin:6px 0}

.hero{min-height:calc(100vh - 92px);display:grid;grid-template-columns:1.03fr .97fr;align-items:stretch}
.hero-copy{padding:11vh 8vw 8vh;display:flex;flex-direction:column;justify-content:center;background:#eef2ed}
.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:11px;font-weight:600;color:var(--gold);margin:0 0 22px}.eyebrow.light{color:#d1bb83}
.hero h1,.section-head h2,.dark-copy h2,.about-copy h2,.contact h2,.instagram h2{font-family:var(--serif);font-weight:500;letter-spacing:-.035em;margin:0}
.hero h1{font-size:clamp(68px,8vw,128px);line-height:.82}.lead{max-width:570px;font-size:18px;color:#555f59;margin:36px 0 32px}
.hero-actions{display:flex;align-items:center;gap:28px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 24px;font-size:13px;font-weight:600;letter-spacing:.02em;border:0;cursor:pointer}.btn-primary{background:var(--green);color:white}.btn-primary:hover{background:var(--green-2)}.btn-link{padding:0;border-bottom:1px solid var(--ink)}.btn-link span{margin-left:10px}.btn-light{background:var(--cream);color:var(--green)}
.hero-visual{min-height:650px;background:var(--green);position:relative;overflow:hidden}.hero-visual img{width:100%;height:100%;object-fit:cover}.hero-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(23,57,47,.05),rgba(23,57,47,.24))}
.seal{position:absolute;right:8%;bottom:8%;width:108px;height:108px;border-radius:100%;background:var(--cream);color:var(--green);display:flex;align-items:center;justify-content:center;flex-direction:column;font-family:var(--serif);font-size:20px;letter-spacing:.12em;text-align:center;z-index:2;box-shadow:0 20px 50px rgba(0,0,0,.12)}.seal small{font-family:var(--sans);font-size:8px;letter-spacing:.18em;margin-top:4px}

.manifesto{padding:90px 7vw;display:grid;grid-template-columns:1fr minmax(300px,850px) 1fr;gap:36px;align-items:center;background:var(--green);color:#f7f3ea}.manifesto-line{height:1px;background:rgba(255,255,255,.22)}.manifesto p{font-family:var(--serif);font-size:clamp(30px,4vw,54px);line-height:1.08;text-align:center;margin:0}
.offer,.events,.locations,.instagram{padding:100px 6vw}.offer{background:#f4f6f2}.section-head{max-width:800px;margin-bottom:54px}.section-head h2,.instagram h2{font-size:clamp(46px,5vw,76px);line-height:.95}
.offer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.offer-card{display:grid;grid-template-columns:1.05fr .95fr;min-height:410px;background:#fff;border:1px solid rgba(23,57,47,.12);box-shadow:0 12px 40px rgba(23,57,47,.05)}
.card-image{position:relative;overflow:hidden;background:#ddd}.card-image img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}.offer-card:hover .card-image img{transform:scale(1.035)}.card-image:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(0,0,0,.1))}.card-image span{position:absolute;z-index:2;top:20px;left:20px;color:white;font-size:11px;letter-spacing:.18em}
.card-copy{padding:42px 36px;display:flex;flex-direction:column}.card-copy h3,.event-item h3,.location-grid h3{font-family:var(--serif);font-size:34px;font-weight:500;margin:0 0 16px}.card-copy p{color:var(--muted);font-size:14px;margin:0}.card-copy a{margin-top:auto;font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--green)}

.dark-section{display:grid;grid-template-columns:1fr 1fr;min-height:760px;background:var(--green);color:white}.dark-copy{padding:90px 8vw;display:flex;flex-direction:column;justify-content:center}.dark-copy h2{font-size:clamp(48px,5.5vw,82px);line-height:.95;max-width:720px}.dark-copy>p:not(.eyebrow){color:rgba(255,255,255,.68);max-width:600px;margin:28px 0 22px}.flavour-intro{font-size:12px;color:rgba(255,255,255,.58);margin:0 0 16px}
.flavour-accordion{border-top:1px solid rgba(255,255,255,.18);margin:0 0 30px}
.flavour-accordion details{border-bottom:1px solid rgba(255,255,255,.13)}
.flavour-accordion summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:8px;padding:14px 0}
.flavour-accordion summary::-webkit-details-marker{display:none}
.flavour-accordion summary span{font-size:10px;letter-spacing:.14em;color:#d1bb83}
.flavour-accordion summary strong{font-size:13px;font-weight:500;color:rgba(255,255,255,.92)}
.flavour-accordion summary:after{content:"＋";font-size:16px;color:rgba(255,255,255,.5)}
.flavour-accordion details[open] summary:after{content:"−"}
.flavour-accordion ul{margin:0 0 14px 42px;padding:0 0 0 18px;color:rgba(255,255,255,.64);font-size:12px}
.flavour-accordion li{margin:5px 0}
.image-panel{position:relative;overflow:hidden;background:#0f2922;border:0;padding:0;cursor:zoom-in}.image-panel img{width:100%;height:100%;object-fit:cover}

.events{background:#214438;color:#f7f3ea}.events .eyebrow{color:#d0af62}.events .section-head h2{color:#f7f3ea}.event-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.18)}.event-item{padding:36px 28px 24px 0;border-right:1px solid rgba(255,255,255,.16)}.event-item:not(:first-child){padding-left:28px}.event-item:last-child{border-right:0}.event-item>span,.loc-no{font-size:10px;letter-spacing:.18em;color:var(--gold)}.event-item p{color:rgba(255,255,255,.68);max-width:360px}
.about{display:grid;grid-template-columns:1fr 1fr;min-height:720px;background:var(--cream)}.about-visual{position:relative;overflow:hidden;min-height:720px;background:#e8e1d2}.about-visual img{width:100%;height:100%;object-fit:cover;object-position:center top}.about-copy{padding:8vw;display:flex;justify-content:center;flex-direction:column}.about-copy h2{font-size:clamp(50px,5vw,78px);line-height:.95}.about-copy p:not(.eyebrow){color:#5f665f;max-width:600px;font-size:16px}.text-link{font-size:12px;text-transform:uppercase;letter-spacing:.12em;margin-top:16px}

.location-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.location-grid article{padding:42px;border:1px solid rgba(255,255,255,.08);background:var(--green);color:#f7f3ea}.location-grid h3{font-size:44px}.location-grid p{margin:6px 0}.hours-grid{display:grid;grid-template-columns:1fr auto;gap:9px 20px;margin-top:24px;padding-top:18px;border-top:1px solid rgba(255,255,255,.16);font-size:13px}.hours-grid span{color:rgba(255,255,255,.55)}.hours-grid strong{font-weight:500}.location-actions{display:flex;justify-content:space-between;gap:20px;margin-top:28px;padding-top:18px;border-top:1px solid rgba(255,255,255,.16)}.location-actions a{font-size:11px;text-transform:uppercase;letter-spacing:.1em}

.instagram{background:#e8eee9}.insta-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:32px}.insta-head a{font-size:12px;text-transform:uppercase;letter-spacing:.14em}.insta-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.insta-grid button{display:block;aspect-ratio:1;overflow:hidden;background:#ddd;border:0;padding:0;cursor:zoom-in}.insta-grid img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}.insta-grid button:hover img{transform:scale(1.04)}

.contact{padding:110px 7vw;background:#102e26;color:white;display:grid;grid-template-columns:1fr 1fr;gap:8vw}.contact h2{font-size:clamp(50px,5.8vw,88px);line-height:.92}.direct-contact{display:grid;margin-top:46px}.direct-contact a{display:grid;grid-template-columns:120px 1fr;align-items:baseline;padding:13px 0;border-top:1px solid rgba(255,255,255,.16)}.direct-contact span{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:rgba(255,255,255,.45)}.direct-contact strong{font-size:14px;font-weight:500}
.contact-form{display:grid;gap:24px;align-content:start}.contact-form label{display:grid;gap:8px}.contact-form label span{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:rgba(255,255,255,.5)}.contact-form input,.contact-form textarea,.contact-form select{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(255,255,255,.25);color:white;padding:12px 0;outline:none}.contact-form select option{color:#111}.contact-form input::placeholder,.contact-form textarea::placeholder{color:rgba(255,255,255,.25)}.contact-form .btn{justify-self:start;margin-top:8px}.form-note{font-size:11px;color:rgba(255,255,255,.45);margin:0;max-width:450px}

footer{padding:42px 5vw;display:grid;grid-template-columns:1fr auto 1fr;align-items:end;border-top:1px solid rgba(255,255,255,.12);background:#17392f;color:#f7f3ea}.footer-brand .brand-mark{font-size:26px}footer p{font-size:11px;color:rgba(255,255,255,.55)}.footer-links{display:flex;gap:24px;font-size:12px}.copyright{text-align:right}
.mobile-cta{display:none}

.lightbox{border:0;padding:0;background:rgba(10,18,15,.94);max-width:none;max-height:none;width:100vw;height:100vh;margin:0}.lightbox::backdrop{background:rgba(10,18,15,.94)}.lightbox img{width:100%;height:100%;object-fit:contain;padding:5vh 5vw}.lightbox-close{position:fixed;right:22px;top:16px;color:white;background:transparent;border:0;font-size:42px;line-height:1;cursor:pointer;z-index:2}

.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.card-image img,.insta-grid img{transition:none}}

@media(max-width:980px){
  .nav{position:fixed;top:92px;left:0;right:0;background:var(--paper);padding:28px 5vw 34px;display:none;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line)}.nav.open{display:flex}.menu-toggle{display:block}
  .hero,.dark-section,.about,.contact{grid-template-columns:1fr}.hero-copy{padding:90px 7vw 60px}.hero-visual{min-height:560px}.offer-grid{grid-template-columns:1fr}
  .event-grid{grid-template-columns:1fr}.event-item,.event-item:not(:first-child){border-right:0;border-bottom:1px solid var(--line);padding:28px 0}.event-item:last-child{border-bottom:0}
  .mobile-cta{position:fixed;bottom:14px;left:50%;transform:translateX(-50%);z-index:45;display:grid;grid-template-columns:1fr 1fr;width:min(92vw,430px);background:var(--green);color:#fff;box-shadow:0 14px 40px rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.12)}.mobile-cta a{text-align:center;padding:14px 12px;font-size:12px;font-weight:600}.mobile-cta a+a{border-left:1px solid rgba(255,255,255,.18)}
  footer{padding-bottom:92px}
}
@media(max-width:680px){
  .site-header{height:74px}.nav{top:74px}.brand-mark{font-size:28px}.hero-copy{padding:76px 6vw 52px}.hero h1{font-size:64px}.hero-visual{min-height:420px}
  .manifesto{grid-template-columns:1fr;padding:64px 6vw}.manifesto-line{display:none}.offer,.events,.locations,.instagram{padding:72px 6vw}
  .offer-card{grid-template-columns:1fr;min-height:auto}.card-image{min-height:290px}.card-copy{min-height:245px;padding:30px 26px}.dark-copy{padding:74px 6vw}.image-panel{min-height:420px}
  .about-visual{min-height:480px}.about-copy{padding:64px 6vw}.location-grid{grid-template-columns:1fr}.insta-grid{grid-template-columns:repeat(2,1fr)}.contact{padding:80px 6vw;gap:60px}
  .direct-contact a{grid-template-columns:1fr;gap:3px}.location-actions{flex-direction:column}
  footer{grid-template-columns:1fr;gap:26px;align-items:start}.footer-links{flex-wrap:wrap}.copyright{text-align:left}
}
.hero h1{font-variation-settings:"opsz" 120}
.section-head h2,.dark-copy h2,.about-copy h2,.contact h2,.instagram h2{font-variation-settings:"opsz" 96}
.card-copy h3,.event-item h3,.location-grid h3{font-variation-settings:"opsz" 72}
body{letter-spacing:-.005em}
.eyebrow,.nav,.brand-sub,.location-actions a,.card-copy a,.text-link{letter-spacing:.11em}

.site-header .brand,.site-header .nav a{color:#f7f3ea}
.site-header .nav-cta{border-bottom-color:#d0af62}
.site-header .menu-toggle span{background:#f7f3ea}
@media(max-width:980px){
  .nav{background:var(--green);color:#f7f3ea;border-bottom-color:rgba(255,255,255,.1)}
}

.events .event-item h3{color:#fff}
.events .event-item>span{color:#d0af62}

.offer .section-head h2,.locations .section-head h2,.instagram h2{color:var(--green)}
.location-grid .loc-no{color:#d0af62}
.location-grid a{color:#f7f3ea}
.footer-links a{color:#f7f3ea}
.hero-copy .eyebrow{color:#9a7d3f}

.local-seo{padding:100px 6vw;background:#f7f4ec}.local-seo-inner{max-width:1280px;margin:0 auto}.local-seo-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:36px;border-top:1px solid var(--line);padding-top:34px}.local-seo h2,.local-seo h3{font-family:var(--serif);font-weight:500;margin:0 0 14px;color:var(--green)}.local-seo h2{font-size:clamp(42px,4.5vw,68px);line-height:.95}.local-seo h3{font-size:28px}.local-seo p{color:var(--muted);font-size:14px;max-width:620px}.local-seo a{display:inline-block;margin-top:10px;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--green)}.faq{padding:100px 6vw;background:#fff}.faq-list{max-width:1000px;border-top:1px solid var(--line)}.faq details{border-bottom:1px solid var(--line)}.faq summary{list-style:none;cursor:pointer;padding:22px 0;font-family:var(--serif);font-size:25px;color:var(--green);display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"＋";font-family:var(--sans);font-size:18px;color:var(--gold)}.faq details[open] summary:after{content:"−"}.faq details p{margin:0 0 22px;color:var(--muted);max-width:780px}@media(max-width:900px){.local-seo-grid{grid-template-columns:1fr}.local-seo{padding:72px 6vw}.faq{padding:72px 6vw}}

/* ===== Mobile-first refinement ===== */
@media(max-width:680px){
  html{scroll-padding-top:72px}
  body{overflow-x:hidden;padding-bottom:72px}
  .site-header{height:68px;padding:0 18px}
  .brand-mark{font-size:26px}.brand-sub{font-size:7px;letter-spacing:.32em;margin-top:5px}
  .menu-toggle{display:block;padding:10px;margin-right:-8px;position:relative;z-index:80}
  .menu-toggle span{width:24px;margin:5px 0;transition:transform .25s ease,opacity .25s ease}
  .menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(3px) rotate(45deg)}
  .menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-3px) rotate(-45deg)}
  .nav{top:68px;bottom:0;height:calc(100dvh - 68px);padding:34px 24px 110px;gap:0;overflow:auto;align-items:stretch}
  .nav a{font-family:var(--serif);font-size:32px;line-height:1.05;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.12);opacity:1}
  .nav .nav-cta{border-bottom:1px solid rgba(255,255,255,.12)}

  .hero{display:flex;flex-direction:column;min-height:auto}
  .hero-copy{padding:48px 20px 38px;background:#eef2ed}
  .hero h1{font-size:clamp(58px,17vw,76px);line-height:.84;letter-spacing:-.045em}
  .hero .lead{font-size:15px;line-height:1.6;margin:26px 0 26px;max-width:32rem}
  .hero-actions{display:grid;grid-template-columns:1fr;gap:10px}
  .hero-actions .btn{width:100%;min-height:52px}
  .hero-actions .btn-link{border:1px solid rgba(23,57,47,.28);padding:0 18px}
  .hero-visual{min-height:0;height:62svh;max-height:560px}
  .hero-visual img{object-position:center center}
  .seal{width:84px;height:84px;right:18px;bottom:18px;font-size:16px}.seal small{font-size:7px}

  .manifesto{padding:56px 22px}.manifesto p{font-size:34px;line-height:1.05;text-align:left}

  .offer,.events,.locations,.instagram,.faq,.local-seo{padding:64px 20px}
  .section-head{margin-bottom:34px}.section-head h2,.instagram h2{font-size:46px;line-height:.96}
  .eyebrow{font-size:9px;margin-bottom:15px;letter-spacing:.16em}

  .offer-grid{gap:16px}
  .offer-card{display:block;border-radius:0;overflow:hidden}
  .card-image{height:300px;min-height:0}.card-image img{object-position:center}
  .card-copy{min-height:0;padding:26px 22px 28px}
  .card-copy h3{font-size:34px;margin-bottom:10px}.card-copy p{font-size:13px;line-height:1.65}.card-copy a{margin-top:22px;display:inline-block}

  .dark-section{display:flex;flex-direction:column;min-height:auto}
  .dark-copy{padding:64px 20px 44px}
  .dark-copy h2{font-size:47px;line-height:.96}
  .dark-copy>p:not(.eyebrow){font-size:14px;line-height:1.65;margin:24px 0 20px}
  .flavour-intro{font-size:11px;margin-bottom:8px}
  .flavour-accordion summary{grid-template-columns:32px 1fr auto;padding:16px 0;min-height:52px}
  .flavour-accordion summary strong{font-size:14px;line-height:1.35}.flavour-accordion summary span{font-size:9px}
  .flavour-accordion ul{margin:0 0 16px 32px;padding-left:16px;font-size:12px;line-height:1.55}
  .dark-copy>.btn{width:100%;margin-top:4px}
  .image-panel{height:55svh;min-height:380px;order:2}.image-panel img{object-position:center}

  .events .section-head h2{font-size:49px}
  .event-grid{display:block}.event-item,.event-item:not(:first-child){padding:26px 0;border-right:0;border-bottom:1px solid rgba(255,255,255,.16)}
  .event-item h3{font-size:32px;margin:8px 0}.event-item p{font-size:13px;line-height:1.6;margin-bottom:0}

  .about{display:flex;flex-direction:column;min-height:auto}.about-visual{min-height:0;height:52svh;max-height:520px}.about-visual img{object-position:center}.about-copy{padding:58px 20px 62px}.about-copy h2{font-size:48px}.about-copy p:not(.eyebrow){font-size:14px;line-height:1.7}

  .local-seo-grid{display:block;padding-top:20px}.local-seo-grid>div{padding:22px 0;border-bottom:1px solid var(--line)}.local-seo-grid>div:first-child{padding-top:0}.local-seo h2{font-size:44px}.local-seo h3{font-size:28px}.local-seo p{font-size:13px;line-height:1.65}.local-seo a{margin-top:8px}

  .location-grid{gap:14px}.location-grid article{padding:28px 22px}.location-grid h3{font-size:39px;margin-bottom:10px}.hours-grid{font-size:12px}.location-actions{gap:12px}.location-actions a{display:flex;align-items:center;justify-content:center;min-height:44px;border:1px solid rgba(255,255,255,.18);padding:0 12px;text-align:center}

  .insta-head{display:block;margin-bottom:22px}.insta-head a{display:inline-block;margin-top:16px}.insta-grid{gap:7px}.insta-grid button{aspect-ratio:1}

  .faq-list{max-width:none}.faq summary{font-size:21px;line-height:1.2;padding:19px 0;min-height:58px}.faq details p{font-size:13px;line-height:1.7;padding-right:10px}

  .contact{padding:64px 20px 58px;gap:42px}.contact h2{font-size:48px}.direct-contact{margin-top:30px}.direct-contact a{padding:13px 0}.direct-contact strong{font-size:13px;overflow-wrap:anywhere}
  .contact-form{gap:20px}.contact-form input,.contact-form textarea,.contact-form select{font-size:16px;min-height:48px}.contact-form .btn{width:100%;min-height:54px}.form-note{font-size:10px;line-height:1.5}

  footer{padding:38px 20px 92px}.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px}.footer-links a{font-size:12px}
  .mobile-cta{bottom:10px;width:calc(100vw - 20px);max-width:none;border-radius:2px;overflow:hidden;box-shadow:0 12px 34px rgba(0,0,0,.28)}
  .mobile-cta a{padding:15px 10px;font-size:13px;min-height:50px}
}

@media(max-width:380px){
  .hero h1{font-size:54px}.section-head h2,.instagram h2,.dark-copy h2,.about-copy h2,.contact h2,.events .section-head h2{font-size:42px}
  .hero-copy,.offer,.events,.locations,.instagram,.faq,.local-seo,.dark-copy,.about-copy,.contact{padding-left:17px;padding-right:17px}
  .card-image{height:270px}
}
