/* =====================================================================
   Green Lane Banqueting — v2 design system
   Mobile-first · dark luxury · zero dependencies
   ===================================================================== */

/* ---------- Fonts (self-hosted variable fonts) ---------- */
@font-face{
  font-family:"Cormorant Garamond";
  src:url("../fonts/CormorantGaramond-var.woff2") format("woff2");
  font-weight:300 700; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Cormorant Garamond";
  src:url("../fonts/CormorantGaramond-italic-var.woff2") format("woff2");
  font-weight:300 700; font-style:italic; font-display:swap;
}
@font-face{
  font-family:"Jost";
  src:url("../fonts/Jost-var.woff2") format("woff2");
  font-weight:100 900; font-style:normal; font-display:swap;
}

/* ---------- Tokens ---------- */
:root{
  --ink:#0B0A0D; --ink-2:#121016; --ink-3:#191621;
  --ivory:#F5F0E6; --text:#CEC8BC; --muted:#9B948A;
  --gold:#E2BE6B; --gold-light:#F6E6B4; --gold-deep:#B8923F;
  --line:rgba(226,190,107,.16); --line-soft:rgba(226,190,107,.09);
  --grad-gold:linear-gradient(135deg,#B8923F 0%,#E2BE6B 45%,#F6E6B4 100%);
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:"Jost",-apple-system,"Segoe UI",sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1);
  --nav-h:74px;
  --radius:14px;
}

/* ---------- Reset / base ---------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; overflow-x:hidden; scroll-padding-top:calc(var(--nav-h) + 10px); }
body{
  background:var(--ink); color:var(--text);
  font-family:var(--sans); font-weight:400; font-size:1.02rem; line-height:1.72;
  overflow-x:hidden; -webkit-font-smoothing:antialiased;
}
img,svg,video{ display:block; max-width:100%; }
img{ height:auto; }
a{ color:var(--gold); text-decoration:none; }
a:hover{ color:var(--gold-light); }
ul,ol{ list-style:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; border-radius:2px; }
::selection{ background:rgba(226,190,107,.28); color:var(--ivory); }
section{ overflow-x:clip; }

h1,h2,h3,h4{ font-family:var(--serif); color:var(--ivory); font-weight:600; line-height:1.08; letter-spacing:-.01em; text-wrap:balance; }
h2{ font-size:clamp(1.9rem,4.6vw,2.9rem); }
h3{ font-size:clamp(1.3rem,2.6vw,1.6rem); }

.skip-link{
  position:absolute; left:1rem; top:-4rem; z-index:200;
  background:var(--ink-3); color:var(--gold); padding:.7rem 1.2rem;
  border:1px solid var(--line); border-radius:8px; transition:top .2s;
}
.skip-link:focus{ top:1rem; }

/* ---------- Layout ---------- */
.container{ width:min(1180px,100% - 2.6rem); margin-inline:auto; }
.section{ padding-block:clamp(4rem,9vw,6.5rem); }
.section.tint{ background:var(--ink-2); border-block:1px solid var(--line-soft); }
.center{ text-align:center; }

