:root {
  --ink: #080809;
  --surface: #111113;
  --surface-2: #171719;
  --line: rgba(255,255,255,.11);
  --text: #f5f2ef;
  --muted: #b8b2ad;
  --red: #c10d18;
  --red-bright: #f22431;
  --gold: #d4af55;
  --gold-soft: #f0d58e;
  --max: 1180px;
  --header: 78px;
  --shadow: 0 24px 70px rgba(0,0,0,.42);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--text);
  background: var(--ink) url('/assets/texture.jpg') center/720px 360px fixed;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 17px;
  line-height: 1.7;
  text-rendering: optimizeLegibility;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at 18% 8%, rgba(242,36,146,.16), transparent 30%), radial-gradient(circle at 84% 22%, rgba(35,118,255,.14), transparent 34%), radial-gradient(circle at 50% -10%, rgba(193,13,24,.24), transparent 42%), linear-gradient(rgba(8,8,9,.66), rgba(8,8,9,.93));
  z-index: -1;
}
img { max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
p { margin: 0 0 1rem; }
h1, h2, h3 { margin: 0 0 1rem; line-height: 1.12; letter-spacing: -.025em; }
h1 { font-size: clamp(2.45rem, 6vw, 5.6rem); }
h2 { font-size: clamp(2rem, 4vw, 3.5rem); }
h3 { font-size: clamp(1.15rem, 2vw, 1.45rem); }
ul { padding-left: 1.2rem; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 3000; background: white; color: black; padding: .8rem 1rem; }
.skip-link:focus { top: 1rem; }

.container { width: min(calc(100% - 2rem), var(--max)); margin-inline: auto; }
.section { padding: clamp(4.5rem, 9vw, 8rem) 0; }
.section-tight { padding: 3.2rem 0; }
.surface { background: rgba(17,17,19,.9); border-block: 1px solid var(--line); }
.kicker { color: var(--gold); font-size: .78rem; font-weight: 850; letter-spacing: .2em; text-transform: uppercase; }
.lead { max-width: 780px; color: #ded9d4; font-size: clamp(1.08rem, 2vw, 1.35rem); }
.muted { color: var(--muted); }
.gold { color: var(--gold-soft); }
.eyeline { width: 76px; height: 3px; background: linear-gradient(90deg, var(--red), var(--gold)); margin: 1.3rem 0 1.5rem; }
.center { text-align: center; }
.center .eyeline, .center .lead { margin-inline: auto; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  min-height: var(--header);
  border-bottom: 1px solid var(--line);
  background: rgba(8,8,9,.93);
  backdrop-filter: blur(18px);
}
.nav-wrap { min-height: var(--header); display: flex; align-items: center; gap: 1.2rem; }
.brand { flex: 0 0 auto; display: inline-flex; align-items: center; }
.brand img { width: 168px; max-height: 56px; object-fit: contain; }
.primary-nav { margin-left: auto; display: flex; align-items: center; gap: .2rem; }
.primary-nav a { display: inline-flex; align-items: center; gap: .34rem; padding: .62rem .5rem; color: #ded8d4; font-size: .81rem; font-weight: 760; white-space: nowrap; }
.primary-nav a:hover, .primary-nav a[aria-current="page"] { color: var(--gold-soft); }
.header-call { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; min-width: max-content; white-space: nowrap; margin-left: .45rem; padding: .68rem .92rem; border: 1px solid rgba(212,175,85,.55); color: var(--gold-soft); font-weight: 850; font-size: .85rem; line-height: 1; }
.menu-toggle { display: none; width: 46px; height: 46px; margin-left: auto; border: 1px solid var(--line); color: white; background: transparent; }
.menu-toggle span { display: block; width: 22px; height: 2px; margin: 5px auto; background: currentColor; }

.hero { position: relative; min-height: min(820px, calc(100svh - var(--header))); display: grid; align-items: center; overflow: hidden; }
.hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8,8,9,.98) 0%, rgba(8,8,9,.78) 45%, rgba(8,8,9,.24) 100%), linear-gradient(115deg, rgba(242,36,146,.14), transparent 38%, rgba(35,118,255,.14)); }
.hero-art {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle at 78% 45%, rgba(242,36,146,.42), transparent 30%), radial-gradient(circle at 92% 18%, rgba(35,118,255,.22), transparent 26%), linear-gradient(135deg, rgba(8,8,9,.08) 55%, rgba(212,175,85,.14)), url('/assets/couple-hero.webp');
  background-position: center, center, center;
  background-size: auto, auto, cover;
  background-repeat: no-repeat;
  filter: saturate(1.22) contrast(1.08) brightness(.9);
}
.hero-art::before, .hero-art::after { content: ""; position: absolute; right: 7vw; top: 13%; width: min(38vw, 480px); aspect-ratio: 1; border: 1px solid rgba(240,213,142,.25); transform: rotate(45deg); box-shadow: 0 0 34px rgba(242,36,146,.14), inset 0 0 34px rgba(35,118,255,.08); }
.hero-art::after { right: 12vw; top: 22%; width: min(26vw, 340px); border-color: rgba(242,36,146,.48); box-shadow: 0 0 32px rgba(242,36,146,.28); }
.hero .container { position: relative; z-index: 2; padding-block: 4rem; }
.hero-logo { width: clamp(220px, 36vw, 460px); margin-bottom: 2rem; filter: drop-shadow(0 18px 36px rgba(0,0,0,.45)); }
.hero h1 { max-width: 880px; }
.hero h1 span { color: var(--gold-soft); }
.hero .lead { max-width: 720px; }
.hero-meta { display: flex; flex-wrap: wrap; gap: .65rem 1.2rem; margin-top: 1.6rem; color: #ddd7d2; font-size: .95rem; }
.hero-meta strong { color: white; }

.actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }
.button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: .78rem 1.1rem; border: 1px solid transparent; font-weight: 850; font-size: .9rem; letter-spacing: .015em; }
.button-primary { color: white; background: linear-gradient(135deg, #8e0710, var(--red-bright)); box-shadow: 0 12px 30px rgba(193,13,24,.25); }
.button-outline { border-color: rgba(212,175,85,.58); color: var(--gold-soft); background: rgba(0,0,0,.22); }
.button:hover { transform: translateY(-2px); }

.trust-strip { border-block: 1px solid var(--line); background: rgba(9,9,10,.8); }
.trust-grid { display: grid; grid-template-columns: repeat(4,1fr); }
.trust-item { min-height: 132px; padding: 1.5rem; border-right: 1px solid var(--line); display: grid; align-content: center; }
.trust-item:last-child { border: 0; }
.trust-item strong { color: var(--gold-soft); font-size: 1.12rem; }
.trust-item span { color: var(--muted); font-size: .91rem; }
.couples-backdrop {
  background-image: linear-gradient(90deg, rgba(8,8,9,.94), rgba(8,8,9,.7) 48%, rgba(8,8,9,.78)), linear-gradient(120deg, rgba(242,36,146,.16), transparent 42%, rgba(35,118,255,.12)), url('/assets/couples-lounge.webp');
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  background-blend-mode: normal, screen, normal;
  border-bottom: 1px solid var(--line);
}

.grid-2, .grid-3, .grid-4 { display: grid; gap: 1rem; }
.grid-2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
.grid-3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
.grid-4 { grid-template-columns: repeat(4,minmax(0,1fr)); }
.card { position: relative; padding: clamp(1.4rem,3vw,2.2rem); border: 1px solid var(--line); background: rgba(19,19,21,.88); overflow: hidden; }
.card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 3px; background: linear-gradient(var(--red),var(--gold)); opacity: .72; }
.card p:last-child { margin-bottom: 0; }
.card-link { display: block; transition: border-color .2s, transform .2s; }
.card-link:hover { border-color: rgba(212,175,85,.42); transform: translateY(-3px); }
.number { display: block; margin-bottom: 1.2rem; color: var(--gold); font-weight: 900; font-size: .78rem; letter-spacing: .18em; }
.text-link { color: var(--gold-soft); font-weight: 850; }
.event-card { padding: 0; }
.event-card img { display: block; width: 100%; height: auto; background: #f7f2e8; }
.event-card-copy { padding: clamp(1.4rem,3vw,2.2rem); }
.event-card-copy p:last-child { margin-bottom: 0; }

.split { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(320px,.95fr); gap: clamp(2rem,6vw,6rem); align-items: center; }
.media-frame { position: relative; background: #0c0c0d; border: 1px solid rgba(212,175,85,.28); box-shadow: var(--shadow); }
.media-frame::after { content: ""; position: absolute; inset: 10px; border: 1px solid rgba(255,255,255,.08); pointer-events: none; }
.media-frame img { display: block; width: 100%; height: auto; max-height: none; object-fit: contain; }
.poster-grid img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; }
.lottery-section { background: linear-gradient(125deg, rgba(193,13,24,.2), rgba(17,17,19,.96) 48%, rgba(212,175,85,.08)); border-block: 1px solid rgba(212,175,85,.22); }
.lottery-copy { max-width: 650px; }
.lottery-poster { width: min(100%, 520px); margin-inline: auto; transition: transform .2s, border-color .2s; }
.lottery-poster:hover { transform: translateY(-4px); border-color: rgba(212,175,85,.58); }
.lottery-poster img { height: auto; max-height: none; object-fit: contain; }

.check-list { list-style: none; margin: 1.4rem 0 0; padding: 0; }
.check-list li { position: relative; padding: .72rem 0 .72rem 1.7rem; border-bottom: 1px solid var(--line); }
.check-list li::before { content: "✓"; position: absolute; left: 0; color: var(--gold); font-weight: 900; }
.bar-prices { list-style: none; margin: 1rem 0 0; padding: 0; }
.bar-prices li { display: flex; justify-content: space-between; gap: 1rem; padding: .42rem 0; border-bottom: 1px solid var(--line); color: var(--muted); }
.bar-prices li strong { flex: 0 0 auto; color: var(--gold-soft); font-weight: 900; }
.bar-note { margin-top: 1.6rem; color: var(--muted); font-size: .88rem; }
.bracelet-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .6rem; margin-top: 1.3rem; }
.bracelet-item { padding: .85rem; border: 1px solid var(--line); background: rgba(0,0,0,.22); }
.dot { display: inline-block; width: 15px; height: 15px; margin-right: .55rem; border-radius: 50%; border: 1px solid rgba(255,255,255,.45); vertical-align: -1px; }
.dot-white { background: #efefef; }.dot-pink { background: #db2d83; }.dot-blue { background: #2687ee; }.dot-black { background: #050505; }

.price-card strong { display: block; color: var(--gold-soft); font-size: clamp(2.4rem,5vw,4.2rem); line-height: 1; margin: 1.1rem 0; }
.price-card.featured { border-color: rgba(212,175,85,.48); background: linear-gradient(145deg,rgba(193,13,24,.18),rgba(19,19,21,.92)); }
.price-card ul { color: var(--muted); }

.schedule { display: grid; gap: .65rem; }
.schedule-row { display: grid; grid-template-columns: 150px 1fr auto; align-items: center; gap: 1rem; padding: 1rem 1.2rem; border: 1px solid var(--line); background: rgba(18,18,20,.86); }
.schedule-date { color: var(--gold-soft); font-weight: 900; }
.tag { display: inline-flex; padding: .28rem .55rem; border: 1px solid rgba(212,175,85,.35); color: #ddd; font-size: .74rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.tag-red { border-color: rgba(242,36,49,.55); color: #ff9da3; }
.month-title { margin: 2.8rem 0 1rem; color: var(--gold-soft); }

.steps { counter-reset: step; }
.step { counter-increment: step; position: relative; padding: 1.6rem 1.5rem 1.6rem 4.8rem; border-top: 1px solid var(--line); }
.step::before { content: counter(step, decimal-leading-zero); position: absolute; left: .3rem; top: 1.15rem; color: var(--gold); font-size: 1.55rem; font-weight: 900; }

.review { padding: 1.6rem; border-left: 3px solid var(--red); background: rgba(18,18,20,.88); }
.review blockquote { margin: 0 0 1rem; color: #eee8e3; font-size: 1.08rem; }
.review cite { color: var(--muted); font-style: normal; font-size: .86rem; }
.audio-slot { padding: 1.4rem; border: 1px dashed rgba(212,175,85,.4); background: rgba(0,0,0,.2); }
.audio-slot span { display: block; color: var(--gold-soft); font-weight: 850; }

.faq details { border-top: 1px solid var(--line); }
.faq details:last-child { border-bottom: 1px solid var(--line); }
.faq summary { cursor: pointer; padding: 1.2rem 2.2rem 1.2rem 0; font-weight: 850; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq details p { color: var(--muted); padding: 0 0 1.2rem; }

.page-hero {
  padding: clamp(5rem,11vw,9rem) 0 4rem;
  border-bottom: 1px solid var(--line);
  background-image: linear-gradient(90deg, rgba(8,8,9,.93), rgba(8,8,9,.7) 52%, rgba(8,8,9,.76)), linear-gradient(120deg, rgba(242,36,146,.14), transparent 42%, rgba(35,118,255,.11)), url('/assets/couples-lounge.webp');
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  background-blend-mode: normal, screen, normal;
}
.breadcrumbs { margin-bottom: 2rem; color: var(--muted); font-size: .86rem; }
.breadcrumbs a { color: var(--gold-soft); }
.contact-list { list-style: none; padding: 0; }
.contact-list li { padding: .75rem 0; border-bottom: 1px solid var(--line); }
.map-panel { min-height: 420px; display: grid; place-content: center; text-align: center; background: radial-gradient(circle, rgba(193,13,24,.25), transparent 55%), #111113; border: 1px solid var(--line); }

.cta-band { padding: clamp(2.2rem,5vw,4rem); border: 1px solid rgba(212,175,85,.36); background: linear-gradient(120deg,rgba(193,13,24,.25),rgba(13,13,14,.94) 58%); display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.cta-band h2 { max-width: 700px; margin-bottom: .5rem; }

.site-footer { padding: 4rem 0 6.5rem; border-top: 1px solid var(--line); background: #080809; }
.footer-grid { display: grid; grid-template-columns: 1.25fr repeat(3,1fr); gap: 2rem; }
.footer-logo { width: 220px; margin-bottom: 1rem; }
.footer-title { color: var(--gold-soft); font-size: .82rem; letter-spacing: .14em; text-transform: uppercase; }
.footer-links { display: grid; gap: .55rem; color: var(--muted); font-size: .92rem; }
.legal-line { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--line); color: #85807c; font-size: .82rem; }
.mobile-bar { display: none; }

.age-gate { position: fixed; inset: 0; z-index: 5000; display: grid; place-items: center; padding: 1rem; background: rgba(5,5,6,.98); }
.age-gate[hidden] { display: none; }
.age-dialog { width: min(560px,100%); padding: clamp(2rem,6vw,4rem); text-align: center; border: 1px solid rgba(212,175,85,.46); background: #0e0e10; box-shadow: var(--shadow); }
.age-dialog img { width: 280px; }
.age-dialog h2 { margin-top: 1.4rem; }
.age-dialog p { color: var(--muted); }
.age-actions { display: grid; gap: .7rem; margin-top: 1.5rem; }
.age-leave { border: 0; background: transparent; color: #8f8985; padding: .7rem; cursor: pointer; }

@media (max-width: 1240px) {
  :root { --header: 70px; }
  .menu-toggle { display: block; }
  .header-call { margin-left: 0; }
  .primary-nav { display: none; position: absolute; inset: var(--header) 0 auto; padding: .8rem 1rem 1.2rem; background: #0b0b0c; border-bottom: 1px solid var(--line); }
  .primary-nav.open { display: grid; }
  .primary-nav a { padding: .85rem 0; border-bottom: 1px solid var(--line); }
  .trust-grid { grid-template-columns: repeat(2,1fr); }
  .trust-item:nth-child(2) { border-right: 0; }
  .trust-item:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .grid-4 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .footer-grid { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 760px) {
  body { font-size: 16px; }
  .container { width: min(calc(100% - 1.25rem), var(--max)); }
  .brand img { width: 132px; }
  .header-call { display: none; }
  .hero { min-height: auto; }
  .hero::after { background: linear-gradient(rgba(8,8,9,.88),rgba(8,8,9,.97)); }
  .hero-art { background-position: center, center, 68% center; }
  .couples-backdrop, .page-hero { background-position: 68% center; }
  .hero-art::before { right: -22vw; top: 10%; width: 78vw; }
  .hero-art::after { right: -3vw; top: 17%; width: 50vw; }
  .hero-logo { width: 230px; margin-bottom: 1.25rem; }
  .hero .container { padding-block: 4rem 5rem; }
  .hero-meta { display: grid; gap: .45rem; }
  .grid-2, .grid-3, .grid-4, .split, .footer-grid { grid-template-columns: 1fr; }
  .split { gap: 2.5rem; }
  .bracelet-list { grid-template-columns: 1fr; }
  .schedule-row { grid-template-columns: 1fr; gap: .35rem; }
  .schedule-row .tag { width: max-content; }
  .cta-band { align-items: stretch; flex-direction: column; }
  .trust-item { min-height: 108px; padding: 1rem; }
  .mobile-bar { position: fixed; left: .6rem; right: .6rem; bottom: .55rem; z-index: 2000; display: grid; grid-template-columns: 1fr 1fr; gap: .45rem; padding: .45rem; background: rgba(8,8,9,.94); border: 1px solid var(--line); backdrop-filter: blur(12px); }
  .mobile-bar a { padding: .72rem; text-align: center; font-size: .83rem; font-weight: 900; }
  .mobile-call { color: white; background: var(--red); }
  .mobile-map { color: var(--gold-soft); border: 1px solid rgba(212,175,85,.4); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

@media print {
  .site-header, .mobile-bar, .age-gate, .actions { display: none !important; }
  body { color: #111; background: white; }
  .card, .review, .schedule-row { background: white; color: #111; border-color: #bbb; }
}
