/* ═══════════════════════════════════════════════════════════════
   VERDURA GARDENS — IMPERIAL AURA DESIGN SYSTEM
   Art Deco Luxury × Material You Softness
   Fonts: Cormorant Garamond + Josefin Sans + JetBrains Mono
   ═══════════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,600&family=Josefin+Sans:wght@200;300;400;600;700&family=JetBrains+Mono:wght@400;500&display=swap');

/* ── IMPERIAL AURA DESIGN TOKENS ── */
:root {
  /* ── Obsidian Backgrounds ── */
  --obsidian-deep:    #05060a;
  --obsidian-base:    #080b12;
  --obsidian-mid:     #0d1120;
  --obsidian-lift:    #121829;
  --obsidian-surface: #171e32;
  --obsidian-glass:   rgba(13, 17, 32, 0.82);
  --obsidian-card:    #0f1525;

  /* ── Champagne Typography ── */
  --champagne-bright: #f5e6c0;
  --champagne-warm:   #e8d49a;
  --champagne-soft:   #c9b882;
  --champagne-muted:  #9a8a66;
  --champagne-faint:  #5c5040;

  /* ── Metallic Gold Accents ── */
  --gold-100: #fffbf0;
  --gold-200: #fef3d0;
  --gold-300: #f5d980;
  --gold-400: #e8c148;
  --gold-500: #c9963a;   /* Primary gold */
  --gold-600: #a87a28;
  --gold-700: #7a5a1a;
  --gold-800: #4a360e;
  --gold-glow: rgba(201, 150, 58, 0.25);
  --gold-shimmer: linear-gradient(135deg, #f5d980 0%, #c9963a 40%, #a87a28 70%, #f5d980 100%);
  --gold-text: linear-gradient(135deg, #fef3d0 0%, #e8c148 30%, #c9963a 60%, #f5d980 100%);

  /* ── Botanical Greens ── */
  --sage-deep:   #1a2e1a;
  --sage-mid:    #2d4d2d;
  --sage-bright: #4a7c59;
  --sage-light:  #7aaa8a;
  --sage-pale:   #b8d4c0;
  --sage-glow:   rgba(74, 124, 89, 0.2);

  /* ── Accent: Deep Emerald ── */
  --emerald:        #1a5c3a;
  --emerald-light:  #2e8a5c;
  --emerald-bright: #3dab72;
  --emerald-glow:   rgba(61, 171, 114, 0.2);

  /* ── Atmospheric Glows ── */
  --glow-gold:    0 0 60px rgba(201,150,58,0.20), 0 0 120px rgba(201,150,58,0.08);
  --glow-gold-sm: 0 0 20px rgba(201,150,58,0.25), 0 0 40px rgba(201,150,58,0.10);
  --glow-sage:    0 0 60px rgba(74,124,89,0.15), 0 0 120px rgba(74,124,89,0.06);
  --glow-card:    0 8px 40px rgba(0,0,0,0.5), 0 2px 0 rgba(201,150,58,0.08) inset;
  --glow-card-h:  0 16px 60px rgba(0,0,0,0.6), 0 0 0 1px rgba(201,150,58,0.25), 0 2px 0 rgba(201,150,58,0.12) inset;

  /* ── Deco Borders ── */
  --border-gold:    rgba(201,150,58,0.25);
  --border-gold-h:  rgba(201,150,58,0.55);
  --border-subtle:  rgba(245,217,128,0.08);
  --border-mid:     rgba(245,217,128,0.14);
  --border-strong:  rgba(245,217,128,0.22);

  /* ── Typography ── */
  --font-display: 'Cormorant Garamond', 'Palatino Linotype', serif;
  --font-ui:      'Josefin Sans', 'Gill Sans', sans-serif;
  --font-mono:    'JetBrains Mono', monospace;

  /* ── Spacing ── */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:20px;
  --sp-6:24px; --sp-8:32px; --sp-10:40px; --sp-12:48px; --sp-16:64px;
  --sp-20:80px; --sp-24:96px; --sp-32:128px;

  /* ── Radii (organic + geometric) ── */
  --r-sm:  6px;   --r-md:  12px;  --r-lg:  20px;
  --r-xl:  28px;  --r-2xl: 40px;  --r-3xl: 60px;
  --r-full: 9999px;

  /* ── Motion ── */
  --ease-gold:   cubic-bezier(0.22, 0.61, 0.36, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --ease-out:    cubic-bezier(0.16, 1, 0.3, 1);
  --dur-fast: 140ms; --dur-base: 280ms; --dur-slow: 500ms; --dur-slower: 750ms;

  /* ── Layout ── */
  --max-w:    1280px;
  --max-w-xl: 1440px;
  --nav-h:    76px;
}

/* ── RESET ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body {
  font-family: var(--font-ui);
  font-size: 1rem; line-height: 1.6;
  color: var(--champagne-warm);
  background: var(--obsidian-base);
  overflow-x: hidden;
}
img { max-width: 100%; display: block; }
a  { color: inherit; text-decoration: none; }
ul { list-style: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }
input, textarea, select { font-family: inherit; }
address { font-style: normal; }

/* ── ATMOSPHERIC LAYERED BACKGROUND ── */
body::before {
  content: '';
  position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 80% 50% at 20% 10%, rgba(201,150,58,0.06) 0%, transparent 60%),
    radial-gradient(ellipse 60% 40% at 80% 80%, rgba(74,124,89,0.08) 0%, transparent 55%),
    radial-gradient(ellipse 100% 60% at 50% 50%, rgba(13,17,32,0.95) 0%, transparent 100%);
}

/* Art Deco grain texture */
body::after {
  content: '';
  position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
  opacity: 0.6;
}

main, header, nav, footer, section, article { position: relative; z-index: 1; }

/* ── TYPOGRAPHY SYSTEM ── */
h1,h2,h3,h4,h5,h6 { font-family: var(--font-display); line-height: 1.1; color: var(--champagne-bright); }

.display-2xl { font-size: clamp(4rem, 9vw, 9rem); font-weight: 300; line-height: 0.95; letter-spacing: -0.02em; }
.display-xl  { font-size: clamp(3rem, 7vw, 7rem);  font-weight: 300; line-height: 1.0;  letter-spacing: -0.015em; }
.display-lg  { font-size: clamp(2.4rem, 5vw, 5rem); font-weight: 400; line-height: 1.05; letter-spacing: -0.01em; }
.display-md  { font-size: clamp(1.8rem, 3.5vw, 3.5rem); font-weight: 400; line-height: 1.1; }
.display-sm  { font-size: clamp(1.5rem, 2.5vw, 2.5rem); font-weight: 400; line-height: 1.2; }
.heading-xl  { font-size: clamp(1.3rem, 2.5vw, 2rem);   font-weight: 600; line-height: 1.2; }
.heading-lg  { font-size: clamp(1.1rem, 2vw, 1.625rem); font-weight: 600; line-height: 1.3; }
.heading-md  { font-size: 1.25rem; font-weight: 600; line-height: 1.35; }
.heading-sm  { font-size: 1.0625rem; font-weight: 600; line-height: 1.4; }

.body-xl  { font-size: 1.125rem; line-height: 1.75; font-weight: 300; }
.body-lg  { font-size: 1rem;     line-height: 1.7;  font-weight: 300; }
.body-md  { font-size: .9375rem; line-height: 1.65; font-weight: 300; }
.body-sm  { font-size: .875rem;  line-height: 1.6;  font-weight: 300; }
.body-xs  { font-size: .75rem;   line-height: 1.55; font-weight: 300; }

.ui-lg    { font-family: var(--font-ui); font-size: .9375rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.ui-md    { font-family: var(--font-ui); font-size: .8125rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.ui-sm    { font-family: var(--font-ui); font-size: .6875rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }

/* Gold gradient text */
.text-gold {
  background: var(--gold-text);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent;
  background-clip: text; background-size: 200% 100%;
  animation: gold-shimmer 4s ease-in-out infinite;
}
@keyframes gold-shimmer {
  0%,100% { background-position: 0% 50%; }
  50%      { background-position: 100% 50%; }
}
.text-sage    { color: var(--sage-light); }
.text-muted   { color: var(--champagne-muted); }
.text-faint   { color: var(--champagne-faint); }
.text-bright  { color: var(--champagne-bright); }
.text-center  { text-align: center; }
.italic       { font-style: italic; }

/* ── LAYOUT ── */
.container       { width: 100%; max-width: var(--max-w);    margin-inline: auto; padding-inline: var(--sp-6); }
.container-xl    { width: 100%; max-width: var(--max-w-xl); margin-inline: auto; padding-inline: var(--sp-6); }
.container-sm    { width: 100%; max-width: 800px; margin-inline: auto; padding-inline: var(--sp-6); }
.section         { padding-block: var(--sp-24); }
.section-sm      { padding-block: var(--sp-16); }
.section-lg      { padding-block: clamp(5rem, 12vw, 10rem); }

/* ── DECO ORNAMENTS ── */
.deco-line {
  display: flex; align-items: center; gap: var(--sp-4);
  margin-bottom: var(--sp-5);
}
.deco-line-bar {
  flex: 1; height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold-500), transparent);
}
.deco-line-diamond {
  width: 8px; height: 8px;
  background: var(--gold-500);
  transform: rotate(45deg);
  box-shadow: var(--glow-gold-sm);
  flex-shrink: 0;
}
.deco-line-center {
  display: flex; align-items: center; gap: var(--sp-3);
  justify-content: center; margin-bottom: var(--sp-6);
}
.deco-line-center .deco-line-bar { max-width: 80px; }

/* Stepped border (Art Deco) */
.deco-stepped {
  position: relative;
}
.deco-stepped::before, .deco-stepped::after {
  content: '';
  position: absolute;
  border: 1px solid var(--border-gold);
  border-radius: inherit;
  pointer-events: none;
}
.deco-stepped::before { inset: 4px; opacity: 0.6; }
.deco-stepped::after  { inset: 8px; opacity: 0.3; }

/* Sunburst corner ornament */
.deco-corner {
  position: absolute;
  width: 40px; height: 40px;
}
.deco-corner::before, .deco-corner::after {
  content: '';
  position: absolute;
  background: var(--gold-500);
}
.deco-corner-tl { top: var(--sp-5); left: var(--sp-5); }
.deco-corner-tl::before { width: 20px; height: 1px; top: 0; left: 0; }
.deco-corner-tl::after  { width: 1px; height: 20px; top: 0; left: 0; }
.deco-corner-tr { top: var(--sp-5); right: var(--sp-5); }
.deco-corner-tr::before { width: 20px; height: 1px; top: 0; right: 0; }
.deco-corner-tr::after  { width: 1px; height: 20px; top: 0; right: 0; }
.deco-corner-bl { bottom: var(--sp-5); left: var(--sp-5); }
.deco-corner-bl::before { width: 20px; height: 1px; bottom: 0; left: 0; }
.deco-corner-bl::after  { width: 1px; height: 20px; bottom: 0; left: 0; }
.deco-corner-br { bottom: var(--sp-5); right: var(--sp-5); }
.deco-corner-br::before { width: 20px; height: 1px; bottom: 0; right: 0; }
.deco-corner-br::after  { width: 1px; height: 20px; bottom: 0; right: 0; }

/* ── SECTION EYEBROW ── */
.eyebrow {
  display: inline-flex; align-items: center; gap: var(--sp-3);
  font-family: var(--font-ui);
  font-size: .6875rem; font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase;
  color: var(--gold-500);
  margin-bottom: var(--sp-4);
}
.eyebrow::before, .eyebrow::after {
  content: ''; display: block;
  width: 24px; height: 1px;
  background: var(--gold-500);
}

/* ── GOLD PILL BUTTONS ── */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--sp-3);
  font-family: var(--font-ui); font-size: .75rem; font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase;
  padding: var(--sp-4) var(--sp-8);
  border-radius: var(--r-full);
  border: 1px solid transparent;
  cursor: pointer; position: relative; overflow: hidden;
  transition: all var(--dur-base) var(--ease-gold);
  white-space: nowrap;
}