.eyebrow{
  display:inline-flex; align-items:center; gap:.7rem;
  font-size:.76rem; font-weight:500; letter-spacing:.3em; text-transform:uppercase; color:var(--gold);
}
.eyebrow::before{ content:""; width:2rem; height:1px; background:var(--grad-gold); }
.center .eyebrow::after{ content:""; width:2rem; height:1px; background:var(--grad-gold); }
.section-head{ max-width:720px; margin-bottom:clamp(2.2rem,5vw,3.4rem); }
.section-head.center{ margin-inline:auto; }
.section-head h2{ margin:.9rem 0 .9rem; }
.section-head p{ color:var(--muted); }
.gold-i{ font-style:italic; font-weight:500; background:var(--grad-gold); -webkit-background-clip:text; background-clip:text; color:transparent; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  font-weight:500; font-size:.92rem; letter-spacing:.12em; text-transform:uppercase;
  padding:.95rem 1.9rem; border-radius:999px; min-height:48px;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s, color .25s;
}
.btn svg{ width:17px; height:17px; flex:none; }
.btn-gold{
  background:var(--grad-gold); color:#141005; border:1px solid transparent;
  box-shadow:0 6px 22px rgba(226,190,107,.22);
}
.btn-gold:hover{ transform:translateY(-2px); color:#141005; box-shadow:0 10px 30px rgba(226,190,107,.3); }
.btn-ghost{ border:1px solid var(--line); color:var(--ivory); }
.btn-ghost:hover{ border-color:var(--gold); color:var(--gold-light); }
.btn-block{ width:100%; }

/* ---------- Nav ---------- */
.nav{
  position:fixed; inset:0 0 auto; z-index:100; height:var(--nav-h);
  display:flex; align-items:center;
  background:rgba(11,10,13,.86); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line-soft);
}
.nav-inner{ display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.brand{ display:inline-flex; align-items:center; }
.brand img{ height:52px; width:auto; }
.nav-links{ display:none; align-items:center; gap:1.7rem; }
.nav-links a{ color:var(--text); font-size:.86rem; letter-spacing:.14em; text-transform:uppercase; padding:.4rem 0; border-bottom:1px solid transparent; }
.nav-links a:hover{ color:var(--gold-light); }
.nav-links a[aria-current="page"]{ color:var(--gold); border-bottom-color:var(--gold); }
.nav-cta{ display:none; }
.nav-actions{ display:flex; align-items:center; gap:.7rem; }
.icon-btn{
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; border:1px solid var(--line); border-radius:50%; color:var(--gold);
  transition:border-color .2s, color .2s;
}
.icon-btn:hover{ border-color:var(--gold); color:var(--gold-light); }
.icon-btn svg{ width:19px; height:19px; }
.burger{ display:inline-flex; flex-direction:column; justify-content:center; gap:5px; width:44px; height:44px; align-items:center; }
.burger span{ width:24px; height:2px; background:var(--ivory); transition:transform .3s var(--ease), opacity .2s; }
.menu-open .burger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.menu-open .burger span:nth-child(2){ opacity:0; }
.menu-open .burger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.mobile-menu{
  position:fixed; inset:0; z-index:90; background:rgba(11,10,13,.98);
  display:flex; flex-direction:column; align-items:center; justify-content:flex-start;
  padding:calc(var(--nav-h) + 1.6rem) 1.5rem 2rem; gap:.35rem;
  opacity:0; visibility:hidden; transition:opacity .3s var(--ease), visibility .3s;
  overflow-y:auto; overscroll-behavior:contain;
}
.menu-open .mobile-menu{ opacity:1; visibility:visible; }
.mobile-menu a{ font-family:var(--serif); font-size:1.7rem; color:var(--ivory); padding:.45rem 1rem; }
.mobile-menu a[aria-current="page"]{ color:var(--gold); }
.mobile-menu .btn{ margin-top:1.2rem; }

@media (min-width:1000px){
  .nav-links{ display:flex; }
  .nav-cta{ display:inline-flex; padding:.7rem 1.5rem; min-height:42px; font-size:.82rem; }
  .burger, .mobile-menu{ display:none; }
  .nav-actions .icon-btn{ display:none; }
}

/* ---------- Page hero (subpages) ---------- */
.page-hero{
  padding:calc(var(--nav-h) + clamp(3rem,8vw,5.5rem)) 0 clamp(2.6rem,6vw,4rem);
  background:
    radial-gradient(700px 320px at 85% -10%, rgba(226,190,107,.13), transparent 65%),
    radial-gradient(500px 260px at 0% 110%, rgba(184,146,63,.1), transparent 60%),
    var(--ink-2);
  border-bottom:1px solid var(--line-soft);
}
.page-hero h1{ font-size:clamp(2.4rem,6vw,3.9rem); margin:.9rem 0 1rem; }
.page-hero .lead{ max-width:640px; color:var(--muted); font-size:1.06rem; }
.breadcrumbs{ display:flex; flex-wrap:wrap; gap:.45rem; font-size:.8rem; letter-spacing:.08em; color:var(--muted); margin-bottom:1.2rem; }
.breadcrumbs a{ color:var(--muted); }
.breadcrumbs a:hover{ color:var(--gold); }
.breadcrumbs .sep{ opacity:.5; }
.breadcrumbs [aria-current]{ color:var(--gold); }

/* ---------- Home hero ---------- */
.hero{
  position:relative; min-height:92svh; display:flex; align-items:center;
  padding:calc(var(--nav-h) + 3rem) 0 4.5rem; overflow:hidden;
}
.hero-bg{ position:absolute; inset:0; }
.hero-bg img,.hero-bg video{ width:100%; height:100%; object-fit:cover; }
.hero-bg video{ position:absolute; inset:0; display:none; }
.hero-scrim{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg,rgba(11,10,13,.78) 0%,rgba(11,10,13,.55) 45%,rgba(11,10,13,.92) 100%);
}
.hero .container{ position:relative; z-index:2; }
.hero h1{
  display:inline-flex; align-items:center; gap:.7rem;
  font-family:var(--sans); font-size:.8rem; font-weight:500;
  letter-spacing:.3em; text-transform:uppercase; color:var(--gold); line-height:1.5;
}
.hero h1::before{ content:""; width:2rem; height:1px; background:var(--grad-gold); flex:none; }
.hero .display{
  font-family:var(--serif); color:var(--ivory); font-weight:600;
  font-size:clamp(2.8rem,7vw,5.6rem); line-height:1.02; letter-spacing:-.01em;
  margin:1.3rem 0 0; max-width:13ch; text-wrap:balance;
}
.hero-sub{ max-width:560px; margin-top:1.5rem; color:var(--text); font-size:1.06rem; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:.9rem; margin-top:2.2rem; }
.hero-stats{ display:flex; flex-wrap:wrap; gap:2.2rem 3rem; margin-top:3rem; padding-top:1.8rem; border-top:1px solid rgba(226,190,107,.2); }
.hero-stat .num{ font-family:var(--serif); font-size:1.9rem; color:var(--gold); font-weight:600; }
.hero-stat .lbl{ font-size:.78rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); margin-top:.15rem; }
@media (max-width:768px){
  .hero-bg video{ display:block; }
}

