/* =====================================================================
   Reissigl · Content-Vorschlag (Abschnitte unter dem Hero)
   Tokens gemappt auf die Live-Seite: Plus Jakarta Sans + Teal-Skala

   FLUIDE SKALA: Abstände + Komponenten-Größen in rem, gekoppelt an die
   fluide Root aus base.css (font-size:clamp(13px,0.6vw+10px,26px)).
   Referenz 2560px → Root 25.36px, daher px/25.36 = rem. Dadurch skalieren
   Rhythmus und Abstände proportional mit der Auflösung und deckeln oben
   (~2667px). Typo bleibt clamp()/px (eigene Min/Max, mobil lesbar),
   Borders/Radien/Schatten bleiben px (Hairlines).
   ===================================================================== */
:root{
  --teal-100:#b2d8d8;
  --teal-300:#66b2b2;
  --teal-500:#008080;
  --teal-700:#006666;
  --teal-900:#004c4c;

  --bg:#ffffff;
  --sage:#f3f6f4;
  --sage-line:#e3ebe6;
  --sage-mid:#cdded6;

  --ink:#16302f;
  --ink-soft:#4d6362;
  --ink-mute:#7d918f;

  --on-teal:#ffffff;
  --on-teal-soft:rgba(255,255,255,.78);
  --on-teal-line:rgba(255,255,255,.18);

  --maxw:45.74rem;
  --pad-y:4.101rem;
  --radius:16px;
  --shadow-card:0 1px 2px rgba(20,48,47,.05);
  --shadow-soft:0 18px 50px -28px rgba(10,55,50,.4);
}

html{scroll-behavior:smooth;}
.section, .stats, .locband, .footer { font-family:"Plus Jakarta Sans",system-ui,sans-serif; }
h2,h3,h4{margin:0;line-height:1.12;letter-spacing:-.02em;font-weight:700;}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 1.577rem;}

/* shared section primitives ------------------------------------------ */
.section{position:relative;overflow:hidden;padding:var(--pad-y) 0;border-top:1px solid var(--sage-line);}
.section.sage{background:var(--sage);}
.section.plain{border-top:0;}
.section .wrap{position:relative;z-index:2;}

.eyebrow{
  font-weight:700;text-transform:uppercase;letter-spacing:.2em;
  font-size:13px;color:var(--teal-500);margin:0 0 0.71rem;
}
.section.teal .eyebrow{color:var(--teal-100);}
.h-lg{font-size:clamp(30px,3.6vw,46px);max-width:18ch;}
.h-md{font-size:clamp(26px,2.8vw,34px);max-width:32ch;text-wrap:balance;}
.lede{font-size:clamp(17px,1.4vw,20px);color:var(--ink-soft);max-width:58ch;margin-top:0.789rem;font-weight:400;}

/* buttons ------------------------------------------------------------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:0.394rem;
  font:inherit;font-weight:600;font-size:16px;padding:0.592rem 1.183rem;border-radius:999px;
  text-decoration:none;cursor:pointer;border:1.5px solid transparent;transition:all .2s;white-space:nowrap;}
.btn-primary{background:var(--teal-700);color:#fff;border-color:var(--teal-700);}
.btn-primary:hover{background:var(--teal-900);border-color:var(--teal-900);}
.btn-ghost{background:transparent;color:var(--teal-700);border-color:var(--sage-mid);}
.btn-ghost:hover{border-color:var(--teal-700);background:rgba(0,102,102,.05);}
.section.teal .btn-ghost{color:#fff;border-color:var(--on-teal-line);}
.section.teal .btn-ghost:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.5);}

/* DEKO --------------------------------------------------------------- */
.deco{position:absolute;border-radius:50%;z-index:0;pointer-events:none;}
.is-ring{background:transparent;border-style:solid;}
.is-fill.t-100{background:var(--teal-100);} .is-ring.t-100{border-color:var(--teal-100);}
.is-fill.t-300{background:var(--teal-300);} .is-ring.t-300{border-color:var(--teal-300);}
.is-fill.t-500{background:var(--teal-500);} .is-ring.t-500{border-color:var(--teal-500);}
.is-fill.t-700{background:var(--teal-700);} .is-ring.t-700{border-color:var(--teal-700);}
.is-fill.t-900{background:var(--teal-900);} .is-ring.t-900{border-color:var(--teal-900);}
.is-ring.t-w{border-color:rgba(255,255,255,.3);}
.is-fill.t-w{background:rgba(255,255,255,.12);}
.o-70{opacity:.7;} .o-50{opacity:.5;} .o-35{opacity:.35;}

