/* ═══════════════════════════════════════════════════
   CSS CUSTOM PROPERTIES  (übernommen aus Editorial-Designsystem FKBB)
   ═══════════════════════════════════════════════════ */
:root {
  --color-bg: #FAF9F6;
  --color-bg-dark: #07404B;
  --color-bg-darker: #1A1A1A;
  --color-text: #2D2D2D;
  --color-text-light: #6B6B6B;
  --color-text-on-dark: #F5F5F0;
  --color-accent: #A5C711;
  --color-accent-hover: #8AAE00;
  --color-accent-light: #D8EB83;
  --color-primary: #074A44;
  --color-primary-light: #46807B;
  --color-cryo: #284189;
  --color-cryo-light: #E6EEFB;
  --color-cryo-mist: #7AAFDF;
  --color-warn: #db3732;
  --color-border: #E8E6E1;
  --color-border-light: #F0EFEB;

  --font-heading: 'Inter', sans-serif;
  --font-body: 'Inter', sans-serif;

  --font-size-hero: clamp(3rem, 6vw, 5.5rem);
  --font-size-h1: clamp(2.2rem, 4vw, 3.5rem);
  --font-size-h2: clamp(1.6rem, 3vw, 2.4rem);
  --font-size-h3: clamp(1.2rem, 2vw, 1.6rem);
  --font-size-intro: clamp(1.1rem, 1.8vw, 1.4rem);
  --font-size-body: clamp(1rem, 1.2vw, 1.15rem);
  --font-size-small: clamp(0.85rem, 1vw, 0.95rem);
  --font-size-caption: 0.8rem;

  --space-section: clamp(6rem, 12vh, 10rem);
  --space-inner: clamp(2rem, 4vw, 4rem);
  --max-width-text: 680px;
  --max-width-wide: 1200px;
  --max-width-full: 1440px;

  --radius: 12px;
  --radius-lg: 24px;
  --radius-xl: 40px;
  --shadow-soft: 0 4px 30px rgba(0,0,0,0.06);
  --shadow-elevated: 0 12px 40px rgba(0,0,0,0.1);
  --transition-smooth: 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-body); font-size: var(--font-size-body); line-height: 1.65;
  color: var(--color-text); background: var(--color-bg);
  -webkit-font-smoothing: antialiased; overflow-x: hidden;
}
img { display: block; max-width: 100%; }
a { text-decoration: none; color: inherit; }
h1, h2, h3, h4 { font-family: var(--font-heading); line-height: 1.12; font-weight: 700; letter-spacing: -0.01em; }

.container { width: 100%; max-width: var(--max-width-full); margin: 0 auto; padding: 0 clamp(1.5rem, 4vw, 3rem); }
.container--wide { max-width: var(--max-width-wide); }
.container--text { max-width: var(--max-width-text); }

.eyebrow {
  display: inline-flex; align-items: center; gap: 0.5rem;
  font-size: var(--font-size-caption); font-weight: 600;
  letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-primary-light);
}
.eyebrow::before { content: ""; width: 28px; height: 1px; background: var(--color-accent); }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  font-family: var(--font-body); font-size: 0.95rem; font-weight: 600;
  padding: 14px 28px; border-radius: 100px; border: none; cursor: pointer;
  transition: var(--transition-smooth); white-space: nowrap;
}
.btn--large { transform:scale(1.25);margin-top:1rem;transform-origin: center}
.btn--locked { pointer-events: none;opacity: 0.75; cursor: not-allowed; transform: none !important; box-shadow: none !important; filter:grayscale(1)}
.btn--accent { background: var(--color-accent-hover);   color: #fff; }
.btn--accent:hover { background: var(--color-accent);box-shadow: 0 6px 20px rgba(165,199,17,0.3); }
.btn--dark { background: var(--color-bg-dark); color: var(--color-text-on-dark); }
.btn--dark:hover { background: var(--color-primary); transform: translateY(-2px); }
.btn--ghost { background: rgba(255,255,255,0.12); color: #fff; border: 1.5px solid rgba(255,255,255,0.4); backdrop-filter: blur(6px); }
.btn--ghost:hover { background: rgba(255,255,255,0.22); }
.btn:disabled { opacity: 0.75; cursor: not-allowed; transform: none !important; box-shadow: none !important; filter:grayscale(1)}

/* NAV */
.site-nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  background: rgba(250,249,246,0.82);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--color-border-light);
  transition: background 0.3s, box-shadow 0.3s;
}
.site-nav.scrolled { box-shadow: var(--shadow-soft); }
.site-nav__inner { display: flex; align-items: center; justify-content: space-between; height: 76px; }
.site-nav__logo img { height: 38px; width: auto; }
.site-nav__links { display: flex; align-items: center; gap: 2rem; }
.site-nav__links a { font-size: 0.875rem; font-weight: 500; color: var(--color-text); transition: color 0.2s; }
.site-nav__links a:hover { color: var(--color-primary); }
.site-nav__cta { padding: 10px 22px !important; font-size: 0.85rem !important; }
@media (max-width: 860px) { .site-nav__links a:not(.site-nav__cta) { display: none; } }

