/* ============================================================
   NEVANU — Design System & Styles
   Premium Coiffeur Luzern | nevanu.ch
   ============================================================ */

/* ----- CSS CUSTOM PROPERTIES ----- */
/* Colors, fonts, spacing tokens → design-system.css (single source of truth) */

/* Dark mode disabled — Nevanu uses its own branded color scheme */
/* @media (prefers-color-scheme: dark) { ... } */

/* ----- RESET ----- */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  overflow-x: clip;
}
/* Force consistent scrollbar in all themes — prevents layout shift */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(0,0,0,.15); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: rgba(0,0,0,.3); }
[data-theme="dark"] ::-webkit-scrollbar-thumb { background: rgba(255,255,255,.12); }
[data-theme="dark"] ::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,.25); }
/* Hide scrollbar on popups/modals */
.ds-popup::-webkit-scrollbar { display: none !important; width: 0 !important; }

body {
  overflow-x: clip;
  font-family: var(--font-body);
  font-weight: 300;
  font-size: 1rem;
  line-height: 1.6;
  color: var(--text-secondary);
  background-color: var(--bg-primary);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img,
video {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font-family: inherit;
  cursor: pointer;
  border: none;
  background: none;
}

ul, ol {
  list-style: none;
}

/* ----- GSAP Character Spans — force Eros on all hero text elements ----- */
.hero__line,
.hero__line span,
.hero__line span span,
.hero__line .gsap-char {
  font-family: var(--font-display) !important;
}

/* ----- SKIP LINK ----- */
.skip-link {
  position: absolute;
  top: -100%;
  left: 16px;
  z-index: var(--z-skip);
  padding: 12px 24px;
  background: var(--accent);
  color: var(--text-inverse);
  font-weight: 500;
  border-radius: var(--radius-sm);
}

.skip-link:focus {
  top: 16px;
}

/* ----- TYPOGRAPHY ----- */
h1, .h1 {
  font-family: var(--font-display);
  font-size: var(--fs-h1);
  font-weight: 400;
  line-height: 0.95;
  letter-spacing: -0.02em;
  text-transform: none;
  color: var(--text-primary);
}

h2, .h2 {
  font-family: var(--font-display);
  font-size: var(--fs-h2);
  font-weight: 400;
  line-height: 1.0;
  letter-spacing: -0.02em;
  text-transform: none;
  color: var(--text-primary);
}

h3, .h3 {
  font-family: var(--font-display);
  font-size: var(--fs-h3);
  font-weight: 400;
  line-height: 1.2;
  color: var(--text-primary);
}

p {
  max-width: 65ch;
}

.text-sm { font-size: 0.875rem; }
.text-lg { font-size: 1.125rem; }
.text-xl { font-size: clamp(1.25rem, 2vw, 1.5rem); }

/* ----- LAYOUT ----- */
/* .container removed — use .ds-container from design-system.css */

/* .section removed — use .ds-section from design-system.css */

/* ----- BUTTONS ----- */
/* .btn system removed — use .ds-btn, .ds-btn-primary, .ds-btn-secondary from design-system.css */

/* ----- HEADER / NAVIGATION — centered logo, shrinks on scroll ----- */
.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: calc(var(--z-menu) + 10);
  height: var(--nav-height-large, 100px);
  display: flex;
  align-items: center;
  background: transparent;
  backdrop-filter: blur(0);
  -webkit-backdrop-filter: blur(0);
  border: none;
  box-shadow: none;
  transition: height .6s cubic-bezier(.32,.72,0,1), background .4s ease, backdrop-filter .4s ease, -webkit-backdrop-filter .4s ease, box-shadow .4s ease;
}

.header--scrolled {
  height: var(--nav-height);
  background: rgba(250,248,246,.65);
  backdrop-filter: blur(48px) saturate(200%);
  -webkit-backdrop-filter: blur(48px) saturate(200%);
  box-shadow: 0 1px 0 rgba(0,0,0,.06);
}

.header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 clamp(24px, 4vw, 48px);
}

.header__left {
  display: flex;
  align-items: center;
  gap: 16px;
  flex: 1;
}

/* .theme-toggle removed — DS pill/slider version in design-system.css wins */

.header__phone {
  font-size: .8125rem;
  font-weight: 400;
  color: var(--text-secondary);
  display: none;
}

@media (min-width: 768px) {
  .header__phone { display: block; }
}

.header__center {
  display: flex;
  justify-content: center;
  align-items: center;
  flex: 1;
}

.header__logo {
  flex-shrink: 0;
  transition: all .5s var(--ease-out-expo);
}

.header__logo img {
  height: 48px;
  width: auto;
  transition: height .6s cubic-bezier(.32,.72,0,1), filter .5s ease;
}

.header--scrolled .header__logo img {
  height: 32px;
}

.header__right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
  flex: 1;
}

/* Social Proof Badge in Header */
.header__proof {
  display: none;
  align-items: center;
  gap: 6px;
  font-size: 0.88rem;
  font-weight: 500;
  color: var(--text-secondary);
  transition: color var(--transition-base);
  cursor: pointer;
}

.header__proof:hover {
  color: var(--accent);
}
.header__proof:hover .header__proof-stars {
  color: var(--accent);
}

.header__proof-stars {
  color: var(--color-star);
  font-size: 0.82rem;
  letter-spacing: 1px;
  transition: color .3s;
}

.header__proof-score {
  font-weight: 700;
  font-size: 0.92rem;
}

@media (min-width: 768px) {
  .header__proof {
    display: flex;
  }
}

/* Status dot (availability indicator — color set by JS from pill_status API) */
.status-dot {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--status-dot-color, #f59e0b);
  margin-right: 8px;
  flex-shrink: 0;
}
.status-dot::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: inherit;
  animation: statusPulse 2s cubic-bezier(0, 0, 0.2, 1) infinite;
}
.status-dot--green { --status-dot-color: #22c55e; }
.status-dot--orange { --status-dot-color: #f59e0b; }
.status-dot--red { --status-dot-color: #ef4444; }
@keyframes statusPulse {
  0% { transform: scale(1); opacity: 0.6; }
  70% { transform: scale(2.5); opacity: 0; }
  100% { transform: scale(2.5); opacity: 0; }
}

/* Phone link — align dot vertically centered */
.header__phone {
  display: flex;
  align-items: center;
}

.header__nav {
  display: none;
}

@media (min-width: 1024px) {
  .header__nav {
    display: flex;
    align-items: center;
    gap: var(--space-lg);
  }
}

.header__nav a {
  font-size: 0.875rem;
  font-weight: 400;
  letter-spacing: 0.02em;
  color: var(--text-secondary);
  transition: color var(--transition-base);
  position: relative;
}

.header__nav a::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 1.5px;
  background: var(--accent);
  transition: width var(--transition-base);
}

.header__nav a:hover::after,
.header__nav a.active::after {
  width: 100%;
}

.header__actions {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}

/* Utility pill — groups theme toggle + lang switcher */
.header__utils {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 2px;
  background: rgba(var(--accent-rgb), .06);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-radius: var(--radius-full, 999px);
  padding: 4px 6px;
  transition: background .3s;
  white-space: nowrap;
}
[data-theme="dark"] .header__utils {
  background: rgba(255, 255, 255, .08);
}
.header--scrolled .header__utils {
  background: rgba(var(--accent-rgb), .06);
}
[data-theme="dark"] .header--scrolled .header__utils {
  background: rgba(255, 255, 255, .06);
}

.header__lang {
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--text-secondary);
  padding: 4px 8px;
  border-radius: var(--radius-full, 999px);
  transition: color .3s, background .3s;
}

.header__lang:hover,
.header__lang.active {
  color: var(--accent);
}
[data-theme="dark"] .header__lang:hover {
  background: rgba(255, 255, 255, .08);
}

.header__book {
  display: none;
}

@media (min-width: 768px) {
  .header__book {
    display: inline-flex;
  }
}

/* ══════════════════════════════════════════
   MENU TOGGLE — Text button (MENU/CLOSE)
   ══════════════════════════════════════════ */
.menu-toggle {
  position: relative;
  z-index: calc(var(--z-menu) + 1);
  background: none;
  border: none !important;
  padding: 4px 0;
  cursor: pointer;
  font-family: var(--font-body);
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--text-secondary);
  transition: color .3s;
  overflow-x: visible;
  overflow-y: clip;
  height: 1.3em;
}
.menu-toggle:hover { color: var(--accent); }
.menu-toggle__text {
  display: block;
  transition: transform .7s cubic-bezier(.22, 1, .36, 1), opacity .5s;
}
.menu-toggle__text--close {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  transform: translateY(100%);
  opacity: 0;
}
/* When menu is open: show CLOSE, hide MENU */
.header.menu-open .menu-toggle__text--menu {
  transform: translateY(-100%);
  opacity: 0;
}
.header.menu-open .menu-toggle__text--close {
  transform: translateY(0);
  opacity: 1;
}
.header.menu-open .menu-toggle {
  color: var(--accent);
}
[data-theme="dark"] .menu-toggle { color: rgba(255,255,255,.85); }
[data-theme="dark"] .menu-toggle:hover { color: var(--accent); }

/* ══════════════════════════════════════════
   MOBILE MENU — Top-Down Reveal
   ══════════════════════════════════════════ */
.mobile-menu {
  position: fixed;
  inset: 0;
  z-index: var(--z-menu);
  display: flex;
  flex-direction: column;
  pointer-events: none;
  overflow: hidden;
  visibility: hidden;
  background: rgba(250, 248, 246, 0.92);
  backdrop-filter: blur(40px) saturate(1.8);
  -webkit-backdrop-filter: blur(40px) saturate(1.8);
  will-change: transform;
}
.mobile-menu.open {
  pointer-events: auto;
  visibility: visible;
}

/* Animated gradient blob */
.mobile-menu__blob {
  position: absolute;
  width: 500px;
  height: 500px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(242,113,130,.15) 0%, rgba(201,169,110,.08) 50%, transparent 70%);
  top: -100px;
  right: -100px;
  pointer-events: none;
  filter: blur(60px);
  animation: menuBlobFloat 8s ease-in-out infinite alternate;
}
@keyframes menuBlobFloat {
  0% { transform: translate(0, 0) scale(1); }
  100% { transform: translate(-80px, 120px) scale(1.3); }
}

/* Close button + JS X button hidden — hamburger morphs via CSS */
.mobile-menu__close { display: none; }
.mobile-menu__x { display: none; }

/* When menu open: header fully transparent */
.header.menu-open {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: none !important;
}
.header.menu-open .header__left,
.header.menu-open .header__center,
.header.menu-open .header__utils,
.header.menu-open .header__book {
  opacity: 0;
  pointer-events: none;
}
/* Hamburger lines removed — using MENU/CLOSE text toggle */
.mobile-menu__close:hover {
  color: var(--accent);
  transform: rotate(90deg);
}

.mobile-menu__content {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  flex: 1;
  padding: calc(var(--nav-height) + 16px) clamp(32px, 8vw, 120px) 40px;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  position: relative;
  z-index: 1;
  scrollbar-width: none;
}
.mobile-menu__content::-webkit-scrollbar { display: none; }

.mobile-menu__nav {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.mobile-menu__item {
  border-bottom: 1px solid var(--border, rgba(0,0,0,.08));
  padding: 16px 0;
  overflow: hidden;
}
.mobile-menu__item:first-child {
  border-top: none;
}

/* Menu Links — Eros Display, large, white text on dark bg */
.mobile-menu__link {
  display: block;
  font-family: var(--font-display);
  font-size: clamp(4rem, 10vw, 7rem);
  font-weight: 400;
  color: var(--text-primary);
  letter-spacing: -.01em;
  line-height: 1;
  padding: 0;
  overflow: hidden;
  transition: color .3s;
}
.mobile-menu__link-text {
  display: block;
  font-family: inherit !important;
}
.mobile-menu__num-text {
  font-family: inherit !important;
}
.mobile-menu__link:hover {
  color: var(--accent);
}
.mobile-menu__link.active {
  color: var(--accent);
}

/* Number labels */
.mobile-menu__num {
  font-family: var(--font-body);
  font-size: .7rem;
  font-weight: 500;
  color: var(--text-muted);
  letter-spacing: .08em;
  display: block;
  overflow: hidden;
}
.mobile-menu__num-text {
  display: block;
}

/* Submenus — glass pills */
.mobile-menu__sub {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 8px;
  padding: 0;
  height: 0;
  opacity: 0;
  overflow: hidden;
}
.mobile-menu__sub::before,
.mobile-menu__sub::after {
  content: '';
  width: 100%;
  flex-shrink: 0;
}
.mobile-menu__sub::before { height: 4px; }
.mobile-menu__sub::after  { height: 8px; }
.mobile-menu__sublink {
  font-family: var(--font-body);
  font-size: .8rem;
  font-weight: 400;
  color: var(--text-muted);
  letter-spacing: .02em;
  padding: 4px 12px;
  border-radius: var(--radius-full, 999px);
  background: rgba(0,0,0,.03);
  transition: color .2s, background .2s;
}
.mobile-menu__sublink:hover {
  color: var(--accent);
  background: rgba(242,113,130,.06);
}
.mobile-menu__sublink.active {
  color: #fff;
  background: var(--accent);
}

/* Booking CTA — separated block */
.mobile-menu__cta {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 28px;
  opacity: 0;
  transform: translateY(20px);
}
.mobile-menu__cta-avail {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-body);
  font-size: .75rem;
  color: var(--text-muted);
}

/* Social proof line */
.mobile-menu__proof {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-body);
  font-size: .75rem;
  color: var(--text-muted);
  letter-spacing: .02em;
  margin-top: 16px;
  opacity: 0;
  transform: translateY(10px);
}
.mobile-menu__proof-stars {
  color: #f5b731;
  letter-spacing: 1px;
}
.mobile-menu__proof-sep {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: var(--text-muted);
  opacity: .4;
}

/* Footer */
.mobile-menu__footer {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-top: auto;
  padding-top: 24px;
  opacity: 0;
  transform: translateY(20px);
}
.mobile-menu__info {
  color: var(--text-muted);
  font-size: .85rem;
  line-height: 1.6;
}
.mobile-menu__info p,
.mobile-menu__info a,
.mobile-menu__info div,
.mobile-menu__info [data-availability],
.mobile-menu__info [data-availability] div,
.mobile-menu__info [data-availability] span:not(.status-dot) {
  color: var(--text-muted) !important;
  font-size: .85rem !important;
  margin: 0 !important;
  transition: color .3s;
}
.mobile-menu__info a:hover { color: var(--accent); }
.mobile-menu__socials a {
  font-size: .85rem;
  color: var(--text-secondary);
  transition: color .3s;
}
.mobile-menu__socials a:hover { color: var(--accent); }

/* ----- HERO (Fashion Editorial — Text Only) ----- */
.hero {
  min-height: min(100svh, 900px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: calc(var(--nav-height) + 24px) clamp(24px, 4vw, 48px) clamp(32px, 4vh, 60px);
  position: relative;
  overflow: visible;
  background: var(--bg-secondary);
}

/* Subpage hero (service pages, smaller) */
.hero--sub {
  min-height: min(70svh, 600px);
}

.hero__headline--sub {
  font-family: var(--font-display);
  font-size: clamp(3.5rem, 12vw, 9rem);
  letter-spacing: -0.02em;
  line-height: 0.95;
  color: var(--text-primary);
  margin-bottom: var(--space-md, 24px);
}

.hero__bg-text {
  display: none;
}

.hero__content {
  max-width: 1440px;
  margin: 0 auto;
  width: 100%;
  padding: 0;
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1;
}

.hero__headline {
  margin-bottom: clamp(32px, 4vh, 56px);
}

.hero__line {
  display: block;
  font-family: var(--font-display);
  letter-spacing: -0.03em;
  line-height: .82;
  color: var(--text-primary);
  margin-bottom: .05em;
  overflow: hidden;
}
h1.hero__line {
  margin: 0;
  padding: 0;
  font-size: inherit;
  font-weight: inherit;
}

.hero__line span {
  display: block;
  transform: translateY(0);
  opacity: 1;
  visibility: visible;
  transition: transform 1.4s var(--ease-out-expo), opacity 1s ease;
}

/* CSS-only fallback: text visible, subtle slide-up */
.hero__line:not(.visible) span {
  transform: translateY(10%);
  opacity: 0.85;
}

.hero__line.visible span {
  transform: translateY(0);
  opacity: 1;
}

/* GSAP fallback: hero elements visible if JS fails */
#heroImage,
#heroBottom {
  opacity: 1;
  visibility: visible;
}

/* GSAP hero: content is ALWAYS visible by default.
   GSAP enhances with animation but never gates content visibility.
   Removed opacity:0 rules that caused invisible pages when GSAP stalled. */

.hero__line--1 {
  font-weight: 700;
  font-size: clamp(4.5rem, 14vw, 14rem);
  text-align: center;
  line-height: 0.9;
}

.hero__line--2 {
  font-weight: 700;
  font-size: clamp(4.5rem, 14vw, 14rem);
  color: var(--accent);
  text-align: center;
  line-height: 0.85;
}

.hero__line--3 {
  font-weight: 700;
  font-size: clamp(4.5rem, 14vw, 14rem);
  color: var(--accent);
  text-align: center;
  line-height: 0.85;
}

/* Hero name input placeholder — same color as text */
#hero-name-field::placeholder {
  color: var(--text-primary);
  opacity: 0.35;
}
#hero-name-field:focus::placeholder {
  opacity: 0;
}

/* Hero image: grows and overlaps text on scroll */
.hero__image {
  position: relative;
  z-index: 2;
  will-change: transform;
  margin-top: clamp(16px, 3vw, 32px);
}
.hero__image img {
  border-radius: 16px;
}
[data-theme="dark"] .hero__image img {
  border: none !important;
  box-shadow: none !important;
}

.hero__bottom {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(16px, 2vw, 24px);
  margin-top: clamp(32px, 4vw, 56px);
}

/* CTA row — two large buttons side-by-side */
.hero__cta-row {
  display: flex;
  gap: clamp(12px, 2vw, 20px);
  flex-wrap: wrap;
  justify-content: center;
}

/* Hero CTAs — DS-aligned */
.hero__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-body);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-decoration: none;
  padding: 16px 40px;
  border-radius: var(--radius-full);
  cursor: pointer;
  transition: all 0.3s var(--ease-out-expo);
}

.hero__cta--filled {
  background: var(--accent);
  color: var(--text-inverse);
  border: none;
}
.hero__cta--filled:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-lg);
}

.hero__cta--outline {
  background: transparent;
  color: var(--text-primary);
  border: 1.5px solid var(--border-strong);
}
.hero__cta--outline:hover {
  border-color: var(--accent);
  color: var(--accent);
  transform: translateY(-2px);
}

/* Social proof badge */
.hero__badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: clamp(10px, 1.5vw, 14px) clamp(20px, 3vw, 32px);
  border-radius: var(--radius-full);
  background: var(--overlay-light);
  border: 1px solid var(--bg-tertiary);
  text-decoration: none;
  transition: all .35s ease;
}

.hero__badge:hover {
  background: var(--border);
  border-color: var(--text-muted);
}

.hero__badge-stars {
  color: var(--color-star);
  font-size: clamp(.9rem, 1.2vw, 1.1rem);
  letter-spacing: 2px;
}

.hero__badge-text {
  font-family: var(--font-body);
  font-size: clamp(.8rem, 1vw, .95rem);
  font-weight: 400;
  color: var(--text-secondary);
  letter-spacing: .03em;
}

/* Service pages hero variant */
.hero--service {
  min-height: 60vh;
  background: var(--text-primary);
  color: var(--text-inverse);
}

.hero--service .hero__line {
  color: var(--text-inverse);
}

/* ----- SOCIAL PROOF BAR ----- */
.proof-bar {
  background: var(--bg-secondary);
  padding: var(--space-md) 0;
  border-bottom: 1px solid var(--bg-tertiary);
}

.proof-bar__inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: var(--space-md) var(--space-lg);
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--space-md);
}

.proof-bar__item {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--text-secondary);
  white-space: nowrap;
}

.proof-bar__stars {
  color: var(--color-star);
  letter-spacing: 2px;
}

/* ----- MARQUEE ----- */
.marquee {
  overflow: hidden;
  white-space: nowrap;
  padding: var(--space-md) 0;
  border: none;
}

.marquee--coral {
  background: var(--accent);
  border-color: var(--accent);
}

.marquee--coral .marquee__text {
  color: var(--text-inverse);
}

.marquee--dark {
  background: var(--text-primary);
  border-color: var(--text-primary);
}

.marquee--dark .marquee__text {
  color: var(--text-inverse);
}

.marquee__inner {
  display: inline-flex;
  animation: marquee-scroll 35s linear infinite;
  will-change: transform;
  contain: layout style;
}

.marquee__text {
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 4vw, 3.5rem);
  font-weight: 300;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-secondary);
  flex-shrink: 0;
  padding: 0 var(--space-xs);
}

.marquee--reverse .marquee__inner {
  animation-direction: reverse;
}

@keyframes marquee-scroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* ----- SECTION LABEL ----- */
.section-label {
  display: inline-block;
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: var(--space-lg);
}

.section-intro {
  font-size: clamp(1rem, 1.3vw, 1.125rem);
  font-weight: 300;
  color: var(--text-secondary);
  max-width: 600px;
  margin: var(--space-sm) auto 0;
  line-height: 1.7;
}

/* ----- PAGE HERO (subpage hero sections) ----- */
.page-hero {
  position: relative;
  padding: calc(var(--nav-height) + 80px) var(--space-md) var(--space-xl);
  text-align: center;
  background: var(--bg-secondary);
}

.page-hero h1 {
  font-family: var(--font-display);
  font-size: clamp(3.5rem, 10vw, 8rem);
  font-weight: 700;
  line-height: 0.9;
  letter-spacing: -0.03em;
  color: var(--text-primary);
  max-width: var(--max-width);
  margin: 0 auto;
}

.page-hero h1 em {
  color: var(--accent);
  font-style: normal;
}

.page-hero .page-hero__sub {
  font-size: clamp(1rem, 2vw, 1.25rem);
  font-weight: 300;
  color: var(--text-secondary);
  margin-top: var(--space-md);
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.7;
}

/* ----- PAGE HERO — TEXT VARIANT (larger, statement hero) ----- */
.page-hero--text {
  position: relative;
  padding: calc(var(--nav-height) + 100px) var(--space-md) var(--space-xl);
  text-align: center;
  background: var(--bg-secondary);
}

.page-hero--text h1 {
  font-family: var(--font-display);
  font-size: clamp(4.5rem, 14vw, 12rem);
  font-weight: 700;
  line-height: 0.85;
  text-transform: none;
  letter-spacing: -0.03em;
  color: var(--text-primary);
  max-width: var(--max-width);
  margin: 0 auto;
}

.page-hero--text h1 em {
  color: var(--accent);
  font-style: normal;
}

.page-hero--text .page-hero__sub {
  font-size: clamp(1rem, 2vw, 1.25rem);
  font-weight: 300;
  color: var(--text-secondary);
  margin-top: var(--space-md);
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.7;
}