/* 1 · STATS-BAND ----------------------------------------------------- */
.stats{background:var(--teal-700);color:#fff;border-top:0;padding:2.524rem 0;position:relative;overflow:hidden;}
.stats .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;}
.stat{padding:0.315rem 1.577rem;border-left:1px solid var(--on-teal-line);}
.stat:first-child{border-left:0;padding-left:0;}
.stat .num{font-size:clamp(40px,4.4vw,58px);font-weight:800;letter-spacing:-.03em;line-height:1;}
.stat .lab{margin-top:0.473rem;color:var(--on-teal-soft);font-size:15px;line-height:1.45;}

/* 2 · LEISTUNGEN ----------------------------------------------------- */
.tabs{display:inline-flex;gap:0.158rem;background:var(--sage);border:1px solid var(--sage-line);
  border-radius:999px;padding:0.197rem;margin-top:0.315rem;}
.tabs button{border:0;background:transparent;font:inherit;font-weight:600;font-size:16px;
  color:var(--ink-soft);padding:0.59rem 1.45rem;border-radius:999px;cursor:pointer;transition:all .18s;
  display:inline-flex;align-items:center;gap:0.45rem;}
.tabs button .ico{width:0.71rem;height:0.71rem;display:inline-flex;color:var(--ink-mute);transition:color .18s;}
.tabs button .ico svg{width:100%;height:100%;display:block;}
.tabs button[aria-selected="true"]{background:#fff;color:var(--teal-700);box-shadow:var(--shadow-card);}
.tabs button[aria-selected="true"] .ico{color:var(--teal-700);}

.leist-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1.183rem;flex-wrap:wrap;}

.svc-list{margin-top:1.814rem;border-top:1px solid var(--sage-line);}
.svc-panel{display:none;}
.svc-panel.active{display:block;animation:fadeUp .45s ease both;}
.svc-row{border-bottom:1px solid var(--sage-line);position:relative;cursor:pointer;transition:background .18s;}
.svc-row::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--teal-300);
  transform:scaleY(0);transform-origin:top;transition:transform .28s ease;}
.svc-row:hover,.svc-row[aria-expanded="true"]{background:var(--sage);}
.svc-row:hover::before,.svc-row[aria-expanded="true"]::before{transform:scaleY(1);}
.svc-row[aria-expanded="true"]::before{background:var(--teal-700);}
.svc-rowhead{display:grid;grid-template-columns:minmax(180px,1.1fr) 2fr auto;gap:1.104rem;align-items:center;padding:0.946rem 0.552rem;}
.svc-row .t{display:flex;align-items:center;gap:0.631rem;}
.svc-row .ic{width:1.656rem;height:1.656rem;border-radius:50%;border:2px solid var(--teal-300);flex:none;
  display:flex;align-items:center;justify-content:center;color:var(--teal-700);}
.svc-row .ic .d{width:0.355rem;height:0.355rem;border-radius:50%;background:currentColor;}
.svc-row h3{font-size:19px;}
.svc-rowhead p{color:var(--ink-soft);font-size:15px;}
.svc-row .more{display:inline-flex;align-items:center;gap:0.276rem;color:var(--teal-700);font-weight:600;
  font-size:15px;white-space:nowrap;transition:opacity .18s;}
.svc-row[aria-expanded="true"] .more{opacity:0;}
.svc-body{max-height:0;overflow:hidden;transition:max-height .35s ease;}
.svc-row[aria-expanded="true"] .svc-body{max-height:32rem;}
.svc-body p{color:var(--ink);font-size:16px;line-height:1.65;max-width:64ch;padding:0 0.552rem 0 2.840rem;}
.svc-cta{display:inline-flex;align-items:center;gap:0.276rem;margin:1.2rem 0 0.946rem 2.840rem;
  font-size:15px;font-weight:600;color:var(--teal-700);
  text-decoration:none;transition:gap .18s;}
.svc-cta::after{content:"→";}
.svc-cta:hover{gap:12px;}