/* ---------- Cards & grids ---------- */
.grid-2{ display:grid; gap:1.4rem; }
.grid-3{ display:grid; gap:1.4rem; }
@media (min-width:700px){ .grid-2{ grid-template-columns:1fr 1fr; } .grid-3{ grid-template-columns:1fr 1fr; } }
@media (min-width:1000px){ .grid-3{ grid-template-columns:repeat(3,1fr); } }

.card{
  background:var(--ink-3); border:1px solid var(--line-soft); border-radius:var(--radius);
  padding:1.8rem 1.6rem; transition:border-color .3s, transform .3s var(--ease);
}
.card:hover{ border-color:var(--line); transform:translateY(-4px); }
.card h3{ margin:.9rem 0 .55rem; }
.card p{ color:var(--muted); font-size:.97rem; }
.card .ic{
  display:inline-flex; width:52px; height:52px; align-items:center; justify-content:center;
  border:1px solid var(--line); border-radius:50%; color:var(--gold);
}
.card .ic svg{ width:22px; height:22px; }
.card-link{ display:inline-flex; align-items:center; gap:.45rem; margin-top:1rem; font-size:.85rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); }
.card-link svg{ width:15px; height:15px; transition:transform .25s var(--ease); }
.card:hover .card-link svg, .card-link:hover svg{ transform:translateX(4px); }
a.card{ display:block; color:inherit; }

/* split feature */
.split{ display:grid; gap:2.4rem; align-items:center; }
@media (min-width:900px){
  .split{ grid-template-columns:1.05fr .95fr; gap:clamp(2.5rem,5vw,4.5rem); }
  .split.flip > .split-media{ order:2; }
}
.split-media{ position:relative; border-radius:var(--radius); overflow:hidden; border:1px solid var(--line-soft); }
.split-media img{ width:100%; height:100%; object-fit:cover; aspect-ratio:3/2; }
.split-body h2{ margin:.9rem 0 1.1rem; }
.split-body p{ margin-bottom:1rem; }
.split-body .btn{ margin-top:.8rem; }