/* ----- TEXT CONTENT (Legal, Datenschutz, AGB, Impressum) ----- */
.text-content {
  max-width: 720px;
}
.text-content h2 {
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  font-weight: 400;
  color: var(--text-primary);
  margin: 56px 0 20px;
  line-height: 1.15;
}
.text-content h2:first-child { margin-top: 0; }
.text-content h3 {
  font-family: var(--font-body);
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--text-primary);
  margin: 36px 0 12px;
  line-height: 1.3;
}
.text-content p {
  font-size: .95rem;
  line-height: 1.75;
  color: var(--text-secondary);
  margin-bottom: 16px;
}
.text-content ul,
.text-content ol {
  padding-left: 24px;
  margin-bottom: 16px;
}
.text-content li {
  font-size: .95rem;
  line-height: 1.75;
  color: var(--text-secondary);
  margin-bottom: 6px;
}
.text-content a {
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color .2s;
}
.text-content a:hover { color: var(--color-primary-dark, #d94f60); }
.text-content strong { font-weight: 600; color: var(--text-primary); }
.text-content hr {
  border: none;
  border-top: 1px solid var(--border, #e8e5e3);
  margin: 40px 0;
}
.text-content .cookie-settings-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  padding: 10px 20px;
  background: var(--bg-secondary);
  border: 1px solid var(--border, #e8e5e3);
  border-radius: 8px;
  font-size: .875rem;
  color: var(--text-secondary);
  cursor: pointer;
  transition: all .2s;
}
.text-content .cookie-settings-btn:hover {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}

/* ----- DSAR FORM (Datenschutz Auskunftsanfrage) ----- */
.dsar-form-wrap {
  margin-top: 24px;
  padding: 32px;
  background: var(--bg-secondary);
  border-radius: 16px;
  border: 1px solid var(--border, #e8e5e3);
}
.dsar-form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
@media (max-width: 600px) {
  .dsar-form__row { grid-template-columns: 1fr; }
}
.dsar-form__field {
  margin-bottom: 16px;
}
.dsar-form__field label {
  display: block;
  font-size: .8rem;
  font-weight: 500;
  color: var(--text-secondary);
  margin-bottom: 6px;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.dsar-form__field input,
.dsar-form__field select,
.dsar-form__field textarea {
  width: 100%;
  padding: 10px 14px;
  border: 1px solid var(--border, #e8e5e3);
  border-radius: 8px;
  font-family: var(--font-body);
  font-size: .9rem;
  background: var(--bg-primary);
  color: var(--text-primary);
  transition: border-color .2s;
}
.dsar-form__field input:focus,
.dsar-form__field select:focus,
.dsar-form__field textarea:focus {
  outline: none;
  border-color: var(--accent);
}
.dsar-form__field input[type="file"] {
  padding: 8px;
  font-size: .82rem;
}

/* ----- EDITORIAL SECTION ----- */
.editorial {
  background: var(--bg-primary);
  position: relative;
  overflow: hidden;
}

.editorial__bg-text {
  position: absolute;
  top: 50%;
  right: -5%;
  transform: translateY(-50%);
  font-family: var(--font-display);
  font-size: clamp(12rem, 30vw, 40rem);
  font-weight: 700;
  color: var(--text-primary);
  opacity: 0.025;
  pointer-events: none;
  white-space: nowrap;
  line-height: 1;
  user-select: none;
}

.editorial__grid {
  display: grid;
  gap: var(--space-xl);
  align-items: center;
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 clamp(24px, 4vw, 48px);
  position: relative;
  z-index: 1;
}

@media (min-width: 768px) {
  .editorial__grid {
    grid-template-columns: 1.1fr 0.9fr;
    gap: var(--space-2xl);
  }
}

@media (min-width: 1024px) {
  .editorial__media {
    margin-left: -5%;
  }
}

.editorial__media {
  overflow: hidden;
  aspect-ratio: 4/5;
  border-radius: 0;
}

.editorial__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.8s var(--ease-out-expo);
}

.editorial__media:hover img {
  transform: scale(1.03);
}

.editorial__headline {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3.5rem);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.1;
  color: var(--text-primary);
  margin-bottom: var(--space-lg);
}

.editorial__headline em {
  font-style: normal;
  color: var(--accent);
}

h2 em {
  font-style: normal;
  color: var(--accent);
}

.editorial__content p {
  color: var(--text-secondary);
  font-size: 1.0625rem;
  line-height: 1.7;
  margin-bottom: var(--space-sm);
}

.editorial__link {
  display: inline-block;
  font-size: .875rem;
  font-weight: 500;
  letter-spacing: .03em;
  color: var(--text-primary);
  padding-bottom: 2px;
  border-bottom: 1.5px solid var(--text-primary);
  margin-top: var(--space-sm);
  transition: color var(--transition-base), border-color var(--transition-base);
}

.editorial__link:hover {
  color: var(--accent);
  border-color: var(--accent);
}

/* ----- PHILOSOPHY SECTION (legacy) ----- */
.philosophy {
  background: var(--bg-primary);
}

.philosophy__grid {
  display: grid;
  gap: var(--space-lg);
  align-items: center;
}

@media (min-width: 768px) {
  .philosophy__grid {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-xl);
  }
}

.philosophy__statement {
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 4vw, 3rem);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  line-height: 1.15;
  color: var(--text-primary);
  margin-bottom: var(--space-md);
}

.philosophy__text {
  color: var(--text-secondary);
  font-size: 1.0625rem;
  line-height: 1.7;
}

.philosophy__img {
  border-radius: var(--radius-md);
  overflow: hidden;
  aspect-ratio: 4/5;
}

.philosophy__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ----- SERVICES / BENTO GRID ----- */
.services {
  background: var(--bg-secondary);
}

.services__header {
  text-align: center;
  margin-bottom: var(--space-xl);
}

.services__header p {
  margin: var(--space-sm) auto 0;
  max-width: 500px;
}

.bento-grid {
  display: grid;
  gap: var(--space-sm);
  grid-template-columns: 1fr;
}

@media (min-width: 640px) {
  .bento-grid {
    grid-template-columns: 1fr 1fr;
  }

  .bento-grid__item--large {
    grid-column: 1 / -1;
  }

  .bento-grid__item--wide {
    grid-column: 1 / -1;
  }
}

@media (min-width: 1024px) {
  .bento-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .bento-grid__item--large {
    grid-column: span 2;
    grid-row: span 2;
  }

  .bento-grid__item--wide {
    grid-column: span 2;
  }
}

/* Service Card */
.service-card {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-md);
  background: var(--bg-tertiary);
  cursor: pointer;
  transition: transform 0.4s var(--ease-out-expo);
  aspect-ratio: 4/5;
}

.service-card:hover {
  transform: translateY(-4px);
}

.service-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s var(--ease-out-expo);
}

.service-card:hover .service-card__img {
  transform: scale(1.05);
}

.service-card__content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: var(--space-md);
  background: linear-gradient(transparent, var(--overlay-medium));
  color: var(--text-inverse);
}

.service-card__name {
  font-family: var(--font-body);
  font-size: clamp(1.2rem, 2.5vw, 1.75rem);
  font-weight: 500;
  letter-spacing: 0;
  margin-bottom: 4px;
}

.service-card__tag {
  display: inline-block;
  font-size: .7rem;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 8px;
}

.service-card__price {
  display: block;
  font-size: .8125rem;
  font-weight: 400;
  opacity: .8;
  margin-top: 4px;
}

.service-card__desc {
  font-size: 0.875rem;
  opacity: 0.9;
  font-weight: 300;
}

.service-card__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.8125rem;
  font-weight: 500;
  margin-top: var(--space-xs);
  opacity: 0;
  transform: translateY(8px);
  transition: all 0.3s var(--ease-out-expo);
}

.service-card:hover .service-card__link {
  opacity: 1;
  transform: translateY(0);
}

/* ----- PARALLAX SECTION ----- */
.parallax-section {
  position: relative;
  min-height: 70vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: var(--space-2xl) var(--space-md);
  overflow: hidden;
}

.parallax-section__bg {
  position: absolute;
  inset: 0;
  z-index: -1;
}

.parallax-section__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  will-change: transform;
}

.parallax-section__bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--overlay-medium);
}

@media (min-width: 1024px) and (prefers-reduced-motion: no-preference) {
  .parallax-section__bg img {
    position: absolute;
    top: -10%;
    height: 120%;
    will-change: transform;
  }
}

.parallax-section__text {
  font-family: var(--font-display);
  font-weight: 300;
  font-size: clamp(2.5rem, 8vw, 7rem);
  color: var(--text-inverse);
  text-transform: none;
  letter-spacing: 0.01em;
  line-height: 1.05;
  text-shadow: var(--shadow-text);
  max-width: 900px;
}

.parallax-section__cta {
  margin-top: var(--space-lg);
  text-align: center;
}

.parallax-section__scarcity {
  display: block;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--inverted-text);
  margin-bottom: var(--space-sm);
  letter-spacing: .05em;
}

.parallax-section__scarcity:empty { display: none; }

/* ----- TEAM SECTION ----- */
.team-section {
  background: var(--bg-primary);
}

.team-section__header {
  text-align: center;
  margin-bottom: var(--space-xl);
}

.team-grid {
  display: grid;
  gap: var(--space-lg);
  grid-template-columns: 1fr;
}

@media (min-width: 640px) {
  .team-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .team-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.team-card {
  text-align: center;
  background: var(--bg-primary);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--space-lg);
  padding-top: 0;
  overflow: hidden;
  transition: transform 0.5s var(--ease-out-expo), box-shadow 0.4s ease, border-color 0.3s;
}
.team-card:hover {
  transform: translateY(-4px);
  border-color: var(--accent);
  box-shadow: var(--shadow-md);
}

.team-card__photo {
  aspect-ratio: 3/4;
  border-radius: var(--radius-md, 16px);
  overflow: hidden;
  margin: 0 calc(var(--space-lg) * -1);
  margin-bottom: var(--space-md);
  transition: box-shadow 0.4s ease;
}

.team-card:hover .team-card__photo {
  box-shadow: var(--shadow-lg);
}

.team-card__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s var(--ease-out-expo);
}

.team-card:hover .team-card__photo img {
  transform: scale(1.04);
}

.team-card__name {
  font-family: var(--font-body);
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: 0;
  margin-bottom: 4px;
}

.team-card__role {
  font-size: 0.875rem;
  color: var(--accent);
  font-weight: 500;
  margin-bottom: var(--space-xs);
}

.team-card__bio {
  font-size: 0.9375rem;
  color: var(--text-secondary);
  margin-bottom: var(--space-sm);
}

/* ── Tag / Specialties ── */
.team-card__specialties {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-xs);
  margin-bottom: var(--space-md);
}

.tag {
  display: inline-block;
  font-family: var(--font-body);
  font-size: var(--fs-xs);
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--text-secondary);
  background: var(--bg-tertiary);
  padding: 4px 12px;
  border-radius: var(--radius-full);
  transition: background 0.2s, color 0.2s;
}
.tag:hover {
  background: var(--accent);
  color: var(--text-inverse);
}

/* ----- REVIEWS SECTION ----- */
.reviews {
  background: var(--bg-secondary);
}

.reviews__header {
  text-align: center;
  margin-bottom: var(--space-xl);
}

.reviews__rating {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-xs);
  margin-bottom: var(--space-sm);
}

.reviews__stars {
  font-size: 1.5rem;
  color: var(--color-star);
}

.reviews__score {
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 400;
}

.reviews__slider {
  display: grid;
  gap: var(--space-md);
  grid-template-columns: 1fr;
}

@media (min-width: 768px) {
  .reviews__slider {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Reviews Carousel — Horizontal Scroll */
.reviews__carousel {
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding: 0 clamp(24px, 4vw, 48px);
}

.reviews__carousel::-webkit-scrollbar { display: none; }

.reviews__track {
  display: flex;
  gap: 24px;
  padding-bottom: 8px;
}

.review-card {
  flex: 0 0 min(380px, 85vw);
  scroll-snap-align: start;
  background: var(--bg-primary);
  padding: var(--space-lg);
  border-radius: var(--radius-md);
  border: 1px solid var(--bg-tertiary);
}

.review-card__stars {
  color: var(--color-star);
  margin-bottom: var(--space-sm);
  letter-spacing: 2px;
}

.review-card__text {
  font-size: 1rem;
  line-height: 1.7;
  margin-bottom: var(--space-md);
  font-style: italic;
}

.review-card__author {
  font-weight: 500;
  font-size: 0.875rem;
}

.review-card__source {
  font-size: 0.8125rem;
  color: var(--text-muted);
}

/* ----- LOCATION SECTION ----- */
.location {
  background: var(--bg-primary);
}

.location__grid {
  display: grid;
  gap: var(--space-lg);
}

@media (min-width: 768px) {
  .location__grid {
    grid-template-columns: 1fr 1fr;
  }
}

.location__map {
  border-radius: var(--radius-md);
  overflow: hidden;
  aspect-ratio: 16/10;
  background: var(--bg-tertiary);
}

.location__map iframe {
  width: 100%;
  height: 100%;
  border: none;
}

.location__info h3 {
  margin-bottom: var(--space-md);
}

.location__detail {
  display: flex;
  gap: var(--space-sm);
  margin-bottom: var(--space-sm);
  font-size: 0.9375rem;
}

.location__detail-icon {
  flex-shrink: 0;
  width: 20px;
  text-align: center;
  color: var(--accent);
}

/* final-cta replaced by cta-final and cta-band */

/* ============================================================
   FOOTER
   ============================================================ */

/* Last section with rounded bottom corners for "card" effect */
main > section:last-child,
#main-content > section:last-child,
#main > section:last-child {
  border-bottom-left-radius: var(--radius-xl);
  border-bottom-right-radius: var(--radius-xl);
  overflow: hidden;
  background: var(--bg-primary); /* Ensure solid bg for reveal effect */
}

/* Sections with own background (cta-final etc.) keep theirs */
main > section:last-child[class*="cta-final"],
main > section:last-child[class*="cta-band"] {
  background: var(--accent);
}

/* ----- FOOTER — overlaps CTA with rounded top corners ----- */
.footer {
  position: relative;
  z-index: 101;
  background: rgba(14, 12, 11, .85);
  -webkit-backdrop-filter: blur(40px) saturate(1.8);
  backdrop-filter: blur(40px) saturate(1.8);
  border-radius: 48px 48px 0 0;
  color: rgba(255,255,255,.7);
  padding: clamp(60px, 10vw, 100px) 0 0;
  overflow: hidden;
}

.footer__grid {
  display: grid;
  gap: clamp(40px, 6vw, 64px);
  max-width: var(--max-width, 1200px);
  margin: 0 auto;
  padding: 0 clamp(24px, 4vw, 48px);
}
@media (min-width: 768px) {
  .footer__grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

.footer__heading {
  font-family: var(--font-body);
  font-size: .85rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .15em;
  color: rgba(255,255,255,.3);
  margin-bottom: 28px;
}

.footer__col a,
.footer__col p {
  display: block;
  font-size: .95rem;
  line-height: 1.6;
  color: rgba(255,255,255,.5);
  margin-bottom: 8px;
  transition: color .3s;
  text-decoration: none !important;
}
.footer__col a:hover { color: var(--accent); }
.footer__col a:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
  border-radius: 4px;
}
.footer__phone { margin-top: 16px; margin-bottom: 0 !important; }
.footer__phone a { margin-bottom: 0 !important; }
.footer__availability {
  margin: 0 !important;
  padding: 0 !important;
}
.footer__availability,
.footer__availability *,
.footer__availability div,
.footer__availability span:not(.status-dot) {
  color: rgba(255,255,255,.5) !important;
  font-size: .95rem !important;
  line-height: 1.5 !important;
  margin: 0 !important;
  padding: 0 !important;
}
.footer__availability { margin-top: 4px; }

/* Hours rows (from contact-data.php) */
.footer__hours-row {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 2px 0;
  font-size: .95rem;
  color: rgba(255,255,255,.5);
}
.footer__hours-note {
  font-size: .85rem;
  color: rgba(255,255,255,.3);
  line-height: 1.5;
  margin-bottom: 12px;
}

.footer__bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 20px clamp(24px, 4vw, 48px) 24px;
  max-width: var(--max-width, 1200px);
  margin: clamp(48px, 8vw, 80px) auto 0;
  border-top: 1px solid rgba(255,255,255,.06);
  font-size: .85rem;
  color: rgba(255,255,255,.25);
}

.footer__legal {
  display: flex;
  gap: var(--space-md);
}
.footer__legal a {
  color: rgba(255,255,255,.25);
  transition: color .3s;
  text-decoration: none;
}
.footer__legal a:hover { color: var(--accent); }

.footer__actions {
  display: flex;
  gap: 10px;
  margin-top: 20px;
  flex-wrap: wrap;
}

.footer__social {
  display: flex;
  gap: var(--space-sm);
}
.footer__social--mt { margin-top: var(--space-md); }

.footer__social a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.1);
  color: rgba(255,255,255,.4);
  transition: all .3s;
  text-decoration: none;
}
.footer__social a:hover {
  border-color: var(--accent);
  color: var(--accent);
}

/* Back to top */
.back-to-top {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: var(--radius-full, 999px);
  border: 1px solid var(--inverted-border-strong);
  color: var(--text-inverse);
  margin: var(--space-md) auto;
  transition: all var(--transition-base);
}
.back-to-top:hover {
  background: var(--accent);
  border-color: var(--accent);
  transform: translateY(-2px);
}

/* ----- LIVE SOCIAL PROOF FLOAT ----- */
.social-proof-float {
  position: fixed;
  bottom: 24px;
  left: clamp(24px, 4vw, 48px);
  z-index: 50;
  display: none;
  flex-direction: row;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 18px;
  font-family: var(--font-body);
  font-size: .75rem;
  color: var(--text-secondary);
  background: rgba(255,255,255,.85);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg, 14px);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: var(--shadow-sm);
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .6s ease, transform .6s ease;
}
.social-proof-float .status-dot {
  margin-top: 3px;
}
.social-proof-float__content {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.social-proof-float__line {
  display: block;
  line-height: 1.4;
}
.social-proof-float__line:first-child {
  font-weight: 600;
  color: var(--text-primary);
}
.blur-name {
  filter: blur(4px);
  user-select: none;
  pointer-events: none;
}
.social-proof-float.visible {
  opacity: 1;
  transform: translateY(0);
}
@media (min-width: 1024px) {
  .social-proof-float { display: flex; }
}
.social-proof-float__sep {
  color: var(--text-muted);
  opacity: .4;
}
[data-theme="dark"] .social-proof-float {
  background: rgba(12, 10, 9, .75);
  border-color: var(--border);
  color: var(--text-secondary);
}

/* ----- STICKY MOBILE BOOKING BAR ----- */
.booking-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  height: 56px;
  background: var(--text-primary);
  color: var(--text-inverse);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-xs);
  font-family: var(--font-body);
  font-size: 0.9375rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  z-index: var(--z-bar);
  box-shadow: var(--shadow-md);
  transform: translateY(100%);
  transition: transform 0.4s var(--ease-out-expo);
}

.booking-bar.visible {
  transform: translateY(0);
}

@media (min-width: 768px) {
  .booking-bar {
    display: none;
  }
}

body.has-booking-bar {
  padding-bottom: 56px;
}

@media (min-width: 768px) {
  body.has-booking-bar {
    padding-bottom: 0;
  }
}

/* ----- SCROLL REVEAL ANIMATIONS ----- */
/* Single source of truth → design-system.css */

/* ----- EROS DESIGN ELEMENTS ----- */
.eros-statement {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(4rem, 15vw, 18rem);
  text-transform: uppercase;
  letter-spacing: 0.02em;
  line-height: 0.9;
  color: var(--bg-tertiary);
  text-align: center;
  user-select: none;
  overflow: hidden;
  white-space: nowrap;
}

.eros-number {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(5rem, 20vw, 24rem);
  line-height: 0.85;
  color: var(--accent);
  opacity: 0.12;
}

.eros-number--sm {
  font-size: clamp(3rem, 8vw, 5rem);
  line-height: 1;
  flex-shrink: 0;
  opacity: 0.15;
}

/* ----- PRICING CARDS ----- */
.pricing-grid {
  display: grid;
  gap: var(--space-md);
  grid-template-columns: 1fr;
}

@media (min-width: 640px) {
  .pricing-grid {
    grid-template-columns: repeat(2, 1fr);
    align-items: start;
  }
}
@media (min-width: 1024px) {
  .pricing-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.pricing-card {
  background: var(--bg-primary);
  border-radius: var(--radius-md);
  padding: var(--space-lg);
  border: 1.5px solid var(--bg-tertiary);
  transition: all var(--transition-base);
  position: relative;
}

.pricing-card--featured {
  border-color: var(--accent);
  transform: scale(1.03);
  box-shadow: var(--shadow-lg);
}

.pricing-card__badge {
  position: absolute;
  top: -14px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--accent);
  color: var(--text-inverse);
  font-size: 0.75rem;
  font-weight: 600;
  padding: 6px 16px;
  border-radius: var(--radius-full);
  white-space: nowrap;
  letter-spacing: 0.03em;
}

.pricing-card__name {
  font-family: var(--font-body);
  font-size: 1.0625rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  margin-bottom: var(--space-xs);
}

.pricing-card__tier {
  font-size: 0.8125rem;
  color: var(--text-muted);
  margin-bottom: var(--space-sm);
}

.pricing-card__features {
  margin-bottom: var(--space-lg);
}

.pricing-card__feature {
  display: flex;
  align-items: flex-start;
  gap: var(--space-xs);
  font-size: 0.9375rem;
  padding: 6px 0;
  border-bottom: 1px solid var(--bg-tertiary);
}

.pricing-card__feature:last-child {
  border-bottom: none;
}

.pricing-card__check {
  color: var(--accent);
  flex-shrink: 0;
  margin-top: 2px;
}

.pricing-card__price {
  font-family: var(--font-body);
  font-size: 1.5rem;
  font-weight: 300;
  color: var(--text-primary);
  margin-bottom: var(--space-sm);
}
.pricing-card__price strong {
  font-weight: 600;
}

.pricing-card__price span {
  font-size: 0.875rem;
  font-weight: 300;
  font-family: var(--font-body);
  color: var(--text-muted);
}

/* ----- LEISTUNGEN SECTION ----- */
.leistungen-section__header { text-align: center; margin-bottom: var(--space-xl); }
.leistungen-section__header h2 { font-family: var(--font-display); font-size: clamp(1.75rem, 4vw, 2.5rem); }
/* Accordion — matches services-list__items 1:1 */
.leistungen-accordion { max-width: var(--max-width); margin: 0 auto; }
.leistungen-accordion__item {}
.leistungen-accordion__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  padding: clamp(20px, 3vw, 28px) 0;
  border-top: none;
  border-bottom: 1px solid var(--text-muted);
  background: none;
  border-left: none;
  border-right: none;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
  color: inherit;
  transition: color .3s;
}
.leistungen-accordion__trigger:hover { color: var(--accent); }
.leistungen-section__cat-name {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(1.75rem, 5vw, 3rem);
  line-height: 1.05;
  flex: 1;
  min-width: 0;
  color: inherit;
}
.leistungen-section__cat-btn {
  font-size: 1.5rem;
  width: 48px;
  height: 48px;
  border: 1px solid var(--text-muted);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all .3s;
  background: none;
  color: inherit;
}
.leistungen-accordion__trigger:hover .leistungen-section__cat-btn {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--text-inverse);
}
.leistungen-accordion__trigger[aria-expanded="true"] .leistungen-section__cat-btn {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--text-inverse);
  transform: rotate(45deg);
}
.leistungen-accordion__panel {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease;
}
.leistungen-accordion__panel[aria-hidden="false"] {
  max-height: 3000px;
}
@media (max-width: 768px) {
  .leistungen-section__cat-name { font-size: clamp(1.25rem, 5vw, 1.75rem); }
}

.pricing-card__desc {
  font-size: 0.875rem;
  color: var(--text-secondary);
  line-height: 1.6;
  margin-bottom: var(--space-md);
}

