/* ─── DESIGN TOKENS ─────────────────────────────────────────────── */
:root {
  --ink:#0F1309; --olive-deep:#1E2A14; --olive:#3B4A2F; --olive-mid:#5C6E42;
  --olive-lite:#8B9E6B; --terra:#C0522A; --terra-lite:#D4704A; --gold:#C8973A;
  --gold-lite:#E5BD72; --gold-pale:#F2E4C0; --parch:#F5EDD8; --parch-dark:#E8DABC;
  --cream:#FDF9F0; --smoke:#9E9580; --rule:rgba(200,151,58,0.35);
  --ff-display:'Cinzel Decorative', serif;
  --ff-head:'Cinzel', serif;
  --ff-body:'EB Garamond', serif;
  --ease-out-expo:cubic-bezier(0.19,1,0.22,1);
}

body.lang-el { --ff-display:'Cormorant Garamond', serif; --ff-head:'Cormorant Garamond', serif; }
body.lang-el .hero-title { font-weight:700; }
body.lang-el .nav-links a, body.lang-el .section-eyebrow, body.lang-el .hero-eyebrow,
body.lang-el .quest-tag, body.lang-el .footer-col-title, body.lang-el .scroll-item,
body.lang-el .hero-stat-label, body.lang-el .bk-label, body.lang-el .cal-dow,
body.lang-el .feast-includes-title, body.lang-el .feast-step-title, body.lang-el .ritual-title,
body.lang-el .theme-sub, body.lang-el .host-eyebrow, body.lang-el .cal-legend,
body.lang-el .testi-who { letter-spacing:0.12em; font-weight:600; }

/* ─── RESET ──────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; font-size:16px; }
body { font-family:var(--ff-body); background:var(--parch); color:var(--ink); overflow-x:hidden; }
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }

body::before {
  content:''; position:fixed; inset:0; z-index:0; opacity:0.04; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:256px;
}

/* ─── NAV ────────────────────────────────────────────────────────── */
nav {
  position:fixed; top:0; left:0; right:0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 2.4rem; height:70px;
  background:rgba(15,19,9,0.92); backdrop-filter:blur(12px);
  border-bottom:1px solid var(--rule);
}
.nav-logo { font-family:var(--ff-display); font-size:0.82rem; color:var(--gold-pale); letter-spacing:0.1em; display:flex; align-items:center; gap:0.8rem; }
.nav-logo img { width:42px; height:42px; flex-shrink:0; }
.nav-right { display:flex; align-items:center; gap:1.8rem; }
.nav-links { display:flex; gap:1.8rem; list-style:none; }
.nav-links a { font-family:var(--ff-head); font-size:0.66rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--smoke); transition:color 0.2s; }
.nav-links a:hover { color:var(--gold); }
.lang-toggle { display:flex; align-items:center; border:1px solid var(--rule); }
.lang-btn {
  font-family:var(--ff-head); font-size:0.62rem; letter-spacing:0.12em; text-transform:uppercase;
  padding:0.4rem 0.7rem; background:none; border:none; color:var(--smoke); cursor:pointer; transition:all 0.2s;
}
.lang-btn.active { background:var(--gold); color:var(--ink); }
.nav-cta { font-family:var(--ff-head); font-size:0.66rem; letter-spacing:0.16em; text-transform:uppercase; padding:0.6rem 1.3rem; background:var(--terra); color:white; border:none; cursor:pointer; transition:background 0.2s; }
.nav-cta:hover { background:var(--terra-lite); }