/* Desktop: Leistungsspektrum getönt + CTA rechtsbündig in der Kachel */
@media(min-width:1025px){
  #leistungen{background:#f9f9f9;}
  #leistungen .svc-body{display:flex;flex-direction:column;}
  #leistungen .svc-cta{align-self:flex-end;margin-left:0;margin-right:0.552rem;}
}

/* Leistungen: Tabs (Männer/Frauen/Kinder) zentriert unter Text */
/* Anker-Ziel: Abstand zum fixierten Header beim Anspringen via #leistungen(-maenner/-frauen/-kinder) */
#leistungen{scroll-margin-top:calc(max(var(--header-h), var(--header-h-min)) + 1.4rem);}
#leistungen .leist-head{flex-direction:column;align-items:stretch;}
#leistungen .tabs{align-self:center;margin-top:1.4rem;}

/* 3 · ZITAT-BAND ----------------------------------------------------- */
.quote-band{background:var(--teal-700);color:#fff;border-top:0;padding:4.732rem 0;text-align:center;}
.quote-band .mark{font-size:2.524rem;line-height:.4;color:var(--teal-100);opacity:.5;font-weight:800;}
.quote-band blockquote{margin:0.710rem auto 0;max-width:32ch;font-size:clamp(26px,3.2vw,40px);
  font-weight:600;line-height:1.32;letter-spacing:-.02em;text-wrap:balance;}
.quote-band .by{margin-top:1.341rem;font-size:14px;letter-spacing:.16em;text-transform:uppercase;color:var(--on-teal-soft);}

/* 4 · VITA / TEAM ---------------------------------------------------- */
.vita{display:grid;grid-template-columns:minmax(0,0.8fr) minmax(0,1.2fr);gap:2.524rem;align-items:start;}
.vita .pcol{position:relative;}
.vita .portrait{position:relative;z-index:2;aspect-ratio:4/5;border-radius:20px;overflow:hidden;
  box-shadow:var(--shadow-soft);background:var(--sage);}
.vita .portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 22%;display:block;}
.vita .badge{position:relative;z-index:3;margin-top:-1.183rem;margin-left:0.946rem;display:inline-flex;
  align-items:center;gap:0.473rem;background:#fff;border:1px solid var(--sage-line);border-radius:14px;
  padding:0.552rem 0.789rem;box-shadow:var(--shadow-card);}
.vita .badge .dot{width:1.9rem;height:1.9rem;border-radius:50%;background:var(--teal-700);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:0.63rem;flex:none;}
.vita .badge b{display:block;font-size:14px;}
.vita .badge span{font-size:12.5px;color:var(--ink-mute);}
.vita h2{font-size:clamp(26px,2.8vw,34px);}
.vita .role{color:var(--teal-700);font-weight:600;margin-top:0.315rem;font-size:17px;}
.vita .bio{color:var(--ink-soft);margin-top:0.710rem;font-size:16px;line-height:1.65;}

/* CV-Block (Tabs + Timeline) volle Breite unter Bild+Text */
.vita-cv{margin-top:2.2rem;}

.vita-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:0.315rem 1.2rem;margin-top:1.183rem;border-bottom:1px solid var(--sage-line);padding-bottom:0;}
.vita-tabs button{border:0;background:transparent;font:inherit;font-weight:600;font-size:14px;white-space:nowrap;
  color:var(--ink-soft);padding:0.434rem 0.079rem;margin-right:0.552rem;cursor:pointer;position:relative;transition:color .18s;}
.vita-tabs button::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2.5px;
  background:var(--teal-700);border-radius:2px;transform:scaleX(0);transition:transform .2s;}
.vita-tabs button[aria-selected="true"]{color:var(--teal-700);}
.vita-tabs button[aria-selected="true"]::after{transform:scaleX(1);}

