/* ============ DESIGN TOKENS ============ */
  :root,
  :root[data-theme="dark"] {
    /* Semantic surface tokens — these drive everything */
    --rm-black: #0A0A0A;       /* deepest background */
    --rm-ink: #141414;          /* card / elevated background */
    --rm-charcoal: #1F1F1F;     /* slightly lighter surface */
    --rm-smoke: #2A2A2A;        /* borders, dividers */
    --rm-ash: #3D3D3D;          /* stronger borders */
    --rm-fog: #8A8A8A;          /* tertiary text */
    --rm-mist: #C9C9C9;         /* secondary text */
    --rm-paper: #F5F3EF;        /* primary text */
    --rm-cream: #FAF8F3;        /* accent warm text */
    --rm-white: #FFFFFF;        /* headings */

    --rm-ember: #FF6B1A;
    --rm-flame: #FF8333;
    --rm-amber: #E85A10;
    --rm-glow-soft: rgba(255, 107, 26, 0.35);
    --rm-glow-faint: rgba(255, 107, 26, 0.12);

    --rm-grain-opacity: 0.04;
    --rm-cta-text: var(--rm-black);
    --rm-hero-glow-opacity: 0.8;
    --rm-nav-scrolled-bg: rgba(10, 10, 10, 0.85);
  }

  /* Light theme — inverts surface + text, keeps ember accent identical */
  :root[data-theme="light"] {
    --rm-black: #FAF7F0;        /* warm paper backdrop */
    --rm-ink: #F1EDE2;          /* card surface */
    --rm-charcoal: #E8E2D2;     /* slightly deeper surface */
    --rm-smoke: #D8D0BD;        /* borders, dividers */
    --rm-ash: #B8AE96;          /* stronger borders */
    --rm-fog: #6E6757;          /* tertiary text */
    --rm-mist: #3C382F;         /* secondary text */
    --rm-paper: #1A1814;        /* primary text */
    --rm-cream: #141210;        /* accent warm text */
    --rm-white: #0A0908;        /* headings */

    --rm-ember: #E85A10;
    --rm-flame: #FF6B1A;
    --rm-amber: #C4470A;
    --rm-glow-soft: rgba(232, 90, 16, 0.25);
    --rm-glow-faint: rgba(232, 90, 16, 0.08);

    --rm-grain-opacity: 0.025;
    --rm-cta-text: #FAF7F0;
    --rm-hero-glow-opacity: 0.45;
    --rm-nav-scrolled-bg: rgba(250, 247, 240, 0.88);
  }

  /* Shared (theme-agnostic) tokens */
  :root {
    --font-display: 'Anton', 'Impact', sans-serif;
    --font-body: 'Inter', sans-serif;
    --font-accent: 'Fraunces', Georgia, serif;
    --font-mono: 'JetBrains Mono', monospace;

    --container: 1280px;
    --gutter: clamp(1.25rem, 4vw, 3rem);

    --sp-1: 0.25rem;
    --sp-2: 0.5rem;
    --sp-3: 0.75rem;
    --sp-4: 1rem;
    --sp-5: 1.25rem;
    --sp-6: 1.5rem;
    --sp-8: 2rem;
    --sp-12: 3rem;
    --sp-16: 4rem;
    --sp-24: 6rem;
    --sp-32: 8rem;
  }

  /* Smooth theme transitions — avoid transitioning transform/opacity sensitive elements */
  body,
  .nav,
  .nav.scrolled,
  section,
  .concept,
  .tab-btn,
  .tab-panel,
  .benefit,
  .form-field input,
  .form-field select,
  .form-field textarea {
    transition-property: background, background-color, color, border-color;
    transition-duration: 0.35s;
    transition-timing-function: ease;
  }

  * { box-sizing: border-box; margin: 0; padding: 0; }

  html { scroll-behavior: smooth; scroll-padding-top: 80px; }

  body {
    font-family: var(--font-body);
    background: var(--rm-black);
    color: var(--rm-paper);
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    overflow-x: hidden;
  }

  /* Film grain */
  body::before {
    content: '';
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 1000;
    opacity: var(--rm-grain-opacity);
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  }

  .wrap {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 var(--gutter);
  }

  section {
    padding: var(--sp-24) 0;
    position: relative;
  }

  /* ============ NAV ============ */
  .nav {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 100;
    padding: var(--sp-4) 0;
    transition: all 0.3s ease;
    background: transparent;
  }

  .nav.scrolled {
    background: var(--rm-nav-scrolled-bg);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-bottom: 1px solid var(--rm-smoke);
  }

  .nav-inner {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 var(--gutter);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-6);
  }

  .logo {
    font-family: 'Anton', 'Impact', sans-serif;
    font-size: 1.5rem;
    text-transform: uppercase;
    color: var(--rm-white);
    text-decoration: none;
    letter-spacing: 0.02em;
    line-height: 1;
    flex-shrink: 0;
  }

  .logo .dot {
    color: var(--rm-ember);
  }

  .nav-links {
    display: flex;
    gap: var(--sp-6);
    list-style: none;
    margin-left: auto;
  }

  .nav-links a {
    font-size: 0.75rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--rm-mist);
    text-decoration: none;
    transition: color 0.2s;
    font-weight: 500;
    position: relative;
    padding: 6px 0;
  }

  .nav-links a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: var(--rm-ember);
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 0.25s ease;
  }

  .nav-links a:hover {
    color: var(--rm-paper);
  }

  .nav-links a:hover::after {
    transform: scaleX(1);
    transform-origin: left;
  }

  .nav-right {
    display: flex;
    align-items: center;
    gap: var(--sp-5, 1.25rem);
    flex-shrink: 0;
  }

  .nav-controls {
    display: flex;
    align-items: center;
    gap: var(--sp-3);
    padding: 0.35rem 0.75rem;
    background: var(--rm-glow-faint);
    border: 1px solid var(--rm-smoke);
    border-radius: 999px;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    transition: border-color 0.2s;
    position: relative;
    z-index: 1;
  }

  .nav-controls > * {
    position: relative;
    z-index: 2;
  }

  .nav-controls:hover {
    border-color: var(--rm-ash);
  }

  .nav-divider {
    width: 1px;
    height: 16px;
    background: var(--rm-ash);
    opacity: 0.5;
  }

  /* Theme toggle — day/night switch */
  .theme-toggle {
    background: transparent;
    border: none;
    padding: 6px;
    margin: -6px;
    cursor: pointer;
    display: flex;
    align-items: center;
    -webkit-tap-highlight-color: rgba(255, 107, 26, 0.3);
    touch-action: manipulation;
    min-height: 36px;
    min-width: 36px;
    justify-content: center;
  }

  .theme-toggle-track {
    position: relative;
    width: 42px;
    height: 22px;
    border-radius: 999px;
    background: var(--rm-charcoal);
    border: 1px solid var(--rm-ash);
    transition: background 0.3s, border-color 0.3s;
    display: flex;
    align-items: center;
    padding: 1px;
  }

  .theme-toggle-thumb {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--rm-ember);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rm-cta-text);
    box-shadow: 0 0 10px -2px var(--rm-ember);
  }

  [data-theme="light"] .theme-toggle-thumb {
    transform: translateX(20px);
  }

  .theme-icon {
    width: 11px;
    height: 11px;
    position: absolute;
    transition: opacity 0.25s, transform 0.25s;
  }

  [data-theme="dark"] .theme-icon-sun,
  :root:not([data-theme]) .theme-icon-sun {
    opacity: 0;
    transform: rotate(-90deg);
  }

  [data-theme="dark"] .theme-icon-moon,
  :root:not([data-theme]) .theme-icon-moon {
    opacity: 1;
    transform: rotate(0);
  }

  [data-theme="light"] .theme-icon-sun {
    opacity: 1;
    transform: rotate(0);
  }

  [data-theme="light"] .theme-icon-moon {
    opacity: 0;
    transform: rotate(90deg);
  }

  .theme-toggle:hover .theme-toggle-track {
    border-color: var(--rm-ember);
  }

  .nav-cta {
    padding: 0.75rem 1.5rem;
    background: var(--rm-ember);
    color: var(--rm-cta-text);
    font-size: 0.8125rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.25s ease;
    white-space: nowrap;
  }

  .nav-cta:hover {
    background: var(--rm-flame);
    transform: translateY(-2px);
    box-shadow: 0 10px 30px -10px var(--rm-ember);
  }

  .nav-burger {
    display: none;
    background: transparent;
    border: none;
    color: var(--rm-paper);
    cursor: pointer;
    padding: var(--sp-2);
    flex-direction: column;
    gap: 5px;
  }

  .nav-burger span {
    width: 24px;
    height: 2px;
    background: currentColor;
    transition: all 0.3s;
  }

  /* ============ HERO ============ */
  .hero {
    min-height: 100vh;
    display: flex;
    align-items: center;
    position: relative;
    overflow: hidden;
    padding-top: 120px;
  }

  .hero-glow {
    position: absolute;
    width: 80vw;
    height: 80vw;
    max-width: 1100px;
    max-height: 1100px;
    top: 45%; left: 50%;
    transform: translate(-50%, -50%);
    background: radial-gradient(circle, var(--rm-ember) 0%, var(--rm-glow-soft) 25%, transparent 55%);
    filter: blur(40px);
    opacity: var(--rm-hero-glow-opacity);
    z-index: 0;
    animation: pulse 8s ease-in-out infinite;
  }

  @keyframes pulse {
    0%, 100% { opacity: calc(var(--rm-hero-glow-opacity) * 0.94); transform: translate(-50%, -50%) scale(1); }
    50% { opacity: var(--rm-hero-glow-opacity); transform: translate(-50%, -50%) scale(1.08); }
  }

  .hero-content {
    position: relative;
    z-index: 2;
    width: 100%;
  }

  .hero-eyebrow {
    display: flex;
    align-items: center;
    gap: var(--sp-3);
    font-size: 0.75rem;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--rm-mist);
    margin-bottom: var(--sp-8);
    font-weight: 500;
  }

  .hero-eyebrow::before {
    content: '';
    width: 32px;
    height: 1px;
    background: var(--rm-ember);
  }

  .hero h1 {
    font-family: var(--font-display);
    font-size: clamp(3.5rem, 11vw, 10rem);
    line-height: 0.85;
    letter-spacing: -0.025em;
    text-transform: uppercase;
    font-weight: 400;
    color: var(--rm-white);
    margin-bottom: var(--sp-8);
  }

  .hero h1 .line-2 {
    display: block;
    padding-left: 15%;
  }

  .hero-tag {
    max-width: 580px;
    font-size: 1.125rem;
    color: var(--rm-mist);
    margin-bottom: var(--sp-8);
    line-height: 1.6;
  }

  .hero-tags {
    display: flex;
    gap: var(--sp-3);
    flex-wrap: wrap;
    margin-bottom: var(--sp-8);
  }

  .mini-tag {
    padding: 0.375rem 0.875rem;
    border: 1px solid var(--rm-ash);
    font-size: 0.7rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rm-mist);
    border-radius: 999px;
    font-weight: 500;
  }

  .hero-ctas {
    display: flex;
    gap: var(--sp-4);
    flex-wrap: wrap;
  }

  .btn {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-3);
    padding: 1rem 2rem;
    font-family: var(--font-body);
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
    border: none;
    transition: all 0.25s ease;
    white-space: nowrap;
  }

  .btn-primary {
    background: var(--rm-ember);
    color: var(--rm-cta-text);
  }
  .btn-primary:hover {
    background: var(--rm-flame);
    transform: translateY(-2px);
    box-shadow: 0 10px 30px -10px var(--rm-ember);
  }

  .btn-outline {
    background: transparent;
    color: var(--rm-paper);
    border: 1px solid var(--rm-paper);
  }
  .btn-outline:hover {
    background: var(--rm-paper);
    color: var(--rm-black);
  }

  .btn-ghost {
    background: transparent;
    color: var(--rm-ember);
    padding: 0.5rem 0;
    position: relative;
  }
  .btn-ghost::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0;
    width: 100%; height: 1px;
    background: var(--rm-ember);
    transform: scaleX(0.3);
    transform-origin: left;
    transition: transform 0.3s ease;
  }
  .btn-ghost:hover::after { transform: scaleX(1); }

  .hero-meta {
    position: absolute;
    bottom: var(--sp-8);
    left: var(--gutter);
    right: var(--gutter);
    display: flex;
    justify-content: space-between;
    font-family: var(--font-mono);
    font-size: 0.7rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rm-fog);
    z-index: 2;
  }

  /* ============ SECTION HEADERS ============ */
  .eyebrow {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-3);
    font-size: 0.75rem;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--rm-ember);
    margin-bottom: var(--sp-6);
    font-weight: 500;
  }

  .eyebrow::before {
    content: '';
    width: 24px;
    height: 1px;
    background: var(--rm-ember);
  }

  .section-title {
    font-family: var(--font-display);
    font-size: clamp(2.25rem, 5vw, 4rem);
    line-height: 0.9;
    letter-spacing: -0.015em;
    text-transform: uppercase;
    margin-bottom: var(--sp-6);
    color: var(--rm-white);
    font-weight: 400;
    max-width: 20ch;
  }

  .section-lede {
    max-width: 640px;
    color: var(--rm-mist);
    font-size: 1.125rem;
    line-height: 1.6;
    margin-bottom: var(--sp-16);
  }

  /* ============ ABOUT ============ */
  .about {
    border-top: 1px solid var(--rm-smoke);
  }

  .about-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--sp-16);
    align-items: center;
  }

  .about-quote {
    font-family: var(--font-accent);
    font-style: italic;
    font-size: clamp(1.75rem, 3.5vw, 2.75rem);
    line-height: 1.2;
    color: var(--rm-paper);
    font-weight: 400;
  }

  .about-quote .amp {
    color: var(--rm-ember);
  }

  .about-text {
    color: var(--rm-mist);
    font-size: 1.0625rem;
    line-height: 1.7;
    max-width: 48ch;
  }

  .about-text p + p {
    margin-top: var(--sp-4);
  }

  .about-link {
    margin-top: var(--sp-6);
    display: inline-flex;
    align-items: center;
    gap: var(--sp-2);
    color: var(--rm-ember);
    font-size: 0.875rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    font-weight: 600;
  }

  /* ============ WHY US ============ */
  .why-us {
    background: var(--rm-ink);
    border-top: 1px solid var(--rm-smoke);
    border-bottom: 1px solid var(--rm-smoke);
  }

  .benefits-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0;
    border: 1px solid var(--rm-smoke);
    margin-top: var(--sp-8);
  }

  .benefit {
    padding: var(--sp-8);
    border-right: 1px solid var(--rm-smoke);
    min-height: 280px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    transition: background 0.3s;
  }

  .benefit:last-child { border-right: none; }

  .benefit:hover {
    background: var(--rm-charcoal);
  }

  .benefit-num {
    font-family: var(--font-display);
    font-size: 3rem;
    color: var(--rm-ember);
    line-height: 1;
  }

  .benefit h3 {
    font-family: var(--font-display);
    font-size: 1.375rem;
    text-transform: uppercase;
    color: var(--rm-white);
    margin-bottom: var(--sp-3);
    font-weight: 400;
    letter-spacing: -0.005em;
    line-height: 1.05;
  }

  .benefit p {
    color: var(--rm-mist);
    font-size: 0.9375rem;
    line-height: 1.6;
  }

  .why-ctas {
    display: flex;
    gap: var(--sp-6);
    margin-top: var(--sp-12);
    align-items: center;
    flex-wrap: wrap;
  }

  /* ============ FORMATS TABS ============ */
  .formats {
    border-top: 1px solid var(--rm-smoke);
  }

  .tabs {
    display: flex;
    gap: 0;
    margin: var(--sp-8) 0 var(--sp-12);
    border-bottom: 1px solid var(--rm-smoke);
  }

  .tab-btn {
    flex: 1;
    padding: var(--sp-6) var(--sp-8);
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    cursor: pointer;
    font-family: var(--font-display);
    font-size: clamp(1.25rem, 2.5vw, 2rem);
    text-transform: uppercase;
    color: var(--rm-fog);
    text-align: left;
    transition: all 0.3s;
    letter-spacing: -0.005em;
    line-height: 1;
    position: relative;
  }

  .tab-btn:hover {
    color: var(--rm-mist);
  }

  .tab-btn.active {
    color: var(--rm-white);
    border-bottom-color: var(--rm-ember);
  }

  .tab-btn .tab-num {
    display: block;
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: var(--rm-ember);
    letter-spacing: 0.2em;
    margin-bottom: var(--sp-3);
    font-weight: 500;
  }

  .tab-panel {
    display: none;
  }

  .tab-panel.active {
    display: block;
    animation: fadeIn 0.5s ease;
  }

  @keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
  }

  .tab-content {
    max-width: 720px;
  }

  .tab-content h3 {
    font-family: var(--font-display);
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    text-transform: uppercase;
    color: var(--rm-white);
    margin-bottom: var(--sp-4);
    font-weight: 400;
    line-height: 1;
    letter-spacing: -0.01em;
  }

  .tab-content .tab-sub {
    color: var(--rm-mist);
    font-size: 1.0625rem;
    line-height: 1.6;
    margin-bottom: var(--sp-6);
    max-width: 50ch;
  }

  .feature-list {
    list-style: none;
    margin-bottom: var(--sp-8);
  }

  .feature-list li {
    padding: var(--sp-3) 0;
    border-bottom: 1px solid var(--rm-smoke);
    display: flex;
    align-items: baseline;
    gap: var(--sp-4);
    color: var(--rm-mist);
    font-size: 0.9375rem;
  }

  .feature-list li::before {
    content: '—';
    color: var(--rm-ember);
    font-weight: 600;
    flex-shrink: 0;
  }

  .feature-list li:last-child { border-bottom: none; }

  .ideal-for {
    padding: var(--sp-6);
    background: var(--rm-ink);
    border-left: 3px solid var(--rm-ember);
    margin-bottom: var(--sp-6);
  }

  .ideal-for-label {
    font-size: 0.7rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--rm-ember);
    margin-bottom: var(--sp-2);
    font-weight: 600;
  }

  .ideal-for-text {
    color: var(--rm-paper);
    font-size: 0.9375rem;
    line-height: 1.5;
  }

  .tab-image {
    aspect-ratio: 4/5;
    background:
      linear-gradient(180deg, transparent 40%, rgba(0,0,0,0.8) 100%),
      radial-gradient(ellipse at 50% 40%, rgba(255,107,26,0.35), transparent 60%),
      linear-gradient(135deg, #2a1810 0%, #0a0a0a 80%);
    position: relative;
    overflow: hidden;
    border: 1px solid var(--rm-smoke);
  }

  .tab-image.private {
    background:
      linear-gradient(180deg, transparent 40%, rgba(0,0,0,0.8) 100%),
      radial-gradient(ellipse at 30% 60%, rgba(255,131,51,0.4), transparent 55%),
      linear-gradient(135deg, #1f1208 0%, #0a0a0a 85%);
  }

  .tab-image-label {
    position: absolute;
    bottom: var(--sp-6);
    left: var(--sp-6);
    right: var(--sp-6);
    font-family: var(--font-mono);
    font-size: 0.7rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rm-mist);
    display: flex;
    justify-content: space-between;
  }

  .tab-ctas {
    display: flex;
    gap: var(--sp-4);
    flex-wrap: wrap;
  }

  /* ============ CONCEPTS ============ */
  .concepts {
    border-top: 1px solid var(--rm-smoke);
  }

  .concept-list {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-top: var(--sp-8);
    border-top: 1px solid var(--rm-smoke);
  }

  .concept {
    border-bottom: 1px solid var(--rm-smoke);
    padding: var(--sp-12) 0;
    display: grid;
    grid-template-columns: 1fr 1.5fr 1fr;
    gap: var(--sp-12);
    align-items: start;
    transition: background 0.4s;
  }

  .concept:hover {
    background: linear-gradient(90deg, transparent 0%, var(--rm-ink) 40%, var(--rm-ink) 60%, transparent 100%);
  }

  .concept-num {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    letter-spacing: 0.25em;
    color: var(--rm-ember);
    margin-bottom: var(--sp-4);
    font-weight: 500;
  }

  .concept-title {
    font-family: var(--font-display);
    font-size: clamp(2rem, 4vw, 3rem);
    text-transform: uppercase;
    color: var(--rm-white);
    line-height: 0.9;
    font-weight: 400;
    letter-spacing: -0.015em;
    margin-bottom: var(--sp-3);
  }

  .concept-tagline {
    font-family: var(--font-accent);
    font-style: italic;
    font-size: 1.125rem;
    color: var(--rm-ember);
    line-height: 1.3;
  }

  .concept-desc {
    color: var(--rm-mist);
    font-size: 1rem;
    line-height: 1.7;
    margin-bottom: var(--sp-6);
  }

  .concept-tiers {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-2);
    margin-bottom: var(--sp-6);
  }

  .tier-pill {
    padding: 0.5rem 0.875rem;
    background: var(--rm-ink);
    border: 1px solid var(--rm-ash);
    font-family: var(--font-mono);
    font-size: 0.7rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--rm-paper);
    border-radius: 999px;
    cursor: default;
    transition: all 0.2s;
  }

  .tier-pill:hover {
    border-color: var(--rm-ember);
    color: var(--rm-ember);
  }

  .tier-note {
    font-size: 0.8125rem;
    color: var(--rm-fog);
    font-style: italic;
    line-height: 1.5;
    margin-bottom: var(--sp-6);
  }

  .concept-included {
    margin-top: var(--sp-6);
  }

  .concept-included h4 {
    font-size: 0.7rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--rm-fog);
    margin-bottom: var(--sp-3);
    font-weight: 600;
  }

  .concept-included ul {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: var(--sp-2);
  }

  .concept-included li {
    display: flex;
    gap: var(--sp-3);
    font-size: 0.9375rem;
    color: var(--rm-mist);
  }

  .concept-included li::before {
    content: '+';
    color: var(--rm-ember);
    font-weight: 600;
  }

  .concept-specs {
    display: flex;
    flex-direction: column;
    gap: var(--sp-4);
  }

  .spec {
    padding-bottom: var(--sp-3);
    border-bottom: 1px solid var(--rm-smoke);
  }

  .spec-label {
    font-size: 0.7rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rm-fog);
    margin-bottom: var(--sp-1);
    font-weight: 600;
  }

  .spec-value {
    font-family: var(--font-display);
    font-size: 1.125rem;
    text-transform: uppercase;
    color: var(--rm-white);
    font-weight: 400;
    letter-spacing: 0.01em;
  }

  .spec-value.budget {
    color: var(--rm-ember);
  }

  .concept-cta {
    margin-top: var(--sp-6);
  }

  /* ============ PROSECCO & ART WEEKLY ============ */
  .prosecco {
    border-top: 1px solid var(--rm-smoke);
    position: relative;
    overflow: hidden;
  }

  .prosecco::before {
    content: '';
    position: absolute;
    top: 15%;
    right: -10%;
    width: 55vw;
    height: 55vw;
    max-width: 700px;
    max-height: 700px;
    background: radial-gradient(circle, var(--rm-glow-soft) 0%, transparent 60%);
    filter: blur(60px);
    opacity: 0.7;
    pointer-events: none;
    z-index: 0;
  }

  .prosecco .wrap {
    position: relative;
    z-index: 1;
  }

  .prosecco-head {
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: var(--sp-12);
    align-items: end;
    margin-bottom: var(--sp-16);
  }

  .prosecco-title {
    font-family: var(--font-display);
    font-size: clamp(3rem, 8vw, 7rem);
    line-height: 0.85;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    color: var(--rm-white);
    font-weight: 400;
  }

  .prosecco-title .amp {
    font-family: var(--font-accent);
    font-style: italic;
    color: var(--rm-ember);
    font-weight: 400;
    letter-spacing: 0;
  }

  .prosecco-title .small-line {
    display: block;
    font-size: 0.36em;
    letter-spacing: 0.08em;
    color: var(--rm-mist);
    margin-top: var(--sp-4);
    font-weight: 400;
  }

  .prosecco-lede {
    font-family: var(--font-accent);
    font-style: italic;
    font-size: clamp(1.125rem, 1.8vw, 1.375rem);
    line-height: 1.5;
    color: var(--rm-paper);
    max-width: 36ch;
    padding-left: var(--sp-6);
    border-left: 2px solid var(--rm-ember);
  }

  .prosecco-body {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: var(--sp-16);
    align-items: start;
  }

  .prosecco-copy p {
    color: var(--rm-mist);
    font-size: 1.0625rem;
    line-height: 1.75;
    margin-bottom: var(--sp-4);
  }

  .prosecco-copy p strong {
    color: var(--rm-paper);
    font-weight: 500;
  }

  .prosecco-includes {
    margin-top: var(--sp-8);
    padding-top: var(--sp-8);
    border-top: 1px solid var(--rm-smoke);
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-3);
  }

  .prosecco-tag {
    padding: 0.5rem 0.875rem;
    background: var(--rm-ink);
    border: 1px solid var(--rm-ash);
    font-family: var(--font-mono);
    font-size: 0.7rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--rm-paper);
    border-radius: 999px;
  }

  /* Schedule card */
  .prosecco-side {
    display: flex;
    flex-direction: column;
    gap: var(--sp-6);
  }

  .schedule-card {
    background: var(--rm-ink);
    border: 1px solid var(--rm-ash);
    padding: var(--sp-8);
    position: relative;
  }

  .schedule-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 40px;
    height: 1px;
    background: var(--rm-ember);
  }

  .schedule-label {
    font-family: var(--font-mono);
    font-size: 0.7rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--rm-ember);
    margin-bottom: var(--sp-4);
    font-weight: 500;
  }

  .schedule-rows {
    display: flex;
    flex-direction: column;
    gap: var(--sp-4);
  }

  .schedule-row {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: baseline;
    padding-bottom: var(--sp-3);
    border-bottom: 1px solid var(--rm-smoke);
    gap: var(--sp-4);
  }

  .schedule-row:last-child {
    border-bottom: none;
    padding-bottom: 0;
  }

  .schedule-day {
    font-family: var(--font-display);
    font-size: 1.625rem;
    text-transform: uppercase;
    color: var(--rm-white);
    line-height: 1;
    letter-spacing: -0.005em;
  }

  .schedule-time {
    font-family: var(--font-mono);
    font-size: 0.95rem;
    color: var(--rm-paper);
    letter-spacing: 0.02em;
    white-space: nowrap;
  }

  .price-card {
    background: linear-gradient(135deg, var(--rm-ink) 0%, var(--rm-charcoal) 100%);
    border: 1px solid var(--rm-ash);
    padding: var(--sp-8);
    text-align: center;
    position: relative;
    overflow: hidden;
  }

  .price-card::after {
    content: '';
    position: absolute;
    inset: -1px;
    background: linear-gradient(135deg, var(--rm-ember), transparent 40%);
    opacity: 0.15;
    pointer-events: none;
  }

  .price-amount {
    font-family: var(--font-display);
    font-size: clamp(3rem, 5.5vw, 4.5rem);
    line-height: 0.9;
    color: var(--rm-ember);
    font-weight: 400;
    letter-spacing: -0.02em;
    margin-bottom: var(--sp-2);
    position: relative;
    z-index: 1;
  }

  .price-amount .currency {
    font-size: 0.55em;
    color: var(--rm-paper);
    vertical-align: super;
    margin-right: 0.1em;
  }

  .price-unit {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--rm-mist);
    position: relative;
    z-index: 1;
  }

  .price-note {
    margin-top: var(--sp-4);
    padding-top: var(--sp-4);
    border-top: 1px solid var(--rm-smoke);
    font-size: 0.8125rem;
    color: var(--rm-fog);
    font-style: italic;
    position: relative;
    z-index: 1;
  }

  /* Location card (studio address) */
  .location-card {
    display: flex;
    align-items: center;
    gap: var(--sp-4);
    padding: var(--sp-5, 1.25rem) var(--sp-6);
    background: var(--rm-ink);
    border: 1px solid var(--rm-ash);
    text-decoration: none;
    color: inherit;
    position: relative;
    overflow: hidden;
    transition: all 0.3s ease;
  }

  .location-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, transparent 0%, var(--rm-glow-faint) 100%);
    opacity: 0;
    transition: opacity 0.3s;
    pointer-events: none;
  }

  .location-card:hover {
    border-color: var(--rm-ember);
    transform: translateY(-2px);
  }

  .location-card:hover::before {
    opacity: 1;
  }

  .location-icon {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rm-ember);
    border: 1px solid var(--rm-ash);
    border-radius: 50%;
    background: var(--rm-charcoal);
    transition: border-color 0.3s, background 0.3s;
  }

  .location-icon svg {
    width: 18px;
    height: 18px;
  }

  .location-card:hover .location-icon {
    border-color: var(--rm-ember);
    background: var(--rm-glow-faint);
  }

  .location-text {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
  }

  .location-label {
    font-family: var(--font-mono);
    font-size: 0.65rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--rm-ember);
    font-weight: 500;
    margin-bottom: 2px;
  }

  .location-street {
    font-family: var(--font-display);
    font-size: 1.25rem;
    text-transform: uppercase;
    color: var(--rm-white);
    line-height: 1;
    letter-spacing: -0.005em;
  }

  .location-city {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--rm-mist);
  }

  .location-arrow {
    font-size: 1.125rem;
    color: var(--rm-fog);
    transition: color 0.3s, transform 0.3s;
  }

  .location-card:hover .location-arrow {
    color: var(--rm-ember);
    transform: translate(2px, -2px);
  }

  /* Pulsing Instagram CTA */
  .prosecco-cta-row {
    margin-top: var(--sp-12);
    padding-top: var(--sp-12);
    border-top: 1px solid var(--rm-smoke);
    display: flex;
    justify-content: center;
  }

  .ig-cta {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-4);
    padding: var(--sp-6) var(--sp-8);
    background: var(--rm-ink);
    border: 1px solid var(--rm-ash);
    border-radius: 999px;
    text-decoration: none;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
  }

  .ig-cta::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at var(--ig-x, 50%) var(--ig-y, 50%), var(--rm-glow-soft), transparent 50%);
    opacity: 0;
    transition: opacity 0.3s;
    pointer-events: none;
  }

  .ig-cta:hover {
    border-color: var(--rm-ember);
    transform: translateY(-2px);
  }

  .ig-cta:hover::before {
    opacity: 1;
  }

  .ig-icon-wrap {
    position: relative;
    width: 52px;
    height: 52px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .ig-icon-pulse {
    position: absolute;
    inset: 0;
    border-radius: 14px;
    background: var(--rm-ember);
    opacity: 0.3;
    animation: ig-pulse 2.4s ease-in-out infinite;
  }

  .ig-icon-pulse:nth-child(2) {
    animation-delay: 0.8s;
  }

  @keyframes ig-pulse {
    0% { transform: scale(1); opacity: 0.45; }
    100% { transform: scale(1.6); opacity: 0; }
  }

  .ig-icon {
    position: relative;
    z-index: 2;
    width: 52px;
    height: 52px;
    border-radius: 14px;
    background: linear-gradient(135deg, #833ab4 0%, #fd1d1d 50%, #fcb045 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
  }

  .ig-icon svg {
    width: 28px;
    height: 28px;
    stroke: currentColor;
    stroke-width: 2;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .ig-content {
    display: flex;
    flex-direction: column;
    gap: 2px;
  }

  .ig-label {
    font-family: var(--font-mono);
    font-size: 0.7rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--rm-ember);
    font-weight: 500;
  }

  .ig-handle {
    font-family: var(--font-display);
    font-size: 1.5rem;
    text-transform: uppercase;
    color: var(--rm-white);
    line-height: 1;
    letter-spacing: -0.005em;
  }

  .ig-arrow {
    font-family: var(--font-display);
    font-size: 1.5rem;
    color: var(--rm-ember);
    transition: transform 0.3s;
    padding-left: var(--sp-2);
  }

  .ig-cta:hover .ig-arrow {
    transform: translateX(6px);
  }

  /* In-section variant: prominent, CTA-like, sits inside the prosecco copy column */
  .ig-cta-book {
    margin-top: var(--sp-8);
    width: 100%;
    justify-content: flex-start;
    padding: var(--sp-5, 1.25rem) var(--sp-6);
    background: linear-gradient(135deg, var(--rm-glow-faint) 0%, var(--rm-ink) 60%);
    border: 1px solid var(--rm-ember);
    border-radius: 4px;
    box-shadow: 0 0 0 0 var(--rm-glow-soft);
  }

  .ig-cta-book .ig-arrow {
    margin-left: auto;
  }

  .ig-cta-book:hover {
    border-color: var(--rm-flame);
    box-shadow: 0 12px 32px -12px var(--rm-ember);
    transform: translateY(-2px);
  }

  .ig-cta-book .ig-label {
    color: var(--rm-ember);
  }

  .ig-cta-book .ig-handle {
    color: var(--rm-white);
  }

  /* ============ PRICING STRIP ============ */
  .pricing {
    background: radial-gradient(ellipse at center, var(--rm-glow-faint) 0%, var(--rm-black) 65%);
    border-top: 1px solid var(--rm-smoke);
    border-bottom: 1px solid var(--rm-smoke);
    text-align: center;
  }

  .pricing .wrap {
    max-width: 800px;
  }

  .pricing-title {
    font-family: var(--font-display);
    font-size: clamp(1.75rem, 3.5vw, 2.75rem);
    text-transform: uppercase;
    color: var(--rm-white);
    line-height: 1;
    margin-bottom: var(--sp-6);
    font-weight: 400;
    letter-spacing: -0.01em;
  }

  .pricing-lead {
    color: var(--rm-mist);
    font-size: 1.0625rem;
    line-height: 1.6;
    margin-bottom: var(--sp-8);
  }

  .pricing-points {
    display: flex;
    flex-direction: column;
    gap: var(--sp-4);
    margin-bottom: var(--sp-8);
    text-align: left;
    max-width: 520px;
    margin-left: auto;
    margin-right: auto;
  }

  .pricing-point {
    padding: var(--sp-3) 0;
    border-bottom: 1px solid var(--rm-smoke);
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: var(--sp-4);
  }

  .pricing-point strong {
    font-family: var(--font-display);
    font-size: 1.25rem;
    color: var(--rm-ember);
    font-weight: 400;
    letter-spacing: 0.01em;
    text-align: right;
    white-space: nowrap;
  }

  .pricing-point span {
    color: var(--rm-mist);
    font-size: 0.9375rem;
  }

  @media (max-width: 900px) {
    /* Pricing rows: stack label above price so long Russian labels don't crash into the price */
    .pricing-point {
      flex-direction: column;
      align-items: flex-start;
      gap: var(--sp-2);
    }
    .pricing-point strong {
      font-size: 1.5rem;
      text-align: left;
      white-space: normal;
    }
  }

  @media (max-width: 480px) {
    /* On narrow screens the nav CTA collides with the language/theme controls.
       Hide it — the floating CTA at the bottom already provides the same action. */
    .nav-cta {
      display: none;
    }
  }

  /* ============ HOST ============ */
  .host {
    border-top: 1px solid var(--rm-smoke);
    padding-top: var(--sp-32);
  }

  .host-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: var(--sp-16);
    align-items: center;
  }

  .host-name-wrap {
    position: relative;
    margin-bottom: var(--sp-4);
  }

  .host-portrait {
    width: 100%;
    aspect-ratio: 2/3;
    background-image: url('images/host-portrait.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border: 1px solid var(--rm-smoke);
    position: relative;
    overflow: hidden;
    transition: filter 0.6s ease;
  }

  .host-portrait::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 65%, rgba(10,10,10,0.45) 100%);
    pointer-events: none;
  }

  .host-portrait:hover {
    filter: brightness(1.08);
  }

  .host-content h3 {
    font-family: var(--font-display);
    font-size: clamp(2.75rem, 5.5vw, 4.5rem);
    text-transform: uppercase;
    color: var(--rm-white);
    line-height: 0.88;
    margin-bottom: var(--sp-3);
    font-weight: 400;
    letter-spacing: -0.02em;
  }

  .host-role {
    font-family: var(--font-mono);
    font-size: 0.8125rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rm-ember);
    margin-bottom: var(--sp-6);
    font-weight: 500;
  }

  .host-credentials {
    list-style: none;
    margin-bottom: var(--sp-8);
  }

  .host-credentials li {
    padding: var(--sp-3) 0;
    border-bottom: 1px solid var(--rm-smoke);
    display: flex;
    gap: var(--sp-4);
    color: var(--rm-mist);
    font-size: 1rem;
  }

  .host-credentials li::before {
    content: '—';
    color: var(--rm-ember);
    font-weight: 600;
  }

  .host-quote {
    font-family: var(--font-accent);
    font-style: italic;
    font-size: 1.375rem;
    line-height: 1.4;
    color: var(--rm-paper);
    padding-left: var(--sp-6);
    border-left: 3px solid var(--rm-ember);
  }

  /* ============ GALLERY ============ */
  .gallery {
    border-top: 1px solid var(--rm-smoke);
  }

  .gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--sp-3);
    margin-top: var(--sp-8);
  }

  .gallery-item {
    aspect-ratio: 4/3;
    background-color: var(--rm-ink);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border: 1px solid var(--rm-smoke);
    position: relative;
    overflow: hidden;
    cursor: pointer;
    transition: all 0.5s ease;
    display: flex;
    align-items: flex-end;
    padding: var(--sp-4);
    filter: grayscale(0.35) brightness(0.9);
  }

  .gallery-item:hover {
    border-color: var(--rm-ember);
    filter: grayscale(0) brightness(1);
    z-index: 2;
  }

  .gallery-item::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 50%, rgba(10,10,10,0.85) 100%);
    opacity: 0.7;
    transition: opacity 0.4s;
    pointer-events: none;
  }

  .gallery-item:hover::before {
    opacity: 1;
  }

  .gallery-item::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at bottom left, rgba(255,107,26,0.12), transparent 65%);
    opacity: 0;
    transition: opacity 0.5s;
    pointer-events: none;
  }

  .gallery-item:hover::after {
    opacity: 1;
  }

  .gallery-caption {
    display: none;
  }

  /* Note: legacy .tall/.wide classes are no-ops in the uniform 3x3 grid — kept on markup so we can opt into a mosaic layout later without changing HTML. */

  .gallery-footer {
    text-align: center;
    margin-top: var(--sp-12);
  }

  /* ============ INQUIRY ============ */
  .inquiry {
    border-top: 1px solid var(--rm-smoke);
    position: relative;
    overflow: hidden;
  }

  .inquiry::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 60vw;
    height: 60vw;
    max-width: 900px;
    max-height: 900px;
    background: radial-gradient(circle, var(--rm-ember) 0%, rgba(255,107,26,0.15) 25%, transparent 55%);
    filter: blur(60px);
    opacity: 0.4;
    z-index: 0;
    pointer-events: none;
  }

  .inquiry .wrap {
    position: relative;
    z-index: 1;
  }

  .inquiry-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: var(--sp-16);
    margin-top: var(--sp-8);
  }

  .form {
    display: flex;
    flex-direction: column;
    gap: var(--sp-6);
  }

  .form-field {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2);
  }

  .form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--sp-6);
  }

  .input-label {
    font-size: 0.7rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--rm-fog);
    font-weight: 600;
  }

  .input-label .required {
    color: var(--rm-ember);
  }

  .input,
  .select,
  .textarea {
    width: 100%;
    padding: var(--sp-3) 0;
    background: transparent;
    border: none;
    border-bottom: 1px solid var(--rm-ash);
    color: var(--rm-paper);
    font-family: var(--font-body);
    font-size: 1rem;
    transition: border-color 0.3s;
    appearance: none;
    -webkit-appearance: none;
  }

  .select {
    padding-right: 30px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23FF6B1A' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 4px center;
    cursor: pointer;
  }

  .select option {
    background: var(--rm-ink);
    color: var(--rm-paper);
  }

  .input:focus,
  .select:focus,
  .textarea:focus {
    outline: none;
    border-bottom-color: var(--rm-ember);
  }

  .input::placeholder,
  .textarea::placeholder {
    color: var(--rm-ash);
  }

  .textarea {
    resize: vertical;
    min-height: 80px;
    line-height: 1.6;
  }

  .form-submit {
    margin-top: var(--sp-4);
    justify-content: center;
    width: 100%;
    padding: 1.25rem 2rem;
  }

  .form-notice {
    font-size: 0.8125rem;
    color: var(--rm-fog);
    line-height: 1.6;
    text-align: center;
    max-width: 50ch;
    margin: 0 auto;
  }

  .contact-card {
    padding: var(--sp-8);
    background: var(--rm-ink);
    border: 1px solid var(--rm-smoke);
    height: fit-content;
  }

  .contact-card h3 {
    font-family: var(--font-display);
    font-size: 1.5rem;
    text-transform: uppercase;
    color: var(--rm-white);
    margin-bottom: var(--sp-6);
    font-weight: 400;
    letter-spacing: -0.005em;
  }

  .contact-list {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: var(--sp-5);
  }

  .contact-list li {
    display: flex;
    flex-direction: column;
    gap: var(--sp-1);
  }

  .contact-label {
    font-size: 0.7rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--rm-fog);
    font-weight: 600;
  }

  .contact-value {
    color: var(--rm-paper);
    font-size: 1rem;
    text-decoration: none;
    transition: color 0.2s;
  }

  .contact-value:hover {
    color: var(--rm-ember);
  }

  .contact-location {
    margin-top: var(--sp-8);
    padding-top: var(--sp-6);
    border-top: 1px solid var(--rm-smoke);
    font-family: var(--font-mono);
    font-size: 0.75rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rm-fog);
  }

  /* ============ FOOTER ============ */
  .footer {
    padding: var(--sp-24) 0 var(--sp-8);
    text-align: center;
    position: relative;
    overflow: hidden;
    border-top: 1px solid var(--rm-smoke);
  }

  .footer::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 70vw;
    height: 70vw;
    max-width: 800px;
    max-height: 800px;
    background: radial-gradient(circle, var(--rm-ember) 0%, rgba(255,107,26,0.25) 25%, transparent 55%);
    filter: blur(40px);
    opacity: 0.3;
    z-index: 0;
  }

  .footer-content {
    position: relative;
    z-index: 1;
  }

  .footer-statement {
    font-family: var(--font-display);
    font-size: clamp(2.5rem, 7vw, 6rem);
    text-transform: uppercase;
    color: var(--rm-white);
    line-height: 0.9;
    margin-bottom: var(--sp-8);
    font-weight: 400;
    letter-spacing: -0.02em;
  }

  .footer-contact {
    display: flex;
    justify-content: center;
    gap: var(--sp-8);
    flex-wrap: wrap;
    margin-bottom: var(--sp-16);
    color: var(--rm-mist);
  }

  .footer-contact a {
    color: var(--rm-mist);
    text-decoration: none;
    font-size: 0.9375rem;
    transition: color 0.2s;
  }

  .footer-contact a:hover {
    color: var(--rm-ember);
  }

  .footer-bottom {
    display: flex;
    justify-content: space-between;
    padding-top: var(--sp-6);
    border-top: 1px solid var(--rm-smoke);
    font-family: var(--font-mono);
    font-size: 0.7rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rm-fog);
    flex-wrap: wrap;
    gap: var(--sp-4);
  }

  .footer-bottom a {
    color: var(--rm-fog);
    text-decoration: none;
  }

  .footer-bottom a:hover { color: var(--rm-ember); }

  .footer-credit {
    margin-top: var(--sp-6);
    text-align: center;
    font-family: var(--font-mono);
    font-size: 0.65rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--rm-ash);
    opacity: 0.7;
    transition: opacity 0.3s ease;
  }

  .footer-credit:hover {
    opacity: 1;
  }

  .footer-credit a {
    color: var(--rm-fog);
    text-decoration: none;
    border-bottom: 1px solid transparent;
    padding-bottom: 1px;
    transition: color 0.2s, border-color 0.2s;
  }

  .footer-credit a:hover {
    color: var(--rm-ember);
    border-bottom-color: var(--rm-ember);
  }

  /* ============ MOBILE FLOATING CTA ============ */
  .floating-cta {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 90;
    padding: var(--sp-3);
    background: var(--rm-black);
    border-top: 1px solid var(--rm-smoke);
    display: none;
    gap: var(--sp-2);
    transform: translateY(100%);
    transition: transform 0.3s;
  }

  .floating-cta.visible {
    transform: translateY(0);
  }

  .floating-cta a {
    flex: 1;
    text-align: center;
    padding: 0.875rem;
    font-size: 0.8125rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 600;
    text-decoration: none;
  }

  .floating-cta .cta-telegram {
    flex: 0 0 auto;
    padding: 0.875rem 1.125rem;
    background: var(--rm-ink);
    border: 1px solid var(--rm-ash);
    color: var(--rm-paper);
  }

  .floating-cta .cta-primary {
    background: var(--rm-ember);
    color: var(--rm-cta-text);
  }

  /* ============ RESPONSIVE ============ */
  @media (max-width: 1024px) {
    .nav-links { display: none; }
    /* Burger is decorative — no menu logic exists. Hide it everywhere so it
       doesn't overlap the lang/theme controls and steal taps. */
    .nav-burger { display: none; }

    .hero h1 .line-2 { padding-left: 8%; }

    .about-grid,
    .host-grid,
    .tab-content,
    .inquiry-grid {
      grid-template-columns: 1fr;
      gap: var(--sp-8);
    }

    .benefits-grid {
      grid-template-columns: repeat(2, 1fr);
    }

    .benefit {
      border-right: 1px solid var(--rm-smoke);
      border-bottom: 1px solid var(--rm-smoke);
    }

    .benefit:nth-child(2n) { border-right: none; }
    .benefit:nth-last-child(-n+1) { border-bottom: none; }

    .concept {
      grid-template-columns: 1fr;
      gap: var(--sp-6);
      padding: var(--sp-8) 0;
    }

    .gallery-grid {
      grid-template-columns: 1fr;
    }

    /* Single column on mobile. Use the photo's actual orientation
       (wide=horizontal=3:2, tall=vertical=2:3) so nothing gets cropped. */
    .gallery-item {
      aspect-ratio: 3/2;
    }
    .gallery-item.tall {
      aspect-ratio: 2/3;
    }

    .form-row {
      grid-template-columns: 1fr;
      gap: var(--sp-6);
    }

    .floating-cta { display: flex; }

    body { padding-bottom: 70px; }

    .footer-bottom { justify-content: center; text-align: center; }

    /* Art Wednesday: collapse to single column on tablets */
    .prosecco-head {
      grid-template-columns: 1fr;
      gap: var(--sp-8);
      align-items: start;
    }

    .prosecco-body {
      grid-template-columns: 1fr;
      gap: var(--sp-10, 2.5rem);
    }

    .prosecco-side {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: var(--sp-4);
    }

    .location-card {
      grid-column: span 2;
    }
  }

  @media (max-width: 720px) {
    /* Reduce hero on small screens */
    .hero {
      padding-top: 100px;
    }
    .hero h1 {
      font-size: clamp(2.75rem, 13vw, 5rem);
    }
    .hero h1 .line-2 { padding-left: 0; }
    .hero-tag { font-size: 1rem; }

    /* Nav: compact mode */
    .nav {
      padding: var(--sp-3) 0;
    }
    .nav-inner {
      gap: var(--sp-3);
      flex-wrap: nowrap;
    }
    .nav-right {
      gap: var(--sp-3);
    }
    /* Burger is decorative-only on this site (no menu logic). On mobile it
       overlaps the language/theme controls and steals their taps. Hide it. */
    .nav-burger {
      display: none;
    }
    .nav-controls {
      padding: 0.35rem 0.6rem;
      gap: var(--sp-2);
    }
    .nav-divider {
      height: 16px;
    }
    .logo {
      font-size: 1.125rem;
    }
    .nav-cta {
      padding: 0.5rem 0.9rem;
      font-size: 0.7rem;
      letter-spacing: 0.1em;
    }
    /* Theme toggle: bigger track + thumb so the tap is reliable on mobile */
    .theme-toggle {
      padding: 6px;
      touch-action: manipulation;
    }
    .theme-toggle-track {
      width: 44px;
      height: 24px;
    }
    .theme-toggle-thumb {
      width: 18px;
      height: 18px;
    }
    [data-theme="light"] .theme-toggle-thumb {
      transform: translateX(20px);
    }

    /* Section titles: step down gradually */
    .section-title {
      font-size: clamp(1.75rem, 7vw, 2.5rem);
      max-width: 100%;
      line-height: 0.95;
    }
    .concept-title {
      font-size: clamp(1.75rem, 8vw, 2.5rem);
    }

    /* Concepts: tier pills wrap cleanly */
    .concept-tiers {
      gap: var(--sp-2);
    }
    .tier-pill {
      font-size: 0.65rem;
      padding: 0.4rem 0.7rem;
      letter-spacing: 0.12em;
    }

    .benefits-grid {
      grid-template-columns: 1fr;
    }
    .benefit {
      border-right: none !important;
    }

    .tabs { flex-direction: column; }
    .tab-btn {
      border-bottom: 1px solid var(--rm-smoke);
      border-left: 3px solid transparent;
      padding: var(--sp-4);
    }
    .tab-btn.active {
      border-bottom-color: var(--rm-smoke);
      border-left-color: var(--rm-ember);
    }

    .hero-meta { display: none; }

    /* Art Wednesday section */
    .prosecco-title {
      font-size: clamp(2.5rem, 11vw, 4rem);
      line-height: 0.9;
    }
    .prosecco-title .small-line {
      font-size: 0.32em;
    }
    .prosecco-lede {
      font-size: 1.0625rem;
      padding-left: var(--sp-4);
    }
    .prosecco-side {
      display: flex;
      flex-direction: column;
    }
    .location-card {
      padding: var(--sp-4) var(--sp-5, 1.25rem);
    }
    .schedule-card,
    .price-card {
      padding: var(--sp-6);
    }
    .schedule-day {
      font-size: 1.375rem;
    }
    .schedule-row {
      grid-template-columns: 1fr;
      gap: var(--sp-1);
    }
    .price-amount {
      font-size: clamp(2.5rem, 11vw, 3.5rem);
    }

    /* IG CTA: stack cleanly on mobile */
    .ig-cta {
      padding: var(--sp-4) var(--sp-5, 1.25rem);
      gap: var(--sp-3);
      flex-wrap: wrap;
      justify-content: center;
      text-align: center;
    }
    .ig-handle {
      font-size: 1.25rem;
    }
    .ig-label {
      font-size: 0.65rem;
      letter-spacing: 0.2em;
    }

    /* Host: smaller heading on mobile */
    .host-content h3 {
      font-size: clamp(2.25rem, 10vw, 3.5rem);
    }
    .host-portrait {
      width: 100%;
      max-width: 360px;
      margin: 0 auto;
    }
    .host-credentials li {
      font-size: 0.9375rem;
      padding: var(--sp-2) 0;
    }

    /* Footer: compact stacking */
    .footer-statement {
      font-size: clamp(2rem, 9vw, 3.5rem);
    }
  }

  @media (max-width: 420px) {
    /* Very narrow screens: shrink the CTA so toggles never get pushed offscreen */
    .nav-cta {
      padding: 0.4rem 0.7rem;
      font-size: 0.65rem;
      letter-spacing: 0.08em;
    }
    .nav-inner {
      gap: var(--sp-2);
    }
    .nav-right {
      gap: var(--sp-2);
    }
  }


  /* ============ EVENT LOGOS · FAQ · A11Y (SEO update) ============ */
  .event-logo { display: block; height: auto; max-width: 100%; }
  .event-logo-aw { filter: invert(1); }
  :root[data-theme="light"] .event-logo-aw { filter: none; }

  /* Постер-карточка Art Wednesday — логотип живёт в стопке карточек
     как афиша над расписанием, а не отдельно висящей картинкой */
  .poster-card { text-align: center; }
  .poster-card .schedule-label { text-align: left; }
  .poster-card .event-logo-aw {
    width: 100%;
    max-width: 320px;
    margin: var(--sp-6) auto var(--sp-8);
  }
  .poster-card .schedule-rows {
    border-top: 1px solid var(--rm-smoke);
    padding-top: var(--sp-5);
  }
  .poster-card .schedule-day { letter-spacing: 0.01em; }
  .poster-card .schedule-time {
    color: var(--rm-fog);
    text-transform: uppercase;
    font-size: 0.7rem;
    letter-spacing: 0.2em;
  }

  /* Сабмарка Secret Salon — подпись + линия привязывают логотип к формату */
  .concept-submark {
    margin-top: var(--sp-6);
    padding-top: var(--sp-5);
    border-top: 1px solid var(--rm-smoke);
  }
  .submark-label {
    display: block;
    font-family: var(--font-mono);
    font-size: 0.65rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--rm-fog);
    margin-bottom: var(--sp-4);
  }
  .event-logo-ss { width: clamp(170px, 21vw, 250px); }

  .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;
  }

  .concept-desc a {
    color: var(--rm-ember); text-decoration: underline;
    text-underline-offset: 2px; text-decoration-thickness: 1px;
  }
  .concept-desc a:hover { color: var(--rm-flame); }

  .faq-list {
    display: grid; gap: var(--sp-8) var(--sp-12); margin-top: var(--sp-12);
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  }
  .faq-item { border-top: 1px solid var(--rm-smoke); padding-top: var(--sp-5); }
  .faq-item h3 {
    font-family: var(--font-body); font-size: 1rem; font-weight: 600;
    color: var(--rm-white); margin-bottom: var(--sp-3); line-height: 1.35;
  }
  .faq-item p { color: var(--rm-mist); font-size: 0.9375rem; line-height: 1.65; }

  .hero h1 .line-3 {
    display: block; font-family: var(--font-body);
    font-size: clamp(0.95rem, 1.7vw, 1.3rem);
    text-transform: none; letter-spacing: 0.005em; font-weight: 400;
    color: var(--rm-mist); line-height: 1.4; margin-top: var(--sp-6); max-width: 32ch;
  }

  /* ============ АДАПТИВ: афиша, сабмарка, FAQ ============ */
  @media (max-width: 1024px) {
    .poster-card .event-logo-aw { max-width: 280px; margin: var(--sp-5) auto var(--sp-6); }
    .faq-list { margin-top: var(--sp-8); gap: var(--sp-6) var(--sp-8); }
  }

  @media (max-width: 720px) {
    .hero h1 .line-3 { margin-top: var(--sp-5); max-width: none; }
    .poster-card .event-logo-aw { max-width: min(100%, 300px); }
    .poster-card .schedule-row { justify-items: center; }
    .concept-submark { margin-top: var(--sp-5); padding-top: var(--sp-4); }
    .event-logo-ss { width: min(70%, 220px); }
    .faq-list { margin-top: var(--sp-6); gap: var(--sp-5); }
    .faq-item h3 { font-size: 1.0625rem; }
  }

  @media (max-width: 420px) {
    .poster-card { padding: var(--sp-6); }
    .poster-card .event-logo-aw { margin: var(--sp-4) auto var(--sp-5); }
    .poster-card .schedule-day { font-size: 1.5rem; }
  }

  /* ============ TICKER — поводы ============ */
  .ticker {
    border-top: 1px solid var(--rm-smoke);
    background: var(--rm-ink);
    overflow: hidden;
    padding: var(--sp-5) 0;
  }
  .ticker-track {
    display: flex;
    width: max-content;
    animation: ticker-scroll 42s linear infinite;
  }
  .ticker:hover .ticker-track,
  .ticker:focus-within .ticker-track { animation-play-state: paused; }
  .ticker-group { display: flex; align-items: center; flex: none; }
  .ticker-group span {
    font-family: var(--font-display);
    font-size: clamp(1.05rem, 2.1vw, 1.75rem);
    text-transform: uppercase;
    letter-spacing: 0.015em;
    color: var(--rm-paper);
    white-space: nowrap;
    line-height: 1;
  }
  .ticker-group i {
    font-family: var(--font-accent);
    font-style: italic;
    color: var(--rm-ember);
    padding: 0 var(--sp-6);
    font-size: clamp(1rem, 1.9vw, 1.5rem);
    line-height: 1;
  }
  @keyframes ticker-scroll {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
  }
  @media (max-width: 720px) {
    .ticker { padding: var(--sp-4) 0; }
    .ticker-group i { padding: 0 var(--sp-4); }
  }
  @media (prefers-reduced-motion: reduce) {
    .ticker-track { animation: none; }
    .ticker { overflow-x: auto; }
  }

  /* Резерв под нижнюю мета-строку героя: без него контент наезжает на неё,
     когда в h1 появилась третья строка и третий мини-тег */
  .hero { padding-bottom: clamp(80px, 10vh, 112px); }
  @media (max-width: 720px) { .hero { padding-bottom: var(--sp-16); } }