/* ─── HERO ───────────────────────────────────────────────────────── */
.hero { min-height:100vh; background:var(--olive-deep); display:grid; grid-template-columns:1.05fr 0.95fr; align-items:center; position:relative; overflow:hidden; padding:7rem 0 3rem; }
.hero-bg-grid { position:absolute; inset:0; background-image:linear-gradient(rgba(200,151,58,0.04) 1px, transparent 1px), linear-gradient(90deg, rgba(200,151,58,0.04) 1px, transparent 1px); background-size:60px 60px; }
.hero-glow { position:absolute; top:18%; left:30%; width:520px; height:520px; background:radial-gradient(ellipse, rgba(59,74,47,0.7) 0%, transparent 70%); pointer-events:none; }
.hero-content { position:relative; z-index:2; padding:0 3rem 0 6rem; animation:fadeUp 1.2s var(--ease-out-expo) both; }
@keyframes fadeUp { from { opacity:0; transform:translateY(40px);} to {opacity:1; transform:translateY(0);} }
.hero-eyebrow { font-family:var(--ff-head); font-size:0.65rem; letter-spacing:0.4em; text-transform:uppercase; color:var(--gold); margin-bottom:1.4rem; display:flex; align-items:center; gap:1rem; }
.hero-eyebrow::before { content:''; display:block; width:32px; height:1px; background:var(--gold); opacity:0.6; }
.hero-title { font-family:var(--ff-display); font-size:clamp(2.2rem,4.5vw,3.9rem); font-weight:900; line-height:1.08; color:white; margin-bottom:0.6rem; }
.hero-title span { color:var(--gold); }
.hero-tagline { font-family:var(--ff-body); font-size:1.22rem; line-height:1.65; color:rgba(245,237,216,0.82); max-width:460px; margin-bottom:2.4rem; }
.hero-tagline em { color:var(--gold-lite); font-style:italic; }
.hero-actions { display:flex; gap:1rem; flex-wrap:wrap; }
.btn-primary { font-family:var(--ff-head); font-size:0.72rem; letter-spacing:0.22em; text-transform:uppercase; padding:1rem 2.2rem; background:var(--terra); color:white; border:none; cursor:pointer; transition:background 0.2s, transform 0.15s; display:inline-block; }
.btn-primary:hover { background:var(--terra-lite); transform:translateY(-2px); }
.btn-outline { font-family:var(--ff-head); font-size:0.72rem; letter-spacing:0.22em; text-transform:uppercase; padding:1rem 2.2rem; background:transparent; color:var(--gold); border:1px solid var(--rule); cursor:pointer; transition:border-color 0.2s,color 0.2s,transform 0.15s; display:inline-block; }
.btn-outline:hover { border-color:var(--gold); color:white; transform:translateY(-2px); }
.hero-visual { position:relative; z-index:2; padding:2rem 5rem 2rem 1rem; animation:fadeUp 1.4s var(--ease-out-expo) 0.2s both; }
.hero-frame { position:relative; aspect-ratio:4/5; overflow:hidden; border:1px solid var(--rule); }
.hero-frame img { width:100%; height:100%; object-fit:cover; transition:transform 8s ease-out; }
.hero:hover .hero-frame img { transform:scale(1.05); }
.hero-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1s ease-in-out; }
.hero-slide.active { opacity: 1; z-index: 2; }
.hero-frame::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg, transparent 55%, rgba(30,42,20,0.55)); }
.hero-frame-cap { position:absolute; bottom:1.2rem; left:1.2rem; right:1.2rem; z-index:2; font-family:var(--ff-head); font-size:0.6rem; letter-spacing:0.3em; text-transform:uppercase; color:var(--gold-pale); }
.hero-frame-cap::before { content:''; display:inline-block; width:18px; height:1px; background:var(--gold); margin-right:0.7rem; vertical-align:middle; }
.hero-corner { position:absolute; width:18px; height:18px; border:solid var(--gold); opacity:0.6; z-index:3; }
.hero-corner.tl { top:-1px; left:-1px; border-width:2px 0 0 2px; }
.hero-corner.br { bottom:-1px; right:-1px; border-width:0 2px 2px 0; }
.hero-stats { position:relative; z-index:2; grid-column:1/-1; display:flex; border-top:1px solid var(--rule); margin:2.5rem 6rem 0; padding-top:2rem; animation:fadeUp 1.4s var(--ease-out-expo) 0.4s both; }
.hero-stat { flex:1; text-align:center; padding:0 2rem; border-right:1px solid var(--rule); }
.hero-stat:last-child { border-right:none; }
.hero-stat-num { font-family:var(--ff-display); font-size:1.8rem; color:var(--gold); display:block; }
.hero-stat-label { font-family:var(--ff-head); font-size:0.6rem; letter-spacing:0.25em; text-transform:uppercase; color:var(--smoke); margin-top:0.3rem; display:block; }

/* ─── MANIFESTO ──────────────────────────────────────────────────── */
.manifesto { background:var(--terra); padding:1.8rem 6rem; display:flex; align-items:center; justify-content:center; gap:1.6rem; overflow:hidden; }
.manifesto-mark { width:26px; height:26px; opacity:0.85; flex-shrink:0; }
.manifesto-text { font-family:var(--ff-body); font-style:italic; font-size:1.15rem; color:rgba(255,255,255,0.95); text-align:center; }

/* ─── SECTION COMMONS ────────────────────────────────────────────── */
.section { padding:6rem 6rem; position:relative; }
.section-alt { background:var(--parch-dark); }
.section-dark { background:var(--olive-deep); color:var(--parch); }
.section-header { text-align:center; margin-bottom:4rem; }
.section-eyebrow { font-family:var(--ff-head); font-size:0.62rem; letter-spacing:0.45em; text-transform:uppercase; color:var(--terra); display:flex; align-items:center; justify-content:center; gap:1rem; margin-bottom:1rem; }
.section-eyebrow::before, .section-eyebrow::after { content:''; display:block; width:40px; height:1px; background:currentColor; opacity:0.5; }
.section-dark .section-eyebrow { color:var(--gold); }
.section-title { font-family:var(--ff-display); font-size:clamp(1.8rem,3vw,2.8rem); font-weight:700; color:var(--olive); line-height:1.2; margin-bottom:1rem; }
.section-dark .section-title { color:var(--gold-pale); }
.section-lead { font-family:var(--ff-body); font-size:1.15rem; color:var(--olive-mid); max-width:620px; margin:0 auto; line-height:1.7; }
.section-dark .section-lead { color:rgba(245,237,216,0.7); }

