/* ============================================================
   Pravilo Klaus Physiotherapie — Designsystem "Natural Clinical"
   Statisches CSS, keine Frameworks. Radius: Buttons pill,
   Karten/Medien 16px, Inputs 10px. Eine Akzentfamilie: Gold + Pine.
   ============================================================ */

/* ---------- Fonts (lokal, DSGVO-konform) ---------- */
@font-face { font-family:'Outfit'; font-style:normal; font-weight:500; font-display:swap; src:url(../fonts/Outfit-500-latin.woff2) format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212; }
@font-face { font-family:'Outfit'; font-style:normal; font-weight:600; font-display:swap; src:url(../fonts/Outfit-600-latin.woff2) format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212; }
@font-face { font-family:'Outfit'; font-style:normal; font-weight:700; font-display:swap; src:url(../fonts/Outfit-700-latin.woff2) format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212; }
@font-face { font-family:'Source Sans 3'; font-style:normal; font-weight:400; font-display:swap; src:url(../fonts/SourceSans3-400-latin.woff2) format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212; }
@font-face { font-family:'Source Sans 3'; font-style:italic; font-weight:400; font-display:swap; src:url(../fonts/SourceSans3-400i-latin.woff2) format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212; }
@font-face { font-family:'Source Sans 3'; font-style:normal; font-weight:600; font-display:swap; src:url(../fonts/SourceSans3-600-latin.woff2) format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212; }

/* ---------- Tokens ---------- */
:root {
  --bg:#FAF8F3; --surface:#FFFFFF; --sand:#F2ECE0; --sand-deep:#E9E0CC;
  --ink:#26312B; --ink-soft:#5A665F; --pine:#2E4A3D; --pine-deep:#243B31;
  --gold:#A8894C; --gold-deep:#7E6534; --line:#E4DCCA;
  --r-card:16px; --r-input:10px; --r-pill:999px;
  --shadow-soft:0 12px 32px -16px rgb(38 49 43 / .22);
  --shadow-lift:0 18px 44px -18px rgb(38 49 43 / .28);
  --font-display:'Outfit', system-ui, sans-serif;
  --font-text:'Source Sans 3', system-ui, sans-serif;
  --container:1140px; --prose:720px;
  --header-h:72px;
  color-scheme: light;
}

/* ---------- Reset / Basis ---------- */
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
@media (prefers-reduced-motion:reduce){ html { scroll-behavior:auto; } }
body {
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--font-text); font-size:1.0625rem; line-height:1.65;
  text-rendering:optimizeLegibility;
}
img,video { max-width:100%; height:auto; display:block; }
::selection { background:var(--sand-deep); color:var(--ink); }
:focus-visible { outline:2px solid var(--gold-deep); outline-offset:3px; border-radius:4px; }
input,textarea,select { caret-color:var(--gold-deep); accent-color:var(--pine); }

h1,h2,h3,h4 { font-family:var(--font-display); font-weight:600; line-height:1.18; margin:0 0 .6em; text-wrap:balance; letter-spacing:-0.015em; }
h1 { font-size:clamp(2rem, 1.4rem + 2.6vw, 3.25rem); font-weight:700; }
h2 { font-size:clamp(1.55rem, 1.25rem + 1.4vw, 2.125rem); }
h3 { font-size:1.25rem; }
h4 { font-size:1.0625rem; }
p { margin:0 0 1em; }
a { color:var(--gold-deep); text-decoration-color:var(--sand-deep); text-underline-offset:3px; transition:color .18s ease; }
a:hover { color:var(--ink); }
ul,ol { padding-left:1.3em; margin:0 0 1.2em; }
li { margin-bottom:.4em; }
strong { font-weight:600; }
hr { border:0; border-top:1px solid var(--line); margin:2.5rem 0; }

.container { max-width:var(--container); margin-inline:auto; padding-inline:clamp(1.1rem, 4vw, 2rem); }
.prose { max-width:var(--prose); }
.prose p, .prose li { color:var(--ink); }
.muted { color:var(--ink-soft); }

/* ---------- Skip-Link ---------- */
.skip-link { position:absolute; left:-9999px; top:0; background:var(--ink); color:#fff; padding:.7rem 1.2rem; border-radius:0 0 10px 0; z-index:100; }
.skip-link:focus { left:0; }

/* ---------- Header ---------- */
.site-header {
  position:sticky; top:0; z-index:50; background:rgb(250 248 243 / .92);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid transparent; transition:border-color .25s ease, box-shadow .25s ease;
}
.site-header.is-stuck { border-bottom-color:var(--line); box-shadow:0 8px 24px -20px rgb(38 49 43 / .4); }
.header-bar { display:flex; align-items:center; gap:1.2rem; height:var(--header-h); }
.brand { display:flex; align-items:center; gap:.7rem; text-decoration:none; margin-right:auto; flex-shrink:0; }
.brand img { width:auto; height:46px; }
.brand-name { font-family:var(--font-display); font-weight:700; font-size:1.05rem; color:var(--ink); line-height:1.1; }
.brand-name small { display:block; font-family:var(--font-text); font-weight:400; font-size:.78rem; color:var(--gold-deep); letter-spacing:.02em; }

.main-nav ul { list-style:none; display:flex; align-items:center; gap:.25rem; margin:0; padding:0; }
.main-nav li { margin:0; position:relative; }
.main-nav a, .main-nav button.nav-drop {
  display:flex; align-items:center; gap:.35rem; padding:.55rem .85rem; border:0; background:none; white-space:nowrap;
  font-family:var(--font-display); font-weight:500; font-size:.98rem; color:var(--ink);
  text-decoration:none; border-radius:var(--r-pill); cursor:pointer; transition:background .18s ease;
}
.main-nav a:hover, .main-nav button.nav-drop:hover { background:var(--sand); color:var(--ink); }
.main-nav a[aria-current="page"] { background:var(--sand); }
.nav-drop .chev { width:.65em; height:.65em; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg) translateY(-2px); transition:transform .18s ease; }
.nav-drop[aria-expanded="true"] .chev { transform:rotate(225deg) translateY(-1px); }
.dropdown {
  position:absolute; top:calc(100% + .5rem); left:0; min-width:16rem;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-card);
  box-shadow:var(--shadow-lift); padding:.5rem; display:none; z-index:60;
}
.dropdown.is-open { display:block; }
.dropdown a { display:block; padding:.6rem .8rem; border-radius:10px; font-weight:500; }
.dropdown a small { display:block; font-family:var(--font-text); font-weight:400; font-size:.82rem; color:var(--ink-soft); }
.header-cta { display:flex; align-items:center; gap:.5rem; }
.header-phone { font-weight:600; font-size:.95rem; color:var(--ink); text-decoration:none; white-space:nowrap; }
.header-phone:hover { color:var(--gold-deep); }

.nav-toggle { display:none; }

