@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=DM+Serif+Display:ital@0;1&family=DM+Sans:wght@300;400;500&display=swap');

:root {
  --sand: #F2EDE3;
  --deep: #181510;
  --dust: #897B65;
  --rust: #C4451A;
  --gold: #D4A843;
  --slate: #231F18;
  --mid: #2A2520;
  --border: rgba(255,255,255,0.07);
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { background:var(--deep); color:var(--sand); font-family:'DM Sans',sans-serif; font-weight:300; overflow-x:hidden; }

/* ── SCROLLBAR ── */
::-webkit-scrollbar { width:3px; }
::-webkit-scrollbar-track { background:var(--deep); }
::-webkit-scrollbar-thumb { background:var(--dust); border-radius:2px; }

/* ── NAV ── */
nav {
  position:fixed; top:0; left:0; right:0; z-index:200;
  padding:18px 64px;
  display:flex; align-items:center; justify-content:space-between;
  transition: background .3s;
  background:linear-gradient(to bottom, rgba(24,21,16,0.9) 0%, rgba(24,21,16,0) 100%);
}
nav.scrolled { background:rgba(24,21,16,0.98); backdrop-filter:blur(10px); border-bottom:0.5px solid rgba(255,255,255,0.06); }
.nav-logo img { height:110px; object-fit:contain; }
.nav-links { display:flex; gap:32px; align-items:center; }
.nav-links a { font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,0.75); text-decoration:none; transition:color .2s; }
.nav-links a:hover, .nav-links a.active { color:var(--sand); }
.nav-cta { background:var(--rust); color:var(--sand) !important; padding:8px 18px; border-radius:2px; }
.nav-cta:hover { background:#A83816 !important; }

/* Mobile nav toggle */
.nav-toggle { display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none; padding:4px; }
.nav-toggle span { display:block; width:24px; height:1.5px; background:var(--sand); transition:all .3s; }
  .mobile-menu {
    display:none; position:fixed; top:0; right:0; bottom:0;
    width:75%; max-width:300px;
    background:linear-gradient(rgba(24,21,16,0.78), rgba(24,21,16,0.78)),
    url('https://static.wixstatic.com/media/b6eaec_9a7acf7581f947d7b9223c97b189ed06~mv2.jpg/v1/fill/w_600,h_900,al_c,q_80,enc_avif,quality_auto/DJI_0174.jpg') center/cover;
    z-index:300; flex-direction:column; padding:72px 24px 40px;
    gap:20px; border-left:0.5px solid var(--border);
    transform:translateX(100%); transition:transform .3s ease;
    align-items:center; overflow-y:auto;
  }
.mobile-menu.open { display:flex; }
.mobile-menu a { font-family:'Bebas Neue',sans-serif; font-size:32px; letter-spacing:.06em; text-transform:uppercase; color:var(--sand); text-decoration:none; text-shadow:0 2px 12px rgba(0,0,0,0.8); transition:color .2s; }
  .mobile-menu a:hover { color:var(--rust); }
.mobile-menu a:hover { color:var(--sand); }
.mobile-close { position:absolute; top:24px; right:28px; background:none; border:none; color:var(--dust); font-size:24px; cursor:pointer; }

/* ── HERO ── */
.hero {
  min-height:100vh; position:relative;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:0 clamp(24px,5vw,80px) clamp(48px,6vh,80px);
  overflow:hidden;
}
.hero-bg { position:absolute; inset:0; background-size:cover; background-position:center; z-index:0; }
.hero-overlay {
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(170deg, rgba(24,21,16,0.1) 0%, rgba(24,21,16,0.55) 50%, rgba(24,21,16,1) 100%);
}
.hero-grid { position:absolute; inset:0; z-index:1; opacity:0.03; background-image:linear-gradient(var(--sand) 1px,transparent 1px),linear-gradient(90deg,var(--sand) 1px,transparent 1px); background-size:64px 64px; }
.hero-inner { position:relative; z-index:2; }
.hero-tag { display:inline-block; font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--sand); background:var(--rust); padding:6px 14px; border-radius:2px; margin-bottom:24px; }
.hero-title { font-family:'Bebas Neue',sans-serif; font-size:clamp(52px,8vw,110px); line-height:.92; letter-spacing:.02em; margin-bottom:16px; }
.hero-subtitle { font-family:'DM Serif Display',serif; font-style:italic; font-size:clamp(16px,2vw,26px); color:var(--dust); margin-bottom:20px; }
.hero-body { font-size:clamp(13px,1.2vw,16px); line-height:1.75; color:var(--dust); max-width:520px; margin-bottom:28px; }
.hero-scroll { position:absolute; bottom:32px; right:64px; z-index:2; display:flex; align-items:center; gap:10px; font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--dust); }
.hero-scroll-line { width:40px; height:1px; background:var(--dust); animation:pulse 2s ease-in-out infinite; }
@keyframes pulse { 0%,100%{width:40px;opacity:.4} 50%{width:70px;opacity:1} }