/* Shimmer sweep on hover */
.btn::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(120deg, transparent 20%, rgba(255,255,255,0.12) 50%, transparent 80%);
  transform: translateX(-100%);
  transition: transform var(--dur-slow) var(--ease-out);
}
.btn:hover::before { transform: translateX(100%); }

/* Gold filled */
.btn-gold {
  background: var(--gold-shimmer);
  color: var(--obsidian-deep);
  border-color: var(--gold-500);
  box-shadow: var(--glow-gold-sm);
  background-size: 200% 100%;
}
.btn-gold:hover {
  transform: translateY(-2px);
  box-shadow: var(--glow-gold);
  background-position: right center;
}
.btn-gold:active { transform: translateY(0); }

/* Outlined gold */
.btn-outline {
  background: transparent;
  color: var(--gold-400);
  border-color: var(--border-gold);
}
.btn-outline:hover {
  background: rgba(201,150,58,0.08);
  border-color: var(--border-gold-h);
  color: var(--gold-300);
  transform: translateY(-2px);
  box-shadow: var(--glow-gold-sm);
}

/* Ghost */
.btn-ghost {
  background: transparent;
  color: var(--champagne-muted);
  border-color: var(--border-subtle);
}
.btn-ghost:hover { background: rgba(255,255,255,0.04); border-color: var(--border-mid); color: var(--champagne-warm); }