/* HERO */
.hero { position: relative; min-height: 100vh; display: flex; align-items: flex-end; overflow: hidden; }
.hero__media { position: absolute; inset: 0; z-index: 0; }
.hero__media img { width: 100%; height: 120%; object-fit: cover; object-position: center 30%; }
.hero__scrim { position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(7,30,55,0.55) 0%, rgba(7,30,55,0.05) 32%, rgba(7,30,55,0.0) 50%, rgba(5,20,40,0.45) 78%, rgba(5,20,40,0.85) 100%); }
.hero__inner { position: relative; z-index: 2; width: 100%; padding-bottom: clamp(4rem, 9vh, 8rem); padding-top: 120px; }
.hero__eyebrow { color: #BFE0FF; }
.hero__eyebrow::before { background: #BFE0FF; }
.hero h1 { color: #fff; font-size: var(--font-size-hero); font-weight: 800; max-width: 16ch; margin: 1.4rem 0 1.6rem; text-shadow: 0 2px 40px rgba(0,0,0,0.35); }
.hero h1 em { font-style: normal; color: var(--color-cryo-mist); }
.hero__lead { color: rgba(255,255,255,0.92); font-size: var(--font-size-intro); max-width: 46ch; margin-bottom: 2.2rem; text-shadow: 0 1px 20px rgba(0,0,0,0.4); }
.hero__actions { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }
.hero__meta { display: flex; flex-wrap: wrap; gap: 2.2rem; margin-top: 3rem; padding-top: 1.8rem; border-top: 1px solid rgba(255,255,255,0.22); }
.hero__meta div { color: #fff; }
.hero__meta .num { font-size: clamp(1.6rem, 3vw, 2.3rem); font-weight: 800; letter-spacing: -0.02em; display: block; }
.hero__meta .lbl { font-size: 0.8rem; color: rgba(255,255,255,0.75); letter-spacing: 0.04em; }
.hero__scrollcue { position: absolute; left: 50%; bottom: 1.4rem; transform: translateX(-50%); z-index: 2; color: rgba(255,255,255,0.7); font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase; animation: bob 2.6s ease-in-out infinite; }
@keyframes bob { 0%,100%{ transform: translate(-50%,0);} 50%{ transform: translate(-50%,8px);} }

/* SECTIONS */
.section { padding: var(--space-section) 0; }
.section--tight { padding: clamp(4rem,8vh,6rem) 0; }
.intro-grid { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
.intro-grid__text .eyebrow { margin-bottom: 1.4rem; }
.intro-grid__text h2 { font-size: var(--font-size-h1); margin-bottom: 1.6rem; max-width: 16ch; }
.intro-grid__text p { color: var(--color-text-light); margin-bottom: 1.2rem; max-width: 52ch; }
.intro-grid__text strong { color: var(--color-text); font-weight: 600; }
.intro-grid__media { position: relative; }
.intro-grid__media img { width: 100%; aspect-ratio: 4/5; object-fit: cover; border-radius: var(--radius-lg); box-shadow: var(--shadow-elevated); }
.intro-grid__badge { position: absolute; bottom: -28px; left: -28px; background: var(--color-bg-dark); color: #fff; padding: 1.4rem 1.8rem; border-radius: var(--radius); box-shadow: var(--shadow-elevated); }
.intro-grid__badge .t { font-size: clamp(1.8rem,3vw,2.4rem); font-weight: 800; color: var(--color-cryo-mist); line-height: 1; }
.intro-grid__badge .s { font-size: 0.78rem; color: rgba(255,255,255,0.8); margin-top: 0.4rem; }
@media (max-width: 860px){ .intro-grid { grid-template-columns: 1fr; } .intro-grid__badge { left: auto; right: 16px; bottom: -20px; } }

.stats { background: var(--color-bg-dark); color: var(--color-text-on-dark); }
.stats__grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: rgba(255,255,255,0.12); border-radius: var(--radius-lg); overflow: hidden; }
.stats__cell { background: var(--color-bg-dark); padding: clamp(2rem,4vw,3rem) clamp(1.2rem,2vw,2rem); text-align: center; }
.stats__cell .num { font-size: clamp(2.2rem,4vw,3.2rem); font-weight: 800; color: var(--color-cryo-mist); letter-spacing: -0.02em; line-height: 1; }
.stats__cell .lbl { font-size: 0.85rem; color: rgba(255,255,255,0.78); margin-top: 0.7rem; }
@media (max-width: 760px){ .stats__grid { grid-template-columns: repeat(2,1fr); } }

.wirkung-grid { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: clamp(2.5rem,6vw,6rem); align-items: center; }
.wirkung-grid__media img { width: 100%; aspect-ratio: 1/1; object-fit: cover; border-radius: var(--radius-lg); box-shadow: var(--shadow-elevated); }
.wirkung-grid h2 { font-size: var(--font-size-h1); margin-bottom: 1.4rem; max-width: 18ch; }
.wirkung-grid > .wirkung-grid__text > p { color: var(--color-text-light); max-width: 52ch; margin-bottom: 2rem; }
.indikationen { display: grid; grid-template-columns: 1fr 1fr; gap: 0.9rem 1.6rem; align-content: start;align-items:center; }
.indikationen li { list-style: none; display: flex; gap: 0.7rem; align-items: flex-start; font-size: var(--font-size-small); color: var(--color-text); }
.indikationen li::before { content: "✓"; color: var(--color-accent); font-weight: 800; flex-shrink: 0; }
@media (max-width: 860px){ .wirkung-grid { grid-template-columns: 1fr; } .wirkung-grid__media { order: -1; } .indikationen { grid-template-columns: 1fr; } }

.ablauf { background: var(--color-cryo-light); }
.ablauf__head { text-align: center; max-width: 40ch; margin: 0 auto clamp(3rem,6vh,4.5rem); }
.ablauf__head h2 { font-size: var(--font-size-h1); margin: 1.2rem 0 1rem; }
.ablauf__head p { color: var(--color-text-light); }
.steps { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.2rem; }
.step { background: #fff; border-radius: var(--radius-lg); padding: 2rem 1.6rem; box-shadow: var(--shadow-soft); position: relative; }
.step__n { font-size: 0.85rem; font-weight: 800; color: var(--color-cryo); letter-spacing: 0.08em; }
.step h3 { font-size: 1.15rem; margin: 0.9rem 0 0.6rem; }
.step p { font-size: var(--font-size-small); color: var(--color-text-light); }
@media (max-width: 860px){ .steps { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px){ .steps { grid-template-columns: 1fr; } }

.atmo { position: relative; min-height: 80vh; display: flex; align-items: center; overflow: hidden; }
.atmo__media { position: absolute; inset: -10% 0; z-index: 0; }
.atmo__media img { width: 100%; height: 120%; object-fit: cover; object-position: center 35%; }
.atmo__scrim { position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(7,25,50,0.78) 0%, rgba(7,25,50,0.45) 50%, rgba(7,25,50,0.15) 100%); }
.atmo__inner { position: relative; z-index: 2; max-width: 44ch; }
.atmo blockquote { color: #fff; font-size: clamp(1.5rem,3vw,2.3rem); font-weight: 600; line-height: 1.3; letter-spacing: -0.01em; }
.atmo cite { display: block; margin-top: 1.4rem; font-style: normal; font-size: 0.9rem; color: var(--color-cryo-mist); }

/* ═══════════════════════════════════════════════════
   BUCHUNG – Schritt 1 (Selbstauskunft-Gate) + Schritt 2 (Angebote)
   ═══════════════════════════════════════════════════ */
.booking { background: var(--color-bg); position: relative; }
.booking__head { text-align: center; max-width: 50ch; margin: 0 auto clamp(2.5rem,5vh,3.5rem); }
.booking__head h2 { font-size: var(--font-size-h1); margin: 1.2rem 0 1rem; }
.booking__head p { color: var(--color-text-light); }

/* Schritt-Badge */
.step-badge { display: inline-flex; align-items: center; gap: 0.6rem; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-cryo); margin-bottom: 1rem; }
.step-badge .n { width: 26px; height: 26px; border-radius: 50%; background: var(--color-cryo); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 0.85rem; }
.step-badge.done .n { background: var(--color-accent); }
.step-badge.muted { color: var(--color-text-light); }
.step-badge.muted .n { background: var(--color-text-light); }

/* Consent-Card */
.consent { background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-lg); box-shadow: var(--shadow-soft); padding: clamp(1.6rem, 3vw, 2.6rem); max-width: 920px; margin: 0 auto; }
.consent__title { font-size: var(--font-size-h3); color: var(--color-primary); margin-bottom: 0.6rem; }
.consent__sub { font-size: var(--font-size-small); color: var(--color-text-light); margin-bottom: 1.4rem; }
.consent__sub strong { color: var(--color-text); }

/* Selbstauskunft als barrierefreies Akkordeon (BITV/WCAG: Button + aria-expanded/-controls, kein Scroll-Container) */
.acc { border: 1px solid var(--color-border); border-radius: var(--radius); overflow: hidden; margin-bottom: 0.6rem; }
.acc__item + .acc__item { border-top: 1px solid var(--color-border); }
.acc__h { margin: 0; font-size: inherit; }
.acc__trigger { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 1rem; text-align: left; background: #fff; border: none; cursor: pointer; padding: 1rem 1.3rem; font-family: var(--font-heading); font-size: 0.92rem; font-weight: 700; color: var(--color-cryo); text-transform: uppercase; letter-spacing: 0.04em; transition: background 0.2s; }
.acc__trigger:hover { background: var(--color-cryo-light); }
.acc__trigger:focus-visible { outline: 3px solid var(--color-cryo); outline-offset: -3px; }
.acc__ic { flex-shrink: 0; transition: transform 0.3s; color: var(--color-cryo); font-size: 1.3rem; line-height: 1; font-weight: 400; }
.acc__trigger[aria-expanded="true"] .acc__ic { transform: rotate(45deg); }
.acc__panel { padding: 0.2rem 1.3rem 1.3rem; background: #fff; }
.acc__panel[hidden] { display: none; }
.acc__panel p { font-size: var(--font-size-small); color: var(--color-text-light); margin-bottom: 0.5rem; }
.acc__panel ul { list-style: none; display: grid; gap: 0.4rem; margin: 0.2rem 0 0; }
.acc__panel li { display: flex; gap: 0.55rem; font-size: var(--font-size-small); color: var(--color-text-light); }
.acc__panel li::before { content: "–"; color: var(--color-cryo-mist); }
.acc__panel .ci li::before { content: "✕"; color: var(--color-warn); font-weight: 700; }
.consent__acchint { font-size: var(--font-size-small); color: var(--color-text-light); margin-bottom: 0.7rem; }
.consent__doclink { display: inline-flex; align-items: center; gap: 0.4rem; font-size: var(--font-size-small); font-weight: 600; color: var(--color-primary); border-bottom: 1px solid var(--color-accent); margin-bottom: 1.6rem; }

/* Checkbox-Bestätigungen */
.consent__checks-title { font-weight: 700; margin-bottom: 0.9rem; }
.consent__checks { display: grid; gap: 0.7rem; }
.check-item { display: flex; gap: 0.85rem; align-items: flex-start; padding: 0.85rem 1rem; border: 1px solid var(--color-border); border-radius: var(--radius); cursor: pointer; transition: border-color 0.2s, background 0.2s; }
.check-item:hover { border-color: var(--color-cryo-mist); }
.check-item.checked { border-color: var(--color-accent); background: rgba(165,199,17,0.06); }
.check-item input { position: absolute; opacity: 0; width: 0; height: 0; }
.check-box { flex-shrink: 0; width: 22px; height: 22px; border: 2px solid var(--color-border); border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; transition: all 0.2s; margin-top: 1px; }
.check-item.checked .check-box { background: var(--color-accent); border-color: var(--color-accent); }
.check-box svg { opacity: 0; transition: opacity 0.2s; }
.check-item.checked .check-box svg { opacity: 1; }
.check-item span.txt { font-size: var(--font-size-small); color: var(--color-text); }
.check-item .req { color: var(--color-warn); font-weight: 700; }

.consent__foot { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; flex-wrap: wrap; margin-top: 1.6rem; }
.consent__status { font-size: var(--font-size-small); color: var(--color-text-light); display: flex; align-items: center; gap: 0.5rem; }
.consent__status .dot { width: 9px; height: 9px; border-radius: 50%; background: var(--color-warn); }
.consent__status.ready { color: var(--color-primary); font-weight: 600; }
.consent__status.ready .dot { background: var(--color-accent); }

/* Schritt 2 – gesperrt bis Freischaltung */
.booking-gate { margin-top: clamp(2.5rem,5vh,4rem); position: relative; }
.booking-gate__head { text-align: center; margin-bottom: 1.8rem; }
.booking-gate__head h3 { font-size: var(--font-size-h2); }
.gate-wrap { position: relative; }
.gate-wrap.locked { opacity:0.5;pointer-events: none }
.booking-gate.locked .gate-wrap__content { filter: blur(5px) grayscale(0.3); opacity: 0.5; pointer-events: none; user-select: none; }
.lock-overlay {
  position: absolute; inset: 0; z-index: 5; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 1rem; text-align: center; padding: 2rem;
  background: rgba(250,249,246,0.55); backdrop-filter: blur(2px); border-radius: var(--radius-lg);
  transition: opacity 0.5s;
}
.booking-gate.unlocked .lock-overlay { opacity: 0; pointer-events: none; }
.lock-overlay__ic { width: 60px; height: 60px; border-radius: 50%; background: #fff; box-shadow: var(--shadow-soft); color: var(--color-cryo); display: flex; align-items: center; justify-content: center; }
.lock-overlay h4 { font-size: 1.2rem; }
.lock-overlay p { font-size: var(--font-size-small); color: var(--color-text-light); max-width: 38ch; }

/* Angebots-Karten = Tabs */
.offers-tabs { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.2rem; margin-bottom: 2.5rem; }
.offer-card { text-align: left; background: #fff; border: 1.5px solid var(--color-border); border-radius: var(--radius-lg); padding: 1.6rem 1.6rem 1.4rem; cursor: pointer; transition: var(--transition-smooth); font-family: var(--font-body); display: flex; flex-direction: column; gap: 0.5rem; position: relative; }
.offer-card:hover { border-color: var(--color-cryo-mist); transform: translateY(-3px); box-shadow: var(--shadow-soft); }
.offer-card.active { border-color: var(--color-cryo); box-shadow: 0 10px 34px rgba(40,65,137,0.14); }
.offer-card.active::after { content: ""; position: absolute; left: 50%; bottom: -1.25rem; transform: translateX(-50%); border: 10px solid transparent; border-top-color: var(--color-cryo); }
.offer-card__ic { width: 46px; height: 46px; border-radius: 12px; background: var(--color-cryo-light); color: var(--color-cryo); display: flex; align-items: center; justify-content: center; font-size: 1.4rem; margin-bottom: 0.4rem; }
.offer-card.active .offer-card__ic { background: var(--color-cryo); color: #fff; }
.offer-card h3 { font-size: 1.2rem; }
.offer-card p { font-size: var(--font-size-small); color: var(--color-text-light); flex-grow: 1; }
.offer-card__cta { font-size: 0.82rem; font-weight: 600; color: var(--color-cryo); margin-top: 0.3rem; }
@media (max-width: 760px){ .offers-tabs { grid-template-columns: 1fr; } .offer-card.active::after { display: none; } }

.booking__widget { background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-lg); box-shadow: var(--shadow-elevated); padding: clamp(0.5rem,2vw,1.5rem); min-height: 520px; }
.offer-panel { display: none; }
.offer-panel.active { display: block; animation: fadeIn 0.5s ease; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(8px);} to { opacity: 1; transform: none; } }
.offer-panel__intro { text-align: center; max-width: 52ch; margin: 0.5rem auto 1.5rem; }
.offer-panel__intro h3 { font-size: 1.3rem; margin-bottom: 0.4rem; }
.offer-panel__intro p { font-size: var(--font-size-small); color: var(--color-text-light); }
.sb-widget-mount { min-height: 480px; }
.booking__hint { text-align: center; font-size: var(--font-size-small); color: var(--color-text-light); margin-top: 1.4rem; }

.widget-fallback { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; min-height: 460px; text-align: center; color: var(--color-text-light); padding: 2rem; }
.widget-fallback .wf-ic { width: 56px; height: 56px; border-radius: 50%; background: var(--color-cryo-light); color: var(--color-cryo); display: flex; align-items: center; justify-content: center; font-size: 1.6rem; }
.widget-fallback code { background: var(--color-cryo-light); color: var(--color-cryo); padding: 2px 8px; border-radius: 6px; font-size: 0.85rem; }

/* VERTIEFUNG */
.notes-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.note { border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: 2rem; background: #fff; }
.note h3 { font-size: 1.2rem; margin-bottom: 1rem; display: flex; align-items: center; gap: 0.6rem; }
.note ul { list-style: none; display: grid; gap: 0.7rem; }
.note li { display: flex; gap: 0.6rem; font-size: var(--font-size-small); color: var(--color-text-light); }
.note li::before { content: "•"; color: var(--color-accent); font-weight: 800; }
.note--warn { background: #FFF8F4; border-color: #F3DDD0; }
.note--warn li::before { content: "!"; color: var(--color-warn); font-weight: 800; }
@media (max-width: 760px){ .notes-grid { grid-template-columns: 1fr; } }

.faq { max-width: var(--max-width-text); margin: clamp(3rem,6vh,4.5rem) auto 0; }
.faq__item { border-bottom: 1px solid var(--color-border); }
.faq__q { width: 100%; text-align: left; background: none; border: none; cursor: pointer; padding: 1.3rem 0; display: flex; justify-content: space-between; align-items: center; gap: 1rem; font-family: var(--font-heading); font-size: 1.05rem; font-weight: 600; color: var(--color-text); }
.faq__q .ic { flex-shrink: 0; transition: transform 0.3s; color: var(--color-primary); }
.faq__item.open .faq__q .ic { transform: rotate(45deg); }
.faq__a { max-height: 0; overflow: hidden; transition: max-height 0.4s ease; }
.faq__item.open .faq__a { max-height: 320px; }
.faq__a p { padding: 0 0 1.3rem; color: var(--color-text-light); font-size: var(--font-size-small); }

.closing { background: var(--color-bg-dark); color: var(--color-text-on-dark); text-align: center; }
.closing h2 { font-size: var(--font-size-h1); color: #fff; margin-bottom: 1.2rem; max-width: 18ch; margin-inline: auto; }
.closing p { color: rgba(255,255,255,0.82); max-width: 50ch; margin: 0 auto 2.2rem; }
.closing__actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }

footer { background: var(--color-bg-darker); color: rgba(255,255,255,0.7); padding: 3rem 0; font-size: var(--font-size-small); }
footer .container { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; }
footer img { height: 30px; opacity: 0.9; filter: brightness(0) invert(0.85); }

.reveal { opacity: 0; transform: translateY(28px); transition: opacity 0.9s cubic-bezier(0.16,1,0.3,1), transform 0.9s cubic-bezier(0.16,1,0.3,1); }
.reveal.visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
  .hero__scrollcue { animation: none; }
  html { scroll-behavior: auto; }
}