/* ── SECTION ── */
section { padding:100px 64px; position:relative; border-bottom:0.5px solid var(--border); }
section.dark { background:var(--deep); }
section.slate { background:var(--slate); }
section.mid { background:var(--mid); }

.label { font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--dust); margin-bottom:16px; display:flex; align-items:center; gap:10px; }
.label::before { content:''; display:inline-block; width:20px; height:1px; background:var(--rust); }
h2.section-title { font-family:'DM Serif Display',serif; font-size:clamp(28px,4vw,52px); line-height:1.15; font-weight:400; margin-bottom:16px; }
h2.section-title em { color:var(--dust); font-style:italic; }
p.section-lead { font-size:clamp(14px,1.4vw,17px); line-height:1.78; color:var(--dust); max-width:600px; }

/* ── BUTTONS ── */
.btn-primary { display:inline-block; background:var(--rust); color:var(--sand); padding:14px 32px; font-family:'DM Sans',sans-serif; font-size:12px; letter-spacing:.12em; text-transform:uppercase; text-decoration:none; border-radius:2px; border:none; cursor:pointer; transition:background .2s, transform .1s; }
.btn-primary:hover { background:#A83816; transform:translateY(-1px); }
.btn-ghost { display:inline-block; background:transparent; color:var(--sand); padding:14px 32px; font-family:'DM Sans',sans-serif; font-size:12px; letter-spacing:.12em; text-transform:uppercase; text-decoration:none; border-radius:2px; border:0.5px solid rgba(255,255,255,0.25); cursor:pointer; transition:background .2s; }
.btn-ghost:hover { background:rgba(255,255,255,0.06); }
.btn-row { display:flex; gap:14px; flex-wrap:wrap; }

/* ── GRID UTILS ── */
.two-col { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start; }
.three-col { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; }

/* ── CARDS ── */
.card { background:var(--deep); border:0.5px solid var(--border); padding:28px 24px; }
.card-hover { transition:background .2s, transform .2s; }
.card-hover:hover { background:var(--mid); transform:translateY(-2px); }

/* ── STAT GRID ── */
.stat-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:1px; background:var(--border); border:0.5px solid var(--border); margin:40px 0; }
.stat-cell { background:var(--deep); padding:28px 20px; transition:background .2s; }
.stat-cell:hover { background:var(--mid); }
.stat-num { font-family:'Bebas Neue',sans-serif; font-size:52px; line-height:1; color:var(--sand); }
.stat-num .unit { font-size:28px; color:var(--rust); }
.stat-desc { font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--dust); margin-top:6px; }

/* ── PHOTO GRID ── */
.photo-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:2px; margin-top:48px; }
.photo-grid img { width:100%; aspect-ratio:3/2; object-fit:cover; filter:brightness(.75); transition:filter .3s, transform .3s; display:block; }
.photo-grid img:hover { filter:brightness(.95); }
.photo-grid-2 { grid-template-columns:1fr 1fr; }

/* ── EVENT CARDS ── */
.events-row { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:2px; background:rgba(255,255,255,0.04); margin-top:48px; }
.event-card { background:var(--deep); border:0.5px solid var(--border); overflow:hidden; text-decoration:none; display:block; transition:background .2s; }
.event-card:hover { background:var(--mid); }
.event-card-photo { width:100%; height:200px; object-fit:cover; display:block; filter:brightness(.72); transition:filter .3s; }
.event-card:hover .event-card-photo { filter:brightness(.9); }
.event-card-body { padding:20px 18px; }
.event-card-name { font-family:'Bebas Neue',sans-serif; font-size:26px; letter-spacing:.04em; color:var(--sand); }
.event-card-loc { font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--rust); margin-bottom:10px; }
.event-card-detail { font-size:12px; color:var(--dust); }
.event-card-price { font-family:'Bebas Neue',sans-serif; font-size:22px; color:var(--gold); margin-top:8px; }
.coming-soon-card { background:rgba(196,69,26,0.05); border:0.5px solid rgba(196,69,26,0.2); }
.coming-soon-card .event-card-name { color:var(--rust); }