/* Sage green */
.btn-sage {
  background: linear-gradient(135deg, var(--sage-mid) 0%, var(--emerald) 100%);
  color: var(--sage-pale);
  border-color: var(--sage-bright);
  box-shadow: var(--glow-sage);
}
.btn-sage:hover { transform: translateY(-2px); box-shadow: 0 0 40px rgba(74,124,89,0.3); }

/* Sizes */
.btn-sm  { font-size: .625rem; padding: var(--sp-3) var(--sp-5); letter-spacing: .14em; }
.btn-lg  { font-size: .8125rem; padding: var(--sp-5) var(--sp-10); }
.btn-xl  { font-size: .875rem; padding: var(--sp-6) var(--sp-12); }
.btn-icon{ width: 44px; height: 44px; padding: 0; border-radius: 50%; font-size: 1.1rem; letter-spacing: 0; text-transform: none; }

/* ── IMPERIAL CARDS ── */
.card {
  background: var(--obsidian-card);
  border: 1px solid var(--border-gold);
  border-radius: var(--r-2xl);
  position: relative;
  overflow: hidden;
  transition: all var(--dur-slow) var(--ease-out);
}
.card::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(201,150,58,0.04) 0%, transparent 60%);
  pointer-events: none; border-radius: inherit;
}
.card:hover {
  border-color: var(--border-gold-h);
  box-shadow: var(--glow-card-h);
  transform: translateY(-4px);
}

