:root{
    --emerald: #123626;
    --emerald-deep: #0b241a;
    --champagne: #cba76a;
    --champagne-light: #e2cd9c;
    --black: #16130f;
    --cream: #f4ecd8;
    --cream-dim: #ece0c4;
    --rose: #c98a86;
    --terracotta: #b85c3a;
    --ochre: #cf9a2e;

    --script: 'Yellowtail', cursive;
    --caps: 'Jost', sans-serif;
    --body: 'Cormorant Garamond', serif;
  }

  *{margin:0; padding:0; box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--cream);
    color:var(--black);
    font-family:var(--body);
    overflow-x:hidden;
  }

  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important;}
  }

  a{color:inherit; text-decoration:none;}
  .eyebrow{
    font-family:var(--caps);
    text-transform:uppercase;
    letter-spacing:0.35em;
    font-size:0.72rem;
    font-weight:500;
  }

  /* ---------- Sparkle / star motif ---------- */
  .spark{
    display:inline-block;
    width:14px; height:14px;
    position:relative;
  }
  .spark svg{width:100%; height:100%; display:block;}

  /* ---------- Nav ---------- */
  nav{
    position:fixed; top:0; left:0; right:0; z-index:100;
    display:flex; align-items:center; justify-content:space-between;
    padding:1.1rem 2.5rem;
    background:rgba(18,54,38,0.0);
    transition:background 0.4s ease, padding 0.4s ease, box-shadow 0.4s ease;
  }
  nav.scrolled{
    background:rgba(11,36,26,0.94);
    padding:0.75rem 2.5rem;
    box-shadow:0 4px 24px rgba(0,0,0,0.25);
  }
  .nav-mark{
    display:block;
    color:var(--cream);
  }
  .logo-svg{
    display:block;
    width:130px;
    height:auto;
  }
  .nav-links{
    display:flex; gap:2.2rem;
    list-style:none;
  }
  .nav-links a{
    font-family:var(--caps);
    color:var(--cream-dim);
    font-size:0.72rem;
    letter-spacing:0.22em;
    text-transform:uppercase;
    padding-bottom:4px;
    border-bottom:1px solid transparent;
    transition:color 0.25s ease, border-color 0.25s ease;
  }
  .nav-links a:hover{ color:var(--champagne-light); border-color:var(--champagne); }
  .nav-toggle{display:none;}

  /* ---------- Hero ---------- */
  .hero{
    position:relative;
    min-height:100vh;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    text-align:center;
    background:
      linear-gradient(180deg, rgba(11,10,8,0.55) 0%, rgba(11,10,8,0.72) 55%, rgba(11,10,8,0.92) 100%),
      url('../assets/hero.jpg') center 30%/cover no-repeat;
    color:var(--cream);
    padding:6rem 1.5rem 4rem;
    overflow:hidden;
  }

  .hero-content{ position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; }
  .hero-logo{
    width:min(78vw, 420px);
    height:auto;
    color:var(--champagne-light);
    filter:drop-shadow(0 6px 40px rgba(0,0,0,0.55));
    opacity:0;
    animation:riseFade 1s ease-out 0.3s forwards;
  }
  .hero-subtext{
    font-family:var(--caps);
    font-size:0.78rem;
    letter-spacing:0.42em;
    text-transform:uppercase;
    color:var(--cream-dim);
    margin:1.8rem 0 2.8rem;
    opacity:0;
    animation:riseFade 0.9s ease-out 0.75s forwards;
  }
  .hero-subtext .dot{ color:var(--champagne); margin:0 0.3em; }
  .hero-actions{
    display:flex; gap:1.1rem; flex-wrap:wrap; justify-content:center;
    opacity:0;
    animation:riseFade 0.9s ease-out 1s forwards;
  }
  .btn-solid, .btn-line{
    font-family:var(--caps);
    font-size:0.72rem;
    letter-spacing:0.26em;
    text-transform:uppercase;
    padding:0.95rem 2.1rem;
    border-radius:2px;
    transition:background 0.25s ease, color 0.25s ease, transform 0.25s ease, border-color 0.25s ease;
  }
  .btn-solid{
    color:var(--emerald-deep);
    background:var(--champagne);
  }
  .btn-solid:hover{ background:var(--champagne-light); transform:translateY(-2px); }
  .btn-line{
    color:var(--cream);
    border:1px solid rgba(244,236,216,0.55);
  }
  .btn-line:hover{ border-color:var(--champagne); color:var(--champagne-light); transform:translateY(-2px); }

  @keyframes riseFade{
    from{ opacity:0; transform:translateY(16px); }
    to{ opacity:1; transform:translateY(0); }
  }

  .scroll-cue{
    position:absolute; bottom:2.2rem; left:50%; transform:translateX(-50%);
    color:var(--champagne);
    opacity:0.7;
    animation:bob 2.4s ease-in-out infinite;
  }
  @keyframes bob{
    0%,100%{ transform:translate(-50%,0); }
    50%{ transform:translate(-50%,8px); }
  }

  /* ---------- Reveal on scroll ---------- */
  .reveal{
    opacity:0; transform:translateY(28px);
    transition:opacity 0.8s ease, transform 0.8s ease;
  }
  .reveal.is-visible{ opacity:1; transform:translateY(0); }

  /* ---------- Section shared ---------- */
  section{ padding:7rem 1.5rem; position:relative; }
  .section-inner{ max-width:1080px; margin:0 auto; }
  .section-head{ text-align:center; margin-bottom:3.5rem; }
  .section-head .eyebrow{ color:var(--terracotta); margin-bottom:0.6rem; }
  .section-head h2{
    font-family:var(--script);
    font-size:clamp(2.6rem, 5vw, 3.6rem);
    color:var(--emerald);
    font-weight:400;
  }
  .divider{
    display:flex; align-items:center; justify-content:center; gap:0.9rem;
    margin:1.3rem auto 0;
    color:var(--champagne);
  }
  .divider .line{ width:52px; height:1px; background:currentColor; opacity:0.6; }

  /* ---------- About ---------- */
  .about{ background:var(--cream); }
  .about-grid{
    display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center;
  }
  .about-frame{
    position:relative;
    aspect-ratio:4/5;
    background:linear-gradient(155deg, var(--emerald) 0%, var(--emerald-deep) 100%);
    border-radius:4px;
    display:flex; align-items:center; justify-content:center;
    overflow:hidden;
  }
  .about-frame::before{
    content:""; position:absolute; inset:14px;
    border:1px solid rgba(203,167,106,0.55);
    border-radius:2px;
  }
  .about-frame::after{
    content:""; position:absolute; inset:22px;
    border:1px solid rgba(203,167,106,0.3);
    border-radius:2px;
  }
  .about-mark{
    text-align:center; color:var(--cream);
    position:relative; z-index:1;
  }
  .about-logo{ width:min(60%, 220px); height:auto; color:var(--cream); }
  .about-mark .sub-mini{ font-family:var(--caps); letter-spacing:0.3em; font-size:0.62rem; color:var(--champagne); margin-top:1rem; opacity:0.85;}

  .about-copy p{
    font-size:1.22rem;
    line-height:1.75;
    color:#2c2a24;
    margin-bottom:1.3rem;
  }
  .about-copy p:first-child{
    font-size:1.4rem;
    font-style:italic;
    color:var(--emerald);
  }
  .about-sig{
    margin-top:1.8rem;
    font-family:var(--caps);
    font-size:0.72rem;
    letter-spacing:0.22em;
    color:var(--terracotta);
    text-transform:uppercase;
  }

  /* ---------- Menu ---------- */
  .menu{
    background:var(--black);
    color:var(--cream);
  }
  .menu .section-head h2{ color:var(--champagne-light); }
  .menu .section-head .eyebrow{ color:var(--rose); }
  .menu-grid{
    display:grid; grid-template-columns:repeat(3, 1fr); gap:3rem;
    max-width:1080px; margin:0 auto;
  }
  .menu-col h3{
    font-family:var(--caps);
    text-transform:uppercase;
    letter-spacing:0.24em;
    font-size:0.82rem;
    color:var(--champagne);
    text-align:center;
    padding-bottom:1rem;
    margin-bottom:1.6rem;
    border-bottom:1px solid rgba(203,167,106,0.35);
  }
  .menu-item{ margin-bottom:1.6rem; }
  .menu-item .row{
    display:flex; align-items:baseline; gap:0.6rem;
  }
  .menu-item .name{
    font-family:var(--body);
    font-weight:600;
    font-size:1.18rem;
    color:var(--cream);
  }
  .menu-item .rule{
    flex:1;
    border-bottom:1px dotted rgba(244,236,216,0.28);
    transform:translateY(-4px);
  }
  .menu-item .price{
    font-family:var(--caps);
    font-size:0.9rem;
    color:var(--champagne-light);
  }
  .menu-item .desc{
    font-style:italic;
    font-size:0.98rem;
    color:rgba(244,236,216,0.65);
    margin-top:0.25rem;
    line-height:1.5;
  }
  .menu-note{
    text-align:center;
    margin-top:3.5rem;
    font-family:var(--caps);
    font-size:0.7rem;
    letter-spacing:0.2em;
    color:rgba(244,236,216,0.5);
    text-transform:uppercase;
  }

  /* ---------- Hours & Location ---------- */
  .visit{ background:var(--cream-dim); }
  .visit-grid{
    display:grid; grid-template-columns:1fr 1fr; gap:4rem;
  }
  .visit-block h3{
    font-family:var(--caps);
    text-transform:uppercase;
    letter-spacing:0.24em;
    font-size:0.78rem;
    color:var(--terracotta);
    margin-bottom:1.4rem;
    display:flex; align-items:center; gap:0.6rem;
  }
  .hours-row{
    display:flex; justify-content:space-between;
    font-size:1.15rem;
    padding:0.65rem 0;
    border-bottom:1px solid rgba(20,17,12,0.1);
    color:var(--black);
  }
  .hours-row span:last-child{ color:var(--emerald); font-weight:600; }
  .addr{
    font-size:1.3rem;
    line-height:1.6;
    color:var(--black);
    margin-bottom:1.6rem;
  }
  .addr em{ color:var(--emerald); font-style:normal; font-weight:600; }
  .visit-actions{ display:flex; gap:1rem; flex-wrap:wrap; }
  .btn-outline{
    font-family:var(--caps);
    font-size:0.7rem;
    letter-spacing:0.2em;
    text-transform:uppercase;
    padding:0.85rem 1.6rem;
    border:1px solid var(--emerald);
    color:var(--emerald);
    border-radius:2px;
    transition:background 0.25s ease, color 0.25s ease;
  }
  .btn-outline:hover{ background:var(--emerald); color:var(--cream); }

  /* ---------- Footer ---------- */
  footer{
    background:var(--emerald-deep);
    color:var(--cream-dim);
    text-align:center;
    padding:4rem 1.5rem 2.5rem;
  }
  .foot-logo{
    width:min(60vw, 200px);
    height:auto;
    color:var(--champagne-light);
    margin:0 auto 1.2rem;
    display:block;
  }
  footer .foot-caps{
    font-family:var(--caps);
    letter-spacing:0.4em;
    font-size:0.65rem;
    color:var(--champagne);
    margin-bottom:1.6rem;
  }
  .foot-links{
    display:flex; justify-content:center; gap:2rem; margin-bottom:2rem;
    font-family:var(--caps); font-size:0.7rem; letter-spacing:0.18em; text-transform:uppercase;
  }
  .foot-links a{ color:var(--cream-dim); transition:color 0.2s ease; }
  .foot-links a:hover{ color:var(--champagne); }
  .foot-fine{ font-size:0.72rem; letter-spacing:0.05em; color:rgba(244,236,216,0.4); }

  /* ---------- Nav CTA (events) ---------- */
  .nav-cta{
    font-family:var(--caps);
    font-size:0.7rem;
    letter-spacing:0.22em !important;
    text-transform:uppercase;
    padding:0.7rem 1.4rem;
    border-radius:2px;
    color:var(--emerald-deep) !important;
    background:var(--champagne);
    border-bottom:none !important;
    transition:background 0.25s ease;
  }
  .nav-cta:hover{ background:var(--champagne-light); color:var(--emerald-deep) !important; }

  /* ---------- Hero eyebrow (events) ---------- */
  .hero-eyebrow{
    font-family:var(--caps);
    text-transform:uppercase;
    letter-spacing:0.35em;
    font-size:0.72rem;
    font-weight:500;
    color:var(--champagne);
    opacity:0;
    animation:riseFade 0.9s ease-out 0.15s forwards;
  }

  /* ---------- About (events layout) ---------- */
  .about-inner{ text-align:center; }
  .about-lead{
    font-size:1.5rem;
    line-height:1.7;
    font-style:italic;
    color:var(--emerald);
    max-width:760px;
    margin:0 auto;
  }
  .about-stats{
    display:flex; justify-content:center; gap:0;
    max-width:1080px; margin:2.6rem auto 3rem;
    border-top:1px solid rgba(20,17,12,0.12);
    border-bottom:1px solid rgba(20,17,12,0.12);
    padding:2.6rem 0;
  }
  .about-stats .stat{ flex:1; text-align:center; padding:0 1.5rem; border-left:1px solid rgba(20,17,12,0.12); }
  .about-stats .stat:first-child{ border-left:none; }
  .about-stats .stat-value{ font-family:var(--script); font-size:2.8rem; color:var(--emerald); }
  .about-stats .stat-label{ font-family:var(--caps); letter-spacing:0.16em; font-size:0.68rem; color:var(--terracotta); text-transform:uppercase; margin-top:0.4rem; }
  .about-copy{
    max-width:1080px; margin:0 auto;
    display:grid; grid-template-columns:1fr 1fr; gap:3.5rem;
    text-align:left;
  }
  .about-copy p{ font-size:1.18rem; line-height:1.75; color:#2c2a24; margin:0; }
  .about-explore{ margin-top:2.6rem; }
  .about-explore a{ font-family:var(--caps); font-size:0.72rem; letter-spacing:0.22em; color:var(--terracotta); text-transform:uppercase; }

  /* ---------- Spaces ---------- */
  .spaces{ background:var(--emerald-deep); color:var(--cream); }
  .spaces .eyebrow{ color:var(--rose); }
  .spaces .section-head h2{ color:var(--champagne-light); }
  .space-map{
    display:grid; grid-template-columns:repeat(8, 1fr); grid-template-rows:repeat(2, 90px);
    gap:6px; max-width:1180px; margin:0 auto 1rem;
  }
  .space-map-cell{
    display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
    cursor:pointer; border-radius:2px;
    background:rgba(244,236,216,0.06);
    border:1px solid rgba(244,236,216,0.18);
    color:rgba(244,236,216,0.7);
    transition:background 0.25s ease, border-color 0.25s ease, color 0.25s ease;
  }
  .space-map-bar{ grid-column:span 2; grid-row:span 2; }
  .space-map-main{ grid-column:span 2; grid-row:span 2; }
  .space-map-patio{ grid-column:span 4; grid-row:span 2; }
  .space-map-cell.is-active{ color:var(--cream); }
  .space-map-bar.is-active{ background:rgba(201,138,134,0.22); border-color:var(--rose); }
  .space-map-main.is-active{ background:rgba(203,167,106,0.22); border-color:var(--champagne); }
  .space-map-patio.is-active{ background:rgba(207,154,46,0.22); border-color:var(--ochre); }
  .space-map-name{ font-family:var(--caps); letter-spacing:0.18em; text-transform:uppercase; font-size:0.78rem; }
  .space-map-sqft{ font-family:var(--caps); letter-spacing:0.1em; font-size:0.62rem; opacity:0.75; margin-top:0.3rem; }
  .space-map-note{
    text-align:center; font-family:var(--caps); font-size:0.66rem; letter-spacing:0.16em;
    color:rgba(244,236,216,0.45); text-transform:uppercase; margin-bottom:3.5rem;
  }
  .space-cards{ display:grid; grid-template-columns:repeat(3, 1fr); gap:2rem; max-width:1180px; margin:0 auto; }
  .space-card{
    background:rgba(244,236,216,0.04); border:1px solid rgba(244,236,216,0.12);
    border-radius:3px; padding:2rem 1.6rem; cursor:pointer;
    transition:background 0.25s ease, border-color 0.25s ease;
  }
  .space-card-bar.is-active{ background:rgba(201,138,134,0.14); border-color:var(--rose); }
  .space-card-main.is-active{ background:rgba(203,167,106,0.14); border-color:var(--champagne); }
  .space-card-patio.is-active{ background:rgba(207,154,46,0.14); border-color:var(--ochre); }
  .space-card-name{ font-family:var(--caps); text-transform:uppercase; letter-spacing:0.2em; font-size:0.85rem; color:var(--champagne-light); margin-bottom:0.9rem; }
  .space-card-figures{ display:flex; gap:1.4rem; margin-bottom:1rem; }
  .space-card-figures .figure{ font-family:var(--script); font-size:1.7rem; color:var(--cream); }
  .space-card-figures .figure-label{ font-family:var(--caps); font-size:0.6rem; letter-spacing:0.12em; color:rgba(244,236,216,0.5); text-transform:uppercase; }
  .space-card-blurb{ font-size:1.02rem; line-height:1.6; color:rgba(244,236,216,0.75); margin:0; }

  /* ---------- Gallery ---------- */
  .gallery-grid{ display:grid; grid-template-columns:repeat(4, 1fr); grid-auto-rows:190px; gap:14px; max-width:1180px; margin:0 auto; }
  .gallery-item{
    position:relative; border-radius:3px; overflow:hidden;
    display:flex; align-items:flex-end; padding:0.9rem;
    background:repeating-linear-gradient(135deg, var(--emerald) 0 20px, var(--emerald-deep) 20px 40px);
  }
  .gallery-item::after{
    content:""; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,0.55) 100%);
  }
  .gallery-caption{ position:relative; z-index:1; font-family:ui-monospace,Menlo,monospace; font-size:0.68rem; color:rgba(244,236,216,0.92); letter-spacing:0.02em; }
  .gallery-item:nth-child(1){ grid-column:1 / span 2; grid-row:1 / span 2; background-image:repeating-linear-gradient(135deg, var(--emerald) 0 20px, var(--emerald-deep) 20px 40px); }
  .gallery-item:nth-child(2){ grid-column:3 / span 2; grid-row:1 / span 1; background-image:repeating-linear-gradient(135deg, var(--terracotta) 0 20px, var(--black) 20px 40px); }
  .gallery-item:nth-child(3){ grid-column:3 / span 1; grid-row:2 / span 1; background-image:repeating-linear-gradient(135deg, var(--emerald-deep) 0 16px, var(--champagne) 16px 32px); }
  .gallery-item:nth-child(4){ grid-column:4 / span 1; grid-row:2 / span 1; background-image:repeating-linear-gradient(135deg, var(--black) 0 18px, var(--emerald) 18px 36px); }
  .gallery-item:nth-child(5){ grid-column:1 / span 1; grid-row:3 / span 1; background-image:repeating-linear-gradient(135deg, var(--rose) 0 18px, var(--emerald-deep) 18px 36px); }
  .gallery-item:nth-child(6){ grid-column:2 / span 2; grid-row:3 / span 2; background-image:repeating-linear-gradient(135deg, var(--ochre) 0 20px, var(--emerald-deep) 20px 40px); }
  .gallery-item:nth-child(7){ grid-column:4 / span 1; grid-row:3 / span 1; background-image:repeating-linear-gradient(135deg, var(--emerald) 0 16px, var(--black) 16px 32px); }
  .gallery-item:nth-child(8){ grid-column:1 / span 1; grid-row:4 / span 1; background-image:repeating-linear-gradient(135deg, var(--champagne) 0 18px, var(--emerald-deep) 18px 36px); }
  .gallery-item:nth-child(9){ grid-column:4 / span 1; grid-row:4 / span 1; background-image:repeating-linear-gradient(135deg, var(--terracotta) 0 16px, var(--emerald) 16px 32px); }

  /* ---------- Occasions ---------- */
  .occasions{ background:var(--cream-dim); }
  .occasions-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:1.6rem; max-width:1180px; margin:0 auto; }
  .occasion-card{ background:var(--cream); border:1px solid rgba(20,17,12,0.08); border-radius:3px; padding:2rem 1.6rem; }
  .occasion-mark{ width:38px; height:38px; border-radius:50%; border:1px solid var(--champagne); margin-bottom:1.2rem; }
  .occasion-title{ font-family:var(--caps); text-transform:uppercase; letter-spacing:0.12em; font-size:0.88rem; color:var(--emerald); margin-bottom:0.6rem; }
  .occasion-desc{ font-size:1rem; line-height:1.55; color:#3a3730; margin:0; }

  /* ---------- Packages ---------- */
  .packages{ background:var(--black); color:var(--cream); }
  .packages .eyebrow{ color:var(--rose); }
  .packages .section-head h2{ color:var(--champagne-light); }
  .packages-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:1.8rem; max-width:1180px; margin:0 auto; }
  .package-card{
    border:1px solid rgba(244,236,216,0.15); border-radius:3px;
    padding:2.4rem 1.8rem; display:flex; flex-direction:column;
  }
  .package-card.is-featured{ border-color:var(--champagne); }
  .package-name{ font-family:var(--caps); text-transform:uppercase; letter-spacing:0.18em; font-size:0.82rem; color:var(--champagne); margin-bottom:0.5rem; }
  .package-subline{ font-family:var(--caps); font-size:0.72rem; letter-spacing:0.1em; color:rgba(244,236,216,0.55); text-transform:uppercase; margin-bottom:1.4rem; }
  .package-include{ display:flex; gap:0.6rem; margin-bottom:0.7rem; font-size:0.95rem; line-height:1.5; color:rgba(244,236,216,0.8); }
  .package-include .dash{ color:var(--champagne); }
  .packages-note{ text-align:center; margin-top:2.4rem; font-family:var(--caps); font-size:0.66rem; letter-spacing:0.14em; color:rgba(244,236,216,0.4); text-transform:uppercase; }

  /* ---------- Testimonials ---------- */
  .testimonials-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:2rem; max-width:1180px; margin:0 auto; }
  .testimonial-card{ background:var(--cream-dim); border-radius:3px; padding:2.2rem 1.8rem; }
  .testimonial-card .quote-mark{ font-family:var(--script); font-size:2.4rem; color:var(--champagne); line-height:0.6; margin-bottom:0.8rem; }
  .testimonial-quote{ font-size:1.12rem; line-height:1.6; font-style:italic; color:#2c2a24; margin:0 0 1.2rem; }
  .testimonial-name{ font-family:var(--caps); font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--emerald); }
  .testimonial-role{ font-family:var(--caps); font-size:0.66rem; letter-spacing:0.08em; color:var(--terracotta); margin-top:0.2rem; }

  /* ---------- Vendors ---------- */
  .vendors{ background:var(--cream-dim); padding:5rem 1.5rem; }
  .vendors-grid{ display:flex; gap:1.2rem; flex-wrap:wrap; justify-content:center; max-width:1180px; margin:0 auto; }
  .vendor-card{
    flex:1 1 200px; max-width:260px; border:1px dashed rgba(20,17,12,0.25); border-radius:3px;
    padding:1.6rem; text-align:center;
    font-family:var(--caps); font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; color:#5c5647;
  }
  .vendor-placeholder{ font-family:ui-monospace,Menlo,monospace; font-size:0.6rem; letter-spacing:0; text-transform:none; color:#8a8272; margin-top:0.4rem; }

  /* ---------- FAQ ---------- */
  .faq-inner{ max-width:820px; }
  .faq-item{ border-bottom:1px solid rgba(20,17,12,0.12); }
  .faq-question{
    width:100%; display:flex; justify-content:space-between; align-items:center;
    padding:1.4rem 0.2rem; cursor:pointer; background:none; border:none; text-align:left;
    font-family:var(--caps); font-size:1.02rem; color:var(--emerald); letter-spacing:0.01em;
  }
  .faq-icon{ font-family:var(--caps); font-size:1.3rem; color:var(--champagne); }
  .faq-icon::before{ content:"+"; }
  .faq-item.is-open .faq-icon::before{ content:"\2212"; }
  .faq-answer{ max-height:0; opacity:0; overflow:hidden; transition:max-height 0.3s ease, opacity 0.3s ease; }
  .faq-item.is-open .faq-answer{ max-height:400px; opacity:1; }
  .faq-answer p{ font-size:1.05rem; line-height:1.65; color:#3a3730; margin:0 0.2rem 1.4rem; }

  /* ---------- Contact ---------- */
  .contact{ background:var(--emerald); color:var(--cream); text-align:center; }
  .contact-inner{ max-width:680px; }
  .contact h2{ font-family:var(--script); font-size:clamp(2.6rem, 5vw, 3.8rem); color:var(--champagne-light); font-weight:400; margin:0 0 1.2rem; }
  .contact p{ font-size:1.2rem; line-height:1.7; color:var(--cream-dim); margin:0 0 2.4rem; }

  /* ---------- Coming soon gate ---------- */
  .gate-body{
    background:linear-gradient(155deg, var(--emerald) 0%, var(--emerald-deep) 100%);
  }
  .gate{
    min-height:100vh;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    text-align:center;
    padding:3rem 1.5rem;
    color:var(--cream);
  }
  .gate-logo{
    width:min(60vw, 240px);
    height:auto;
    color:var(--champagne-light);
    filter:drop-shadow(0 6px 40px rgba(0,0,0,0.4));
  }
  .gate-eyebrow{
    font-family:var(--caps);
    text-transform:uppercase;
    letter-spacing:0.35em;
    font-size:0.68rem;
    color:var(--champagne);
    margin-top:1.8rem;
  }
  .gate-heading{
    font-family:var(--script);
    font-size:clamp(2.8rem, 6vw, 4.2rem);
    font-weight:400;
    color:var(--cream);
    margin:0.6rem 0 1rem;
  }
  .gate-subtext{
    font-size:1.15rem;
    line-height:1.7;
    color:var(--cream-dim);
    max-width:440px;
    margin:0 0 2.6rem;
  }
  .gate-access-link{
    font-family:var(--caps);
    font-size:0.68rem;
    letter-spacing:0.24em;
    text-transform:uppercase;
    color:rgba(244,236,216,0.55);
    background:none;
    border:none;
    border-bottom:1px solid rgba(244,236,216,0.3);
    padding-bottom:3px;
    cursor:pointer;
    transition:color 0.25s ease, border-color 0.25s ease;
  }
  .gate-access-link:hover{ color:var(--champagne-light); border-color:var(--champagne); }

  .gate-modal{
    position:fixed; inset:0; z-index:200;
    display:flex; align-items:center; justify-content:center;
    visibility:hidden; opacity:0;
    transition:opacity 0.25s ease, visibility 0.25s ease;
  }
  .gate-modal.is-open{ visibility:visible; opacity:1; }
  .gate-modal-backdrop{
    position:absolute; inset:0;
    background:rgba(11,10,8,0.72);
  }
  .gate-modal-panel{
    position:relative;
    background:var(--cream);
    border-radius:4px;
    padding:2.6rem 2.4rem;
    max-width:360px;
    width:calc(100% - 2.5rem);
    text-align:center;
    transform:translateY(12px);
    transition:transform 0.25s ease;
  }
  .gate-modal.is-open .gate-modal-panel{ transform:translateY(0); }
  .gate-modal-close{
    position:absolute; top:0.8rem; right:0.9rem;
    background:none; border:none; cursor:pointer;
    font-size:1.4rem; line-height:1; color:#8a8272;
  }
  .gate-modal-eyebrow{
    font-family:var(--caps);
    text-transform:uppercase;
    letter-spacing:0.3em;
    font-size:0.68rem;
    color:var(--terracotta);
    margin-bottom:0.6rem;
  }
  .gate-modal-copy{
    font-size:1.05rem;
    color:#3a3730;
    margin:0 0 1.6rem;
  }
  .gate-form{ display:flex; flex-direction:column; gap:0.9rem; }
  .gate-input{
    font-family:var(--body);
    font-size:1.05rem;
    padding:0.75rem 1rem;
    border:1px solid rgba(20,17,12,0.2);
    border-radius:2px;
    background:var(--cream-dim);
    color:var(--black);
    text-align:center;
    letter-spacing:0.2em;
  }
  .gate-input:focus{ outline:none; border-color:var(--emerald); }
  .gate-submit{ border:none; cursor:pointer; }
  .gate-error{
    margin-top:1rem;
    font-family:var(--caps);
    font-size:0.72rem;
    letter-spacing:0.05em;
    color:var(--terracotta);
  }

  /* ---------- Mobile ---------- */
  @media (max-width:860px){
    .about-grid, .visit-grid{ grid-template-columns:1fr; gap:2.6rem; }
    .menu-grid{ grid-template-columns:1fr; gap:2.8rem; }
    .about-copy{ grid-template-columns:1fr; gap:1.6rem; text-align:center; }
    .about-stats{ flex-wrap:wrap; }
    .about-stats .stat{ flex:1 1 33%; border-left:none; }
    .space-map{ grid-template-columns:repeat(2, 1fr); grid-template-rows:repeat(3, 90px); }
    .space-map-bar, .space-map-main, .space-map-patio{ grid-column:span 1; grid-row:span 1; }
    .space-cards{ grid-template-columns:1fr; }
    .gallery-grid{ grid-template-columns:repeat(2, 1fr); }
    .gallery-item:nth-child(n){ grid-column:auto; grid-row:auto; }
    .occasions-grid{ grid-template-columns:1fr 1fr; }
    .packages-grid, .testimonials-grid{ grid-template-columns:1fr; }
    nav{ padding:1rem 1.3rem; }
    .nav-links{
      position:fixed; top:0; right:0; height:100vh; width:min(78vw,320px);
      background:var(--emerald-deep);
      flex-direction:column; justify-content:center; align-items:flex-start;
      gap:1.8rem; padding:2rem 2.5rem;
      transform:translateX(100%); transition:transform 0.35s ease;
    }
    .nav-links.open{ transform:translateX(0); }
    .nav-toggle{
      display:flex; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; z-index:120; padding:6px;
    }
    .nav-toggle span{ width:22px; height:2px; background:var(--cream); display:block; }
    section{ padding:5rem 1.3rem; }
  }