/* List layout */
.leistungen-section { overflow: hidden; }
.leistungen-list { margin-bottom: 0; padding: 8px 0 var(--space-sm); }
.leistungen-list__item { padding-bottom: 10px; }
.leistungen-list__item--border { border-top: 1px solid var(--text-muted); padding-top: 10px; }
.leistungen-list__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-md);
  padding: 12px 0 0;
}
.leistungen-list__row:last-child { border-bottom: none; }
.leistungen-list__left {
  display: flex;
  align-items: baseline;
  gap: var(--space-xs);
  flex: 1;
  min-width: 0;
}
.leistungen-list__name {
  font-size: 0.9375rem;
  font-weight: 500;
}
a.leistungen-list__link {
  color: inherit;
  text-decoration: none;
  transition: color .2s;
}
a.leistungen-list__link:hover {
  color: var(--accent);
}
.pricing-card__name-link {
  color: inherit;
  text-decoration: none;
}
.pricing-card__name-link:hover .pricing-card__name {
  color: var(--accent);
}

/* ── Service Recommendation Box ── */
.service-reco {
  margin-top: var(--space-section, 80px);
  padding: var(--space-xl) 0;
  border-top: 1px solid var(--border, #f2dfe2);
}
.service-reco__heading {
  font-family: var(--font-display, 'Eros', Georgia, serif);
  font-size: clamp(1.2rem, 3vw, 1.6rem);
  font-weight: 400;
  margin-bottom: var(--space-lg);
  color: var(--text-primary);
}
.service-reco__grid {
  display: grid;
  gap: var(--space-md);
}
@media (min-width: 640px) {
  .service-reco__grid {
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  }
}
.service-reco__card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--space-md);
  padding: var(--space-lg);
  border: 1px solid var(--border, #f2dfe2);
  border-radius: var(--radius-lg, 16px);
  background: var(--bg-primary, #fff);
  text-decoration: none;
  color: inherit;
  transition: transform .3s var(--ease-out-expo, ease), box-shadow .3s;
}
.service-reco__card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(242, 113, 130, .08);
}
.service-reco__name {
  font-family: var(--font-body, 'Outfit', sans-serif);
  font-size: 1rem;
  font-weight: 600;
  margin: 0 0 var(--space-xs);
  color: var(--text-primary);
}
.service-reco__desc {
  font-size: .8125rem;
  color: var(--text-muted);
  line-height: 1.5;
  margin: 0 0 var(--space-sm);
}
.service-reco__price {
  font-size: .875rem;
  font-weight: 500;
  color: var(--accent, #f27182);
}
.service-reco__cta {
  align-self: flex-start;
  margin-top: auto;
}

.leistungen-list__meta {
  display: flex;
  align-items: baseline;
  gap: var(--space-sm);
  white-space: nowrap;
  flex-shrink: 0;
}
.leistungen-list__duration {
  font-size: 0.8125rem;
  color: var(--text-muted);
}
.leistungen-list__price {
  font-family: var(--font-body);
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--text-primary);
}
.leistungen-list__desc {
  font-size: 0.8125rem;
  color: var(--text-muted);
  line-height: 1.6;
  padding: 4px 0 0;
  max-width: 680px;
}
.leistungen-list__popular {
  font-size: 0.625rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--accent);
  background: rgba(242,113,130,0.08);
  padding: 2px 8px;
  border-radius: var(--radius-full);
  white-space: nowrap;
}

@media (max-width: 639px) {
  .leistungen-list__row { flex-wrap: wrap; gap: 4px; }
  .leistungen-list__left { width: 100%; }
  .leistungen-list__meta { width: 100%; justify-content: space-between; }
}

/* ----- TL;DR BOX (AI Optimization) ----- */
.tldr-box {
  background: var(--bg-secondary);
  border-left: 3px solid var(--accent);
  padding: var(--space-md);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  margin: var(--space-md) 0;
}

.tldr-box strong {
  font-weight: 600;
  color: var(--text-primary);
  display: block;
  margin-bottom: var(--space-xs);
}

/* ----- FAQ ----- */
.faq {
  background: var(--bg-secondary);
}

.faq__list {
  max-width: 800px;
  margin: 0 auto;
}

.faq__item {
  border-bottom: 1px solid var(--bg-tertiary);
}

.faq__question {
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  padding: var(--space-md) 0;
  font-family: var(--font-display);
  font-size: clamp(1.05rem, 1.5vw, 1.2rem);
  font-weight: 400;
  text-align: left;
  color: var(--text-primary);
  cursor: pointer;
  transition: color 0.3s;
}

.faq__question:hover {
  color: var(--accent);
}

.faq__q-num {
  font-family: var(--font-body);
  font-size: .75rem;
  font-weight: 400;
  color: var(--accent);
  letter-spacing: .05em;
  min-width: 24px;
  flex-shrink: 0;
}

.faq__q-text {
  flex: 1;
}

.faq__q-icon {
  font-size: 1.5rem;
  font-weight: 300;
  transition: transform .3s;
  flex-shrink: 0;
}

.faq__item.open .faq__q-icon {
  transform: rotate(45deg);
}

.faq__icon {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform var(--transition-base);
}

.faq__item.open .faq__icon {
  transform: rotate(45deg);
}

.faq__answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s var(--ease-out-expo);
}

.faq__answer-inner {
  padding-bottom: var(--space-md);
  font-size: 0.9375rem;
  line-height: 1.7;
  color: var(--text-secondary);
}

/* ----- FAQ PAGE (Dedicated /faq/ page — premium accordion) ----- */
.faq__search {
  margin: 0 auto 60px;
  max-width: 560px;
  padding: 0 24px;
}

.faq__search-input {
  width: 100%;
  padding: 18px 28px;
  font-size: 1rem;
  font-weight: 300;
  border: 1.5px solid var(--bg-tertiary);
  border-radius: var(--radius-full);
  font-family: var(--font-body);
  background: var(--bg-primary);
  transition: border-color 0.3s, box-shadow 0.3s;
}

.faq__search-input:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: var(--shadow-focus);
}

.faq__search-input::placeholder {
  color: var(--text-muted);
  font-weight: 300;
}

.faq__category {
  margin-bottom: 80px;
}

.faq__category-title {
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 32px;
  padding: 0 24px;
  letter-spacing: -0.01em;
}

.faq__category-title::before {
  content: '';
  display: inline-block;
  width: 24px;
  height: 3px;
  background: var(--accent);
  margin-right: 16px;
  vertical-align: middle;
  border-radius: var(--radius-xs);
}

.faq__items {
  display: grid;
  gap: 0;
  padding: 0 24px;
}

.faq__items .faq__item {
  border: none;
  border-bottom: 1px solid var(--bg-tertiary);
  border-radius: 0;
  overflow: hidden;
  transition: all 0.4s var(--ease-out-expo);
  background: transparent;
  position: relative;
}

.faq__items .faq__item:first-child {
  border-top: 1px solid var(--bg-tertiary);
}

.faq__items .faq__item::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: var(--accent);
  transform: scaleY(0);
  transform-origin: center;
  transition: transform 0.4s var(--ease-out-expo);
  border-radius: 0 2px 2px 0;
}

.faq__items .faq__item.open::before {
  transform: scaleY(1);
}

.faq__items .faq__item:hover {
  border-color: var(--bg-tertiary);
  box-shadow: none;
}

.faq__items .faq__question {
  padding: 28px 8px 28px 20px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  background: transparent;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(1.1rem, 2vw, 1.35rem);
  color: var(--text-primary);
  transition: color 0.3s;
  line-height: 1.3;
}

.faq__items .faq__question:hover {
  background: transparent;
  color: var(--accent);
}

.faq__items .faq__question::after {
  content: '';
  width: 28px;
  height: 28px;
  flex-shrink: 0;
  border: 1.5px solid var(--text-muted);
  border-radius: 50%;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23c4c0bc' stroke-width='2.5'%3E%3Cline x1='12' y1='5' x2='12' y2='19'%3E%3C/line%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
  background-size: 14px;
  background-repeat: no-repeat;
  background-position: center;
  transition: transform 0.4s var(--ease-out-expo), border-color 0.3s, background-image 0.3s;
}

.faq__items .faq__item.open .faq__question::after {
  transform: rotate(45deg);
  border-color: var(--accent);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23f27182' stroke-width='2.5'%3E%3Cline x1='12' y1='5' x2='12' y2='19'%3E%3C/line%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
}

.faq__items .faq__answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.5s var(--ease-out-expo);
  padding: 0 20px;
}

.faq__items .faq__item.open .faq__answer {
  max-height: 1000px;
  padding: 0 20px 32px;
}

.faq__items .faq__answer p {
  margin-bottom: 16px;
  line-height: 1.8;
  font-size: 0.9375rem;
  font-weight: 300;
  max-width: 680px;
}

.faq__items .faq__answer p:last-child {
  margin-bottom: 0;
}

.faq__items .faq__answer a {
  color: var(--accent);
  font-weight: 500;
  transition: color 0.3s;
  text-decoration: underline;
  text-decoration-color: rgba(var(--accent-rgb), 0.3);
  text-underline-offset: 3px;
}

.faq__items .faq__answer a:hover {
  color: var(--accent-dark);
  text-decoration-color: var(--accent-dark);
}

.faq__items .faq__answer strong {
  font-weight: 600;
  color: var(--text-primary);
}

.faq__items .faq__answer ul {
  margin: 16px 0 16px 20px;
  padding: 0;
}

.faq__items .faq__answer li {
  margin-bottom: 10px;
  font-weight: 300;
  line-height: 1.7;
}

.faq__items .faq__answer li::marker {
  color: var(--accent);
}

.faq__no-results {
  text-align: center;
  padding: 60px 24px;
  color: var(--text-muted);
}

.faq__no-results p {
  font-size: 1.1rem;
  font-weight: 300;
}

/* ----- GLOSSARY ----- */
.glossary-search {
  max-width: 500px;
  margin: 0 auto var(--space-lg);
  position: relative;
}

.glossary-search__input {
  width: 100%;
  padding: 16px 20px 16px 48px;
  border: 1.5px solid var(--bg-tertiary);
  border-radius: var(--radius-full);
  font-family: var(--font-body);
  font-size: 1rem;
  background: var(--bg-primary);
  transition: border-color var(--transition-base);
}

.glossary-search__input:focus {
  outline: none;
  border-color: var(--accent);
}

.glossary-search__icon {
  position: absolute;
  left: 18px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text-muted);
}

.glossary-tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-xs);
  margin-bottom: var(--space-lg);
}

.glossary-tag {
  padding: 8px 20px;
  border-radius: var(--radius-full);
  font-size: 0.875rem;
  font-weight: 400;
  background: var(--bg-tertiary);
  color: var(--text-secondary);
  cursor: pointer;
  transition: all var(--transition-base);
}

.glossary-tag.active,
.glossary-tag:hover {
  background: var(--accent);
  color: var(--text-inverse);
}

/* ----- GALLERY (CMS module) ----- */
.gallery__header {
  text-align: center;
  margin-bottom: var(--space-xl);
}

.gallery-filters {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-xs);
  margin-bottom: var(--space-lg);
}

.gallery-filter {
  padding: 8px 20px;
  border-radius: var(--radius-full);
  font-size: 0.875rem;
  font-weight: 400;
  background: var(--bg-tertiary);
  color: var(--text-secondary);
  cursor: pointer;
  border: none;
  transition: all var(--transition-base);
}

.gallery-filter.active,
.gallery-filter:hover {
  background: var(--accent);
  color: var(--text-inverse);
}

.glossary-grid {
  display: grid;
  gap: var(--space-md);
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}

.glossary-card {
  background: var(--bg-primary);
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 1px solid var(--bg-tertiary);
  transition: all var(--transition-base);
}

.glossary-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}

.glossary-card__img {
  aspect-ratio: 16/10;
  overflow: hidden;
}

.glossary-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.glossary-card__content {
  padding: var(--space-md);
}

.glossary-card__title {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 700;
  text-transform: none;
  letter-spacing: -0.01em;
  margin-bottom: var(--space-xs);
}

.glossary-card__excerpt {
  font-size: 0.875rem;
  color: var(--text-secondary);
  line-height: 1.6;
}

.glossary-card__tags {
  display: flex;
  gap: 6px;
  margin-top: var(--space-xs);
}

.glossary-card__tag {
  font-size: 0.75rem;
  padding: 3px 10px;
  background: var(--bg-secondary);
  border-radius: var(--radius-full);
  color: var(--text-secondary);
}

/* ----- BREADCRUMB ----- */
.breadcrumb {
  font-size: 0.8125rem;
  color: var(--text-muted);
  padding: 16px 0 0;
}
/* Hide breadcrumb when hero-subpage follows (hero has its own visual context) */
.breadcrumb + .hero--subpage { margin-top: 0; }
.breadcrumb:has(+ .hero--subpage) { display: none; }

.breadcrumb a {
  transition: color var(--transition-base);
}

.breadcrumb a:hover {
  color: var(--accent);
}

.breadcrumb__sep {
  margin: 0 8px;
}

/* ----- INFO BOX ----- */
.info-box {
  background: var(--bg-secondary);
  border-radius: var(--radius-md);
  padding: var(--space-lg);
  margin: var(--space-lg) 0;
}

.info-box__title {
  font-family: var(--font-display);
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: var(--space-md);
  color: var(--text-primary);
}

.info-box__row {
  display: flex;
  justify-content: space-between;
  padding: var(--space-xs) 0;
  border-bottom: 1px solid var(--bg-tertiary);
  font-size: 0.9375rem;
}

.info-box__row:last-child {
  border-bottom: none;
}

.info-box__label {
  color: var(--text-muted);
}

.info-box__value {
  font-weight: 500;
  color: var(--text-secondary);
}

/* ----- BLOG ----- */
.blog-grid {
  display: grid;
  gap: var(--space-lg);
  grid-template-columns: 1fr;
}

@media (min-width: 768px) {
  .blog-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .blog-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.blog-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--bg-primary);
  border: 1px solid var(--bg-tertiary);
  transition: all 0.4s var(--ease-out-expo);
}

.blog-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-xl);
  border-color: rgba(var(--accent-rgb), 0.25);
}

.blog-card__img {
  aspect-ratio: 16/10;
  overflow: hidden;
  position: relative;
}

.blog-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s var(--ease-out-expo);
}

.blog-card:hover .blog-card__img img {
  transform: scale(1.03);
}

.blog-card__read-time {
  position: absolute;
  top: 12px;
  right: 12px;
  background: var(--glass-bg-solid);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--text-secondary);
  padding: 4px 10px;
  border-radius: var(--radius-full);
  line-height: 1.2;
}

.blog-card__content {
  padding: 24px;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.blog-card__meta {
  font-size: 0.8125rem;
  color: var(--text-muted);
  margin-bottom: var(--space-xs);
}

.blog-card__title {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 400;
  letter-spacing: -0.01em;
  margin-bottom: var(--space-xs);
  line-height: 1.2;
}

.blog-card__excerpt {
  font-size: 0.9375rem;
  color: var(--text-secondary);
  line-height: 1.6;
  margin-top: auto;
}

/* ----- CONTACT ----- */
.contact-grid {
  display: grid;
  gap: var(--space-lg);
}

@media (min-width: 768px) {
  .contact-grid {
    grid-template-columns: 1fr 1fr;
  }
}

.contact-info__item {
  display: flex;
  gap: var(--space-sm);
  margin-bottom: var(--space-md);
}

.contact-info__icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg-secondary);
  border-radius: 50%;
  color: var(--accent);
}

.contact-info__label {
  font-size: 0.8125rem;
  color: var(--text-muted);
  margin-bottom: 2px;
}

.contact-info__value {
  font-weight: 500;
  color: var(--text-secondary);
}

/* Tabs */
.tabs {
  margin: var(--space-lg) 0;
}

.tabs__nav {
  display: flex;
  gap: 0;
  border-bottom: 1.5px solid var(--bg-tertiary);
  overflow-x: auto;
}

.tabs__tab {
  padding: var(--space-sm) var(--space-md);
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text-muted);
  border-bottom: 2px solid transparent;
  transition: all var(--transition-base);
  white-space: nowrap;
}

.tabs__tab.active {
  color: var(--accent);
  border-bottom-color: var(--accent);
}

.tabs__panel {
  display: none;
  padding: var(--space-md) 0;
}

.tabs__panel.active {
  display: block;
}

/* Contact form */
.contact-form {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.form-group label {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text-secondary);
}

.contact-form input,
.contact-form textarea,
.contact-form select,
.form-group input,
.form-group select,
.form-group textarea {
  width: 100%;
  padding: 16px;
  border: 1.5px solid var(--bg-tertiary);
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 300;
  background: var(--bg-primary);
  color: var(--text-primary);
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.contact-form input:focus,
.contact-form textarea:focus,
.contact-form select:focus,
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: var(--shadow-focus);
}

.form-group textarea {
  min-height: 120px;
  resize: vertical;
}

.contact-form button[type="submit"],
.contact-form .ds-btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 18px 48px;
  background: var(--accent);
  color: var(--text-inverse);
  border: none;
  border-radius: var(--radius-full);
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all 0.3s ease;
}

.contact-form button[type="submit"]:hover,
.contact-form .ds-btn-primary:hover {
  background: var(--accent-dark);
  transform: translateY(-2px);
  box-shadow: var(--shadow-lg);
}

/* ----- GALLERY MASONRY ----- */
.gallery-grid {
  columns: 1;
  gap: var(--space-sm);
}

@media (min-width: 640px) {
  .gallery-grid {
    columns: 2;
  }
}

@media (min-width: 1024px) {
  .gallery-grid {
    columns: 3;
  }
}

.gallery-item {
  break-inside: avoid;
  margin-bottom: var(--space-sm);
  border-radius: var(--radius-md);
  overflow: hidden;
}

.gallery-item img {
  width: 100%;
  transition: transform 0.6s var(--ease-out-expo);
}

.gallery-item:hover img {
  transform: scale(1.03);
}

/* ----- UTILITY CLASSES ----- */
.text-center { text-align: center; }
.text-primary { color: var(--accent); }
.mt-sm { margin-top: var(--space-sm); }
.mt-md { margin-top: var(--space-md); }
.mt-lg { margin-top: var(--space-lg); }
.mb-sm { margin-bottom: var(--space-sm); }
.mb-md { margin-bottom: var(--space-md); }
.mb-lg { margin-bottom: var(--space-lg); }

/* ----- REDUCED MOTION ----- */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .marquee__inner {
    animation: none;
  }

  [data-reveal] {
    opacity: 1;
    transform: none;
  }

  .hero__line,
  .hero__sub,
  .hero__actions {
    opacity: 1;
    transform: none;
  }
}

/* ============================================================
   NEW SECTIONS
   ============================================================ */

/* ----- PROOF TICKER ----- */
.proof-ticker {
  background: var(--text-primary);
  padding: 14px 0;
  overflow: hidden;
  white-space: nowrap;
}

.proof-ticker__track {
  display: flex;
  animation: ticker-scroll 30s linear infinite;
}

.proof-ticker__item {
  font-family: var(--font-body);
  font-size: .8125rem;
  font-weight: 400;
  color: var(--inverted-text-muted);
  letter-spacing: .05em;
  text-transform: uppercase;
  flex-shrink: 0;
}

.proof-ticker__dot {
  color: var(--accent);
  margin: 0 24px;
  flex-shrink: 0;
}

@keyframes ticker-scroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* ----- SERVICE MARQUEE (two-line carousel) ----- */
.service-marquee {
  padding: clamp(24px, 4vw, 48px) 0;
  background: var(--bg-secondary);
  overflow: hidden;
}

.service-marquee__line {
  overflow: hidden;
  white-space: nowrap;
  padding: clamp(8px, 1.5vw, 16px) 0;
}

.service-marquee__track {
  display: flex;
  animation: service-marquee-scroll 25s linear infinite;
  will-change: transform;
  contain: layout style;
}

.service-marquee__track--reverse {
  animation-direction: reverse;
}

.service-marquee__content {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.service-marquee__item {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(4rem, 10vw, 10rem);
  line-height: 1;
  letter-spacing: -.02em;
}

.service-marquee__item--filled {
  color: var(--text-primary);
}

.service-marquee__item--outline {
  color: transparent;
  -webkit-text-stroke: 1.5px var(--text-primary);
}

@media (max-width: 767px) {
  .service-marquee__item--outline {
    -webkit-text-stroke: 0.8px var(--text-primary);
  }
}

.service-marquee__sep {
  font-family: var(--font-display);
  font-weight: 300;
  font-size: clamp(2.5rem, 6vw, 6rem);
  color: var(--accent);
  margin: 0 clamp(20px, 4vw, 48px);
  flex-shrink: 0;
}

@keyframes service-marquee-scroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* Legacy eros-marquee (kept for reference) */
.eros-marquee__item {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(5rem, 12vw, 12rem);
  line-height: 1;
  color: var(--text-primary);
  flex-shrink: 0;
}

.eros-marquee__item--outline {
  -webkit-text-stroke: 1.5px var(--text-primary);
  color: transparent;
}

.eros-marquee__sep {
  font-family: var(--font-display);
  font-weight: 300;
  font-size: clamp(3rem, 8vw, 8rem);
  color: var(--accent);
  margin: 0 clamp(16px, 3vw, 40px);
  flex-shrink: 0;
}

@keyframes eros-marquee-scroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* ----- BLACK CTA BAND ----- */
.cta-band {
  background: var(--text-primary);
  color: var(--text-inverse);
  padding: clamp(3rem, 6vw, 6rem) 0;
  position: relative;
  overflow: hidden;
}

.cta-band__text {
  font-size: clamp(1rem, 1.3vw, 1.15rem);
  font-weight: 300;
  color: var(--text-inverse-muted);
  max-width: 480px;
  margin: 0 auto var(--space-lg);
  line-height: 1.7;
}

.cta-band__inner {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--space-md);
  text-align: center;
  position: relative;
  z-index: 1;
}

.cta-band__title {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(3.5rem, 10vw, 9rem);
  line-height: .9;
  color: var(--text-inverse);
  margin-bottom: var(--space-lg);
  letter-spacing: -.03em;
}

.cta-band__title em {
  font-style: normal;
  color: var(--accent);
}

.cta-band--spa {
  background: var(--text-primary);
  position: relative;
  overflow: hidden;
}

.cta-band--spa__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.cta-band--spa__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .3;
  filter: brightness(.6);
}

.cta-band--spa .cta-band__inner {
  position: relative;
  z-index: 1;
}

.section-label--light {
  color: var(--inverted-text-faint);
  border-color: var(--inverted-bg-subtle);
}

/* ----- SERVICES OVERLAY CARDS ----- */
.services-overlay__header {
  margin-bottom: var(--space-xl);
}

/* Mobile: horizontal scroll */
.services-overlay__scroll {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-bottom: 8px;
}

.services-overlay__scroll::-webkit-scrollbar {
  display: none;
}

.services-overlay__scroll .overlay-card {
  flex: 0 0 80vw;
  max-width: 360px;
  scroll-snap-align: center;
}

/* Tablet+: grid layout */
@media (min-width: 640px) {
  .services-overlay__scroll {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(2, 1fr);
    overflow: visible;
    scroll-snap-type: none;
    padding-bottom: 0;
  }

  .services-overlay__scroll .overlay-card {
    flex: none;
    max-width: none;
    scroll-snap-align: unset;
  }
}

@media (min-width: 1024px) {
  .services-overlay__scroll {
    grid-template-columns: repeat(3, 1fr);
  }
}

.overlay-card {
  position: relative;
  display: block;
  border-radius: var(--radius-lg);
  overflow: hidden;
  aspect-ratio: 3/4;
  transition: transform 0.5s var(--ease-out-expo), box-shadow 0.5s ease;
}

.overlay-card:hover {
  transform: scale(1.02) translateY(-4px);
  box-shadow: var(--shadow-xl);
}