/* ---------- Buttons ---------- */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font-family:var(--font-display); font-weight:600; font-size:1rem; line-height:1;
  padding:.9rem 1.6rem; border-radius:var(--r-pill); border:1.5px solid transparent;
  cursor:pointer; text-decoration:none; white-space:nowrap;
  transition:background .18s ease, color .18s ease, border-color .18s ease, transform .12s ease, box-shadow .18s ease;
}
.btn:active { transform:translateY(1px) scale(.99); }
.btn-primary { background:var(--pine); color:#fff; }
.btn-primary:hover { background:var(--pine-deep); color:#fff; box-shadow:var(--shadow-soft); }
.btn-secondary { background:transparent; color:var(--ink); border-color:var(--ink); }
.btn-secondary:hover { background:var(--ink); color:#fff; }
.btn-light { background:#fff; color:var(--ink); border-color:var(--line); }
.btn-light:hover { border-color:var(--gold); color:var(--ink); }
.btn-sm { padding:.6rem 1.1rem; font-size:.92rem; }

/* ---------- Sektionen ---------- */
.section { padding-block:clamp(2.8rem, 2.4rem + 2.4vw, 5rem); }
.section-sand { background:var(--sand); }
.section-head { max-width:var(--prose); margin-bottom:1.8rem; }
.section-head p { color:var(--ink-soft); font-size:1.1rem; }

/* ---------- Hero ---------- */
.hero { padding-block:clamp(2.5rem, 2rem + 3vw, 5rem); }
.hero-grid { display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:clamp(2rem,4vw,4rem); align-items:center; }
.hero h1 { margin-bottom:.5em; }
.hero-lede { font-size:1.15rem; color:var(--ink-soft); max-width:34rem; }
.hero-ctas { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.8rem; }
.hero-figure { position:relative; }
.hero-figure img { border-radius:var(--r-card); box-shadow:var(--shadow-lift); }
.hero-figure figcaption { margin-top:.7rem; font-size:.92rem; color:var(--ink-soft); }
.hero-badges { display:flex; flex-wrap:wrap; gap:.6rem 1.6rem; margin-top:2.2rem; padding-top:1.6rem; border-top:1px solid var(--line); }
.hero-badges span { display:flex; align-items:center; gap:.5rem; font-size:.95rem; font-weight:600; color:var(--ink); }
.hero-badges svg { color:var(--gold); flex:none; }

/* ---------- Bewertungen ---------- */
.reviews-head { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:1.4rem 2rem; margin-bottom:2.2rem; }
.rating-summary { display:flex; align-items:center; gap:1.1rem; }
.rating-number { font-family:var(--font-display); font-weight:700; font-size:3.2rem; line-height:1; color:var(--ink); }
.stars { display:inline-flex; gap:.15rem; color:#D99A26; }
.stars svg { width:22px; height:22px; }
.rating-meta { font-size:1rem; color:var(--ink-soft); }
.rating-meta strong { color:var(--ink); font-family:var(--font-display); }
.rating-source { display:inline-flex; align-items:center; gap:.4rem; font-size:.9rem; color:var(--ink-soft); margin-top:.25rem; }
.reviews-ctas { display:flex; flex-wrap:wrap; gap:.7rem; }
.review-rail { display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }
.review-card {
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-card);
  padding:1.5rem 1.5rem 1.3rem; display:flex; flex-direction:column; gap:.8rem;
}
.review-card .stars svg { width:17px; height:17px; }
.review-card blockquote { margin:0; font-size:1rem; color:var(--ink); }
.review-card footer { margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:1rem; font-size:.92rem; color:var(--ink-soft); }
.review-card footer strong { font-family:var(--font-display); color:var(--ink); font-weight:600; }
.reviews-note { margin-top:1.4rem; font-size:.9rem; color:var(--ink-soft); }

/* ---------- Leistungs-Grid ---------- */
.services-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:1.2rem; }
.service-card {
  grid-column:span 4; background:var(--surface); border:1px solid var(--line);
  border-radius:var(--r-card); padding:1.6rem 1.5rem 1.4rem; text-decoration:none; color:var(--ink);
  display:flex; flex-direction:column; gap:.4rem; position:relative;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.service-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-soft); border-color:var(--sand-deep); color:var(--ink); }
.service-card h3 { margin:0; font-size:1.12rem; }
.service-card p { margin:0; color:var(--ink-soft); font-size:.97rem; }
.service-card .go { margin-top:auto; padding-top:.9rem; font-family:var(--font-display); font-weight:600; font-size:.92rem; color:var(--gold-deep); }
.service-card:hover .go { color:var(--ink); }
.service-card.is-photo { grid-column:span 8; grid-row:span 2; padding:0; overflow:hidden; justify-content:flex-end; min-height:320px; }
.service-card.is-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.service-card.is-photo .overlay {
  position:relative; margin-top:auto; padding:1.6rem 1.5rem;
  background:linear-gradient(180deg, rgb(38 49 43 / 0) 0%, rgb(38 49 43 / .78) 45%); color:#fff;
}
.service-card.is-photo .overlay h3 { color:#fff; }
.service-card.is-photo .overlay p { color:rgb(255 255 255 / .85); }
.service-card.is-photo .overlay .go { color:#EFD9A7; }

/* ---------- Split (Text/Bild) ---------- */
.split { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(2rem,4vw,4.5rem); align-items:center; }
.split figure { margin:0; }
.split img { border-radius:var(--r-card); box-shadow:var(--shadow-soft); }
.split figcaption { margin-top:.7rem; font-size:.92rem; color:var(--ink-soft); }

/* ---------- Bildband ---------- */
.photo-band { position:relative; min-height:280px; border-radius:var(--r-card); overflow:hidden; }
.photo-band img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }

/* ---------- Akkordeon ---------- */
details.acc { border-top:1px solid var(--line); }
details.acc:last-of-type { border-bottom:1px solid var(--line); }
details.acc summary {
  list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:1.1rem .2rem; font-family:var(--font-display); font-weight:600; font-size:1.08rem;
}
details.acc summary::-webkit-details-marker { display:none; }
details.acc summary::after {
  content:""; width:.6em; height:.6em; flex:none; border-right:2px solid var(--gold-deep); border-bottom:2px solid var(--gold-deep);
  transform:rotate(45deg); transition:transform .2s ease; margin-right:.3rem;
}
details.acc[open] summary::after { transform:rotate(225deg); }
details.acc .acc-body { padding:0 .2rem 1.3rem; color:var(--ink); }

/* ---------- Galerie / Video ---------- */
.media-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }
.video-tile {
  position:relative; border:0; padding:0; background:var(--ink); border-radius:var(--r-card);
  overflow:hidden; cursor:pointer; aspect-ratio:9/16; display:block; width:100%;
  transition:transform .18s ease, box-shadow .18s ease;
}
.video-tile:hover { transform:translateY(-3px); box-shadow:var(--shadow-lift); }
.video-tile img { width:100%; height:100%; object-fit:cover; opacity:.94; }
.video-tile .play {
  position:absolute; inset:0; display:flex; align-items:flex-end; justify-content:flex-start;
  padding:1rem; background:linear-gradient(180deg, rgb(0 0 0 / 0) 55%, rgb(0 0 0 / .55));
}
.video-tile .play span {
  display:inline-flex; align-items:center; gap:.55rem; color:#fff;
  font-family:var(--font-display); font-weight:600; font-size:.95rem;
}
.video-tile .play svg { width:38px; height:38px; flex:none; filter:drop-shadow(0 4px 10px rgb(0 0 0 / .35)); }
dialog.video-modal {
  border:0; border-radius:var(--r-card); padding:0; background:#0E1512;
  width:min(94vw, 440px); box-shadow:var(--shadow-lift);
}
dialog.video-modal::backdrop { background:rgb(14 21 18 / .72); backdrop-filter:blur(4px); }
dialog.video-modal video { width:100%; max-height:82vh; border-radius:var(--r-card) var(--r-card) 0 0; background:#000; }
.video-modal-bar { display:flex; align-items:center; justify-content:space-between; padding:.7rem 1rem; }
.video-modal-bar span { color:#EFE9DA; font-size:.92rem; }
.video-modal-bar button { background:none; border:1.5px solid rgb(255 255 255 / .4); color:#fff; border-radius:var(--r-pill); padding:.65rem 1.4rem; min-height:44px; font-family:var(--font-display); font-weight:600; font-size:1rem; cursor:pointer; }
.video-modal-bar button:hover { border-color:#fff; }
.video-close-x {
  position:absolute; top:.6rem; right:.6rem; z-index:2;
  width:48px; height:48px; border-radius:50%; border:0; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  background:rgb(14 21 18 / .68); color:#fff;
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
}
.video-close-x:hover, .video-close-x:focus-visible { background:rgb(14 21 18 / .9); }
dialog.video-modal { position:fixed; touch-action:pan-y; }
dialog.video-modal.is-dragging { transition:none; }
dialog.video-modal video { max-height:76vh; }
.video-swipe-hint { display:none; }
@media (hover:none) {
  .video-swipe-hint {
    display:block; width:44px; height:5px; border-radius:3px;
    background:rgb(255 255 255 / .35); margin:.55rem auto 0;
  }
}

/* ---------- Team ---------- */
.team-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1.4rem; }
.team-card { background:var(--surface); border:1px solid var(--line); border-radius:var(--r-card); overflow:hidden; display:grid; grid-template-columns:minmax(0,2fr) minmax(0,3fr); }
.team-card figure { margin:0; }
.team-card img { width:100%; height:100%; object-fit:cover; object-position:top center; min-height:100%; }
.team-card .team-body { padding:1.5rem 1.5rem 1.3rem; }
.team-card h3 { margin-bottom:.15rem; }
.team-card .role { color:var(--gold-deep); font-weight:600; font-size:.95rem; margin-bottom:.8rem; }
.team-card ul { padding-left:1.1em; margin-bottom:0; font-size:.97rem; }
.team-card li { margin-bottom:.25em; }

/* ---------- Preise ---------- */
.price-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }
.price-card { background:var(--surface); border:1px solid var(--line); border-radius:var(--r-card); padding:1.5rem 1.5rem 1.3rem; }
.price-card h3, .price-card h2 { font-family:var(--font-display); font-weight:600; font-size:1.1rem; line-height:1.18; letter-spacing:-0.015em; margin:0 0 .9rem; }
.price-row { display:flex; justify-content:space-between; gap:1rem; padding:.45rem 0; font-size:.99rem; }
.price-row + .price-row { border-top:1px solid var(--bg); }
.price-row .val { font-family:var(--font-display); font-weight:600; white-space:nowrap; }
.price-note { background:var(--sand); border-radius:var(--r-card); padding:1.6rem 1.7rem; }

/* ---------- Formulare ---------- */
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem 1.2rem; }
.field { display:flex; flex-direction:column; gap:.35rem; }
.field.full { grid-column:1 / -1; }
.field label { font-family:var(--font-display); font-weight:600; font-size:.95rem; }
.field .hint { font-size:.85rem; color:var(--ink-soft); }
.field input, .field select, .field textarea {
  font:inherit; color:var(--ink); background:var(--surface);
  border:1.5px solid var(--line); border-radius:var(--r-input); padding:.75rem .9rem;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.field input::placeholder, .field textarea::placeholder { color:#8B948E; }
.field input:hover, .field select:hover, .field textarea:hover { border-color:var(--sand-deep); }
.field input:focus, .field select:focus, .field textarea:focus { outline:none; border-color:var(--gold-deep); box-shadow:0 0 0 3px rgb(168 137 76 / .18); }
.field .error-msg { display:none; font-size:.88rem; color:#8C3A2B; font-weight:600; }
.field.has-error input, .field.has-error select, .field.has-error textarea { border-color:#8C3A2B; }
.field.has-error .error-msg { display:block; }
.check { display:flex; gap:.7rem; align-items:flex-start; font-size:.95rem; }
.check input { width:1.15rem; height:1.15rem; margin-top:.2rem; flex:none; }
.form-status { display:none; margin-top:1rem; padding:1rem 1.2rem; border-radius:var(--r-input); font-weight:600; }
.form-status.ok { display:block; background:#E7EFE4; color:#2E4A3D; }
.form-status.err { display:block; background:#F6E7E2; color:#8C3A2B; }
fieldset { border:0; padding:0; margin:0; }

/* ---------- Kontakt ---------- */
.contact-tiles { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.contact-tile {
  display:flex; flex-direction:column; gap:.3rem; padding:1.3rem 1.3rem 1.15rem;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-card);
  text-decoration:none; color:var(--ink); transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.contact-tile:hover { transform:translateY(-3px); box-shadow:var(--shadow-soft); border-color:var(--sand-deep); color:var(--ink); }
.contact-tile svg { color:var(--gold); margin-bottom:.35rem; }
.contact-tile strong { font-family:var(--font-display); }
.contact-tile span { color:var(--ink-soft); font-size:.94rem; word-break:break-word; }
.hours-table { width:100%; border-collapse:collapse; }
.hours-table th, .hours-table td { text-align:left; padding:.55rem .2rem; border-bottom:1px solid var(--line); font-size:1rem; vertical-align:top; }
.hours-table th { font-family:var(--font-display); font-weight:600; width:40%; }
.hours-table td { color:var(--ink-soft); }
.map-consent {
  border-radius:var(--r-card); background:var(--sand); border:1px dashed var(--sand-deep);
  padding:2.2rem 1.8rem; text-align:center; display:flex; flex-direction:column; gap:.8rem; align-items:center; justify-content:center; min-height:260px;
}
.map-consent p { max-width:34rem; color:var(--ink-soft); margin:0; }
.map-frame { border-radius:var(--r-card); overflow:hidden; border:1px solid var(--line); }
.map-frame iframe { display:block; width:100%; height:320px; border:0; }

/* ---------- Footer ---------- */
.site-footer { background:var(--pine-deep); color:#E9EDE8; margin-top:0; }
.footer-grid { display:grid; grid-template-columns:minmax(0,4fr) minmax(0,3fr) minmax(0,3fr) minmax(0,2fr); gap:2.2rem; padding-block:3.6rem 2.4rem; }
.site-footer h4 { color:#fff; font-size:1rem; margin-bottom:.9rem; }
.site-footer p, .site-footer li, .site-footer td, .site-footer th { color:#C3CFC5; font-size:.97rem; }
.site-footer a { color:#E9EDE8; text-decoration:none; }
.site-footer a:hover { color:#EFD9A7; }
.site-footer ul { list-style:none; padding:0; margin:0; }
.site-footer li { margin-bottom:.45rem; }
.footer-hours { border-collapse:collapse; }
.footer-hours th, .footer-hours td { padding:.15rem .8rem .15rem 0; text-align:left; font-weight:400; vertical-align:top; }
.footer-hours th { color:#E9EDE8; }
.footer-tagline { font-family:var(--font-display); font-weight:600; color:#EFD9A7; letter-spacing:.01em; }
.footer-bottom { display:flex; flex-wrap:wrap; gap:.8rem 1.6rem; align-items:center; justify-content:space-between; border-top:1px solid rgb(255 255 255 / .14); padding-block:1.3rem; font-size:.92rem; }
.footer-bottom p { margin:0; color:#9FAFA2; }

/* ---------- Mobile Aktionsleiste ---------- */
.action-bar { display:none; }

/* ---------- Reveal (nur mit JS aktiv, sonst alles sichtbar) ---------- */
@media (prefers-reduced-motion:no-preference) {
  html.js .reveal { opacity:0; transform:translateY(10px); transition:opacity .55s ease-out, transform .55s ease-out; }
  html.js .reveal.is-visible { opacity:1; transform:none; }
}

/* ---------- Hilfsklassen ---------- */
.lead { font-size:1.14rem; }
.stack-lg > * + * { margin-top:2.6rem; }
.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:1.4rem; }
.badge { display:inline-block; background:var(--sand); color:var(--gold-deep); font-family:var(--font-display); font-weight:600; font-size:.85rem; border-radius:var(--r-pill); padding:.3rem .85rem; }
.notice { border-left:none; background:var(--sand); border-radius:var(--r-card); padding:1.3rem 1.5rem; }
.center { text-align:center; }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:1139px) {
  .services-grid { grid-template-columns:repeat(6,1fr); }
  .service-card { grid-column:span 3; }
  .service-card.is-photo { grid-column:span 6; grid-row:auto; min-height:260px; }
  .footer-grid { grid-template-columns:1fr 1fr; }
}

@media (max-width:899px) {
  :root { --header-h:64px; }
  .site-header { backdrop-filter:none; -webkit-backdrop-filter:none; background:var(--bg); }
  .brand img { height:40px; }
  .brand-name small { display:none; }
  .header-phone { display:none; }
  .nav-toggle {
    display:inline-flex; flex-direction:column; justify-content:center; gap:5px;
    width:44px; height:44px; padding:10px; background:none; border:0; cursor:pointer; border-radius:10px;
  }
  .nav-toggle span { display:block; height:2px; background:var(--ink); border-radius:2px; transition:transform .2s ease, opacity .2s ease; }
  .nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
  .nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
  .main-nav {
    position:fixed; inset:var(--header-h) 0 0 0; background:var(--bg);
    padding:1.2rem clamp(1.1rem,4vw,2rem) 6.5rem; overflow-y:auto; display:none; z-index:49;
  }
  .main-nav.is-open { display:block; }
  .main-nav ul { flex-direction:column; align-items:stretch; gap:.1rem; }
  .main-nav a, .main-nav button.nav-drop { width:100%; justify-content:space-between; font-size:1.12rem; padding:.85rem .6rem; border-radius:12px; }
  .dropdown { position:static; display:none; border:0; box-shadow:none; background:var(--sand); border-radius:12px; margin:.2rem 0 .6rem; }
  .dropdown.is-open { display:block; }
  .header-cta .btn { padding:.65rem 1.1rem; font-size:.92rem; }

  .hero-grid, .split, .team-grid, .grid-2 { grid-template-columns:1fr; }
  .review-rail {
    display:flex; overflow-x:auto; gap:.9rem; padding-bottom:.6rem;
    scroll-snap-type:x proximity;
    touch-action:pan-x pan-y; overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch;
    scrollbar-color:var(--sand-deep) transparent;
  }
  .review-card { flex:0 0 84%; max-width:22rem; scroll-snap-align:start; }
  .rating-number { font-size:2.6rem; }
  .split.rev figure { order:-1; }
  .media-grid { grid-template-columns:repeat(2,1fr); }
  .price-grid { grid-template-columns:1fr 1fr; }
  .contact-tiles { grid-template-columns:1fr 1fr; }
  .form-grid { grid-template-columns:1fr; }
  .team-card { grid-template-columns:1fr; }
  .team-card img { max-height:420px; }

  .action-bar {
    display:grid; grid-template-columns:1fr 1fr 1.3fr; gap:.5rem;
    position:fixed; bottom:0; left:0; right:0; z-index:48;
    background:rgb(250 248 243 / .95); backdrop-filter:blur(10px);
    border-top:1px solid var(--line); padding:.55rem .8rem calc(.55rem + env(safe-area-inset-bottom));
  }
  .action-bar a {
    display:flex; align-items:center; justify-content:center; gap:.45rem;
    font-family:var(--font-display); font-weight:600; font-size:.92rem; text-decoration:none;
    padding:.65rem .5rem; border-radius:var(--r-pill); min-height:44px;
  }
  .action-bar .ab-ghost { color:var(--ink); border:1.5px solid var(--line); background:#fff; }
  .action-bar .ab-primary { color:#fff; background:var(--pine); }
  body { padding-bottom:70px; }
}

@media (max-width:639px) {
  body { font-size:1rem; }
  .services-grid { grid-template-columns:1fr; }
  .service-card, .service-card.is-photo { grid-column:auto; }
  .media-grid { grid-template-columns:1fr 1fr; gap:.8rem; }
  .price-grid, .contact-tiles { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr; gap:1.8rem; }
  .hero-ctas .btn { width:100%; }
}

@media (max-width:399px) {
  .brand { gap:.5rem; }
  .brand img { height:36px; }
  .brand-name { font-size:.98rem; }
  .header-cta { gap:.35rem; }
  .header-cta .btn { padding:.55rem .85rem; font-size:.86rem; }
}

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

@media print {
  .site-header, .action-bar, .site-footer, .video-tile, .btn { display:none !important; }
}

/* ============================================================
   V2 — lebendigere Startseiten-Kompositionen
   ============================================================ */

/* ---------- Hero V2: großer Split mit Foto + Video-Kachel ---------- */
.hero-v2 { display:flex; align-items:center; min-height:min(88vh, 860px); padding-block:2.5rem 4.5rem; overflow:clip; }
.hero-v2 .hero-grid { grid-template-columns:minmax(0,5fr) minmax(0,7fr); align-items:center; width:100%; }
.hero-loc { font-family:var(--font-display); font-weight:600; font-size:1rem; color:var(--gold-deep); margin-bottom:.9rem; }
.hero-v2 h1 { font-size:clamp(2.3rem, 1.5rem + 3.4vw, 4rem); letter-spacing:-0.02em; }
.hero-media { position:relative; padding:0 0 3.2rem 0; }
.hero-photo-zone { position:relative; }
.hero-media::before {
  content:""; position:absolute; right:-14vw; top:-9rem; bottom:-1rem; left:22%;
  background:var(--sand); border-radius:32px 0 0 120px; z-index:-1;
}
.hero-photo-wrap { position:relative; z-index:2; border-radius:22px; overflow:hidden; box-shadow:var(--shadow-lift); pointer-events:none; }
.hero-photo-wrap img { width:100%; height:min(66vh, 620px); object-fit:cover; display:block; }
.hero-video-tile {
  position:absolute; left:1.6rem; bottom:calc(-1 * clamp(84px, 42%, 96px)); z-index:1;
  width:clamp(148px, 11vw, 164px); height:clamp(200px, 15vw, 226px);
  border-radius:16px; overflow:hidden; border:0; padding:0; cursor:pointer;
  box-shadow:0 14px 34px -14px rgb(38 49 43 / .45);
  background:var(--ink); outline-offset:4px;
  transition:transform .25s ease, box-shadow .25s ease;
}
.hero-video-tile:hover { transform:translateY(3px); }
.hero-video-tile img { width:100%; height:100%; object-fit:cover; opacity:.95; }
.hero-video-tile img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero-video-tile .play {
  position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:.3rem;
  background:linear-gradient(180deg, rgb(14 21 18 / .05) 30%, rgb(14 21 18 / .72));
  color:#fff; font-family:var(--font-display); font-weight:600; font-size:.78rem; text-align:center; padding:.75rem .5rem .8rem;
}
.hero-video-tile .play svg { width:32px; height:32px; }
.hero-video-tile .play-long { display:none; }
.hero-video-tile .play svg { filter:drop-shadow(0 4px 12px rgb(0 0 0 / .4)); }
.hero-caption { margin-top:.9rem; font-size:.92rem; color:var(--ink-soft); text-align:right; }

/* ---------- Medien-Hover (dezenter Zoom) ---------- */
.media-zoom { overflow:hidden; border-radius:var(--r-card); }
.media-zoom img { transition:transform .5s ease; }
@media (prefers-reduced-motion:no-preference) {
  .media-zoom:hover img { transform:scale(1.03); }
}

/* ---------- Leistungen V2 ---------- */
.feature-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:1.2rem; margin-bottom:1.2rem; }
.feature-card {
  position:relative; display:flex; flex-direction:column; justify-content:flex-end;
  border-radius:var(--r-card); overflow:hidden; text-decoration:none; color:#fff;
  min-height:280px; box-shadow:var(--shadow-soft);
  transition:transform .2s ease, box-shadow .2s ease;
}
.feature-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lift); color:#fff; }
.feature-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
@media (prefers-reduced-motion:no-preference) { .feature-card:hover img { transform:scale(1.04); } }
.feature-card .overlay {
  position:relative; padding:1.7rem 1.6rem 1.5rem;
  background:linear-gradient(180deg, rgb(20 30 25 / 0) 0%, rgb(20 30 25 / .62) 38%, rgb(20 30 25 / .86) 100%);
}
.feature-card h3 { color:#fff; margin-bottom:.25rem; font-size:1.35rem; }
.feature-card p { color:rgb(255 255 255 / .88); margin:0; max-width:34rem; }
.feature-card .go { display:inline-block; margin-top:.8rem; font-family:var(--font-display); font-weight:600; font-size:.95rem; color:#EFD9A7; }
.feature-card.is-hero { grid-column:span 7; grid-row:span 2; min-height:600px; }
.feature-card.is-hero h3 { font-size:1.7rem; }
.feature-card.is-half { grid-column:span 5; min-height:290px; }
.mini-services { display:grid; grid-template-columns:repeat(5,1fr); gap:1rem; }
.mini-service {
  display:flex; flex-direction:column; gap:.3rem; padding:1.15rem 1.2rem 1.05rem;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-card);
  text-decoration:none; color:var(--ink); transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.mini-service:hover { transform:translateY(-3px); box-shadow:var(--shadow-soft); border-color:var(--sand-deep); color:var(--ink); }
.mini-service strong { font-family:var(--font-display); font-weight:600; font-size:1rem; }
.mini-service span { font-size:.88rem; color:var(--ink-soft); }
.mini-service .go { margin-top:auto; padding-top:.5rem; font-family:var(--font-display); font-weight:600; font-size:.88rem; color:var(--gold-deep); }

/* ---------- Über uns V2 ---------- */
.about-grid { display:grid; grid-template-columns:minmax(0,6fr) minmax(0,6fr); gap:clamp(2rem,4vw,4rem); align-items:start; }
.about-photo { position:sticky; top:calc(var(--header-h) + 1.4rem); }
.about-photo .media-zoom img { width:100%; height:clamp(460px, 52vw, 760px); object-fit:cover; object-position:center 22%; }
.about-photo figcaption { margin-top:.7rem; font-size:.92rem; color:var(--ink-soft); }
.facts-bar { display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; margin:2.2rem 0; padding:1.4rem 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.facts-bar strong { display:block; font-family:var(--font-display); font-weight:700; font-size:1.15rem; color:var(--pine); }
.facts-bar span { font-size:.9rem; color:var(--ink-soft); }
.founder-cards { display:grid; gap:.9rem; margin:1.6rem 0; }
.founder-card { display:grid; grid-template-columns:64px 1fr; gap:1rem; align-items:start; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-card); padding:1.1rem 1.2rem; }
.founder-card img { width:64px; height:64px; border-radius:50%; object-fit:cover; object-position:top; }
.founder-card p { margin:0; font-size:.97rem; }
.founder-card strong { font-family:var(--font-display); }

/* ---------- Dunkler Statement-Abschnitt ---------- */
.section-dark { background:var(--pine-deep); color:#E9EDE8; }
.section-dark h2 { color:#fff; font-size:clamp(1.8rem, 1.3rem + 2vw, 2.6rem); }
.section-dark p { color:#C9D4CB; }
.section-dark .lead { color:#E2E9E2; }
.section-dark em { color:#EFD9A7; font-style:italic; }
.section-dark ::selection { background:#EFD9A7; color:var(--pine-deep); }
.section-dark .gold-line { width:64px; height:3px; background:var(--gold); border-radius:2px; margin-bottom:1.6rem; }

/* ---------- Galerie V2: Editorial ---------- */
.media-grid-v2 { display:grid; grid-template-columns:minmax(0,1.35fr) 1fr 1fr; grid-auto-rows:minmax(0,1fr); gap:1.1rem; }
.media-grid-v2 .video-tile { aspect-ratio:9/16; }
.media-grid-v2 .video-tile.is-featured { grid-row:span 2; aspect-ratio:auto; min-height:100%; }
.media-grid-v2 .video-tile.is-featured .play svg { width:52px; height:52px; }

/* ---------- Terminbereich V2 ---------- */
.booking-grid { display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:clamp(2rem,4vw,4rem); align-items:start; }
.contact-ways { display:grid; gap:.8rem; margin:1.6rem 0; }
.contact-way {
  display:grid; grid-template-columns:44px 1fr auto; align-items:center; gap:1rem;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-card);
  padding:.95rem 1.2rem; text-decoration:none; color:var(--ink);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.contact-way:hover { transform:translateY(-2px); box-shadow:var(--shadow-soft); border-color:var(--sand-deep); color:var(--ink); }
.contact-way svg { color:var(--gold); }
.contact-way strong { font-family:var(--font-display); display:block; }
.contact-way small { color:var(--ink-soft); font-size:.88rem; }
.contact-way .arrow { font-family:var(--font-display); font-weight:600; color:var(--gold-deep); }
.booking-photo img { width:100%; height:300px; object-fit:cover; object-position:center 62%; }
.form-panel {
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-card);
  padding:clamp(1.4rem, 3vw, 2.2rem); box-shadow:var(--shadow-soft);
}
.form-panel h3 { margin-bottom:1.2rem; }

/* ---------- Kontakt-Abschluss V2 ---------- */
.contact-final { padding-bottom:clamp(3rem, 5vw, 5rem); }
.contact-final .grid-2 { align-items:start; }

/* ---------- Responsive V2 ---------- */
@media (max-width:1139px) {
  .hero-video-tile { width:136px; height:186px; left:1.2rem; }
  .feature-card.is-hero { grid-column:span 12; min-height:420px; grid-row:auto; }
  .feature-card.is-half { grid-column:span 6; }
  .mini-services { grid-template-columns:repeat(3,1fr); }
  .media-grid-v2 { grid-template-columns:1fr 1fr 1fr; }
}

@media (max-width:899px) {
  .hero-v2 { min-height:0; padding-block:1.6rem 3rem; }
  .hero-v2 .hero-grid { grid-template-columns:1fr; gap:2.4rem; }
  .hero-media { padding:0; }
  .hero-media::before { right:-6vw; left:-6vw; top:18%; border-radius:32px; }
  .hero-photo-wrap img { height:min(52vh, 440px); }
  .hero-video-tile {
    position:static; width:100%; height:auto; margin-top:.8rem;
    display:grid; grid-template-columns:64px 1fr; align-items:center; gap:0;
    border-radius:14px; background:var(--surface); border:1px solid var(--line);
    box-shadow:none; text-align:left;
  }
  .hero-video-tile img { position:static; width:64px; height:64px; object-fit:cover; border-radius:14px 0 0 14px; }
  .hero-video-tile .play {
    position:static; flex-direction:row; justify-content:flex-start; gap:.7rem;
    background:none; color:var(--ink); font-size:.95rem; padding:.6rem 1rem;
  }
  .hero-video-tile .play svg { width:30px; height:30px; }
  .hero-video-tile .play-short { display:none; }
  .hero-video-tile .play-long { display:inline; }
  .hero-caption { text-align:left; }
  .about-grid, .booking-grid { grid-template-columns:1fr; }
  .about-photo { position:static; }
  .about-photo .media-zoom img { height:clamp(340px, 60vw, 480px); }
  .facts-bar { grid-template-columns:1fr; gap:.9rem; }
  .mini-services { grid-template-columns:1fr 1fr; }
  .media-grid-v2 {
    display:flex; overflow-x:auto; gap:.9rem; padding-bottom:.6rem;
    scroll-snap-type:x proximity;
    touch-action:pan-x pan-y; overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch;
  }
  .media-grid-v2 .video-tile { flex:0 0 62%; max-width:16rem; scroll-snap-align:start; aspect-ratio:9/16; }
  .media-grid-v2 .video-tile.is-featured { flex:0 0 72%; max-width:19rem; grid-row:auto; min-height:0; aspect-ratio:9/16; }
  .booking-photo img { height:220px; }
}

@media (max-width:639px) {
  .feature-card.is-half { grid-column:span 12; min-height:250px; }
  .mini-services { grid-template-columns:1fr; }
  .founder-card { grid-template-columns:52px 1fr; }
  .founder-card img { width:52px; height:52px; }
}

/* ============================================================
   V3 — Art Direction: dichte, professionelle Klinik-Ästhetik
   ============================================================ */

/* ---------- Hero V3: größer, dichter ---------- */
.hero-v2 { padding-block:2rem 3.6rem; }
.hero-v2 h1 { font-size:clamp(2.5rem, 1.6rem + 3.8vw, 4.4rem); }
.hero-lede { font-size:1.12rem; }
.hero-badges { margin-top:1.8rem; padding-top:1.3rem; gap:.5rem 1.4rem; }

/* ---------- Leistungs-Karten V3 (Bild oben, Text unten) ---------- */
.svc-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:1.1rem; }
.svc-card {
  grid-column:span 4; display:flex; flex-direction:column;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-card);
  overflow:hidden; text-decoration:none; color:var(--ink);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.svc-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lift); border-color:var(--sand-deep); color:var(--ink); }
.svc-media { overflow:hidden; aspect-ratio:16/10; }
.svc-media img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
@media (prefers-reduced-motion:no-preference) { .svc-card:hover .svc-media img { transform:scale(1.045); } }
.svc-body { padding:1.2rem 1.3rem 1.15rem; display:flex; flex-direction:column; gap:.3rem; flex:1; }
.svc-body h3 { margin:0; font-size:1.15rem; }
.svc-body p { margin:0; color:var(--ink-soft); font-size:.95rem; }
.svc-body .go { margin-top:auto; padding-top:.7rem; font-family:var(--font-display); font-weight:600; font-size:.92rem; color:var(--gold-deep); }
.svc-card:hover .go { color:var(--ink); }
.svc-card.is-lead { grid-column:span 6; }
.svc-card.is-lead .svc-media { aspect-ratio:16/9; }
.svc-card.is-lead h3 { font-size:1.35rem; }
.svc-card.is-third { grid-column:span 3; }
.svc-card.is-text { justify-content:flex-start; background:var(--sand); border-color:transparent; }
.svc-card.is-text .svc-body { padding-top:1.35rem; }
.svc-card.is-cta { background:var(--pine); border-color:transparent; color:#fff; }
.svc-card.is-cta h3 { color:#fff; }
.svc-card.is-cta p { color:rgb(255 255 255 / .82); }
.svc-card.is-cta .go { color:#EFD9A7; }
.svc-card.is-cta:hover { color:#fff; }

/* ---------- Dunkler Kompetenzbereich ---------- */
.trust-grid { display:grid; grid-template-columns:minmax(0,6fr) minmax(0,5fr); gap:clamp(2rem,4vw,3.5rem); align-items:center; }
.trust-points { display:grid; grid-template-columns:1fr 1fr; gap:.9rem; margin-top:1.8rem; }
.trust-point {
  background:rgb(255 255 255 / .05); border:1px solid rgb(255 255 255 / .12);
  border-radius:var(--r-card); padding:1.15rem 1.25rem 1.05rem;
}
.trust-point strong { display:block; font-family:var(--font-display); color:#fff; font-size:1.02rem; margin-bottom:.25rem; }
.trust-point span { font-size:.92rem; color:#B9C6BB; }
.trust-media { position:relative; }
.trust-media .media-zoom img { width:100%; height:clamp(380px, 42vw, 560px); object-fit:cover; }
.trust-media .trust-inset {
  position:absolute; left:-2.2rem; bottom:-1.8rem; width:clamp(140px, 13vw, 190px);
  border-radius:16px; overflow:hidden; box-shadow:var(--shadow-lift); border:3px solid var(--pine-deep);
}
.section-dark .hero-ctas { margin-top:1.8rem; }

/* ---------- Bewertungen V3: kompaktes Karussell ---------- */
.reviews-head-v3 { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem 2rem; margin-bottom:1.4rem; }
.reviews-head-v3 .rating-summary { gap:.9rem; }
.reviews-head-v3 .rating-number { font-size:2.6rem; }
.reviews-nav { display:flex; align-items:center; gap:.5rem; }
.reviews-nav .btn { padding:.6rem 1.1rem; font-size:.92rem; }
.rev-arrow {
  width:44px; height:44px; border-radius:50%; border:1.5px solid var(--line); background:var(--surface);
  display:inline-flex; align-items:center; justify-content:center; cursor:pointer; color:var(--ink);
  transition:border-color .18s ease, background .18s ease, transform .12s ease;
}
.rev-arrow:hover { border-color:var(--gold); }
.rev-arrow:active { transform:scale(.96); }
.rev-arrow[disabled] { opacity:.35; cursor:default; }
.review-rail-v3 {
  display:flex; gap:1rem; overflow-x:auto; overflow-y:visible;
  /* Kein Snap und kein overscroll-contain auf Desktop: vertikale
     Rad-/Trackpad-Gesten laufen frei zur Seite durch. */
  scroll-snap-type:none; overscroll-behavior:auto;
  touch-action:pan-x pan-y;
  -webkit-overflow-scrolling:touch; padding-bottom:.5rem;
  scrollbar-color:var(--sand-deep) transparent; scrollbar-width:thin;
}
@media (hover:none) {
  .review-rail-v3 { scroll-snap-type:x proximity; }
  .review-rail-v3 .review-card { scroll-snap-align:start; }
}
.review-rail-v3 .review-card {
  flex:0 0 calc((100% - 2rem) / 3); min-height:0;
}
.review-rail-v3 blockquote { font-size:.97rem; }
/* Kürzung ist CSS-Default (unabhängig von JS), Aufhebung nur per Klick */
.review-rail-v3 .review-card blockquote {
  display:-webkit-box; -webkit-line-clamp:5; -webkit-box-orient:vertical; overflow:hidden;
}
.review-rail-v3 .review-card.is-expanded blockquote {
  display:block; overflow:visible;
}
.read-more {
  align-self:flex-start; background:none; border:0; padding:0; cursor:pointer;
  font-family:var(--font-display); font-weight:600; font-size:.88rem; color:var(--gold-deep);
  text-decoration:underline; text-underline-offset:3px; text-decoration-color:var(--sand-deep);
}
.read-more:hover { color:var(--ink); }

/* ---------- Footer V3 ---------- */
.footer-brand { display:flex; align-items:center; gap:.8rem; margin-bottom:1rem; }
.footer-brand img { width:52px; height:52px; border-radius:12px; }
.footer-brand span { font-family:var(--font-display); font-weight:700; color:#fff; font-size:1.1rem; line-height:1.2; }
.footer-brand small { display:block; font-family:var(--font-text); font-weight:400; color:#C3CFC5; font-size:.82rem; }
.footer-grid { padding-block:3rem 2rem; }

/* ---------- Responsive V3 ---------- */
@media (max-width:1139px) {
  .svc-card, .svc-card.is-third { grid-column:span 6; }
  .svc-card.is-lead { grid-column:span 12; }
  .review-rail-v3 .review-card { flex-basis:calc((100% - 1rem) / 2); }
  .trust-grid { grid-template-columns:1fr; }
  .trust-media { order:-1; }
  .trust-media .trust-inset { left:auto; right:1.2rem; bottom:-1.4rem; }
}

@media (max-width:899px) {
  .review-rail-v3 .review-card { flex-basis:84%; max-width:22rem; }
  .trust-media .media-zoom img { height:clamp(280px, 52vw, 420px); }
}

.svc-card--feet-feel .svc-media img { object-position:center 24%; }
.svc-card--posturologie .svc-media img { object-position:center 5%; }
.svc-card--babymassage .svc-media img { object-position:center 22%; }

@media (max-width:639px) {
  .svc-card, .svc-card.is-third, .svc-card.is-lead { grid-column:span 12; }
  .reviews-nav .rev-arrow { display:none; }
}

/* ---------- Kleine Marken-Logos (WhatsApp, Instagram) ---------- */
.brandicon { flex-shrink:0; }
.iconlink { display:inline-flex; align-items:center; gap:.45rem; }
.iconlink .brandicon { opacity:.85; }
.ab-ghost { display:inline-flex; align-items:center; justify-content:center; gap:.45rem; }

/* ============================================================
   Schwebende Kontaktleiste (Desktop) + Hero-Inline-Video
   ============================================================ */

/* ---------- Kontakt-FAB ---------- */
.fab { position:fixed; right:28px; bottom:28px; z-index:45; display:flex; flex-direction:column; align-items:flex-end; gap:.6rem; }
.fab-main {
  position:relative;
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:var(--font-display); font-weight:600; font-size:1rem;
  background:var(--pine); color:#fff; cursor:pointer;
  /* heller Ring: trennt den Button auf hellem UND dunklem Untergrund */
  border:2px solid rgb(242 236 224 / .92);
  border-radius:var(--r-pill); padding:.9rem 1.45rem;
  box-shadow:0 14px 34px -12px rgb(14 21 18 / .55), 0 2px 6px rgb(14 21 18 / .18);
  transition:background .18s ease, transform .15s ease, border-color .18s ease;
}
/* einmalige, ruhige Aufmerksamkeitswelle beim ersten Erscheinen */
@media (prefers-reduced-motion:no-preference) {
  html.js .fab-main::after {
    content:""; position:absolute; inset:-2px; border-radius:inherit;
    border:2px solid rgb(200 166 84 / .85); pointer-events:none;
    animation:fabPing 2.2s cubic-bezier(0.22,1,0.36,1) 1.2s 2 both;
  }
  @keyframes fabPing {
    0%   { opacity:.9; transform:scale(1); }
    70%  { opacity:0;  transform:scale(1.28); }
    100% { opacity:0;  transform:scale(1.28); }
  }
}
.fab-main:hover { background:var(--pine-deep); border-color:#fff; }
.fab-main:active { transform:translateY(1px); }
.fab-menu { display:flex; flex-direction:column; align-items:flex-end; gap:.55rem; }
.fab-menu[hidden] { display:none; }
.fab-pill {
  display:inline-flex; align-items:center; gap:.55rem;
  font-family:var(--font-display); font-weight:600; font-size:.98rem;
  background:var(--surface); color:var(--ink); text-decoration:none;
  border:1px solid var(--line); border-radius:var(--r-pill);
  padding:.75rem 1.3rem; min-height:44px;
  box-shadow:0 10px 26px -14px rgb(38 49 43 / .4);
  transition:border-color .18s ease, transform .15s ease, background .18s ease;
}
.fab-pill:hover { border-color:var(--gold); transform:translateY(-2px); color:var(--ink); }
.fab-pill.fab-wa svg { color:#1FA855; }
.fab-pill svg { color:var(--gold-deep); flex:none; }
.fab-pill.fab-wa:hover { border-color:#1FA855; }
.fab-pill.fab-insta svg { color:#C13584; }
.fab-pill.fab-insta:hover { border-color:#C13584; }
.contact-tile[href*="instagram"] svg { color:#C13584; }
.contact-tile[href*="instagram"]:hover { border-color:#C13584; }
.contact-tile[href*="wa.me"] svg { color:#1FA855; }
.contact-tile[href*="wa.me"]:hover { border-color:#1FA855; }
.iconlink[href*="wa.me"] .brandicon { color:#4CC366; opacity:1; }
.iconlink[href*="instagram"] .brandicon { color:#E1699E; opacity:1; }
.action-bar a[href*="wa.me"] svg { color:#1FA855; }
@media (prefers-reduced-motion:no-preference) {
  .fab-menu:not([hidden]) .fab-pill { animation:fabIn .28s cubic-bezier(0.22,1,0.36,1) backwards; }
  .fab-menu:not([hidden]) .fab-pill:nth-child(3) { animation-delay:.05s; }
  .fab-menu:not([hidden]) .fab-pill:nth-child(2) { animation-delay:.1s; }
  .fab-menu:not([hidden]) .fab-pill:nth-child(1) { animation-delay:.15s; }
  @keyframes fabIn { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
}
@media (max-width:899px) { .fab { display:none; } }
@media (min-width:900px) { .footer-legal { padding-right:220px; } }

/* Mobile Aktionsleiste: ausblenden, wenn Formularfelder fokussiert sind */
.action-bar.is-hidden { transform:translateY(110%); }
.action-bar { transition:transform .25s ease; }
.action-bar a { gap:.4rem; }

/* ---------- Hero-Inline-Video ---------- */
.hero-photo-wrap { background:var(--pine-deep); }
.hero-inline-video {
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:contain; background:var(--pine-deep); border-radius:22px;
  pointer-events:auto; opacity:0; transition:opacity .35s ease;
  z-index:2;
}
.hero-inline-video[hidden] { display:none; }
.hero-photo-wrap > img { transition:opacity .35s ease; }
.hero-photo-zone.is-video .hero-photo-wrap > img { opacity:0; }
.hero-photo-zone.is-video .hero-inline-video { opacity:1; }
.hero-video-close {
  position:absolute; top:.8rem; right:.8rem; z-index:3;
  display:inline-flex; align-items:center; gap:.45rem;
  background:rgb(14 21 18 / .72); color:#fff; border:0; cursor:pointer;
  border-radius:var(--r-pill); padding:.6rem 1.1rem; min-height:44px;
  font-family:var(--font-display); font-weight:600; font-size:.92rem;
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  pointer-events:auto; transition:background .18s ease;
}
.hero-video-close:hover, .hero-video-close:focus-visible { background:rgb(14 21 18 / .92); }
.hero-video-close[hidden] { display:none; }
.hero-video-tile.is-flipping {
  transition:transform .55s cubic-bezier(0.22,1,0.36,1), opacity .3s ease .35s;
  transform-origin:top left; z-index:4; pointer-events:none;
}
.hero-video-tile.is-hidden { opacity:0; pointer-events:none; }
@media (prefers-reduced-motion:reduce) {
  .hero-inline-video, .hero-photo-wrap > img { transition:none; }
}

/* Logo: freigestelltes Emblem, keine Kastenfläche */
.brand img, .footer-brand img { background:none; border-radius:0; object-fit:contain; }

/* ---------- Google-Attribution ---------- */
.rating-source { display:flex; align-items:center; gap:.4rem; }
.google-g { flex:none; }
.rev-src { display:inline-flex; align-items:center; gap:.3rem; white-space:nowrap; }
.rev-src .google-g-sm { flex:none; margin-left:.1rem; }

/* ---------- Online-Buchung (Thevea-Vorbereitung) ---------- */
.booking-panel {
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-card);
  padding:1.4rem 1.5rem 1.3rem; margin-bottom:1.6rem;
}
.booking-panel h2, .booking-panel h3 { margin-bottom:.5rem; }
.booking-badge {
  display:inline-block; font-family:var(--font-display); font-weight:600; font-size:.8rem;
  color:var(--gold-deep); background:var(--sand); border-radius:var(--r-pill);
  padding:.25rem .8rem; margin-bottom:.7rem;
}
.booking-slot { margin-bottom:.2rem; }
.booking-pending-text { margin-bottom:.4rem; }
.booking-panel.is-pending .booking-live-cta { display:none; }
.booking-panel.is-live .booking-slot:not(:has(iframe)):not(:has(script)) { display:none; }
.booking-panel.is-live .booking-live-cta { margin-top:.4rem; }
.booking-alt-title { font-size:1.15rem; margin:1.8rem 0 .9rem; }
.page-head { padding-bottom:0; }

/* ---------- od|bookings-Widget: Koexistenz mit eigener Kontaktleiste ---------- */
body.oddc-active .fab { display:none; }
@media (max-width:899px) {
  /* oddc-Button über der mobilen Aktionsleiste platzieren */
  oddc-bf-main-button { bottom:calc(78px + env(safe-area-inset-bottom)) !important; }
  oddc-bf-call-to-action { bottom:calc(148px + env(safe-area-inset-bottom)) !important; }
}

/* ---------- SCANECA-Leistungskarte (dunkel, span 8) ---------- */
.svc-card--scaneca {
  grid-column:span 8; flex-direction:row-reverse; align-items:stretch;
  background:#000;
  border-color:rgb(200 166 84 / .35); color:#fff; position:relative; overflow:hidden;
  min-height:260px;
}
.svc-card--scaneca:hover { color:#fff; border-color:#C8A654; }
.svc-card--scaneca .svc-body { flex:1 1 58%; justify-content:center; padding:1.6rem 0 1.6rem 1.6rem; }
.svc-card--scaneca h3 { color:#fff; font-size:1.35rem; }
.svc-card--scaneca p { color:rgb(255 255 255 / .8); }
.svc-card--scaneca .go { color:#EFD9A7; }
.svc-card--scaneca:hover .go { color:#fff; }
.scaneca-card-badge {
  align-self:flex-start; font-family:var(--font-display); font-weight:700; font-size:.78rem;
  letter-spacing:.08em; text-transform:uppercase;
  background:#C8A654; color:#141A15; border-radius:var(--r-pill);
  padding:.28rem .8rem; margin-bottom:.7rem;
}
.scaneca-card-media { flex:1 1 42%; position:relative; min-width:0; }
.scaneca-card-media img {
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:contain; object-position:center;
  transform:scale(1.12);
  transition:transform .5s ease;
  -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 25%);
  mask-image:linear-gradient(90deg, transparent 0, #000 25%);
}
@media (prefers-reduced-motion:no-preference) {
  .svc-card--scaneca:hover .scaneca-card-media img { transform:scale(1.17); }
  /* einmaliger dezenter Gold-Schimmer beim ersten Erscheinen */
  html.js .svc-card--scaneca.is-visible::after {
    content:""; position:absolute; inset:0; pointer-events:none;
    background:linear-gradient(105deg, transparent 30%, rgb(200 166 84 / .22) 50%, transparent 70%);
    transform:translateX(-120%);
    animation:scanecaShine 1.4s ease-out .35s 1 forwards;
  }
  @keyframes scanecaShine { to { transform:translateX(120%); } }
}
@media (max-width:1139px) { .svc-card--scaneca { grid-column:span 12; } }
@media (max-width:639px) {
  .svc-card--scaneca { flex-direction:column; min-height:0; }
  .svc-card--scaneca .svc-body { padding:1.3rem; }
  .scaneca-card-media { min-height:220px; }
  .scaneca-card-media img {
    -webkit-mask-image:linear-gradient(180deg, transparent 0, #000 18%);
    mask-image:linear-gradient(180deg, transparent 0, #000 18%);
  }
}

/* ============================================================
   SCANECA — kompakter Autoplay-Bereich (dunkle Bühne)
   ============================================================ */
.scaneca { background:var(--pine-deep); color:#E9EDE8; overflow:clip; }
.scaneca-wrap { max-width:1260px; padding-block:clamp(2.6rem, 3.5vw, 3.6rem); }
.scaneca-eyebrow {
  font-family:var(--font-display); font-weight:600; font-size:.9rem;
  letter-spacing:.14em; text-transform:uppercase; color:#C8A654; margin-bottom:.9rem;
}
.scaneca h2 { color:#fff; font-size:clamp(1.9rem, 1.35rem + 2.4vw, 3rem); }
.scaneca .lead { color:#C9D4CB; font-size:clamp(1.02rem, .98rem + .3vw, 1.15rem); max-width:36rem; margin-bottom:1.6rem; }

.scaneca-grid {
  display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr);
  gap:clamp(2rem,4vw,4.5rem); align-items:center;
}
.scaneca-steps { list-style:none; margin:0 0 1.6rem; padding:0; display:grid; gap:.15rem; }
.scaneca-steps li { margin:0; }
.scaneca-steps button {
  display:block; width:100%; text-align:left; background:none; border:0; cursor:pointer;
  border-left:2px solid rgb(255 255 255 / .16);
  padding:.55rem 0 .55rem 1.2rem; color:inherit; font-family:var(--font-text);
  transition:border-color .4s ease, opacity .4s ease, transform .4s ease;
  opacity:.58;
}
.scaneca-steps strong { display:block; font-family:var(--font-display); font-weight:600; font-size:1.1rem; color:#fff; }
.scaneca-steps span {
  display:block; font-size:.95rem; color:#C4D0C6; max-width:30rem;
  overflow:hidden; max-height:0; opacity:0;
  transition:max-height .45s ease, opacity .45s ease, margin .45s ease;
}
.scaneca-steps button.is-active { opacity:1; border-left-color:#C8A654; transform:translateX(6px); }
.scaneca-steps button.is-active span { max-height:4.5em; opacity:1; margin-top:.15rem; }
.scaneca-steps button:hover { opacity:.9; }
@media (prefers-reduced-motion:reduce), (max-width:899px) {
  .scaneca-steps span { max-height:none; opacity:1; transition:none; }
  .scaneca-steps button.is-active { transform:none; }
}
.scaneca-steps button:focus-visible { outline:2px solid #C8A654; outline-offset:3px; border-radius:6px; }

.scaneca-stage { position:relative; justify-self:center; width:min(100%, 350px); }
.scaneca-stage::before {
  content:""; position:absolute; inset:-12% -18%;
  background:radial-gradient(60% 54% at 50% 48%, rgb(0 0 0 / .9) 40%, rgb(200 166 84 / .12) 62%, transparent 78%);
  pointer-events:none;
}
.scaneca-video {
  position:relative; width:100%; max-height:min(72vh, 620px); border-radius:24px; background:#000;
  -webkit-mask-image:radial-gradient(120% 108% at 50% 50%, #000 60%, transparent 94%);
  mask-image:radial-gradient(120% 108% at 50% 50%, #000 60%, transparent 94%);
}
.scaneca-progress {
  position:absolute; left:10%; right:10%; bottom:.4rem; height:3px;
  background:rgb(255 255 255 / .16); border-radius:2px; overflow:hidden;
}
.scaneca-progress span { display:block; height:100%; width:0; background:#C8A654; border-radius:2px; }
.scaneca-device {
  position:absolute; left:-3.2rem; bottom:-1.6rem; z-index:2; margin:0;
  width:132px; border-radius:16px; overflow:hidden;
  background:#0B0E0C; border:1px solid rgb(200 166 84 / .35);
  box-shadow:0 16px 34px -16px rgb(0 0 0 / .7);
}
.scaneca-device img { width:100%; height:130px; object-fit:contain; padding:.4rem .4rem 0; }
.scaneca-device figcaption {
  padding:.35rem .6rem .5rem; font-family:var(--font-display); font-weight:600;
  font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:#C8A654; text-align:center;
}
.scaneca-playpause {
  position:absolute; right:.4rem; bottom:1.1rem; z-index:2;
  width:46px; height:46px; border-radius:50%; border:0; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  background:rgb(14 21 18 / .72); color:#fff;
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  transition:background .18s ease;
}
.scaneca-playpause:hover, .scaneca-playpause:focus-visible { background:rgb(14 21 18 / .92); }
.scaneca-playpause .ic-pause { display:none; }
.scaneca-playpause[aria-pressed="true"] .ic-play { display:none; }
.scaneca-playpause[aria-pressed="true"] .ic-pause { display:block; }

.scaneca-ablauf-inline {
  list-style:none; margin:1.4rem 0 1.5rem; padding:1rem 0 0; counter-reset:ablauf;
  display:flex; flex-wrap:wrap; gap:.5rem 1.6rem;
  border-top:1px solid rgb(255 255 255 / .12);
}
.scaneca-ablauf-inline li {
  margin:0; padding-left:1.9rem; position:relative; counter-increment:ablauf;
  font-size:.92rem; color:#C4D0C6; font-family:var(--font-display); font-weight:500;
}
.scaneca-ablauf-inline li::before {
  content:counter(ablauf); position:absolute; left:0; top:50%; transform:translateY(-50%);
  width:1.35rem; height:1.35rem; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  border:1.5px solid #C8A654; color:#C8A654;
  font-weight:700; font-size:.75rem;
}
.scaneca-ready { color:#fff; font-family:var(--font-display); font-weight:600; font-size:1.08rem; margin:0 0 .9rem; }

@media (max-width:899px) {
  .scaneca-grid { grid-template-columns:1fr; gap:1.8rem; }
  .scaneca-stage { order:1; width:min(100%, 330px); }
  .scaneca-video { max-height:560px; }
  .scaneca-copy { display:contents; }
  .scaneca-copy > .scaneca-eyebrow { order:0; }
  .scaneca-copy > h2 { order:0; }
  .scaneca-copy > .lead { order:0; margin-bottom:.4rem; }
  .scaneca-copy > .scaneca-steps { order:2; margin:0; }
  .scaneca-copy > .scaneca-book { order:3; justify-self:start; }
  .scaneca-device { left:.8rem; bottom:-1.2rem; width:112px; }
  .scaneca-device img { height:104px; }
  .scaneca-stage { margin-bottom:1.4rem; }
}

/* ---------- Shop-Button + TikTok ---------- */
.btn-shop {
  position:relative; overflow:hidden;
  background:var(--sand); color:var(--gold-deep); border-color:var(--sand-deep);
  gap:.45rem;
}
.btn-shop:hover, .btn-shop:focus-visible { background:var(--sand-deep); color:var(--ink); }
.shop-neu {
  font-size:.62rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  background:var(--gold); color:#fff; border-radius:var(--r-pill); padding:.14rem .45rem;
  margin-left:.15rem;
}
@media (prefers-reduced-motion:no-preference) {
  html.js .btn-shop::after {
    content:""; position:absolute; inset:0; pointer-events:none;
    background:linear-gradient(105deg, transparent 30%, rgb(168 137 76 / .28) 50%, transparent 70%);
    transform:translateX(-130%);
    animation:shopShine 1.6s ease-out .8s 1 forwards;
  }
  @keyframes shopShine { to { transform:translateX(130%); } }
}
.nav-shop-mobile { display:none; }
.fab-pill.fab-tiktok svg { color:var(--ink); }
.fab-pill.fab-tiktok:hover { border-color:var(--ink); }
.contact-tile[href*="tiktok"] svg { color:var(--ink); }
.contact-tile[href*="tiktok"]:hover { border-color:var(--ink); }

/* Responsive Header: Telefonnummer frueher ausblenden, damit nichts quetscht */
@media (max-width:1519px) { .header-phone { display:none; } }
@media (max-width:1279px) {
  .main-nav a, .main-nav button.nav-drop { padding:.55rem .6rem; font-size:.94rem; }
  .header-bar { gap:.8rem; }
}
@media (max-width:1023px) {
  .btn-shop span:not(.shop-neu) { display:none; }
  .btn-shop { padding-inline:.8rem; }
}
@media (max-width:899px) {
  .btn-shop { display:none; }
  .nav-shop-mobile { display:block; margin-top:.6rem; }
  .nav-shop-mobile a {
    display:flex; align-items:center; gap:.6rem;
    background:var(--sand); border-radius:12px; font-weight:600; color:var(--gold-deep);
  }
  .nav-shop-mobile svg { color:var(--gold-deep); }
}

/* ---------- Preisliste: SCANECA-Hervorhebung + Chips ---------- */
.price-card--scaneca { border-color:rgb(168 137 76 / .55); }
.price-card--scaneca .btn { margin-top:1rem; }
.neu-chip {
  display:inline-block; vertical-align:middle; margin-left:.4rem;
  font-family:var(--font-display); font-weight:700; font-size:.68rem;
  letter-spacing:.06em; text-transform:uppercase;
  background:var(--gold-deep); color:#fff; border-radius:var(--r-pill); padding:.16rem .55rem;
}
.paket-chip {
  display:inline-block; vertical-align:middle; margin-left:.35rem;
  font-family:var(--font-display); font-weight:600; font-size:.68rem;
  letter-spacing:.05em; text-transform:uppercase;
  border:1px solid var(--gold); color:var(--gold-deep); border-radius:var(--r-pill); padding:.12rem .5rem;
}
.price-more { margin:.6rem 0 0; font-size:.92rem; }

/* ---------- Kompakte Buchungskarte (THEVEA) ---------- */
.booking-card {
  max-width:860px; margin-inline:auto; text-align:center;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-card);
  padding:clamp(2rem, 4vw, 3rem) clamp(1.4rem, 4vw, 3rem);
}
.booking-cal {
  display:inline-flex; align-items:center; justify-content:center;
  width:56px; height:56px; border-radius:50%;
  background:var(--sand); color:var(--gold-deep); margin-bottom:1rem;
}
.booking-eyebrow {
  font-family:var(--font-display); font-weight:600; font-size:.88rem;
  letter-spacing:.12em; text-transform:uppercase; color:var(--gold-deep); margin-bottom:.6rem;
}
.booking-card h1, .booking-card h2 { margin-bottom:.5rem; }
.booking-card > p, .booking-card .booking-slot { max-width:34rem; margin-inline:auto; }
.booking-card .btn-primary { margin-top:.4rem; }
.booking-consent { font-size:.85rem; color:var(--ink-soft); margin-top:.9rem; }
.booking-hint { font-size:.9rem; color:var(--ink-soft); margin:.9rem 0 0; }
.booking-below { margin:2.2rem auto 0; text-align:center; }
#oddc-bookings-container { font-size:.95rem; color:var(--ink-soft); margin-top:.6rem; }

/* ============================================================
   Mobile-Feinschliff Header + Hero (nur <=899px, additiv)
   ============================================================ */
@media (max-width:899px) {
  /* Praxisname praesenter, Button kompakter, Abstaende ausbalanciert */
  .brand-name { font-size:1.24rem; }
  .brand { gap:.55rem; }
  .header-bar { gap:.6rem; }
  .header-cta { gap:.35rem; }
  .header-cta .btn { padding:.5rem .85rem; font-size:.84rem; }

  /* Hero: Beschreibung kompakter (Inhalt bleibt), Bild rueckt frueher ins Bild */
  .hero-v2 .hero-lede { font-size:.99rem; line-height:1.55; margin-bottom:1.2rem; }
  .hero-v2 .hero-ctas { margin-bottom:1rem; gap:.55rem; }
  .hero-v2 .hero-badges { margin-top:1rem; padding-top:.9rem; gap:.3rem 1rem; }
  .hero-v2 .hero-badges span { font-size:.85rem; }
  .hero-v2 .hero-badges svg { width:15px; height:15px; }
  .hero-v2 .hero-grid { gap:1.5rem; }
  .hero-v2 { padding-block:1.2rem 2.4rem; }
}
@media (max-width:479px) {
  /* verhindert Seiten-Mindestbreite durch nebeneinanderstehende Buttons */
  .reviews-nav { flex-wrap:wrap; }
}
@media (max-width:374px) {
  .header-bar { padding:0; gap:.3rem; }
  .site-header .container { padding-inline:.8rem; }
  .brand { gap:.4rem; }
  .brand img { height:34px; }
  .brand-name { font-size:1.02rem; }
  .header-cta { gap:.2rem; }
  .header-cta .btn { padding:.45rem .6rem; font-size:.76rem; }
  .nav-toggle { width:40px; padding:8px; }
  .action-bar { gap:.4rem; padding-inline:.6rem; }
  .action-bar a { font-size:.86rem; gap:.3rem; }
}

/* ---------- Buchungsbereich mit Hintergrundvideo (/termin-buchen/) ---------- */
.booking-hero {
  position:relative; overflow:hidden;
  min-height:min(660px, 84vh);
  display:grid; align-items:center;
  padding-block:clamp(2.5rem, 5vw, 4rem);
}
.booking-hero-video {
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center 42%;
  pointer-events:none;
}
.booking-hero-overlay {
  position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, rgb(36 59 49 / .78) 0%, rgb(36 59 49 / .66) 45%, rgb(36 59 49 / .8) 100%);
}
.booking-hero-inner { position:relative; display:flex; justify-content:center; }
.booking-card--onvideo {
  position:relative; max-width:560px; margin:0;
  background:rgb(250 247 239 / .9);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  border:1px solid rgb(250 247 239 / .55);
  box-shadow:0 24px 60px -28px rgb(10 18 14 / .55);
  padding:clamp(1.8rem, 3.5vw, 2.6rem) clamp(1.3rem, 3.5vw, 2.4rem);
}
.booking-card--onvideo::before {
  content:""; position:absolute; inset:-3.5rem; z-index:-1; pointer-events:none;
  background:radial-gradient(55% 55% at 50% 50%, rgb(200 166 84 / .22), transparent 75%);
}
@media (prefers-reduced-motion:no-preference) {
  html.js .booking-card--onvideo .btn-primary { animation:bookingBtnIn .7s ease-out backwards; }
  @keyframes bookingBtnIn { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }
}
@media (max-width:899px) {
  .booking-hero { min-height:0; padding-block:2.2rem 2.6rem; }
  .booking-hero-overlay { background:rgb(36 59 49 / .84); }
  .booking-hero-video { object-position:center 45%; }
  .booking-card--onvideo { margin-inline:.4rem; }
}

/* ============================================================
   Belebung: SCANECA-Details, Fakten, Akkordeons, Staffelung
   ============================================================ */

/* 1. Eyebrow als echtes goldenes Badge statt loser Kleintext */
.scaneca-eyebrow {
  display:inline-flex; align-items:center; gap:.5rem;
  background:rgb(200 166 84 / .14); border:1px solid rgb(200 166 84 / .45);
  color:#E4C77E; border-radius:var(--r-pill);
  padding:.4rem .95rem; font-size:.8rem; letter-spacing:.1em;
}
.scaneca-eyebrow::before {
  content:""; width:7px; height:7px; border-radius:50%; background:#C8A654;
  box-shadow:0 0 0 3px rgb(200 166 84 / .25);
}
/* im mobilen Grid (display:contents) nicht auf volle Breite strecken */
.scaneca-copy > .scaneca-eyebrow { justify-self:start; width:fit-content; }

/* 2. Ablaufzeile: kräftigere Nummern auf verbindender Linie */
.scaneca-ablauf-inline { position:relative; gap:.6rem 2rem; margin:1.5rem 0 1.7rem; }
.scaneca-ablauf-inline li {
  padding-left:2.2rem; color:#D7E0D8; font-size:.95rem;
  transition:color .25s ease;
}
.scaneca-ablauf-inline li::before {
  width:1.6rem; height:1.6rem; font-size:.8rem;
  background:rgb(200 166 84 / .16); border-color:rgb(200 166 84 / .7);
  color:#E4C77E; transition:background .25s ease, color .25s ease;
}
.scaneca-ablauf-inline li:hover { color:#fff; }
.scaneca-ablauf-inline li:hover::before { background:#C8A654; color:#1B2620; }

/* 3. Abschluss-CTA als zusammenhängende Gruppe */
/* ruhiger Abschluss: Frage leise, Button darunter mit Luft */
.scaneca-ready {
  display:block; font-family:var(--font-text); font-weight:400;
  font-size:1rem; color:#C4D0C6; margin:0 0 .9rem;
}
.scaneca-book { box-shadow:0 12px 28px -14px rgb(0 0 0 / .5); }

/* 4. Fakten-Leiste: große goldene Werte statt flacher Zeilen */
.facts-bar { gap:1.6rem; }
.facts-bar > div { position:relative; padding-left:1rem; }
.facts-bar > div::before {
  content:""; position:absolute; left:0; top:.15rem; bottom:.15rem;
  width:2px; background:linear-gradient(180deg, var(--gold), rgb(168 137 76 / .15));
  border-radius:2px;
}
.facts-bar strong { font-size:1.35rem; color:var(--gold-deep); letter-spacing:-0.01em; }

/* 5. Akkordeons: spürbarer Hover- und Offen-Zustand */
.acc summary { transition:color .2s ease, padding-left .2s ease; }
.acc summary:hover { color:var(--gold-deep); padding-left:.25rem; }
.acc[open] summary { color:var(--gold-deep); }

/* 6. Karten erscheinen leicht gestaffelt (nur Ersteinblendung) */
@media (prefers-reduced-motion:no-preference) {
  html.js .svc-grid .reveal:nth-child(2) { transition-delay:.07s; }
  html.js .svc-grid .reveal:nth-child(3) { transition-delay:.14s; }
  html.js .svc-grid .reveal:nth-child(4) { transition-delay:.05s; }
  html.js .svc-grid .reveal:nth-child(5) { transition-delay:.12s; }
  html.js .svc-grid .reveal:nth-child(6) { transition-delay:.19s; }
  html.js .contact-tiles .reveal:nth-child(2) { transition-delay:.06s; }
  html.js .contact-tiles .reveal:nth-child(3) { transition-delay:.12s; }
  html.js .contact-tiles .reveal:nth-child(4) { transition-delay:.18s; }
  html.js .contact-tiles .reveal:nth-child(5) { transition-delay:.24s; }
}

/* ---------- VARIANTE C: Buchungskarte mit Video-Spalte ---------- */
.booking-card--split {
  display:grid; grid-template-columns:minmax(0,300px) minmax(0,1fr);
  gap:0; padding:0; overflow:hidden; text-align:left; max-width:900px;
}
.booking-card-media { position:relative; background:var(--pine-deep); min-height:340px; }
.booking-card-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 45%; pointer-events:none; }
.booking-card-body { padding:clamp(1.8rem,3.5vw,2.8rem); display:flex; flex-direction:column; align-items:flex-start; }
.booking-card--split .booking-cal { margin-bottom:.9rem; }
.booking-card--split > .booking-card-body > p { margin-inline:0; max-width:30rem; }
.booking-card--split .booking-hint { margin-top:.9rem; }
@media (max-width:767px) {
  .booking-card--split { grid-template-columns:1fr; }
  .booking-card-media { min-height:200px; }
  .booking-card-video { object-position:center 35%; }
}

/* ---------- VARIANTE A: Buchungskarte mit Video-Band oben ---------- */
.booking-card--band {
  display:block; padding:0; overflow:hidden; text-align:center; max-width:720px;
}
.booking-card--band .booking-card-media { position:relative; height:200px; background:var(--pine-deep); }
.booking-card--band .booking-card-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 42%; pointer-events:none; }
.booking-card--band .booking-card-body { padding:clamp(1.6rem,3vw,2.4rem); display:block; }
.booking-card--band .booking-cal { margin-top:-3.2rem; position:relative; z-index:2; background:var(--surface); box-shadow:0 6px 18px -8px rgb(38 49 43 / .35); }
.booking-card--band .booking-card-body > p { margin-inline:auto; }

/* Footer-Überschriften optisch wie zuvor (semantisch jetzt h2) */
.site-footer .footer-h { font-family:var(--font-display); font-weight:600; font-size:1rem; color:#fff; margin:0 0 .8em; letter-spacing:0; }
/* Kontrast der inaktiven SCANECA-Beschreibungen anheben (mobil/reduced-motion sichtbar) */
.scaneca-steps span { color:#CBD6CD; }
.scaneca-steps button { opacity:.72; }
.scaneca-steps button.is-active { opacity:1; }
