:root{
  --char:#1c1611;
  --char-deep:#120d0a;
  --char-2:#2a2019;
  --ink:#241a13;
  --cream:#f6ead4;
  --cream-2:#ecdcb8;
  --paper:#fffbf2;
  --ember:#cf4a1e;
  --ember-deep:#a0350f;
  --barnred:#7c2b1f;
  --mustard:#dd9d34;
  --line: rgba(36,26,19,0.14);
  --line-on-dark: rgba(246,234,212,0.18);
  --maxw: 1280px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:96px;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Work Sans", ui-sans-serif, system-ui, sans-serif;
  font-size:16px;
  font-weight:400;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
.sr-only{ position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
a{color:inherit;text-decoration:none;}
h1,h2,h3{
  font-family:"Bebas Neue",sans-serif;
  font-weight:400;
  margin:0;
  text-wrap:balance;
  letter-spacing:0.01em;
}
p{margin:0;}
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:40px;}
@media (max-width:640px){ .wrap{padding-inline:22px;} }

.eyebrow{
  font-family:"Work Sans", sans-serif;
  font-weight:600;
  font-size:0.72rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--ember);
}

/* ---------- Buttons ---------- */
.btn{
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:"Work Sans",sans-serif;
  font-weight:600;
  font-size:0.8rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  padding:15px 28px;
  border-radius:3px;
  background:var(--ember);
  color:var(--paper);
  transition:background .25s ease, transform .25s ease;
  border:1px solid var(--ember);
}
.btn:hover{ background:var(--ember-deep); border-color:var(--ember-deep); }
.btn svg{ width:15px;height:15px;transition:transform .25s ease; }
.btn:hover svg{ transform:translateX(2px); }
.btn.ghost{ background:transparent; }
.btn.ghost.on-cream{ color:var(--ink); border-color:var(--ink); }
.btn.ghost.on-dark{ color:var(--cream); border-color:var(--line-on-dark); }
.btn.ghost.on-dark:hover{ background:rgba(246,234,212,0.08); }
.btn.ghost.on-cream:hover{ background:rgba(36,26,19,0.06); }
.btn.ghost.on-ember{ color:var(--paper); border-color:rgba(255,251,242,0.55); }
.btn.ghost.on-ember:hover{ background:rgba(255,251,242,0.14); border-color:var(--paper); }
.btn-row{ display:flex; gap:16px; flex-wrap:wrap; align-items:center; }

.btn-outline{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-weight:600;
  font-size:0.78rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  padding-block:6px;
  border:none;
  border-bottom:1px solid currentColor;
  transition:opacity .25s ease, gap .25s ease;
}
.btn-outline:hover{ opacity:0.6; gap:14px; }
.btn-outline.on-cream{ color:var(--ink); }
.btn-outline.on-dark{ color:var(--cream); }
.btn-outline svg{ width:13px;height:13px;transition:transform .25s ease; }
.btn-outline:hover svg{ transform:translateX(2px); }

/* ---------- Brand ---------- */
.brand{ display:flex;align-items:baseline;gap:9px; color:var(--cream); }
.brand-script{
  font-family:"Kaushan Script",cursive;
  font-size:1.7rem;
  line-height:1;
  color:var(--cream);
}
.brand-badge{
  font-family:"Work Sans",sans-serif;
  font-weight:700;
  font-size:0.62rem;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--mustard);
}
header.is-scrolled .brand,
header.is-scrolled .brand-script{ color:var(--cream); }

/* ---------- Header ---------- */
header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  --hdr:0;
  background:rgba(18,13,10,var(--hdr));
  border-bottom:1px solid rgba(246,234,212, calc(var(--hdr) * 0.12));
  -webkit-backdrop-filter:blur(calc(var(--hdr) * 10px));
  backdrop-filter:blur(calc(var(--hdr) * 10px));
}
.header-row{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:24px;
  padding-block:22px;
}
nav.primary-nav{ display:flex; flex-wrap:wrap; justify-content:center; gap:26px 34px; justify-self:center; }
nav.primary-nav a{
  color:var(--cream);
  font-size:0.76rem;
  font-weight:600;
  letter-spacing:0.09em;
  text-transform:uppercase;
  padding-block:4px;
  border-bottom:1px solid transparent;
  transition:color .2s ease, border-color .2s ease, opacity .2s ease;
  opacity:0.85;
}
nav.primary-nav a:hover{ opacity:1; border-color:var(--mustard); }
nav.primary-nav a.active{ opacity:1; border-color:var(--ember); }