/* ============================================================
   RISING MUSE — компоненты многостраничной версии
   Только токены из основной темы (--rm-*, --font-*, --sp-*),
   поэтому светлая тема работает автоматически.
   ============================================================ */

/* ---------- страничный герой (внутренние страницы) ---------- */
.page-hero{position:relative;padding:calc(var(--sp-32) + 40px) 0 var(--sp-16);overflow:hidden}
.page-hero .wrap{position:relative;z-index:2}
.page-hero-glow{position:absolute;inset:-30% -10% auto -10%;height:80%;
  background:radial-gradient(circle,var(--rm-glow-soft) 0%,transparent 60%);
  opacity:var(--rm-hero-glow-opacity);pointer-events:none;z-index:1}
.page-hero h1{font-family:var(--font-display);font-weight:400;text-transform:uppercase;
  font-size:clamp(2.6rem,7.5vw,5.6rem);line-height:.92;letter-spacing:-.01em;
  margin:0 0 var(--sp-6);color:var(--rm-white);text-wrap:balance}
.page-hero h1 .alt{color:var(--rm-ember)}
.page-hero-lede{font-size:clamp(1rem,1.6vw,1.18rem);line-height:1.6;color:var(--rm-mist);
  max-width:56ch;margin:0 0 var(--sp-8)}