/* ─── CLASS CARDS (2-up) ─────────────────────────────────────────── */
.quests-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1.5rem; max-width:760px; margin:0 auto; }
.quest-card { background:var(--cream); border:1px solid var(--parch-dark); position:relative; transition:transform 0.3s var(--ease-out-expo), box-shadow 0.3s; overflow:hidden; display:flex; flex-direction:column; }
.quest-card:hover { transform:translateY(-6px); box-shadow:0 20px 50px rgba(15,19,9,0.14); }
.quest-photo { position:relative; aspect-ratio:3/2; overflow:hidden; }
.quest-photo img { width:100%; height:100%; object-fit:cover; transition:transform 0.6s var(--ease-out-expo); }
.quest-card:hover .quest-photo img { transform:scale(1.06); }
.quest-photo::after { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:var(--terra); z-index:2; }
.quest-card.feast .quest-photo::after { background:linear-gradient(90deg, var(--gold), var(--gold-lite)); }
.quest-body { padding:2rem 1.8rem 2.2rem; display:flex; flex-direction:column; flex:1; }
.quest-tag { font-family:var(--ff-head); font-size:0.58rem; letter-spacing:0.3em; text-transform:uppercase; color:var(--smoke); margin-bottom:0.6rem; }
.quest-name { font-family:var(--ff-display); font-size:1.1rem; color:var(--olive); margin-bottom:0.9rem; line-height:1.3; }
.quest-desc { font-size:0.98rem; line-height:1.65; color:var(--olive-mid); margin-bottom:1.4rem; }
.quest-foot { margin-top:auto; }
.quest-price { font-family:var(--ff-head); font-size:1.3rem; color:var(--terra); font-weight:600; }
.quest-price span { font-size:0.72rem; color:var(--smoke); font-weight:400; margin-left:0.3rem; }
.quest-card .btn-primary { width:100%; text-align:center; margin-top:1.3rem; font-size:0.65rem; }

/* ─── FULL FEAST ─────────────────────────────────────────────────── */
.feast-layout { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; }
.feast-steps { display:flex; flex-direction:column; }
.feast-step { display:flex; gap:1.5rem; padding:1.5rem 0; border-bottom:1px solid var(--rule); align-items:flex-start; }
.feast-step:last-child { border-bottom:none; }
.feast-step-num { font-family:var(--ff-display); font-size:2rem; color:var(--gold); opacity:0.5; flex-shrink:0; line-height:1; min-width:2.5rem; }
.feast-step-title { font-family:var(--ff-head); font-size:0.85rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold-pale); margin-bottom:0.4rem; }
.feast-step-text { font-size:1rem; line-height:1.6; color:rgba(245,237,216,0.7); }
.feast-step-img { width:100%; aspect-ratio:16/9; object-fit:cover; margin-top:0.8rem; border:1px solid var(--rule); }
.feast-visual { position:relative; }
.feast-photo { position:relative; aspect-ratio:3/2; overflow:hidden; margin-bottom:1.5rem; border:1px solid var(--rule); }
.feast-photo img { width:100%; height:100%; object-fit:cover; }
.feast-card { background:rgba(59,74,47,0.5); border:1px solid var(--rule); padding:2.5rem; position:relative; }
.feast-card > .corner-tl, .feast-card > .corner-br, .feast-card::before, .feast-card::after { content:''; position:absolute; width:20px; height:20px; border-color:var(--gold); border-style:solid; opacity:0.5; }
.feast-card::before { top:8px; left:8px; border-width:2px 0 0 2px; }
.feast-card::after { top:8px; right:8px; border-width:2px 2px 0 0; }
.feast-card > .corner-tl { bottom:8px; left:8px; border-width:0 0 2px 2px; }
.feast-card > .corner-br { bottom:8px; right:8px; border-width:0 2px 2px 0; }
.feast-includes-title { font-family:var(--ff-head); font-size:0.62rem; letter-spacing:0.4em; text-transform:uppercase; color:var(--gold); margin-bottom:1.4rem; display:flex; align-items:center; gap:0.8rem; }
.feast-includes-title::after { content:''; flex:1; height:1px; background:var(--rule); }
.feast-include { display:flex; align-items:flex-start; gap:1rem; padding:0.7rem 0; border-bottom:1px solid rgba(200,151,58,0.12); font-size:0.96rem; line-height:1.5; color:rgba(245,237,216,0.8); }
.feast-include:last-child { border-bottom:none; }
.feast-include-icon { color:var(--gold); flex-shrink:0; margin-top:0.15rem; font-size:0.9rem; }
.feast-price-block { text-align:center; padding-top:1.8rem; margin-top:1.6rem; border-top:1px solid var(--rule); }
.feast-price { font-family:var(--ff-display); font-size:2.6rem; color:var(--gold); }
.feast-price-label { font-family:var(--ff-head); font-size:0.6rem; letter-spacing:0.3em; text-transform:uppercase; color:var(--smoke); margin-bottom:1rem; display:block; }
.feast-book-btn { display:block; font-family:var(--ff-head); font-size:0.72rem; letter-spacing:0.22em; text-transform:uppercase; padding:1rem 2.5rem; background:var(--terra); color:white; text-align:center; border:none; cursor:pointer; transition:background 0.2s,transform 0.15s; width:100%; margin-top:1.2rem; }
.feast-book-btn:hover { background:var(--terra-lite); transform:translateY(-2px); }

