:root{
  --ink:#1a1a1a; --ink-soft:#4a4a4a; --paper:#ffffff;
  --navy:#2c3968; --navy-soft:#4a5580; --navy-light:#e0e5f2;
  --mist:#edf0f7; --mist-2:#dde2ee;
  --accent:#2c3968; --accent-soft:#e0e5f2;
  --ok:#1f8a5a;
  --radius:999px; --shadow:0 10px 30px rgba(44,57,104,.08);
  --ease-out:cubic-bezier(0.23,1,0.32,1);
  --tap:44px;
  --bp-sm:640px; --bp-md:720px; --bp-lg:1024px;
  --grid-max:1440px; --grid-margin:40px; --grid-gutter:24px;
  --col:calc((var(--grid-max) - 2*var(--grid-margin) - 11*var(--grid-gutter)) / 12);
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0;overflow-x:hidden}
html{scroll-behavior:smooth;scroll-padding-top:120px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-family:"Jost","Futura","Helvetica Neue",Arial,sans-serif;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.55;-webkit-text-size-adjust:100%;text-size-adjust:100%}
/* iOS: weder System-Schriftgrösse noch WebKit-Auto-Boost dürfen die Grössen
   verändern — explizit auf grossen Texten + Buttons fixieren (Head/Buttons). */
.hero h1,.hero h1 .hero-subtitle,.leistungen-title,.block h2,.page-title,
.cta-fab,.cta-fab .cta-text,.notfall-btn,.notfall-btn--text,.phone-btn,
.v3-menu-nav a,.v3-lang-opt,.rail a{-webkit-text-size-adjust:100%;text-size-adjust:100%}
a{color:inherit;text-decoration:none}
b,strong{color:var(--navy)}
b a,strong a{color:var(--navy)}
img{max-width:100%;display:block}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}