/* Glass card */
.card-glass {
  background: var(--obsidian-glass);
  backdrop-filter: blur(20px) saturate(1.5);
  -webkit-backdrop-filter: blur(20px) saturate(1.5);
  border: 1px solid var(--border-gold);
  border-radius: var(--r-2xl);
}

/* ── BADGES / TAGS ── */
.badge {
  display: inline-flex; align-items: center; gap: var(--sp-1);
  padding: 3px 12px;
  border-radius: var(--r-full);
  font-family: var(--font-ui);
  font-size: .5625rem; font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase;
}
.badge-gold    { background: rgba(201,150,58,0.15); color: var(--gold-300); border: 1px solid var(--border-gold); }
.badge-sage    { background: rgba(74,124,89,0.15);  color: var(--sage-light); border: 1px solid rgba(74,124,89,0.3); }
.badge-champagne { background: rgba(245,230,192,0.08); color: var(--champagne-soft); border: 1px solid var(--border-subtle); }

/* ── FORMS ── */
.form-group   { display: flex; flex-direction: column; gap: var(--sp-2); }
.form-label   { font-family: var(--font-ui); font-size: .6875rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--champagne-muted); }
.form-label .req { color: var(--gold-400); }
.form-input, .form-select, .form-textarea {
  background: var(--obsidian-lift);
  border: 1px solid var(--border-gold);
  border-radius: var(--r-md);
  padding: var(--sp-4) var(--sp-5);
  font-family: var(--font-ui); font-size: .875rem; font-weight: 400;
  color: var(--champagne-warm);
  outline: none; width: 100%;
  transition: all var(--dur-base) var(--ease-gold);
}
.form-input::placeholder { color: var(--champagne-faint); }
.form-input:focus, .form-select:focus, .form-textarea:focus {
  border-color: var(--gold-500);
  box-shadow: 0 0 0 3px rgba(201,150,58,0.12), var(--glow-gold-sm);
  background: var(--obsidian-surface);
}
.form-select { appearance: none; cursor: pointer; }
.form-select option { background: var(--obsidian-mid); color: var(--champagne-warm); }
.form-textarea { resize: vertical; min-height: 130px; }
.form-check { display: flex; align-items: flex-start; gap: var(--sp-3); cursor: pointer; }
.form-check-box {
  width: 18px; height: 18px; flex-shrink: 0; margin-top: 2px;
  border: 1px solid var(--border-gold); border-radius: var(--r-sm);
  background: var(--obsidian-lift); cursor: pointer; appearance: none;
  transition: all var(--dur-base);
}
.form-check-box:checked {
  background: var(--gold-500); border-color: var(--gold-400);
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 6l3 3 5-5' stroke='%23080b12' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-size: 75%; background-position: center; background-repeat: no-repeat;
}
.form-check-text { font-size: .8125rem; color: var(--champagne-muted); line-height: 1.55; }
.form-check-text a { color: var(--gold-400); text-decoration: underline; text-underline-offset: 2px; }