/* ─── FROM OUR TABLE ─────────────────────────────────────────────── */
.table-grid { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:220px; gap:1rem; }
.table-tile { position:relative; overflow:hidden; }
.table-tile img { width:100%; height:100%; object-fit:cover; transition:transform 0.7s var(--ease-out-expo); }
.table-tile:hover img { transform:scale(1.07); }
.table-tile.wide { grid-column:span 2; }
.table-cap { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end; padding:1.2rem; background:linear-gradient(180deg, transparent 45%, rgba(15,19,9,0.78)); opacity:0; transition:opacity 0.3s; }
.table-tile:hover .table-cap { opacity:1; }
.table-cap-name { font-family:var(--ff-display); color:var(--gold-pale); font-size:1rem; line-height:1.25; margin-bottom:0.2rem; }
.table-cap-sub { font-family:var(--ff-head); font-size:0.58rem; letter-spacing:0.2em; text-transform:uppercase; color:rgba(245,237,216,0.7); }
.table-note { text-align:center; margin-top:2.5rem; font-family:var(--ff-body); font-style:italic; color:var(--olive-mid); font-size:1rem; }

/* ─── HOW IT WORKS ───────────────────────────────────────────────── */
.ritual-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; }
.ritual-step { text-align:center; position:relative; }
.ritual-photo { aspect-ratio:1/1; overflow:hidden; margin-bottom:1.5rem; position:relative; }
.ritual-photo img { width:100%; height:100%; object-fit:cover; transition:transform 0.6s var(--ease-out-expo); }
.ritual-step:hover .ritual-photo img { transform:scale(1.06); }
.ritual-num { position:absolute; top:1rem; left:1rem; z-index:2; width:52px; height:52px; background:var(--olive); color:var(--gold); font-family:var(--ff-display); font-size:1.15rem; display:flex; align-items:center; justify-content:center; clip-path:polygon(50% 0%,93% 25%,93% 75%,50% 100%,7% 75%,7% 25%); transition:background 0.3s; }
.ritual-step:hover .ritual-num { background:var(--terra); }
.ritual-title { font-family:var(--ff-head); font-size:0.85rem; letter-spacing:0.15em; text-transform:uppercase; color:var(--olive); margin-bottom:0.8rem; }
.ritual-text { font-size:0.98rem; line-height:1.65; color:var(--olive-mid); padding:0 0.5rem; }

/* ─── MEET YOUR HOST ─────────────────────────────────────────────── */
.host-layout { display:grid; grid-template-columns:0.85fr 1.15fr; gap:4rem; align-items:center; }
.host-photo { position:relative; }
.host-photo img { width:100%; filter:contrast(1.02); }
.host-photo .hero-corner.br { bottom:4px; right:-1px; }
.host-eyebrow { font-family:var(--ff-head); font-size:0.62rem; letter-spacing:0.45em; text-transform:uppercase; color:var(--gold); margin-bottom:1rem; }
.host-title { font-family:var(--ff-display); font-size:clamp(1.6rem,2.6vw,2.3rem); color:var(--gold-pale); line-height:1.2; margin-bottom:1.5rem; }
.host-body p { font-size:1.08rem; line-height:1.75; color:rgba(245,237,216,0.78); margin-bottom:1.1rem; max-width:56ch; }
.host-body p em { color:var(--gold-lite); font-style:italic; }
.host-sign { font-family:var(--ff-body); font-style:italic; font-size:1.15rem; color:var(--gold); margin-top:1.5rem; }

/* ─── SCROLL BANNER ──────────────────────────────────────────────── */
.scroll-banner { background:var(--olive); overflow:hidden; padding:1rem 0; white-space:nowrap; }
.scroll-track { display:inline-flex; animation:scrollLeft 32s linear infinite; gap:3rem; }
@keyframes scrollLeft { to { transform:translateX(-50%); } }
.scroll-item { font-family:var(--ff-head); font-size:0.65rem; letter-spacing:0.35em; text-transform:uppercase; color:rgba(245,237,216,0.5); flex-shrink:0; display:flex; align-items:center; gap:1.2rem; }
.scroll-item::after { content:'·'; color:var(--gold); opacity:0.7; }

