/* The Vault 327 — design tokens & base */
:root{
  --vault:#070605;
  --vault-2:#121110;
  --vault-3:#1d1a16;
  --cream:#f6f1e4;
  --cream-2:#efe6cf;
  --brass:#c9a45c;
  --brass-2:#f0cd7e;
  --wine:#7a1620;
  --muted:#a89f8f;
  --line:rgba(240,205,126,.14);
  --line-dark:rgba(12,10,8,.12);
  --radius:18px;
  --maxw:1240px;
  --shadow:0 24px 60px -20px rgba(0,0,0,.7);
  --glow:0 0 30px rgba(240,205,126,.35);
  --ff-head:'Playfair Display', Georgia, serif;
  --ff-body:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--vault);color:var(--cream);font-family:var(--ff-body);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--ff-head);font-weight:600;line-height:1.1;margin:0;letter-spacing:-.01em}
p{margin:0}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--brass-2);font-weight:700}
/* A fading rule on each side of the label, not a flat line on just the
   left - tapering in from each outer edge toward the text. */
.eyebrow::before,.eyebrow::after{content:'';width:26px;height:1px;flex:0 0 auto}
.eyebrow::before{background:linear-gradient(90deg,transparent,var(--brass))}
.eyebrow::after{background:linear-gradient(90deg,var(--brass),transparent)}
.btn{display:inline-flex;align-items:center;gap:8px;padding:15px 28px;border-radius:999px;font-weight:600;font-size:14.5px;border:1px solid transparent;cursor:pointer;transition:.25s ease;font-family:var(--ff-body)}
.btn-brass{background:linear-gradient(135deg,var(--brass-2),var(--brass));color:#241a08;box-shadow:0 14px 30px -10px rgba(201,164,92,.5)}
.btn-brass:hover{transform:translateY(-2px);box-shadow:0 18px 36px -8px rgba(201,164,92,.65)}
.btn-ghost{border-color:var(--line);color:var(--cream)}
.btn-ghost:hover{background:rgba(246,241,228,.06);border-color:rgba(246,241,228,.3)}
.btn-wine{background:var(--wine);color:#fff}
.btn-wine:hover{background:#7d2229}
.btn-block{width:100%;justify-content:center}

/* Nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:16px 0;transition:.3s ease;background:linear-gradient(to bottom,rgba(5,4,3,.85),transparent)}
.nav.scrolled{background:rgba(6,5,4,.88);backdrop-filter:blur(14px);padding:10px 0;border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:11px}
.brand .logo-img{height:68px;width:auto;transition:.3s ease}
.nav.scrolled .brand .logo-img{height:56px}
.brand .word{font-family:var(--ff-head);font-size:21px;letter-spacing:.01em}
.brand .word small{display:block;font-family:var(--ff-body);font-size:9.5px;letter-spacing:.24em;color:var(--brass-2);font-weight:700;text-transform:uppercase;margin-top:-1px}
.navlinks{display:flex;gap:32px;font-size:14px;font-weight:500}
.navlinks a{color:var(--muted);position:relative}
.navlinks a:hover,.navlinks a.active{color:var(--cream)}
.navlinks a.active::after{content:'';position:absolute;left:0;right:0;bottom:-8px;height:2px;background:var(--brass)}
.navcta{display:flex;align-items:center;gap:14px}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px}
.burger span{width:22px;height:2px;background:var(--cream)}
.mnav{position:fixed;inset:0;background:rgba(5,4,3,.98);z-index:200;display:flex;flex-direction:column;padding:100px 32px 40px;gap:26px;transform:translateX(100%);transition:.35s ease}
.mnav.open{transform:translateX(0)}
.mnav a{font-family:var(--ff-head);font-size:27px}
.mnav-close{position:absolute;top:22px;right:22px;background:none;border:0;color:var(--cream);font-size:28px;cursor:pointer}

/* Page hero (sub-pages) */
.page-hero{padding:180px 0 90px;position:relative;overflow:hidden;background:#000}
.page-hero .ph-bg{position:absolute;inset:0;background-size:cover;background-position:center;animation:kenburns 22s ease-in-out infinite alternate;opacity:.55}
.page-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,4,3,.55) 0%,rgba(5,4,3,.75) 55%,var(--vault) 100%)}
.page-hero .eyebrow{justify-content:center}
.page-hero h1{text-align:center;font-size:clamp(34px,5.5vw,60px);margin-top:16px;position:relative;z-index:1}
.page-hero p{text-align:center;max-width:560px;margin:18px auto 0;color:var(--muted);font-size:17px;position:relative;z-index:1}
.page-hero-inner{text-align:center;position:relative;z-index:1}

/* Hero (home) */
.hero{min-height:100vh;display:flex;align-items:center;padding:110px 0 54px;position:relative;overflow:hidden;background:#000}
.hero video.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%}
.hero::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,3,2,.35) 0%,rgba(4,3,2,.55) 45%,var(--vault) 100%),linear-gradient(90deg,rgba(4,3,2,.7),transparent 60%)}
@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.12)}}