/* ── NAVIGATION ── */
.topnav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  height: var(--nav-h);
  background: rgba(8, 11, 18, 0.86);
  border-bottom: 1px solid rgba(255,255,255,0.06);
  transition: background var(--dur-slow) var(--ease-gold), box-shadow var(--dur-slow);
}
.topnav.scrolled {
  background: var(--obsidian-glass);
  backdrop-filter: blur(24px) saturate(1.6);
  -webkit-backdrop-filter: blur(24px) saturate(1.6);
  border-bottom: 1px solid var(--border-gold);
  box-shadow: 0 4px 40px rgba(0,0,0,0.5), 0 1px 0 rgba(201,150,58,0.1);
}
.nav-inner {
  height: 100%; display: flex; align-items: center; justify-content: space-between; gap: var(--sp-8);
}
.nav-logo {
  display: flex; align-items: center; gap: var(--sp-3);
  flex-shrink: 0; text-decoration: none;
}
.nav-logo-emblem {
  width: 40px; height: 40px;
  background: var(--gold-shimmer);
  background-size: 200%;
  border-radius: var(--r-md);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display); font-size: 1.3rem; font-weight: 700;
  color: var(--obsidian-deep);
  box-shadow: var(--glow-gold-sm);
  transition: all var(--dur-base) var(--ease-spring);
}
.nav-logo:hover .nav-logo-emblem { transform: rotate(-6deg) scale(1.1); }
.nav-logo-text {
  font-family: var(--font-display); font-size: 1.3rem; font-weight: 400;
  color: var(--champagne-bright); letter-spacing: .04em; line-height: 1;
}
.nav-logo-sub {
  font-family: var(--font-ui); font-size: .5625rem; font-weight: 600;
  letter-spacing: .2em; text-transform: uppercase; color: var(--gold-500);
  display: block; margin-top: 2px;
}

/* Nav Links */
.nav-links { display: flex; align-items: center; gap: var(--sp-1); flex: 1; justify-content: center; }
.nav-link {
  font-family: var(--font-ui); font-size: .6875rem; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase;
  color: var(--champagne-muted);
  padding: var(--sp-2) var(--sp-4);
  border-radius: var(--r-full);
  transition: all var(--dur-base) var(--ease-gold);
  position: relative;
}
.nav-link::after {
  content: '';
  position: absolute; bottom: 2px; left: 50%; right: 50%;
  height: 1px; background: var(--gold-500);
  border-radius: var(--r-full);
  transition: left var(--dur-base) var(--ease-gold), right var(--dur-base) var(--ease-gold);
}
.nav-link:hover, .nav-link.active { color: var(--champagne-bright); }
.nav-link:hover::after, .nav-link.active::after { left: var(--sp-4); right: var(--sp-4); }