/* ─── THEMED NIGHTS ──────────────────────────────────────────────── */
.themed-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.theme-card { position:relative; padding:2.5rem 1.5rem; overflow:hidden; cursor:pointer; border:1px solid rgba(255,255,255,0.06); transition:transform 0.3s var(--ease-out-expo); }
.theme-card:hover { transform:translateY(-4px); }
.theme-card.t-dnd { background:linear-gradient(160deg,#1A0D12,#2D1520); }
.theme-card.t-lotr { background:linear-gradient(160deg,#0D1A0D,#152D15); }
.theme-card.t-skyrim { background:linear-gradient(160deg,#0D1220,#152040); }
.theme-card.t-got { background:linear-gradient(160deg,#1A1408,#2D2312); }
.theme-glow { position:absolute; inset:0; opacity:0; transition:opacity 0.4s; }
.theme-card:hover .theme-glow { opacity:1; }
.t-dnd .theme-glow { background:radial-gradient(ellipse at 50% 100%, rgba(138,58,90,0.3), transparent 70%); }
.t-lotr .theme-glow { background:radial-gradient(ellipse at 50% 100%, rgba(59,111,59,0.3), transparent 70%); }
.t-skyrim .theme-glow { background:radial-gradient(ellipse at 50% 100%, rgba(58,106,138,0.3), transparent 70%); }
.t-got .theme-glow { background:radial-gradient(ellipse at 50% 100%, rgba(192,82,42,0.3), transparent 70%); }
.theme-emoji { font-size:2.4rem; margin-bottom:1rem; display:block; position:relative; z-index:1; }
.theme-name { font-family:var(--ff-display); font-size:0.95rem; color:var(--gold-pale); margin-bottom:0.5rem; position:relative; z-index:1; line-height:1.3; }
.theme-sub { font-family:var(--ff-head); font-size:0.6rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--smoke); margin-bottom:1rem; position:relative; z-index:1; }
.theme-teaser { font-size:0.9rem; line-height:1.55; color:rgba(245,237,216,0.55); position:relative; z-index:1; }
.theme-badge { position:absolute; top:1rem; right:1rem; font-family:var(--ff-head); font-size:0.55rem; letter-spacing:0.15em; text-transform:uppercase; padding:0.3rem 0.7rem; background:rgba(200,151,58,0.15); color:var(--gold); border:1px solid rgba(200,151,58,0.3); }
.themed-note { text-align:center; margin-top:2.5rem; font-family:var(--ff-body); font-style:italic; color:var(--olive-mid); font-size:0.95rem; }

/* ─── BOOKING ────────────────────────────────────────────────────── */
.booking { background:var(--ink); padding:6rem 6rem; position:relative; overflow:hidden; }
.booking-bg { position:absolute; inset:0; background:radial-gradient(ellipse 60% 60% at 50% 0%, rgba(59,74,47,0.5), transparent), radial-gradient(ellipse 40% 40% at 80% 100%, rgba(200,151,58,0.05), transparent); pointer-events:none; }
.booking .section-header { position:relative; z-index:1; }
.booking .section-title { color:white; }
.booking .section-lead { color:rgba(245,237,216,0.65); }
.booking-grid { position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; gap:3rem; max-width:980px; margin:0 auto; align-items:start; }

.cal { background:rgba(59,74,47,0.32); border:1px solid var(--rule); padding:1.5rem; }
.cal-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:1.2rem; }
.cal-title { font-family:var(--ff-display); color:var(--gold-pale); font-size:1.05rem; text-transform:capitalize; }
.cal-nav { display:flex; gap:0.5rem; }
.cal-nav button { background:none; border:1px solid var(--rule); color:var(--gold); width:34px; height:34px; cursor:pointer; font-size:1rem; transition:all 0.2s; display:flex; align-items:center; justify-content:center; }
.cal-nav button:hover:not(:disabled) { background:var(--gold); color:var(--ink); }
.cal-nav button:disabled { opacity:0.25; cursor:not-allowed; }
.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
.cal-dow { font-family:var(--ff-head); font-size:0.58rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--smoke); text-align:center; padding:0.3rem 0; }
.cal-day { aspect-ratio:1; display:flex; align-items:center; justify-content:center; font-family:var(--ff-body); font-size:0.95rem; color:rgba(245,237,216,0.35); border:1px solid transparent; cursor:default; transition:all 0.15s; }
.cal-day.empty { visibility:hidden; }
.cal-day.avail { color:var(--parch); border-color:var(--rule); cursor:pointer; background:rgba(200,151,58,0.06); }
.cal-day.avail:hover { background:var(--terra); color:#fff; border-color:var(--terra); }
.cal-day.selected { background:var(--gold); color:var(--ink); border-color:var(--gold); font-weight:600; }
.cal-legend { display:flex; gap:1.4rem; margin-top:1.2rem; font-family:var(--ff-head); font-size:0.56rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--smoke); }
.cal-legend span { display:flex; align-items:center; gap:0.5rem; }
.cal-sw { width:14px; height:14px; border:1px solid var(--rule); }
.cal-sw.a { background:rgba(200,151,58,0.06); }
.cal-sw.s { background:var(--gold); border-color:var(--gold); }

.bk-form { display:flex; flex-direction:column; }
.bk-field { margin-bottom:1.1rem; }
.bk-label { font-family:var(--ff-head); font-size:0.6rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold); display:block; margin-bottom:0.45rem; }
.bk-input, .bk-form select, .bk-form textarea {
  width:100%; background:rgba(15,19,9,0.55); border:1px solid var(--rule); color:var(--parch);
  padding:0.7rem 0.9rem; font-family:var(--ff-body); font-size:1rem; transition:border-color 0.2s;
}
.bk-input:focus, .bk-form select:focus, .bk-form textarea:focus { outline:none; border-color:var(--gold); }
.bk-form select option { background:var(--olive-deep); color:var(--parch); }
.bk-form textarea { resize:vertical; min-height:64px; }
.bk-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.bk-summary { font-family:var(--ff-body); font-style:italic; color:var(--gold-lite); font-size:1.02rem; min-height:1.5em; margin:0.2rem 0 1rem; }
.bk-submit { font-family:var(--ff-head); font-size:0.72rem; letter-spacing:0.22em; text-transform:uppercase; padding:1rem 2.5rem; background:var(--terra); color:white; text-align:center; border:none; cursor:pointer; transition:background 0.2s,transform 0.15s; width:100%; }
.bk-submit:hover { background:var(--terra-lite); transform:translateY(-2px); }
.bk-note { font-size:0.85rem; color:rgba(245,237,216,0.5); margin-top:1rem; line-height:1.5; }
.bk-note a { color:var(--gold); text-decoration:underline; }
.bk-success { display:none; padding:1.4rem; border:1px solid var(--gold); background:rgba(200,151,58,0.08); color:var(--gold-pale); font-family:var(--ff-body); font-size:1.05rem; line-height:1.6; margin-top:0.5rem; }
.bk-hp { position:absolute; left:-9999px; }

/* ─── FOOTER ─────────────────────────────────────────────────────── */
footer { background:var(--olive-deep); padding:4rem 6rem 2rem; border-top:1px solid var(--rule); }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:3rem; margin-bottom:3rem; }
.footer-brand { display:flex; align-items:center; gap:0.9rem; margin-bottom:1rem; }
.footer-brand img { width:52px; height:52px; }
.footer-brand-name { font-family:var(--ff-display); font-size:1rem; color:var(--gold); line-height:1.3; }
.footer-tagline { font-family:var(--ff-body); font-style:italic; font-size:0.95rem; color:rgba(245,237,216,0.45); line-height:1.6; max-width:300px; }
.footer-col-title { font-family:var(--ff-head); font-size:0.6rem; letter-spacing:0.3em; text-transform:uppercase; color:var(--gold); margin-bottom:1.2rem; }
.footer-links { list-style:none; display:flex; flex-direction:column; gap:0.6rem; }
.footer-links a { font-size:0.92rem; color:rgba(245,237,216,0.45); transition:color 0.2s; }
.footer-links a:hover { color:var(--gold); }
.footer-bottom { border-top:1px solid var(--rule); padding-top:1.5rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.footer-copy { font-size:0.8rem; color:rgba(245,237,216,0.3); font-family:var(--ff-head); letter-spacing:0.08em; }
.footer-sign { font-family:var(--ff-body); font-style:italic; font-size:0.85rem; color:var(--gold); opacity:0.6; }

/* ─── SCROLL REVEAL ──────────────────────────────────────────────── */
.reveal { opacity:0; transform:translateY(30px); transition:opacity 0.8s var(--ease-out-expo), transform 0.8s var(--ease-out-expo); }
.reveal.visible { opacity:1; transform:translateY(0); }
.reveal-delay-1 { transition-delay:0.1s; } .reveal-delay-2 { transition-delay:0.2s; }
.reveal-delay-3 { transition-delay:0.3s; } .reveal-delay-4 { transition-delay:0.4s; }

/* ─── RESPONSIVE ─────────────────────────────────────────────────── */
@media (max-width:980px) {
  .hero { grid-template-columns:1fr; padding:6rem 0 3rem; }
  .hero-content { padding:0 2rem; order:2; margin-top:2rem; }
  .hero-visual { padding:0 2rem; order:1; }
  .hero-frame { aspect-ratio:16/10; }
  .hero-stats { margin:2.5rem 2rem 0; flex-wrap:wrap; order:3; }
  .hero-stat { min-width:50%; padding:0.6rem 1rem; }
  .hero-stat:nth-child(2) { border-right:none; }
  .section, .booking { padding:4rem 1.6rem; }
  .quests-grid { grid-template-columns:1fr; max-width:420px; }
  .feast-layout { grid-template-columns:1fr; gap:2.5rem; }
  .table-grid { grid-template-columns:1fr 1fr; grid-auto-rows:180px; }
  .themed-grid { grid-template-columns:1fr 1fr; }
  .ritual-grid { grid-template-columns:1fr; }
  .host-layout { grid-template-columns:1fr; gap:2.5rem; }
  .booking-grid { grid-template-columns:1fr; gap:2.5rem; }
  .footer-grid { grid-template-columns:1fr; }
  nav { padding:0 1rem; height:64px; }
  .nav-logo { font-size:0.62rem; gap:0.5rem; }
  .nav-logo img { width:34px; height:34px; }
  .nav-links { display:none; }
  .nav-right { gap:0.8rem; }
  .manifesto { padding:1.4rem 1.6rem; }
}
@media (prefers-reduced-motion:reduce) { *, *::before, *::after { animation:none !important; transition:none !important; } .reveal { opacity:1; transform:none; } }
:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }
/* ─── GALLERY LIGHTBOX ─── */
.lightbox {
  position: fixed; inset: 0; z-index: 99999; background: rgba(15, 19, 9, 0.95);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none; transition: opacity 0.3s;
}
.lightbox.active { opacity: 1; pointer-events: auto; }
.lightbox-img { max-width: 90vw; max-height: 90vh; object-fit: contain; }
.lightbox-close {
  position: absolute; top: 30px; right: 40px; color: var(--gold); 
  font-size: 3rem; cursor: pointer; transition: transform 0.2s;
}
.lightbox-close:hover { transform: scale(1.1); color: white; }
.table-tile { cursor: pointer; } /* Show pointer on hover */
/* ─── BOOKING FORM FEEDBACK ─────────────────────────────────────── */
.bk-submit:disabled { opacity: 0.6; cursor: wait; }
@keyframes cgk-shake {
  0%, 100% { transform: translateX(0); }
  20%, 60% { transform: translateX(-8px); }
  40%, 80% { transform: translateX(8px); }
}
.bk-summary.shake { animation: cgk-shake 0.5s ease; color: var(--terra-lite); font-weight: 600; }
.bk-success.animated {
  opacity: 0; transform: translateY(20px);
  animation: cgk-fadeUp 0.6s cubic-bezier(0.19, 1, 0.22, 1) forwards;
}
@keyframes cgk-fadeUp { to { opacity: 1; transform: translateY(0); } }

/* ─── QUEST INCLUDES (compact list inside Full Feast class card) ───── */
.quest-includes { margin: 1.2rem 0 0.6rem; }
.quest-includes summary {
  font-family: var(--ff-head); font-size: 0.7rem; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--gold); cursor: pointer; padding: 0.4rem 0;
  border-bottom: 1px solid rgba(200, 151, 58, 0.25);
  transition: color 0.2s;
  list-style: none;
}
.quest-includes summary::-webkit-details-marker { display: none; }
.quest-includes summary::before {
  content: '▸ '; display: inline-block; transition: transform 0.2s; margin-right: 0.3em;
}
.quest-includes[open] summary::before { transform: rotate(90deg); }
.quest-includes summary:hover { color: var(--gold-lite); }
.quest-includes ul {
  list-style: none; padding: 0.6rem 0 0; margin: 0;
  font-family: var(--ff-body); font-size: 0.9rem; line-height: 1.6;
  color: rgba(245, 237, 216, 0.75);
}
.quest-includes li {
  padding: 0.2rem 0 0.2rem 1.2rem; position: relative;
}
.quest-includes li::before {
  content: '◆'; position: absolute; left: 0; color: var(--gold); font-size: 0.7em; top: 0.55em;
}

/* ─── CLASS CARD HIGHLIGHTS (What you'll do) ──────────────────────── */
.quest-hl-title {
  font-family: var(--ff-head); font-size: 0.72rem; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--terra); margin: 1.3rem 0 0.7rem;
  padding-bottom: 0.5rem; border-bottom: 1px solid rgba(200, 151, 58, 0.22);
}
.quest-highlights {
  list-style: none; padding: 0; margin: 0 0 0.5rem;
  font-family: var(--ff-body); font-size: 0.92rem; line-height: 1.5;
  color: var(--olive-mid);
}
.quest-highlights li {
  padding: 0.4rem 0 0.4rem 1.6rem; position: relative;
}
.quest-highlights li:not(:last-child) {
  border-bottom: 1px solid rgba(15, 19, 9, 0.08); 
}
.quest-highlights li::before {
  content: '◆'; position: absolute; left: 0; top: 0.5rem;
  color: var(--gold); font-size: 0.7em;
}
/* keep the price/button pinned to the bottom so both cards align */
.quest-body { display: flex; flex-direction: column; }
.quest-foot { margin-top: auto; }

/* ─── PRIVATE & CORPORATE EVENTS ──────────────────────────────────── */
.corp-points {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem;
  max-width: 1000px; margin: 0 auto 3rem;
}
.corp-point {
  background: rgba(255, 255, 255, 0.02); border: 1px solid var(--rule);
  padding: 1.8rem 1.5rem; border-radius: 4px; text-align: center;
}
.corp-point-icon {
  display: inline-block; color: var(--gold); font-size: 1.1rem; margin-bottom: 0.9rem;
}
.corp-point-title {
  font-family: var(--ff-head); font-size: 1.05rem; color: var(--parch);
  margin-bottom: 0.6rem; line-height: 1.3;
}
.corp-point-desc {
  font-family: var(--ff-body); font-size: 0.92rem; line-height: 1.6;
  color: rgba(245, 237, 216, 0.7);
}
.corp-cta {
  max-width: 620px; margin: 0 auto; text-align: center;
  background: rgba(200, 151, 58, 0.06); border: 1px solid rgba(200, 151, 58, 0.28);
  padding: 2.2rem 2rem; border-radius: 6px;
}
.corp-cta-title {
  font-family: var(--ff-head); font-size: 1.4rem; color: var(--gold-lite); margin-bottom: 0.6rem;
}
.corp-cta-desc {
  font-family: var(--ff-body); font-size: 0.98rem; line-height: 1.6;
  color: rgba(245, 237, 216, 0.8); margin-bottom: 1.6rem;
}
.corp-cta-buttons {
  display: flex; gap: 1rem; justify-content: center; align-items: center; flex-wrap: wrap;
}
@media (max-width: 820px) {
  .corp-points { grid-template-columns: 1fr; gap: 1rem; }
  .corp-cta-buttons { flex-direction: column; }
  .corp-cta-buttons a { width: 100%; }
}

/* ─── TESTIMONIALS ────────────────────────────────────────────────── */
.testi-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; max-width:1000px; margin:0 auto; }
.testi-card { background:rgba(59,74,47,0.35); border:1px solid var(--rule); padding:1.8rem; margin:0; display:flex; flex-direction:column; }
.testi-quote { font-family:var(--ff-body); font-style:italic; font-size:1.05rem; line-height:1.7; color:rgba(245,237,216,0.85); margin:0 0 1.2rem; flex:1; }
.testi-quote::before { content:'\201C'; color:var(--gold); margin-right:0.15em; }
.testi-quote::after { content:'\201D'; color:var(--gold); margin-left:0.15em; }
.testi-who { font-family:var(--ff-head); font-size:0.62rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold); }