.overlay-card--large {
  grid-row: span 2;
}

.overlay-card--wide {
  grid-column: span 2;
  aspect-ratio: 16/9;
}

@media (max-width: 639px) {
  .overlay-card--wide {
    grid-column: span 1;
    aspect-ratio: 3/4;
  }
}

.overlay-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s var(--ease-out-expo);
}

.overlay-card:hover img {
  transform: scale(1.03);
}

.overlay-card__content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: clamp(20px, 3vw, 32px);
  background: linear-gradient(transparent 40%, var(--overlay-medium));
  color: var(--text-inverse);
}

.overlay-card__tag {
  display: inline-block;
  font-size: .7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .1em;
  background: var(--accent);
  color: var(--text-inverse);
  padding: 4px 12px;
  border-radius: var(--radius-full);
  margin-bottom: 8px;
}

.overlay-card__title {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(1.5rem, 3vw, 2.5rem);
  line-height: 1.1;
  margin-bottom: 4px;
}

.overlay-card__price {
  font-family: var(--font-body);
  font-size: .875rem;
  font-weight: 400;
  opacity: .8;
}

/* ----- SERVICES EDITORIAL LIST ----- */
.services-list {
  background: var(--bg-secondary);
}

.services-list__items {
  max-width: var(--max-width);
  margin: 0 auto;
}

.services-list__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: clamp(20px, 3vw, 28px) 0;
  border-top: 1px solid var(--text-muted);
  transition: color .3s;
}

.services-list__row:last-child {
  border-bottom: 1px solid var(--text-muted);
}

.services-list__row:hover {
  color: var(--accent);
}

.services-list__name {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(1.75rem, 5vw, 3rem);
  line-height: 1.05;
  flex: 1;
  min-width: 0;
}

.services-list__tags {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.services-list__pill {
  font-family: var(--font-body);
  font-size: .75rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .08em;
  padding: 6px 16px;
  border: 1px solid var(--text-muted);
  border-radius: var(--radius-full);
  white-space: nowrap;
}

.services-list__arrow {
  font-size: 1.5rem;
  width: 48px;
  height: 48px;
  border: 1px solid var(--text-muted);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all .3s;
}

.services-list__row:hover .services-list__arrow {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--text-inverse);
}

@media (max-width: 768px) {
  .services-list__tags { display: none; }
  .services-list__name { font-size: clamp(1.25rem, 5vw, 1.75rem); }
}

/* ----- TEAM CAROUSEL ----- */
.team-carousel {
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding: 0 clamp(24px, 4vw, 48px);
}

.team-carousel::-webkit-scrollbar { display: none; }

.team-carousel__track {
  display: flex;
  gap: 24px;
  padding-bottom: 8px;
}

.team-section .team-card {
  flex: 0 0 min(300px, 80vw);
  scroll-snap-align: start;
  text-align: left;
}

.team-card__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .875rem;
  font-weight: 500;
  color: var(--accent);
  margin-top: 8px;
  transition: gap .3s;
}

.team-card__link:hover {
  gap: 10px;
}

.team-card__specialty {
  font-size: .8125rem;
  color: var(--text-muted);
  margin-top: 2px;
}

.team-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.team-card__tag {
  font-size: .6875rem;
  font-weight: 500;
  padding: 3px 10px;
  border-radius: var(--radius-full);
  background: var(--bg-tertiary);
  color: var(--text-secondary);
  letter-spacing: .02em;
}

/* Carousel Controls */
.team-carousel__controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
  margin-top: var(--space-md);
  padding: 0 var(--space-md);
}

.team-carousel__arrow {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid var(--text-muted);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-secondary);
  transition: all .3s;
  flex-shrink: 0;
}

.team-carousel__arrow:hover {
  border-color: var(--accent);
  color: var(--accent);
}

.team-carousel__dots {
  display: flex;
  gap: 8px;
}

.team-carousel__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--text-muted);
  transition: background .3s, transform .3s;
  cursor: pointer;
  border: none;
  padding: 0;
}

.team-carousel__dot--active {
  background: var(--accent);
  transform: scale(1.25);
}

/* ----- SOCIAL FEED ----- */
.social-feed__header {
  margin-bottom: var(--space-lg);
}

.social-feed__embed {
  min-height: 200px;
}

/* ----- FINAL CTA — base layout (color overridden below) ----- */
.cta-final__inner {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--space-md);
  text-align: center;
}

.cta-final__title {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(4rem, 12vw, 12rem);
  line-height: .88;
  letter-spacing: -.03em;
  margin-bottom: var(--space-lg);
  color: var(--text-inverse);
}

.cta-final__text {
  font-family: var(--font-body);
  font-size: clamp(1rem, 1.3vw, 1.15rem);
  max-width: 500px;
  margin: 0 auto var(--space-lg);
  line-height: 1.8;
  color: var(--text-inverse);
  font-weight: 400;
}

.cta-final__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-sm);
}

/* ----- FOOTER — with fullwidth logo at bottom ----- */
.footer__fullwidth-logo {
  width: 100%;
  padding: clamp(48px, 8vw, 80px) clamp(24px, 4vw, 48px);
}

.footer__fullwidth-logo-img {
  width: 100%;
  height: auto;
  opacity: 1;
}

/* ============================================================
   EXISTING SECTIONS — Numbers, Blog Preview, Standort, Link Arrow
   ============================================================ */

/* ----- SECTION VARIANT ----- */
.section--off-white {
  background: var(--bg-secondary);
}

/* ----- LINK ARROW ----- */
.link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .9375rem;
  font-weight: 500;
  color: var(--text-secondary);
  transition: color .3s, gap .3s;
  border-bottom: 1px solid var(--text-secondary);
  padding-bottom: 2px;
}

.link-arrow:hover {
  color: var(--accent);
  border-color: var(--accent);
  gap: 10px;
}

.link-arrow span {
  transition: transform .3s var(--ease-out-expo);
}

.link-arrow:hover span {
  transform: translateX(4px);
}

/* ----- NUMBERS SECTION ----- */
.numbers {
  background: var(--bg-secondary);
}

.numbers__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-lg);
  max-width: var(--max-width);
  margin: 0 auto;
}

@media (min-width: 768px) {
  .numbers__grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

.numbers__item {
  text-align: center;
}

.numbers__display {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 2px;
  margin-bottom: 8px;
}

.numbers__value {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(4.5rem, 12vw, 8rem);
  line-height: 1;
  color: var(--accent);
  text-shadow: 0 0 30px rgba(var(--accent-rgb), 0.15), 0 0 60px rgba(var(--accent-rgb), 0.05);
}

.numbers__unit {
  font-family: var(--font-display);
  font-weight: 300;
  font-size: clamp(2rem, 5vw, 4rem);
  color: var(--accent);
}

.numbers__label {
  font-size: .9375rem;
  font-weight: 400;
  color: var(--text-muted);
  margin-top: 4px;
}

/* ----- BLOG PREVIEW ----- */
.blog-preview__header {
  margin-bottom: var(--space-xl);
}

.blog-preview__grid {
  display: grid;
  gap: var(--space-lg);
  grid-template-columns: 1fr;
}

@media (min-width: 640px) {
  .blog-preview__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .blog-preview__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.blog-preview .blog-card {
  display: flex;
  flex-direction: column;
  border: none;
  background: transparent;
}

.blog-preview .blog-card__img {
  aspect-ratio: 4/5;
  overflow: hidden;
  border-radius: var(--radius-md);
  margin-bottom: var(--space-md);
}

.blog-preview .blog-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s var(--ease-out-expo);
}

.blog-preview .blog-card:hover .blog-card__img img {
  transform: scale(1.05);
}

.blog-preview .blog-card__content {
  padding: 0;
}

.blog-preview .blog-card__meta {
  font-size: .75rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--accent);
  margin-bottom: 8px;
}

.blog-preview .blog-card__title {
  font-family: var(--font-body);
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.4;
  margin-bottom: 8px;
  color: var(--text-primary);
}

.blog-preview .blog-card__excerpt {
  font-size: .9375rem;
  color: var(--text-secondary);
  line-height: 1.6;
}

/* ----- FAQ SECTION (Homepage) ----- */
.faq-section__header {
  margin-bottom: var(--space-lg);
}

/* ----- STANDORT / MAP ----- */
.standort__map {
  width: 100%;
  overflow: hidden;
}

.standort__map iframe {
  width: 100%;
  height: 350px;
  display: block;
  filter: grayscale(1) contrast(1.1);
  transition: filter .4s;
}

.standort__map:hover iframe {
  filter: grayscale(0);
}

@media (min-width: 768px) {
  .standort__map iframe {
    height: 450px;
  }
}

.standort__content {
  padding-top: var(--space-xl);
}

.standort__grid {
  display: grid;
  gap: var(--space-lg);
  grid-template-columns: 1fr;
  margin-top: var(--space-lg);
}

@media (min-width: 768px) {
  .standort__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.standort__col h3 {
  font-family: var(--font-body);
  font-size: .8125rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .15em;
  color: var(--accent);
  margin-bottom: 8px;
}

.standort__col p {
  font-size: .9375rem;
  line-height: 1.7;
}

.standort__col a {
  transition: color .3s;
}

.standort__col a:hover {
  color: var(--accent);
}

/* CLIP REVEAL: canonical source is design-system.css */

/* ----- PAGE LOADER ----- */
.page-loader {
  position: fixed;
  inset: 0;
  z-index: var(--z-loader);
  background: var(--bg-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity .6s .2s, visibility .6s .2s;
}

.page-loader.loaded {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.page-loader__logo {
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 3rem);
  color: var(--text-primary);
  letter-spacing: .05em;
  animation: pulse 1.5s ease infinite;
}

@keyframes pulse {
  0%, 100% { opacity: .3; }
  50% { opacity: 1; }
}

/* ----- LOVE WALL (Paris by Emily "WALL OF LOVE" style) ----- */
.love-wall {
  background: var(--bg-secondary);
  padding: clamp(100px, 14vh, 200px) clamp(24px, 4vw, 48px);
  position: relative;
  overflow: hidden;
  text-align: center;
}

.love-wall__inner {
  position: relative;
  max-width: 1440px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.love-wall__text {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(6rem, 22vw, 22rem);
  line-height: 0.85;
  color: var(--text-primary);
  letter-spacing: -0.03em;
  user-select: none;
}

.love-wall__text--top {
  position: relative;
  z-index: 1;
}

.love-wall__text--bottom {
  position: relative;
  z-index: 1;
  color: var(--accent);
}

.love-wall__polaroid {
  position: relative;
  z-index: 2;
  margin: clamp(-60px, -6vw, -20px) 0;
}

.love-wall__polaroid-frame {
  background: var(--bg-primary);
  padding: 14px 14px 56px;
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-lg);
  transform: rotate(-2deg);
  transition: transform .6s var(--ease-out-expo), box-shadow .6s ease;
  transition: transform 0.6s var(--ease-out-expo);
  width: clamp(240px, 38vw, 440px);
}

.love-wall__polaroid-frame:hover {
  transform: rotate(0deg) scale(1.03);
  box-shadow: var(--shadow-xl);
}

.love-wall__polaroid-frame img {
  width: 100%;
  height: auto;
  aspect-ratio: 4/5;
  object-fit: cover;
  display: block;
}

.love-wall__polaroid-caption {
  font-family: var(--font-body);
  font-size: 0.8125rem;
  font-weight: 400;
  color: var(--text-secondary);
  text-align: center;
  margin-top: 16px;
  line-height: 1.5;
}

/* ----- EXPERIENCE CARDS (Paris by Emily sliding cards) ----- */
.exp-cards {
  background: var(--bg-secondary);
}

.exp-cards__header {
  padding-bottom: clamp(24px, 3vw, 48px);
}

.exp-cards__track {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  padding: 0 clamp(24px, 4vw, 48px) clamp(32px, 4vh, 64px);
  scrollbar-width: none;
}

.exp-cards__track::-webkit-scrollbar {
  display: none;
}

.exp-card {
  flex: 0 0 85vw;
  max-width: 600px;
  scroll-snap-align: center;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--text-primary);
  color: var(--text-inverse);
  display: flex;
  flex-direction: column;
  text-decoration: none;
  position: relative;
  min-height: 75vh;
  transition: transform 0.5s var(--ease-out-expo), box-shadow 0.5s ease;
}

.exp-card:hover {
  transform: scale(1.02);
  box-shadow: var(--shadow-xl);
}

.exp-card__img {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.exp-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.exp-card__img::after {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--overlay-gradient);
}

.exp-card__body {
  position: relative;
  z-index: 1;
  margin-top: auto;
  padding: clamp(24px, 4vw, 40px);
}

.exp-card__tag {
  display: inline-block;
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  padding: 6px 14px;
  border: 1px solid var(--inverted-border-strong);
  border-radius: var(--radius-full);
  margin-bottom: 16px;
  color: var(--inverted-text);
}

.exp-card__title {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(2rem, 5vw, 3.5rem);
  line-height: 1;
  color: var(--text-inverse);
  margin-bottom: 16px;
}

.exp-card__meta {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}

.exp-card__pill {
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 6px 14px;
  background: var(--inverted-bg-subtle);
  border-radius: var(--radius-full);
  color: var(--inverted-text);
}

.exp-card__cta {
  font-family: var(--font-body);
  font-size: 0.9375rem;
  font-weight: 400;
  color: var(--text-inverse);
  display: inline-flex;
  align-items: center;
  gap: 12px;
}

.exp-card__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--accent);
  color: var(--text-inverse);
  font-size: 1.1rem;
  transition: transform 0.4s var(--ease-out-expo), background 0.3s;
}

.exp-card:hover .exp-card__arrow {
  transform: translate(4px, -4px);
  background: var(--accent-dark);
}

@media (min-width: 768px) {
  .exp-card {
    flex: 0 0 45vw;
    max-width: 650px;
  }
}

@media (min-width: 1024px) {
  .exp-card {
    flex: 0 0 35vw;
    max-width: 700px;
    min-height: 75vh;
  }

  .exp-cards__track {
    gap: 24px;
  }
}

/* ============================================================
   STACKED CARDS — Pakete Section (Uncode-style)
   ============================================================ */
.stacked-section {
  position: relative;
}

.stacked-header {
  text-align: center;
  padding: 80px 24px 60px;
  position: relative;
  z-index: 10;
}

.stacked-header .section-label {
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--accent);
  display: block;
  margin-bottom: 16px;
}

.stacked-header h2 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(2.5rem, 5vw, 4rem);
  color: var(--text-secondary);
  line-height: 1.1;
}

.stacked-header h2 em {
  font-style: italic;
  color: var(--accent);
}

.stacked-cards {
  position: relative;
  width: 100%;
}

.stacked-card {
  position: -webkit-sticky;
  position: sticky;
  top: 10vh;
  width: 100%;
  height: 80vh;
  min-height: 520px;
  max-height: 720px;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  margin-bottom: 25vh;
}

.stacked-card:last-child {
  margin-bottom: 0;
}

.stacked-card__inner {
  width: 88%;
  max-width: 1100px;
  height: 100%;
  border-radius: var(--radius-lg);
  overflow: hidden;
  position: relative;
  background: var(--text-primary);
  will-change: transform;
  transform-origin: 50% 50%;
  box-shadow: var(--shadow-heavy);
}

.stacked-card__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.stacked-card__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.stacked-card__bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--overlay-gradient-card);
}

.stacked-card__content {
  position: relative;
  z-index: 1;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
  text-align: center;
  padding: clamp(32px, 5vw, 56px);
}

.stacked-card__title {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 4rem;
  line-height: 1.05;
  color: var(--text-inverse);
  margin-bottom: 16px;
}

.stacked-card__desc {
  font-family: var(--font-body);
  font-weight: 300;
  font-size: 1.3rem;
  line-height: 1.5;
  color: var(--inverted-text);
  max-width: 520px;
  margin-bottom: 32px;
}

.stacked-card__btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 0.95rem;
  text-decoration: none;
  color: var(--text-inverse);
  background: var(--accent);
  padding: 16px 32px;
  border-radius: var(--radius-full);
  border: none;
  cursor: pointer;
  transition: background 0.3s, transform 0.3s var(--ease-out-expo);
}

.stacked-card__btn:hover {
  background: var(--accent-dark);
  transform: scale(1.04);
}

.stacked-card__btn svg {
  width: 18px;
  height: 18px;
  transition: transform 0.3s var(--ease-out-expo);
}

.stacked-card__btn:hover svg {
  transform: translateX(4px);
}

.stacked-card__number {
  position: absolute;
  top: clamp(24px, 4vw, 40px);
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--inverted-text-faint);
  z-index: 2;
}

@media (max-width: 768px) {
  .stacked-card {
    top: 5vh;
    height: 70vh;
    min-height: 420px;
    margin-bottom: 20vh;
  }

  .stacked-card__inner {
    width: 92%;
    border-radius: var(--radius-md);
  }

  .stacked-card__title {
    font-size: 2.5rem;
  }

  .stacked-card__desc {
    font-size: 1.05rem;
  }
}

@media (min-width: 1440px) {
  .stacked-card__inner {
    max-width: 1260px;
    max-height: 750px;
  }
}

/* ============================================================
   FEATURES SECTION — The Shift horizontal scroll
   ============================================================ */
.features {
  background: var(--bg-primary);
  overflow: hidden;
}

.features--dark {
  background: var(--text-primary);
  padding: clamp(100px, 14vh, 180px) 0;
}

.features--dark .features__heading {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(3.5rem, 10vw, 8rem);
  line-height: .92;
  color: var(--text-inverse);
  letter-spacing: -.03em;
}

.features--dark .features__heading em {
  font-style: normal;
  color: var(--accent);
}

.features__header {
  padding-bottom: clamp(24px, 3vw, 48px);
}

.features__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}

@media (min-width: 768px) {
  .features__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.features__card {
  padding: clamp(36px, 4vw, 56px) clamp(28px, 3vw, 40px);
  border: 1px solid var(--inverted-border);
  border-radius: var(--radius-lg);
  position: relative;
  background: transparent;
  transition: border-color 0.4s ease, box-shadow 0.4s ease, transform 0.4s var(--ease-out-expo);
}

.features__card:hover {
  border-color: rgba(var(--accent-rgb), 0.3);
  box-shadow: var(--glow-subtle);
  transform: translateY(-4px);
}

.features__num {
  font-family: var(--font-display);
  font-size: clamp(4rem, 8vw, 6rem);
  font-weight: 300;
  color: var(--watermark-color);
  line-height: 1;
  display: block;
  margin-bottom: clamp(24px, 3vw, 40px);
  letter-spacing: -0.03em;
}

.features__title {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: clamp(1rem, 1.5vw, 1.25rem);
  line-height: 1.3;
  color: var(--text-inverse);
  margin-bottom: 16px;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.features__desc {
  font-family: var(--font-body);
  font-size: 0.9375rem;
  font-weight: 300;
  line-height: 1.7;
  color: var(--inverted-text-muted);
}

.features__book-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: .8125rem;
  font-weight: 500;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--inverted-text-muted);
  transition: color .3s;
}

.features__book-link:hover {
  color: var(--text-inverse);
}

/* ============================================================
   FAQ MARQUEE HEADER
   ============================================================ */
.faq-marquee {
  overflow: hidden;
  white-space: nowrap;
  padding: clamp(16px, 2.5vw, 24px) 0;
  border-bottom: 1px solid var(--bg-tertiary);
}

.faq-marquee__track {
  display: inline-flex;
  animation: marquee-scroll 50s linear infinite;
}

.faq-marquee__item {
  font-family: var(--font-display);
  font-weight: 300;
  font-size: clamp(1.25rem, 3vw, 2rem);
  color: var(--text-muted);
  flex-shrink: 0;
}

.faq-marquee__sep {
  font-size: clamp(0.75rem, 1.5vw, 1rem);
  color: var(--bg-tertiary);
  margin: 0 clamp(16px, 3vw, 32px);
  flex-shrink: 0;
}

/* ============================================================
   FOOTER MARQUEE — Paper Tiger style
   ============================================================ */
.footer__marquee {
  overflow: hidden;
  white-space: nowrap;
  padding: clamp(20px, 3vw, 32px) 0;
  border-bottom: 1px solid var(--inverted-border);
}

.footer__marquee-track {
  display: inline-flex;
  animation: marquee-scroll 30s linear infinite;
}

.footer__marquee-text {
  font-family: var(--font-display);
  font-size: clamp(1rem, 2.5vw, 1.5rem);
  font-weight: 300;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
  flex-shrink: 0;
}

/* Footer link hover underline animation */
/* Footer link underline removed — color change only */

/* ============================================================
   REVIEWS — Custom Carousel (replaces Trustindex)
   ============================================================ */
.reviews__title {
  font-family: var(--font-display);
  font-size: clamp(3.5rem, 10vw, 8rem);
  font-weight: 400;
  line-height: .92;
  letter-spacing: -.02em;
  color: var(--text-primary);
}

.reviews__carousel {
  position: relative;
  text-align: center;
  max-width: 720px;
  margin: clamp(48px, 6vw, 80px) auto 0;
}

.reviews__slide {
  display: none;
  flex-direction: column;
  align-items: center;
}

.reviews__slide--active {
  display: flex;
}

.reviews__quote-mark {
  font-family: var(--font-display);
  font-size: clamp(4rem, 8vw, 8rem);
  line-height: .5;
  color: var(--accent-light);
  margin-bottom: clamp(16px, 2vw, 32px);
  opacity: .4;
}

.reviews__stars-row {
  font-size: 1.2rem;
  color: var(--color-star);
  letter-spacing: 4px;
  margin-bottom: clamp(20px, 3vw, 40px);
}

.reviews__quote {
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 2.2vw, 1.6rem);
  font-weight: 300;
  line-height: 1.6;
  color: var(--text-secondary);
  max-width: 600px;
  margin: 0 auto;
}

.reviews__author {
  display: block;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: .9rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text-primary);
  margin-top: clamp(24px, 3vw, 40px);
  font-style: normal;
}

.reviews__meta {
  font-family: var(--font-body);
  font-size: .85rem;
  color: var(--text-muted);
  margin-top: 4px;
}

.reviews__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  margin-top: clamp(40px, 5vw, 64px);
}

.reviews__nav-btn {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 1.5px solid var(--text-secondary);
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all .3s ease;
}

.reviews__nav-btn:hover {
  background: var(--text-secondary);
  color: var(--text-inverse);
}

.reviews__nav-btn:hover svg {
  stroke: var(--text-inverse);
}

.reviews__dots {
  display: flex;
  gap: 8px;
  align-items: center;
}

.reviews__dot {
  width: 32px;
  height: 3px;
  background: var(--text-muted);
  border-radius: var(--radius-xs);
  transition: all .3s ease;
}

.reviews__dot--active {
  width: 48px;
  background: var(--text-secondary);
}

.reviews__google {
  text-align: center;
  margin-top: clamp(32px, 4vw, 56px);
}

.reviews__google-badge {
  font-weight: 500;
  color: var(--color-star);
}

/* ============================================================
   SOCIAL PROOF SECTION
   ============================================================ */
.social-proof {
  background: var(--bg-primary);
}

.social-proof__content {
  text-align: center;
  max-width: 800px;
  margin: 0 auto clamp(48px, 6vw, 80px);
}

.social-proof__headline {
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 6vw, 5rem);
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -.02em;
  color: var(--text-primary);
  margin-bottom: clamp(20px, 3vw, 40px);
}

.social-proof__body {
  font-size: clamp(1rem, 1.3vw, 1.15rem);
  color: var(--text-secondary);
  line-height: 1.8;
  max-width: 640px;
  margin: 0 auto;
}

.social-proof__gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(8px, 1.5vw, 20px);
}