.page-hero-ctas{display:flex;flex-wrap:wrap;gap:var(--sp-4)}

/* ---------- полоса доказательств ---------- */
.proofbar{border-top:1px solid var(--rm-smoke);border-bottom:1px solid var(--rm-smoke);
  background:var(--rm-ink)}
.proofbar-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:1px;background:var(--rm-smoke)}
.proofbar-cell{background:var(--rm-ink);padding:var(--sp-6) var(--sp-5)}
.proofbar-k{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--rm-fog);margin:0 0 var(--sp-2)}
.proofbar-v{font-family:var(--font-display);text-transform:uppercase;font-size:1.35rem;
  line-height:1.1;color:var(--rm-white);margin:0}
.proofbar-v small{font-family:var(--font-body);font-size:.8rem;font-weight:400;
  text-transform:none;color:var(--rm-mist);display:block;margin-top:var(--sp-1);letter-spacing:0}

/* ---------- строка ближайшего события в герое ---------- */
.nextup{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3) var(--sp-5);
  border:1px solid var(--rm-ash);border-left:3px solid var(--rm-ember);
  background:var(--rm-ink);padding:var(--sp-4) var(--sp-5);margin:0 0 var(--sp-8);
  text-decoration:none;color:inherit;transition:border-color .2s,background .2s}