/* Globaler Fokus-Indikator — für Tastatur/SR sichtbar, nicht bei Maus-Klick */
/* Browser die :focus-visible supporten: entfernen Klick-Outline */
:focus:not(:focus-visible){outline:none}
:focus-visible{outline:3px solid var(--navy);outline-offset:3px;border-radius:4px}
/* Pillen-artige Elemente: Offset grösser, Radius matching */
.pill:focus-visible,
.cta-fab:focus-visible,
.cta-fab--inline:focus-visible,
.switch button:focus-visible,
.contact a.tel:focus-visible,
.notfall-card a[href^="tel:"]:focus-visible{outline-offset:4px;border-radius:var(--radius)}
.rail a:focus-visible{outline-offset:2px;border-radius:2px}
.close-btn:focus-visible{outline-offset:2px;border-radius:50%}
.skip-link:focus,.skip-link:focus-visible{outline:3px solid #fff;outline-offset:2px}

/* Skip to content — sichtbar nur bei Tastatur-Fokus */
.skip-link{position:absolute;left:12px;top:-100px;z-index:1000;background:var(--navy);color:#fff;padding:12px 18px;border-radius:8px;font-weight:600;font-size:14px;transition:top 160ms var(--ease-out)}
.skip-link:focus{top:12px;outline:3px solid #fff;outline-offset:2px}

/* Screen-Reader-only (visuell versteckt, für SR lesbar) */
.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}
.sr-only a:focus{position:static;width:auto;height:auto;clip:auto;white-space:normal}

/* === TOPBAR === */
.topbar{position:relative;top:0;left:0;right:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:saturate(1.2) blur(10px);border-bottom:none;overflow:visible}
.topbar-inner{max-width:var(--grid-max);margin:0 auto;display:grid;grid-template-columns:auto 1fr auto;gap:var(--grid-gutter);align-items:start;padding:18px var(--grid-margin);position:relative;min-height:150px;overflow:visible}

/* Logo */
.logo{position:fixed;left:50%;top:10px;transform:translateX(-50%);z-index:51;display:flex;align-items:center;overflow:visible}
.logo-img{height:130px;width:auto;display:block}

/* Notfall-Pflaster */
.notfall-btn{position:fixed;left:var(--grid-margin);top:22px;z-index:51;display:flex;align-items:center;background:none;border:none;cursor:pointer;padding:4px}
.notfall-img{width:113px;height:113px;transition:transform .2s}
.notfall-btn:hover .notfall-img{transform:scale(1.08)}

/* Topbar actions */
.topbar-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}

/* Pills */
.pill{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;min-height:var(--tap);border-radius:var(--radius);border:3px solid var(--mist-2);background:#fff;font-size:14px;font-weight:500;color:var(--navy);transition:transform .15s, background .15s, border-color .15s}
.pill:hover{border-color:var(--navy);transform:translateY(-1px)}
.pill.primary{background:var(--navy);color:#fff;border-color:var(--navy)}
.pill.primary:hover{background:#1e2b55}

/* Phone button */
.phone-btn{position:fixed;right:var(--grid-margin);top:58px;z-index:51;display:inline-flex;flex-direction:column;align-items:flex-start;padding:4px 0;border-radius:0;border:none;background:none;font-size:13px;color:var(--navy);gap:0;line-height:1.2}
.phone-btn b{font-size:22px;display:flex;align-items:center;gap:8px;font-weight:700;letter-spacing:.01em}
.phone-btn small{color:var(--navy-soft);font-size:19px;font-style:normal;font-weight:500;padding-left:35px}
.phone-icon{width:24px;height:24px;flex-shrink:0}
.phone-cta{display:none} /* "Anrufen"-Label, nur im v4-Mobile-Button sichtbar */

/* === LAYOUT === */
.shell{max-width:var(--grid-max);margin:0 auto;position:relative;padding:24px calc(2*(var(--col) + var(--grid-gutter)) + var(--grid-margin)) 160px calc(2*(var(--col) + var(--grid-gutter)) + var(--grid-margin))}

/* Nav Rail */
.rail{position:fixed;bottom:170px;left:var(--grid-margin);display:flex;flex-direction:column;gap:16px;font-size:19px;line-height:1.15;padding:14px 18px 14px 4px;z-index:40;width:calc(2*var(--col) + var(--grid-gutter))}
.rail a{color:var(--navy-soft);display:block;width:fit-content;font-weight:500;text-decoration:none;position:relative;padding-bottom:4px;transition:color .2s}
.rail a::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:10px;background:var(--navy-soft);transition:width .3s, background .3s}
.rail a:hover::after,.rail a.is-active::after{width:100%;background:var(--navy)}
.rail a.is-active{color:var(--navy)}
.rail a .nb-hy{display:none}

/* CTA / Termin Button */
.cta-fab{position:fixed;right:calc(var(--grid-margin) + 24px);bottom:24px;z-index:9000;display:inline-flex;align-items:center;white-space:nowrap;padding:8px 37px 8px 18px;border-radius:var(--radius);background:var(--navy);color:#fff;font-size:23px;font-weight:700;box-shadow:var(--shadow);border:4px solid #acabc7;transition:transform .2s, background .2s, border-color .2s}
.cta-fab:hover{background:#1e2b55;border-color:#fff;transform:translateY(-2px)}
.cta-fab .cta-icon{position:absolute;right:-24px;top:-30px;width:56px;height:56px;background:var(--navy);border:4px solid #acabc7;border-radius:50%;display:flex;align-items:center;justify-content:center}
.cta-fab .cta-icon svg{width:32px;height:32px}
/* Kalendersymbol negativ: Farben invertieren (navy↔weiss) für den blauen Kreis */
.cta-fab .cta-icon svg [fill="#2c3968"]{fill:#fff}
.cta-fab .cta-icon svg [fill="#fff"]{fill:var(--navy)}

/* Inline-Variante: im Modal/Termin-Overlay zentriert, ohne Kalender-Icon */
.cta-fab--inline{position:static;right:auto;bottom:auto;display:flex;width:fit-content;margin:16px auto 8px;padding:8px 24px}
.cta-fab--inline:hover{transform:none;background:#1e2b55;border-color:#fff}
#kontakt .card > .cta-fab--inline{margin-left:0;margin-right:auto;transform:none}
#kontakt .card > .cta-fab--inline:hover{transform:none}
.cta-fab--left{margin:4px 0 14px}

/* === HERO === */
.hero{text-align:center;padding:122px 0 40px;position:relative}
.hero h1{font-size:clamp(32px,6vw,56px);line-height:1.05;letter-spacing:-.01em;margin:-50px 0 28px;font-weight:700;color:var(--navy)}
.hero-zeichnung{position:absolute;top:54%;left:calc(62% + 80px);transform:translate(-50%,-50%);width:clamp(120px,14vw,180px);height:auto;pointer-events:none;transition:opacity 200ms var(--ease-out);z-index:0}
body[data-mode="erwachsene"] .hero-zeichnung{opacity:0;visibility:hidden}
body[data-mode="kinder"] .hero-zeichnung{opacity:1;visibility:visible}
.neugeborene-head{display:flex;align-items:flex-start;gap:32px;flex-wrap:wrap}
.neugeborene-head .leistungen-title{flex:1 1 auto;margin:0}
.neugeborene-zeichnung{width:clamp(120px,16vw,200px);height:auto;flex:0 0 auto;margin-top:-12px}
@media(max-width:640px){
  .neugeborene-head{flex-direction:column;align-items:flex-start;gap:16px}
  .neugeborene-zeichnung{width:120px;order:-1;margin-top:0}
  .hero-zeichnung{width:112px;top:42%}
}
.switch-wrap{display:inline-flex;flex-direction:column;align-items:stretch;margin-top:90px}
.switch-label{color:var(--navy);font-size:23px;margin-bottom:4px;font-weight:700;padding-top:10px;text-align:left;padding-left:calc(50% - 6px);transition:padding-left 280ms cubic-bezier(.2,.9,.2,1)}

/* Toggle / Switch — Pill shape */
.switch{display:inline-flex;background:#acabc7;padding:4px;border-radius:var(--radius);position:relative;border:none;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.switch button{padding:10px 22px;min-height:var(--tap);border-radius:var(--radius);font-weight:700;color:#fff;font-size:23px;transition:color .2s;position:relative;z-index:2;background:transparent;box-shadow:none;cursor:pointer}
.switch button[aria-pressed="true"]{color:var(--navy)}
/* Hint-Animation: Farben tauschen, damit der Text auf dem Thumb lesbar bleibt */
.switch.is-hinting button[aria-pressed="true"]{color:#fff}
.switch.is-hinting button[aria-pressed="false"]{color:var(--navy)}
.switch-thumb{display:block;position:absolute;top:4px;bottom:4px;left:4px;border-radius:var(--radius);background:#fff;transition:transform 280ms cubic-bezier(.2,.9,.2,1);z-index:1;pointer-events:none;will-change:transform}

/* === SECTIONS === */
section{scroll-margin-top:120px}
.block{padding:64px 0;border-top:none}
#neugeborene p{margin:0 0 18px;color:var(--ink-soft);font-size:19px}
#praxis .only-erw p,#praxis .only-kind p{margin:0 0 18px;color:var(--ink-soft);font-size:19px;line-height:1.45;font-weight:400}
.block h2{font-size:clamp(22px,3.2vw,32px);font-weight:700;margin:0 0 28px;letter-spacing:-.01em;color:var(--navy)}
.block .eyebrow{color:var(--navy);font-size:23px;margin-bottom:6px;font-weight:700}
.grid{display:grid;gap:24px}
@media (min-width:720px){.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}}

/* News cards */
.news-card{padding:0}
.news-card .img{aspect-ratio:4/3;background:linear-gradient(135deg,#cfd9ea,#e9eef5);border-radius:10px;margin-bottom:18px;display:flex;align-items:center;justify-content:center;color:var(--ink-soft);font-size:12px;overflow:hidden}
.news-card .img--placeholder{padding:0;background:none}
.news-card .img--placeholder img{width:100%;height:100%;object-fit:cover;border-radius:10px;display:block}
.news-card h3{font-size:19px;margin:0 0 8px;font-weight:700;color:var(--navy)}
.news-card p{margin:0;color:var(--ink-soft);font-size:19px}
.news-card .when{font-size:19px;color:var(--ink-soft);margin-bottom:6px}
.news-excerpt{color:var(--ink-soft);font-size:19px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;margin:0 0 12px}
.news-readmore{display:inline-block;color:var(--navy);font-weight:700;text-decoration:none;position:relative;padding-bottom:4px;font-size:17px}
.news-readmore::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--navy);transition:width .3s}
.news-readmore:hover::after{width:100%}

/* Archive: full content, single column with reading width */
.news-archive{display:flex;flex-direction:column;gap:64px;margin-bottom:40px}
.news-archive .news-card{max-width:760px}
.news-archive .news-card .img{max-width:480px;margin-bottom:24px}
.news-fulltext{color:var(--ink);font-size:19px;line-height:1.55}
.news-fulltext p{margin:0 0 14px;color:var(--ink-soft)}
.news-fulltext p:last-child{margin-bottom:0}
.news-fulltext b,.news-fulltext strong{color:var(--navy)}
.news-archive-link{margin-top:32px;font-size:19px}
.news-archive-link a{color:var(--navy);font-weight:700;text-decoration:none;position:relative;padding-bottom:4px;display:inline-block}
.news-archive-link a::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--navy);transition:width .3s}
.news-archive-link a:hover::after{width:100%}
.news-archive-btn{display:flex;width:fit-content;margin:40px auto 0!important}
.news-archive{margin-bottom:40px}
.news-archive-pagination ul{list-style:none;padding:0;display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:24px 0}
.news-archive-pagination li a,.news-archive-pagination li span{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 14px;border:3px solid var(--mist-2);border-radius:999px;color:var(--navy);font-weight:700;text-decoration:none}
.news-archive-pagination li a:hover{border-color:var(--navy)}
.news-archive-pagination li .current{background:var(--navy);color:#fff;border-color:var(--navy)}

/* Praxis hero */
.praxis-hero{aspect-ratio:16/10;border-radius:14px;margin-bottom:28px;overflow:hidden;background:var(--mist);position:relative}
.praxis-hero img{width:100%;height:100%;object-fit:cover;display:block}
.praxis-slider__img{position:absolute;inset:0;opacity:0;transition:opacity 1s ease-in-out;will-change:opacity}
.praxis-slider__img.is-active{opacity:1}
@media (prefers-reduced-motion:reduce){.praxis-slider__img{transition:none}}
.lede{font-size:19px;line-height:1.45;font-weight:400;color:var(--ink-soft);margin:0 0 18px}
.bullets{margin:16px 0 24px;padding-left:18px;color:var(--ink-soft);font-size:15px}
.bullets li{margin-bottom:6px}

/* Section-Titel (einheitlich: praxis, aktuelles, team, kontakt) */
.block .leistungen-title,
.block h2.leistungen-title,
#aktuelles h2.leistungen-title,
#neugeborene h2.leistungen-title{font-size:28px;font-weight:700;color:var(--navy);line-height:1.35;margin:0 0 18px;letter-spacing:0}
.leistungen{display:grid;gap:18px;margin-top:46px}
@media (min-width:720px){.leistungen{grid-template-columns:repeat(3,1fr)}}
.leistung{padding:14px 16px;border-radius:12px;background:transparent;border:none;transition:background-color 180ms var(--ease-out)}
.leistung[open],.leistung:hover{background-color:var(--mist)}
.leistung > summary{list-style:none;cursor:pointer;outline:none}
.leistung > summary::-webkit-details-marker{display:none}
.leistung-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.leistung b{font-size:19px;color:var(--navy);line-height:1.3}
.leistung-chevron{flex:0 0 auto;width:16px;height:16px;position:relative;transition:transform 200ms var(--ease-out)}
.leistung-chevron::before{content:"";position:absolute;left:2px;top:4px;width:9px;height:9px;border-right:2px solid var(--navy);border-bottom:2px solid var(--navy);transform:rotate(45deg);transition:transform 200ms var(--ease-out)}
.leistung[open] .leistung-chevron{transform:rotate(180deg)}
.leistung-short{margin:4px 0 0;color:var(--ink-soft);font-size:19px;line-height:1.4}
.leistung-mehr{margin-top:10px;padding-top:10px;border-top:1px solid var(--mist-2)}
.leistung-mehr p{margin:0;color:var(--ink-soft);font-size:19px;line-height:1.5}
.leistung > summary:focus-visible{box-shadow:0 0 0 3px var(--navy-light);border-radius:8px}

/* Team */
.team-scroll{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);gap:18px;overflow-x:auto;padding:8px 2px 24px;scroll-snap-type:x mandatory}
@media (min-width:720px){.team-scroll{grid-auto-columns:minmax(0,1fr);grid-auto-flow:row;grid-template-columns:repeat(2,1fr);gap:24px;overflow:visible}}
@media (min-width:1024px){.team-scroll{grid-template-columns:repeat(3,1fr)}}
.person{scroll-snap-align:start;padding:0}
.person .portrait{aspect-ratio:1;border-radius:10px;margin-bottom:14px;display:flex;align-items:center;justify-content:center;color:var(--ink-soft);font-size:11px;overflow:hidden;transition:transform 220ms var(--ease-out),box-shadow 220ms var(--ease-out)}
.person .portrait img{object-position:center top!important;transition:transform 600ms var(--ease-out)}
.person b{font-size:19px;font-weight:700;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:calc(19px*1.35*2);color:var(--navy);line-height:1.35;overflow:hidden}
.person span:first-of-type{margin-top:calc(19px*1.4*0.5)}
.person span{color:var(--ink-soft);font-size:19px;display:block;line-height:1.4}
@media (hover:hover) and (pointer:fine){
  .person:hover .portrait{transform:translateY(-2px);box-shadow:0 8px 28px -12px rgba(44,57,104,.18)}
  .person:hover .portrait img{transform:scale(1.03)}
}
@media (prefers-reduced-motion:reduce){
  .person .portrait,.person .portrait img{transition:none}
  .person:hover .portrait{transform:none;box-shadow:none}
  .person:hover .portrait img{transform:none}
}

/* Contact */
.contact{display:grid;grid-template-columns:repeat(6,1fr);grid-template-areas:"card card card adresse adresse adresse" "card card card map map map";grid-template-rows:auto 1fr;gap:24px;align-items:start}
.contact .card{grid-area:card;padding:0}
.contact > .contact-adresse{grid-area:adresse;align-self:start}
.contact-map{grid-area:map;align-self:end}
.contact h3{font-size:19px;margin:0 0 10px;color:var(--navy)}
.contact-email{margin-top:24px!important}
.contact-feedback-intro{margin-top:24px!important}
.contact-adresse{margin-top:0!important}
.contact-hours{display:grid;grid-template-columns:1fr;gap:24px;margin-bottom:18px}
.contact-hours p{margin:0}
@media(max-width:900px){
  .contact{grid-template-columns:1fr;grid-template-areas:"card" "adresse" "map"}
}
.contact h3.contact-plain{color:var(--ink);font-weight:400;font-size:19px}
.contact p{margin:0 0 10px;font-size:19px;color:var(--ink-soft)}
.contact b{color:var(--ink)}
.contact a.tel{display:inline-flex;align-items:center;gap:8px;padding:12px 18px;min-height:var(--tap);border-radius:var(--radius);background:#fff;border:3px solid var(--navy);font-weight:600;color:var(--navy);margin:4px 0 14px}

/* Map placeholder */
.map{aspect-ratio:16/10;border-radius:14px;overflow:hidden;position:relative;border:1px solid var(--mist-2);background:var(--mist)}
.map iframe,.map .leaflet-container{width:100%;height:100%;border:0;display:block;background:#fff;font-family:"Jost",sans-serif}
/* CARTO Positron Tiles bereits dezent — Navy-Tint für Wege/Straßen */
.map .leaflet-tile{filter:saturate(0) contrast(1.02)}
.map .leaflet-control-attribution{background:rgba(255,255,255,.8);color:var(--ink-soft);font-size:10px}
.map .leaflet-control-attribution a{color:var(--navy)}
.azk-pin{width:22px;height:22px;border-radius:50%;background:var(--navy);box-shadow:0 0 0 6px rgba(44,57,104,.2);border:3px solid #fff}

/* Footer */
.site-footer{border-top:none;margin-top:80px;padding:28px 0 120px;text-align:center;font-size:14px;color:var(--ink-soft)}
.site-footer nav{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;margin-bottom:10px}

/* Seitentitel (Impressum, Datenschutz …) — Navy wie die anderen Titel */
.shell > article > h1{color:var(--navy);font-size:clamp(28px,4vw,40px);margin:0 0 32px;letter-spacing:-.01em;font-weight:700}
.shell > article h2,
.shell > article h2.wp-block-heading{color:var(--navy);font-size:22px;font-weight:700;line-height:1.3;margin:44px 0 8px;letter-spacing:-.005em}
.shell > article h3{color:var(--navy);font-size:18px;font-weight:700;line-height:1.35;margin:32px 0 6px}
.shell > article p{margin:0 0 12px;line-height:1.55}
.shell > article ul,.shell > article ol{margin:0 0 12px;padding-left:22px;line-height:1.55}
.shell > article li{margin-bottom:4px}

/* Inner pages (page.php, Feedback) */
.page-inner{max-width:760px;margin:40px 0 80px}
.page-title{color:var(--navy);font-size:clamp(28px,4vw,40px);font-weight:700;margin:0 0 24px;letter-spacing:-.01em}
.page-content{font-size:19px;line-height:1.55;color:var(--ink);margin-bottom:32px}
.page-content p{margin:0 0 14px}
.page-content a{color:var(--navy);text-decoration:underline}
.page-content h2{color:var(--navy);font-size:23px;font-weight:700;line-height:1.3;margin:48px 0 12px}
.page-content h3{color:var(--navy);font-size:19px;font-weight:700;line-height:1.35;margin:36px 0 10px}
.page-content h4{color:var(--navy);font-size:19px;font-weight:700;line-height:1.35;margin:28px 0 8px}
.page-content > :first-child{margin-top:0}

/* Feedback form */
.page-inner--wide{max-width:880px}
.page-intro{font-size:19px;line-height:1.55;color:var(--ink);margin:0 0 32px}
.feedback-form{display:flex;flex-direction:column;gap:32px;max-width:780px;margin-top:24px}
.feedback-form--survey .q{border:none;padding:0;margin:0}
.feedback-form--survey legend{font-size:19px;font-weight:700;color:var(--navy);margin-bottom:14px;line-height:1.4;padding:0}
.feedback-field{display:flex;flex-direction:column;gap:8px}
.feedback-field > span{font-size:19px;color:var(--navy);font-weight:700;line-height:1.4}
.feedback-field input,.feedback-field textarea{border:3px solid var(--mist-2);background:#fff;border-radius:12px;padding:10px 16px;font:inherit;color:var(--ink);min-height:var(--tap);transition:border-color 160ms var(--ease-out)}
.feedback-field input[type="date"]{max-width:220px}
.feedback-field textarea{min-height:160px;resize:vertical;border-radius:18px;line-height:1.5}
.feedback-field input:focus,.feedback-field textarea:focus{outline:none;border-color:var(--navy)}
.feedback-honey{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;overflow:hidden}
.feedback-submit{margin:8px 0 0}
.feedback-success{background:var(--mist);border:3px solid var(--navy-light);border-radius:14px;padding:20px 24px;font-size:19px;color:var(--navy)}
.feedback-success p{margin:0 0 6px}
.feedback-success p:last-child{margin:0}
.feedback-error{background:#fde7e9;border:2px solid #b00020;color:#b00020;border-radius:10px;padding:12px 16px;font-size:16px;margin:0 0 16px}

/* Rating scales */
.scale-row{display:flex;align-items:center;gap:16px;flex-wrap:nowrap}
.scale-label{font-size:15px;color:var(--ink-soft);white-space:nowrap}
.scale-options{display:flex;gap:6px;flex-wrap:nowrap}
.scale-opt{display:inline-block;cursor:pointer}
.scale-opt input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.scale-pill{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 10px;border:3px solid var(--mist-2);border-radius:999px;background:#fff;font-size:17px;font-weight:700;color:var(--navy);transition:background 160ms var(--ease-out),border-color 160ms var(--ease-out),color 160ms var(--ease-out),transform 120ms var(--ease-out)}
.scale-opt:hover .scale-pill{border-color:var(--navy)}
.scale-opt input:focus-visible + .scale-pill{outline:3px solid var(--navy);outline-offset:2px}
.scale-opt input:checked + .scale-pill{background:var(--navy);border-color:var(--navy);color:#fff}
.scale-opt input:active + .scale-pill{transform:scale(.96)}

/* Doctor choice list */
.q-doctors .choices{display:flex;flex-direction:column;gap:10px}
.choice{display:flex;align-items:center;gap:12px;cursor:pointer;font-size:19px;color:var(--ink);padding:10px 14px;border:3px solid var(--mist-2);border-radius:12px;background:#fff;transition:border-color 160ms var(--ease-out),background 160ms var(--ease-out)}
.choice:hover{border-color:var(--navy-soft)}
.choice input{accent-color:var(--navy);width:20px;height:20px}
.choice input:checked ~ span{color:var(--navy);font-weight:700}
.choice:has(input:checked){border-color:var(--navy);background:var(--mist)}

@media(max-width:900px){
  .scale-row{flex-wrap:wrap}
  .scale-options{flex-wrap:wrap}
}
@media(max-width:640px){
  .scale-label{font-size:13px}
  .scale-pill{min-width:38px;height:38px;font-size:15px}
  .feedback-form--survey legend,.feedback-field > span{font-size:17px}
}

/* === MODALS === */
.modal,.notfall-panel{position:fixed;inset:0;z-index:9100;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(44,57,104,.45);opacity:0;visibility:hidden;transition:opacity 200ms var(--ease-out),visibility 200ms var(--ease-out),background 200ms var(--ease-out)}
.modal.open,.notfall-panel.open{opacity:1;visibility:visible}
body.has-modal-open .cta-fab:not(.cta-fab--inline){display:none}
.notfall-panel{z-index:90;background:rgba(44,57,104,.5);align-items:center;padding:18px}

.modal-panel{position:relative;background:#fff;width:min(560px,96vw);border-radius:22px;padding:28px 22px;max-height:88vh;overflow:auto;box-shadow:var(--shadow);transform:translateY(20px) scale(.98);transition:transform 240ms var(--ease-out),opacity 200ms var(--ease-out);opacity:0}
.modal--wide .modal-panel{width:min(1024px,96vw);padding:20px 16px}
.modal--wide .od-widget{margin-top:8px}
.modal.open .modal-panel{transform:none;opacity:1}
.modal:not(.open) .modal-panel{transition:transform 150ms var(--ease-out),opacity 120ms var(--ease-out)}

.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.modal-head h3{margin:0;font-size:22px;color:var(--navy);padding-right:52px}
.modal-panel .pill{font-size:16px}
.close-btn{width:var(--tap);height:var(--tap);border-radius:50%;background:var(--mist);display:flex;align-items:center;justify-content:center;font-size:18px;transition:background 160ms var(--ease-out),transform 120ms var(--ease-out)}
.close-btn:hover{background:var(--mist-2)}
.close-btn:active{transform:scale(.94)}
/* Close-Button immer oben rechts in der Ecke des Panels — unabhängig von der Header-Höhe */
.modal-panel .modal-head .close-btn,
.notfall-card .modal-head .close-btn{position:absolute;top:14px;right:14px}

/* Notfall Panel */
.notfall-card{position:relative;background:#fff;max-width:560px;width:100%;border-radius:22px;padding:24px;font-size:18px;transform:translateY(20px) scale(.98);opacity:0;transition:transform 240ms var(--ease-out),opacity 200ms var(--ease-out)}
.notfall-card .modal-head h3{font-size:22px}
.notfall-panel.open .notfall-card{transform:none;opacity:1}
.notfall-panel:not(.open) .notfall-card{transition:transform 150ms var(--ease-out),opacity 120ms var(--ease-out)}
.notfall-card h3{margin:0 0 8px;color:var(--navy)}
.notfall-card .nf-grid{display:grid;grid-template-columns:max-content auto;column-gap:56px;row-gap:10px;align-items:baseline;margin:12px 0}
.notfall-card .nf-label--urgent{line-height:1.4}
.notfall-card .nf-grid > a.tel{align-self:end;padding-top:2px}
.notfall-card a[href^="tel:"]{color:var(--navy);font-weight:700}
.notfall-card a[href^="tel:"] .phone-icon{width:18px;height:18px;vertical-align:-4px;margin-right:4px}
@media(max-width:640px){
  .notfall-card .nf-grid{grid-template-columns:1fr;column-gap:0;row-gap:4px}
  .notfall-card .nf-grid > a{margin-bottom:8px}
  .notfall-card .nf-grid > a.tel{padding-top:0}
}

@media (prefers-reduced-motion:reduce){
  .modal,.modal-panel,.notfall-panel,.notfall-card,.close-btn{transition:opacity 160ms ease,visibility 160ms ease !important;transform:none !important}
  .modal:not(.open) .modal-panel,.notfall-panel:not(.open) .notfall-card{transform:none !important}
}

/* Mode switching */
body[data-mode="kinder"] .only-erw,
body[data-mode="erwachsene"] .only-kind{display:none}
body[data-mode="kinder"] .switch-label{padding-left:24px}

/* === GRID OVERLAY (toggle with G key) === */
.grid-overlay{position:fixed;inset:0;z-index:9999;pointer-events:none;display:none;justify-content:center}
.grid-overlay.visible{display:flex}
.grid-overlay-inner{width:1440px;max-width:100%;padding:0 40px;display:grid;grid-template-columns:repeat(12,1fr);gap:24px;height:100%}
.grid-overlay-inner div{background:rgba(44,57,104,.07);border-left:1px solid rgba(44,57,104,.15);border-right:1px solid rgba(44,57,104,.15);height:100%}
.grid-overlay-labels{position:fixed;top:4px;left:50%;transform:translateX(-50%);width:1440px;max-width:100%;padding:0 40px;display:none;grid-template-columns:repeat(12,1fr);gap:24px;z-index:10000;pointer-events:none}
.grid-overlay.visible~.grid-overlay-labels{display:grid}
.grid-overlay-labels span{font-size:10px;color:rgba(44,57,104,.5);text-align:center}

/* === RESPONSIVE === */
@media(max-width:1100px){
  .shell{padding:24px 40px 160px 220px}
}
@media(max-width:640px){
  :root{--grid-margin:12px}

  /* Topbar — Notfall + Telefon oben, Logo mittig darunter */
  .topbar-inner{padding:10px var(--grid-margin);min-height:260px}
  .notfall-btn{top:12px;left:var(--grid-margin);padding:0}
  .notfall-img{width:112px;height:112px}
  .phone-btn{top:45px;right:var(--grid-margin)}
  .phone-btn b{font-size:21px;gap:6px}
  .phone-btn small{font-size:17px;padding-left:28px}
  .phone-icon{width:22px;height:22px}
  .logo{top:160px}
  .logo-img{height:112px}

  /* Rail: zuerst links unten, scrollt zur vertikalen Mitte und bleibt dort sticky */
  .rail{display:flex;width:auto;left:12px;right:auto;bottom:auto;top:calc(100vh - 240px);transform:none;gap:14px;font-size:18px;padding:0;background:transparent;backdrop-filter:none;transition:top 420ms cubic-bezier(0.23,1,0.32,1),transform 420ms cubic-bezier(0.23,1,0.32,1)}
  .rail.is-stuck{top:50%;transform:translateY(-50%)}
  /* Neugeborene bricht auf Mobile nach "Neu-" um */
  .rail a .nb-hy{display:inline}
  .rail a .nb-hy::after{content:"\A";white-space:pre}
  .rail a{padding:0 0 3px 0}
  .rail a::after{left:0}

  /* Content rechts neben Rail — nie darunter */
  .shell{padding:100px 12px 180px 100px}
  /* Hero bricht aus Shell-Padding aus und zentriert sich in der Viewport-Mitte */
  .hero{left:0;padding:8px 12px 20px;text-align:center;margin-left:-88px;margin-right:-12px}
  .hero h1{margin:0 0 16px;font-size:clamp(22px,6vw,30px)}
  /* Switch komplett zentriert (Label mittig über Switch) */
  .switch-wrap{display:flex;flex-direction:column;align-items:center;width:fit-content;margin:24px auto 0}
  .switch-label{padding-left:0;text-align:center;font-size:18px;transition:none}
  body[data-mode="kinder"] .switch-label{padding-left:0}
  body[data-mode="erwachsene"] .switch-label{padding-left:0}
  .switch button{font-size:18px;padding:7px 12px}

  /* Blocks — weniger Abstand */
  .block{padding:36px 0}
  .block .leistungen-title,
  .block h2.leistungen-title,
  #aktuelles h2.leistungen-title,
  #neugeborene h2.leistungen-title{font-size:20px;margin:0 0 14px}
  .person b{font-size:19px}
  .person span{font-size:19px}
  .news-card h3{font-size:19px}
  .news-card p{font-size:19px}
  .news-card .when{font-size:15px}
  .contact p,.contact-hours p{font-size:19px}
  .lede,#neugeborene p{font-size:19px}
  #praxis .only-erw p,#praxis .only-kind p{font-size:19px}
  .news-fulltext,.news-fulltext p{font-size:19px}
  .news-excerpt{font-size:19px}
  .leistung-short,.leistung-mehr p{font-size:19px}
  .leistungen-title br{display:inline}
  .leistungen-title br::after{content:" "}

  /* Team, News, Leistungen: 1 Spalte */
  .team-scroll{grid-auto-flow:column;grid-template-columns:unset;grid-auto-columns:80%;overflow-x:auto}
  .grid.grid-2{grid-template-columns:1fr}
  .leistungen{grid-template-columns:1fr}
  #neugeborene p{max-width:none}
  #praxis .only-erw p,#praxis .only-kind p{max-width:none}

  /* Kontakt-Stunden: untereinander */
  .contact-hours{grid-template-columns:1fr}
  .map{aspect-ratio:1/1}

  /* CTA-Fab: zentriert unten, kompakt */
  .cta-fab{right:16px;left:auto;transform:none;bottom:14px;padding:10px 20px;font-size:18px;border-width:3px}
  .cta-fab .cta-icon{width:44px;height:44px;right:-14px;top:-18px;border-width:3px}
  .cta-fab .cta-icon svg{width:24px;height:24px}
  .cta-fab:hover{transform:none}

  /* Inline-CTA (Termin-Modal, Kontakt-Telefon): nicht vom Fixed-Style übernehmen */
  .cta-fab--inline{transform:none;font-size:18px;padding:10px 20px}
  .cta-fab--inline:hover{transform:none}
}