/* ─── FAQ ─────────────────────────────────────────────────────────── */
.faq-list { max-width:720px; margin:0 auto; }
.faq-item { border-bottom:1px solid var(--rule); }
.faq-item summary { font-family:var(--ff-head); font-size:0.95rem; color:var(--olive); cursor:pointer; padding:1.1rem 0.2rem; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:1rem; transition:color 0.2s; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after { content:'+'; color:var(--terra); font-size:1.25rem; line-height:1; flex-shrink:0; }
.faq-item[open] summary::after { content:'\2013'; }
.faq-item summary:hover { color:var(--terra); }
.faq-a { font-size:1rem; line-height:1.7; color:var(--olive-mid); padding:0 0.2rem 1.2rem; max-width:62ch; }

/* ─── THEMED CTA ──────────────────────────────────────────────────── */
.themed-cta { display:flex; gap:1rem; justify-content:center; align-items:center; flex-wrap:wrap; margin-top:1.6rem; }
.btn-outline--terra { color:var(--terra); border-color:rgba(192,82,42,0.45); }
.btn-outline--terra:hover { border-color:var(--terra); color:var(--terra-lite); }

/* ─── FOOTER PRIVACY LINK ─────────────────────────────────────────── */
.footer-privacy { font-size:0.8rem; color:rgba(245,237,216,0.65); text-decoration:underline; text-underline-offset:3px; transition:color 0.2s; }
.footer-privacy:hover { color:var(--gold); }

/* ─── SMALL-SCREEN ADDITIONS ──────────────────────────────────────── */
@media (max-width:980px) {
  /* No hover on touch: gallery captions (the dish names) must be visible */
  .table-cap { opacity:1; }
  .testi-grid { grid-template-columns:1fr; }
  .themed-cta a { width:100%; text-align:center; }
}
