/* ─────────────────────────────────────────────────────────────────
   GM3 Investor Trip — styles
   Tokens ported from Green Mining Website/app/globals.css (DESIGN.md v2.1).
   Forest green, no beige, professional asset-manager register. No hex outside :root.
   ───────────────────────────────────────────────────────────────── */
:root {
  --color-primary:#1A6B3C; --color-primary-light:#2ECC71; --color-primary-muted:#7FC86F;
  --color-primary-deep:#0E4826; --color-primary-surface:#E8F4E3; --color-primary-line:#B8DEC0;
  --color-bitcoin:#F7931A; --color-bitcoin-light:#FEF3E2; --color-bitcoin-deep:#C16A00;
  --color-white:#FFFFFF; --color-background:#FFFFFF; --color-bg-alt:#F6F9F7;
  --color-surface:#FFFFFF; --color-surface-raised:#F2F6F4;
  --color-border:#E4ECE7; --color-border-strong:#C5D2CB;
  --color-text-primary:#061A0E; --color-text-secondary:#2A3F33; --color-text-muted:#5C7165; --color-text-inverse:#FFFFFF;
  --color-dark-bg:#061A0E; --color-dark-surface:#0C2516; --color-dark-surface-raised:#133421;
  --color-dark-border:#1F4029; --color-dark-border-strong:#2F5C3C;
  --color-dark-text:#EAF3EC; --color-dark-text-2:#B8CDBE; --color-dark-text-3:#6E8C77;
  --color-danger:#B42318;

  --f-display: 'Cabinet Grotesk', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --f-sans: ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --f-body: ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --f-mono: ui-monospace, 'SF Mono', Consolas, monospace;

  --t-display: clamp(40px, 6vw, 88px); --t-h1:clamp(32px,4vw,48px); --t-h2:clamp(26px,3vw,36px);
  --t-h3:24px; --t-h4:20px; --t-body-lg:18px; --t-body:16px; --t-body-sm:14px; --t-label:12px; --t-stat:48px;

  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px; --sp-6:32px; --sp-7:48px; --sp-8:64px; --sp-9:96px;
  --r-1:4px; --r-2:8px; --r-3:12px; --r-4:16px; --r-5:24px; --r-pill:999px;
  --shadow-sm:0 1px 4px rgba(6,26,14,0.08); --shadow-md:0 4px 12px rgba(6,26,14,0.10);
  --shadow-lg:0 8px 24px rgba(6,26,14,0.12); --shadow-primary:0 8px 32px rgba(26,107,60,0.30);
  --t-base:0.20s ease; --t-cinematic:0.6s cubic-bezier(0.22,1,0.36,1);
  --max-width:1160px; --max-width-narrow:760px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin:0; background:var(--color-background); color:var(--color-text-primary);
  font-family:var(--f-body); font-size:var(--t-body); line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img { max-width:100%; display:block; }
a { color:var(--color-primary); }
h1,h2,h3,h4 { font-family:var(--f-display); letter-spacing:-0.02em; line-height:1.1; margin:0; }

.wrap { max-width:var(--max-width); margin:0 auto; padding:0 24px; }
.narrow { max-width:var(--max-width-narrow); margin:0 auto; }
section { padding:var(--sp-9) 0; }
.section-head { margin-bottom:var(--sp-7); }
.section-head h2 { font-size:var(--t-h2); margin-bottom:var(--sp-3); }
.section-head p { color:var(--color-text-muted); font-size:var(--t-body-lg); max-width:620px; margin:0; text-wrap:pretty; }

.kicker { font:500 13px/1 var(--f-mono); letter-spacing:.12em; text-transform:uppercase; color:var(--color-primary); }
.kicker--dark { color:var(--color-primary-muted); }

/* Buttons */
.btn-primary {
  background:var(--color-primary); color:#fff; padding:15px 30px; border-radius:var(--r-2);
  font:600 16px/1 var(--f-sans); border:0; box-shadow:0 1px 3px rgba(26,107,60,0.3);
  transition:background var(--t-base), transform var(--t-base), box-shadow var(--t-base);
  cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; gap:8px;
}
.btn-primary:hover { background:var(--color-primary-deep); transform:translateY(-1px); box-shadow:var(--shadow-primary); }
.btn-primary:disabled { opacity:.6; cursor:default; transform:none; }
.btn-ghost-dark {
  background:transparent; color:#fff; padding:15px 30px; border-radius:var(--r-2);
  font:600 16px/1 var(--f-sans); border:1.5px solid rgba(255,255,255,0.35); cursor:pointer;
  text-decoration:none; display:inline-flex; align-items:center; justify-content:center;
  transition:border-color var(--t-base), background var(--t-base);
}
.btn-ghost-dark:hover { border-color:rgba(255,255,255,0.7); background:rgba(255,255,255,0.06); }

/* Cards / chips */
.card { background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--r-4); padding:28px; box-shadow:var(--shadow-sm); }
.card-raised { background:var(--color-surface-raised); border:1px solid var(--color-border); border-radius:var(--r-3); padding:24px; }
.chip { display:inline-flex; align-items:center; gap:6px; padding:5px 12px; border-radius:var(--r-pill);
  font:600 11px var(--f-body); letter-spacing:.08em; text-transform:uppercase;
  background:var(--color-primary-surface); color:var(--color-primary); border:1px solid rgba(26,107,60,0.18); }