/* Dropdown */
.nav-dd { position: relative; }
.nav-dd-btn {
  font-family: var(--font-ui); font-size: .6875rem; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase;
  color: var(--champagne-muted);
  padding: var(--sp-2) var(--sp-4);
  border-radius: var(--r-full);
  cursor: pointer; border: none; background: transparent;
  display: flex; align-items: center; gap: 5px;
  transition: color var(--dur-base);
}
.nav-dd-btn:hover { color: var(--champagne-bright); }
.nav-dd-chevron { transition: transform var(--dur-base) var(--ease-gold); opacity: .6; }
.nav-dd:hover .nav-dd-chevron,
.nav-dd-btn[aria-expanded="true"] .nav-dd-chevron { transform: rotate(180deg); opacity: 1; }
.nav-dd-panel {
  position: absolute; top: calc(100% + var(--sp-3)); left: 50%;
  transform: translateX(-50%) translateY(-8px);
  min-width: 240px;
  background: var(--obsidian-glass);
  backdrop-filter: blur(24px);
  border: 1px solid var(--border-gold);
  border-radius: var(--r-xl);
  padding: var(--sp-3);
  opacity: 0; pointer-events: none;
  transition: all var(--dur-base) var(--ease-out);
  box-shadow: var(--glow-card);
}
.nav-dd:hover .nav-dd-panel,
.nav-dd-panel.open { opacity: 1; pointer-events: all; transform: translateX(-50%) translateY(0); }
.dd-item {
  display: flex; align-items: center; gap: var(--sp-3);
  padding: var(--sp-3) var(--sp-4); border-radius: var(--r-lg);
  font-family: var(--font-ui); font-size: .6875rem; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase;
  color: var(--champagne-muted);
  transition: all var(--dur-base);
}
.dd-item:hover { background: rgba(201,150,58,0.08); color: var(--gold-300); }
.dd-icon { font-size: 1rem; flex-shrink: 0; }

/* Nav CTA */
.nav-end { display: flex; align-items: center; gap: var(--sp-3); flex-shrink: 0; }

/* Hamburger */
.hamburger {
  display: none; flex-direction: column; gap: 5px;
  width: 30px; cursor: pointer; padding: var(--sp-2);
}
.hamburger span {
  display: block; height: 1.5px;
  background: var(--champagne-warm); border-radius: var(--r-full);
  transition: all var(--dur-base) var(--ease-gold);
}
.hamburger.open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.hamburger.open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

/* Mobile menu */
.mobile-menu {
  position: fixed; top: var(--nav-h); left: 0; right: 0; bottom: 0;
  background: var(--obsidian-base);
  z-index: 999; padding: var(--sp-6);
  flex-direction: column; gap: var(--sp-2);
  overflow-y: auto; display: none;
  border-top: 1px solid var(--border-gold);
}
.mobile-menu.open { display: flex; }
.mob-link {
  padding: var(--sp-4) var(--sp-5);
  border-radius: var(--r-xl);
  font-family: var(--font-ui); font-size: .875rem; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase;
  color: var(--champagne-muted);
  border-bottom: 1px solid var(--border-subtle);
  transition: all var(--dur-base);
  display: flex; align-items: center; gap: var(--sp-3);
}
.mob-link:hover { color: var(--gold-300); background: rgba(201,150,58,0.06); }

