@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300..600;1,9..144,300..600&family=Jost:wght@300;400;500;600&display=swap');

:root { --ink:#12110f; --cream:#f1ede4; --paper:#faf7f0; --gold:#c99a45; --muted:#8e887d; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--ink); color:var(--cream); font-family:"Jost",sans-serif; }
a { color:inherit; text-decoration:none; }
img { display:block; width:100%; }
.nav-shell { position:absolute; z-index:10; top:0; left:0; right:0; height:94px; display:flex; align-items:center; justify-content:space-between; padding:0 5vw; border-bottom:1px solid rgba(255,255,255,.18); }
.brand { display:flex; align-items:center; gap:14px; font-size:12px; letter-spacing:.19em; font-weight:600; }
.brand-mark { display:grid; place-items:center; width:39px; height:39px; border:1px solid var(--gold); border-radius:50%; color:var(--gold); font-family:"Fraunces",serif; font-size:14px; letter-spacing:0; }
nav { display:flex; align-items:center; gap:34px; font-size:12px; }
.nav-cta { border:1px solid rgba(255,255,255,.5); padding:12px 18px; }
.hero { min-height:92vh; position:relative; display:flex; align-items:center; overflow:hidden; }
.hero>img { position:absolute; inset:0; height:100%; object-fit:cover; object-position:center 56%; }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(7,6,5,.91) 0%,rgba(7,6,5,.58) 49%,rgba(7,6,5,.15) 100%),linear-gradient(0deg,rgba(10,8,5,.55),transparent 45%); }
.hero-content { position:relative; z-index:2; width:min(760px,90vw); margin-left:8vw; padding-top:70px; }
.eyebrow { margin:0 0 28px; color:#d8ba7c; font-size:11px; font-weight:600; letter-spacing:.22em; text-transform:uppercase; }
h1,h2 { font-family:"Fraunces",serif; font-weight:400; line-height:.98; margin:0; }
h1 { font-size:clamp(62px,8vw,122px); letter-spacing:-.025em; }
h1 em,h2 em { color:var(--gold); font-weight:400; }
.hero-copy { max-width:550px; color:#d5d0c7; font-size:17px; line-height:1.7; margin:30px 0; }
.hero-actions { display:flex; align-items:center; gap:32px; }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:38px; min-width:235px; padding:17px 20px; text-transform:uppercase; letter-spacing:.14em; font-size:10px; font-weight:600; }
.button-gold { background:var(--gold); color:#17130d; }
.capacity { color:#c9c1b3; font-size:11px; letter-spacing:.1em; text-transform:uppercase; }
.capacity b { font-family:"Fraunces"; color:white; font-size:27px; margin-right:7px; }
.scroll-note { position:absolute; z-index:2; right:4vw; bottom:35px; font-size:9px; letter-spacing:.2em; writing-mode:vertical-rl; display:flex; gap:14px; align-items:center; }
.intro { background:var(--paper); color:var(--ink); display:grid; grid-template-columns:1fr 1fr; gap:8vw; padding:120px 9vw; }
.eyebrow.dark { color:#8a652f; }
.intro h2,.events-section h2,.request-content h2 { font-size:clamp(48px,6vw,82px); }
.intro-copy { padding-top:38px; }
.intro-copy>p { max-width:590px; color:#5f5a52; font-family:"Fraunces"; font-size:23px; line-height:1.55; }
.feature-row { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:52px; padding-top:24px; border-top:1px solid #d6d0c4; color:#555047; font-size:12px; text-transform:uppercase; letter-spacing:.08em; }
.feature-row b { color:var(--gold); margin-right:8px; }
.gallery { background:var(--paper); color:var(--ink); display:grid; grid-template-columns:1.55fr .85fr; gap:26px; padding:0 5vw 120px; align-items:end; }
.gallery figure { margin:0; }
.gallery-main img { height:540px; object-fit:cover; }
.gallery-small img { height:330px; object-fit:cover; }
.gallery figcaption { font-family:"Fraunces"; font-size:17px; margin-top:14px; }
.gallery-small figcaption { font-family:"Jost"; color:#6e685e; font-size:11px; letter-spacing:.07em; text-transform:uppercase; }
.gallery-small figcaption span { color:#8a652f; margin-right:15px; }
.events-section { padding:120px 7vw; background:var(--ink); }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:50px; margin-bottom:70px; }
.section-heading>p { max-width:430px; color:#a8a095; line-height:1.7; font-size:14px; }
.events-list { border-top:1px solid #393630; }
.event-card { display:grid; grid-template-columns:180px 1fr 150px 145px; align-items:center; gap:30px; padding:26px 8px; border-bottom:1px solid #393630; transition:.2s ease; }
.event-card:hover { background:#1a1814; padding-left:18px; padding-right:18px; }
.event-date strong { display:block; color:var(--gold); font-family:"Fraunces"; font-size:26px; font-weight:400; }
.event-date span,.event-name>span,.event-price span { color:#777168; font-size:9px; text-transform:uppercase; letter-spacing:.16em; }
.event-name h3 { font-family:"Fraunces"; font-weight:400; font-size:25px; margin:5px 0; }
.event-name p { color:#918a80; font-size:12px; margin:0; }
.event-price strong { display:block; font-size:15px; margin-top:6px; font-weight:500; }
.event-card .event-select { color:#d7bd8a; font-size:10px; text-transform:uppercase; letter-spacing:.12em; border-bottom:1px solid #6e5b38; padding-bottom:5px; }
.event-card .event-select span { margin-left:7px; }
.event-actions { display:flex; flex-direction:column; align-items:flex-end; gap:9px; justify-self:end; }
.event-actions>a { justify-self:auto; }
.event-actions .event-pay { color:#17130d; background:var(--gold); padding:8px 14px; border:1px solid var(--gold); }
.request-section { min-height:760px; position:relative; display:flex; align-items:center; justify-content:center; }
.request-section>img { position:absolute; inset:0; height:100%; object-fit:cover; }
.request-shade { position:absolute; inset:0; background:rgba(7,6,5,.72); }
.request-content { position:relative; z-index:2; width:min(1180px,90vw); padding:90px 0; display:grid; grid-template-columns:.85fr 1.15fr; gap:8vw; align-items:center; }
.request-copy>p:not(.eyebrow) { max-width:520px; color:#c1bbb1; line-height:1.7; margin:26px 0; }
.request-copy ul { margin:28px 0 0; padding:0; list-style:none; color:#d1cbc1; font-size:12px; text-transform:uppercase; letter-spacing:.1em; }
.request-copy li { padding:12px 0; border-bottom:1px solid rgba(255,255,255,.18); }
.form-card { background:rgba(12,11,9,.94); border:1px solid rgba(201,154,69,.42); padding:38px; box-shadow:0 25px 80px rgba(0,0,0,.35); }
.form-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; border-bottom:1px solid #393630; padding-bottom:18px; margin-bottom:22px; }
.form-heading span { color:#d8ba7c; font-size:11px; font-weight:600; letter-spacing:.18em; }
.form-heading p { color:#7f786f; font-size:10px; margin:0; }
.field-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-card label { display:block; color:#a9a297; font-size:10px; text-transform:uppercase; letter-spacing:.11em; margin-bottom:17px; }
.form-card input,.form-card select,.form-card textarea { width:100%; margin-top:8px; padding:13px 12px; border:1px solid #48443d; border-radius:0; background:#171512; color:#f3eee5; font:400 14px "Jost",sans-serif; outline:none; }
.form-card input:focus,.form-card select:focus,.form-card textarea:focus { border-color:var(--gold); box-shadow:0 0 0 1px var(--gold); }
.form-card textarea { resize:vertical; }
.consent { display:flex!important; align-items:flex-start; gap:11px; text-transform:none!important; letter-spacing:0!important; line-height:1.45; }
.consent input { width:16px; height:16px; margin:2px 0 0; accent-color:var(--gold); flex:none; }
.submit-button { width:100%; border:0; cursor:pointer; }
.submit-button:disabled { opacity:.55; cursor:wait; }
.form-status { min-height:20px; color:#d8ba7c; font-size:12px; line-height:1.5; margin:14px 0 0; }
.hidden { position:absolute; left:-9999px; }
.ghl-embed { width:100%; min-height:720px; border:0; background:white; }
footer { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:30px; padding:35px 5vw; background:#0a0908; color:#8d877c; font-size:10px; letter-spacing:.08em; text-transform:uppercase; }
footer .brand { color:#d6d0c7; }
footer .legal { text-align:right; }

/* Secure Your Spot / payment page */
.reserve-page { background:var(--ink); min-height:100vh; }
.reserve-hero { padding:170px 7vw 70px; max-width:900px; }
.reserve-hero p.eyebrow { margin-bottom:22px; }
.reserve-hero h1 { font-family:"Fraunces",serif; font-weight:400; font-size:clamp(42px,5.5vw,72px); line-height:1.02; margin:0 0 22px; }
.reserve-hero h1 em { color:var(--gold); font-style:italic; }
.reserve-hero p.lede { color:#c1bbb1; font-size:16px; line-height:1.7; max-width:620px; margin:0; }
.status-banner { max-width:900px; margin:0 7vw 40px; padding:18px 22px; border:1px solid rgba(201,154,69,.42); background:rgba(201,154,69,.08); color:#e7d4ac; font-size:14px; line-height:1.6; }
.status-banner.error { border-color:#8a4a3f; background:rgba(138,74,63,.12); color:#e5b6ac; }
.reserve-shell { display:grid; grid-template-columns:1.2fr .8fr; gap:6vw; padding:0 7vw 140px; max-width:1180px; margin:0 auto; align-items:start; }
.reserve-events { display:flex; flex-direction:column; gap:14px; }
.reserve-event { display:block; border:1px solid #322f29; padding:22px 24px; cursor:pointer; transition:.2s ease; }
.reserve-event:hover { border-color:#4d453a; }
.reserve-event input { position:absolute; opacity:0; pointer-events:none; }
.reserve-event .row1 { display:flex; justify-content:space-between; align-items:baseline; gap:20px; }
.reserve-event .ev-date { color:var(--gold); font-family:"Fraunces",serif; font-size:22px; }
.reserve-event .ev-price { font-size:15px; color:#d7bd8a; white-space:nowrap; }
.reserve-event .ev-title { font-family:"Fraunces",serif; font-size:21px; margin:8px 0 4px; }
.reserve-event .ev-meta { color:#8e887d; font-size:11px; text-transform:uppercase; letter-spacing:.08em; }
.reserve-event.selected { border-color:var(--gold); background:#1a1712; box-shadow:0 0 0 1px var(--gold); }
.reserve-event.unavailable { opacity:.55; cursor:default; }
.reserve-event.unavailable a { color:#d7bd8a; font-size:11px; text-transform:uppercase; letter-spacing:.1em; }
.reserve-summary { position:sticky; top:110px; background:rgba(12,11,9,.94); border:1px solid rgba(201,154,69,.42); padding:32px; box-shadow:0 25px 80px rgba(0,0,0,.35); }
.reserve-summary h2 { font-family:"Fraunces",serif; font-weight:400; font-size:26px; margin:0 0 20px; }
.reserve-summary label { display:block; color:#a9a297; font-size:10px; text-transform:uppercase; letter-spacing:.11em; margin-bottom:16px; }
.reserve-summary input,.reserve-summary select { width:100%; margin-top:8px; padding:13px 12px; border:1px solid #48443d; border-radius:0; background:#171512; color:#f3eee5; font:400 14px "Jost",sans-serif; outline:none; }
.reserve-summary input:focus,.reserve-summary select:focus { border-color:var(--gold); box-shadow:0 0 0 1px var(--gold); }
.reserve-field-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.reserve-total { display:flex; justify-content:space-between; align-items:baseline; border-top:1px solid #393630; margin-top:6px; padding-top:18px; color:#c9c1b3; font-size:12px; text-transform:uppercase; letter-spacing:.1em; }
.reserve-total strong { font-family:"Fraunces",serif; color:white; font-size:24px; letter-spacing:0; text-transform:none; }
.reserve-summary .form-status { min-height:20px; color:#d8ba7c; font-size:12px; line-height:1.5; margin:14px 0 0; }
.reserve-note { color:#7f786f; font-size:10px; letter-spacing:.04em; line-height:1.6; margin-top:16px; }
@media (max-width:850px) {
  nav a:not(.nav-cta) { display:none; }
  .nav-shell { height:76px; padding:0 20px; }
  .hero { min-height:820px; }
  .hero-content { margin:0 24px; padding-top:70px; }
  .hero-actions { align-items:flex-start; flex-direction:column; }
  .scroll-note { display:none; }
  .intro { grid-template-columns:1fr; padding:85px 24px; gap:20px; }
  .intro-copy { padding-top:0; }
  .feature-row { grid-template-columns:1fr; }
  .gallery { grid-template-columns:1fr; padding:0 20px 85px; }
  .gallery-main img,.gallery-small img { height:360px; }
  .events-section { padding:85px 20px; }
  .section-heading { align-items:flex-start; flex-direction:column; margin-bottom:45px; }
  .event-card { grid-template-columns:100px 1fr; gap:16px 20px; }
  .event-price { grid-column:1; }
  .event-actions { grid-column:2; align-items:flex-start; justify-self:start; }
  .event-name h3 { font-size:21px; }
  .request-content { grid-template-columns:1fr; gap:45px; padding:80px 0; }
  footer { grid-template-columns:1fr; text-align:center; }
  footer .brand { justify-content:center; }
  footer .legal { text-align:center; }
  .reserve-hero { padding:130px 20px 50px; }
  .status-banner { margin:0 20px 30px; }
  .reserve-shell { grid-template-columns:1fr; padding:0 20px 90px; gap:40px; }
  .reserve-summary { position:static; }
}
@media (max-width:520px) {
  .brand>span:last-child { display:none; }
  .hero-copy { font-size:15px; }
  .event-card { grid-template-columns:1fr; padding:24px 3px; }
  .event-price,.event-actions { grid-column:1; }
  .form-card { padding:25px 18px; }
  .field-grid { grid-template-columns:1fr; gap:0; }
  .form-heading { align-items:flex-start; flex-direction:column; }
  .reserve-field-grid { grid-template-columns:1fr; gap:0; }
  .event-actions { align-items:stretch; }
}