.chip--bitcoin { background:var(--color-bitcoin-light); color:var(--color-bitcoin-deep); border-color:rgba(193,106,0,0.20); }
.chip--dark { background:rgba(255,255,255,0.08); color:var(--color-dark-text); border-color:rgba(255,255,255,0.18); }
.disclaimer { font:400 13px/1.6 var(--f-body); color:var(--color-text-secondary); }

/* ── Header ── */
.site-header { position:absolute; top:0; left:0; right:0; z-index:20; padding:20px 0; }
.site-header .wrap { display:flex; align-items:center; justify-content:space-between; }
.site-header img { height:30px; width:auto; }
.site-header .private-tag { font:500 12px var(--f-mono); letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,0.7); }
.header-right { display:flex; align-items:center; gap:16px; }
.lang-toggle { font:600 12px var(--f-mono); letter-spacing:.06em; display:inline-flex; align-items:center; gap:6px; }
.lang-toggle a { color:rgba(255,255,255,0.55); text-decoration:none; transition:color var(--t-base); }
.lang-toggle a:hover { color:#fff; }
.lang-toggle a.active { color:#fff; }
.lang-toggle span { color:rgba(255,255,255,0.3); }
@media (max-width: 560px) { .site-header .private-tag { display:none; } }

/* ── Hero ── */
.hero { position:relative; min-height:80vh; display:flex; align-items:flex-end; overflow:hidden; color:#fff; background:var(--color-dark-bg); }
.hero-bg { position:absolute; inset:0; z-index:0; }
.hero-bg img { width:100%; height:100%; object-fit:cover; }
.hero-overlay { position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(180deg, rgba(6,26,14,0.50) 0%, rgba(6,26,14,0.22) 32%, rgba(6,26,14,0.78) 78%, rgba(6,26,14,0.96) 100%),
    linear-gradient(90deg, rgba(6,26,14,0.60) 0%, rgba(6,26,14,0.12) 52%, rgba(6,26,14,0) 100%); }
.hero-inner { position:relative; z-index:2; padding-bottom:var(--sp-9); padding-top:120px; }
.hero h1 { font-size:var(--t-display); max-width:16ch; margin:16px 0 18px; text-wrap:balance; }
.hero .sub { font-size:var(--t-body-lg); color:var(--color-dark-text-2); max-width:54ch; margin:0 0 28px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; }

/* ── Decision strip ── */
.decision-strip { background:var(--color-dark-surface); border-top:1px solid var(--color-dark-border); }
.decision-strip .wrap { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--color-dark-border); padding:0; }
.decision-cell { background:var(--color-dark-surface); padding:24px; }
.decision-cell .label { font:500 11px var(--f-mono); letter-spacing:.1em; text-transform:uppercase; color:var(--color-dark-text-3); margin-bottom:6px; }
.decision-cell .value { font:700 20px var(--f-display); color:var(--color-dark-text); letter-spacing:-0.01em; }
.decision-cell .value small { display:block; font:400 12px var(--f-body); color:var(--color-dark-text-2); letter-spacing:0; margin-top:4px; }

/* ── Media card (image on top) ── */
.media-card { padding:0; overflow:hidden; }
.media-card .m { aspect-ratio:16/10; overflow:hidden; background:var(--color-surface-raised); }
.media-card .m img { width:100%; height:100%; object-fit:cover; transition:transform var(--t-cinematic); }
.media-card:hover .m img { transform:scale(1.04); }
.media-card .c { padding:24px; }

/* ── Why / experience ── */
.experience { background:var(--color-bg-alt); }
.exp-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:var(--sp-7); }
.exp-grid .card h3 { font-size:var(--t-h4); margin-bottom:8px; }
.exp-grid .card p { color:var(--color-text-secondary); font-size:var(--t-body); line-height:1.55; margin:0; }
.exp-lead { font-size:20px; line-height:1.5; font-family:var(--f-display); letter-spacing:-0.01em; max-width:42ch; color:var(--color-text-secondary); }

/* ── Itinerary ── */
.itinerary .day { border:1px solid var(--color-border); border-radius:var(--r-3); margin-bottom:14px; overflow:hidden; background:var(--color-surface); box-shadow:var(--shadow-sm); }
.day summary { list-style:none; cursor:pointer; padding:22px 26px; display:flex; align-items:center; gap:20px; }
.day summary::-webkit-details-marker { display:none; }
.day .daynum { flex-shrink:0; width:54px; height:54px; border-radius:var(--r-2); background:var(--color-primary-surface); color:var(--color-primary); display:grid; place-items:center; font:700 13px/1.1 var(--f-mono); text-align:center; letter-spacing:.05em; }
.day .dayhead { flex:1; }
.day .dayhead .t { font:700 var(--t-h4) var(--f-display); letter-spacing:-0.01em; }
.day .dayhead .s { color:var(--color-text-muted); font-size:var(--t-body-sm); margin-top:2px; }
.day .stay { font:500 12px var(--f-mono); color:var(--color-text-muted); text-align:right; flex-shrink:0; }
.day .stay span { display:block; color:var(--color-primary); text-transform:uppercase; letter-spacing:.08em; font-size:10px; }
.day .chev { flex-shrink:0; color:var(--color-text-muted); transition:transform var(--t-base); }
.day[open] .chev { transform:rotate(180deg); }
.day .body { padding:0 26px 24px 100px; color:var(--color-text-secondary); }
.day .body p { margin:0 0 10px; }

/* ── Lodging ── */
.lodging-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.lodging-grid .card h3 { font-size:var(--t-h4); margin-bottom:4px; }
.lodging-grid .card .loc { font:500 12px var(--f-mono); color:var(--color-primary); text-transform:uppercase; letter-spacing:.08em; margin-bottom:12px; }
.lodging-grid .card p { color:var(--color-text-secondary); font-size:var(--t-body); line-height:1.55; margin:0; }
.lodging-grid a.card { text-decoration:none; color:inherit; display:block; transition:box-shadow var(--t-base), transform var(--t-base); }
.lodging-grid a.card:hover { box-shadow:var(--shadow-lg); transform:translateY(-3px); }
.loclink { display:inline-block; margin-top:14px; font:600 13px var(--f-sans); color:var(--color-primary); }
.lodging-grid a.card:hover .loclink { color:var(--color-primary-deep); }

/* ── Budget ── */
.budget { background:var(--color-bg-alt); }
.tier-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:var(--sp-6); }
.budget-standard { max-width:520px; margin-bottom:20px; }
.budget-layout { display:grid; grid-template-columns:1.15fr 1fr 1fr; gap:20px; align-items:start; }
.budget-layout .card h4 { font-size:var(--t-h4); margin-bottom:14px; letter-spacing:-0.01em; }
.budget-layout .card ul { margin:0; padding-left:20px; color:var(--color-text-secondary); font-size:var(--t-body-sm); }
.budget-layout .card li { margin-bottom:8px; line-height:1.5; }
.budget-single { display:grid; grid-template-columns:1fr 1.1fr; gap:20px; align-items:start; }
.budget-note h4 { font-size:var(--t-h4); margin-bottom:12px; letter-spacing:-0.01em; }
.budget-note p { color:var(--color-text-secondary); font-size:var(--t-body-sm); margin:0 0 12px; line-height:1.6; }
.tier-total { border-top:2px solid var(--color-border-strong) !important; margin-top:4px; font-weight:700; }
.tier-total span:first-child { color:var(--color-text-primary); }
.tier-total span:last-child { color:var(--color-primary); }
.tier { background:var(--color-surface); border:1px solid var(--color-border); border-top:3px solid var(--color-primary); border-radius:var(--r-3); padding:28px; }
.tier.premium { border-top-color:var(--color-bitcoin); }
.tier .tname { font:500 12px var(--f-mono); letter-spacing:.1em; text-transform:uppercase; color:var(--color-text-muted); }
.tier .tprice { font:700 var(--t-stat) var(--f-display); color:var(--color-primary); letter-spacing:-0.03em; margin:6px 0 2px; }
.tier.premium .tprice { color:var(--color-bitcoin-deep); }
.tier .tprice small { font:400 14px var(--f-body); color:var(--color-text-muted); }
.tier .teur { font-size:var(--t-body-sm); color:var(--color-text-muted); margin-bottom:18px; }
.tier ul { list-style:none; padding:0; margin:0; }
.tier li { display:flex; justify-content:space-between; padding:9px 0; border-bottom:1px solid var(--color-border); font-size:var(--t-body-sm); }
.tier li:last-child { border-bottom:0; }
.tier li span:last-child { font-weight:600; }
.incl-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.incl-grid .card h4 { font-size:var(--t-h4); margin-bottom:12px; letter-spacing:-0.01em; }
.incl-grid ul { margin:0; padding-left:20px; color:var(--color-text-secondary); font-size:var(--t-body-sm); }
.incl-grid li { margin-bottom:6px; }