/* ── FOOTER ── */
.site-footer {
  background: var(--obsidian-deep);
  border-top: 1px solid var(--border-gold);
  padding-top: var(--sp-20);
  position: relative; overflow: hidden;
}
.site-footer::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent 0%, var(--gold-500) 50%, transparent 100%);
}
.footer-grid { display: grid; grid-template-columns: 1.8fr 1fr 1fr 1fr; gap: var(--sp-12); padding-bottom: var(--sp-16); border-bottom: 1px solid var(--border-subtle); }
.footer-brand-desc { font-size: .875rem; color: var(--champagne-faint); line-height: 1.7; margin: var(--sp-5) 0; font-weight: 300; }
.footer-col-title { font-family: var(--font-ui); font-size: .5625rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--gold-500); margin-bottom: var(--sp-5); }
.footer-links { display: flex; flex-direction: column; gap: var(--sp-3); }
.footer-link { font-size: .875rem; color: var(--champagne-faint); font-weight: 300; transition: color var(--dur-fast); }
.footer-link:hover { color: var(--gold-300); }
.footer-social { display: flex; gap: var(--sp-3); margin-top: var(--sp-2); }
.footer-social a {
  width: 36px; height: 36px; border-radius: var(--r-md);
  border: 1px solid var(--border-gold);
  display: flex; align-items: center; justify-content: center;
  font-size: .875rem; color: var(--champagne-faint);
  transition: all var(--dur-base);
}
.footer-social a:hover { background: rgba(201,150,58,0.1); color: var(--gold-300); border-color: var(--border-gold-h); box-shadow: var(--glow-gold-sm); }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4); padding-block: var(--sp-6); flex-wrap: wrap; }
.footer-copy { font-size: .75rem; color: var(--champagne-faint); font-family: var(--font-ui); letter-spacing: .04em; }
.footer-legal { display: flex; gap: var(--sp-5); }
.footer-legal a { font-size: .6875rem; color: var(--champagne-faint); font-family: var(--font-ui); letter-spacing: .06em; text-transform: uppercase; transition: color var(--dur-fast); }
.footer-legal a:hover { color: var(--gold-400); }

/* ── COOKIE BANNER ── */
.cookie-banner {
  position: fixed; bottom: var(--sp-5); left: 50%;
  transform: translateX(-50%) translateY(130px);
  width: calc(100% - var(--sp-8)); max-width: 660px;
  background: var(--obsidian-glass);
  backdrop-filter: blur(20px);
  border: 1px solid var(--border-gold);
  border-radius: var(--r-2xl);
  padding: var(--sp-5) var(--sp-6);
  display: flex; align-items: center; gap: var(--sp-5);
  z-index: 9000;
  box-shadow: var(--glow-card), 0 0 80px rgba(0,0,0,0.6);
  transition: transform var(--dur-slow) var(--ease-out);
}
.cookie-banner.show { transform: translateX(-50%) translateY(0); }
.cookie-text { font-size: .8125rem; color: var(--champagne-muted); flex: 1; line-height: 1.6; font-weight: 300; }
.cookie-text a { color: var(--gold-400); text-decoration: underline; }
.cookie-btns { display: flex; gap: var(--sp-3); flex-shrink: 0; }

/* ── MODAL ── */
.modal-backdrop {
  position: fixed; inset: 0;
  background: rgba(0,0,0,0.75);
  backdrop-filter: blur(12px);
  z-index: 10000;
  display: flex; align-items: center; justify-content: center;
  padding: var(--sp-4);
  opacity: 0; pointer-events: none;
  transition: opacity var(--dur-slow) var(--ease-out);
}
.modal-backdrop.open { opacity: 1; pointer-events: all; }
.modal-box {
  background: var(--obsidian-surface);
  border: 1px solid var(--border-gold);
  border-radius: var(--r-3xl);
  width: 100%; max-width: 540px; max-height: 90vh;
  overflow-y: auto; position: relative;
  transform: scale(.94) translateY(24px);
  transition: transform var(--dur-slow) var(--ease-out);
  box-shadow: var(--glow-card), var(--glow-gold);
}
.modal-backdrop.open .modal-box { transform: scale(1) translateY(0); }
.modal-header {
  padding: var(--sp-8); border-bottom: 1px solid var(--border-subtle);
  position: sticky; top: 0; background: var(--obsidian-surface); z-index: 1;
}
.modal-title { font-family: var(--font-display); font-size: 1.75rem; font-weight: 400; color: var(--champagne-bright); margin-bottom: var(--sp-2); }
.modal-subtitle { font-size: .8125rem; color: var(--champagne-muted); font-weight: 300; }
.modal-close {
  position: absolute; top: var(--sp-5); right: var(--sp-5);
  width: 34px; height: 34px; border-radius: 50%;
  border: 1px solid var(--border-gold);
  display: flex; align-items: center; justify-content: center;
  color: var(--champagne-muted); font-size: 1rem;
  transition: all var(--dur-base);
}
.modal-close:hover { background: rgba(201,150,58,0.1); color: var(--gold-300); border-color: var(--border-gold-h); }
.modal-body { padding: var(--sp-6) var(--sp-8) var(--sp-8); }
.modal-form { display: flex; flex-direction: column; gap: var(--sp-4); }

