/* ── Font Face ── */
@font-face{font-family:'Helvetica Neue';src:url('../fonts/HelveticaNeue-Thin.woff') format('woff');font-weight:100;font-style:normal;font-display:swap}
@font-face{font-family:'Helvetica Neue';src:url('../fonts/HelveticaNeue-Light.woff') format('woff');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'Helvetica Neue';src:url('../fonts/HelveticaNeue.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Helvetica Neue';src:url('../fonts/HelveticaNeue-Bold.woff') format('woff');font-weight:700;font-style:normal;font-display:swap}

/* ── Reset & Custom Properties ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;scroll-margin-top:2rem}
:root{
  --c-green-light:#e7f0cd;
  --c-green:#89b402;
  --c-green-dark:#6e9002;
  --c-purple:#afb1d7;
  --c-purple-dark:#7e83bc;
  --c-black:#000;
  --c-white:#fff;
  --c-gray-light:#f7f7f7;
  --c-gray:#555;
  --c-gray-dark:#333;
  --c-sd-bg:#eeeff7;
  --f-family:'Helvetica Neue',Helvetica,Arial,sans-serif;
  --max-w:1200px;
  --r-btn:8px;
  --r-card:12px;
  --section-py:24px;
}
@media(min-width:1024px){
  :root{--section-py:72px}
}
html{scroll-behavior:smooth;font-size:100%}
body{
  font-family:var(--f-family);
  color:var(--c-black);
  line-height:1.6;
  background:var(--c-white);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
/* Höhere Spezifität: überschreibt WordPress' globale Block-Theme-Underlines
   (kommt vom Parent-theme.json mit appearanceTools/color.link=true). */
body a,
body a:visited,
body a:hover,
body a:focus,
body a:active{
  text-decoration:none;
}
ul,ol{list-style:none}
button{font:inherit;cursor:pointer;border:none;background:none}

/* ── Utilities ── */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.container{width:100%;max-width:var(--max-w);margin:0 auto;padding:0 20px}
@media(min-width:768px){.container{padding:0 32px}}

/* ── Skip Link ── */
.skip-link{
  position:absolute;top:-100%;left:16px;
  background:var(--c-green);color:var(--c-white);
  padding:12px 24px;border-radius:0 0 var(--r-btn) var(--r-btn);
  font-weight:700;z-index:9999;
  transition:top .2s;
}
.skip-link:focus{top:0}

/* ── Section Headers ──
   Line 1 (label): large, bold, black
   Line 2 (title): same size, thinner weight, black (#000, no color) */
.section-header{margin-bottom:24px}
.section-label{
  font-size:2rem;font-weight:700;
  color:var(--c-black);
  text-transform:uppercase;
  line-height:1.1;
  letter-spacing:.02em;
}
.section-title{
  font-size:2rem;font-weight:100;
  color:var(--c-black);
  text-transform:uppercase;
  line-height:1.1;
  margin:0; /* h2 darf keinen Browser-Default-Margin bekommen */
}
.section-subtitle{
  font-size:1rem;
  font-weight: 700;
  color:var(--c-black);
  margin-top:8px;
}
/* Über-mich-Section: bei „Sie stehen im Mittelpunkt" Gewicht-Hierarchie
   umdrehen — Label (Sie stehen im) leicht, Title (Mittelpunkt) fett.
   Andere Sektionen bleiben unverändert (Label fett, Title leicht). */
.about-section .section-label{font-weight:100}
.about-section .section-title{font-weight:700}
/* Hervorgehobener Satz unter dem Einleitungstext — selber Stil wie
   die Diabetes-Tagline („Gemeinsam zur süßen Seite..."): lila, leicht,
   etwas größer. */
.about__flavor{
  color:var(--c-purple-dark);
  font-weight:300;
  font-size:1.5rem;
  line-height:1.4;
  margin:16px 0 0;
}
@media(min-width:1024px){
  .section-label,.section-title{font-size:2.5rem}
}

/* ── Purple section divider ── */
.section-divider{
  display:block;height:1px;
  background:var(--c-purple);
  border:none;
  margin:0 16px;
}
@media(min-width:1024px){
  .section-divider{
    max-width:var(--max-w);
    margin:0 auto;
  }
}

/* ── Buttons ── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:12px 28px;border-radius:var(--r-btn);
  font-weight:700;font-size:.9375rem;
  min-height:44px;
  transition:background .2s,color .2s,box-shadow .2s;
  text-align:center;gap:8px;
}
.btn--green{background:var(--c-green);color:var(--c-white)}
.btn--green:hover,.btn--green:focus-visible{background:var(--c-white);color:var(--c-green);outline:2px solid var(--c-green)}
.btn--outline{background:transparent;color:var(--c-green);border:2px solid var(--c-green)}
.btn--outline:hover,.btn--outline:focus-visible{background:var(--c-green);color:var(--c-white)}
.btn--white{background:var(--c-white);color:var(--c-green)}
.btn--white:hover,.btn--white:focus-visible{outline:2px solid var(--c-white);background:transparent;color:var(--c-white)}

/* ── Focus Visible ── */
:focus-visible{outline:3px solid var(--c-green);outline-offset:2px}


/* A11y Toggle (siehe vollständige Definition weiter unten ab Zeile ~1280) */
.a11y-toggle-bar{padding:6px 16px;display:flex;justify-content:center;align-items:center}
.a11y-toggle-btn{background:none;border:1px solid rgba(255,255,255,.4);color:#fff;font-size:.75rem;padding:4px 12px;border-radius:4px;cursor:pointer;display:flex;align-items:center;gap:6px;font-family:inherit;transition:background .2s,border-color .2s}
.a11y-toggle-btn:hover,.a11y-toggle-btn:focus-visible{background:rgba(255,255,255,.12);border-color:#fff;outline:2px solid #fff;outline-offset:2px}
.a11y-toggle-btn svg{width:16px;height:16px}
@media(min-width:1024px){.a11y-toggle-bar{justify-content:flex-end}}
.a11y-toggle-btn[aria-pressed="true"]{background:var(--c-green);border-color:var(--c-green);color:#fff}
/* ══════════════════════════════════
   HEADER
   ══════════════════════════════════ */
.site-header{
  position:sticky;top:0;z-index:100;
  /* Standard: stark transparent damit der Slider gut durchscheint. */
  background:rgba(255,255,255,.25);
  box-shadow:none;
  transition:background .25s ease, box-shadow .25s ease;
}
/* Sobald gescrollt wird, wird der BG voll weiß und der Schatten aktiviert.
   Klasse wird per JS gesetzt (siehe theme.js: header__scroll). */
.site-header.is-scrolled{
  background:var(--c-white);
  box-shadow:0 1px 4px rgba(0,0,0,.06);
}
/* Auf Unterseiten (Ratgeber, Impressum etc.) ist KEIN Slider —
   da soll der Header sofort weiß sein. body-Klasse home greift NUR
   auf der Startseite; alle anderen Seiten bekommen weiß per Default. */
body:not(.home) .site-header{
  background:var(--c-white);
  box-shadow:0 1px 4px rgba(0,0,0,.06);
}
.header-inner{
  display:flex;align-items:center;justify-content:space-between;
  height:64px;
}
.site-logo img{height:40px;width:auto}
.main-nav{display:none}
@media(min-width:1024px){
  .main-nav{margin-left:auto;margin-right:0.5rem;display:block}
  .main-nav ul{display:flex;align-items:center}
  .main-nav a{
    font-size:.8125rem;font-weight:700;
    text-transform:uppercase;letter-spacing:.04em;
    padding:8px 10px;border-radius:var(--r-btn);
    min-height:36px;display:inline-flex;align-items:center;
    /* Der „leicht nach oben"-Hover ist gewollt (lt. Mockup), war
       aber als @keyframes-Animation gebaut → feuerte nur einmal
       und ging nicht sauber zurück. Hier als transition neu:
       zustandsbasiert, hoch bei Hover, automatisch zurück bei
       Maus-weg, beliebig oft. Die Parent-Animation wird
       neutralisiert, damit sie nicht dazwischenfunkt. */
    animation:none !important;
    transform:translateY(0);
    transition:opacity .2s ease, transform .2s ease;
  }
  .main-nav a:hover,
  .main-nav a:focus-visible{
    animation:none !important;
    transform:translateY(-2px);
    opacity:.7;
  }
  /* Parent-Animation auch auf möglichen Kind-/li-Ebenen stilllegen,
     damit ausschließlich unser sauberer Transition-Effekt greift. */
  .main-nav li,
  .main-nav li:hover,
  .main-nav a span,
  .main-nav a:hover span{
    animation:none !important;
  }
}
.header-cta{display:none}
@media(min-width:1024px){.header-cta{display:inline-flex}}
@media(min-width:1024px) and (max-width:1060px){.nav-mich{display:none}}

/* Mobile menu button: purple bg, white icon */
.nav-toggle{
  display:flex;align-items:center;justify-content:center;
  width:44px;height:44px;border-radius:var(--r-btn);
  background:var(--c-purple);color:var(--c-white);
}
.nav-toggle svg{width:24px;height:24px}
@media(min-width:1024px){.nav-toggle{display:none}}

/* Mobile nav drawer */
.mobile-nav{
  position:fixed;inset:0;z-index:200;
  background:rgba(0,0,0,.4);
  opacity:0;pointer-events:none;
  transition:opacity .3s;
}
.mobile-nav.is-open{opacity:1;pointer-events:auto}
.mobile-nav__panel{
  position:absolute;top:0;right:0;bottom:0;
  width:280px;background:var(--c-white);
  padding:24px;
  transform:translateX(100%);
  transition:transform .3s;
}
.mobile-nav.is-open .mobile-nav__panel{transform:translateX(0)}
.mobile-nav__close{
  display:flex;align-items:center;justify-content:center;
  width:44px;height:44px;margin-left:auto;margin-bottom:16px;
}
.mobile-nav__close svg{width:24px;height:24px}
.mobile-nav ul{display:flex;flex-direction:column;gap:4px}
.mobile-nav a{
  display:block;padding:12px 8px;
  font-weight:600;font-size:1rem;
  border-radius:var(--r-btn);
}
.mobile-nav a:hover{background:var(--c-gray-light)}

#primary{display:flex;flex-direction:column;}

/* ══════════════════════════════════
   HERO – Mobile / Desktop-Switcher
   ══════════════════════════════════ */
.hero{position:relative}
.hero-mobile { display:block }
.hero-slider  { display:none  }
@media(min-width:1024px){
  .hero-mobile { display:none  }
  .hero-slider  { display:block }
  /* Slider rutscht hinter die A11y-Bar + Header, sodass beide
     transparente Bars optisch über dem Bild liegen. */
  .hero-slider{margin-top:-120px}
}

/* ══════════════════════════════════
   HERO – Mobile Card (unter dem Bild)
   ══════════════════════════════════ */
.hero__image--mobile{
  width:100%;height:280px;
  object-fit:cover;object-position:center 30%;
  display:block;
}
@media(min-width:768px){.hero__image--mobile{height:340px}}

.hero__mobile-card{
  background:var(--c-purple);
  padding:24px 20px 28px;
}

/* Gemeinsam: Infotext-Absatz (weiß) */
.hero__infotext{
  color:var(--c-white);
  font-size:1rem;line-height:1.5;
  margin:10px 0 0;
}
@media(min-width:1024px){.hero__infotext{font-size:1.25rem}}
.hero__infotext strong{color:var(--c-white);font-weight:700}

/* ══════════════════════════════════
   HERO – Desktop Slider Grundstruktur
   ══════════════════════════════════ */
.hero-slider{position:relative;overflow:hidden;user-select:none}
.hero-slider__track{position:relative}

/* Slides gestapelt; erstes Slide bleibt IMMER im Fluss (gibt Track-Höhe vor).
   Alle anderen Slides sind absolut übereinander positioniert. */
.hero-slider__slide{
  position:absolute;top:0;left:0;width:100%;
  opacity:0;
  transition:opacity 0.8s ease;
  pointer-events:none;
  z-index:0;
}
/* Erstes Slide: immer relativ (Höhen-Anker), aber unsichtbar wenn nicht aktiv */
.hero-slider__slide:first-child{position:relative}
/* Aktives Slide: sichtbar, ganz oben; bleibt absolut außer wenn es first-child ist */
.hero-slider__slide--active{
  opacity:1;pointer-events:auto;z-index:1;
}
/* Wenn first-child aktiv ist: bleibt relativ (already set by :first-child) */
.hero-slider__slide:first-child.hero-slider__slide--active{position:relative}

/* ══════════════════════════════════
   HERO – Bild (statisch, kein Zoom — sonst werden Köpfe abgeschnitten)
   ══════════════════════════════════ */
/* cover damit das Bild den Container voll ausfüllt. object-position
   verschoben damit Köpfe oben bleiben (sonst werden sie weggeschnitten). */
.hero-slider__bg{overflow:hidden;max-height:86vh}
.hero-slider__img{
  width:100%;height:auto;max-height:86vh;
  object-fit:cover;
  object-position:center 20%;
  display:block;
}
/* Slide 3 (Praxis-Beratung): Personen sitzen tiefer im Bild als bei
   Slide 1 + 2, daher Crop näher an Mitte ausrichten. */
.hero-slider__slide:nth-child(3) .hero-slider__img{
  object-position:center 40%;
}

/* ══════════════════════════════════
   HERO – Titel + Band (zusammen am Bildrand, unten)
   ══════════════════════════════════ */

/* Gemeinsamer Wrapper am unteren Bildrand – Titel oben, Band direkt darunter */
.hero-slide__content{
  position:absolute;bottom:0;left:0;right:0;
  z-index:2;
}

/* Titel-Zeile + Band: horizontales Padding dehnt sich so aus, dass der
   Inhalt auf var(--max-w) eingeschränkt bleibt — Hintergrund bleibt
   aber immer volle Breite (wie .price-notice). */
.hero-slide__title-wrap{
  padding:14px max(32px, (100% - var(--max-w)) / 2 + 32px) 0;
}

/* Titel (gemeinsam für Mobile + Slides) */
.hero-slide__title{
  font-size:2.25rem;font-weight:700;
  line-height:1.05;letter-spacing:.01em;
}
/* Nur der Ärztin-Name (h1) in Kapitälchen; h2-Titel normal */
h1.hero-slide__title{text-transform:uppercase}
.hero-slide__title--black{color:var(--c-black)}
@media(min-width:1024px){.hero-slide__title{font-size:2.75rem}}

/* Violettes Band direkt unter dem Titel */
.hero-slide__band{
  background:rgba(175,177,215,.82);
  padding:0 max(32px, (100% - var(--max-w)) / 2 + 32px) 32px;
}
@media(min-width:1024px){
  .hero-slide__band{ min-height:210px; }
}

/* ══════════════════════════════════
   HERO – Layered-Animationen (Slider Revolution Style)
   ══════════════════════════════════ */

/*
  Titel: kommt von RECHTS, wird von LINKS nach RECHTS aufgedeckt
  (clip-path-Reveal = "ausgeschrieben"-Effekt).
*/
@keyframes heroTitleIn{
  from{clip-path:inset(0 100% 0 0);transform:translateX(50px)}
  to  {clip-path:inset(0 0%   0 0);transform:translateX(0)}
}

/* Band: kommt von LINKS, reines Slide (kein Clip). */
@keyframes heroBandIn{
  from{opacity:0;transform:translateX(-60px)}
  to  {opacity:1;transform:translateX(0)}
}

/* Ausblenden aller Layer beim Slide-Wechsel */
@keyframes heroLayerOut{
  from{opacity:1}
  to  {opacity:0}
}

/* Standardmäßig unsichtbar */
.hero-slide__title-wrap{clip-path:inset(0 100% 0 0);transform:translateX(50px)}
.hero-slide__band      {opacity:0;transform:translateX(-60px)}

/* Einblenden wenn Slide aktiv + --text-in gesetzt */
.hero-slider__slide--active.hero-slider__slide--text-in .hero-slide__title-wrap{
  animation:heroTitleIn 0.65s cubic-bezier(0.25,0.46,0.45,0.94) 0s   forwards;
}
.hero-slider__slide--active.hero-slider__slide--text-in .hero-slide__band{
  animation:heroBandIn  0.5s  cubic-bezier(0.25,0.46,0.45,0.94) 0.3s forwards;
}

/* Ausblenden wenn Slide verlässt */
.hero-slider__slide--leaving .hero-slide__title-wrap,
.hero-slider__slide--leaving .hero-slide__band{
  animation:heroLayerOut 0.4s ease forwards;
}

/* ══════════════════════════════════
   TRUST BADGES – horizontal scroll, purple borders
   ══════════════════════════════════ */
.trust-strip{
  background:var(--c-white);
  padding:16px 20px;
}
.trust-badges{
  display:flex;align-items:center;
  gap:10px;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  padding-bottom:4px;
}
@media(min-width:1024px){
  .trust-strip{align-self:center}
  .trust-badges{justify-content:center}
}
/* DEVIATION: 1120px query - Where all badges fit into one row. */
@media (min-width:1120px) {
  .trust-strip{
    margin:0;
    padding:16px 0;
    background:transparent;
    width:100%;max-width:var(--max-w);
  }
  .trust-badges{
    background:var(--c-white);padding:16px 32px;
    border-radius:8px;
  }
}
.trust-badges::-webkit-scrollbar{display:none}
.trust-badge{
  flex-shrink:0;
  padding:4px 12px;
  border:2px solid var(--c-purple);
  border-radius:8px;
  white-space:nowrap;
  color:var(--c-purple-dark);
  display:inline-flex;align-items:center;gap:6px;
}
.trust-badge__dot{
  width:8px;height:8px;
  border-radius:50%;
  background:var(--c-green);
  flex-shrink:0;
}
.trust-badge--accent{
  background:var(--c-purple);color:var(--c-white);
  font-weight:700;
}
.trust-badge--accent .trust-badge__dot{display:none}

/* CTA under trust badges on mobile */
.hero-cta{padding:16px 20px 0}
.hero-cta .btn{width:100%;justify-content:center}
@media(min-width:1024px){.hero-cta{display:none}}

.hero-cta+.section-divider {
    margin-top:2rem;
}

/* ══════════════════════════════════
   SCHWERPUNKTE – purple-bordered, h-scroll on mobile
   ══════════════════════════════════ */
.schwerpunkte{padding:var(--section-py) 0}
.schwerpunkte-scroll{
  display:flex;gap:16px;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  padding-bottom:4px;
  margin-top:24px;
}
.schwerpunkte-scroll::-webkit-scrollbar{display:none}
@media(min-width:768px){
  .schwerpunkte-scroll{
    display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
    overflow:visible;
  }
}
.area-card{
  flex:0 0 280px;
  background:var(--c-white);
  border:2px solid var(--c-purple);
  border-radius:var(--r-card);
  padding:28px 24px;
  display:flex;flex-direction:column;
}
@media(min-width:768px){.area-card{flex:auto}}
.area-card__icon{
  width:56px;height:56px;
  margin-bottom:16px;
}
.area-card__icon img{width:100%;height:100%}
.area-card__title{
  font-size:1.0625rem;font-weight:700;
  color:var(--c-purple-dark);
  margin-bottom:6px;
}
.area-card__desc{
  font-size:.875rem;color:var(--c-black);
  line-height:1.5;flex:1;
}
.area-card__link{
  display:inline-flex;align-items:center;gap:0.25rem;
  margin-top:16px;
  padding:10px 20px;border-radius:var(--r-btn);
  background:var(--c-green);color:var(--c-white);
  font-size:.875rem;font-weight:700;
  align-self:flex-start;
  transition:background .2s,color .2s;
}
.area-card__link:hover,.area-card__link:focus-visible{
  background:var(--c-white);color:var(--c-green);
  outline:2px solid var(--c-green);
}

/* ══════════════════════════════════
   DETAIL SECTIONS
   ══════════════════════════════════ */
.detail-section{padding:var(--section-py) 0}
.detail-section--diabetes{background:var(--c-white)}
.detail-section--sd{background:var(--c-white)}
.detail-section--hormone{background:var(--c-white)}

.detail-layout{
  display:grid;grid-template-columns:1fr;
}
.detail-layout>.detail__accordions{order:2}
.detail-layout>.detail__steps--mobile{order:3}
.detail-layout>.detail__quote{order:4}
@media(min-width:768px){.detail-layout>.detail__quote{text-align:left;margin-top:0;order:2}}
@media(min-width:1024px){
  /* 3 Spalten: Inhalt | Steps | Button-Schmalspur */
  .detail-layout{grid-template-columns:1fr 30% 160px}
  /* Steps-Box überspannt Spalten 2+3 → behält ~43% Gesamtbreite */
  .detail-layout>.detail__steps--desktop{grid-column:2/-1}
  .detail__accordions{grid-column:1/-1;order:5}
  /* Zitat: Spalten 1+2, Button: Spalte 3 */
  .detail-layout>.detail__quote{grid-column:1/3;margin:2rem 0;order:6}
}
.detail__intro{font-size:1rem;line-height:1.7;margin-bottom:12px}
.detail__tagline{color:var(--c-purple-dark);font-weight:300;font-size:1.5rem;line-height:1.4}
.detail__quote b,.detail__quote strong{font-weight:700}
.detail__symptoms{margin:20px 0}
.detail__symptoms-heading{font-weight:700;margin-bottom:8px;font-size:1rem}
.detail__symptoms-text{font-size:.9375rem;color:var(--c-black);line-height:1.6}

.detail__quote{
  text-align:center;
  color:var(--c-purple-dark);
  font-size:1.5rem;
  font-weight:300;
  line-height:1.4;
  margin:24px 0 0;
  padding:0;
}
@media(min-width:1024px){
  .detail__quote{order:0}
}

/* Steps box */
.detail__steps{
  padding: 0.5rem;
  background:var(--c-white);
  border-radius:var(--r-card);
}
@media(min-width:1024px){.detail__steps{
    padding:2rem;
    box-shadow:0 0 1rem 1rem #00000008;
    margin-left:50px;
}
.detail__steps .step__num{
    width:54px;height:54px;
}}
.detail__steps-head{
  text-align:center;
  font-size:1.25rem;font-weight:700;
  letter-spacing:.01em;
  color:var(--c-black);
  margin-bottom:12px;
}
.step{
  display:flex;align-items:center;gap:14px;
  padding:8px 0;
}
.step__num{
  width:60px;height:60px;flex-shrink:0;
  background:var(--c-green);color:var(--c-white);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:1.33rem;font-weight:700;
}
.step__text{font-size:.9375rem;line-height:1.5;color:var(--c-black)}

/* Accordions */
.detail__accordions{margin-top:24px}
.accordion{
  border:1px solid var(--c-purple);
  border-radius:var(--r-btn);
  margin-bottom:8px;
  overflow:hidden;
}
.accordion__trigger{
  width:100%;
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 18px;
  background:var(--c-purple);color:var(--c-white);
  font-weight:600;font-size:.9375rem;
  text-align:left;
  border:none;cursor:pointer;
  min-height:44px;
  transition:opacity .2s;
}
.accordion__trigger:hover{opacity:.9}
.accordion__trigger:focus-visible{outline:3px solid var(--c-green);outline-offset:-3px}
.accordion__chevron{
  width:20px;height:20px;flex-shrink:0;
  transition:transform .3s;
}
.accordion__trigger[aria-expanded="true"]{background:var(--c-purple-dark)}
.accordion__trigger[aria-expanded="true"] .accordion__chevron{transform:rotate(180deg)}
.accordion__panel{
  max-height:0;overflow:hidden;
  transition:max-height .3s ease;
}
.accordion__panel[aria-hidden="false"]{max-height:600px}
.accordion__content{
  padding:16px 18px;
  font-size:.9375rem;line-height:1.6;
  color:var(--c-black);
  background:var(--c-white);
}

/* ══════════════════════════════════
   WISSEN / BLOG
   ══════════════════════════════════ */
.blog-section{padding:var(--section-py) 0}
.blog-scroll{
  display:flex;gap:16px;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  padding-bottom:4px;
}
.blog-scroll::-webkit-scrollbar{display:none}
@media(min-width:1024px){
  .blog-scroll{
    display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
    overflow:visible;
  }
}

/* Ratgeber-Archiv: gleiche Karten-Optik wie auf der Startseite,
   aber als mehrzeiliges Raster (kein horizontaler Scroll – auf
   einer Übersichtsseite will man alle Artikel sehen).
   1 Spalte mobil → 2 ab 640px → 3 ab 1024px. */
.ratgeber-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:24px;
}
@media(min-width:640px){
  .ratgeber-grid{grid-template-columns:repeat(2,1fr)}
}
@media(min-width:1024px){
  .ratgeber-grid{grid-template-columns:repeat(3,1fr)}
}
/* Karten im Archiv-Grid füllen ihre Rasterzelle (nicht die feste
   280px-Breite aus dem Scroll-Kontext der Startseite). */
.ratgeber-grid .blog-card{flex:initial;width:100%}
.blog-card{
  flex:0 0 280px;
  background:var(--c-white);
  border:2px solid var(--c-purple);
  border-radius:var(--r-card);
  overflow:hidden;
  display:flex;flex-direction:column;
}
@media(min-width:1024px){.blog-card{flex:auto}}
.blog-card__img{width:100%;height:180px;object-fit:cover}
.blog-card__body{padding:16px;flex:1;display:flex;flex-direction:column}
.blog-card__cat{
  display:inline-block;
  background:var(--c-purple);color:var(--c-white);
  font-size:.6875rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.06em;
  padding:4px 10px;border-radius:10px;
  margin-bottom:10px;align-self:flex-start;
}
.blog-card__title{font-size:1.25rem;font-weight:700;line-height:1.3;margin-bottom:8px}
.blog-card__sep{height:1px;background:var(--c-purple);margin:0 0 8px;border:none}
.blog-card__desc{font-size:.875rem;color:var(--c-black);line-height:1.5;margin-bottom:16px;flex:1}
@media(min-width:1024px){.blog-card__desc{flex:none}}
.blog-card__link{
  display:inline-flex;align-items:center;gap:4px;
  background:var(--c-green);color:var(--c-white);
  padding:10px 20px;border-radius:var(--r-btn);
  font-size:.8125rem;font-weight:700;
  align-self:flex-start;
  transition:background .2s,color .2s;
}
.blog-card__link:hover,.blog-card__link:focus-visible{
  background:var(--c-white);color:var(--c-green);outline:2px solid var(--c-green);
}
.blog-bottom-cta{
  margin-top:24px;text-align:center;
}
.blog-bottom-cta .btn{
  width:100%;
}
@media(min-width:768px){
  .blog-bottom-cta{text-align:left}
}
/* Desktop: CTA at top right */
.blog-header{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}
.blog-header .btn{display:none}
@media(min-width:768px){
  .blog-header{flex-direction:row;align-items:flex-end;justify-content:space-between}
  .blog-header .btn{display:inline-flex}
  .blog-bottom-cta{display:none}
}

/* ══════════════════════════════════
   GUT VORBEREITET – purple border + purple header
   ══════════════════════════════════ */
.prep-section{padding:var(--section-py) 0}
.prep-grid{
  display:grid;grid-template-columns:1fr;gap:16px;
  margin-top:24px;
}
@media(min-width:768px){.prep-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.prep-grid{grid-template-columns:repeat(4,1fr)}}
.prep-card{
  border:2px solid var(--c-purple);
  border-radius:var(--r-card);
  overflow:hidden;
  background:var(--c-white);
}
.prep-card__header{
  background:var(--c-purple-dark);color:var(--c-white);
  padding:12px 16px;
  font-size:.9375rem;font-weight:700;
}
.prep-card__body{padding:16px}
.prep-card__text{font-size:.875rem;line-height:1.6;color:var(--c-black)}

/* ══════════════════════════════════
   ÜBER MICH
   ══════════════════════════════════ */
.about-section{padding:var(--section-py) 0}
.about__portrait{
  border-radius:var(--r-card);
  width:100%;height:auto;
  object-fit:cover;
  margin-bottom:24px;
}
.about__tag-badge{
  display:inline-block;
  background:var(--c-purple);color:var(--c-white);
  padding:4px 12px;border-radius:8px;
  margin-bottom:16px;
  text-transform:uppercase;letter-spacing:.04em;
}
.about__subtitle{display:none}
.about__text{font-size:1rem;line-height:1.7;margin-bottom:16px}
.about__services-list{
  background:var(--c-purple);color:var(--c-white);
  border-radius:var(--r-btn);
  padding:16px 20px;
  list-style:disc;
  padding-left:36px;
}
.about__services-list li{font-size:.9375rem;line-height:1.6;margin-bottom:4px}
.about__werdegang-table{
  width:100%;border-collapse:collapse;
  border:2px solid var(--c-purple);border-radius:var(--r-btn);
  overflow:hidden;
}
.about__werdegang-table td{
  padding:8px 12px;font-size:.9375rem;
  border-bottom:1px solid var(--c-purple);
}
.about__werdegang-table td:first-child{
  font-weight:700;white-space:nowrap;width:60px;
}
.about__werdegang-table tr:last-child td{border-bottom:none}
.about__tags{
  display:flex;flex-wrap:nowrap;gap:8px;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  margin-top:20px;
  padding-bottom:4px;
  max-width:100%;
}
.about__tags::-webkit-scrollbar{display:none}
/* Auf Desktop dezenten Scrollbar einblenden, weil dort kein Touch-Swipe –
   sonst wäre nicht erkennbar, dass die Liste scrollt. */
@media(min-width:1024px){
  .about__tags{
    scrollbar-width:thin;
    scrollbar-color:var(--c-purple) transparent;
    padding-bottom:8px;
  }
  .about__tags::-webkit-scrollbar{display:block;height:6px}
  .about__tags::-webkit-scrollbar-track{background:transparent}
  .about__tags::-webkit-scrollbar-thumb{
    background:var(--c-purple);
    border-radius:3px;
  }
}
.about__tag{
  flex-shrink:0;
  border:2px solid var(--c-purple);
  border-radius:8px;
  padding:4px 12px;
  color:var(--c-purple-dark);
  white-space:nowrap;
  display:inline-flex;align-items:center;gap:6px;
}
.about__rooms{display:none}
@media(min-width:768px){
  .about__rooms{
    display:grid;grid-template-columns:repeat(4,1fr);gap:24px;
    margin-top:16px;
  }
  /* Bilder behalten ihr Querformat-Verhältnis, alle vier sind dank
     fixem aspect-ratio gleich hoch (auch wenn die Originalbilder
     leicht abweichen). 4:3 passt zu typischen Raum-Fotos; ggf.
     anpassen auf 3:2 (1.5) oder 16:10 (1.6). */
  .about__rooms img{
    border-radius:8px;
    width:100%;
    height:auto;
    aspect-ratio:4/3;
    object-fit:cover;
  }
}
@media(min-width:1024px){
  .about-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    grid-template-rows:auto auto auto auto;
    /* Row-Gap auf 8px reduziert, damit die Accordions „Meine Leistungen"
       und „Ausbildung und Werdegang" denselben Abstand haben wie die
       Detail-Akkordeons darüber. */
    gap:8px 48px;
    align-items:stretch;
  }
  .about__intro{grid-column:1;grid-row:1}
  .about__tag-badge{display:none}
  .about__subtitle{display:block}
  .about__portrait{
    grid-column:2;grid-row:1;
    margin-bottom:0;
    /* Bild breiter, weniger hoch — Frau Kaus' Wunsch.
       aspect-ratio 4/3 = querformat-orientiert, max-height begrenzt sehr hohe Originale */
    max-height:380px;
    aspect-ratio:4/3;
    width:100%;
    object-fit:cover;
    object-position:center center;
    background:var(--c-purple-light);
  }
  .about__tags{grid-column:1/-1;grid-row:2;margin-top:8px}
  /* Accordion-Margin in Grid-Children weg — sonst doppelter Abstand. */
  .about__services{grid-column:1/-1;margin-bottom:0}
  .about__werdegang{grid-column:1/-1;margin-bottom:0}
  /* Lila Liste füllt den verfügbaren Platz */
  .about__services .about__services-list{flex:1 1 auto}
  /* Tabelle dehnt sich vertikal */
  .about__werdegang .about__werdegang-table{
    flex:1 1 auto;
    height:1px;
  }
  .about__rooms{grid-column:1/-1;grid-row:4}
}

/* ══════════════════════════════════
   BETREUUNG
   ══════════════════════════════════ */
.care-section{padding:var(--section-py) 0}
.care__sub{font-size:.9375rem;color:var(--c-black);margin-bottom:8px}
.care__facility-title{font-weight:700;margin:16px 0 4px}
.care__facility-desc{font-size:.875rem;color:var(--c-black);margin-bottom:24px}
.care-grid{
  display:grid;grid-template-columns:1fr;gap:16px;
}
@media(min-width:768px){.care-grid{grid-template-columns:repeat(3,1fr)}}
.care-card{
  display:flex;align-items:center;gap:16px;
  padding:20px;
  border:2px solid var(--c-purple);
  border-radius:var(--r-card);
  background:var(--c-white);
}
@media(min-width:768px){
  .care-card{flex-direction:column;text-align:center}
}
.care-card__icon{width:48px;height:48px;flex-shrink:0}
.care-card__icon img{width:100%;height:100%}
.care-card__text{flex:1}
.care-card__title{font-size:1rem;font-weight:700}
.care-card__desc{color:var(--c-black)}
.care__flavor{
  color:var(--c-purple-dark);
  text-align:center;
  font-size:1.5rem;
  font-weight:300;
  line-height:1.4;
  margin:0 0 32px;
}

/* Zitat „Gesundheit fängt beim Entschluss an…" in der Wissen-Section.
   Grün passend zur CI, unter dem Section-Header. */
.wissen__flavor{
  color:var(--c-green-dark, #6e9002);
  text-align:center;
  font-size:1.5rem;
  font-weight:300;
  line-height:1.4;
  margin:8px 0 32px;
}

/* ══════════════════════════════════
   WAHLÄRZTIN
   ══════════════════════════════════ */
.wahlaerztin-section{padding:var(--section-py) 0}
.wahlaerztin__lead{font-weight:700;font-size:1rem;margin-bottom:16px}
.wahlaerztin-layout{
  display:grid;grid-template-columns:1fr;gap:32px;
}
@media(min-width:1024px){
  .wahlaerztin-layout{
    grid-template-columns:1fr 1fr;gap:48px;
    align-items:start; /* nicht mehr stretchen — natürliche Höhe */
  }
  /* Honorartabelle beginnt etwas höher als der Textblock, damit beide
     optisch ausbalanciert wirken — ohne die Tabelle in eine fixe Höhe
     zu zwängen (die schnitt bei vielen Zeilen ab). */
  .wahlaerztin-layout .price-table-wrap{
    margin-top:-132px;
  }
}
.wahlaerztin__text{font-size:1rem;line-height:1.7;margin-bottom:16px}

/* Pricing table – purple header, clean dividers */
.price-table-wrap{
  border:2px solid var(--c-purple);
  border-radius:var(--r-card);
  overflow:hidden;
  margin-top:16px;
}
.price-table{
  width:100%;border-collapse:collapse;
  font-size:.9375rem;
}
.price-table th,.price-table td{padding:12px 16px;text-align:left}
.price-table thead th{
  background:var(--c-purple-dark);color:var(--c-white);font-weight:700;
}
.price-table thead th:first-child{border-right:1px solid var(--c-white)}
.price-table thead th:last-child{text-align:right}
.price-table tbody td:first-child{border-right:1px solid var(--c-purple)}
.price-table tbody td:last-child{text-align:right;font-weight:600;white-space:nowrap}
.price-table tbody tr{border-bottom:1px solid var(--c-purple)}
.price-table tbody tr:last-child{border-bottom:none}

/* Absageregelung – green banner with positioned icon */
.price-notice{
  position:relative;
  background:var(--c-green-light);color:var(--c-black);
  padding:28px 20px 16px;
  margin-top:32px;
  font-size:.875rem;line-height:1.6;
}
@media(min-width:768px){
  .price-notice{padding:28px max(32px, (100% - var(--max-w))/2 + 32px) 16px}
}
.price-notice__icon{
  position:absolute;
  top:-16px;left:20px;
  width:36px;height:36px;
  background:var(--c-green);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:1.125rem;font-weight:700;
  color:var(--c-white);
}
@media(min-width:768px){
  .price-notice__icon{left:max(32px, (100% - var(--max-w))/2 + 32px)}
}

/* ══════════════════════════════════
   FAQ – purple bordered/headed accordions
   ══════════════════════════════════ */
.faq-section{padding:var(--section-py) 0}
.faq-list{margin-top:24px;max-width:var(--max-w)}
.faq-item{
  border:2px solid var(--c-purple);
  border-radius:var(--r-btn);
  margin-bottom:12px;
  overflow:hidden;
}
.faq-item__trigger{
  width:100%;display:flex;align-items:center;justify-content:space-between;
  padding:14px 18px;
  background:var(--c-purple);color:var(--c-white);
  font-size:.9375rem;font-weight:600;
  text-align:left;
  border:none;cursor:pointer;
  min-height:48px;
}
.faq-item__trigger:hover{opacity:.9}
.faq-item__trigger:focus-visible{outline:3px solid var(--c-green);outline-offset:-3px}
.faq-item__chevron{
  width:20px;height:20px;flex-shrink:0;
  transition:transform .3s;
}
.faq-item__trigger[aria-expanded="true"]{background:var(--c-purple-dark)}
.faq-item__trigger[aria-expanded="true"] .faq-item__chevron{transform:rotate(180deg)}
.faq-item__panel{
  max-height:0;overflow:hidden;
  transition:max-height .4s ease;
}
/* Großzügiger max-height-Wert: muss höher sein als jede mögliche
   Antwort-Höhe (besonders Mobile mit langen Texten + großen Bildern),
   sonst werden lange FAQs abgeschnitten. 3000px reicht für alles
   plus puffer. Die transition bleibt smooth, weil sie nur bis zum
   tatsächlichen Inhalt animiert (nicht bis zum vollen max-height). */
.faq-item__panel[aria-hidden="false"]{max-height:3000px}
.faq-item__answer{
  padding:16px 18px;
  font-size:.9375rem;line-height:1.7;
  color:var(--c-black);
}

/* ══════════════════════════════════
   TERMIN / BOOKING
   ══════════════════════════════════ */
.booking-section{
  padding:var(--section-py) 0;
}
.booking-section .section-header{text-align:center}
.booking-section .section-title{font-weight:100}
.booking-steps{
  display:flex;gap:12px;margin:20px auto 24px;
  justify-content:center;align-items:flex-start;
}
.booking-step{
  display:flex;flex-direction:column;align-items:center;gap:6px;
}
.booking-step__num{
  width:40px;height:40px;
  color:var(--c-white);background:var(--c-purple);
  font-size:1.25rem;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
}
.booking-step span:not(.booking-step__num){font-size:0.8rem;color:var(--c-purple-dark)}
.booking-step.is-active .booking-step__num{background:var(--c-green)}
.booking-step.is-active span:not(.booking-step__num){color:var(--c-green)}
.booking-step__line{width:24px;height:2px;background:var(--c-green);margin-top:1.25rem;}
.calendar-wrap{
  background:var(--c-white);color:var(--c-black);
  border:2px solid var(--c-purple);
  border-radius:var(--r-card);
  padding:24px;
  max-width:900px;
  margin:0 auto;
}
@media(min-width:1024px){.calendar-wrap{padding:32px}}
.calendar-layout{
  display:grid;grid-template-columns:1fr;gap:24px;
}
@media(min-width:768px){.calendar-layout{grid-template-columns:1fr 1fr;gap:32px}}
.calendar__heading{font-size:1rem;font-weight:700;margin-bottom:16px}
.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.cal-nav__month{font-weight:700;font-size:.9375rem}
.cal-nav button{
  width:36px;height:36px;
  border-radius:50%;border:none;
  display:flex;align-items:center;justify-content:center;
  background:var(--c-purple);color:var(--c-white);
  cursor:pointer;
}
.cal-nav button:hover{opacity:.85}
.cal-grid{
  display:grid;grid-template-columns:repeat(7,1fr);
  text-align:center;font-size:.8125rem;gap:2px;
}
/* Row-Wrapper sind reine ARIA-Struktur (role="row") und sollen
   das visuelle CSS-Grid-Layout NICHT beeinflussen. display:contents
   macht sie für das Layout unsichtbar — die Kinder verhalten sich,
   als wären sie direkt im .cal-grid. */
.cal-grid__row{display:contents}
.cal-grid__day-label{font-weight:700;padding:6px 0;color:var(--c-black);font-size:.6875rem;text-transform:uppercase}
.cal-grid__day{
  padding:8px 4px;border-radius:6px;
  cursor:pointer;min-height:36px;
  display:flex;align-items:center;justify-content:center;
}
.cal-grid__day:hover{background:var(--c-gray-light)}
.cal-grid__day.is-empty{pointer-events:none}
.cal-grid__day.is-selected{background:var(--c-green);color:var(--c-white);font-weight:700}
.cal-grid__day.is-past{color:#ccc;pointer-events:none}
.timeslots__heading{font-size:.875rem;font-weight:600;margin-bottom:12px;color:var(--c-black)}
.timeslots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:20px}
@media (min-width:768px){.timeslots{grid-template-columns:repeat(4,1fr);}}
.timeslot{
  padding:8px 12px;border:2px solid var(--c-purple);
  border-radius:var(--r-btn);
  font-size:.85rem;font-weight:500;
  cursor:pointer;background:var(--c-white);
  color:var(--c-purple-dark);
  min-height:36px;
  transition:background .15s,border-color .15s;
}
.timeslot:hover{border-color:var(--c-green);color:var(--c-green)}
.timeslot.is-selected{background:var(--c-green);color:var(--c-white);border-color:var(--c-green)}
.timeslot.is-disabled{border-color:#acaed3;color:#acaed3;cursor:default;pointer-events:none;text-decoration:line-through}
.booking-selected{
  background:rgba(137,180,2,.08);
  border-radius:var(--r-btn);
  padding:12px 16px;
  margin-top:16px;
  font-size:.875rem;font-weight:500;text-align:center;
}
.booking-selected strong{font-weight:700}
.calendar__actions{margin-top:20px;display:flex;flex-direction:column;gap:10px}
.calendar__actions .btn{justify-content:center}
.booking-step.is-done .booking-step__num{background:var(--c-green)}

/* Step 2: Personal data form */
.booking-form{
  background:var(--c-white);
  border:2px solid var(--c-purple);
  border-radius:var(--r-card);
  padding:24px;
  max-width:900px;
  margin:16px auto 0;
}
.booking-form__heading{font-size:1rem;font-weight:700;margin-bottom:12px}
.booking-form__summary{
  background:rgba(137,180,2,.08);
  border-radius:var(--r-btn);
  padding:12px 16px;
  font-size:.875rem;
  margin-bottom:16px;
}
.booking-form__row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.booking-form__field{margin-bottom:12px}
.booking-form__field label{display:block;font-size:.8125rem;font-weight:600;margin-bottom:4px}
.booking-form__field input,
.booking-form__field textarea{
  width:100%;padding:10px 12px;
  border:2px solid var(--c-purple);border-radius:var(--r-btn);
  font-size:.9375rem;font-family:inherit;
  transition:border-color .15s;
}
.booking-form__field input:focus,
.booking-form__field textarea:focus{border-color:var(--c-green);outline:none;box-shadow:0 0 0 3px rgba(137,180,2,.15)}
.booking-form__field textarea{height:80px;resize:vertical}
.booking-form__check{display:flex;gap:8px;align-items:flex-start;margin:12px 0;font-size:.8125rem;color:var(--c-gray)}
.booking-form__check input{margin-top:2px;flex-shrink:0}
.booking-form__check a{color:var(--c-purple-dark)}
.booking-form__submit{width:100%;justify-content:center;margin-top:16px}

/* ══════════════════════════════════
   FOOTER
   ══════════════════════════════════ */
.site-footer{
  background:var(--c-sd-bg);
  padding:var(--section-py) 0 0;
}
@media(min-width:1024px){.site-footer{background:var(--c-white);padding-bottom:0}}

.footer-top{
  padding:0 0 var(--section-py);
}
.footer-top .container-inner{
  max-width:var(--max-w);margin:0 auto;padding:0 20px;
}
@media(min-width:768px){
  .footer-top .container-inner{padding:0 32px}
}
.footer__lead{font-weight:700;font-size:1rem;margin-bottom:8px}
.footer__intro{font-size:.9375rem;line-height:1.7;margin-bottom:24px}

.footer-contact{display:flex;flex-direction:column;gap:20px;margin-bottom:32px}
.contact-item{display:flex;align-items:center;gap:12px}
.contact-item__icon{
  width:40px;height:40px;flex-shrink:0;
  background:var(--c-purple);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:#fff; /* SVGs nutzen currentColor → weißes Icon auf lila Kreis */
}
.contact-item__icon img{width:18px;height:18px}
.contact-item__text{font-size:.875rem;line-height:1.5}
.contact-item__text strong{font-weight:700;display:block}
.contact-item__text a{color:var(--c-purple-dark);font-weight:600}
.contact-item__text a:hover{text-decoration:underline}
@media(min-width:1024px){
  .site-footer{border-top:1px solid var(--c-purple)}
  .footer-contact{flex-direction:row;gap:24px}
  .contact-item{
    align-items:flex-start;
    flex:1;
    padding:24px 16px;
    border-radius:var(--r-card);
    box-shadow:0 2px 8px rgba(0,0,0,.08);
    background:var(--c-white);
  }
}

/* Footer flavor quote – green banner with white text */
.footer-quote-banner{
  display:flex;justify-content:center;
  background:var(--c-green);color:var(--c-white);
  padding:24px 20px;
  text-align:center;
  font-size:1rem;line-height:1.7;
}
.footer-quote-banner__text{max-width:var(--max-w)}
@media(min-width:768px){.footer-quote-banner{padding:32px}}

.footer-bottom{
  padding:20px;
  text-align:center;
  color:var(--c-black);font-size:0.85rem;
}
.footer-legal{color:var(--c-purple-dark)}
.footer-bottom__copyright{margin-bottom:4px}
.footer-bottom__design{margin-bottom:8px}
@media(min-width:1024px){
  .footer-legal{display:flex;justify-content:center;gap:8px}
  .footer-bottom__design{border-left:1px solid var(--c-purple);padding-left:8px}
}
.footer-links{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.footer-links a{
  color:var(--c-purple-dark);font-weight:600;font-size:1.2rem
}
.footer-links a:hover{color:var(--c-black)}

/* ══════════════════════════════════
   MOBILE BOTTOM BAR – purple bg, white bg buttons, purple text, calendar SVG
   ══════════════════════════════════ */
.mobile-bar{transition:transform .3s ease,opacity .3s ease;
  position:fixed;bottom:0;left:0;right:0;z-index:100;
  background:var(--c-purple);
  padding:10px 16px;
  display:flex;gap:10px;
}
@media(min-width:1024px){.mobile-bar{display:none}}
.mobile-bar .btn{
  flex:1;font-size:.875rem;padding:12px 8px;
  background:var(--c-white);
  color:var(--c-purple-dark);
  border:none;
  font-weight:700;
}
.mobile-bar .btn:hover,.mobile-bar .btn:focus-visible{
  outline:2px solid var(--c-white);
}
.mobile-bar .btn svg{width:18px;height:18px;flex-shrink:0}
body{padding-bottom:72px}
@media(min-width:1024px){body{padding-bottom:0}}

/* ── A11y-Toggle (Barrierefreie Ansicht) ─────────────────────────────── */

.a11y-toggle-bar {
	background: rgba(126,131,188,.8);
	padding: 6px 16px;
	display: flex;
	justify-content: center;
	align-items: center;
	transition: background .25s ease;
	position: relative;
	z-index: 101;
}
.a11y-toggle-bar.is-scrolled {
	background: var(--c-purple-dark);
}
body:not(.home) .a11y-toggle-bar {
	background: var(--c-purple-dark);
}
@media (min-width: 1024px) {
	.a11y-toggle-bar {
		justify-content: flex-end;
	}
}

.a11y-toggle {
	background: transparent;
	color: var(--c-white);
	border: 1px solid rgba(255, 255, 255, 0.4);
	border-radius: 4px;
	padding: 4px 12px;
	font: inherit;
	font-size: 0.8125rem;
	font-weight: 500;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	cursor: pointer;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}

.a11y-toggle:hover,
.a11y-toggle:focus-visible {
	background: rgba(255, 255, 255, 0.15);
	border-color: var(--c-white);
}

.a11y-toggle[aria-pressed="true"] {
	background: var(--c-white);
	color: var(--c-purple-dark);
	border-color: var(--c-white);
}

/* ── A11y-Modus: WCAG-2.1-AA-konform ───────────────────────────────────────
   Wird NUR über body.a11y-mode aktiv (Toggle-Button). Die Standard-
   Ansicht bleibt komplett unverändert. Ziele: AA-Kontraste (≥4.5:1
   Text, ≥3:1 große Schrift/UI), größere Schrift, klar sichtbarer
   Fokus, unterstrichene Links, ruhigere Bewegung. */

body.a11y-mode {
	/* Dunklere Marken-Töne → AA-Kontrast auf Weiß. */
	--c-green: #4f6a00;
	--c-green-dark: #3c5000;
	--c-purple: #4d5288;
	--c-purple-dark: #353a66;
	--c-purple-light: #4a4d80;
	--section-py: 48px;
	/* Basis-Schrift etwas größer. */
	font-size: 17px;
}

/* Fließtexte größer + luftiger (bessere Lesbarkeit). */
body.a11y-mode .detail__intro,
body.a11y-mode .wahlaerztin__text,
body.a11y-mode .about__text,
body.a11y-mode .faq-item__answer,
body.a11y-mode .accordion__content,
body.a11y-mode .area-card__desc,
body.a11y-mode .section-subtitle,
body.a11y-mode p {
	font-size: 1.0625rem;
	line-height: 1.75;
}

/* Überschriften/Akzenttexte auf nahezu Schwarz → maximaler Kontrast. */
body.a11y-mode .section-title,
body.a11y-mode .section-label,
body.a11y-mode .area-card__title,
body.a11y-mode .hero__role,
body.a11y-mode .detail__intro,
body.a11y-mode .faq-item__answer,
body.a11y-mode .section-subtitle,
body.a11y-mode .hero__badges .badge {
	color: #1a1a1a;
}

/* Echte Textlinks im Inhalt klar erkennbar: unterstrichen.
   NICHT die Button-artigen Links (.area-card__link, .btn*) — die
   haben einen farbigen Hintergrund und brauchen keine Unterstreichung. */
body.a11y-mode .entry-content a:not(.btn):not([class*="__link"]),
body.a11y-mode .blog-card a:not(.btn),
body.a11y-mode .footer-links a,
body.a11y-mode .site-footer .contact-item__text a {
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* Helle Linkfarbe NUR im dunklen Footer (dort = AA auf dunkel).
   In der Termin-Sektion stehen .contact-item auf WEISSEM Grund —
   dort darf der Text NICHT hell werden (wäre unsichtbar). */
body.a11y-mode .site-footer .footer-links a,
body.a11y-mode .site-footer .contact-item__text a {
	color: #e6e7f2;
}

/* Buttons/Slots: dunkler Akzent für sicheren Kontrast.
   Der grüne Karten-Button bleibt WEISS auf Grün (kein dunkler Text,
   keine Unterstreichung — sonst unleserlich, siehe Screenshot). */
body.a11y-mode .btn--green {
	background: #3c5000;
	color: #fff;
}
body.a11y-mode .area-card__link {
	background: #3c5000;
	color: #fff;
	text-decoration: none;
	border-color: #3c5000;
}
body.a11y-mode .timeslot {
	color: #3c5000;
	border-color: #3c5000;
}

/* Dekorative Flächen NICHT „barrierefrei" einfärben — sie tragen
   keine Information. --c-purple-light ist nur im a11y-Block definiert;
   im Normal-Modus ist die Variable leer, der Foto-Hintergrund also
   transparent. Damit der a11y-Modus optisch nicht abweicht (siehe
   Screenshot mit den auffälligen Flächen), hier ebenfalls neutral. */
body.a11y-mode .about__portrait {
	background: transparent;
}
body.a11y-mode .hero__image {
	background: transparent;
}

/* Deutlich sichtbarer Fokus-Ring auf ALLEN interaktiven Elementen. */
body.a11y-mode :is(a, button, input, textarea, select, summary, [tabindex]):focus-visible {
	outline: 3px solid #353a66;
	outline-offset: 3px;
	border-radius: 2px;
}

/* Bewegung reduzieren (Vestibular-Sicherheit). */
body.a11y-mode *,
body.a11y-mode *::before,
body.a11y-mode *::after {
	animation-duration: 0.001ms !important;
	animation-iteration-count: 1 !important;
	transition-duration: 0.001ms !important;
	scroll-behavior: auto !important;
}

.site-logo__text {
	font-family: var(--ff);
	font-weight: 700;
	font-size: 1.125rem;
	color: var(--c-gray-dark);
	letter-spacing: 0.02em;
}

/* ════════════════════════════════════════════════════════════════════
   RATGEBER SINGLE — Markup und Styling 1:1 aus dem Mockup output_blog.html
   plus drei Erweiterungen unterhalb (TOC, Related, Mobile-Anpassungen).
   ════════════════════════════════════════════════════════════════════ */

/* ── Breadcrumb (Desktop only, lila BG wie Mockup) ── */
.breadcrumb{
  display:none;
  font-size:.8125rem;
  color:var(--c-gray);
}
.breadcrumb a{color:var(--c-purple-dark);font-weight:600}
.breadcrumb a:hover{text-decoration:underline}
.breadcrumb__sep{margin:0 6px;color:var(--c-purple)}
.breadcrumb__back{
  float:right;
  color:var(--c-purple-dark);
  font-weight:600;
}
.breadcrumb__back:hover{text-decoration:underline}
@media(min-width:1024px){
  .breadcrumb{
    display:block;
    background:var(--c-sd-bg);
    padding:12px 0;
  }
}

/* ── Blog Hero (Bild + Titel-Block) ── */
.blog-hero{
  position:relative;
  background:var(--c-white);
}
@media(min-width:1024px){.blog-hero{padding:2rem 0 4rem}}

.blog-hero__image{
  width:100%;
  height:240px;
  object-fit:cover;
  object-position:center top;
}
@media(min-width:768px){.blog-hero__image{height:340px}}
@media(min-width:1024px){.blog-hero__image{height:100%;min-height:360px}}

/* Mobile: Bild full-bleed */
.blog-hero__image-wrap{margin:0 -20px}
@media(min-width:768px){.blog-hero__image-wrap{margin:0 -32px}}
@media(min-width:1024px){.blog-hero__image-wrap{margin:0}}

/* Desktop: Bild + Titel nebeneinander */
.blog-hero__inner{display:block}
@media(min-width:1024px){
  .blog-hero__inner{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0;
    align-items:stretch;
  }
}

.blog-hero__content{padding:24px 0}
@media(min-width:1024px){
  .blog-hero__content{
    display:flex;flex-direction:column;justify-content:center;
    padding:48px 48px 48px 40px;
    background:var(--c-white);
  }
}

.blog-hero__title{
  font-size:1.75rem;font-weight:700;text-transform:uppercase;
  line-height:1.15;
  color:var(--c-black);
  margin-bottom:4px;
}
.blog-hero__title span{
  font-weight:100;
  color:var(--c-black);
}
@media(min-width:1024px){
  .blog-hero__title{font-size:2.25rem}
}

/* Meta-Bar: Aktualisiert (lila) / Trennlinie / Autor — Lesezeit */
.blog-hero__date{
  display:block;
  font-size:.8125rem;
  color:var(--c-purple-dark);
  margin-top:12px;
  margin-bottom:8px;
}
.blog-hero__meta{
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:.8125rem;
  color:var(--c-black);
  font-weight:700;
  padding-top:12px;
  border-top:1px solid var(--c-purple);
}
.blog-hero__author{font-weight:700}
.blog-hero__reading{font-weight:700}

/* ── Intro-Banner (lila Hintergrund) ── */
.blog-intro-banner{
  background:var(--c-sd-bg);
  padding:24px 20px;
}
@media(min-width:768px){.blog-intro-banner{padding:32px}}
.blog-intro-banner__inner{
  max-width:var(--max-w);
  margin:0 auto;
  font-size:1rem;
  line-height:1.7;
}

/* ── Article Layout ── */
.article-layout{
  padding:var(--section-py) 0;
  overflow-x:clip;
}
.article-inner{display:block}
@media(min-width:1024px){
  .article-inner{
    display:grid;
    grid-template-columns:1fr 340px;
    gap:48px;
    align-items:start;
  }
}

/* ── Article Content ── */
.article-content{
  font-size:1rem;
  line-height:1.7;
}
.article-content h2{
  font-size:1.375rem;
  font-weight:700;
  margin:32px 0 12px;
  scroll-margin-top:80px; /* Sticky-Header-Ausgleich für TOC-Anker */
}
.article-content h2:first-child{margin-top:0}
.article-content p{margin-bottom:16px}
.article-content ul{
  margin-bottom:16px;
  padding-left:0;
  list-style:none;
}
.article-content ul li{
  position:relative;
  padding-left:20px;
  margin-bottom:6px;
}
.article-content ul li::before{
  content:"\2022";
  position:absolute;
  left:0;
  font-weight:700;
}
.article-content ol{
  margin:0 0 16px 1.5em;
}
.article-content ol li{margin-bottom:6px}
.article-content strong{font-weight:700}
.article-content a{color:var(--c-green-dark);text-decoration:underline}

/* Grüner Quote zwischen Sektionen */
.article-quote{
  color:var(--c-green-dark);
  font-size:1rem;
  font-style:normal;
  line-height:1.6;
  margin:24px 0;
  padding:0;
  border:none;
  text-align:center;
}
@media(min-width:1024px){.article-quote{text-align:left}}

/* Info-Boxes (full-bleed grün, mit Icon-Bubble) */
.info-box{
  position:relative;
  background:var(--c-green-light);
  color:var(--c-black);
  padding:28px 20px 16px;
  margin:24px -20px;
  font-size:.875rem;
  line-height:1.6;
}
@media(min-width:768px){
  .info-box{margin-left:-32px;margin-right:-32px;padding:28px 32px 16px}
}
@media(min-width:1024px){
  .info-box{
    margin-left:-32px;margin-right:-32px;
    padding:28px 32px 16px;
    overflow:visible;
  }
  .info-box::before{
    content:"";
    position:absolute;
    top:0;bottom:0;
    right:100%;
    width:100vw;
    background:var(--c-green-light);
  }
  .info-box::after{
    content:"";
    position:absolute;
    top:0;bottom:0;
    left:0;
    width:100vw;
    background:var(--c-green-light);
    z-index:-1;
  }
  .info-box__icon{left:32px}
}
.info-box__icon{
  position:absolute;
  top:-16px;left:20px;
  width:36px;height:36px;
  background:var(--c-green);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:1.125rem;font-weight:700;
  color:var(--c-white);
}
@media(min-width:768px){
  .info-box__icon{left:32px}
}
.info-box__label{
  font-weight:700;
  text-transform:uppercase;
  font-size:.75rem;
  letter-spacing:.04em;
  color:var(--c-black);
  margin-bottom:4px;
}
.info-box p{margin-bottom:0}

/* ── Sidebar ── */
.article-sidebar{margin-top:40px}
@media(min-width:1024px){
  .article-sidebar{
    margin-top:0;
    position:sticky;
    top:80px;
    z-index:1;
  }
}

/* Sidebar-Card – lila Border, lila Header */
.sidebar-card{
  border:2px solid var(--c-purple);
  border-radius:var(--r-card);
  overflow:hidden;
  margin-bottom:24px;
  background:var(--c-white);
  position:relative;
  z-index:1;
}
.sidebar-card__header{
  background:var(--c-purple-dark);
  color:var(--c-white);
  padding:12px 16px;
  font-weight:700;
  font-size:1rem;
}
.sidebar-card__body{padding:16px}

/* Auf-einen-Blick-Tabelle */
.sidebar-table{
  width:100%;
  font-size:.9375rem;
  border-collapse:collapse;
}
.sidebar-table tr{border-bottom:1px solid var(--c-purple)}
.sidebar-table tr:last-child{border-bottom:none}
.sidebar-table td{
  padding:10px 0;
  vertical-align:top;
}
.sidebar-table td:first-child{
  font-weight:400;
  color:var(--c-black);
  padding-right:16px;
  white-space:nowrap;
}

/* Sidebar-CTA */
.sidebar-cta{margin-top:16px}
.sidebar-cta .btn{
  width:100%;
  justify-content:center;
}

/* ── Sidebar: In meiner Ordination ── */
.sidebar-ordination{
  font-size:.9375rem;
  line-height:1.6;
}
.sidebar-ordination p{margin:0 0 8px}
.sidebar-ordination p:last-child{margin-bottom:0}

/* ── Sidebar: Verwandte Themen ── */
.sidebar-links{
  display:flex;
  flex-direction:column;
}
.sidebar-links a{
  display:block;
  padding:10px 0;
  color:var(--c-purple-dark);
  font-weight:600;
  font-size:.9375rem;
  border-bottom:1px solid var(--c-purple);
  transition:color .2s;
}
.sidebar-links a:last-child{border-bottom:none}
.sidebar-links a:hover{color:var(--c-black)}

/* ── Verwandte Artikel (Erweiterung) ── */
.blog-related{
  background:var(--c-sd-bg);
  padding:48px 0;
}
.blog-related .section-subtitle{
  font-size:1rem;
  font-weight:400;
  margin-top:4px;
}

/* ── WCAG 2.3.3 / 2.2.2: System-Einstellung „Bewegung reduzieren"
   respektieren. Gilt IMMER (beide Modi, ohne Toggle) — Nutzer mit
   vestibulären Störungen/Migräne stellen das im Betriebssystem ein
   und erwarten, dass Websites es befolgen. ──────────────────────── */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}

/* ══════════════════════════════════════════════════════════════
   NORMALE SEITEN (Impressum, Datenschutz, Barrierefreiheit …)
   index.php rendert sie als .generic-page > .entry-content.
   Vorher komplett ungestylt → hier ein ruhiges, lesbares
   Grundlayout passend zum Theme.
   ══════════════════════════════════════════════════════════════ */
.generic-page .entry-content{
  font-size:1.0625rem;
  line-height:1.75;
  color:#2a2a2a;
}
.generic-page .entry-content > h2{
  font-size:1.7rem;
  font-weight:700;
  color:var(--c-purple-dark);
  line-height:1.25;
  margin:2.4rem 0 .8rem;
}
.generic-page .entry-content > h2:first-child{margin-top:0}
.generic-page .entry-content h3{
  font-size:1.2rem;
  font-weight:700;
  color:#1a1a1a;
  margin:1.7rem 0 .5rem;
}
.generic-page .entry-content p{margin:.85rem 0}
.generic-page .entry-content ul,
.generic-page .entry-content ol{
  margin:.7rem 0 1.2rem;
  padding-left:1.4rem;
}
.generic-page .entry-content ul{list-style:disc}
.generic-page .entry-content ol{list-style:decimal}
.generic-page .entry-content li{margin:.4rem 0}
.generic-page .entry-content a{
  color:var(--c-purple-dark);
  text-decoration:underline;
  text-underline-offset:2px;
}
.generic-page .entry-content a:hover,
.generic-page .entry-content a:focus-visible{
  color:var(--c-purple);
}

/* ── Statische Seiten: Seitentitel (page.php) ──────────────────
   Bleibt als H1 im Code (SEO/A11y: genau eine H1 pro Seite),
   aber optisch ruhig — wie eine normale Seitenüberschrift, nicht
   als großer Block wie früher im Listen-Fallback. */
.page-article__title{
  font-size:2rem;
  font-weight:700;
  color:var(--c-purple-dark);
  line-height:1.2;
  margin:0 0 1.6rem;
}
@media(min-width:768px){
  .page-article__title{font-size:2.3rem}
}
/* Falls eine Seite ihren Titel im Inhalt selbst trägt und die
   automatische Überschrift NICHT erscheinen soll: dieser Seite
   im Editor die Body-Klasse via "Zusätzliche CSS-Klasse" geben
   ODER den Inhalt mit .hat-eigenen-titel umschließen. */
.hat-eigenen-titel .page-article__title{
  position:absolute;width:1px;height:1px;
  padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* ── Rechtstext-Seiten (Impressum, Datenschutz, Barrierefreiheit)
   gemeinsame Bausteine. .a11y-statement bleibt für Rückwärts-
   kompatibilität, .legal-page ist die allgemeine Klasse. ──────── */
.a11y-statement,
.legal-page{max-width:820px}

.legal-page h2{
  font-size:1.7rem;font-weight:700;
  color:var(--c-purple-dark);line-height:1.25;
  margin:2.4rem 0 .8rem;
}
.legal-page h2:first-child{margin-top:0}
.legal-page h3{
  font-size:1.2rem;font-weight:700;color:#1a1a1a;
  margin:1.7rem 0 .5rem;
}
.legal-page p{margin:.85rem 0}
.legal-page ul,.legal-page ol{margin:.7rem 0 1.2rem;padding-left:1.4rem}
.legal-page ul{list-style:disc}
.legal-page ol{list-style:decimal}
.legal-page li{margin:.4rem 0}
.legal-page a{
  color:var(--c-purple-dark);
  text-decoration:underline;text-underline-offset:2px;
}
.legal-page a:hover,.legal-page a:focus-visible{color:var(--c-purple)}

.a11y-statement .a11y-box,
.legal-page .legal-box{
  background:#f5f5f9;
  border:1px solid #dcdce6;
  border-radius:10px;
  padding:1.25rem 1.5rem;
  margin:1.5rem 0;
}
.a11y-statement .a11y-box h3,
.legal-page .legal-box h3{margin-top:0}
.a11y-statement .a11y-box.ok{
  border-left:5px solid #4f6a00;
  background:#f3f7ea;
}
.a11y-statement .a11y-box.todo,
.legal-page .legal-box.note{
  border-left:5px solid #b97400;
  background:#fdf6ec;
}
.a11y-statement .a11y-box ul,
.legal-page .legal-box ul{margin-bottom:0}
.a11y-statement .a11y-meta,
.legal-page .legal-meta{
  font-size:.95rem;
  color:#555;
  background:#f7f7f9;
  border:1px solid #e3e3ea;
  border-radius:8px;
  padding:1rem 1.25rem;
  margin-top:2.5rem;
}
.a11y-statement .a11y-meta p,
.legal-page .legal-meta p{margin:0}
.a11y-statement .a11y-placeholder,
.legal-page .legal-placeholder{
  background:#fff3cd;
  padding:.05em .4em;
  border-radius:3px;
  font-weight:600;
}

/* ── Lightbox-Galerie ─────────────────────────────────────────── */

/* Trigger-Buttons (Raum-Bilder etc.) — die <button>-Defaults
   neutralisieren, damit das Bild wie vorher aussieht. */
.about__rooms-item{
	display:block;
	padding:0;
	border:0;
	background:none;
	cursor:pointer;
	overflow:hidden;
	border-radius:8px;
	transition:transform .2s ease;
}
.about__rooms-item img{
	display:block;
	width:100%;
	height:auto;
}
.about__rooms-item:hover,
.about__rooms-item:focus-visible{
	transform:scale(1.02);
}

/* Lightbox-Overlay */
.lightbox{
	position:fixed;inset:0;
	z-index:10000;
	background:rgba(0,0,0,.92);
	display:flex;
	align-items:center;
	justify-content:center;
	padding:48px 16px;
	gap:8px;
}
.lightbox[hidden]{display:none}
body.lightbox-open{overflow:hidden} /* Scroll der Seite einfrieren */

.lightbox__figure{
	margin:0;
	max-width:min(1200px, 90vw);
	max-height:80vh;
	display:flex;
	flex-direction:column;
	align-items:center;
	gap:12px;
}
.lightbox__image{
	max-width:100%;
	max-height:80vh;
	height:auto;
	width:auto;
	display:block;
	border-radius:4px;
	box-shadow:0 8px 32px rgba(0,0,0,.5);
}
.lightbox__caption{
	color:#fff;
	font-size:.9375rem;
	text-align:center;
	max-width:90%;
	min-height:1.2em; /* Layout-Reserve, vermeidet Springen */
}

/* Close-Button (rechts oben) */
.lightbox__close{
	position:absolute;
	top:16px;right:16px;
	background:rgba(255,255,255,.1);
	color:#fff;
	border:1px solid rgba(255,255,255,.3);
	border-radius:50%;
	width:44px;height:44px;
	display:flex;align-items:center;justify-content:center;
	cursor:pointer;
}
.lightbox__close:hover,
.lightbox__close:focus-visible{
	background:rgba(255,255,255,.2);
}

/* Prev/Next-Buttons */
.lightbox__nav{
	background:rgba(255,255,255,.1);
	color:#fff;
	border:1px solid rgba(255,255,255,.3);
	border-radius:50%;
	width:48px;height:48px;
	flex-shrink:0;
	display:flex;align-items:center;justify-content:center;
	cursor:pointer;
}
.lightbox__nav[hidden]{display:none}
.lightbox__nav:hover,
.lightbox__nav:focus-visible{
	background:rgba(255,255,255,.2);
}

/* Mobil: Nav-Buttons absolut positionieren, damit das Bild
   trotzdem die volle Breite nutzen kann. */
@media (max-width: 640px){
	.lightbox{padding:24px 8px}
	.lightbox__figure{order:1}
	.lightbox__nav{
		position:absolute;
		top:50%;transform:translateY(-50%);
		width:40px;height:40px;
	}
	.lightbox__nav--prev{left:8px}
	.lightbox__nav--next{right:8px}
}

/* Fokus-Sichtbarkeit (im a11y-Modus zusätzlich der globale Ring) */
.lightbox button:focus-visible{
	outline:3px solid #fff;
	outline-offset:2px;
}

/* ══════════════════════════════════
   DETAIL – CTA-Button „Wie ich Ihnen helfen kann"
   ══════════════════════════════════ */
.detail__cta-btn{
  grid-column:1/-1;
  order:99;
  justify-self:center;
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:130px;height:130px;
  border-radius:50%;
  background:var(--c-purple);
  color:var(--c-purple-dark);
  text-align:center;
  text-decoration:none;
  text-transform:uppercase;
  font-size:.875rem;
  font-weight:400;
  letter-spacing:.03em;
  line-height:1.35;
  position:relative;
  overflow:hidden;
  transition:background .25s ease;
  margin:1.5rem auto;
}
.detail__cta-btn strong{
  font-weight:700;
  display:block;
}
.detail__cta-btn__text{
  transition:opacity .25s ease;
}
/* Hakerl – via CSS-Pseudo-Element */
.detail__cta-btn__check{
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  opacity:0;
  transition:opacity .25s ease;
}
.detail__cta-btn__check::before{
  content:'';
  display:block;
  width:44px;height:30px;
  border-left:6px solid var(--c-white);
  border-bottom:6px solid var(--c-white);
  border-radius:2px;
  transform:rotate(-45deg) translate(4px,-4px);
}
/* Hover / Tap */
.detail__cta-btn:hover,
.detail__cta-btn:focus-visible{
  background:var(--c-green);
  outline:none;
}
.detail__cta-btn:hover .detail__cta-btn__text,
.detail__cta-btn:focus-visible .detail__cta-btn__text{ opacity:0; }
.detail__cta-btn:hover .detail__cta-btn__check,
.detail__cta-btn:focus-visible .detail__cta-btn__check{ opacity:1; }
@media(min-width:1024px){
  .detail__cta-btn{grid-column:3;order:6;justify-self:center;align-self:center;margin:0;}
}