/* ── Deposit ── */
.deposit .card-raised { display:grid; gap:14px; }
.deposit h3 { font-size:var(--t-h3); }
.deposit p { margin:0; color:var(--color-text-secondary); }

/* ── Form ── */
.register { background:var(--color-dark-bg); color:var(--color-dark-text); }
.register .section-head h2 { color:var(--color-dark-text); }
.register .section-head p { color:var(--color-dark-text-2); }
.register .mini-strip { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:28px; }
.form-card { background:var(--color-dark-surface); border:1px solid var(--color-dark-border); border-radius:var(--r-4); padding:32px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.field { display:flex; flex-direction:column; gap:6px; margin-bottom:16px; }
.field label { font:500 13px var(--f-sans); color:var(--color-dark-text-2); }
.field input, .field select, .field textarea {
  background:var(--color-dark-bg); border:1px solid var(--color-dark-border); border-radius:var(--r-2);
  color:var(--color-dark-text); padding:13px 14px; font-size:16px; font-family:var(--f-body); width:100%;
}
.field input:focus, .field select:focus, .field textarea:focus { outline:none; border-color:var(--color-primary-light); }
.field textarea { resize:vertical; min-height:80px; }
.full-note { background:rgba(247,147,26,0.10); border:1px solid rgba(247,147,26,0.30); color:var(--color-dark-text); border-radius:var(--r-2); padding:14px 16px; font-size:var(--t-body-sm); line-height:1.5; }
.radio-row { display:flex; gap:12px; flex-wrap:wrap; }
.radio-pill { flex:1; min-width:160px; border:1px solid var(--color-dark-border); border-radius:var(--r-2); padding:14px; cursor:pointer; transition:border-color var(--t-base), background var(--t-base); }
.radio-pill:hover { border-color:var(--color-dark-border-strong); }
.radio-pill.active { border-color:var(--color-primary-light); background:rgba(46,204,113,0.06); }
.radio-pill input { display:none; }
.radio-pill .rt { font-weight:600; font-size:15px; }
.radio-pill .rd { font-size:13px; color:var(--color-dark-text-2); margin-top:2px; }
.consent { display:flex; gap:10px; align-items:flex-start; margin:8px 0 18px; }
.consent input { margin-top:3px; flex-shrink:0; width:18px; height:18px; accent-color:var(--color-primary); }
.consent label { font-size:13px; color:var(--color-dark-text-2); line-height:1.5; }
.consent a { color:var(--color-primary-muted); }
.form-note { font-size:12px; color:var(--color-dark-text-2); margin-top:14px; line-height:1.5; }
.form-msg { margin-top:14px; font-size:14px; min-height:20px; }
.form-msg.error { color:#FCA5A5; }
.form-msg.success { color:var(--color-primary-muted); }
.form-success { text-align:center; padding:20px; }
.form-success h3 { color:var(--color-dark-text); font-size:var(--t-h3); margin-bottom:10px; }
.form-success p { color:var(--color-dark-text-2); }

/* ── FAQ ── */
.faq .day { } /* reuse details styling via .acc */
.acc { border-bottom:1px solid var(--color-border); }
.acc summary { list-style:none; cursor:pointer; padding:20px 4px; display:flex; justify-content:space-between; align-items:center; gap:16px; font:600 var(--t-body-lg) var(--f-display); letter-spacing:-0.01em; }
.acc summary::-webkit-details-marker { display:none; }
.acc .chev { color:var(--color-text-muted); transition:transform var(--t-base); flex-shrink:0; }
.acc[open] .chev { transform:rotate(180deg); }
.acc .body { padding:0 4px 20px; color:var(--color-text-secondary); }
.acc .body p { margin:0 0 10px; }

/* ── Footer ── */
.site-footer { background:var(--color-dark-bg); color:var(--color-dark-text-2); border-top:1px solid var(--color-dark-border); padding:var(--sp-8) 0 var(--sp-7); }
.site-footer img { height:26px; margin-bottom:18px; }
.site-footer .legal { font-size:12.5px; line-height:1.65; color:var(--color-dark-text-2); max-width:760px; }
.site-footer .legal strong { color:var(--color-dark-text-2); }
.site-footer .foot-row { display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; margin-top:24px; font-size:13px; }
.site-footer a { color:var(--color-primary-muted); }

/* ── Sticky mobile CTA ── */
.sticky-cta { display:none; position:fixed; bottom:0; left:0; right:0; z-index:30;
  background:var(--color-dark-surface); border-top:1px solid var(--color-dark-border); padding:12px 16px; box-shadow:0 -4px 24px rgba(6,26,14,0.3); }
.sticky-cta a { width:100%; }

/* ── Animations ── */
@keyframes fadeInUp { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:translateY(0); } }
@keyframes kenBurns { 0% { transform:scale(1.02) translate(0,0);} 100% { transform:scale(1.20) translate(-2.5%,-2%);} }
.reveal { opacity:0; }
.reveal.in { animation:fadeInUp 0.6s var(--t-cinematic) forwards; }
.kenburns { animation:kenBurns 13s ease-in-out infinite alternate; will-change:transform; }
*:focus-visible { outline:2px solid var(--color-primary-light); outline-offset:2px; }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity:1; animation:none !important; }
  .kenburns { animation:none; }
  html { scroll-behavior:auto; }
}

/* ── Responsive ── */
@media (max-width: 860px) {
  section { padding:var(--sp-8) 0; }
  .section-head { margin-bottom:var(--sp-6); }
  .acc summary { padding-right:8px; }
  .decision-strip .wrap { grid-template-columns:1fr 1fr; }
  .decision-cell { padding:18px 20px; }
  .exp-grid, .lodging-grid, .tier-grid, .incl-grid, .form-row, .budget-single, .budget-layout { grid-template-columns:1fr; }
  .hero { min-height:auto; }
  .hero-inner { padding-top:140px; padding-bottom:var(--sp-8); }
  .day summary { padding:18px; gap:14px; }
  .day .stay { display:none; }
  .day .body { padding:0 18px 20px 18px; }
  .sticky-cta { display:block; }
  body { padding-bottom:72px; }
}
@media (max-width: 480px) {
  .decision-cell .value { font-size:18px; }
}