/* ── TESTIMONIALS ── */
.testi-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:2px; margin-top:40px; }
.testi-card { background:var(--deep); padding:28px 24px; border:0.5px solid var(--border); display:flex; flex-direction:column; }
.testi-quote { font-family:'DM Serif Display',serif; font-style:italic; font-size:15px; line-height:1.72; color:var(--sand); flex:1; margin-bottom:18px; }
.testi-footer { display:flex; align-items:center; justify-content:space-between; padding-top:14px; border-top:0.5px solid var(--border); }
.testi-name { font-size:12px; font-weight:500; color:var(--sand); }
.testi-origin { font-size:11px; color:var(--dust); }
.testi-badge img { height:28px; width:28px; object-fit:contain; }

/* ── FORM ── */
.form-wrap { max-width:560px; }
.form-group { margin-bottom:16px; }
.form-group label { display:block; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--dust); margin-bottom:6px; }
.form-group input, .form-group select, .form-group textarea {
  width:100%; background:rgba(255,255,255,0.04); border:0.5px solid rgba(255,255,255,0.15);
  color:var(--sand); font-family:'DM Sans',sans-serif; font-size:14px; font-weight:300;
  padding:12px 14px; border-radius:2px; outline:none; transition:border .2s;
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color:var(--rust); }
.form-group select option { background:var(--slate); }
.form-group textarea { resize:vertical; min-height:100px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.form-success { display:none; background:rgba(95,154,58,0.1); border:0.5px solid #5F9A3A; padding:16px 20px; border-radius:2px; color:#5F9A3A; font-size:13px; margin-top:12px; }
.form-success.visible { display:block; }
.form-error { display:none; background:rgba(196,69,26,0.1); border:0.5px solid var(--rust); padding:12px 16px; border-radius:2px; color:var(--rust); font-size:12px; margin-top:8px; }
.form-error.visible { display:block; }

/* ── FAQ ── */
.faq-list { margin-top:32px; border:0.5px solid var(--border); }
.faq-item { border-bottom:0.5px solid var(--border); }
.faq-item:last-child { border-bottom:none; }
.faq-q { width:100%; background:none; border:none; color:var(--sand); font-family:'DM Sans',sans-serif; font-size:14px; font-weight:400; text-align:left; padding:20px 24px; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:16px; transition:background .2s; }
.faq-q:hover { background:rgba(255,255,255,0.02); }
.faq-icon { font-size:18px; color:var(--rust); flex-shrink:0; transition:transform .3s; }
.faq-item.open .faq-icon { transform:rotate(45deg); }
.faq-a { max-height:0; overflow:hidden; transition:max-height .4s ease; }
.faq-a-inner { padding:0 24px 20px; font-size:13px; color:var(--dust); line-height:1.75; }
.faq-item.open .faq-a { max-height:400px; }

/* ── DETAILS TABLE ── */
.details-table { width:100%; border-collapse:collapse; margin-top:24px; }
.details-table td { padding:12px 0; border-bottom:0.5px solid var(--border); font-size:13px; vertical-align:top; }
.details-table td:first-child { color:var(--dust); width:40%; padding-right:20px; }
.details-table td:last-child { color:var(--sand); }

/* ── INCLUDED LIST ── */
.included-list { list-style:none; display:flex; flex-direction:column; gap:10px; margin-top:16px; }
.included-list li { display:flex; gap:12px; align-items:flex-start; font-size:13px; color:var(--dust); line-height:1.65; }
.included-list li::before { content:'→'; color:var(--rust); flex-shrink:0; margin-top:1px; }

/* ── FOOTER ── */
footer { background:var(--slate); padding:60px 64px 32px; border-top:0.5px solid var(--border); }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:48px; margin-bottom:48px; align-items:start; }
.footer-logo img { height:96px; object-fit:contain; display:block; }
.footer-tagline { font-size:13px; color:var(--dust); line-height:1.7; max-width:280px; }
.footer-col-title { font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--dust); margin-bottom:16px; }
.footer-links { list-style:none; display:flex; flex-direction:column; gap:10px; }
.footer-links a { font-size:13px; color:var(--dust); text-decoration:none; transition:color .2s; }
.footer-links a:hover { color:var(--sand); }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; padding-top:28px; border-top:0.5px solid var(--border); font-size:11px; color:var(--dust); flex-wrap:wrap; gap:8px; }
.footer-ig { display:flex; align-items:center; gap:8px; color:var(--dust); text-decoration:none; font-size:12px; letter-spacing:.08em; transition:color .2s; }
.footer-ig:hover { color:var(--sand); }
.footer-ig svg { width:16px; height:16px; fill:currentColor; }