.hero .wrap{position:relative;z-index:1}
.hero-content{max-width:680px}
.hero h1{font-size:clamp(40px,6.6vw,80px);color:#fff;font-weight:500}
.hero h1 em{font-style:italic;color:var(--brass-2);text-shadow:var(--glow)}

/* Slide-in-from-left entrance on first load, matching the hero's own
   left-aligned layout rather than introducing a new position for it. */
.hero-content--in{animation:heroSlideIn 1s cubic-bezier(.16,1,.3,1) both}
@keyframes heroSlideIn{from{opacity:0;transform:translateX(-48px)}to{opacity:1;transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){.hero-content--in{animation:none}}
.hero p.lead{margin-top:24px;max-width:520px;color:#e6e0cf;font-size:19px}
.hero-cta{margin-top:34px;display:flex;gap:14px;flex-wrap:wrap}
.hero-meta{margin-top:56px;display:flex;gap:36px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:26px}
.hero-meta .m{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--muted)}
.hero-meta .m svg{width:18px;height:18px;stroke:var(--brass-2)}

/* strip */
.strip{background:var(--cream);color:var(--vault);padding:15px 0;overflow:hidden;border-top:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark)}
.strip-track{display:flex;gap:56px;white-space:nowrap;animation:scroll 26s linear infinite;width:max-content}
.strip-track span{font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--wine)}
.strip-track span::after{content:'✦';color:var(--brass);margin-left:56px}
@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* Sections */
.section{padding:120px 0}
.section-head{max-width:640px;margin-bottom:56px}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center}
.section-head h2{font-size:clamp(30px,4.2vw,48px);margin-top:16px;color:#fff}
.section-head p{margin-top:18px;color:var(--muted);font-size:17px}
.on-cream{background:var(--cream);color:var(--vault)}
.on-cream .muted{color:#6b6350}
.on-cream .section-head h2{color:var(--vault)}
.on-cream .eyebrow{color:#8a6a2c}
.on-cream .eyebrow::before{background:linear-gradient(90deg,transparent,#8a6a2c)}
.on-cream .eyebrow::after{background:linear-gradient(90deg,#8a6a2c,transparent)}

/* concept split */
.concept-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.concept-photo{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:4/5}
.concept-photo img{width:100%;height:100%;object-fit:cover}
/* The small photo is meant to overlap the bottom-right corner of the main
   one, not sit below it in normal flow - it needs position:absolute against
   the .reveal wrapper (already position:relative inline) to actually do
   that instead of just adding a 40px gap underneath. */
.concept-photo.small{aspect-ratio:16/11;position:absolute;right:-28px;bottom:-36px;width:56%;max-width:56%;box-shadow:0 20px 50px -15px rgba(0,0,0,.8);border:5px solid var(--vault)}

/* highlight cards */
.highlights{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.hl-card{border-radius:var(--radius);overflow:hidden;position:relative;min-height:380px;display:flex;align-items:flex-end;box-shadow:var(--shadow)}
.hl-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hl-card::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,4,3,0) 0%,rgba(5,4,3,.25) 45%,rgba(5,4,3,.55) 100%)}
/* The card-wide gradient above is only a mood-darkener - it can't guarantee
   contrast on its own since a light, busy photo (a white plate filling the
   bottom of the frame) can still show through it. This panel sits directly
   behind the text block itself, independent of whatever the photo is doing
   underneath, so the text is always readable regardless of the image. */
.hl-card .content{position:relative;z-index:1;width:100%;padding:34px 30px 30px;background:linear-gradient(180deg,rgba(5,4,3,0) 0%,rgba(5,4,3,.88) 28%,rgba(5,4,3,.96) 100%)}
.hl-card .price{display:inline-block;background:var(--brass);color:#241a08;font-size:12px;font-weight:800;padding:5px 12px;border-radius:999px;margin-bottom:12px}
.hl-card h3{font-size:24px;color:#fff}
.hl-card p{color:#e6e0cf;margin-top:8px;font-size:14.5px}

/* whats on list (home teaser + full page) */
.onlist{display:flex;flex-direction:column;border-top:1px solid var(--line-dark)}
.on-item{display:flex;justify-content:space-between;align-items:center;padding:26px 4px;border-bottom:1px solid var(--line-dark);gap:16px;flex-wrap:wrap}
.on-item .day{font-family:var(--ff-head);font-size:20px;min-width:130px}
.on-item .desc{flex:1;color:#6b6350;font-size:15px}
.on-item .tag{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;background:var(--vault);color:var(--brass-2);padding:6px 14px;border-radius:999px}

/* testimonials */
.testis{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.testi{padding:30px;border-radius:16px;background:var(--vault-2);border:1px solid var(--line)}
.testi .stars{color:var(--brass);letter-spacing:2px;margin-bottom:14px}
.testi p{font-size:15px;color:#e6e0cf}
.testi b{display:block;margin-top:16px;font-size:13.5px;color:var(--brass-2)}

/* gallery grid */
.gal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.gal-item{border-radius:12px;overflow:hidden;cursor:pointer;position:relative}
.gal-item img{width:100%;height:100%;object-fit:cover;aspect-ratio:1;transition:.4s ease}
.gal-item:hover img{transform:scale(1.08)}
.gal-item.tall img{aspect-ratio:1/1.4}

/* menu tabs */
.menu-tabs{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:50px}
.menu-tab{padding:12px 22px;border-radius:999px;border:1px solid var(--line-dark);background:transparent;font-weight:600;font-size:14px;cursor:pointer;color:#6b6350;transition:.2s}
.menu-tab.active{background:var(--vault);color:var(--brass-2);border-color:var(--vault)}
.menu-panel{display:none}
.menu-panel.active{display:block;animation:fadein .4s ease}
@keyframes fadein{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.menu-list{display:grid;grid-template-columns:1fr 1fr;gap:36px 60px;max-width:960px;margin:0 auto}
.menu-row{display:flex;justify-content:space-between;gap:16px;padding-bottom:16px;border-bottom:1px dashed var(--line-dark)}
.menu-row .txt b{font-size:16.5px;font-family:var(--ff-head);font-weight:600}
.menu-row .txt p{font-size:13.5px;color:#7a7259;margin-top:5px}
.menu-row .price{font-weight:700;color:#8a6a2c;white-space:nowrap;font-family:var(--ff-head)}
.menu-note{text-align:center;max-width:600px;margin:50px auto 0;color:#6b6350;font-size:14px}
.menu-subhead{max-width:960px;margin:0 auto 22px;padding-top:36px;border-top:1px solid var(--line-dark);font-family:var(--ff-head);font-size:21px;color:var(--vault);text-align:center}
.menu-panel>.menu-subhead:first-child{padding-top:0;border-top:none;margin-top:0}
.tag{display:inline-block;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:#8a6a2c;border:1px solid var(--line-dark);border-radius:4px;padding:1px 6px;margin-left:6px;font-weight:700;vertical-align:middle}

/* Festive Menu page - Halloween / Christmas theming */
.festive-section{position:relative}
.festive-banner{position:relative;display:flex;align-items:center;gap:18px;padding:20px 26px;border-radius:12px;margin:0 auto 32px;max-width:680px;background:var(--cream);border:1px solid var(--line-dark);box-shadow:0 8px 24px -14px rgba(0,0,0,.18)}
.festive-banner .fb-icon{width:34px;height:34px;flex-shrink:0;color:#8a6a2c}
.festive-banner b{display:block;font-family:var(--ff-head);font-size:17px;color:var(--vault);margin-bottom:4px}
.festive-banner p{margin:0;font-size:13.5px;color:#6b6350}

/* Halloween - thin line-art cobwebs in the panel corners */
.corner-web{position:absolute;top:0;width:90px;height:90px;opacity:.7;pointer-events:none}
.corner-web-left{left:0}
.corner-web-right{right:0;transform:scaleX(-1)}
.corner-web-bl{left:0;top:auto;bottom:0;transform:scaleY(-1)}
.corner-web-br{right:0;top:auto;bottom:0;transform:scale(-1,-1)}
@media(max-width:700px){.corner-web{width:56px;height:56px}}

/* Christmas - a gold garland across the top (and, second instance, bottom) of the panel */
.garland{display:block;width:100%;height:40px;max-width:900px;margin:-10px auto 18px}
.garland-bottom{margin:28px auto 0}
@media(max-width:700px){.garland{height:28px}}

/* Extra seasonal accents scattered around the panel - desktop/tablet only, to stay out of the way of real menu text on small screens */
.theme-accent{position:absolute;pointer-events:none;opacity:.7}
.theme-accent.bat-2{opacity:.5}
.theme-accent .holly-leaf{stroke:#6b8f5f}
.theme-accent .holly-berry{fill:var(--wine);stroke:none}
@media(max-width:900px){.theme-accent{display:none}}

/* offers grid (what's on) */
.offers{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.offer{border-radius:var(--radius);padding:36px;background:var(--vault-2);border:1px solid var(--line);position:relative;overflow:hidden;background-size:cover;background-position:center}
.offer::before{content:'';position:absolute;inset:0;background:linear-gradient(120deg,rgba(7,6,5,.94) 40%,rgba(7,6,5,.55))}
.offer .day-badge,.offer h3,.offer p{position:relative;z-index:1}
.offer .day-badge{display:inline-block;background:var(--brass);color:#241a08;font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;padding:6px 14px;border-radius:999px;margin-bottom:18px}
.offer h3{font-size:24px;color:#fff}
.offer p{margin-top:10px;color:var(--muted);font-size:15px}

/* Booking */
.book-layout{display:grid;grid-template-columns:1fr 1fr;gap:0;min-height:70vh}
.book-visual{position:relative;background:url('img/booth-gold.jpg') center/cover}
.book-visual::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,4,3,.25),rgba(4,3,2,.9))}
.book-visual .bv-content{position:relative;z-index:1;padding:70px 60px;height:100%;display:flex;flex-direction:column;justify-content:flex-end}
.book-form-wrap{background:var(--cream);color:var(--vault);padding:70px 60px;display:flex;flex-direction:column;justify-content:center}
.book-form-wrap--live #ot-widget-container{min-height:480px}
.book-form-wrap--live #ot-widget-container iframe{width:100%!important;border:0}
.steps{display:flex;gap:10px;margin-bottom:36px}
.step-dot{flex:1;height:3px;border-radius:3px;background:var(--line-dark)}
.step-dot.active{background:var(--brass)}
.step-dot.done{background:#8a6a2c}
.bstep{display:none}
.bstep.active{display:block;animation:fadein .35s ease}
.field{margin-bottom:20px}
.field label{display:block;font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#6b6350;margin-bottom:8px}
.field input,.field select,.field textarea{width:100%;padding:14px 16px;border-radius:10px;border:1.5px solid var(--line-dark);font-family:var(--ff-body);font-size:15px;background:#fff;color:var(--vault)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--brass)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.party-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.party-opt{padding:14px 0;text-align:center;border-radius:10px;border:1.5px solid var(--line-dark);cursor:pointer;font-weight:700;background:#fff}
.party-opt.selected{border-color:var(--brass);background:rgba(201,164,92,.14);color:#8a6a2c}
.step-actions{display:flex;justify-content:space-between;align-items:center;margin-top:28px;gap:12px}
.step-actions .btn-ghost-dark{border:1px solid var(--line-dark);color:var(--vault);background:none;padding:14px 22px;border-radius:999px;font-weight:600;cursor:pointer}
.confirm-box{text-align:center;padding:20px 0}
.confirm-icon{width:70px;height:70px;border-radius:50%;background:linear-gradient(135deg,var(--brass-2),var(--brass));display:flex;align-items:center;justify-content:center;margin:0 auto 22px}
.confirm-ref{font-family:var(--ff-head);font-size:26px;color:#8a6a2c;margin-top:8px}
.summary-box{background:#fff;border:1px solid var(--line-dark);border-radius:12px;padding:20px;margin-bottom:22px;font-size:14.5px}
.summary-box div{display:flex;justify-content:space-between;padding:6px 0}
.summary-box div b{font-weight:700}

/* Contact/map/hours */
.info-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:22px}
.info-card{background:var(--vault-2);border:1px solid var(--line);border-radius:16px;padding:30px}
.info-card h4{font-family:var(--ff-head);font-size:19px;color:var(--brass-2);margin-bottom:14px}
.info-card p,.info-card div{font-size:14.5px;color:#d5d0be;line-height:1.9}
.hours-row{display:flex;justify-content:space-between}
.map-embed{margin-top:22px;display:flex;align-items:center;gap:20px;background:var(--vault-2);border:1px solid var(--line);border-radius:16px;padding:26px 30px;transition:.2s ease}
.map-embed:hover{border-color:var(--brass);background:var(--vault-3)}
.map-embed-pin{flex:0 0 auto;width:48px;height:48px;border-radius:50%;background:rgba(240,205,126,.12);display:flex;align-items:center;justify-content:center}
.map-embed-pin svg{width:22px;height:22px;stroke:var(--brass-2)}
.map-embed h4{font-family:var(--ff-head);font-size:18px;color:#fff}
.map-embed p{font-size:14.5px;color:var(--muted);margin-top:4px}
.map-embed-cta{margin-left:auto;flex:0 0 auto;font-size:13.5px;font-weight:700;color:var(--brass-2);white-space:nowrap}
@media(max-width:560px){.map-embed{flex-wrap:wrap}.map-embed-cta{margin-left:0}}

footer{background:#081410;padding:48px 0 28px;border-top:1px solid var(--line)}
/* flex, not grid: a grid's fr columns stretch to fill the full 1240px
   wrap regardless of content, which left the Follow column (two short
   links) stranded with a huge dead gap on its right. Flex lets each
   column hug its own content width instead, so they sit close together
   like every other left-aligned block on the site. */
.foot-grid{display:flex;flex-wrap:wrap;gap:60px}
.foot-brand{flex:0 1 320px}
.foot-brand p{color:var(--muted);font-size:14px;margin-top:14px;max-width:280px}
.foot-col{flex:0 0 auto}
.foot-col h4{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--brass-2);margin-bottom:16px}
.foot-col a{display:block;color:var(--muted);font-size:14.5px;margin-bottom:10px}
.foot-col a:hover{color:var(--cream)}
.foot-bottom{margin-top:56px;padding-top:22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:#4d574f;font-size:13px;flex-wrap:wrap;gap:10px}

.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:translateY(0)}

/* Chatbot widget */
.chat-fab{position:fixed;bottom:26px;right:26px;width:62px;height:62px;border-radius:50%;background:linear-gradient(135deg,var(--brass-2),var(--brass));border:none;cursor:pointer;box-shadow:0 14px 34px -8px rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:300;transition:.25s ease}
.chat-fab:hover{transform:scale(1.06)}
.chat-fab svg{width:26px;height:26px;stroke:#241a08}
.chat-panel{position:fixed;bottom:100px;right:26px;width:370px;max-width:calc(100vw - 32px);height:520px;max-height:calc(100vh - 140px);background:var(--vault-2);border:1px solid var(--line);border-radius:20px;box-shadow:0 30px 70px -20px rgba(0,0,0,.6);z-index:300;display:flex;flex-direction:column;overflow:hidden;transform:translateY(16px) scale(.97);opacity:0;pointer-events:none;transition:.25s ease}
.chat-panel.open{transform:translateY(0) scale(1);opacity:1;pointer-events:auto}
.chat-head{padding:18px 20px;background:linear-gradient(135deg,var(--vault-3),var(--vault-2));border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px}
.chat-head .ci{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--brass-2),var(--brass));display:flex;align-items:center;justify-content:center;font-family:var(--ff-head);font-weight:700;color:#241a08}
.chat-head b{font-size:15px}
.chat-head span{display:block;font-size:12px;color:#8fd6a3}
.chat-close{margin-left:auto;background:none;border:0;color:var(--muted);font-size:20px;cursor:pointer}
.chat-body{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:12px}
.msg{max-width:82%;padding:12px 15px;border-radius:14px;font-size:14px;line-height:1.5}
.msg.bot{background:var(--vault-3);color:var(--cream);align-self:flex-start;border-bottom-left-radius:4px}
.msg.user{background:linear-gradient(135deg,var(--brass-2),var(--brass));color:#241a08;align-self:flex-end;border-bottom-right-radius:4px;font-weight:500}
.chat-quick{display:flex;gap:8px;flex-wrap:wrap;padding:0 18px 12px}
.chat-quick button{font-size:12.5px;padding:8px 12px;border-radius:999px;border:1px solid var(--line);background:none;color:var(--brass-2);cursor:pointer}
.chat-quick button:hover{background:rgba(201,164,92,.12)}
.chat-input{display:flex;gap:10px;padding:14px;border-top:1px solid var(--line)}
.chat-input input{flex:1;background:var(--vault);border:1px solid var(--line);border-radius:999px;padding:12px 16px;color:var(--cream);font-size:14px}
.chat-input input:focus{outline:none;border-color:var(--brass)}
.chat-input button{width:42px;height:42px;border-radius:50%;background:var(--brass);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.chat-input button svg{width:18px;height:18px}
.typing{display:flex;gap:4px;padding:12px 15px}
.typing span{width:6px;height:6px;background:var(--muted);border-radius:50%;animation:blink 1.2s infinite}
.typing span:nth-child(2){animation-delay:.2s}
.typing span:nth-child(3){animation-delay:.4s}
@keyframes blink{0%,60%,100%{opacity:.3}30%{opacity:1}}

@media(max-width:980px){
  .concept-grid{grid-template-columns:1fr}
  .concept-grid > .reveal:first-child{margin-bottom:28px}
  .concept-photo.small{position:static;width:75%;max-width:75%;margin:20px auto 0;border:none;box-shadow:none}
  .highlights{grid-template-columns:1fr 1fr}
  .testis{grid-template-columns:1fr}
  .gal-grid{grid-template-columns:1fr 1fr}
  .menu-list{grid-template-columns:1fr}
  .offers{grid-template-columns:1fr}
  .book-layout{grid-template-columns:1fr}
  .book-visual{min-height:260px}
  .info-grid{grid-template-columns:1fr}
  .foot-grid{gap:40px 60px}
}
@media(max-width:640px){
  .navlinks{display:none}
  .burger{display:flex}
  .highlights{grid-template-columns:1fr}
  .gal-grid{grid-template-columns:1fr 1fr}
  .field-row{grid-template-columns:1fr}
  .party-grid{grid-template-columns:repeat(4,1fr)}
  .foot-brand{flex-basis:100%}
  .section{padding:80px 0}
  .wrap{padding:0 20px}
  .book-form-wrap,.book-visual .bv-content{padding:44px 24px}
  .chat-panel{right:16px;left:16px;width:auto;bottom:96px}
  .chat-fab{right:20px;bottom:20px}
  .hero .hero-bg{background-position:65% center}
  .brand .logo-img{height:50px}
  .nav.scrolled .brand .logo-img{height:44px}
  .navcta .btn{padding:11px 16px;font-size:12.5px}
  .hero h1{font-size:clamp(30px,9vw,42px)}
  .hero-meta{gap:16px 24px;font-size:13px}
}
@media(max-width:380px){
  .navcta .btn{padding:9px 12px;font-size:11.5px}
}

.foot-brand .logo-img{height:58px;width:auto}

/* Chef cursor-follower easter egg */
#chef-cursor{
  position:fixed;top:0;left:0;width:42px;height:60px;pointer-events:none;z-index:500;
  opacity:0;transition:opacity .3s ease;
  will-change:transform;
}
#chef-cursor.active{opacity:1}
#chef-cursor .chef-flip{width:100%;height:100%;transition:transform .18s ease;filter:drop-shadow(0 8px 10px rgba(0,0,0,.45))}
#chef-cursor.face-left .chef-flip{transform:scaleX(-1)}
#chef-cursor .chef-inner{width:100%;height:100%}
#chef-cursor .chef-inner svg{width:100%;height:100%;display:block;overflow:visible}
#chef-cursor.walk .chef-inner{animation:chef-bob .28s ease-in-out infinite}
@keyframes chef-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
#chef-cursor .leg-l{transform-origin:24.5px 64px}
#chef-cursor .leg-r{transform-origin:39.5px 64px}
#chef-cursor.walk .leg-l{animation:leg-swing-l .28s ease-in-out infinite}
#chef-cursor.walk .leg-r{animation:leg-swing-r .28s ease-in-out infinite}
@keyframes leg-swing-l{0%,100%{transform:rotate(-24deg)}50%{transform:rotate(24deg)}}
@keyframes leg-swing-r{0%,100%{transform:rotate(24deg)}50%{transform:rotate(-24deg)}}
#chef-cursor .arm-l{transform-origin:12.5px 44px}
#chef-cursor .arm-r{transform-origin:51.5px 44px}
#chef-cursor.walk .arm-l{animation:leg-swing-r .28s ease-in-out infinite}
#chef-cursor.walk .arm-r{animation:leg-swing-l .28s ease-in-out infinite}
@media(hover:none),(max-width:780px){#chef-cursor{display:none}}

/* Terms & Conditions page */
.terms-block{margin-bottom:38px}
.terms-block h3{color:var(--vault);font-family:var(--ff-head);font-size:22px;margin-bottom:14px}
.terms-block p{color:#4a4331;font-size:15.5px;line-height:1.75;margin-bottom:14px}
.terms-block p a{color:var(--vault);text-decoration:underline}
.terms-list{list-style:none;margin:0;padding:0}
.terms-list li{position:relative;padding-left:24px;color:#4a4331;font-size:15.5px;line-height:1.75;margin-bottom:12px}
.terms-list li::before{content:'';position:absolute;left:0;top:10px;width:7px;height:7px;border-radius:50%;background:var(--brass)}

/* Cookie banner */
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:300;background:rgba(7,6,5,.97);border-top:1px solid var(--line);backdrop-filter:blur(8px);transition:transform .4s ease,opacity .4s ease}
.cookie-banner-hide{transform:translateY(100%);opacity:0}
.cookie-inner{max-width:1180px;margin:0 auto;padding:18px 28px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.cookie-inner p{color:var(--muted);font-size:13.5px;line-height:1.6;margin:0;max-width:760px}
.cookie-inner p a{color:var(--brass-2);text-decoration:underline}
.cookie-actions{display:flex;gap:10px;flex-shrink:0}
.btn-sm{padding:10px 20px;font-size:12.5px}
/* Self-contained colours, not reliant on whatever's behind the banner -
   .btn-ghost alone is transparent-by-default and only reads correctly
   over a guaranteed-dark background; this one needed its own. */
.cookie-actions .btn-ghost{background:#1c1a17;color:var(--cream);border-color:var(--line)}
@media(max-width:700px){.cookie-inner{padding:16px 20px;flex-direction:column;align-items:stretch;text-align:center}.cookie-actions{justify-content:center}}