.nextup:hover{border-color:var(--rm-ember);background:var(--rm-charcoal)}
.nextup-k{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--rm-ember);white-space:nowrap}
.nextup-t{font-family:var(--font-display);text-transform:uppercase;font-size:1.05rem;
  color:var(--rm-white);letter-spacing:.01em}
.nextup-m{font-family:var(--font-mono);font-size:.72rem;color:var(--rm-mist);white-space:nowrap}
.nextup-go{margin-left:auto;font-family:var(--font-mono);font-size:.7rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--rm-ember);white-space:nowrap}
@media(max-width:640px){.nextup-go{margin-left:0}}

/* ---------- карточки событий ---------- */
.ev-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:var(--sp-6)}
.ev-card{display:flex;flex-direction:column;background:var(--rm-ink);
  border:1px solid var(--rm-smoke);text-decoration:none;color:inherit;
  transition:border-color .2s,transform .2s}
.ev-card:hover{border-color:var(--rm-ash);transform:translateY(-2px)}
.ev-cover{position:relative;aspect-ratio:4/5;background-size:cover;background-position:center top;
  background-color:var(--rm-charcoal);border-bottom:1px solid var(--rm-smoke)}
.ev-series{position:absolute;top:var(--sp-3);left:var(--sp-3);font-family:var(--font-mono);
  font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;
  background:var(--rm-black);color:var(--rm-mist);padding:.3em .6em;border:1px solid var(--rm-ash)}