.vita-panel{display:none;margin-top:1.025rem;}
.vita-panel.active{display:block;animation:fadeUp .4s ease both;max-height:15.77rem;overflow-y:auto;padding-right:0.552rem;padding-bottom:1.499rem;
  -webkit-overflow-scrolling:touch;-webkit-mask-image:linear-gradient(180deg,#000 calc(100% - 1.183rem),transparent);
  mask-image:linear-gradient(180deg,#000 calc(100% - 1.183rem),transparent);}
.vita-panel.active::-webkit-scrollbar{width:6px;}
.vita-panel.active::-webkit-scrollbar-thumb{background:var(--sage-mid);border-radius:3px;}
.vita-panel.active::-webkit-scrollbar-track{background:transparent;}
.tl{list-style:none;margin:0;padding:0;position:relative;}
.tl::before{content:"";position:absolute;left:0.237rem;top:0.315rem;bottom:0.315rem;width:2px;background:var(--sage-line);}
.tl li{position:relative;padding:0 0 0.868rem 1.341rem;}
.tl li:last-child{padding-bottom:0;}
.tl li::before{content:"";position:absolute;left:0;top:0.197rem;width:0.552rem;height:0.552rem;border-radius:50%;
  background:#fff;border:3px solid var(--teal-500);}
.tl .yr{font-family:ui-monospace,Menlo,monospace;font-size:13px;color:var(--teal-700);font-weight:600;}
.tl b{display:block;font-size:16px;margin-top:0.079rem;}
.tl span{color:var(--ink-soft);font-size:14.5px;}

/* 5 · STANDORT-BAND -------------------------------------------------- */
.locband{position:relative;overflow:hidden;background:var(--teal-700);color:#fff;border-top:0;
  padding:3.785rem 0;text-align:center;font-family:"Plus Jakarta Sans",system-ui,sans-serif;}
.locband h2{font-size:clamp(26px,2.8vw,34px);max-width:32ch;margin:0 auto;color:#fff;text-wrap:balance;}
.locband p{margin:0.631rem auto 0;color:var(--on-teal-soft);max-width:48ch;font-size:17px;line-height:1.6;}
.locband .actions{display:flex;gap:0.552rem;justify-content:center;margin-top:1.262rem;flex-wrap:wrap;}
.locband .btn-ghost{color:#fff;border-color:rgba(255,255,255,.7);}
.locband .btn-ghost:hover{background:#fff;color:var(--teal-700);border-color:#fff;}

/* 7 · KONTAKT -------------------------------------------------------- */
.contact{display:grid;grid-template-columns:1fr 1fr;gap:1.577rem;align-items:stretch;}
.contact .info{display:flex;flex-direction:column;}
.cinfo-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.025rem;margin-top:1.183rem;}
.cinfo h4{font-size:13px;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-mute);margin-bottom:0.315rem;}
.cinfo p{font-size:16px;color:var(--ink-soft);line-height:1.65;}
.map-link{color:var(--teal-700);text-decoration:none;font-weight:600;}
.map-link:hover{text-decoration:underline;}
.cinfo .ztimes .zk{display:block;font-weight:600;color:var(--ink);}
.cinfo .ztimes .zk + .zk,.cinfo .ztimes .zk:nth-of-type(2){margin-top:0.394rem;}
.contact .actions{display:flex;gap:0.552rem;margin-top:auto;padding-top:1.183rem;flex-wrap:wrap;justify-content:center;}
.map{position:relative;border-radius:var(--radius);overflow:hidden;border:1px solid var(--sage-line);
  min-height:11.830rem;background:
   repeating-linear-gradient(135deg,#eef3f1 0 16px,#e7eeeb 16px 32px);}
.map .pin{position:absolute;top:50%;left:50%;transform:translate(-50%,-100%);z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:0.237rem;}
.map .pin .head{background:#fff;border:1px solid var(--sage-line);border-radius:10px;padding:0.315rem 0.552rem;
  font-size:13px;font-weight:700;color:var(--ink);box-shadow:var(--shadow-card);white-space:nowrap;}
.map .pin .mk{width:0.71rem;height:0.71rem;border-radius:50%;background:var(--teal-700);border:4px solid #fff;
  box-shadow:0 4px 10px rgba(0,60,55,.3);}
.map .ph{position:absolute;bottom:0.552rem;left:0.552rem;font-family:ui-monospace,Menlo,monospace;font-size:11px;
  color:var(--ink-mute);background:rgba(255,255,255,.8);padding:0.197rem 0.355rem;border-radius:7px;}
/* Google-Maps-iframe (consent-gated): liegt ueber dem Platzhalter, wird erst
   sichtbar, sobald consent-manager.js nach Zustimmung das src setzt. */
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;z-index:3;}
.map iframe:not([src]){display:none;}

/* 8 · MEDIEN --------------------------------------------------------- */
.logos{display:flex;flex-wrap:wrap;align-items:center;gap:1.104rem;margin-top:0.315rem;}
.logos .logo{display:flex;align-items:center;justify-content:center;padding:0;}
.media-list{margin-top:1.814rem;border-top:1px solid var(--sage-line);}
.media-row{display:grid;grid-template-columns:210px 1fr auto;gap:1.104rem;align-items:center;
  padding:0.868rem 0.552rem;border-bottom:1px solid var(--sage-line);transition:background .18s;
  color:inherit;text-decoration:none;}
.media-row:hover{background:#fff;}
.media-row .out{font-weight:700;color:var(--teal-700);font-size:15px;}
.media-row .ttl{font-size:16.5px;}
.media-row .go{color:var(--teal-700);font-weight:700;font-size:20px;line-height:1;white-space:nowrap;transition:transform .18s;}
a.media-row:hover .go{transform:translateX(5px);}

/* Medien-Logos als Bilder (ohne Kasten, s/w → Farbe bei Hover) */
.logos .logo img{max-height:1.499rem;width:auto;display:block;filter:grayscale(1);opacity:.65;transition:filter .2s,opacity .2s;}
.logos .logo:hover img{filter:grayscale(0);opacity:1;}

/* 9 · FAQ ------------------------------------------------------------ */
.faq-cats{display:inline-flex;flex-wrap:wrap;gap:0.158rem;margin-top:0.315rem;
  background:var(--sage);border:1px solid var(--sage-line);border-radius:999px;padding:0.45rem;}
.faq-cats button{border:0;background:transparent;font:inherit;font-weight:600;
  font-size:16px;color:var(--ink-soft);padding:0.59rem 1.45rem;border-radius:999px;cursor:pointer;transition:all .18s;}
.faq-cats button[aria-selected="true"]{background:#fff;color:var(--teal-700);box-shadow:var(--shadow-card);}
.faq-list{margin-top:1.577rem;max-width:880px;}
.faq-item{border-bottom:1px solid var(--sage-line);}
.faq-q{width:100%;text-align:left;background:transparent;border:0;font:inherit;cursor:pointer;
  display:flex;align-items:center;gap:0.789rem;padding:0.946rem 0.158rem;color:var(--ink);}
.faq-q .qt{font-size:18px;font-weight:600;flex:1;letter-spacing:-.01em;}
.faq-q .pm{width:1.183rem;height:1.183rem;border-radius:50%;border:1.5px solid var(--sage-mid);flex:none;
  display:flex;align-items:center;justify-content:center;color:var(--teal-700);transition:all .2s;position:relative;}
.faq-q .pm::before,.faq-q .pm::after{content:"";position:absolute;background:currentColor;border-radius:2px;}
.faq-q .pm::before{width:0.513rem;height:2px;}
.faq-q .pm::after{width:2px;height:0.513rem;transition:transform .2s;}
.faq-item.open .faq-q .pm{background:var(--teal-700);color:#fff;border-color:var(--teal-700);}
.faq-item.open .faq-q .pm::after{transform:scaleY(0);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease;}
.faq-a .inner{padding:0 1.972rem 1.025rem 0.158rem;color:var(--ink-soft);font-size:16px;line-height:1.65;}
.faq-hidden{display:none;}

/* FAQ-Kopf zentriert, Kategorie-Leiste mittig unter der Headline */
#faq{background:#fff;}
#ordination{background:#fff;}
#kontakt{background:#f9f9f9;}
#faq .leist-head{flex-direction:column;align-items:center;text-align:center;}
#faq .faq-cats{margin-top:0.868rem;justify-content:center;}
#faq .faq-list{margin-left:auto;margin-right:auto;}

/* 10 · FOOTER -------------------------------------------------------- */
.footer{position:relative;overflow:hidden;background:var(--teal-900);color:rgba(255,255,255,.72);border-top:0;padding:2.840rem 0 1.341rem;}
.footer .wrap{position:relative;z-index:2;}
.footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:1.577rem;}
.footer .brand{font-family:var(--font-serif);font-size:1.5rem;font-weight:500;color:#fff;letter-spacing:-.01em;}
.footer .brand + p{margin-top:0.552rem;font-size:14.5px;line-height:1.7;}
.footer h4{font-size:13px;text-transform:uppercase;letter-spacing:.14em;color:rgba(255,255,255,.5);margin-bottom:0.631rem;}
.footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0.394rem;font-size:14.5px;}
.footer a{color:rgba(255,255,255,.78);text-decoration:none;font-size:14.5px;}
.footer a:hover{color:#fff;}
.footer .bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:0.552rem;
  margin-top:2.130rem;padding-top:0.946rem;border-top:1px solid var(--on-teal-line);font-size:13px;color:rgba(255,255,255,.55);}
.footer .bottom .links{display:flex;gap:0.868rem;}

/* SCROLL-REVEAL ------------------------------------------------------ */
@keyframes fadeUp{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion: no-preference){
  .reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s cubic-bezier(.22,.61,.36,1);}
  .reveal.is-visible{opacity:1;transform:none;}
  .reveal.d1{transition-delay:.08s;} .reveal.d2{transition-delay:.16s;} .reveal.d3{transition-delay:.24s;}
}

/* RESPONSIVE --------------------------------------------------------- */
@media(max-width:980px){
  :root{--pad-y:72px;}
  .wrap{padding:0 24px;}
  .locband{padding:64px 0;}
  /* 2 Tabs pro Zeile = 2 Reihen; "Forschung & Auszeichnungen" darf in der Zelle umbrechen */
  .vita-tabs{display:grid;grid-template-columns:1fr 1fr;justify-items:center;gap:8px 14px;overflow:visible;margin-right:0;padding-right:0;}
  .vita-tabs button{margin-right:0;white-space:normal;text-align:center;padding:11px 6px;}
  .vita-panel.active{max-height:none;-webkit-mask-image:none;mask-image:none;padding-right:0;}
  .stats .grid{grid-template-columns:1fr;gap:0;}
  .stat{border-left:0;border-top:1px solid var(--on-teal-line);padding:22px 0;}
  .stat:first-child{border-top:0;padding-top:0;}
  .leist-head{align-items:flex-start;}
  .svc-rowhead{grid-template-columns:1fr auto;gap:10px 16px;padding:22px 12px;align-items:start;}
  .svc-rowhead .t{grid-area:1 / 1 / 2 / 3;}
  .svc-rowhead p{grid-area:2 / 1;}
  .svc-rowhead .more{grid-area:2 / 2;justify-self:end;align-self:end;}
  .svc-body{text-align:right;}
  .svc-body p{text-align:left;padding-left:14px;margin-left:0;}
  .svc-cta{margin:1rem 14px 22px 0;}

  /* FAQ-Kategorien: 2×2, alle Pillen gleich breit */
  .faq-cats{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;}
  .faq-cats button{width:100%;text-align:center;padding:11px 8px;}
  .vita{grid-template-columns:1fr;gap:40px;}
  .contact{grid-template-columns:1fr;}
  .cinfo-grid{grid-template-columns:1fr 1fr;}
  .media-row{grid-template-columns:1fr;gap:8px;}
  .media-row .go{justify-self:end;}
  .footer .cols{grid-template-columns:1fr 1fr;gap:32px;}
  .deco.big-hide{display:none;}
  /* Deko-Ringe mobil sichtbar lassen in Leistungen, Zitat, Standort, Medien, Kontakt */
  #leistungen .deco.big-hide,
  .quote-band .deco.big-hide,
  .locband .deco.big-hide,
  #medien .deco.big-hide,
  #kontakt .deco.big-hide{display:block;}
}
@media(max-width:640px){
  .leist-head{flex-direction:column;align-items:stretch;}
  .leist-head .tabs{margin-top:20px;}
  .vita .badge{margin-left:0;}
  .map{min-height:240px;}
  .quote-band{padding:84px 0;}
  .h-lg{font-size:30px;}
}
@media(max-width:560px){
  .footer .cols{grid-template-columns:1fr;}
  .cinfo-grid{grid-template-columns:1fr;}
  .tabs{width:100%;justify-content:space-between;}
  .tabs button{padding:10px 14px;}
}

/* Hero-CTAs auf Mobile zentriert (nur v2) */
@media(max-width:1024px){
  .hx-actions{justify-content:center;}
}

/* Hero: gestapeltes Layout bis 1280px (nur v2).
   Das feste 46/54-Grid + Portrait 40vw überlagert sich zwischen 1025–1280px
   (Portrait verdeckt den Telefon-Button, Headline gequetscht). Seite-an-Seite
   erst ab >1280px, wo es nachweislich sauber passt. Spiegelt die ≤1024-Regeln
   aus hero.css, damit der Übergang bei 1024 nahtlos ist. */
@media(min-width:1025px) and (max-width:1280px){
  .hx-stage{height:auto;min-height:100dvh;}
  .hx-bandsvg{display:none;}
  .hx-inner{position:static;display:flex;flex-direction:column;justify-content:center;gap:6px;
    min-height:100dvh;padding:76px clamp(22px,6vw,40px) 104px;
    background:linear-gradient(135deg,var(--teal-500) 0%,var(--teal-700) 50%,var(--teal-900) 100%);}
  .hx-pwrap{width:min(58vw,32vh,260px);margin:0 auto 20px;}
  .hx-headline{font-size:clamp(28px,6vw,42px);}
  .hx-subline{font-size:clamp(15px,2.6vw,18px);margin-top:16px;}
  .hx-actions{margin-top:24px;justify-content:center;}
  .hx-col{max-width:none;}
  .hx-deco.hx-ar-ring-lg{display:none;}
}

/* Hero >1280: voll fluide rem-Skala, gekoppelt an die fluide Root aus base.css
   (font-size:clamp(13px,0.6vw+10px,26px)). Referenz 2560px → Root 25.36px.
   Alle Maße in rem (px/25.36) → skalieren gemeinsam mit der Root, deckeln oben
   (~2667px), gehen unten proportional zurück, Abstände bleiben konstant (nur v2). */
@media(min-width:1281px){
  .hx-inner{position:absolute;inset:0;display:grid;grid-template-columns:auto auto;
    justify-content:center;align-items:center;gap:10.73rem;padding:0 2.84rem;}
  .hx-pwrap{width:22.08rem;margin-top:1.34rem;justify-self:center;}
  .hx-col{max-width:35.5rem;}
  .hx-eyebrow{font-size:0.591rem;margin:0 0 0.71rem;}
  .hx-headline{font-size:2.445rem;}
  .hx-subline{font-size:0.868rem;margin-top:0.868rem;max-width:23.66rem;}
  .hx-actions{margin-top:1.34rem;gap:0.71rem;}
  .hx-btn{font-size:0.71rem;padding:0.631rem 1.341rem;}
}

/* ===================== Mobile-Header: Burger-Menü ===================== */
.hx-burger{display:none;}
@media(max-width:768px){
  .header__inner{position:relative;}
  .hx-burger{display:flex;flex-direction:column;justify-content:center;gap:5px;
    width:42px;height:42px;border:0;background:transparent;cursor:pointer;padding:9px;color:#fff;}
  .header--scrolled .hx-burger{color:var(--teal-700);}
  .hx-burger span{display:block;height:2px;width:100%;background:currentColor;border-radius:2px;
    transition:transform .2s,opacity .2s;}
  .header.nav-open .hx-burger span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .header.nav-open .hx-burger span:nth-child(2){opacity:0;}
  .header.nav-open .hx-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

  .nav__list{position:absolute;top:100%;right:16px;min-width:280px;
    flex-direction:column;gap:6px;background:#fff;border:1px solid var(--sage-line);border-radius:16px;
    padding:14px;margin-top:14px;box-shadow:0 22px 48px -16px rgba(10,55,50,.4);display:none;}
  .header.nav-open .nav__list{display:flex;}
  .nav__list li{width:100%;}
  .header .nav__list .nav__link{display:block;padding:22px 28px;color:var(--ink);border-radius:12px;
    font-weight:600;font-size:24px;line-height:1.1;}
  .header .nav__list .nav__link:hover{background:var(--sage);color:var(--teal-700);}
}

/* ===================== Sticky "Anrufen"-CTA (mobil/Tablet) =====================
   Erscheint via JS (IntersectionObserver auf .hx-actions), sobald die Hero-CTAs
   aus dem Viewport gescrollt sind, und ab der Kontakt-Sektion abwaerts wieder versteckt.
   Style wie Hero-Kontakt-Button (solid weiss, teal Text). Label = Telefonnummer.
   Hoehe 48px = Tap-Target (iOS 44 / Android 48dp). Floatet ueber dem Home-Indicator
   via safe-area-inset-bottom (iPhone ~34px, Android ~20px Fallback); viewport-fit=cover
   ist im <head> gesetzt. Recherche: env(safe-area-inset-bottom) + max() Basisabstand. */
.sticky-call{display:none;}
@media(max-width:1024px){
  .sticky-call{
    position:fixed;left:50%;z-index:60;
    bottom:max(0.75rem, env(safe-area-inset-bottom));
    display:inline-flex;align-items:center;justify-content:center;gap:0.6rem;
    min-height:48px;padding:0 44px;
    font:inherit;font-weight:600;font-size:16px;line-height:1;white-space:nowrap;
    color:var(--teal-700);background:#fff;
    border:1px solid #fff;border-radius:999px;
    box-shadow:0 14px 30px -12px rgba(10,70,62,.6);
    text-decoration:none;
    opacity:0;pointer-events:none;
    transform:translateX(-50%) translateY(16px);
    transition:opacity .3s ease, transform .3s ease;
  }
  .sticky-call.show{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0);}
  .sticky-call svg{width:18px;height:18px;flex:none;}
}

/* ===================== Mobile-Feinschliff (Phone) ===================== */
@media(max-width:768px){
  /* FAQ-Kategorien: farbige Flaeche full-bleed bis zum Bildschirmrand statt Pille.
     Kein transform (wird von .reveal.is-visible{transform:none} ueberschrieben) -
     der zentrierte Eltern-Flex (#faq .leist-head align-items:center) zieht die
     100vw-Flaeche symmetrisch bis an beide Bildschirmraender. */
  .faq-cats{
    width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);
    border:0;border-radius:0;
    padding:16px 24px;
  }

  /* Ueber-mich Badge: "40+" + runder Hintergrund groesser fuer bessere Lesbarkeit */
  .vita .badge .dot{width:2.8rem;height:2.8rem;font-size:0.95rem;}

  /* FAQ-Kopf zentriert: .faq-cats ist jetzt symmetrisch full-bleed (margin links+
     rechts), blaeht den Flex-Container nicht mehr asymmetrisch auf -> der zentrierte
     Text-Wrapper sitzt wieder mittig. */
  #faq .eyebrow,#faq .h-md{text-align:center;margin-left:auto;margin-right:auto;}

  /* Hero: Bild etwas hoeher, gesamter Textblock ab Eyebrow etwas runter, CTAs tiefer */
  .hx-pwrap{margin-top:-10px;}
  .hx-col{margin-top:30px;}
  .hx-actions{margin-top:56px;}
}

/* ===================== Impressum/Datenschutz-Overlay ===================== */
.legal-overlay{position:fixed;inset:0;z-index:200;display:none;}
.legal-overlay.open{display:block;}
.legal-overlay__backdrop{position:absolute;inset:0;background:rgba(16,48,47,.55);
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);}
.legal-overlay__panel{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  display:flex;flex-direction:column;width:min(760px,92vw);max-height:88vh;
  background:#fff;border-radius:18px;overflow:hidden;
  box-shadow:0 40px 90px -24px rgba(10,55,50,.6);}
.legal-overlay__bar{flex:none;display:flex;justify-content:flex-end;padding:12px;
  border-bottom:1px solid var(--sage-line);}
.legal-overlay__close{width:40px;height:40px;border-radius:50%;border:1px solid var(--sage-line);
  background:#fff;color:var(--teal-700);font-size:24px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:all .18s;}
.legal-overlay__close:hover{background:var(--teal-700);color:#fff;border-color:var(--teal-700);}
.legal-overlay__content{overflow-y:auto;-webkit-overflow-scrolling:touch;}
/* Overlay-Variante der Legal-Typo: ohne die seitenfuellenden Paddings/max-width */
.legal-overlay__content .legal-main{max-width:none;margin:0;padding:8px 32px 40px;}
@media(max-width:600px){
  /* Niedrigeres Bottom-Sheet + dvh (beruecksichtigt iOS/Android URL-Leiste),
     damit der Schliessen-Button oben nie hinter der Browser-Leiste liegt.
     Frei bleibender Backdrop oben = zusaetzliches Tap-to-close. */
  .legal-overlay__panel{width:100vw;max-height:78vh;max-height:78dvh;
    border-radius:16px 16px 0 0;top:auto;bottom:0;transform:translateX(-50%);}
  .legal-overlay__content .legal-main{padding:4px 22px 32px;}
}