/* ── TOAST ── */
.toast {
  position: fixed; bottom: 2rem; right: 2rem;
  background: var(--obsidian-glass);
  backdrop-filter: blur(16px);
  border: 1px solid var(--border-gold);
  color: var(--champagne-warm);
  padding: var(--sp-4) var(--sp-6);
  border-radius: var(--r-2xl);
  font-size: .8125rem; font-family: var(--font-ui);
  font-weight: 600; letter-spacing: .04em;
  box-shadow: var(--glow-card);
  transform: translateY(100px); opacity: 0;
  transition: all .35s var(--ease-out);
  max-width: 360px; z-index: 99999;
  border-left: 3px solid var(--gold-500);
}
.toast.show { transform: translateY(0); opacity: 1; }

/* ── BREADCRUMB ── */
.breadcrumb { display: flex; align-items: center; gap: var(--sp-2); flex-wrap: wrap; margin-bottom: var(--sp-8); }
.breadcrumb a { font-family: var(--font-ui); font-size: .625rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--champagne-faint); transition: color var(--dur-fast); }
.breadcrumb a:hover { color: var(--gold-400); }
.breadcrumb-sep { color: var(--gold-700); font-size: .75rem; }
.breadcrumb-cur { font-family: var(--font-ui); font-size: .625rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--champagne-muted); }

/* ── REVEAL ANIMATIONS ── */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity var(--dur-slower) var(--ease-out), transform var(--dur-slower) var(--ease-out); }
.reveal.visible { opacity: 1; transform: translateY(0); }
.reveal-left  { opacity: 0; transform: translateX(-28px); transition: opacity var(--dur-slower) var(--ease-out), transform var(--dur-slower) var(--ease-out); }
.reveal-right { opacity: 0; transform: translateX(28px);  transition: opacity var(--dur-slower) var(--ease-out), transform var(--dur-slower) var(--ease-out); }
.reveal-left.visible,.reveal-right.visible { opacity: 1; transform: translateX(0); }
.d1{transition-delay:80ms}.d2{transition-delay:160ms}.d3{transition-delay:240ms}
.d4{transition-delay:320ms}.d5{transition-delay:400ms}.d6{transition-delay:480ms}

/* ── UTILITIES ── */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.flex{display:flex}.flex-col{display:flex;flex-direction:column}.items-center{align-items:center}
.items-start{align-items:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}
.flex-wrap{flex-wrap:wrap}.gap-2{gap:var(--sp-2)}.gap-3{gap:var(--sp-3)}.gap-4{gap:var(--sp-4)}
.gap-6{gap:var(--sp-6)}.gap-8{gap:var(--sp-8)}.w-full{width:100%}.relative{position:relative}
.overflow-hidden{overflow:hidden}.mt-4{margin-top:var(--sp-4)}.mt-6{margin-top:var(--sp-6)}
.mt-8{margin-top:var(--sp-8)}.mt-12{margin-top:var(--sp-12)}.mb-4{margin-bottom:var(--sp-4)}
.mb-6{margin-bottom:var(--sp-6)}.mb-8{margin-bottom:var(--sp-8)}.mb-12{margin-bottom:var(--sp-12)}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-5)}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-5)}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-5)}

/* ── RESPONSIVE ── */
@media(max-width:1024px){
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr;gap:var(--sp-8)}
}
@media(max-width:768px){
  .nav-links,.nav-end .btn{display:none}.hamburger{display:flex}
  .grid-2,.grid-3{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr;gap:var(--sp-8)}
  .footer-bottom{flex-direction:column;align-items:flex-start}
  .cookie-banner{flex-direction:column;gap:var(--sp-4)}
  .cookie-btns{width:100%}
  .cookie-btns .btn{flex:1;justify-content:center}
}
@media(max-width:480px){
  .container{padding-inline:var(--sp-4)}
  .grid-4{grid-template-columns:1fr}
  .modal-header,.modal-body{padding-inline:var(--sp-5)}
}
