:root {
  color-scheme: dark;
  --public-ink: #f7f3ea;
  --public-muted: #b9b2a6;
  --public-bg: #09090b;
  --public-surface: #121216;
  --public-line: rgba(199, 153, 76, 0.26);
  --public-gold: #d8ad61;
  --public-amber: #b88032;
  --public-bronze: #8b603d;
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--public-bg); }
.public-body, .public-landing { margin: 0; background: var(--public-bg); color: var(--public-ink); }
.public-body a, .public-landing a { color: inherit; }
.public-nav { position: sticky; z-index: 40; top: 0; display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 76px; padding: 14px max(22px, calc((100vw - 1180px) / 2)); border-bottom: 1px solid var(--public-line); background: rgba(9, 9, 11, .9); backdrop-filter: blur(18px); }
.public-brand { display: flex; align-items: center; gap: 12px; text-decoration: none; letter-spacing: .18em; font-weight: 700; }
.public-brand img { border-radius: 12px; }
.public-brand b { color: var(--public-gold); }
.public-nav nav, .public-footer nav { display: flex; align-items: center; gap: 22px; }
.public-nav nav a, .public-footer a { color: var(--public-muted); text-decoration: none; }
.public-nav nav a:hover, .public-footer a:hover { color: var(--public-ink); }
.public-nav .public-nav-cta { padding: 10px 14px; border: 1px solid var(--public-line); border-radius: 999px; color: var(--public-ink); }
.public-hero { position: relative; display: grid; align-items: center; min-height: 720px; padding: clamp(82px, 12vw, 160px) max(22px, calc((100vw - 1180px) / 2)); overflow: hidden; background: radial-gradient(circle at 78% 16%, rgba(184,128,50,.24), transparent 34%), linear-gradient(125deg, rgba(9,9,11,.96), rgba(9,9,11,.72)), url("/assets/hero/hero-paris.jpg") center/cover; }
.public-hero::after { position: absolute; inset: auto 0 0; height: 170px; background: linear-gradient(transparent, var(--public-bg)); content: ""; }
.public-hero > * { position: relative; z-index: 1; }
.public-hero-compact { min-height: 590px; }
.public-hero-app { grid-template-columns: minmax(0, 1fr) minmax(220px, 340px); gap: 72px; }
.public-kicker { margin: 0 0 18px; color: var(--public-gold); font-size: .76rem; font-weight: 750; letter-spacing: .22em; }
.public-hero h1, .public-section h2, .public-form h2 { max-width: 900px; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.8rem, 7vw, 6.8rem); font-weight: 400; letter-spacing: -.045em; line-height: .96; }
.public-section h2, .public-form h2 { font-size: clamp(2.1rem, 5vw, 4.4rem); }
.public-lead { max-width: 740px; margin: 28px 0 0; color: #d3cdc1; font-size: clamp(1.05rem, 2.1vw, 1.4rem); line-height: 1.65; }
.public-actions, .store-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 38px; }
.public-button, .store-button { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 13px 20px; border: 1px solid var(--public-line); border-radius: 999px; background: rgba(255,255,255,.025); color: var(--public-ink); text-decoration: none; font-weight: 700; }
.public-button.primary { border-color: #d6aa5d; background: linear-gradient(135deg, #8a5e29, #d7ad64); color: #09090b; }
.store-button { flex-direction: column; align-items: flex-start; min-width: 220px; border-radius: 14px; }
.store-button small { margin-top: 3px; color: var(--public-muted); font-weight: 500; }
.store-button.is-pending { border-color: rgba(184,128,50,.38); color: #d9c4a6; }
.public-qr { display: grid; justify-items: center; gap: 12px; margin: 0; padding: 28px; border: 1px solid var(--public-line); border-radius: 28px; background: rgba(10,10,13,.82); }
.public-qr img { width: min(100%, 260px); height: auto; padding: 14px; border-radius: 18px; background: #f7f3ea; }
.public-qr figcaption { color: var(--public-muted); font-size: .85rem; }
.public-section { padding: clamp(72px, 10vw, 130px) max(22px, calc((100vw - 1180px) / 2)); }
.public-section-dark { border-block: 1px solid var(--public-line); background: var(--public-surface); }
.public-grid, .public-plan-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 42px; }
.public-grid.three, .public-plan-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.public-grid article, .public-plan-grid article, .public-faq details { padding: 28px; border: 1px solid var(--public-line); border-radius: 20px; background: rgba(255,255,255,.025); }
.public-grid h3 { margin: 0 0 12px; font-family: Georgia, "Times New Roman", serif; font-size: 1.45rem; font-weight: 400; }
.public-grid p, .public-section > p, .public-faq p { color: var(--public-muted); line-height: 1.7; }
.public-plan-grid article { display: grid; gap: 8px; }
.public-plan-grid strong { color: var(--public-gold); font-family: Georgia, "Times New Roman", serif; font-size: 2.5rem; font-weight: 400; }
.public-plan-grid small { color: var(--public-muted); }
.public-faq { display: grid; gap: 12px; margin-top: 42px; }
.public-faq summary { cursor: pointer; font-weight: 700; }
.partner-layout { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(360px, .75fr); align-items: start; gap: clamp(40px, 8vw, 100px); }
.public-form { display: grid; gap: 17px; padding: clamp(24px, 4vw, 42px); border: 1px solid var(--public-line); border-radius: 26px; background: var(--public-surface); }
.public-form label { display: grid; gap: 8px; color: #d4cec3; font-size: .88rem; font-weight: 650; }
.public-form input, .public-form select { width: 100%; min-height: 50px; padding: 11px 13px; border: 1px solid rgba(216,173,97,.25); border-radius: 11px; background: #1b1b20; color: var(--public-ink); font: inherit; }
.public-form input:focus, .public-form select:focus, .public-button:focus-visible, .public-nav a:focus-visible { outline: 3px solid var(--public-gold); outline-offset: 3px; }
.public-form .public-check { grid-template-columns: auto 1fr; align-items: start; font-weight: 500; line-height: 1.5; }
.public-check input { width: 18px; min-height: 18px; }
.public-form-status { min-height: 24px; margin: 0; color: #d7b982; line-height: 1.5; }
.public-footer { display: flex; justify-content: space-between; gap: 22px; padding: 36px max(22px, calc((100vw - 1180px) / 2)); border-top: 1px solid var(--public-line); color: var(--public-muted); font-size: .86rem; }

@media (max-width: 800px) {
  .public-nav nav > a:not(.public-nav-cta) { display: none; }
  .public-hero-app, .partner-layout { grid-template-columns: 1fr; }
  .public-hero-app { gap: 40px; }
  .public-qr { width: min(100%, 330px); }
  .public-grid.three, .public-plan-grid, .public-grid { grid-template-columns: 1fr; }
  .public-footer { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