.ev-badge{position:absolute;top:var(--sp-3);right:var(--sp-3);font-family:var(--font-mono);
  font-size:.56rem;letter-spacing:.12em;text-transform:uppercase;padding:.3em .6em;font-weight:500}
.ev-badge.is-open{background:var(--rm-ember);color:var(--rm-cta-text)}
.ev-badge.is-few{background:#E8B10F;color:#151005}
.ev-badge.is-sold{background:var(--rm-smoke);color:var(--rm-mist);border:1px solid var(--rm-ash)}
.ev-badge.is-past{background:transparent;color:var(--rm-fog);border:1px solid var(--rm-ash)}
.ev-body{padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-3);flex:1}
.ev-date{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;color:var(--rm-ember)}
.ev-card.is-past .ev-date{color:var(--rm-fog)}
.ev-title{font-family:var(--font-display);text-transform:uppercase;font-size:1.5rem;
  line-height:1.02;letter-spacing:.005em;color:var(--rm-white);margin:0}
.ev-sub{font-size:.9rem;line-height:1.5;color:var(--rm-mist);margin:0}
.ev-meta{margin-top:auto;padding-top:var(--sp-3);border-top:1px solid var(--rm-smoke);
  display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4);
  font-family:var(--font-mono);font-size:.68rem;color:var(--rm-fog)}