/* ── PARTNER LOGOS ── */
.partner-row { display:flex; align-items:center; gap:28px; flex-wrap:wrap; margin-top:24px; }
.partner-row img { height:28px; object-fit:contain; filter:brightness(0) invert(1); opacity:.45; transition:opacity .2s; }
.partner-row img:hover { opacity:.8; }

/* ── REVEAL ANIMATIONS ── */




/* ── RESPONSIVE ── */


/* ── MOBILE OPTIMIZATIONS ── */

/* ── TABLET (768px – 1024px) ── */
@media (min-width: 769px) and (max-width: 1024px) {

  /* NAV */
  nav { padding:14px 32px; }
  .nav-logo img { height:80px; }
  .nav-links { gap:18px; }
  .nav-links a { font-size:10px; }

  /* SECTIONS */
  section { padding:72px 40px; }
  .hero { padding:0 40px 64px; }
  .hero-title { font-size:clamp(52px,9vw,90px); }
  .hero-subtitle { font-size:clamp(16px,2.5vw,24px); }
  .hero-body { font-size:14px; max-width:460px; }

  /* LAYOUT */
  .two-col { grid-template-columns:1fr 1fr; gap:36px; }
  .three-col { grid-template-columns:1fr 1fr; }

  /* EVENTS GRID */
  .events-row { grid-template-columns:repeat(2,1fr); }

  /* STATS */
  .stat-grid { grid-template-columns:repeat(3,1fr); }
  .stat-num { font-size:40px; }

  /* TESTIMONIALS */
  .testi-grid { grid-template-columns:repeat(2,1fr); }

  /* PHOTO GRID */
  .photo-grid { grid-template-columns:1fr 1fr; }

  /* FOOTER */
  .footer-grid { grid-template-columns:1fr 1fr; gap:36px; }
  footer { padding:52px 40px 28px; }

  /* FORMS */
  .form-wrap { max-width:480px; }
  .tab-btn { font-size:10px; padding:10px 12px; }
  .tab-panel { padding:32px 28px; }

  /* CALENDAR */
  .cal-event { grid-template-columns:80px 64px 1fr auto; }
  .cal-meta { display:flex; }

  /* WHO WE ARE - keep side by side but tighter */
  .two-col > div:first-child img { max-height:480px; }

  /* BUTTONS */
  .btn-row { flex-wrap:wrap; }

  /* CTA sections */
  section[style*="text-align:center"] { padding:72px 40px !important; }
}