/* checklist */
.checks{ display:grid; gap:.7rem; margin:1.2rem 0; }
.checks li{ display:flex; gap:.8rem; align-items:flex-start; color:var(--text); }
.checks svg{ width:19px; height:19px; flex:none; color:var(--gold); margin-top:.32rem; }

/* stat band */
.stats{ display:grid; grid-template-columns:repeat(2,1fr); gap:2.2rem 1rem; text-align:center; }
@media (min-width:800px){ .stats{ grid-template-columns:repeat(4,1fr); } }
.stat .num{ font-family:var(--serif); font-size:clamp(2.1rem,5vw,3rem); color:var(--gold); font-weight:600; }
.stat .lbl{ font-size:.78rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); margin-top:.3rem; }

/* ---------- Media / gallery ---------- */
.media-grid{ display:grid; gap:1rem; grid-template-columns:1fr 1fr; }
@media (min-width:900px){ .media-grid{ grid-template-columns:repeat(3,1fr); } }
.media-item{ position:relative; border-radius:12px; overflow:hidden; border:1px solid var(--line-soft); background:var(--ink-3); }
.media-item img{ width:100%; aspect-ratio:4/3; object-fit:cover; transition:transform .5s var(--ease); }
.media-item:hover img{ transform:scale(1.04); }
button.media-item{ padding:0; display:block; width:100%; }
.media-item.wide{ grid-column:1/-1; }
.media-item.wide img, .media-item.wide video{ aspect-ratio:16/9; width:100%; object-fit:cover; }

.stage-card{ background:var(--ink-3); border:1px solid var(--line-soft); border-radius:var(--radius); overflow:hidden; }
.stage-card video{ width:100%; aspect-ratio:4/5; object-fit:cover; background:#000; }
.stage-card video.contain{ object-fit:contain; }
.stage-body{ padding:1.3rem 1.4rem 1.5rem; }
.stage-body .tag{ font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); }
.stage-body h3{ margin:.4rem 0 .4rem; }
.stage-body p{ color:var(--muted); font-size:.95rem; }

/* lightbox */
.lightbox{
  position:fixed; inset:0; z-index:150; background:rgba(8,7,10,.94);
  display:none; align-items:center; justify-content:center; padding:2rem;
}
.lightbox.open{ display:flex; }
.lightbox img{ max-width:min(1100px,92vw); max-height:84vh; border-radius:10px; }
.lightbox-close{ position:absolute; top:1.1rem; right:1.1rem; }

/* ---------- Rating pill ---------- */
.g-pill{
  display:inline-flex; align-items:center; gap:.55rem; padding:.55rem 1.15rem;
  border:1px solid var(--line); border-radius:999px; color:var(--text); font-size:.92rem;
}
.g-pill:hover{ border-color:var(--gold); color:var(--ivory); }
.g-pill .score{ color:var(--ivory); font-weight:500; }
.g-pill .stars{ color:var(--gold); letter-spacing:.1em; font-size:.85rem; }
.g-pill img{ width:18px; height:18px; }

/* ---------- FAQ ---------- */
.faq{ border:1px solid var(--line-soft); border-radius:12px; background:var(--ink-3); margin-bottom:.85rem; }
.faq summary{
  list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:1rem;
  padding:1.15rem 1.3rem; font-family:var(--serif); font-size:1.18rem; color:var(--ivory); font-weight:600;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; font-family:var(--sans); color:var(--gold); font-size:1.3rem; font-weight:400; transition:transform .25s var(--ease); }
.faq[open] summary::after{ transform:rotate(45deg); }
.faq .faq-a{ padding:0 1.3rem 1.25rem; color:var(--muted); }