.ev-cta{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--rm-ember);padding-top:var(--sp-2)}
.ev-card.is-past .ev-cta{color:var(--rm-fog)}
.ev-empty{border:1px dashed var(--rm-ash);padding:var(--sp-8);text-align:center;
  color:var(--rm-fog);font-family:var(--font-mono);font-size:.8rem;grid-column:1/-1}

/* ---------- бренд-блоки двух вечеров ---------- */
.nights{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-6)}
@media(max-width:900px){.nights{grid-template-columns:1fr}}
.night{position:relative;display:flex;flex-direction:column;
  border:1px solid var(--rm-smoke);background:var(--rm-ink);padding:var(--sp-8);
  text-decoration:none;color:inherit;transition:border-color .2s;height:100%}
.night:hover{border-color:var(--rm-ember)}
.night.is-salon{background:linear-gradient(160deg,#1B1215 0%,var(--rm-ink) 55%)}
:root[data-theme="light"] .night.is-salon{
  background:linear-gradient(160deg,#F3E7E9 0%,var(--rm-ink) 55%)}

/* шапка карточки: одинаковая высота у обеих, логотипы в одной оптической рамке */
.night-head{display:flex;flex-direction:column;gap:var(--sp-4);margin-bottom:var(--sp-6)}
.night-kicker{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--rm-fog);min-height:1em}
.night-logo-box{height:104px;display:flex;align-items:center;justify-content:flex-start}
.night-logo{max-height:104px;max-width:min(100%,290px);width:auto;height:auto;
  object-fit:contain;object-position:left center;display:block}
.night-logo.is-aw{filter:invert(1)}
:root[data-theme="light"] .night-logo.is-aw{filter:none}

.night h3{font-family:var(--font-display);text-transform:uppercase;font-size:2rem;
  line-height:1;margin:0;color:var(--rm-white)}
.night p{margin:0 0 var(--sp-6);color:var(--rm-mist);font-size:.95rem;line-height:1.6;flex:1}
.night-facts{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-5);
  font-family:var(--font-mono);font-size:.68rem;color:var(--rm-fog);
  border-top:1px solid var(--rm-smoke);padding-top:var(--sp-4);margin-bottom:var(--sp-4);
  min-height:2.6em;align-items:flex-start}
.night-go{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--rm-ember)}
@media(max-width:900px){
  .night-logo-box{height:80px}
  .night-logo{max-height:80px}
  .night-facts{min-height:0}
}

/* ---------- мостик к приватным ---------- */
.bridge{border-top:1px solid var(--rm-smoke);border-bottom:1px solid var(--rm-smoke);
  background:var(--rm-ink)}
.bridge-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:var(--sp-6);padding:var(--sp-12) 0}
.bridge-t{font-family:var(--font-display);text-transform:uppercase;
  font-size:clamp(1.5rem,3.2vw,2.4rem);line-height:1.02;margin:0;color:var(--rm-white);max-width:22ch}