.social-proof__img {
  overflow: hidden;
  border-radius: var(--radius-md);
}

.social-proof__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 3/2;
  transition: transform .6s var(--ease-out-expo);
}

.social-proof__img:hover img {
  transform: scale(1.05);
}

@media (max-width: 640px) {
  .social-proof__gallery {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}

/* ============================================================
   FINAL CTA — Pink background with white Eros
   ============================================================ */
.cta-final {
  background: var(--accent);
  padding: clamp(6rem, 14vw, 12rem) 0;
  position: sticky;
  top: 0;
  z-index: 0;
}

.cta-final__watermark {
  position: absolute;
  right: -5%;
  top: 50%;
  transform: translateY(-50%);
  font-family: var(--font-display);
  font-size: clamp(20rem, 40vw, 50rem);
  color: var(--watermark-color);
  line-height: 1;
  pointer-events: none;
}

.cta-final__title em {
  color: var(--text-primary);
  font-style: normal;
}

/* ============================================================
   CONTACT POPUP (Smart Contact Form)
   ============================================================ */
/* Neva AI CTA — featured, like booking-popup__option--featured */
.cp-neva-cta {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 100%;
  padding: 18px 20px;
  margin-top: 16px;
  border: 1px solid rgba(var(--accent-rgb), .25);
  border-radius: var(--radius-lg);
  background: rgba(var(--accent-rgb), .06);
  cursor: pointer;
  transition: all .3s var(--ease-out-expo);
  text-align: left;
  font-family: var(--font-body);
  color: inherit;
  position: relative;
}
.cp-neva-cta:hover {
  border-color: var(--accent);
  background: rgba(var(--accent-rgb), .12);
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}
.cp-neva-cta__icon {
  width: 44px;
  height: 44px;
  border-radius: var(--radius-md);
  background: var(--accent);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.cp-neva-cta__icon .material-symbols-outlined { font-size: 22px; color: #fff; }
.cp-neva-cta__text { flex: 1; min-width: 0; }
.cp-neva-cta__label { display: block; font-weight: 600; font-size: .95rem; color: var(--text-primary); line-height: 1.3; }
.cp-neva-cta__detail { display: block; font-size: .8rem; color: var(--text-muted); margin-top: 2px; }
.cp-neva-cta__arrow { color: var(--accent); flex-shrink: 0; }
.cp-neva-cta__arrow .material-symbols-outlined { font-size: 20px; }

/* Dark mode — Neva CTA */
[data-theme="dark"] .cp-neva-cta {
  border-color: rgba(var(--accent-rgb), .35);
  background: rgba(var(--accent-rgb), .06);
  box-shadow: 0 0 12px rgba(var(--accent-rgb), .15);
}
[data-theme="dark"] .cp-neva-cta:hover {
  border-color: rgba(var(--accent-rgb), .5);
  background: rgba(var(--accent-rgb), .12);
  box-shadow: var(--neon-border-glow);
}
[data-theme="dark"] .cp-neva-cta__icon { box-shadow: 0 0 12px rgba(var(--accent-rgb), .4); }
[data-theme="dark"] .cp-neva-cta__label { color: var(--text-primary); }

/* Reason cards — matches .booking-popup__option exactly */
.cp-reasons {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 16px;
}
@media (max-width: 480px) {
  .cp-reasons { grid-template-columns: 1fr; }
}
.cp-reason {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 20px;
  min-height: 64px;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,.5);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  cursor: pointer;
  transition: all .3s var(--ease-out-expo);
  text-align: left;
  font-family: var(--font-body);
  color: inherit;
}
.cp-reason:hover {
  border-color: var(--accent);
  background: rgba(var(--accent-rgb), .06);
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}
.cp-reason__icon {
  width: 44px;
  height: 44px;
  border-radius: var(--radius-md);
  background: var(--bg-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.cp-reason__icon .material-symbols-outlined { font-size: 22px; color: var(--text-secondary); }
.cp-reason:hover .cp-reason__icon { background: var(--accent); }
.cp-reason:hover .cp-reason__icon .material-symbols-outlined { color: #fff; }
.cp-reason__text { font-family: var(--font-body); font-weight: 600; font-size: .95rem; color: var(--text-primary); line-height: 1.3; }

/* Back button */
.cp-back {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--text-muted);
  padding: 4px;
  margin: -4px 0 12px -4px;
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: .82rem;
  font-family: var(--font-body);
  transition: color .2s;
}
.cp-back:hover { color: var(--accent); }
.cp-back .material-symbols-outlined { font-size: 20px; }

/* Auto-message card */
.cp-auto-card {
  background: var(--bg-secondary);
  border-radius: 14px;
  padding: 24px;
  text-align: center;
}
.cp-auto-card__icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: var(--accent);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 16px;
}
.cp-auto-card__icon .material-symbols-outlined {
  font-size: 24px;
  color: #fff;
}
.cp-auto-card__title {
  font-family: var(--font-body);
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 12px;
}
.cp-auto-card__text {
  font-size: .88rem;
  line-height: 1.65;
  color: var(--text-secondary);
  margin-bottom: 20px;
}
.cp-auto-card__text a {
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 3px;
  font-weight: 500;
}
/* Contact popup uses same title style as booking popup (Display font) */
.cp-auto-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
}

/* Form fields */
.cp-field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
@media (max-width: 480px) {
  .cp-field-row { grid-template-columns: 1fr; }
}
.cp-field {
  margin-bottom: 14px;
}
.cp-field label {
  display: block;
  font-size: .75rem;
  font-weight: 500;
  color: var(--text-muted);
  margin-bottom: 5px;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.cp-field input,
.cp-field textarea,
.cp-field select {
  width: 100%;
  padding: 10px 14px;
  border: 1px solid var(--border, #e8e5e3);
  border-radius: 8px;
  font-family: var(--font-body);
  font-size: .9rem;
  background: var(--bg-primary);
  color: var(--text-primary);
  transition: border-color .2s;
  -webkit-appearance: none;
}
.cp-field input:focus,
.cp-field textarea:focus,
.cp-field select:focus {
  outline: none;
  border-color: var(--accent);
}
.cp-file-input {
  font-size: .82rem !important;
  padding: 8px !important;
}

/* Custom select dropdown */
.cp-select-wrap {
  position: relative;
}
.cp-select-btn {
  width: 100%;
  padding: 10px 14px;
  padding-right: 36px;
  border: 1px solid var(--border, #e8e5e3);
  border-radius: 8px;
  font-family: var(--font-body);
  font-size: .9rem;
  background: var(--bg-primary);
  color: var(--text-primary);
  text-align: left;
  cursor: pointer;
  transition: border-color .2s;
  position: relative;
}
.cp-select-btn::after {
  content: '';
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  border: 5px solid transparent;
  border-top: 5px solid var(--text-muted);
}
.cp-select-btn.open { border-color: var(--accent); }
.cp-select-btn.open::after { border-top: none; border-bottom: 5px solid var(--accent); }
.cp-select-opts {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  background: var(--bg-primary);
  border: 1px solid var(--border, #e8e5e3);
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(0,0,0,.12);
  z-index: 10;
  max-height: 240px;
  overflow-y: auto;
  padding: 4px;
}
.cp-select-opts.open { display: block; }
.cp-select-opt {
  padding: 10px 12px;
  font-size: .88rem;
  color: var(--text-primary);
  border-radius: 6px;
  cursor: pointer;
  transition: background .15s;
}
.cp-select-opt:hover { background: var(--bg-secondary); }
.cp-select-opt.selected { background: rgba(242, 113, 130, .1); color: var(--accent); font-weight: 500; }
.cp-select-opt--header {
  font-size: .72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--text-muted);
  padding: 8px 12px 4px;
  cursor: default;
}
.cp-select-opt--header:hover { background: none; }

/* Dark mode — contact popup matches booking popup */
[data-theme="dark"] .cp-reason {
  background: rgba(255,255,255,.03);
  border-color: rgba(255,255,255,.06);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
[data-theme="dark"] .cp-reason:hover {
  border-color: rgba(var(--accent-rgb), .4);
  background: rgba(var(--accent-rgb), .08);
  box-shadow: var(--neon-border-glow);
}
[data-theme="dark"] .cp-reason__icon {
  background: rgba(255,255,255,.06);
}
[data-theme="dark"] .cp-reason:hover .cp-reason__icon {
  background: var(--accent);
  box-shadow: 0 0 12px rgba(var(--accent-rgb), .4);
}
[data-theme="dark"] .cp-reason__text { color: var(--text-primary); }
[data-theme="dark"] .cp-auto-card { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.06); }
[data-theme="dark"] .cp-auto-card__title { color: var(--text-primary); }
[data-theme="dark"] .cp-auto-card__text { color: var(--text-secondary); }
[data-theme="dark"] .cp-auto-card__icon { background: var(--accent); box-shadow: 0 0 12px rgba(var(--accent-rgb), .4); }
[data-theme="dark"] .cp-field input,
[data-theme="dark"] .cp-field textarea,
[data-theme="dark"] .cp-field select { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.08); color: var(--text-primary); }
[data-theme="dark"] .cp-field input:focus,
[data-theme="dark"] .cp-field textarea:focus { border-color: var(--accent); }
[data-theme="dark"] .cp-select-btn { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.08); color: var(--text-primary); }
[data-theme="dark"] .cp-select-opts { background: var(--bg-primary); border-color: rgba(255,255,255,.1); }
[data-theme="dark"] .cp-select-opt:hover { background: rgba(255,255,255,.06); }
[data-theme="dark"] .dsar-form-wrap { background: rgba(255,255,255,.03); border-color: rgba(255,255,255,.06); }

/* ============================================================
   SCARCITY BADGE
   ============================================================ */
.scarcity-badge {
  position: fixed;
  bottom: 88px;
  left: 50%;
  transform: translateX(-50%);
  z-index: var(--z-fab);
  font-family: var(--font-body);
  font-size: 0.6875rem;
  font-weight: 500;
  color: var(--accent);
  background: var(--glass-bg-solid);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  padding: 4px 14px;
  border-radius: var(--radius-full);
  text-align: center;
  line-height: 1.2;
  white-space: nowrap;
  box-shadow: var(--shadow-sm);
  pointer-events: none;
}
.scarcity-badge:empty { display: none; }
@media (min-width: 768px) {
  .scarcity-badge { display: none; }
}

/* ============================================================
   BOOKING PILL (Floating bottom center)
   ============================================================ */
/* ── Before/After Slider ── */
.ba-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 24px;
  margin-top: 32px;
}
.ba-card-wrap { max-width: 100%; }
.ba-card {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  aspect-ratio: 4/3;
  cursor: ew-resize;
  box-shadow: var(--shadow-md);
  -webkit-user-select: none;
  user-select: none;
}
.ba-card .ba-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ba-card .ba-img--after {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ba-card .ba-img-before {
  position: absolute;
  inset: 0;
  z-index: 2;
  clip-path: inset(0 50% 0 0);
}
.ba-card .ba-img-before .ba-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ba-handle {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 3px;
  background: #fff;
  z-index: 10;
  cursor: ew-resize;
  transform: translateX(-50%);
}
.ba-handle__dot {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 40px;
  height: 40px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 2px 12px rgba(0,0,0,0.2);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%231a1816' stroke-width='2'%3E%3Cpath d='M8 4l-6 8 6 8'/%3E%3Cpath d='M16 4l6 8-6 8'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 18px;
  display: block;
}
.ba-caption {
  text-align: center;
  margin-top: 16px;
  font-size: .9rem;
  color: var(--text-secondary);
  line-height: 1.6;
}
.ba-caption strong {
  display: block;
  font-family: var(--font-display);
  font-size: 1.15rem;
  color: var(--text-primary);
  font-weight: 400;
  margin-bottom: 2px;
}
@media (max-width: 767px) {
  .ba-grid { grid-template-columns: 1fr; }
}

/* ── Booking Pill ── */
/* Dark mode default: glassmorphic */
@media (min-width: 1024px) {
  .booking-pill { display: none !important; }
}
.booking-pill {
  position: fixed;
  bottom: 28px;
  left: 50%;
  transform: translateX(-50%);
  z-index: var(--z-fab);
  display: flex;
  align-items: center;
  gap: 8px;
  background: rgba(255, 255, 255, 0.06);
  backdrop-filter: blur(24px) saturate(1.4);
  -webkit-backdrop-filter: blur(24px) saturate(1.4);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius-full);
  padding: 6px 6px 6px 22px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.25), inset 0 0.5px 0 rgba(255,255,255,0.08);
}
.booking-pill__title {
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 600;
  color: #fff;
  white-space: nowrap;
  margin-right: 4px;
}
.booking-pill__btn {
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 500;
  padding: 10px 24px;
  border-radius: var(--radius-full);
  text-decoration: none;
  transition: all 0.2s;
  white-space: nowrap;
}
/* Dark: Anruf = white outline, white text */
.booking-pill__btn--outline {
  background: transparent;
  color: #fff;
  border: 1.5px solid rgba(255,255,255,0.3);
}
/* Status dot */
.booking-pill__status {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  margin-right: 6px;
  vertical-align: middle;
  background: var(--text-muted);
}
.booking-pill__status--green {
  background: #22c55e;
  box-shadow: 0 0 6px rgba(34,197,94,0.5);
  animation: pill-pulse 2s infinite;
}
.booking-pill__status--orange {
  background: #f97316;
  box-shadow: 0 0 6px rgba(249,115,22,0.4);
}
.booking-pill__status--yellow {
  background: #eab308;
  box-shadow: 0 0 6px rgba(234,179,8,0.4);
}
.booking-pill__status--red {
  background: #ef4444;
}
@keyframes pill-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.5; }
}
.booking-pill__btn--outline:hover {
  border-color: #fff;
  background: rgba(255,255,255,0.1);
}
/* Dark: Online = accent filled */
.booking-pill__btn--filled {
  background: var(--accent);
  color: #fff;
  border: 1.5px solid var(--accent);
}
.booking-pill__btn--filled:hover {
  background: var(--accent-dark, #d94f60);
  border-color: var(--accent-dark, #d94f60);
}

/* Light mode: pink pill, no glass */
[data-theme="light"] .booking-pill,
html:not([data-theme="dark"]) .booking-pill {
  background: var(--accent);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border: none;
  box-shadow: 0 6px 24px rgba(242,113,130,0.35);
}
[data-theme="light"] .booking-pill__title,
html:not([data-theme="dark"]) .booking-pill__title {
  color: #1a1816;
}
/* Light: Anruf = black outline, black text */
[data-theme="light"] .booking-pill__btn--outline,
html:not([data-theme="dark"]) .booking-pill__btn--outline {
  color: #1a1816;
  border-color: #1a1816;
  background: transparent;
}
[data-theme="light"] .booking-pill__btn--outline:hover,
html:not([data-theme="dark"]) .booking-pill__btn--outline:hover {
  background: rgba(0,0,0,0.08);
}
/* Light: Online = black filled, pink text */
[data-theme="light"] .booking-pill__btn--filled,
html:not([data-theme="dark"]) .booking-pill__btn--filled {
  background: #1a1816;
  color: var(--accent);
  border-color: #1a1816;
}
[data-theme="light"] .booking-pill__btn--filled:hover,
html:not([data-theme="dark"]) .booking-pill__btn--filled:hover {
  background: #000;
}

/* Mobile */
@media (max-width: 767px) {
  .booking-pill {
    bottom: calc(16px + env(safe-area-inset-bottom, 0px));
    left: 12px;
    right: 12px;
    transform: none;
    justify-content: center;
    padding: 5px 5px 5px 14px;
    gap: 6px;
  }
  .booking-pill__title {
    font-size: 0.8rem;
    margin-right: 2px;
  }
  .booking-pill__btn {
    flex: 1;
    text-align: center;
    padding: 11px 10px;
    font-size: 0.8rem;
  }
}
@media (max-width: 374px) {
  .booking-pill__title {
    display: none; /* Hide "Termin buchen" on very small screens */
  }
}
/* Legacy: hide old FAB */
.booking-fab { display: none !important; }

/* ============================================================
   BOOKING POPUP
   ============================================================ */
.booking-popup {
  position: fixed;
  inset: 0;
  z-index: var(--z-overlay);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s ease;
}

.booking-popup.active {
  opacity: 1;
  pointer-events: auto;
}

.booking-popup__overlay {
  position: absolute;
  inset: 0;
  background: var(--overlay-medium);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}

.booking-popup__content {
  position: relative;
  background: var(--bg-primary);
  border-radius: var(--radius-lg);
  padding: clamp(24px, 5vw, 40px);
  max-width: 440px;
  width: calc(100% - 32px);
  max-height: 90vh;
  max-height: 90dvh;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  box-shadow: var(--shadow-xl);
  transform: translateY(20px);
  transition: transform .3s var(--ease-out-expo);
}
.booking-popup__content::-webkit-scrollbar { display: none !important; width: 0 !important; }

.booking-popup.active .booking-popup__content {
  transform: translateY(0);
}

.booking-popup__close {
  position: absolute;
  top: 16px;
  right: 20px;
  background: none;
  border: none !important;
  outline: none !important;
  box-shadow: none;
  font-size: 1.8rem;
  color: var(--text-muted);
  cursor: pointer;
  line-height: 1;
  transition: color .2s;
  padding: 0;
  -webkit-appearance: none;
  appearance: none;
}

.booking-popup__close:hover {
  color: var(--text-primary);
}

.booking-popup__title {
  font-family: var(--font-display);
  font-size: clamp(1.4rem, 3vw, 1.8rem);
  font-weight: 400;
  color: var(--text-primary);
  margin-bottom: 28px;
  text-align: center;
}

.booking-popup__options {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.booking-popup__option {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 20px;
  height: 84px;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,.5);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  transition: all .3s var(--ease-out-expo);
  position: relative;
  text-decoration: none;
  color: inherit;
}
[data-theme="dark"] .booking-popup__option {
  background: rgba(255,255,255,.04);
  border-color: rgba(255,255,255,.08);
}

.booking-popup__option:hover {
  border-color: var(--accent);
  background: rgba(var(--accent-rgb), 0.06);
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}

.booking-popup__info {
  flex: 1;
  min-width: 0;
}

.booking-popup__availability {
  display: block;
  font-size: .65rem;
  color: var(--text-muted);
  white-space: nowrap;
  margin-top: 3px;
}

/* Chip buttons (used in popups, forms) */
.bw-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 20px;
  border-radius: var(--radius-full, 999px);
  border: 1px solid var(--border, #e5e5e5);
  background: transparent;
  font-family: inherit;
  font-size: .8rem;
  font-weight: 500;
  color: var(--text-secondary, #666);
  cursor: pointer;
  transition: all .2s cubic-bezier(.32,.72,0,1);
  -webkit-tap-highlight-color: transparent;
  min-height: 40px;
}
.bw-chip:hover {
  border-color: var(--accent, #f27182);
  color: var(--accent);
  background: rgba(242,113,130,.04);
}
.bw-chip:active {
  transform: scale(.96);
}
.bw-chip.active {
  color: var(--accent, #f27182);
  border-color: var(--accent, #f27182);
  background: transparent;
}
[data-theme="dark"] .bw-chip {
  border-color: var(--border-strong, rgba(255,255,255,.12));
  color: var(--text-secondary, #aaa);
  background: transparent;
}
[data-theme="dark"] .bw-chip:hover {
  border-color: var(--accent);
  color: var(--accent);
  background: rgba(242,113,130,.08);
}
[data-theme="dark"] .bw-chip.active {
  color: var(--accent);
  border-color: var(--accent);
  background: transparent;
}

/* ══════════════════════════════════════════
   REVIEWS PAGE — Google + Phorest Reviews
   ══════════════════════════════════════════ */
.reviews-page__summary {
  padding: 10px 0 32px;
}
.reviews-page__summary-card {
  display: flex;
  align-items: flex-start;
  gap: 40px;
  padding: 32px;
  border-radius: var(--radius-lg, 14px);
  background: var(--bg-secondary, #faf8f6);
  flex-wrap: wrap;
  justify-content: center;
}
.reviews-page__summary-score {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  min-width: 160px;
}
.reviews-page__stars-big {
  color: var(--color-star, #f59e0b);
  font-size: 2.2rem;
  letter-spacing: 4px;
}
.reviews-page__total {
  font-size: .95rem;
  color: var(--text-primary);
  font-weight: 600;
}
.reviews-page__total-detail {
  font-size: .78rem;
  color: var(--text-muted);
}
.reviews-page__dist {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 240px;
  flex: 1;
  max-width: 340px;
}
.reviews-page__dist-row {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: .75rem;
  color: var(--text-muted);
  height: 24px;
}
.reviews-page__dist-label { width: 36px; text-align: right; flex-shrink: 0; font-weight: 600; font-size: .9rem; color: var(--text-primary); }
.reviews-page__dist-bar {
  flex: 1;
  height: 10px;
  border-radius: 5px;
  background: rgba(0,0,0,.05);
  overflow: hidden;
}
.reviews-page__dist-fill {
  height: 100%;
  border-radius: 4px;
  background: var(--color-star, #f59e0b);
  width: 0;
  transition: width 1s cubic-bezier(.32,.72,0,1);
}
.reviews-page__dist-fill--4 { background: #f0c040; }
.reviews-page__dist-fill--3 { background: #e0a030; }
.reviews-page__dist-fill--2 { background: #d08030; }
.reviews-page__dist-fill--1 { background: #c06040; }
.reviews-page__dist-count { width: 28px; text-align: right; flex-shrink: 0; font-weight: 600; font-size: .85rem; }
.reviews-page__dist-pct { width: 48px; text-align: right; flex-shrink: 0; font-size: .95rem; font-weight: 600; color: var(--text-primary); }
.reviews-page__dist-fun {
  font-size: .82rem;
  color: var(--text-secondary);
  padding-left: 44px;
  margin-bottom: 8px;
  line-height: 1.4;
}
.reviews-page__filters {
  display: flex;
  gap: 16px;
  margin-bottom: 28px;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
}
.reviews-page__filter-group {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: center;
}
.reviews-page__card {
  padding: 24px;
  border-radius: var(--radius-lg, 14px);
  background: var(--bg-primary, #fff);
  border: 1px solid var(--border, #f0eeec);
  margin-bottom: 12px;
  transition: transform .2s ease, box-shadow .2s ease;
  animation: reviewCardIn .4s ease forwards;
  opacity: 0;
  transform: translateY(12px);
  overflow: visible;
}
.reviews-page__card:hover {
  transform: translateY(-1px);
  box-shadow: var(--shadow-md, 0 4px 16px rgba(0,0,0,.06));
}
.reviews-page__header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}
.reviews-page__avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}
.reviews-page__avatar--initials {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg-secondary, #faf8f6);
  color: var(--text-muted);
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .03em;
}
.reviews-page__meta {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
}
.reviews-page__name { font-weight: 600; font-size: 1rem; color: var(--text-primary); }
.reviews-page__date { font-size: .78rem; color: var(--text-muted); margin-top: 2px; }
.reviews-page__source-badge {
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  opacity: .5;
}
.reviews-page__source-badge--google { color: #4285f4; }
.reviews-page__source-badge--phorest { color: var(--text-muted); }
.reviews-page__stars { color: var(--color-star, #f59e0b); font-size: .95rem; letter-spacing: 2px; margin-bottom: 10px; }
.reviews-page__text { font-size: .92rem; line-height: 1.7; color: var(--text-secondary); }
.reviews-page__reply {
  margin-top: 14px;
  padding: 14px 16px;
  border-radius: 10px;
  background: var(--bg-secondary, #faf8f6);
  font-size: .82rem;
  line-height: 1.55;
  color: var(--text-secondary);
}
.reviews-page__reply strong { font-weight: 600; color: var(--text-primary); }
.reviews-page__our-view {
  margin-top: 14px;
  padding: 16px 18px;
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(242,113,130,.06), rgba(201,169,110,.06));
  border-left: 3px solid var(--accent, #f27182);
  font-size: .85rem;
  line-height: 1.6;
  color: var(--text-secondary);
}
.reviews-page__our-view strong {
  font-weight: 600;
  color: var(--text-primary);
  display: block;
  margin-bottom: 6px;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .04em;
}
@keyframes reviewCardIn { to { opacity: 1; transform: none; } }

/* Statement block — left-aligned like other sections */
.statement-block { padding-bottom: 0; }
.statement-block__inner {
  max-width: 640px;
}
.statement-block__title {
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 3.2rem);
  font-weight: 700;
  line-height: 1.05;
  color: var(--text-primary);
  margin-bottom: 28px;
}
.statement-block__title em {
  color: var(--accent);
  font-style: normal;
}
.statement-block__text {
  font-size: .95rem;
  line-height: 1.8;
  color: var(--text-secondary);
}
.statement-block__text p {
  margin-bottom: 16px;
}
.statement-block__text p:last-child {
  font-weight: 600;
  color: var(--text-primary);
  font-size: 1.05rem;
  margin-bottom: 0;
}
.statement-block__cta {
  margin-top: 28px;
}

/* Matcher Lightbox */
.matcher-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.matcher-lightbox__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.6);
  backdrop-filter: blur(4px);
}
.matcher-lightbox__content {
  position: relative;
  background: var(--bg-primary, #fff);
  border-radius: var(--radius-lg, 14px);
  max-width: 600px;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  padding: 32px;
  box-shadow: 0 20px 60px rgba(0,0,0,.2);
}
.matcher-lightbox__close {
  position: absolute;
  top: 12px;
  right: 12px;
  background: none;
  border: none;
  font-size: 1.6rem;
  cursor: pointer;
  color: var(--text-muted);
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: background .2s;
}
.matcher-lightbox__close:hover { background: var(--bg-secondary); }

[data-theme="dark"] .reviews-page__card {
  background: var(--bg-secondary, #1e1e1e);
  border-color: var(--border-strong, rgba(255,255,255,.08));
}
[data-theme="dark"] .reviews-page__card:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,.3);
}
[data-theme="dark"] .reviews-page__avatar--initials {
  background: rgba(255,255,255,.06);
}
[data-theme="dark"] .reviews-page__reply {
  background: rgba(255,255,255,.04);
}

/* ══════════════════════════════════════════
   AI BLOB — Organic animated KI indicator
   Usage: <div class="ai-blob"></div>
   Sizes: ai-blob--sm (28px), default (40px), ai-blob--lg (56px), ai-blob--xl (80px)
   ══════════════════════════════════════════ */
.ai-blob {
  width: 40px;
  height: 40px;
  position: relative;
  flex-shrink: 0;
  filter: contrast(1.2) brightness(1.1);
}
.ai-blob::before,
.ai-blob::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 30% 70% 70% 30% / 30% 30% 70% 70%;
  animation: aiBlobMorph1 8s ease-in-out infinite, aiBlobSpin 12s linear infinite;
}
.ai-blob::before {
  background: linear-gradient(135deg, #7c3aed 0%, #a855f7 25%, #f27182 50%, #c9a96e 75%, #7c3aed 100%);
  background-size: 300% 300%;
  animation: aiBlobMorph1 8s ease-in-out infinite, aiBlobSpin 12s linear infinite, aiBlobGradient 6s ease infinite;
  box-shadow: 0 0 20px rgba(124,58,237,.35), 0 0 40px rgba(242,113,130,.2);
}
.ai-blob::after {
  background: linear-gradient(225deg, rgba(242,113,130,.6), rgba(124,58,237,.4), rgba(201,169,110,.5));
  background-size: 200% 200%;
  animation: aiBlobMorph2 6s ease-in-out infinite reverse, aiBlobSpin 10s linear infinite reverse, aiBlobGradient 8s ease infinite reverse;
  opacity: .7;
  filter: blur(3px);
  mix-blend-mode: screen;
}
@keyframes aiBlobMorph1 {
  0%   { border-radius: 40% 60% 60% 40% / 40% 40% 60% 60%; }
  25%  { border-radius: 55% 45% 42% 58% / 58% 48% 52% 42%; }
  50%  { border-radius: 48% 52% 45% 55% / 52% 42% 58% 48%; }
  75%  { border-radius: 42% 58% 55% 45% / 60% 44% 56% 40%; }
  100% { border-radius: 40% 60% 60% 40% / 40% 40% 60% 60%; }
}
@keyframes aiBlobMorph2 {
  0%   { border-radius: 45% 55% 52% 48% / 52% 45% 55% 48%; }
  25%  { border-radius: 58% 42% 45% 55% / 42% 52% 48% 58%; }
  50%  { border-radius: 48% 52% 58% 42% / 55% 48% 52% 45%; }
  75%  { border-radius: 52% 48% 42% 58% / 48% 55% 45% 52%; }
  100% { border-radius: 45% 55% 52% 48% / 52% 45% 55% 48%; }
}
@keyframes aiBlobSpin {
  to { transform: rotate(360deg); }
}
@keyframes aiBlobGradient {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
/* Sizes */
.ai-blob--sm { width: 28px; height: 28px; }
.ai-blob--lg { width: 56px; height: 56px; }
.ai-blob--xl { width: 80px; height: 80px; }
.ai-blob--xxl { width: 120px; height: 120px; }
/* Glow variant for dark backgrounds */
.ai-blob--glow::before {
  box-shadow: 0 0 30px rgba(124,58,237,.5), 0 0 60px rgba(242,113,130,.3), 0 0 90px rgba(201,169,110,.15);
}
/* Keep old class for compatibility */
.neva-orb { width: 40px; height: 40px; }
.neva-orb::before, .neva-orb::after { display: none; }
.neva-orb--sm { width: 28px; height: 28px; }
.neva-orb--lg { width: 56px; height: 56px; }

/* Input fields inside popup */
.booking-popup__input {
  padding: 14px 16px;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  font-family: inherit;
  font-size: 16px;
  background: var(--surface-elevated, var(--bg-secondary));
  color: var(--text-primary);
  width: 100%;
  box-sizing: border-box;
  outline: none;
  transition: border-color .2s;
}
.booking-popup__input:focus { border-color: var(--accent); }
.booking-popup__input::placeholder { color: var(--text-muted); }

/* Submit button inside popup — use ds-btn ds-btn-primary class instead */

.booking-popup__option--featured {
  border-color: rgba(var(--accent-rgb), .25);
  background: rgba(var(--accent-rgb), 0.04);
}
[data-theme="dark"] .booking-popup__option--featured {
  border-color: rgba(var(--accent-rgb), .2);
  background: rgba(var(--accent-rgb), 0.06);
}

.booking-popup__icon {
  width: 44px;
  height: 44px;
  border-radius: var(--radius-md);
  background: var(--bg-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 22px;
  color: var(--text-secondary);
}

.booking-popup__option--featured .booking-popup__icon {
  background: var(--accent);
  color: #fff;
}

.booking-popup__label {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: .95rem;
  color: var(--text-primary);
  line-height: 1.3;
}

.booking-popup__detail {
  font-size: .8rem;
  color: var(--text-muted);
  margin-top: 2px;
}


.booking-popup__badge {
  position: absolute;
  top: -8px;
  right: 16px;
  background: var(--accent);
  color: var(--text-inverse);
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .05em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: var(--radius-lg);
}
.booking-popup__beta {
  display: inline-block;
  font-size: .6rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  background: var(--accent);
  background: linear-gradient(135deg, var(--accent-light), var(--accent));
  color: var(--text-inverse);
  padding: 2px 6px;
  border-radius: var(--radius-full);
  vertical-align: middle;
  margin-left: 2px;
}

/* ============================================================
   SOCIAL PROOF TOAST — Booking notification bubble (top-right)
   ============================================================ */
.sp-toast {
  position: fixed;
  top: 80px;
  right: 24px;
  z-index: var(--z-toast);
  width: 300px;
  max-width: calc(100vw - 48px);
  background: var(--bg-primary);
  border: 1px solid var(--bg-tertiary);
  border-radius: var(--radius-md) var(--radius-md) var(--radius-xs) var(--radius-md);
  box-shadow: var(--shadow-md);
  cursor: pointer;
  overflow: hidden;
  opacity: 0;
  transform: translateY(-12px) scale(0.95);
  pointer-events: none;
  transition: opacity 0.35s ease, transform 0.4s var(--ease-out-expo);
  font-family: var(--font-body);
}

.sp-toast--visible {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

.sp-toast:hover {
  box-shadow: var(--shadow-lg);
}

.sp-toast__close {
  position: absolute;
  top: 6px;
  right: 8px;
  width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  color: var(--text-muted);
  font-size: 1rem;
  cursor: pointer;
  padding: 0;
  line-height: 1;
  border-radius: 50%;
  transition: color 0.2s, background 0.2s;
}

.sp-toast__close:hover {
  color: var(--text-secondary);
  background: var(--bg-tertiary);
}

.sp-toast__content {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px 10px;
}

.sp-toast__icon {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  background: rgba(var(--accent-rgb), 0.08);
  border-radius: 50%;
}

.sp-toast__text {
  flex: 1;
  min-width: 0;
  padding-right: 14px;
}

.sp-toast__title {
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--text-secondary);
  line-height: 1.3;
  margin-bottom: 2px;
}

.sp-toast__detail {
  font-size: 0.7rem;
  font-weight: 400;
  color: var(--text-muted);
  line-height: 1.3;
}

.sp-toast__progress {
  height: 2px;
  background: var(--accent);
  width: 100%;
}

/* Mobile: top right, smaller */
@media (max-width: 767px) {
  .sp-toast {
    top: 70px;
    right: 12px;
    left: auto;
    width: auto;
    max-width: calc(100vw - 24px);
    min-width: 260px;
  }
}

/* Hide on booking page to avoid distraction */
.booking-section ~ .sp-toast,
body:has(.booking-section) .sp-toast {
  display: none;
}

/* ============================================================
   TIMELINE — Vertical step timeline (Neukundinnen, About)
   ============================================================ */
.timeline {
  position: relative;
  padding-left: 48px;
}

.timeline::before {
  content: '';
  position: absolute;
  left: 18px;
  top: 8px;
  bottom: 8px;
  width: 2px;
  background: var(--accent);
}

.timeline__item {
  position: relative;
  padding-bottom: 40px;
}

.timeline__item::before {
  content: '';
  position: absolute;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--accent);
  border: 3px solid var(--bg-secondary);
  z-index: 1;
}

.timeline__item:last-child {
  padding-bottom: 0;
}

.timeline__number {
  position: absolute;
  left: -48px;
  top: 0;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--accent);
  color: var(--text-inverse);
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
}

.timeline__content h3 {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 6px;
  line-height: 1.3;
}

.timeline__content p {
  font-size: 0.95rem;
  font-weight: 300;
  line-height: 1.65;
  color: var(--text-secondary);
}

@media (min-width: 768px) {
  .timeline {
    padding-left: 60px;
  }

  .timeline::before {
    left: 22px;
  }

  .timeline__number {
    left: -60px;
    width: 44px;
    height: 44px;
    font-size: 1.125rem;
  }

  .timeline__content h3 {
    font-size: 1.375rem;
  }

  .timeline__item {
    padding-bottom: 48px;
  }
}

/* ============================================================
   HISTORY TIMELINE — Alternating left/right (About page)
   ============================================================ */
.history-timeline {
  position: relative;
  max-width: 800px;
  margin: 0 auto;
  padding-left: 48px;
}

.history-timeline::before {
  content: '';
  position: absolute;
  left: 18px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: var(--accent);
}

.history-timeline__item {
  position: relative;
  padding-bottom: 48px;
  display: flex;
  align-items: flex-start;
  gap: 0;
}

.history-timeline__item:last-child {
  padding-bottom: 0;
}

.history-timeline__year {
  position: absolute;
  left: -48px;
  top: -4px;
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 2.75rem);
  font-weight: 700;
  color: var(--accent);
  line-height: 1;
  opacity: 1;
  width: 48px;
  text-align: right;
  display: none;
}

.history-timeline__dot {
  position: absolute;
  left: -48px;
  top: 4px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--text-muted);
  border: 3px solid var(--bg-secondary);
  z-index: 1;
  margin-left: 12px;
}

.history-timeline__dot--highlight {
  background: var(--accent);
  box-shadow: 0 0 0 4px rgba(var(--accent-rgb), 0.2);
}

.history-timeline__content h3 {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 4px;
  line-height: 1.3;
}

.history-timeline__content h3::before {
  content: attr(data-year);
  display: block;
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 2.75rem);
  font-weight: 700;
  color: var(--accent);
  line-height: 1;
  margin-bottom: 8px;
}

.history-timeline__content p {
  font-size: 0.9375rem;
  font-weight: 300;
  line-height: 1.65;
  color: var(--text-secondary);
}

/* Desktop: alternating left/right layout */
@media (min-width: 768px) {
  .history-timeline {
    padding-left: 0;
  }

  .history-timeline::before {
    left: 50%;
    transform: translateX(-50%);
  }

  .history-timeline__item {
    width: 50%;
    padding-bottom: 56px;
  }

  .history-timeline__item:nth-child(odd) {
    margin-left: 0;
    padding-right: 40px;
    text-align: right;
  }

  .history-timeline__item:nth-child(even) {
    margin-left: 50%;
    padding-left: 40px;
    text-align: left;
  }

  .history-timeline__dot {
    left: auto;
    margin-left: 0;
  }

  .history-timeline__item:nth-child(odd) .history-timeline__dot {
    right: -7px;
    left: auto;
  }

  .history-timeline__item:nth-child(even) .history-timeline__dot {
    left: -7px;
  }

  .history-timeline__content h3 {
    font-size: 1.375rem;
  }
}

/* ============================================================
   VALUES GRID — 2x2 value cards (About page)
   ============================================================ */
.values-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  max-width: 900px;
  margin: 0 auto;
}

.values-card {
  background: var(--bg-secondary);
  border-radius: var(--radius-md);
  padding: 32px;
  text-align: center;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.values-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
}

.values-card__icon {
  width: 56px;
  height: 56px;
  margin: 0 auto 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg-primary);
  border-radius: 50%;
  color: var(--accent);
}

.values-card__title {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 8px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.values-card__text {
  font-size: 0.9375rem;
  font-weight: 300;
  line-height: 1.65;
  color: var(--text-secondary);
}

@media (min-width: 768px) {
  .values-grid {
    grid-template-columns: 1fr 1fr;
    gap: 28px;
  }

  .values-card {
    padding: 40px 32px;
  }
}

/* ============================================================
   DARK MODE — Theme overrides via [data-theme="dark"]
   Uses design-system.css tokens (bridge maps legacy vars automatically).
   Only component-specific overrides here.
   ============================================================ */

/* --- Header & Navigation --- */
[data-theme="dark"] .header--scrolled {
  background: var(--header-bg-scrolled);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
}
[data-theme="dark"] .header__phone {
  color: var(--text-secondary);
}
[data-theme="dark"] .nav__link {
  color: var(--text-primary);
}

/* --- Hero --- */
[data-theme="dark"] .hero {
  background: var(--bg-primary);
}
[data-theme="dark"] .hero__line span {
  color: var(--text-primary);
}
[data-theme="dark"] .hero__line--2 span,
[data-theme="dark"] .hero__line--3 span {
  color: var(--accent);
  text-shadow: var(--neon-text-glow);
}
[data-theme="dark"] .hero__tagline p {
  color: var(--text-secondary);
}
[data-theme="dark"] .hero__sub {
  color: var(--text-secondary);
}
[data-theme="dark"] .hero__image {
  box-shadow: var(--shadow-xl), var(--glow-subtle);
}

/* --- Proof Ticker --- */
[data-theme="dark"] .proof-ticker {
  background: var(--bg-secondary);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
[data-theme="dark"] .proof-ticker__item {
  color: var(--text-secondary);
}

/* --- Numbers Section --- */
[data-theme="dark"] .numbers {
  background: var(--bg-primary);
}
[data-theme="dark"] .numbers__value {
  color: var(--text-primary);
}
[data-theme="dark"] .numbers__label {
  color: var(--text-muted);
}
[data-theme="dark"] .numbers__item {
  border-color: var(--border);
}

/* --- CTA Band --- */
[data-theme="dark"] .cta-band {
  background: var(--bg-tertiary);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
[data-theme="dark"] .cta-band__title {
  color: var(--text-primary);
}
[data-theme="dark"] .cta-band__text {
  color: var(--text-secondary);
}

/* --- Service Cards / Overlay --- */
[data-theme="dark"] .overlay-card {
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
}
[data-theme="dark"] .overlay-card:hover {
  border-color: rgba(var(--accent-rgb), 0.4);
  box-shadow: var(--neon-glow);
}
[data-theme="dark"] .overlay-card__title {
  color: var(--text-primary);
}
[data-theme="dark"] .overlay-card__text {
  color: var(--text-secondary);
}

/* --- Services List --- */
[data-theme="dark"] .services-list {
  background: var(--bg-primary);
}
[data-theme="dark"] .services-list__row {
  border-color: var(--border);
}
[data-theme="dark"] .services-list__name {
  color: var(--text-primary);
}
[data-theme="dark"] .services-list__tag {
  color: var(--text-muted);
  border-color: var(--border);
}

/* --- Features (already dark bg) --- */
[data-theme="dark"] .features--dark {
  background: var(--bg-secondary);
}
[data-theme="dark"] .features--dark .features__heading em {
  color: var(--accent);
  text-shadow: var(--neon-text-glow);
}
[data-theme="dark"] .features__card {
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
}
[data-theme="dark"] .features__card:hover {
  border-color: rgba(var(--accent-rgb), 0.3);
  box-shadow: var(--glow-subtle);
}

/* --- Service Marquee --- */
[data-theme="dark"] .service-marquee {
  background: var(--bg-primary);
}
[data-theme="dark"] .service-marquee__item {
  color: var(--text-muted);
}
[data-theme="dark"] .service-marquee__item:hover {
  color: var(--accent);
  text-shadow: var(--neon-text-glow);
}

/* --- Parallax Section --- */
[data-theme="dark"] .parallax-section__text {
  color: var(--accent);
  text-shadow: var(--neon-text-glow);
}

/* --- Team Section --- */
[data-theme="dark"] .team-section {
  background: var(--bg-primary);
}
[data-theme="dark"] .team-card {
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
}
[data-theme="dark"] .team-card:hover {
  border-color: rgba(var(--accent-rgb), 0.3);
  box-shadow: var(--glow-subtle);
}
[data-theme="dark"] .team-card__name {
  color: var(--text-primary);
}
[data-theme="dark"] .team-card__role {
  color: var(--text-muted);
}

/* --- Reviews --- */
[data-theme="dark"] .reviews {
  background: var(--bg-secondary);
}
[data-theme="dark"] .reviews__slide {
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
}
[data-theme="dark"] .reviews__text {
  color: var(--text-secondary);
}
[data-theme="dark"] .reviews__author {
  color: var(--text-muted);
}
[data-theme="dark"] .reviews__title {
  color: var(--text-primary);
}

/* --- Love Wall --- */
[data-theme="dark"] .love-wall {
  background: var(--bg-primary);
}
[data-theme="dark"] .love-wall__text {
  color: var(--text-primary);
}

/* --- Stacked Cards --- */
[data-theme="dark"] .stacked-section {
  background: var(--bg-secondary);
}
[data-theme="dark"] .stacked-card {
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
}
[data-theme="dark"] .stacked-card:hover {
  border-color: rgba(var(--accent-rgb), 0.3);
  box-shadow: var(--neon-glow);
}

/* --- Blog Preview --- */
[data-theme="dark"] .blog-preview {
  background: var(--bg-primary);
}
[data-theme="dark"] .blog-card {
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
}
[data-theme="dark"] .blog-card:hover {
  border-color: rgba(var(--accent-rgb), 0.3);
  box-shadow: var(--glow-subtle);
}
[data-theme="dark"] .blog-card__title {
  color: var(--text-primary);
}
[data-theme="dark"] .blog-card__excerpt {
  color: var(--text-secondary);
}

/* --- FAQ --- */
[data-theme="dark"] .faq-section {
  background: var(--bg-secondary);
}
[data-theme="dark"] .faq__item {
  border-color: var(--border);
}
[data-theme="dark"] .faq__question {
  color: var(--text-primary);
}
[data-theme="dark"] .faq__answer {
  color: var(--text-secondary);
}

/* --- FAQ Marquee --- */
[data-theme="dark"] .faq-marquee__text {
  color: var(--text-muted);
}

/* --- Standort / Location --- */
[data-theme="dark"] .standort {
  background: var(--bg-primary);
}
[data-theme="dark"] .standort__col h3 {
  color: var(--text-primary);
}
[data-theme="dark"] .standort__col p,
[data-theme="dark"] .standort__col li {
  color: var(--text-secondary);
}

/* --- Social Proof --- */
[data-theme="dark"] .social-proof {
  background: var(--bg-secondary);
}
[data-theme="dark"] .social-proof__headline {
  color: var(--text-primary);
}

/* --- Social Feed --- */
[data-theme="dark"] .social-feed {
  background: var(--bg-primary);
}

/* --- CTA Final --- */
[data-theme="dark"] .cta-final {
  background: var(--bg-tertiary);
  border-top: 1px solid var(--border);
}
[data-theme="dark"] .cta-final__title {
  color: var(--text-primary);
}
[data-theme="dark"] .cta-final__title em {
  color: var(--accent);
  text-shadow: var(--neon-text-glow);
}
[data-theme="dark"] .cta-final__text {
  color: var(--text-secondary);
}

/* --- Labels & General --- */
[data-theme="dark"] .section-label {
  color: var(--text-muted);
  border-color: var(--border);
}
[data-theme="dark"] .section-label--light {
  color: var(--text-muted);
  border-color: var(--border);
}
[data-theme="dark"] .philosophy__statement {
  color: var(--text-primary);
}
[data-theme="dark"] .philosophy__text {
  color: var(--text-secondary);
}
[data-theme="dark"] .editorial__text {
  color: var(--text-secondary);
}

/* --- Footer --- */
/* Footer dark mode — consolidated in one block below (line ~6827) */

/* --- Booking Bar (mobile) --- */
[data-theme="dark"] .booking-bar {
  background: var(--bar-bg);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border-top: 1px solid var(--border);
}

/* --- Generic: All off-white sections --- */
[data-theme="dark"] .section--off-white {
  background: var(--bg-secondary);
}

/* Legacy .btn dark mode removed — DS handles dark mode via .ds-btn-primary / .ds-btn-secondary */

/* --- Headings --- */
[data-theme="dark"] h1,
[data-theme="dark"] h2,
[data-theme="dark"] h3 {
  color: var(--text-primary);
}

/* --- Images: subtle glow on hover --- */
[data-theme="dark"] img:not(.header__logo img):not(.footer__fullwidth-logo-img) {
  opacity: 0.92;
  transition: opacity 0.3s ease;
}
[data-theme="dark"] img:not(.header__logo img):not(.footer__fullwidth-logo-img):hover {
  opacity: 1;
}

/* ----- FOCUS-VISIBLE (Keyboard Accessibility) ----- */
:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

.ds-btn:focus-visible,
.ds-btn-primary:focus-visible,
.ds-btn-secondary:focus-visible,
.ds-btn-white:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  box-shadow: 0 0 0 4px rgba(var(--accent-rgb), 0.2);
}

.blog-card:focus-visible,
.glossary-card:focus-visible,
.service-card-home:focus-visible,
.pricing-card:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

/* ═══════════════════════════════════════════════════
   DARK MODE — Component Overrides
   Consolidated from dark-mode.css + dark-mode-v2.css
   Token definitions are in design-system.css.
   This section handles component-level visual overrides.
   ═══════════════════════════════════════════════════ */

/* ── Base ── */
[data-theme="dark"] body {
  background: var(--bg-primary);
  color: var(--text-primary);
}
[data-theme="dark"] main,
[data-theme="dark"] #main,
[data-theme="dark"] #main-content {
  background: var(--bg-primary);
}

/* ── Animated Background Blobs ── */
[data-theme="dark"] body::before,
[data-theme="dark"] body::after {
  content: '';
  position: fixed;
  border-radius: 50%;
  pointer-events: none;
  z-index: -1;
  will-change: transform;
  mix-blend-mode: screen;
}
[data-theme="dark"] body::before {
  width: 60vw; height: 60vh;
  top: -10%; left: 0%;
  background: radial-gradient(ellipse at center, rgba(var(--accent-rgb), 0.18) 0%, rgba(var(--accent-rgb), 0.06) 40%, transparent 70%);
  animation: blob-drift-1 25s ease-in-out infinite;
}
[data-theme="dark"] body::after {
  width: 55vw; height: 55vh;
  bottom: 0%; right: 0%;
  background: radial-gradient(ellipse at center, rgba(var(--accent-rgb), 0.12) 0%, rgba(201, 169, 110, 0.06) 40%, transparent 70%);
  animation: blob-drift-2 30s ease-in-out infinite;
}
@keyframes blob-drift-1 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  25% { transform: translate(8vw, 12vh) scale(1.05); }
  50% { transform: translate(-5vw, 25vh) scale(0.95); }
  75% { transform: translate(10vw, 5vh) scale(1.02); }
}
@keyframes blob-drift-2 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  25% { transform: translate(-10vw, -8vh) scale(0.95); }
  50% { transform: translate(8vw, -15vh) scale(1.06); }
  75% { transform: translate(-3vw, -5vh) scale(0.98); }
}
@supports (-webkit-touch-callout: none) {
  [data-theme="dark"] body::before,
  [data-theme="dark"] body::after { position: absolute; }
}

/* ── Header (Glassmorphism) ── */
/* [data-theme="dark"] .header — removed: identical to base rule */
[data-theme="dark"] .header--scrolled,
[data-theme="dark"] .header.scrolled {
  background: rgba(8, 6, 6, 0.65);
  backdrop-filter: blur(48px) saturate(200%);
  -webkit-backdrop-filter: blur(48px) saturate(200%);
  box-shadow: 0 1px 0 rgba(var(--accent-rgb), 0.12);
}
[data-theme="dark"] .header__logo img {
  filter: none;
}
[data-theme="dark"] .header__nav a { color: rgba(245, 245, 245, 0.7); }
[data-theme="dark"] .header__nav a:hover,
[data-theme="dark"] .header__nav a.active { color: var(--accent); }
/* Before scroll: bright text on transparent header for readability over hero */
[data-theme="dark"] .header:not(.header--scrolled) .header__phone,
[data-theme="dark"] .header:not(.header--scrolled) .header__proof,
[data-theme="dark"] .header:not(.header--scrolled) .header__proof-score,
[data-theme="dark"] .header:not(.header--scrolled) .header__lang,
[data-theme="dark"] .header:not(.header--scrolled) .header__lang a {
  color: rgba(255, 255, 255, .85);
}
/* After scroll: muted text on glass header */
[data-theme="dark"] .header__proof { color: var(--text-muted); }
[data-theme="dark"] .header__lang a { color: var(--text-muted); }
[data-theme="dark"] .header__lang a:hover { color: var(--accent); }
[data-theme="dark"] .header__phone { color: var(--text-muted); }

/* ── Hamburger / Menu ── */
[data-theme="dark"] .hamburger__line { background: var(--accent); }
[data-theme="dark"] .hamburger.active .hamburger__line { background: var(--text-primary); }

/* ── Hero ── */
[data-theme="dark"] .hero { background: transparent; }
[data-theme="dark"] .hero__line { color: var(--text-primary); }
[data-theme="dark"] .hero__line--2,
[data-theme="dark"] .hero__line--3 { color: var(--accent); }
[data-theme="dark"] .hero__image {
  border: none;
  box-shadow: none;
}
[data-theme="dark"] .hero__cta--filled { background: var(--accent); color: var(--bg-primary); }
[data-theme="dark"] .hero__cta--outline { border-color: rgba(var(--accent-rgb), 0.3); color: var(--text-primary); }
[data-theme="dark"] .hero__cta--outline:hover { border-color: var(--accent); color: var(--accent); }
[data-theme="dark"] .hero__tagline p { color: var(--text-secondary); }
[data-theme="dark"] .hero__bg-text,
[data-theme="dark"] .editorial__bg-text { color: var(--accent); opacity: 0.03; }
[data-theme="dark"] .hero-logo img { filter: brightness(0) invert(1); }

/* ── Proof Ticker ── */
[data-theme="dark"] .proof-ticker {
  background: rgba(10, 10, 10, 0.5);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
[data-theme="dark"] .proof-ticker__item { color: var(--text-muted); }
[data-theme="dark"] .proof-ticker__dot { background: var(--accent); }
[data-theme="dark"] .proof-bar {
  background: rgba(10, 10, 10, 0.5);
  border-bottom: 1px solid var(--border);
}
[data-theme="dark"] .proof-bar__item { color: var(--text-secondary); }

/* ── Marquee ── */
[data-theme="dark"] .marquee,
[data-theme="dark"] .service-marquee {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  border-top: none !important;
  border-bottom: none !important;
}
[data-theme="dark"] .marquee__text {
  color: var(--accent) !important;
  -webkit-text-stroke: none !important;
  text-shadow: none !important;
}
[data-theme="dark"] .service-marquee__item--filled {
  text-shadow: none !important;
  color: var(--accent) !important;
}
[data-theme="dark"] .service-marquee__item--outline {
  -webkit-text-stroke: 1.5px var(--accent) !important;
  color: transparent !important;
  text-shadow: none !important;
}
[data-theme="dark"] .service-marquee__sep { color: var(--accent); }

/* ── Love Wall ── */
[data-theme="dark"] .love-wall { background: transparent; }
[data-theme="dark"] .love-wall__text { color: var(--text-primary); }
[data-theme="dark"] .love-wall__text--bottom { color: var(--accent); }
[data-theme="dark"] .love-wall__polaroid-frame {
  background: var(--glass-bg);
  border: 1px solid rgba(var(--accent-rgb), 0.15);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
[data-theme="dark"] .love-wall__polaroid-caption { color: var(--text-secondary); }

/* ── Sections ── */
[data-theme="dark"] .section,
[data-theme="dark"] section { background-color: transparent; }
[data-theme="dark"] .section__label { color: var(--accent); }
[data-theme="dark"] .faq__item,
[data-theme="dark"] .faq__question,
[data-theme="dark"] .editorial,
[data-theme="dark"] .philosophy,
[data-theme="dark"] .team-section,
[data-theme="dark"] .location,
[data-theme="dark"] .social-proof { background: var(--bg-secondary); }

/* ── Cards (Glassmorphism) ── */
[data-theme="dark"] .card,
[data-theme="dark"] .pricing-card,
[data-theme="dark"] .review-card,
[data-theme="dark"] .service-card-home,
[data-theme="dark"] .team-card,
[data-theme="dark"] .glossary-card,
[data-theme="dark"] .blog-card {
  background: var(--glass-bg);
  border: 1px solid var(--border);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
[data-theme="dark"] .card:hover,
[data-theme="dark"] .pricing-card:hover,
[data-theme="dark"] .service-card-home:hover,
[data-theme="dark"] .blog-card:hover,
[data-theme="dark"] .review-card:hover,
[data-theme="dark"] .glossary-card:hover {
  border-color: rgba(var(--accent-rgb), 0.25);
}
[data-theme="dark"] .stacked-card__inner {
  background: var(--glass-bg);
  border: 1px solid var(--border);
  backdrop-filter: blur(16px) saturate(1.2);
  -webkit-backdrop-filter: blur(16px) saturate(1.2);
}
[data-theme="dark"] .service-card-home__img { border-bottom: 1px solid var(--border); }
[data-theme="dark"] .service-card-home__badge { background: var(--accent); color: var(--bg-primary); }

/* ── Pricing Cards ── */
[data-theme="dark"] .pricing-card--featured { border-color: rgba(var(--accent-rgb), 0.35); }
[data-theme="dark"] .pricing-card__badge { background: var(--accent); color: var(--bg-primary); }

/* ── Buttons ── */
[data-theme="dark"] .btn--primary,
[data-theme="dark"] .ds-btn-primary { background: var(--accent); color: var(--bg-primary); }
[data-theme="dark"] .btn--primary:hover,
[data-theme="dark"] .ds-btn-primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 0 12px rgba(var(--accent-rgb), 0.5), 0 0 30px rgba(var(--accent-rgb), 0.2);
}
[data-theme="dark"] .btn--secondary,
[data-theme="dark"] .ds-btn-secondary {
  border-color: rgba(var(--accent-rgb), 0.3);
  color: var(--text-primary);
}
[data-theme="dark"] .btn--secondary:hover,
[data-theme="dark"] .ds-btn-secondary:hover {
  border-color: var(--accent);
  color: var(--accent);
  box-shadow: var(--neon-border-glow);
}
[data-theme="dark"] .btn--white { background: var(--bg-secondary); }

/* ── Stats / Numbers ── */
[data-theme="dark"] .stats,
[data-theme="dark"] .numbers {
  background: rgba(10, 10, 10, 0.6);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
[data-theme="dark"] .stats__number,
[data-theme="dark"] .numbers__value,
[data-theme="dark"] .numbers__unit { color: var(--accent); }
[data-theme="dark"] .stats__divider { background: rgba(var(--accent-rgb), 0.15); }

/* ── CTA Section ── */
[data-theme="dark"] .cta-section {
  background: linear-gradient(135deg, var(--bg-secondary) 0%, rgba(var(--accent-rgb), 0.05) 50%, var(--bg-secondary) 100%);
  border: 1px solid var(--border);
}

/* ── Promise / Features ── */
[data-theme="dark"] .promise-card,
[data-theme="dark"] .feature-card {
  background: var(--glass-bg);
  border: 1px solid var(--border);
}
[data-theme="dark"] .promise-card:hover,
[data-theme="dark"] .feature-card:hover { border-color: rgba(var(--accent-rgb), 0.25); }
[data-theme="dark"] .promise-card__number { color: var(--accent); }

/* ── Reviews ── */
[data-theme="dark"] .reviews { background: transparent; }

/* ── Footer ── */
/* Footer dark mode overrides removed — footer is always dark */

/* ── Booking ── */
[data-theme="dark"] .sticky-book {
  background: rgba(10, 10, 10, 0.95);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border-top: 1px solid rgba(var(--accent-rgb), 0.15);
}
[data-theme="dark"] .booking-popup__overlay {
  background: rgba(0, 0, 0, 0.7);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
[data-theme="dark"] .booking-popup__content {
  background: rgba(10, 10, 10, 0.92);
  border: 1px solid rgba(var(--accent-rgb), 0.15);
  backdrop-filter: blur(28px);
  -webkit-backdrop-filter: blur(28px);
  box-shadow: var(--neon-glow);
  background-image: var(--glass-shimmer);
}
[data-theme="dark"] .booking-popup__close {
  color: var(--text-muted);
}
[data-theme="dark"] .booking-popup__close:hover {
  color: var(--accent);
  text-shadow: var(--neon-text-glow);
}
[data-theme="dark"] .booking-popup__option {
  border-color: rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.03);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  transition: all .3s var(--ease-out-expo);
}
[data-theme="dark"] .booking-popup__option:hover {
  border-color: rgba(var(--accent-rgb), 0.4);
  background: rgba(var(--accent-rgb), 0.08);
  box-shadow: var(--neon-border-glow);
  transform: translateY(-2px);
}
[data-theme="dark"] .booking-popup__option--featured {
  border-color: rgba(var(--accent-rgb), 0.35);
  background: rgba(var(--accent-rgb), 0.06);
  box-shadow: 0 0 12px rgba(var(--accent-rgb), 0.2), 0 0 30px rgba(var(--accent-rgb), 0.08);
  background-image: var(--glass-shimmer);
}
[data-theme="dark"] .booking-popup__icon {
  background: rgba(255, 255, 255, 0.06);
}
[data-theme="dark"] .booking-popup__icon svg {
  stroke: var(--text-secondary);
}
[data-theme="dark"] .booking-popup__option--featured .booking-popup__icon {
  background: var(--accent);
  box-shadow: 0 0 12px rgba(var(--accent-rgb), 0.4);
}
[data-theme="dark"] .booking-popup__option--featured .booking-popup__icon svg {
  stroke: #fff;
}
[data-theme="dark"] .booking-popup__title {
  color: var(--text-primary);
}
[data-theme="dark"] .booking-popup__label {
  color: var(--text-primary);
}
[data-theme="dark"] .booking-popup__detail {
  color: var(--text-muted);
}
[data-theme="dark"] .booking-popup__beta {
  color: #fff;
  background: rgba(var(--accent-rgb), 0.3);
  border: 1px solid rgba(var(--accent-rgb), 0.4);
}
[data-theme="dark"] .booking-popup__badge {
  box-shadow: 0 0 8px rgba(var(--accent-rgb), 0.5);
}
/* Dark mode FAB glow */
[data-theme="dark"] .booking-fab {
  background: rgba(10, 10, 10, 0.9);
  border: 1px solid rgba(var(--accent-rgb), 0.2);
  box-shadow: var(--neon-border-glow);
  color: var(--text-primary);
}
[data-theme="dark"] .booking-fab:hover {
  background: var(--accent);
  color: #fff;
  box-shadow: var(--neon-glow);
}

/* ── Forms ── */
[data-theme="dark"] input,
[data-theme="dark"] textarea,
[data-theme="dark"] select {
  background: rgba(15, 15, 15, 0.8);
  border-color: var(--border);
  color: var(--text-primary);
}
[data-theme="dark"] input:focus,
[data-theme="dark"] textarea:focus,
[data-theme="dark"] select:focus {
  border-color: var(--accent);
  box-shadow: var(--shadow-focus);
  outline: none;
}
[data-theme="dark"] input::placeholder,
[data-theme="dark"] textarea::placeholder { color: var(--text-muted); }

/* ── Headings / Links ── */
[data-theme="dark"] h1, [data-theme="dark"] h2,
[data-theme="dark"] h3, [data-theme="dark"] h4 { color: var(--text-primary); }
[data-theme="dark"] a { color: inherit; }
[data-theme="dark"] a:hover { color: var(--accent); }
[data-theme="dark"] hr { border-color: var(--border); }

/* ── FAQ (Dark) ── */
[data-theme="dark"] .faq { background: transparent; }
[data-theme="dark"] .faq__search-input {
  background: rgba(15, 15, 15, 0.8);
  border-color: var(--border);
  color: var(--text-primary);
}
[data-theme="dark"] .faq__search-input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(var(--accent-rgb), 0.15);
}
[data-theme="dark"] .faq__category-title { color: var(--text-primary); }
[data-theme="dark"] .faq__category-title::before { background: var(--accent); }
[data-theme="dark"] .faq__items .faq__item {
  border-color: var(--border);
  background: transparent;
}
[data-theme="dark"] .faq__items .faq__question { color: var(--text-primary); background: transparent; }
[data-theme="dark"] .faq__items .faq__question:hover { color: var(--accent); }
[data-theme="dark"] .faq__items .faq__answer p,
[data-theme="dark"] .faq__items .faq__answer li { color: var(--text-secondary); }
[data-theme="dark"] .faq__items .faq__answer strong { color: var(--text-primary); }
[data-theme="dark"] .faq__search-input::placeholder { color: var(--text-muted); }
[data-theme="dark"] .faq__no-results { color: var(--text-muted); }
[data-theme="dark"] .faq__items .faq__item:first-child { border-top-color: var(--border); }
[data-theme="dark"] .faq__items .faq__item::before { background: var(--accent); }
[data-theme="dark"] .faq__items .faq__question::after {
  border-color: rgba(var(--accent-rgb), 0.3);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23f27182' stroke-width='2.5'%3E%3Cline x1='12' y1='5' x2='12' y2='19'%3E%3C/line%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
}

/* ── Glossary (Dark) ── */
[data-theme="dark"] .glossary-search__input {
  background: rgba(15, 15, 15, 0.8);
  border-color: var(--border);
  color: var(--text-primary);
}
[data-theme="dark"] .glossary-search__input:focus { border-color: var(--accent); }
[data-theme="dark"] .glossary-search__icon { color: var(--text-muted); }
[data-theme="dark"] .glossary-tag {
  background: rgba(15, 15, 15, 0.8);
  color: var(--text-primary);
  border: 1px solid var(--border);
}
[data-theme="dark"] .glossary-tag.active,
[data-theme="dark"] .glossary-tag:hover {
  background: var(--accent);
  color: var(--bg-primary);
  border-color: var(--accent);
}
[data-theme="dark"] .gallery-filter {
  background: rgba(15, 15, 15, 0.8);
  color: var(--text-primary);
  border: 1px solid var(--border);
}
[data-theme="dark"] .gallery-filter.active,
[data-theme="dark"] .gallery-filter:hover {
  background: var(--accent);
  color: var(--bg-primary);
  border-color: var(--accent);
}
[data-theme="dark"] .glossary-card__tag {
  background: rgba(15, 15, 15, 0.8);
  color: var(--text-secondary);
}

/* ── Page Hero (Dark) ── */
[data-theme="dark"] .page-hero,
[data-theme="dark"] .page-hero--text { background: transparent; }
[data-theme="dark"] .page-hero h1,
[data-theme="dark"] .page-hero--text h1 { color: var(--text-primary); }
[data-theme="dark"] .page-hero h1 em,
[data-theme="dark"] .page-hero--text h1 em { color: var(--accent); }
[data-theme="dark"] .page-hero .page-hero__sub,
[data-theme="dark"] .page-hero--text .page-hero__sub { color: var(--text-secondary); }

/* ── Breadcrumb (Dark) ── */
[data-theme="dark"] .breadcrumb { color: var(--text-muted); }
[data-theme="dark"] .breadcrumb a:hover { color: var(--accent); }

/* ── Info Box (Dark) ── */
[data-theme="dark"] .info-box {
  background: var(--glass-bg);
  border: 1px solid var(--border);
}
[data-theme="dark"] .info-box__title { color: var(--text-primary); }
[data-theme="dark"] .info-box__row { border-bottom-color: var(--border); }
[data-theme="dark"] .info-box__label { color: var(--text-muted); }
[data-theme="dark"] .info-box__value { color: var(--text-primary); }

/* ── Contact (Dark) ── */
[data-theme="dark"] .contact-info__icon { background: var(--glass-bg); color: var(--accent); }

/* ── Blog (Dark) ── */
[data-theme="dark"] .blog-card__read-time {
  background: rgba(10, 10, 10, 0.85);
  color: var(--text-primary);
  backdrop-filter: blur(6px);
}

/* ── Social Proof Toast (Dark) ── */
[data-theme="dark"] .social-proof-toast {
  background: rgba(10, 10, 10, 0.95);
  border: 1px solid rgba(var(--accent-rgb), 0.15);
  color: var(--text-primary);
}

/* ── Mobile Menu (Dark Glassmorphism — Neo Cyber) ── */
[data-theme="dark"] .mobile-menu {
  background: rgba(12, 10, 9, 0.75);
  backdrop-filter: blur(48px) saturate(2);
  -webkit-backdrop-filter: blur(48px) saturate(2);
}
[data-theme="dark"] .mobile-menu__blob {
  background: radial-gradient(circle, rgba(242,113,130,.12) 0%, rgba(201,169,110,.06) 50%, transparent 70%);
}
[data-theme="dark"] .mobile-menu__link {
  color: #fff;
}
[data-theme="dark"] .mobile-menu__link:hover {
  color: var(--accent);
  text-shadow: 0 0 20px rgba(var(--accent-rgb), 0.3);
}
[data-theme="dark"] .mobile-menu__link--book {
  color: var(--accent);
  text-shadow: 0 0 12px rgba(var(--accent-rgb), 0.4);
}
[data-theme="dark"] .mobile-menu__num { color: rgba(var(--accent-rgb), 0.3); }
[data-theme="dark"] .mobile-menu__sublink {
  color: rgba(255,255,255,.35);
  background: rgba(255,255,255,.04);
}
[data-theme="dark"] .mobile-menu__sublink:hover {
  color: var(--accent);
  background: rgba(242,113,130,.08);
}
[data-theme="dark"] .mobile-menu__sublink.active {
  color: #fff;
  background: var(--accent);
}
[data-theme="dark"] .mobile-menu__item { border-color: rgba(255,255,255,.08); }
[data-theme="dark"] .mobile-menu__footer { border-top-color: rgba(var(--accent-rgb), 0.1); }
[data-theme="dark"] .mobile-menu__info a,
[data-theme="dark"] .mobile-menu__socials a { color: var(--text-muted); }
[data-theme="dark"] .mobile-menu__info a:hover,
[data-theme="dark"] .mobile-menu__socials a:hover {
  color: var(--accent);
  text-shadow: 0 0 8px rgba(var(--accent-rgb), 0.3);
}
[data-theme="dark"] .mobile-menu__sublink {
  color: rgba(255, 255, 255, 0.4);
}
[data-theme="dark"] .mobile-menu__sublink:hover {
  color: var(--accent);
  text-shadow: 0 0 8px rgba(var(--accent-rgb), 0.4);
}

/* ── Theme Toggle ── */
.theme-toggle {
  background: none; border: none; cursor: pointer;
  padding: 0; line-height: 1;
  color: var(--text-secondary); opacity: 0.7;
  transition: opacity 0.3s, color 0.3s, background .3s;
  position: relative; z-index: 101;
  border-radius: var(--radius-full, 999px);
  width: 32px; height: 32px;
  display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.theme-toggle .theme-toggle__icon.material-symbols-outlined {
  font-size: 20px !important;
  width: 20px !important;
  height: 20px !important;
  line-height: 20px !important;
  font-display: block;
}
/* Hide icon text flash until Material Symbols font loads */
.theme-toggle__icon {
  overflow: hidden;
}
.theme-toggle:hover { opacity: 1; background: rgba(0, 0, 0, .05); }
[data-theme="dark"] .theme-toggle { color: var(--accent); opacity: 0.8; }
[data-theme="dark"] .theme-toggle:hover { opacity: 1; background: rgba(255, 255, 255, .08); }

/* ── Scrollbar (Dark) ── */
[data-theme="dark"] ::-webkit-scrollbar { width: 8px; }
[data-theme="dark"] ::-webkit-scrollbar-track { background: var(--bg-primary); }
[data-theme="dark"] ::-webkit-scrollbar-thumb { background: rgba(var(--accent-rgb), 0.2); border-radius: 4px; }
[data-theme="dark"] ::-webkit-scrollbar-thumb:hover { background: rgba(var(--accent-rgb), 0.4); }

/* ── Selection ── */
[data-theme="dark"] ::selection { background: rgba(var(--accent-rgb), 0.3); color: var(--text-primary); }

/* ── Images — slight brightness reduction ── */
[data-theme="dark"] img:not(.header__logo img):not(.footer img):not(.hero-logo img) {
  filter: brightness(0.9);
}

/* ── Neon Hover Effects (Dark — desktop only) ── */
@media (hover: hover) {
  [data-theme="dark"] .btn--primary:hover,
  [data-theme="dark"] .ds-btn-primary:hover {
    box-shadow: var(--neon-border-glow), 0 4px 12px rgba(var(--accent-rgb), 0.2);
  }
  [data-theme="dark"] .btn--secondary:hover,
  [data-theme="dark"] .ds-btn-secondary:hover {
    box-shadow: 0 0 12px rgba(var(--accent-rgb), 0.2);
  }
  [data-theme="dark"] .card:hover,
  [data-theme="dark"] .pricing-card:hover,
  [data-theme="dark"] .service-card-home:hover,
  [data-theme="dark"] .blog-card:hover,
  [data-theme="dark"] .review-card:hover,
  [data-theme="dark"] .glossary-card:hover,
  [data-theme="dark"] .feature-card:hover,
  [data-theme="dark"] .exp-card:hover {
    box-shadow: 0 0 20px rgba(var(--accent-rgb), 0.12), var(--shadow-lg);
    border-color: rgba(var(--accent-rgb), 0.3);
  }
  [data-theme="dark"] .pricing-card--featured:hover {
    box-shadow: 0 0 24px rgba(var(--accent-rgb), 0.25), var(--shadow-xl);
  }
  [data-theme="dark"] a:not(.btn):not(.ds-btn):not(.header__nav a):hover {
    text-shadow: 0 0 8px rgba(var(--accent-rgb), 0.3);
  }
}

/* ── Smooth Theme Transition ── */
html.theme-transitioning,
html.theme-transitioning *:not(.header__logo):not(.header__logo img),
html.theme-transitioning *::before,
html.theme-transitioning *::after {
  transition: background-color 0.4s ease, color 0.4s ease !important;
}
/* Preserve header transitions during theme switch */
html.theme-transitioning .header,
html.theme-transitioning .header__logo img {
  transition: height .6s cubic-bezier(.32,.72,0,1), background .4s ease, backdrop-filter .4s ease, -webkit-backdrop-filter .4s ease, box-shadow .4s ease, color .4s ease !important;
}

/* ── Reduced Motion ── */
@media (prefers-reduced-motion: reduce) {
  [data-theme="dark"] body::before,
  [data-theme="dark"] body::after { animation: none !important; }
  html.theme-transitioning,
  html.theme-transitioning * { transition: none !important; }
}

/* ── Performance hints ── */
[data-theme="dark"] .card,
[data-theme="dark"] .pricing-card,
[data-theme="dark"] .service-card-home,
[data-theme="dark"] .blog-card,
[data-theme="dark"] .btn,
[data-theme="dark"] .ds-btn {
  will-change: transform, box-shadow;
}


/* ============================================================
   MISSING DARK MODE OVERRIDES — Added 2026-03-29
   ============================================================ */

/* ── Tags (Dark) ── */
[data-theme="dark"] .tag {
  background: rgba(255, 255, 255, 0.08);
  color: var(--text-secondary);
}
[data-theme="dark"] .tag:hover {
  background: var(--accent);
  color: var(--text-inverse);
}

/* ── Team Card (Dark) — already exists but ensure completeness ── */
[data-theme="dark"] .team-card {
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
}
[data-theme="dark"] .team-card:hover {
  border-color: rgba(var(--accent-rgb), 0.3);
  box-shadow: var(--glow-subtle);
}
[data-theme="dark"] .team-card__role {
  color: var(--accent);
}

/* ── Service Card (Dark) ── */
[data-theme="dark"] .service-card {
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
}
[data-theme="dark"] .service-card:hover {
  border-color: rgba(var(--accent-rgb), 0.3);
  box-shadow: var(--glow-subtle);
}
[data-theme="dark"] .service-card__title { color: var(--text-primary); }
[data-theme="dark"] .service-card__desc { color: var(--text-secondary); }

/* ── Pricing Card (Dark) — child overrides ── */
[data-theme="dark"] .pricing-card {
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
}
[data-theme="dark"] .pricing-card:hover {
  border-color: rgba(var(--accent-rgb), 0.3);
  box-shadow: var(--glow-subtle);
}
[data-theme="dark"] .pricing-card__name { color: var(--text-primary); }
[data-theme="dark"] .pricing-card__tier { color: var(--text-muted); }
[data-theme="dark"] .pricing-card__price { color: var(--text-primary); }
[data-theme="dark"] .pricing-card__feature { color: var(--text-secondary); border-bottom-color: var(--border); }
[data-theme="dark"] .pricing-card__feature svg { color: var(--accent); }

/* ── Review Card (Dark) — child overrides ── */
[data-theme="dark"] .review-card {
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
}
[data-theme="dark"] .review-card:hover {
  border-color: rgba(var(--accent-rgb), 0.3);
  box-shadow: var(--glow-subtle);
}
[data-theme="dark"] .review-card__text { color: var(--text-secondary); }
[data-theme="dark"] .review-card__author { color: var(--text-primary); }
[data-theme="dark"] .review-card__source { color: var(--text-muted); }

/* ── Glossary Card Tag (Dark) ── */
[data-theme="dark"] .glossary-card__tag {
  background: rgba(255, 255, 255, 0.08);
  color: var(--text-secondary);
}


/* ----- PRINT STYLES ----- */
@media print {
  *,
  *::before,
  *::after {
    background: transparent !important;
    color: #000 !important;
    box-shadow: none !important;
  }

  .header,
  .booking-bar,
  .footer__bottom,
  .proof-ticker,
  .marquee,
  .service-marquee,
  .mobile-menu,
  .theme-toggle,
  .hamburger,
  .neva-widget {
    display: none !important;
  }

  a[href]::after {
    content: " (" attr(href) ")";
    font-size: 0.8em;
  }

  a[href^="#"]::after,
  a[href^="javascript"]::after {
    content: "";
  }

  img {
    max-width: 100% !important;
  }

  .hero {
    min-height: auto !important;
    padding: 2rem 0 !important;
  }

  body {
    font-size: 12pt;
    line-height: 1.5;
  }
}

/* ============================================================
   TEAM PHOTOBOOTH — GSAP pin horizontal scroll
   Design System: uses --accent, --text-primary, --text-muted,
   --bg-secondary, --font-display, --font-body, --max-width
   Buttons: hero__cta--filled, hero__cta--outline (DS buttons)
   ============================================================ */

.pb-wrap {
  position: relative;
  overflow: hidden;
  background: var(--bg-secondary);
}

.pb-track {
  display: flex;
  width: max-content;
  will-change: transform;
}

.pb-panel {
  width: 100vw;
  height: 100vh;
  flex-shrink: 0;
  position: relative;
}

.pb-inner {
  max-width: var(--max-width, 1200px);
  margin: 0 auto;
  padding: 0 24px 0 calc((100vw - var(--max-width, 1200px)) / 2 + 24px);
  height: 100%;
  display: flex;
  align-items: center;
  position: relative;
}

@media (max-width: 1248px) {
  .pb-inner { padding: 0 24px; }
}

.pb-text {
  position: relative;
  z-index: 5;
  max-width: 500px;
  margin-left: 8vw;
}

.pb-names {
  display: flex;
  flex-direction: column;
  margin-bottom: var(--space-lg, 24px);
}

.pb-accent,
.pb-dark {
  font-family: var(--font-display);
  font-size: clamp(3.5rem, 9vw, 7.5rem);
  font-weight: 700;
  line-height: 0.92;
  letter-spacing: -0.02em;
}

.pb-accent { color: var(--accent); }
.pb-dark { color: var(--text-primary); }

.pb-bio {
  font-family: var(--font-body);
  font-size: 0.9rem;
  line-height: 1.7;
  color: var(--text-muted);
  margin-bottom: var(--space-lg, 28px);
  max-width: 400px;
  font-weight: 300;
}

.pb-cta {
  display: flex;
  gap: var(--space-sm, 10px);
}

/* Film strip */
.pb-film {
  position: absolute;
  z-index: 3;
  pointer-events: none;
  display: flex;
  flex-direction: column;
  will-change: transform;
}
.pb-film img {
  height: 90vh;
  width: auto;
  display: block;
}

.pb-panel:nth-child(1) .pb-film { right: 28%; left: auto; top: 50%; transform: translateY(-50%) rotate(4deg); }
.pb-panel:nth-child(2) .pb-film { right: 25%; left: auto; top: 50%; transform: translateY(-50%) rotate(-3deg); }
.pb-panel:nth-child(3) .pb-film { right: 30%; left: auto; top: 50%; transform: translateY(-50%) rotate(5deg); }
.pb-panel:nth-child(4) .pb-film { right: 22%; left: auto; top: 50%; transform: translateY(-50%) rotate(4deg); }
.pb-panel:nth-child(5) .pb-film { right: 27%; left: auto; top: 50%; transform: translateY(-50%) rotate(-3deg); }
.pb-panel:last-child { overflow: visible; }
.pb-panel:last-child .pb-film { right: 24%; left: auto; top: 50%; transform: translateY(-50%) rotate(5deg); }
.pb-panel:nth-child(6):not(:last-child) .pb-film { right: 24%; left: auto; top: 50%; transform: translateY(-50%) rotate(5deg); }

/* ── Mobile ── */
@media (max-width: 768px) {
  .pb-panel { width: 100vw; height: 100vh; height: 100svh; }
  .pb-inner { padding: 0 24px; }
  .pb-text { margin-left: 0; }
  .pb-accent, .pb-dark { font-size: clamp(5rem, 20vw, 9rem); }
  .pb-bio { font-size: 0.85rem; }
  .pb-film { right: 15% !important; opacity: 1 !important; }
  .pb-film img { height: 85vh; }
}

/* ── Mockup Sections (from _mockup-10.html) ── */

/* ── Scarcity Bar ── */
.scarcity {
  background: var(--bg-secondary);
  padding: 14px 0;
  border-bottom: 1px solid var(--border);
}
.scarcity__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 0.8125rem;
  color: var(--text-secondary);
  text-align: center;
}
.scarcity__dot {
  width: 8px; height: 8px;
  background: #4ade80;
  border-radius: 50%;
  animation: pulse-dot 2s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes pulse-dot {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(0.85); }
}
.scarcity strong { font-weight: 600; color: var(--text-primary); }
@media (max-width: 768px) {
  .scarcity__inner { font-size: 0.75rem; padding: 0 16px; }
}
[data-theme="dark"] .scarcity {
  background: var(--bg-dark-card, #242120);
  border-bottom-color: var(--border-dark);
}
[data-theme="dark"] .scarcity__inner { color: var(--text-on-dark-muted); }
[data-theme="dark"] .scarcity strong { color: var(--text-on-dark); }

/* ── Comparison Table ── */
.comparison {
  margin-top: 2rem;
}
.comparison__header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  margin-bottom: 2px;
}
.comparison__header-cell {
  padding: 14px 20px;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border-radius: var(--radius-sm) var(--radius-sm) 0 0;
}
.comparison__header-cell--bad {
  background: #f5f3f1;
  color: var(--text-muted);
}
.comparison__header-cell--good {
  background: var(--bg-tertiary);
  color: var(--accent-dark);
}
.comparison__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
}
.comparison__cell {
  padding: 14px 20px;
  font-size: 0.875rem;
  line-height: 1.5;
  display: flex;
  align-items: center;
  gap: 10px;
}
.comparison__cell--bad {
  background: #fafaf9;
  color: var(--text-muted);
}
.comparison__cell--good {
  background: var(--bg-secondary);
  color: var(--text-secondary);
  font-weight: 500;
}
.comparison__icon {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.7rem;
  flex-shrink: 0;
}
.comparison__icon--bad {
  background: rgba(0,0,0,0.06);
  color: var(--text-muted);
}
.comparison__icon--good {
  background: var(--accent);
  color: #fff;
}
@media (max-width: 768px) {
  .comparison__cell { padding: 12px 14px; font-size: 0.8rem; }
}
[data-theme="dark"] .comparison__header-cell--bad {
  background: var(--bg-dark-card, #242120);
  color: var(--text-on-dark-muted);
}
[data-theme="dark"] .comparison__header-cell--good {
  background: rgba(242,113,130,0.15);
  color: var(--accent-light);
}
[data-theme="dark"] .comparison__cell--bad {
  background: rgba(255,255,255,0.03);
  color: var(--text-on-dark-muted);
}
[data-theme="dark"] .comparison__cell--good {
  background: rgba(242,113,130,0.08);
  color: var(--text-on-dark);
}
[data-theme="dark"] .comparison__icon--bad {
  background: rgba(255,255,255,0.08);
  color: var(--text-on-dark-muted);
}

/* ── Process Steps ── */
.process { background: var(--bg-primary); }
.process__header {
  text-align: center;
  max-width: 600px;
  margin: 0 auto 3rem;
}
.process__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
  position: relative;
}
.process__grid::before {
  content: '';
  position: absolute;
  top: 32px;
  left: 12.5%;
  width: 75%;
  height: 2px;
  background: linear-gradient(90deg, var(--accent-light), var(--accent), var(--accent-light));
  opacity: 0.3;
}
.process__step {
  text-align: center;
  position: relative;
}
.process__num {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--bg-secondary);
  border: 2px solid var(--accent-light);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 20px;
  font-family: var(--font-display);
  font-size: 1.2rem;
  color: var(--accent);
  position: relative;
  z-index: 2;
  background: #fff;
}
.process__step-title {
  font-family: var(--font-display);
  font-size: 1.1rem;
  margin-bottom: 8px;
  color: var(--text-primary);
}
.process__step-desc {
  font-size: 0.85rem;
  color: var(--text-muted);
  line-height: 1.6;
}
@media (max-width: 768px) {
  .process__grid {
    grid-template-columns: 1fr 1fr;
    gap: 40px 24px;
  }
  .process__grid::before { display: none; }
}
[data-theme="dark"] .process { background: var(--bg-dark); }
[data-theme="dark"] .process__num {
  background: var(--bg-dark-card, #242120);
  border-color: var(--accent);
}
[data-theme="dark"] .process__step-title { color: var(--text-on-dark); }
[data-theme="dark"] .process__step-desc { color: var(--text-on-dark-muted); }

/* ── Experience Cards ── */
.exp-card {
  min-height: 90vh;
  position: relative;
  display: flex;
  align-items: flex-end;
  padding: 80px;
  overflow: hidden;
}
.exp-card__bg {
  position: absolute;
  inset: 0;
  z-index: 1;
}
.exp-card__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.8s ease;
}
.exp-card:hover .exp-card__bg img {
  transform: scale(1.03);
}
.exp-card::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(180deg, transparent 30%, rgba(0,0,0,0.75) 100%);
}
.exp-card__content {
  position: relative;
  z-index: 3;
  max-width: 500px;
}
.exp-card__num {
  font-size: 0.75rem;
  font-weight: 500;
  color: rgba(255,255,255,0.5);
  margin-bottom: 12px;
  letter-spacing: 0.1em;
}
.exp-card__title {
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  color: #fff;
  margin-bottom: 12px;
}
.exp-card__desc {
  font-size: 1rem;
  color: rgba(255,255,255,0.7);
  line-height: 1.7;
  font-weight: 300;
}
@media (max-width: 768px) {
  .exp-card {
    min-height: 70vh;
    padding: 40px 24px;
  }
}

/* ── Mini Reviews ── */
.mini-reviews {
  padding: 60px 0;
  background: var(--bg-secondary);
}
.mini-reviews__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.mini-review {
  background: #fff;
  border-radius: var(--radius-md);
  padding: 28px;
  position: relative;
}
.mini-review__quote {
  font-family: var(--font-display);
  font-size: 1rem;
  line-height: 1.5;
  color: var(--text-secondary);
  margin-bottom: 16px;
  font-style: italic;
}
.mini-review__author {
  font-size: 0.8125rem;
  color: var(--text-muted);
  font-weight: 500;
}
.mini-review__stars {
  color: #fbbc04;
  font-size: 0.75rem;
  margin-top: 8px;
  letter-spacing: 2px;
}
@media (max-width: 768px) {
  .mini-reviews__grid { grid-template-columns: 1fr; }
}
[data-theme="dark"] .mini-reviews { background: var(--bg-dark); }
[data-theme="dark"] .mini-review {
  background: var(--bg-dark-card, #242120);
}
[data-theme="dark"] .mini-review__quote { color: var(--text-on-dark); }
[data-theme="dark"] .mini-review__author { color: var(--text-on-dark-muted); }

/* ── Service Cards ── */
.service-card {
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: var(--bg-secondary);
  border-radius: var(--radius-lg);
  overflow: hidden;
  margin-bottom: 24px;
  transition: transform var(--transition), box-shadow var(--transition);
  position: relative;
}
.service-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
}
.service-card__badge {
  position: absolute;
  top: 20px;
  left: 20px;
  z-index: 3;
  background: var(--accent);
  color: #fff;
  padding: 6px 14px;
  border-radius: 50px;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.service-card__img {
  aspect-ratio: 4/3;
  overflow: hidden;
}
.service-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.service-card:hover .service-card__img img {
  transform: scale(1.05);
}
.service-card__body {
  padding: 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.service-card__title {
  font-family: var(--font-display);
  font-size: 1.8rem;
  margin-bottom: 12px;
  color: var(--text-primary);
}
.service-card__desc {
  font-size: 0.9375rem;
  color: var(--text-secondary);
  line-height: 1.7;
  margin-bottom: 16px;
}
.service-card__meta {
  font-size: 0.8125rem;
  color: var(--text-muted);
  margin-bottom: 24px;
  font-weight: 500;
}
@media (max-width: 768px) {
  .service-card { grid-template-columns: 1fr; }
  .service-card__body { padding: 28px; }
  .service-card__title { font-size: 1.5rem; }
}
[data-theme="dark"] .service-card { background: var(--bg-dark-card, #242120); }
[data-theme="dark"] .service-card__title { color: var(--text-on-dark); }
[data-theme="dark"] .service-card__desc { color: var(--text-on-dark-muted); }
[data-theme="dark"] .service-card__meta { color: var(--text-on-dark-muted); }

/* ── Statement ── */
.statement {
  padding: 100px 0;
  text-align: center;
  background: var(--bg-secondary);
  overflow: hidden;
}
.statement__text {
  font-family: var(--font-display);
  font-size: clamp(2.4rem, 6.5vw, 5rem);
  color: var(--accent);
  line-height: 1.1;
  letter-spacing: -0.02em;
  opacity: 0;
  transform: translateY(40px) scale(0.97);
  transition: opacity 1s cubic-bezier(0.16, 1, 0.3, 1),
              transform 1s cubic-bezier(0.16, 1, 0.3, 1);
}
.statement__text.revealed {
  opacity: 1;
  transform: translateY(0) scale(1);
}
[data-theme="dark"] .statement { background: var(--bg-dark); }

/* ── Why Section ── */
.why {
  background: var(--bg-primary);
}
.why__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
  margin-top: 3rem;
}
.why__image {
  border-radius: var(--radius-lg);
  overflow: hidden;
  aspect-ratio: 3/4;
}
.why__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 768px) {
  .why__grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .why__image { aspect-ratio: 4/3; }
}
[data-theme="dark"] .why { background: var(--bg-dark); }

/* ============================================================
   AVAILABILITY BANNER
   ============================================================ */
.availability-banner {
  width: 100%;
  background: var(--bg-secondary, #f0eeec);
  padding: 16px 0;
}
.availability-banner__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.availability-banner__info {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text-primary);
}
.availability-banner__text {
  font-weight: 600;
}
.availability-banner__cta {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--accent, #f27182);
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 0.2s ease;
}
.availability-banner__cta:hover {
  opacity: 0.8;
}
@media (max-width: 767px) {
  .availability-banner__inner {
    flex-direction: column;
    gap: 8px;
    text-align: center;
  }
}
[data-theme="dark"] .availability-banner {
  background: var(--bg-dark-secondary, #2a2826);
}

/* ============================================================
   NEVA LOOK-FINDER
   ============================================================ */
.neva-finder {
  padding: 100px 0;
  background: var(--color-black, #1a1816);
  color: #fff;
  text-align: center;
}
.neva-finder__title {
  font-family: 'Eros', serif;
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 400;
  line-height: 1.15;
  margin: 24px 0 48px;
  color: #fff;
}
.neva-finder__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  margin-bottom: 48px;
}
.neva-finder__card {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 16px;
  padding: 48px 32px;
  transition: transform 0.2s ease, background 0.2s ease;
}
.neva-finder__card:hover {
  transform: translateY(-4px);
  background: rgba(255,255,255,0.1);
}
.neva-finder__icon {
  color: var(--accent, #f27182);
  margin-bottom: 20px;
}
.neva-finder__icon svg {
  width: 48px;
  height: 48px;
}
.neva-finder__card-title {
  font-family: 'Outfit', sans-serif;
  font-size: 1.2rem;
  font-weight: 600;
  margin-bottom: 8px;
  color: #fff;
}
.neva-finder__card-desc {
  font-size: 0.95rem;
  color: rgba(255,255,255,0.6);
  line-height: 1.5;
}
.neva-finder__sub {
  font-size: 1.1rem;
  color: rgba(255,255,255,0.5);
  margin-bottom: 32px;
  font-style: italic;
}
.neva-finder__cta {
  margin-top: 0;
}
@media (max-width: 767px) {
  .neva-finder { padding: 60px 0; }
  .neva-finder__grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .neva-finder__card {
    padding: 32px 24px;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .neva-finder__grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }
}

/* ── Hero Bold (Fashion Eros Text über Bild) ── */
.hero-bold {
  position: relative;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.hero-bold__bg {
  position: absolute;
  inset: 0;
}
.hero-bold__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero-bold__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(26,24,22,0.15) 0%, rgba(26,24,22,0.4) 50%, rgba(26,24,22,0.85) 100%);
  z-index: 1;
}
.hero-bold__content {
  position: relative;
  z-index: 2;
  text-align: center;
  padding: 0 24px 60px;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: auto;
}
.hero-bold__word {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(5rem, 18vw, 14rem);
  line-height: 0.9;
  color: #fff;
  letter-spacing: -0.03em;
  text-transform: uppercase;
  margin: 0 0 24px;
  mix-blend-mode: normal;
}
.hero-bold__sub {
  font-family: var(--font-body);
  font-size: clamp(1rem, 2.5vw, 1.2rem);
  font-weight: 300;
  color: rgba(255,255,255,0.75);
  max-width: 500px;
  margin-bottom: 32px;
  line-height: 1.6;
}
.hero-bold__ctas {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  justify-content: center;
}
@media (max-width: 767px) {
  .hero-bold__word { font-size: clamp(4rem, 22vw, 8rem); }
  .hero-bold__content { padding-bottom: 40px; }
}

/* ── Availability Banner Fix (prominenter) ── */
.availability-banner {
  background: var(--bg-secondary);
  padding: 18px 24px;
  border-bottom: 1px solid var(--border);
}
.availability-banner__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
}
.availability-banner__text {
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--text-primary);
}
.availability-banner__text strong {
  font-weight: 700;
}
.availability-banner__cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 20px;
  background: var(--accent);
  color: #fff;
  border-radius: var(--radius-full, 100px);
  font-size: 0.8125rem;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.2s;
  white-space: nowrap;
}
.availability-banner__cta:hover {
  background: var(--accent-dark, #d94f60);
}
@media (max-width: 767px) {
  .availability-banner { padding: 14px 16px; }
  .availability-banner__inner { font-size: 0.8125rem; gap: 8px; }
}
[data-theme="dark"] .availability-banner { background: var(--bg-dark-card, #242120); border-color: var(--border-dark); }
[data-theme="dark"] .availability-banner__text { color: var(--text-on-dark); }

/* ── Exp Cards: reduce spacing ── */
.exp-cards {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.exp-card {
  position: relative;
  min-height: 50vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}
@media (max-width: 767px) {
  .exp-card { min-height: 40vh; }
}