/* ---------- Forms ---------- */
.form-grid{ display:grid; gap:1.1rem; }
@media (min-width:640px){ .form-grid{ grid-template-columns:1fr 1fr; } .form-grid .full{ grid-column:1/-1; } }
.field label{ display:block; font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-bottom:.45rem; }
.field label b{ color:var(--gold); font-weight:500; }
.field input,.field select,.field textarea{
  width:100%; background:var(--ink); color:var(--ivory);
  border:1px solid var(--line); border-radius:10px; padding:.85rem 1rem;
  font:inherit; font-size:1rem; min-height:48px;
}
.field textarea{ min-height:130px; resize:vertical; }
.field input:focus,.field select:focus,.field textarea:focus{ outline:2px solid var(--gold); outline-offset:1px; border-color:transparent; }
.field .err{ display:none; color:#E89B9B; font-size:.85rem; margin-top:.35rem; }
.field.invalid .err{ display:block; }
.field.invalid input,.field.invalid select{ border-color:#B4626255; }
.hp{ position:absolute; left:-9999px; opacity:0; height:0; overflow:hidden; }
.form-note{ font-size:.85rem; color:var(--muted); }
.form-msg{ display:none; border-radius:12px; padding:1.2rem 1.4rem; margin-top:1.2rem; }
.form-msg.show{ display:block; }
.form-msg.ok{ background:rgba(120,180,120,.08); border:1px solid rgba(140,200,140,.35); color:#CDE8CD; }
.form-msg.bad{ background:rgba(190,90,90,.08); border:1px solid rgba(210,120,120,.35); color:#EFC9C9; }

/* contact info */
.info-list{ display:grid; gap:1.3rem; }
.info-list .item{ display:flex; gap:1rem; align-items:flex-start; }
.info-list .item svg{ width:20px; height:20px; color:var(--gold); flex:none; margin-top:.3rem; }
.info-list .t{ color:var(--ivory); font-family:var(--serif); font-size:1.15rem; font-weight:600; margin-bottom:.15rem; }
.map-wrap{ border:1px solid var(--line-soft); border-radius:var(--radius); overflow:hidden; }
.map-wrap iframe{ display:block; width:100%; height:340px; border:0; filter:invert(88%) hue-rotate(180deg) saturate(.7) brightness(.92); }

/* ---------- CTA band ---------- */
.cta-band{
  text-align:center; padding-block:clamp(4rem,9vw,6rem);
  background:
    radial-gradient(600px 300px at 50% 0%, rgba(226,190,107,.12), transparent 70%),
    var(--ink-2);
  border-block:1px solid var(--line-soft);
}
.cta-band h2{ max-width:640px; margin:.9rem auto 1rem; }
.cta-band p{ max-width:520px; margin:0 auto 1.8rem; color:var(--muted); }
.cta-actions{ display:flex; flex-wrap:wrap; gap:.9rem; justify-content:center; }

/* ---------- Footer ---------- */
.footer{ border-top:1px solid var(--line-soft); background:var(--ink-2); padding:3.5rem 0 2rem; }
.footer-grid{ display:grid; gap:2.4rem; }
@media (min-width:800px){ .footer-grid{ grid-template-columns:1.4fr 1fr 1fr; gap:3rem; } }
.footer img.f-logo{ height:74px; width:auto; margin-bottom:1rem; }
.footer p{ color:var(--muted); font-size:.95rem; max-width:34ch; }
.footer h4{ font-family:var(--sans); font-size:.8rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); font-weight:500; margin-bottom:1rem; }
.footer li{ margin-bottom:.55rem; }
.footer a{ color:var(--text); }
.footer a:hover{ color:var(--gold-light); }
.socials{ display:flex; gap:.7rem; margin-top:1.2rem; }
.footer-bar{
  display:flex; flex-wrap:wrap; gap:.8rem 1.6rem; justify-content:space-between; align-items:center;
  border-top:1px solid var(--line-soft); margin-top:2.6rem; padding-top:1.6rem;
  font-size:.85rem; color:var(--muted);
}
.footer-bar a{ color:var(--muted); }
.footer-bar a:hover{ color:var(--gold); }

/* ---------- Reveal ---------- */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in{ opacity:1; transform:none; }

/* ---------- Utilities ---------- */
.mt-1{ margin-top:1rem; } .mt-2{ margin-top:2rem; } .mb-1{ margin-bottom:1rem; }
.prose p{ margin-bottom:1.1rem; }
.prose h2{ margin:2.2rem 0 .9rem; font-size:1.7rem; }
.prose ul{ list-style:disc; padding-left:1.3rem; margin-bottom:1.1rem; color:var(--muted); }
.prose li{ margin-bottom:.4rem; }

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
  .reveal{ opacity:1 !important; transform:none !important; }
}