.header-right{ justify-self:end; }
.header-right .btn{ font-size:0.7rem; padding:11px 20px; }

@media (max-width:760px){
  nav.primary-nav{ gap:14px 18px; }
  nav.primary-nav a{ font-size:0.68rem; }
  .header-right .btn{ padding:9px 14px; font-size:0.62rem; }
}
@media (max-width:640px){
  .header-row{ grid-template-columns:auto 1fr auto; padding-block:16px; }
  nav.primary-nav{ display:none; }
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  min-height:100vh;
  background:var(--char-deep);
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  overflow:hidden;
}
.hero-photo{ position:absolute; inset:-2%; z-index:0; overflow:hidden; }
.hero-photo img{ width:100%;height:100%;object-fit:cover;position:absolute;inset:0; }
.hero-scrim{
  position:absolute;inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(14,9,6,0.42) 0%, rgba(14,9,6,0.3) 38%, rgba(14,9,6,0.72) 100%);
}
.hero-content{
  position:relative; z-index:2;
  padding:0 max(40px, calc((100vw - var(--maxw)) / 2 + 40px)) 120px;
}
.hero-content .eyebrow{ color:var(--mustard); }
.hero-content h1{
  margin-top:16px;
  font-size:clamp(2.6rem,7vw,5.6rem);
  line-height:0.98;
  color:var(--cream);
  text-transform:uppercase;
  max-width:14ch;
}
.hero-content h1 .script{
  display:block;
  font-family:"Kaushan Script",cursive;
  text-transform:none;
  font-size:0.5em;
  color:var(--mustard);
  line-height:1.3;
}
.hero-content p{
  margin-top:22px; max-width:46ch;
  color:rgba(246,234,212,0.82); font-size:1.05rem;
}
.hero-content .hero-ctas{ margin-top:34px; display:flex; gap:16px; flex-wrap:wrap; }

.scroll-cue{
  position:absolute; z-index:2; bottom:44px;
  right:max(40px, calc((100vw - var(--maxw)) / 2 + 40px));
  display:flex; flex-direction:column; align-items:flex-end; gap:10px;
}
.scroll-cue svg{ width:16px;height:16px; color:var(--cream); animation:cueBounce 1.8s ease-in-out infinite; }
.scroll-cue span{
  font-size:0.66rem; font-weight:600; letter-spacing:0.16em;
  text-transform:uppercase; color:rgba(246,234,212,0.6);
  animation:cueBounce 1.8s ease-in-out infinite;
}
@keyframes cueBounce{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(6px); } }
@media (prefers-reduced-motion:reduce){
  .scroll-cue svg, .scroll-cue span{ animation:none; }
}

@media (max-width:640px){
  .hero{ min-height:640px; }
  .hero-content{ padding-bottom:80px; }
  .scroll-cue{ display:none; }
}

/* ---------- Page intro (subpages) ---------- */
.page-intro{
  position:relative;
  overflow:hidden;
  background:var(--char-deep);
  padding:198px 0 100px;
}
.page-intro-media{ position:absolute; inset:0; z-index:0; overflow:hidden; }
.page-intro-media img{
  width:100%; height:100%; object-fit:cover;
  filter:blur(2px) brightness(0.75);
  transform:scale(1.08);
}
.page-intro-scrim{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(14,9,6,0.55) 0%, rgba(14,9,6,0.72) 100%);
}
.page-intro .wrap{ position:relative; z-index:2; max-width:760px; }
.page-intro .eyebrow{ color:var(--mustard); }
.page-intro h1{ font-size:clamp(2.4rem,5.5vw,4.2rem); margin-top:16px; line-height:0.98; color:var(--cream); text-transform:uppercase; }
.page-intro p{ margin-top:22px; color:rgba(246,234,212,0.78); opacity:1; font-size:1.02rem; line-height:1.8; max-width:60ch; }