.bridge-t em{font-style:normal;color:var(--rm-ember)}

/* ---------- плитки поводов ---------- */
.occ-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--rm-smoke);border:1px solid var(--rm-smoke)}
@media(max-width:900px){.occ-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.occ-grid{grid-template-columns:1fr}}
.occ{background:var(--rm-ink);padding:var(--sp-6);display:flex;flex-direction:column;
  gap:var(--sp-2);text-decoration:none;color:inherit;transition:background .2s}
.occ:hover{background:var(--rm-charcoal)}
.occ-n{font-family:var(--font-mono);font-size:.6rem;color:var(--rm-fog);letter-spacing:.1em}
.occ-t{font-family:var(--font-display);text-transform:uppercase;font-size:1.25rem;
  line-height:1.05;color:var(--rm-white)}
.occ-d{font-size:.85rem;line-height:1.5;color:var(--rm-mist);margin:0}

/* ---------- таймлайн вечера ---------- */
.tl{display:flex;flex-direction:column;border-top:1px solid var(--rm-smoke)}
.tl-row{display:grid;grid-template-columns:88px 1fr;gap:var(--sp-5);
  padding:var(--sp-5) 0;border-bottom:1px solid var(--rm-smoke)}
.tl-t{font-family:var(--font-mono);font-size:.8rem;color:var(--rm-ember);
  font-variant-numeric:tabular-nums;padding-top:.15rem}