@media (max-width: 768px) {

  /* ── NAV ── */
  nav { padding:12px 18px; background:rgba(24,21,16,0.97) !important; }
  .nav-logo img { height:68px !important; }
  .nav-links { display:none !important; }
  .nav-toggle { display:flex !important; }

  /* ── SLIDE MENU ── */
  .mobile-menu {
    display:none; position:fixed; top:0; right:0; bottom:0;
    width:75%; max-width:300px;
    background:linear-gradient(rgba(24,21,16,0.78), rgba(24,21,16,0.78)),
    url('https://static.wixstatic.com/media/b6eaec_9a7acf7581f947d7b9223c97b189ed06~mv2.jpg/v1/fill/w_600,h_900,al_c,q_80,enc_avif,quality_auto/DJI_0174.jpg') center/cover;
    z-index:300; flex-direction:column; padding:72px 24px 40px;
    gap:20px; border-left:0.5px solid var(--border);
    transform:translateX(100%); transition:transform .3s ease;
    align-items:center; overflow-y:auto;
  }
  .mobile-menu.open { display:flex; transform:translateX(0); }
  .mobile-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.65); z-index:290; }
  .mobile-overlay.open { display:block; }
  .mobile-close { position:absolute; top:18px; right:22px; background:none; border:none; color:var(--dust); font-size:22px; cursor:pointer; }
  .mobile-menu a { font-family:'Bebas Neue',sans-serif; font-size:26px; letter-spacing:.06em; color:var(--sand); text-decoration:none; text-shadow:0 2px 12px rgba(0,0,0,0.9); text-align:center; }

  /* ── HERO ── */
  .hero { padding:0 18px 48px; min-height:100vh; }
  .hero-title { font-size:clamp(44px,14vw,68px); line-height:.9; }
  .hero-subtitle { font-size:17px; margin-bottom:14px; }
  .hero-body { font-size:13px; line-height:1.7; max-width:100%; margin-bottom:24px; }
  .hero-scroll { display:none; }
  .hero-tag { font-size:9px; padding:5px 10px; }
  #csb { display:none !important; }

  /* ── SECTIONS ── */
  section { padding:48px 18px 40px; }
  h2.section-title { font-size:clamp(24px,8vw,36px); line-height:1.1; }
  p.section-lead { font-size:14px; line-height:1.7; }
  .label { font-size:9px; letter-spacing:.16em; }

  /* ── HIDE decorative elements ── */
  .photo-grid { display:none !important; }
  /* ── ENSURE STATUS TAGS SHOW ── */
  .status-sold, .status-soon, .status-waitlist, .status-open { display:inline-block !important; font-size:9px !important; padding:4px 8px !important; }
  /* ── HIDE tales from the road section ── */
  section:has(.testi-grid) { display:none !important; }

  .hero-grid { display:none; }
  .testi-grid { display:none !important; }
  .partner-row { display:none; }
  .cal-year-label { display:none; }

  /* ── LAYOUT ── */
  .two-col { grid-template-columns:1fr !important; gap:24px; }
  .three-col { grid-template-columns:1fr !important; }
  .two-col > div:nth-child(2):has(img:only-child) { display:none; }

  /* ── EVENTS ── */
  .events-row { grid-template-columns:1fr !important; }
  .event-card-photo { height:180px; }
  .event-card-body { padding:16px 14px; }
  .event-card-name { font-size:22px; }
  .event-card-detail { display:none; }

  /* ── STATS ── */
  .stat-grid { grid-template-columns:repeat(2,1fr); gap:1px; }
  .stat-num { font-size:28px; }
  .stat-cell { padding:16px 12px; }
  .stat-desc { font-size:9px; }

  /* ── FAQ ── */
  .faq-q { font-size:13px; padding:14px 14px; }
  .faq-a-inner { font-size:12px; padding:0 14px 14px; }

  /* ── BUTTONS ── */
  .btn-row { flex-direction:column; gap:10px; }
  .btn-primary, .btn-ghost { width:100%; text-align:center; padding:14px 20px; box-sizing:border-box; }

  /* ── CONTACT FORMS ── */
  .form-wrap { max-width:100%; width:100%; padding:0; }
  .form-row { grid-template-columns:1fr; }
  .form-tabs { flex-wrap:wrap; }
  .tab-btn { font-size:9px; padding:8px 8px; flex:1 1 40%; text-align:center; }
  .tab-panel { padding:20px 10px; width:100%; box-sizing:border-box; }
  .form-group input, .form-group select, .form-group textarea { font-size:16px; padding:12px 12px; }
  .form-group label { font-size:9px; }

  /* ── CALENDAR ── */
  .cal-legend { display:none !important; }
  .cal-event { grid-template-columns:52px 40px 1fr; }
  .cal-meta { display:none; }
  .cal-badge img { width:28px; height:28px; }
  .cal-cup-name { font-size:14px; }
  .cal-dates { font-size:10px; }
  .cal-month { padding:10px 3px; font-size:9px; }
  .cal-month .month-num { font-size:18px; }
  .cal-month-marker { padding:6px 14px 6px 52px; font-size:8px; }

  /* ── FOOTER ── */
  .footer-grid { grid-template-columns:1fr !important; gap:24px; }
  footer { padding:36px 18px 20px; }
  .footer-logo img { height:52px !important; }
  .footer-col-title { font-size:9px; margin-bottom:10px; }
  .footer-links a { font-size:12px; }
  .footer-bottom { flex-direction:column; gap:4px; font-size:10px; }

  /* ── CTA SECTION ── */
  section[style*="text-align:center"] { padding:52px 18px !important; }
  section[style*="text-align:center"] h2 { font-size:clamp(32px,10vw,52px) !important; }
}

@media (max-width:480px) {
  .hero-title { font-size:clamp(38px,13vw,54px); }
  section { padding:40px 14px 32px; }
  .tab-btn { font-size:8px; padding:7px 6px; }
  h2.section-title { font-size:clamp(22px,8vw,32px); }
}