@media (max-width:640px){
  .page-intro{ padding:152px 0 68px; }
}

/* ---------- Section heading helper ---------- */
.section-head{ max-width:640px; }
.section-head h2{ margin-top:16px; font-size:clamp(2rem,4vw,3rem); line-height:1; text-transform:uppercase; }
.section-head.center{ margin-inline:auto; text-align:center; }

/* ---------- Welcome / split sections ---------- */
.split{
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:stretch;
}
.split.on-paper{ background:var(--paper); }
.split.on-char{ background:var(--char); color:var(--cream); }
.split .col-text{
  padding:100px 6%;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.split h2{ font-size:clamp(1.9rem,3.6vw,2.8rem);margin-top:16px;line-height:1;text-transform:uppercase; }
.split.on-char h2{ color:var(--cream); }
.split p{ margin-top:20px;max-width:46ch;opacity:0.75; }
.split .btn, .split .btn-outline{ margin-top:32px; align-self:flex-start; }
.split figure{ margin:0;overflow:hidden;position:relative;min-height:480px; }
.split figure img{ position:absolute;inset:0;width:100%;height:100%;object-fit:cover; }
.split.reverse{ direction:rtl; }
.split.reverse > *{ direction:ltr; }

@media (max-width:900px){
  .split{ grid-template-columns:1fr; }
  .split .col-text{ padding:72px 8%; order:2; }
  .split figure{ min-height:340px; order:1; }
  .split.reverse .col-text{ order:2; }
  .split.reverse figure{ order:1; }
}
@media (max-width:640px){
  .split .col-text{ padding:64px 8%; }
}

/* ---------- Texture band (used behind stat/quote strips) ---------- */
.band{ background:var(--char); color:var(--cream); padding-block:26px; }
.band .wrap{ display:flex; flex-wrap:wrap; gap:16px 40px; justify-content:center; align-items:center; }
.band .stat{ display:flex; align-items:baseline; gap:8px; font-size:0.82rem; letter-spacing:0.04em; color:rgba(246,234,212,0.78); }
.band .stat strong{ font-family:"Bebas Neue",sans-serif; font-size:1.3rem; letter-spacing:0.02em; color:var(--mustard); }

/* ---------- Events / tickets ---------- */
.events{ background:var(--cream); padding-block:120px; }
.events-grid{ margin-top:56px; display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.ticket{
  background:var(--paper);
  border:1px dashed rgba(36,26,19,0.28);
  border-radius:6px;
  padding:34px 28px;
  position:relative;
  display:flex; flex-direction:column; gap:14px;
}
.ticket::before, .ticket::after{
  content:""; position:absolute; width:22px; height:22px; border-radius:50%;
  background:var(--cream); top:50%; transform:translateY(-50%);
}
.ticket::before{ left:-11px; }
.ticket::after{ right:-11px; }
.ticket .ticket-tag{
  align-self:flex-start;
  font-size:0.66rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase;
  color:var(--ember); background:rgba(207,74,30,0.1); padding:6px 12px; border-radius:20px;
}
.ticket h3{ font-size:1.5rem; text-transform:uppercase; line-height:1.05; }
.ticket p{ opacity:0.7; font-size:0.92rem; }
.ticket.is-placeholder{ background:repeating-linear-gradient(135deg, var(--paper) 0 14px, #faf3e4 14px 28px); border-style:dashed; }
.ticket-flag{
  align-self:flex-start; font-size:0.66rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--ink); background:var(--mustard); padding:6px 12px; border-radius:3px;
}
.ticket-date{
  width:76px; padding:10px 0 8px; text-align:center; border:2px dashed rgba(36,26,19,0.3); border-radius:6px;
  color:rgba(36,26,19,0.35); display:flex; flex-direction:column; line-height:1;
}
.ticket-date strong{ font-family:"Bebas Neue",sans-serif; font-weight:400; font-size:2.2rem; letter-spacing:0.04em; }
.ticket-date span{ margin-top:4px; font-size:0.6rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; }
.ticket.is-placeholder h3{ color:rgba(36,26,19,0.45); }
.ticket-artist{ font-style:italic; }
.skeleton{ display:flex; flex-direction:column; gap:9px; margin-top:2px; }
.skeleton i{ display:block; height:9px; border-radius:5px; background:rgba(36,26,19,0.1); }
.skeleton i:last-child{ width:62%; }
.ticket .ticket-meta{ margin-top:auto; padding-top:14px; border-top:1px dashed rgba(36,26,19,0.22); font-size:0.74rem; letter-spacing:0.08em; text-transform:uppercase; opacity:0.6; }

@media (max-width:900px){
  .events-grid{ grid-template-columns:1fr; max-width:440px; margin-inline:auto; }
}
@media (max-width:640px){
  .events{ padding-block:80px; }
}

/* ---------- Info panel (rules / notices lists) ---------- */
.info-panel{ background:var(--paper); padding-block:100px; }
.info-grid{ margin-top:56px; display:grid; grid-template-columns:repeat(2,1fr); gap:40px 56px; }
.info-card{ display:flex; gap:18px; }
.info-card .info-icon{
  flex:none; width:46px;height:46px; border-radius:50%;
  background:var(--char); color:var(--mustard);
  display:flex;align-items:center;justify-content:center;
}
.info-card .info-icon svg{ width:20px;height:20px; }
.info-card h3{ font-family:"Work Sans",sans-serif; font-weight:700; font-size:1rem; text-transform:uppercase; letter-spacing:0.03em; }
.info-card p{ margin-top:8px; opacity:0.72; font-size:0.94rem; }

@media (max-width:760px){
  .info-grid{ grid-template-columns:1fr; gap:32px; }
}

/* ---------- Gallery grid (boende) ---------- */
.gallery{ padding-block:100px; background:var(--paper); }
.gallery-grid{
  margin-top:56px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-auto-rows:150px;
  gap:10px;
}
.gallery-grid img{ width:100%;height:100%;object-fit:cover;border-radius:4px; }
.gallery-grid a{ display:block; overflow:hidden; border-radius:4px; position:relative; }
.gallery-grid a img{ transition:transform .5s ease; }
.gallery-grid a:hover img{ transform:scale(1.05); }
.gallery-grid a:nth-child(1){ grid-column:span 2; grid-row:span 2; }
.gallery-grid a:nth-child(4){ grid-column:span 2; }

@media (max-width:760px){
  .gallery-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:130px; }
  .gallery-grid a:nth-child(1){ grid-column:span 2; grid-row:span 2; }
  .gallery-grid a:nth-child(4){ grid-column:span 1; }
}

/* ---------- Amenities ---------- */
.amenities{ background:var(--char); color:var(--cream); padding-block:100px; }
.amenities .eyebrow{ color:var(--mustard); }
.amenities-grid{ margin-top:48px; display:grid; grid-template-columns:repeat(3,1fr); gap:32px 40px; }
.amenity{ display:flex; align-items:center; gap:14px; font-size:0.98rem; }
.amenity svg{ width:20px;height:20px;flex:none;color:var(--mustard); }

@media (max-width:760px){
  .amenities-grid{ grid-template-columns:1fr 1fr; gap:24px; }
}
@media (max-width:500px){
  .amenities-grid{ grid-template-columns:1fr; }
}

/* ---------- Booking CTA band ---------- */
.booking-cta{
  background:linear-gradient(120deg, var(--ember), var(--ember-deep));
  padding:80px 0;
  text-align:center;
}
.booking-cta h2{ color:var(--paper); font-size:clamp(1.9rem,3.4vw,2.8rem); text-transform:uppercase; }
.booking-cta p{ margin-top:14px; color:rgba(255,251,242,0.85); max-width:52ch; margin-inline:auto; }
.booking-cta .btn-row{ margin-top:30px; justify-content:center; }
.booking-cta .btn:not(.ghost){ background:var(--paper); color:var(--ember-deep); border-color:var(--paper); }
.booking-cta .btn:not(.ghost):hover{ background:var(--char); color:var(--cream); border-color:var(--char); }

@media (max-width:640px){
  .booking-cta{ padding:64px 0; }
}

/* ---------- FAQ ---------- */
.faq{ background:var(--paper); padding-block:110px; }
.faq-list{ margin-top:48px; display:flex; flex-direction:column; gap:0; max-width:840px; }
.faq-item{ border-bottom:1px solid var(--line); }
.faq-item summary{
  cursor:pointer; list-style:none; padding:26px 4px;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  font-family:"Bebas Neue",sans-serif; font-size:1.3rem; letter-spacing:0.01em; text-transform:uppercase;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary .q-icon{
  flex:none; width:30px;height:30px;border-radius:50%; border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center; position:relative; transition:transform .25s ease, background .25s ease;
}
.faq-item summary .q-icon::before, .faq-item summary .q-icon::after{
  content:""; position:absolute; background:var(--ink);
}
.faq-item summary .q-icon::before{ width:12px;height:1.5px; }
.faq-item summary .q-icon::after{ width:1.5px;height:12px; transition:transform .25s ease; }
.faq-item[open] summary .q-icon{ background:var(--ember); border-color:var(--ember); }
.faq-item[open] summary .q-icon::before, .faq-item[open] summary .q-icon::after{ background:var(--paper); }
.faq-item[open] summary .q-icon::after{ transform:rotate(90deg); }
.faq-item .faq-a{ padding:0 4px 28px; max-width:70ch; opacity:0.74; }

/* ---------- Catering cards ---------- */
.catering{ background:var(--paper); padding-block:110px; }
.catering-grid{ margin-top:56px; display:grid; grid-template-columns:1fr 1fr; gap:32px; }
.catering-card{ background:var(--cream); border-radius:8px; padding:44px 38px; display:flex; flex-direction:column; gap:16px; }
.catering-card .cat-icon{
  width:52px;height:52px;border-radius:50%; background:var(--char); color:var(--mustard);
  display:flex;align-items:center;justify-content:center;
}
.catering-card .cat-icon svg{ width:24px;height:24px; }
.catering-card h3{ font-size:1.7rem; text-transform:uppercase; margin-top:6px; }
.catering-card p{ opacity:0.75; }
.catering-card .cat-meta{ margin-top:auto; padding-top:16px; border-top:1px solid var(--line); font-size:0.85rem; opacity:0.65; }
.catering-card .btn-outline{ margin-top:6px; align-self:flex-start; color:var(--ink); }

@media (max-width:820px){
  .catering-grid{ grid-template-columns:1fr; }
}

/* ---------- Catering menu ---------- */
.menu-section{ background:var(--cream); padding-block:110px; }
.menu-group{ margin-top:64px; }
.menu-group:first-child{ margin-top:56px; }
.menu-group-head{ display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; }
.menu-group-head h3{ font-size:1.5rem; text-transform:uppercase; }
.menu-group-head span{ font-size:0.85rem; opacity:0.6; }

.menu-tier{ background:var(--paper); border-radius:8px; padding:34px 38px; margin-top:22px; }
.menu-tier-head{ display:flex; justify-content:space-between; align-items:baseline; gap:16px; flex-wrap:wrap; padding-bottom:18px; border-bottom:1px dashed var(--line); }
.menu-tier-head h4{ font-size:1.5rem; text-transform:uppercase; line-height:1.05; }
.menu-tier-price{ font-family:"Bebas Neue",sans-serif; font-size:1.25rem; letter-spacing:0.02em; color:var(--ember); white-space:nowrap; }

.menu-tier-list{
  margin:18px 0 0; padding:0; list-style:none;
  columns:2; column-gap:36px;
}
.menu-tier-list li{
  break-inside:avoid; position:relative; padding:7px 0 7px 17px;
  font-size:0.95rem; opacity:0.82; border-bottom:1px solid var(--line);
}
.menu-tier-list li::before{ content:"–"; position:absolute; left:0; top:7px; color:var(--ember); }
.menu-tier-list li:last-child{ border-bottom:none; }

.menu-tier-sauces{ margin-top:20px; display:flex; flex-wrap:wrap; align-items:center; gap:9px; }
.menu-tier-sauces .sauces-label{ font-size:0.72rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; opacity:0.55; margin-right:4px; }
.sauce-tag{
  font-size:0.78rem; padding:5px 12px; border-radius:20px;
  background:var(--cream); color:var(--ink); opacity:0.82;
}

@media (max-width:560px){
  .menu-tier-list{ columns:1; }
}

.menu-extra{ margin-top:32px; background:var(--char); color:var(--cream); border-radius:8px; padding:28px 34px; display:grid; grid-template-columns:repeat(2,1fr); gap:12px 32px; }
.menu-extra div{ font-size:0.9rem; display:flex; justify-content:space-between; gap:12px; opacity:0.88; }
.menu-extra strong{ color:var(--mustard); font-weight:600; }

@media (max-width:640px){
  .menu-tier{ padding:28px 24px; }
  .menu-extra{ grid-template-columns:1fr; }
}

/* ---------- Contact ---------- */
.contact{ background:var(--paper); padding-block:110px; }
.contact-grid{ margin-top:56px; display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start; }
.contact-col .row{ display:flex; gap:16px; align-items:flex-start; margin-bottom:26px; }
.contact-col .row svg{ width:19px;height:19px;flex:none;margin-top:3px;color:var(--ember); }
.contact-col .row h3{ font-family:"Work Sans",sans-serif; font-weight:700; font-size:0.85rem; letter-spacing:0.05em; text-transform:uppercase; margin-bottom:6px; }
.contact-col .row p{ opacity:0.75; }
.contact-col .directions{ margin-top:36px; padding-top:32px; border-top:1px solid var(--line); }
.contact-col .directions h3{ font-family:"Work Sans",sans-serif; font-weight:700; font-size:0.85rem; letter-spacing:0.05em; text-transform:uppercase; margin-bottom:14px; }
.contact-col .directions p{ opacity:0.72; margin-bottom:16px; font-size:0.94rem; }
.map-frame{ border-radius:8px; overflow:hidden; border:1px solid var(--line); min-height:420px; }
.map-frame iframe{ width:100%;height:100%;min-height:420px;border:0;display:block; }

@media (max-width:900px){
  .contact-grid{ grid-template-columns:1fr; gap:40px; }
  .map-frame{ order:-1; }
}

/* ---------- Instagram / follow band ---------- */
.follow{ background:var(--char); padding-block:110px; text-align:center; }
.follow .eyebrow{ color:var(--mustard); }
.follow h2{ margin-top:16px; color:var(--cream); font-size:clamp(2rem,3.8vw,3rem); text-transform:uppercase; }
.follow p{ margin-top:18px; color:rgba(246,234,212,0.72); max-width:52ch; margin-inline:auto; }
.follow-links{ margin-top:34px; display:flex; gap:18px; justify-content:center; flex-wrap:wrap; }
.follow-links a{
  display:flex; align-items:center; gap:10px;
  border:1px solid var(--line-on-dark); color:var(--cream);
  padding:14px 26px; border-radius:3px; font-size:0.8rem; font-weight:600; letter-spacing:0.08em; text-transform:uppercase;
  transition:background .2s ease, border-color .2s ease;
}
.follow-links a:hover{ background:rgba(246,234,212,0.08); border-color:var(--mustard); }
.follow-links svg{ width:17px;height:17px; }

@media (max-width:640px){
  .follow{ padding-block:80px; }
}

/* ---------- Footer ---------- */
footer{ background:var(--char-deep);color:rgba(246,234,212,0.85);padding-block:96px; }
.footer-grid{
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr 1fr auto;
  gap:32px;
  align-items:start;
}
.footer-brand p{ margin-top:14px;font-size:0.7rem;letter-spacing:0.13em;text-transform:uppercase;color:rgba(246,234,212,0.5); }
.footer-col{ display:flex;flex-direction:column;gap:12px;font-size:0.88rem;color:rgba(246,234,212,0.75); }
.footer-col h4{ font-family:"Work Sans",sans-serif; font-weight:700; font-size:0.68rem; letter-spacing:0.13em; text-transform:uppercase; color:rgba(246,234,212,0.45); margin-bottom:2px; }
.footer-col .row{ display:flex;gap:12px;align-items:flex-start; }
.footer-col svg{ width:15px;height:15px;flex:none;margin-top:2px;color:rgba(246,234,212,0.4); }
.footer-social{ display:flex;gap:18px;align-items:flex-start; }
.footer-social a{
  width:38px;height:38px;border-radius:50%;border:1px solid var(--line-on-dark);
  display:flex;align-items:center;justify-content:center;opacity:0.85;transition:opacity .2s ease, border-color .2s ease;
}
.footer-social a:hover{ opacity:1; border-color:var(--mustard); }
.footer-social svg{ width:16px;height:16px; }
footer .fine{ margin-top:56px; padding-top:28px; border-top:1px solid var(--line-on-dark); font-size:0.72rem; color:rgba(246,234,212,0.4); }

@media (max-width:980px){
  .footer-grid{ grid-template-columns:1fr 1fr;grid-template-areas:"brand brand" "addr phone" "hours social"; row-gap:40px; }
  .footer-brand{ grid-area:brand; }
}
@media (max-width:560px){
  .footer-grid{ grid-template-columns:1fr;grid-template-areas:"brand" "addr" "phone" "hours" "social"; }
}

/* ---------- reveal on scroll ---------- */
.reveal{ opacity:0;transform:translateY(18px);transition:opacity .8s ease, transform .8s ease; }
.reveal.in{ opacity:1;transform:translateY(0); }
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .reveal{ opacity:1;transform:none;transition:none; }
}

/* ---------- Direct booking ---------- */
.booking-form{ background:var(--paper); border-radius:10px; padding:34px 36px; box-shadow:0 18px 50px rgba(18,11,7,0.28); }
.form-row{ margin-bottom:16px; }
.form-row.two{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.booking-form label{ display:block; font-size:0.72rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink); }
.booking-form input, .booking-form select, .booking-form textarea{
  display:block; width:100%; margin-top:7px; padding:12px 14px; font:inherit; font-size:0.95rem; letter-spacing:0; text-transform:none; font-weight:400;
  color:var(--ink); background:#fff; border:1px solid rgba(36,26,19,0.25); border-radius:4px;
}
.booking-form textarea{ resize:vertical; }
.booking-form input:focus, .booking-form select:focus, .booking-form textarea:focus{ outline:2px solid var(--ember); outline-offset:1px; border-color:var(--ember); }
.booking-form .btn{ width:100%; justify-content:center; margin-top:6px; cursor:pointer; }
.form-status{ margin-top:14px; font-size:0.9rem; min-height:1.2em; }
.form-status.ok{ color:#2d6a3a; }
.form-status.error{ color:var(--ember-deep); }
@media (max-width:520px){
  .form-row.two{ grid-template-columns:1fr; }
  .booking-form{ padding:26px 22px; }
}

/* ---------- Booking modal ---------- */
body.modal-open{ overflow:hidden; }
.modal[hidden]{ display:none; }
.modal{ position:fixed; inset:0; z-index:300; display:flex; align-items:center; justify-content:center; padding:20px; }
.modal-backdrop{ position:absolute; inset:0; background:rgba(18,11,7,0.72); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); }
.modal-card{
  position:relative; width:100%; max-width:560px; max-height:calc(100vh - 40px); overflow:auto;
  background:var(--paper); color:var(--ink); border-radius:10px; padding:38px 38px 32px;
  box-shadow:0 24px 70px rgba(0,0,0,0.45); animation:modalIn .25s ease;
}
@keyframes modalIn{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
.modal-card h2{ margin-top:8px; font-size:2.2rem; text-transform:uppercase; line-height:1; }
.modal-lead{ margin-top:12px; font-size:0.93rem; opacity:0.72; }
.modal-card .booking-form{ margin-top:22px; padding:0; box-shadow:none; background:transparent; }
.modal-close{
  position:absolute; top:14px; right:14px; width:38px; height:38px; border-radius:50%; border:1px solid var(--line);
  background:transparent; color:var(--ink); display:flex; align-items:center; justify-content:center; cursor:pointer;
}
.modal-close:hover{ background:rgba(36,26,19,0.06); }
.modal-close svg{ width:16px; height:16px; }
@media (prefers-reduced-motion:reduce){ .modal-card{ animation:none; } }
@media (max-width:520px){ .modal-card{ padding:30px 22px 24px; } }
