/* ── 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}
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;
}
.section-subtitle{
  font-size:1rem;
  font-weight: 700;
  color:var(--c-black);
  margin-top:8px;
}
@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 */
.a11y-toggle-bar{background:var(--c-purple-dark);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;
  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;
    transition:opacity .2s;
  }
  .main-nav a:hover{opacity:.7}
}
.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: full-width box below image
   ══════════════════════════════════ */
.hero{position:relative}
.hero__image{
  width:100%;height:280px;
  object-position: center 30%;
  object-fit: cover;
  display:block;
}
@media(min-width:768px){.hero__image{height:340px}}
@media(min-width:1024px){.hero__image{height:auto;aspect-ratio:1920/940;max-height:65vh;object-position:center 40%}}
.hero__card{
  background:var(--c-white);
  padding:28px 20px 0;
}
@media(min-width:1024px){
  .hero__card{
    position:absolute;
    bottom:40px;left:50%;transform:translateX(-50%);
    max-width:var(--max-w);width:100%;
    padding:0 32px;
    background:none;
  }
  .hero__card-inner{
    background:rgba(255,255,255,.97);
    border-radius:var(--r-card);
    box-shadow:0 8px 32px rgba(0,0,0,.12);
    padding:36px 32px;
    max-width:460px;
  }
}
.hero__card-inner{display:block}
.hero__badge{
  display:inline-block;
  background:var(--c-purple);color:var(--c-white);
  padding:4px 12px;border-radius:8px;
  margin-bottom:16px;
  text-transform:uppercase;
}
.hero__name{
  font-size:2.25rem;font-weight:700;
  line-height:1.05;letter-spacing:.01em;
  text-transform:uppercase;
}
.hero__name span{font-weight:300}
@media(min-width:1024px){.hero__name{font-size:2.75rem}}
.hero__role{
  font-size:1rem;font-weight:400;
  color:var(--c-black);
  margin:12px 0 0;line-height:1.4;
}

/* ══════════════════════════════════
   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-top:-2rem;z-index:1;
    background:transparent;
    width:100%;max-width:var(--max-w);padding:16px 32px;
  }
  .trust-badges{
    background:var(--c-white);padding:16px 32px;
  }
}
.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-sd-bg)}
.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){
  .detail-layout{grid-template-columns:1fr 40%}
  .detail-layout>.detail__quote{grid-column:1/-1;margin:1rem 0;}
  .detail__accordions{grid-column:1/-1;order:11}
}
.detail__intro{font-size:1rem;line-height:1.7;margin-bottom:12px}
.detail__tagline{color:var(--c-purple-dark);font-weight:400}
.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-green-dark);
  font-size:1rem;
  font-weight:300;
  line-height:1.6;
  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;
}}
.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;
  }
}
.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-title{font-weight:700;margin:20px 0 12px}
.about__services{
  background:var(--c-purple);color:var(--c-white);
  border-radius:var(--r-btn);
  padding:16px 20px;
  list-style:disc;
  padding-left:36px;
}
.about__services li{font-size:.9375rem;line-height:1.6;margin-bottom:4px}
.about__werdegang-title{font-weight:700;margin:20px 0 12px}
.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}
.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;
  }
  .about__rooms img{border-radius:8px;width:100%;height:160px;object-fit:cover}
}
@media(min-width:1024px){
  .about-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    grid-template-rows:auto auto auto auto;
    gap:16px 48px;
  }
  .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;
    max-height:420px;object-fit:cover;object-position:top;
  }
  .about__tags{grid-column:1/-1;grid-row:2;margin-top:8px}
  .about__services-wrap{grid-column:1;grid-row:3}
  .about__werdegang{grid-column:2;grid-row:3}
  .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-green);
  text-align:center;
  margin-top:32px;
  font-size:1rem;line-height:1.6;
}

/* ══════════════════════════════════
   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}}
.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 .3s ease;
}
.faq-item__panel[aria-hidden="false"]{max-height:600px}
.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;
}
.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;
}
.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:8px;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: var(--c-purple-dark);
	padding: 6px 16px;
	display: flex;
	justify-content: center;
	align-items: center;
}
@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: höherer Kontrast, größere Abstände, ─────────────────────
      etwas weniger heroische Hero-Höhe. */

body.a11y-mode {
	--c-green: #6e9002;
	--c-green-dark: #5a7501;
	--c-purple: #6a70ab;
	--c-purple-dark: #4d5288;
	--section-py: 48px;
}

body.a11y-mode .hero__image {
	object-position: center 35%;
}

@media (min-width: 1024px) {
	body.a11y-mode .hero__image {
		aspect-ratio: 1920 / 900;
		object-position: center 45%;
	}
}

/* Etwas mehr Schriftgröße und Zeilenhöhe in Detail-Texten */
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 {
	font-size: 1.0625rem;
	line-height: 1.75;
}

/* Größerer Fokus-Ring */
body.a11y-mode :is(a, button, input, textarea, select, [tabindex]):focus-visible {
	outline: 3px solid var(--c-purple-dark);
	outline-offset: 3px;
}

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