.tl-h{font-weight:600;font-size:1rem;color:var(--rm-white);margin:0 0 var(--sp-2)}
.tl-d{margin:0;color:var(--rm-mist);font-size:.92rem;line-height:1.55}
@media(max-width:560px){.tl-row{grid-template-columns:1fr;gap:var(--sp-2)}}

/* ---------- уровни figure drawing ---------- */
.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-5)}
@media(max-width:900px){.tiers{grid-template-columns:1fr}}
.tier{border:1px solid var(--rm-smoke);background:var(--rm-ink);padding:var(--sp-6);
  display:flex;flex-direction:column;gap:var(--sp-3)}
.tier-n{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--rm-ember)}
.tier-t{font-family:var(--font-display);text-transform:uppercase;font-size:1.3rem;
  line-height:1.05;color:var(--rm-white);margin:0}
.tier-d{margin:0;font-size:.9rem;line-height:1.55;color:var(--rm-mist)}

/* ---------- этикет ---------- */
.rules{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-6) var(--sp-8)}
@media(max-width:1000px){.rules{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.rules{grid-template-columns:1fr}}
.rule{display:flex;flex-direction:column;gap:var(--sp-2)}
.rule-n{font-family:var(--font-mono);font-size:.7rem;color:var(--rm-ember)}
.rule-t{font-weight:600;color:var(--rm-white);margin:0}
.rule-d{margin:0;font-size:.9rem;line-height:1.55;color:var(--rm-mist)}

/* ---------- чипы вместо селектов ---------- */
.chips{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.chip{position:relative}
.chip input{position:absolute;opacity:0;width:0;height:0}
.chip span{display:block;cursor:pointer;font-family:var(--font-mono);font-size:.72rem;
  letter-spacing:.04em;padding:.55em .85em;border:1px solid var(--rm-ash);
  color:var(--rm-mist);background:var(--rm-ink);transition:.15s;user-select:none}
.chip span:hover{border-color:var(--rm-fog);color:var(--rm-white)}
.chip input:checked + span{background:var(--rm-ember);border-color:var(--rm-ember);
  color:var(--rm-cta-text);font-weight:500}
.chip input:focus-visible + span{outline:2px solid var(--rm-ember);outline-offset:2px}
.field-optional{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--rm-fog);margin-left:.4em}

/* ---------- быстрый контакт над формой ---------- */
.quick{display:flex;flex-wrap:wrap;gap:var(--sp-4);align-items:center;
  border:1px solid var(--rm-smoke);background:var(--rm-ink);padding:var(--sp-5);
  margin-bottom:var(--sp-8)}
.quick-t{font-size:.92rem;color:var(--rm-mist);margin:0;flex:1;min-width:200px}
.quick-t strong{color:var(--rm-white)}

/* ---------- подписи к галерее ---------- */
.gallery-meta{position:absolute;left:0;right:0;bottom:0;padding:var(--sp-4);
  background:linear-gradient(to top,rgba(0,0,0,.82),transparent);
  font-family:var(--font-mono);font-size:.64rem;letter-spacing:.06em;color:#fff;
  display:flex;flex-direction:column;gap:.2rem;pointer-events:none}
.gallery-meta b{font-weight:600;letter-spacing:.1em;text-transform:uppercase}
.gallery-meta i{font-style:normal;opacity:.72}

/* ---------- липкая мобильная кнопка ---------- */
.floating-cta .btn{white-space:nowrap}

/* ---------- мелочи ---------- */
.stack-lg{display:flex;flex-direction:column;gap:var(--sp-12)}
.stack-md{display:flex;flex-direction:column;gap:var(--sp-6)}
.muted{color:var(--rm-fog)}
.legal h2{font-family:var(--font-display);text-transform:uppercase;font-size:1.4rem;
  margin:var(--sp-8) 0 var(--sp-3);color:var(--rm-white)}
.legal p,.legal li{color:var(--rm-mist);line-height:1.7}
.legal{max-width:70ch}

/* ---------- мобильные страховки от горизонтального скролла ---------- */
@media (max-width:520px){
  .btn{max-width:100%;white-space:normal;text-align:center;justify-content:center}
  .gallery-footer .btn,.ig-cta,.why-ctas .btn,.hero-ctas .btn,.page-hero-ctas .btn{width:100%}
  .bridge-in{flex-direction:column;align-items:flex-start}
  .bridge-in .btn{width:100%}
  .quick{flex-direction:column;align-items:stretch}
  .quick .btn{width:100%}
  .nextup{flex-direction:column;align-items:flex-start;gap:var(--sp-2)}
}
.wrap>*{min-width:0}
.ev-grid,.occ-grid,.nights,.tiers,.rules{min-width:0}
.ev-title,.occ-t,.tier-t,.night h3{overflow-wrap:anywhere}


/* ---------- навигация: без переносов ---------- */
.nav-links{flex-wrap:nowrap}
.nav-links li{white-space:nowrap}
.nav-links a{white-space:nowrap}
@media(max-width:1400px){.nav-links{gap:var(--sp-5)}.nav-links a{letter-spacing:.12em}}
@media(max-width:1240px){.nav-links{gap:var(--sp-4)}.nav-links a{font-size:.7rem;letter-spacing:.08em}}
@media(max-width:1120px){.nav-cta{padding-left:var(--sp-4);padding-right:var(--sp-4)}}

/* ---------- полупрозрачная подложка под текстом героя ----------
   Чтобы заголовок не смешивался с фоном (свечение, а позже — видео/фото). */
:root{ --rm-hero-scrim: rgba(10,10,10,.60); }
:root[data-theme="light"]{ --rm-hero-scrim: rgba(250,247,240,.72); }

.hero .hero-content,
.page-hero > .wrap{ position:relative; isolation:isolate; }

.hero .hero-content::before,
.page-hero > .wrap::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:calc(var(--sp-12) * -1) calc(var(--sp-6) * -1);
  background:linear-gradient(180deg,
    var(--rm-hero-scrim) 0%,
    var(--rm-hero-scrim) 62%,
    transparent 100%);
  -webkit-backdrop-filter:blur(7px);
  backdrop-filter:blur(7px);
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 66%,transparent 100%);
  mask-image:linear-gradient(180deg,#000 0%,#000 66%,transparent 100%);
  pointer-events:none;
}
@media(max-width:760px){
  .hero .hero-content::before,
  .page-hero > .wrap::before{ inset:calc(var(--sp-8) * -1) 0; }
}


/* ---------- кнопка в футере ---------- */
.footer-cta{margin:var(--sp-6) 0 var(--sp-8)}
@media(min-width:900px){ .footer-cta{margin:var(--sp-4) 0 var(--sp-10)} }

/* последний пункт списка преимуществ занимает всю строку, чтобы сетка была без дыр */
.rule.is-wide{grid-column:1/-1;border-top:1px solid var(--rm-smoke);padding-top:var(--sp-6)}
.rule.is-wide .rule-d{max-width:68ch}

/* ============================================================
   ВЫРАВНИВАНИЕ
   ============================================================ */

/* 1. Секции Booking / Practical наследовали text-align:center от старого
   блока с ценой. Внутри теперь сетка и кнопки — центрирование ломало ряд,
   поэтому возвращаем левый край, как во всех остальных секциях сайта. */
/* контейнер тоже был узким (800px) под старый блок с ценой —
   возвращаем общую ширину, чтобы секция стояла на одной линии с остальными */
.pricing .wrap{max-width:var(--container)}
.pricing{text-align:left}
.pricing .section-title,
.pricing .section-lede,
.pricing .eyebrow,
.pricing .rules,
.pricing .why-ctas{text-align:left}

/* 2. Сетка преимуществ: 4 пункта должны занимать ряд целиком,
   а не оставлять пустую ячейку. */
.rules.cols-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:1100px){.rules.cols-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.rules.cols-4{grid-template-columns:1fr}}

/* 3. Навигация: space-between уже разносит три группы,
   а margin-left:auto дополнительно прижимал ссылки вправо
   и оставлял дыру после логотипа. */
.nav-links{margin-left:0}
