/* 12.08.2026: Die Regeln fuer Grundgeruest, Navigation, Sektionen und
   Fussbereich wurden entfernt. Sie stammten aus der Vollkopie der
   Startseite und ueberschrieben standort.css, weil diese Datei zuletzt
   geladen wird. Sichtbare Folgen waren: der Pfad klebte als zweite
   feste Leiste ueber dem Menue, und jede Sektion trug 140px Leerraum
   unter sich. Diese Datei liefert ab jetzt nur noch den Notfallblock. */












  
  
  
  

  /* AMBIENT */
  .ambient-bg { position: fixed; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; }
  .ambient-orb {
    position: absolute; border-radius: 50%;
    filter: blur(80px); opacity: 0.35; will-change: transform;
  }
  .ambient-orb.one { width: 600px; height: 600px; background: var(--sage-pale); top: -10%; left: -15%; animation: drift1 28s ease-in-out infinite; }
  .ambient-orb.two { width: 500px; height: 500px; background: var(--gold-soft); top: 40%; right: -10%; opacity: 0.2; animation: drift2 34s ease-in-out infinite; }
  .ambient-orb.three { width: 450px; height: 450px; background: var(--sage-mist); bottom: -10%; left: 30%; animation: drift3 40s ease-in-out infinite; }
  @keyframes drift1 { 0%,100%{transform:translate(0,0) scale(1);} 50%{transform:translate(40px,60px) scale(1.08);} }
  @keyframes drift2 { 0%,100%{transform:translate(0,0) scale(1);} 50%{transform:translate(-50px,40px) scale(0.95);} }
  @keyframes drift3 { 0%,100%{transform:translate(0,0) scale(1);} 50%{transform:translate(60px,-50px) scale(1.05);} }

  /* CURSOR GLOW */
  .cursor-glow {
    position: fixed; width: 500px; height: 500px; border-radius: 50%;
    background: radial-gradient(circle, rgba(122,149,130,0.18) 0%, transparent 65%);
    pointer-events: none; z-index: 1;
    transform: translate(-50%,-50%);
    transition: opacity 0.6s var(--ease);
    opacity: 0; mix-blend-mode: multiply;
  }
  @media (hover: hover) and (pointer: fine) { .cursor-glow.active { opacity: 1; } }

  /* FLOATING NOTFALL BADGE 116 117 */
  .floating-emergency {
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: 95;
    background: var(--white);
    border-radius: 18px;
    padding: 14px 18px;
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    color: var(--ink);
    box-shadow:
      0 0 0 1px rgba(0,0,0,0.06),
      0 18px 40px rgba(0,0,0,0.18),
      0 0 0 3px rgba(199, 42, 42, 0.0);
    transition: all 0.6s var(--ease);
    cursor: pointer;
    border: 1px solid var(--line);
    max-width: 280px;
  }
  /* NEU 2.4: dezente, sichtbare Reaktion wenn der angezeigte Standort geschlossen ist. */
  .floating-emergency.is-praxis-closed {
    border-color: rgba(199, 42, 42, 0.55);
    box-shadow:
      0 0 0 1px rgba(199, 42, 42, 0.18),
      0 18px 40px rgba(0,0,0,0.18),
      0 0 0 4px rgba(199, 42, 42, 0.35);
  }
  /* NEU 2.7: dezenter Hinweisbanner (Ankuendigung/aktiv). */
  .praxis-meldung-banner {
    position: fixed;
    left: 50%;
    transform: translateX(-50%);
    top: 84px;
    max-width: 560px;
    width: calc(100% - 32px);
    background: var(--white, #fff);
    border: 1px solid var(--line, rgba(42,74,56,0.14));
    border-radius: 14px;
    box-shadow: 0 12px 34px rgba(0,0,0,0.14);
    padding: 12px 18px;
    font-size: 13px;
    line-height: 1.45;
    color: var(--ink, #18302A);
    z-index: 93;
  }
  .praxis-meldung-banner[hidden] { display: none; }
  .praxis-meldung-banner[data-phase="aktiv"] { border-color: rgba(199, 42, 42, 0.40); }
  .praxis-meldung-zeile + .praxis-meldung-zeile { margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--line, rgba(42,74,56,0.14)); }
  /* NEU 15.2: Patienten-Overlay (Notapotheke-Stil). Notfall liegt NIE im Bild (CON 0481). */
  .pm-ovl-backdrop { position: fixed; inset: 0; background: rgba(26,31,27,0.45); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); display: flex; align-items: center; justify-content: center; z-index: 9990; padding: 24px; opacity: 0; visibility: hidden; transition: opacity 0.4s ease, visibility 0.4s ease; }
  .pm-ovl-backdrop[hidden] { display: none; }
  .pm-ovl-backdrop.is-open { opacity: 1; visibility: visible; }
  .pm-ovl { background: var(--cream, #F8F5EE); border-radius: 22px; width: 100%; max-width: 720px; max-height: 90vh; max-height: 90dvh; overflow: hidden auto; position: relative; box-shadow: 0 30px 80px rgba(26,31,27,0.32), 0 10px 24px rgba(26,31,27,0.12); transform: translateY(24px) scale(0.96); transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1); }
  .pm-ovl-backdrop.is-open .pm-ovl { transform: translateY(0) scale(1); }
  .pm-ovl-figure { position: relative; margin: 0; aspect-ratio: 16 / 9; overflow: hidden; background: var(--line, rgba(42,74,56,0.08)); }
  .pm-ovl-img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .pm-ovl-anim { position: relative; }
  .pm-ovl-imglayer { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 1.7s ease; }
  .pm-ovl-imglayer.is-on { opacity: 1; }
  @media (prefers-reduced-motion: reduce) { .pm-ovl-imglayer { transition: none; } }
  .pm-ovl-scrim { position: absolute; inset: 0; pointer-events: none; }
  .pm-ovl-on-image { position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: 22px 24px; }
  .pm-ovl-on-image p { margin: 0; color: #F8F5EE; font-family: 'Fraunces', serif; font-size: 19px; font-weight: 400; line-height: 1.4; letter-spacing: -0.01em; }
  .pm-ovl-close { position: absolute; top: 14px; right: 14px; z-index: 3; background: var(--white, #fff); border: 1px solid var(--line, rgba(42,74,56,0.14)); border-radius: 50%; width: 38px; height: 38px; font-size: 20px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; color: var(--ink, #18302A); transition: all 0.3s ease; padding: 0; }
  .pm-ovl-close:hover { background: var(--forest, #2a4a38); color: #fff; border-color: var(--forest, #2a4a38); transform: scale(1.05); }
  .pm-ovl-body { padding: 22px 26px 26px; display: flex; flex-direction: column; gap: 14px; }
  /* PUNKT 2+3 (03.08.2026, Dirk): Die Ueberschrift traegt jetzt Anlass und Ort, darf dafuer
     groesser sein - und nirgends in eine dritte Zeile rutschen. font-size waechst mit der
     Fensterbreite mit (clamp), line-clamp schneidet spaetestens nach zwei Zeilen mit
     Auslassungspunkten ab. Das greift auch beim laengsten Fall, einem Sondermeldungstitel
     mit 60 Zeichen, den keine Kurzform mehr retten kann. */
  .pm-ovl-title { font-family: 'Fraunces', serif; font-size: clamp(23px, 2.4vw, 30px); font-weight: 400; margin: 0; letter-spacing: -0.01em; line-height: 1.2; color: var(--ink, #18302A);
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
    overflow-wrap: break-word; hyphens: auto; }
  .pm-ovl-text { margin: 0; font-size: 15px; line-height: 1.55; color: var(--ink, #18302A); }
  .pm-ovl-standort-hint { margin: 0; font-size: 14px; line-height: 1.5; color: var(--forest, #2a4a38); font-weight: 600; display: flex; align-items: center; gap: 8px; }
  .pm-ovl-standort-hint::before { content: ''; width: 9px; height: 9px; border-radius: 50%; background: var(--forest, #2a4a38); flex-shrink: 0; }
  .pm-ovl-pulse { font-weight: 700; color: var(--forest, #2a4a38); }
  .pm-ovl-date { font-weight: 700; color: var(--ink, #18302A); white-space: nowrap; }
  .pm-ovl-daterange { display: block; text-align: center; margin: 8px 0; }
  .pm-ovl-reopen { display: block; margin-top: 10px; }   /* "Ab dem ..." auf eigener Zeile */
  .pm-ovl-rezept-link { color: var(--forest, #2a4a38); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
  .pm-ovl-rezept-link:hover { color: var(--gold, #C9AD77); }
  /* Block-Overlay (23.07.): gewaehlter Standort ist im Urlaub/krank -> kein Rezept/keine Ueberweisung, Verweis auf anderen Standort */
  .stblock-sheet { position: fixed; inset: 0; z-index: 1200; display: flex; align-items: center; justify-content: center; padding: 22px; background: rgba(26,31,27,0.42); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); opacity: 0; visibility: hidden; transition: opacity 0.26s ease, visibility 0.26s ease; }
  .stblock-sheet.is-open { opacity: 1; visibility: visible; }
  .stblock-card { background: var(--white, #fff); border-radius: 20px; border: 1px solid var(--line-strong, rgba(26,31,27,0.14)); border-left: 4px solid #C0563B; box-shadow: 0 24px 60px rgba(26,31,27,0.30); max-width: 460px; width: 100%; max-height: 90vh; overflow-y: auto; padding: 30px 28px 24px; transform: translateY(14px) scale(0.98); transition: transform 0.3s cubic-bezier(0.16,1,0.3,1); }
  .stblock-sheet.is-open .stblock-card { transform: none; }
  .stblock-ico { width: 50px; height: 50px; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-bottom: 14px; background: #F7E7DF; color: #C0563B; }
  .stblock-ico svg { width: 26px; height: 26px; }
  .stblock-title { font-family: 'Fraunces', serif; font-size: 23px; font-weight: 400; color: var(--ink, #18302A); margin: 0 0 10px; letter-spacing: -0.01em; line-height: 1.25; }
  .stblock-body { font-size: 16.5px; line-height: 1.65; color: var(--text, #33413a); margin: 0 0 20px; }
  .stblock-body strong { color: var(--forest, #2a4a38); }
  .stblock-actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: flex-end; }
  .stblock-btn { min-height: 48px; padding: 12px 22px; border-radius: 999px; font-family: inherit; font-size: 15.5px; font-weight: 600; cursor: pointer; border: 1px solid var(--line-strong, rgba(26,31,27,0.14)); background: var(--white, #fff); color: var(--forest, #2a4a38); transition: all 0.3s var(--ease); }
  .stblock-btn:hover { background: var(--cream-soft, #F2EDE1); }
  .stblock-btn-primary { background: var(--forest, #2a4a38); color: #fff; border-color: var(--forest, #2a4a38); }
  .stblock-btn-primary:hover { background: var(--forest-mist, #3D5D4A); }
  .pm-ovl-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(285px, 1fr)); gap: 14px; align-items: start; }
  .pm-ovl-cards[hidden] { display: none; }
  .pm-ovl-apotheke--full { grid-column: 1 / -1; }   /* volle Breite bei mehreren Vertretungen */
  .pm-ovl-vertretung, .pm-ovl-apotheke { min-width: 0; word-break: break-word; transition: transform 0.28s ease, box-shadow 0.28s ease; }
  @media (hover: hover) { .pm-ovl-vertretung:hover, .pm-ovl-apotheke:hover { transform: translateY(-5px) scale(1.035); box-shadow: 0 14px 30px rgba(26,31,27,0.14); } }
  .pm-ovl-vertretung { background: var(--white, #fff); border: 1px solid var(--line-strong, rgba(42,74,56,0.2)); border-left: 4px solid var(--forest, #2a4a38); border-radius: 14px; padding: 14px 16px; }
  .pm-ovl-apotheke { background: var(--cream, #F8F5EE); border: 1px solid rgba(201,173,119,0.5); border-left: 4px solid var(--gold, #C9AD77); border-radius: 14px; padding: 14px 16px; }
  .pm-ovl-apotheke { position: relative; }
  /* Nur die Textzeilen (nicht die Buttons) weichen dem Logo aus -> beide Felder gleich breite Buttons. */
  .pm-ovl-apotheke .pm-ovl-card-name, .pm-ovl-apotheke .pm-ovl-card-line { padding-right: 94px; }
  .pm-ovl-apotheke::before { content: ''; position: absolute; right: 26px; top: 38px; bottom: auto; margin: 0; width: 84px; height: 84px; background: url(/assets/apotheke-logo.png?v=1) center / contain no-repeat; transform-origin: center; animation: apoHeartbeat 3s ease-in-out infinite; }
  .pm-ovl-card-title { display: block; font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 700; margin-bottom: 6px; }
  .pm-ovl-vertretung .pm-ovl-card-title { color: var(--forest, #2a4a38); }
  .pm-ovl-apotheke .pm-ovl-card-title { color: #9c7b2e; }
  .pm-ovl-card-name { font-weight: 700; font-size: 15px; color: var(--ink, #18302A); }
  .pm-ovl-card-line { font-size: 14px; color: var(--ink, #18302A); margin-top: 2px; }
  .pm-ovl-card-line a { color: inherit; }
  .pm-ovl-card-routes { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
  .pm-ovl-route { flex: 1 1 auto; min-width: 120px; padding: 9px 12px; border: 1.5px solid var(--sage, #B8C9BC); border-radius: 10px; text-decoration: none; color: var(--forest, #2a4a38); font-weight: 600; font-size: 12.5px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; background: var(--white, #fff); }
  .pm-ovl-route svg { flex-shrink: 0; width: 13px; height: 13px; }
  .pm-ovl-route:hover { border-color: var(--forest, #2a4a38); background: var(--sage-mist, #EAF0EA); }
  @media (prefers-reduced-motion: no-preference) {
    @keyframes pmOvlPulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.16); } }
    @keyframes pmOvlPulseSide { 0%, 100% { transform: scaleX(1); } 50% { transform: scaleX(0.78); } }
    .pm-ovl-pulse { display: inline-block; transform-origin: center; animation: pmOvlPulse 1.4s ease infinite; }
    /* Nachbarwoerter (Wort davor/danach) komprimieren im Takt, damit der Ort wachsen kann, ohne die Zeile zu verschieben (Dirk 23.07.). */
    .pm-pulse-l { display: inline-block; transform-origin: left center; animation: pmOvlPulseSide 1.4s ease infinite; }
    .pm-pulse-r { display: inline-block; transform-origin: right center; animation: pmOvlPulseSide 1.4s ease infinite; }
  }
  .pm-ovl-notfall { background: var(--white, #fff); border: 1px solid var(--line-strong, rgba(42,74,56,0.2)); border-radius: 14px; padding: 14px 16px; display: flex; flex-direction: column; gap: 4px; text-align: center; }
  .pm-ovl-notfall a { color: var(--forest, #2a4a38); font-weight: 700; text-decoration: none; }
  .pm-ovl-notfall a:hover { text-decoration: underline; }
  .pm-ovl-notfall[hidden], .pm-ovl-standort-hint[hidden] { display: none; }
  .pm-ovl-notfall-title { color: var(--forest, #2a4a38); font-size: 14px; }
  .pm-ovl-notfall div { font-size: 14px; color: var(--ink, #18302A); }
  .pm-ovl-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px 16px; flex-wrap: wrap; margin-top: 6px; }
  .pm-ovl-dismiss { display: inline-flex; align-items: center; gap: 10px; font-size: 13px; color: var(--muted, #5A615C); cursor: pointer; padding: 9px 15px; border-radius: 999px; background: var(--white, #fff); border: 1px solid var(--line-strong, rgba(42,74,56,0.2)); transition: border-color 0.25s ease, box-shadow 0.25s ease; user-select: none; }
  .pm-ovl-dismiss:hover { border-color: var(--forest, #2a4a38); box-shadow: 0 2px 8px rgba(42,74,56,0.10); }
  /* 03.08.2026: Overlay der neuen Rubriken (Verkuerzte Oeffnungszeiten, Sondermeldung).
     Textbasiert, ohne Foto. Dringlichkeit wird zusaetzlich zum Farbton als Wort ausgegeben. */
  /* THEMA B: verkettetes Overlay. Die vorige Meldung blendet weich aus, die naechste
     erscheint ohne eigene Einblendung - es liest sich wie Weiterblaettern statt wie ein
     zweites Aufpoppen. Bewegungsempfindliche Nutzer merken davon nichts (reduced motion). */
  .pm-ovl-backdrop.pm-ovl-sofort,
  .pm-ovl-backdrop.pm-ovl-sofort .pm-ovl { transition: none !important; animation: none !important; }
  /* Wochenuebersicht im Overlay, Optik wie das Oeffnungszeiten-Modul der Startseite (Punkt 6). */
  .pm-ovl-unter { margin: -8px 0 12px; font-size: 15px; font-weight: 600; color: var(--forest, #2a4a38); }
  .pm-ovl-seg { display: inline-flex; gap: 4px; padding: 4px; margin: 2px 0 14px; border-radius: 999px; background: rgba(42,74,56,0.08); }
  .pm-ovl-seg-btn { min-height: 38px; padding: 8px 20px; border: none; border-radius: 999px; background: transparent; color: var(--ink, #1a1f1b); font-size: 14px; font-weight: 600; cursor: pointer; font-family: inherit; transition: background 200ms ease, color 200ms ease; }
  .pm-ovl-seg-btn.is-selected { background: var(--forest, #2a4a38); color: #fff; }
  .pm-ovl-seg-btn:focus-visible { outline: 3px solid rgba(201,173,119,0.6); outline-offset: 2px; }
  /* 04.08.2026 (Dirk): Wochenzeilen groesser und uebersichtlicher. Mehr Zeilenabstand,
     mehr Innenabstand, groessere Schrift und eine breitere Spalte fuer den Wochentag,
     damit "Donnerstag" nicht am Rand klebt. Trennlinien statt reiner Abstaende. */
  .pm-ovl-woche { display: flex; flex-direction: column; gap: 4px; }
  .pm-ovl-woche-tag { display: grid; grid-template-columns: 132px 1fr; align-items: center; gap: 14px; padding: 11px 14px; border-radius: 10px; font-size: 16px; line-height: 1.5; border-bottom: 1px solid rgba(42,74,56,0.07); }
  .pm-ovl-woche-tag:last-child { border-bottom: 0; }
  .pm-ovl-woche-tag.is-heute { background: rgba(42,74,56,0.08); font-weight: 600; }
  .pm-ovl-woche-n { color: var(--ink, #1a1f1b); font-weight: 600; }
  .pm-ovl-woche-z { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; text-align: right; font-variant-numeric: tabular-nums; }
  .pm-ovl-woche-slot { color: var(--ink, #1a1f1b); }
  .pm-ovl-woche-slot.is-leer { color: rgba(90,97,92,0.45); }
  .pm-ovl-woche-zu { grid-column: 1 / -1; color: var(--muted, #5A615C); }
  @media (max-width: 560px) {
    .pm-ovl-woche-tag { grid-template-columns: 104px 1fr; font-size: 15px; padding: 9px 10px; }
    .pm-ovl-woche-z { grid-template-columns: 1fr; gap: 2px; }
  }
  /* 04.08.2026 (Dirk): Formatierter Freitext im Overlay. Die Groessenstufen sind bewusst
     relativ (em) und nicht in Pixeln: so wachsen sie mit der Zoomstufe und der eingestellten
     Schriftgroesse des Nutzers mit. Feste Pixelwerte waeren ein Verstoss gegen die
     Barrierefreiheit, gerade auf einer Arztpraxis-Seite mit aelterer Leserschaft.
     Die kleinste Stufe bleibt bei 0.9em, damit sie auf keinem Geraet unter 14px faellt. */
  .pm-ovl-text strong { font-weight: 700; }
  .pm-ovl-text em { font-style: italic; }
  .pm-ovl-text ul, .pm-ovl-text ol { margin: 10px 0; padding-left: 24px; }
  .pm-ovl-text li { margin: 4px 0; }
  .pm-ovl-text p { margin: 0 0 10px; }
  .pm-ovl-text p:last-child { margin-bottom: 0; }
  .pm-tx-s { font-size: 0.95em; }   /* Basis 15px -> 14,25px, bleibt ueber der 14px-Grenze */
  .pm-tx-m { font-size: 1em; }
  .pm-tx-l { font-size: 1.25em; font-weight: 600; }
  .pm-tx-xl { font-size: 1.5em; font-weight: 600; line-height: 1.3; }

  /* 04.08.2026 (Dirk): Kennzeichnung KI-erzeugter Motive. Unten rechts im Bild, so
     unauffaellig wie moeglich und trotzdem lesbar. Erscheint nur bei den mitgelieferten
     Fotos - eigene Aufnahmen des Personals tragen sie nicht (Attribut data-ki). */
  /* 10.08.2026 (Dirk): Die Angabe muss bleiben, war aber zu laut fuer ein Foto,
     das in erster Linie wirken soll. Jetzt kleiner und mit fast durchsichtigem
     Grund; beim Zeigen tritt sie hervor. Die Lesbarkeit haengt nicht mehr am
     Grund, sondern am Textschatten - deshalb bleibt sie auch auf einem hellen
     Bild erkennbar. */
  .pm-ovl-figure[data-ki]::after {
    content: "KI-generiert";
    position: absolute; right: 10px; bottom: 9px; z-index: 2;
    padding: 2px 8px; border-radius: 999px;
    background: rgba(16,24,19,0.34); color: rgba(255,255,255,0.88);
    font-size: 9.5px; font-weight: 600; letter-spacing: .04em;
    text-shadow: 0 1px 2px rgba(0,0,0,0.7);
    line-height: 1.5; pointer-events: none;
    backdrop-filter: none;
    transition: background .25s ease, color .25s ease;
  }
  .pm-ovl-figure[data-ki]:hover::after,
  .pm-ovl-figure[data-ki]:focus-within::after {
    background: rgba(16,24,19,0.82); color: #fff;
  }
  /* Ohne Maus gibt es kein Zeigen. Damit die Angabe dort nicht dauerhaft blass
     bleibt, steht sie auf Touch von vornherein deutlicher. */
  @media (hover: none) {
    .pm-ovl-figure[data-ki]::after { background: rgba(16,24,19,0.58); color: #fff; }
  }
  @media (prefers-reduced-motion: reduce) {
    .pm-ovl-figure[data-ki]::after { transition: none; }
  }
  @media (max-width: 560px) { .pm-ovl-figure[data-ki]::after { font-size: 10px; right: 8px; bottom: 7px; } }
  /* 04.08.2026 (Dirk): Die Überschrift pulsiert einmal zweifach, eine halbe Sekunde nachdem
     das Fenster vollständig steht. Sie wächst dabei um ein Zehntel. Zweck ist allein, dass
     die Überschrift wirklich gelesen wird - danach bleibt sie ruhig. Bei reduzierter
     Bewegung passiert nichts, dort trägt die Größe der Schrift allein. */
  /* Bewusst ueber die eigenstaendige Eigenschaft scale statt ueber transform: der Titel
     erbt aus den Einblend-Regeln der Seite bereits ein transform, das die Animation
     ueberschrieben hat. scale wird davon nicht beruehrt. (!important ist in Keyframes
     ungueltig und macht die Deklaration wirkungslos - deshalb steht es hier nicht.) */
  @keyframes pmTitelPuls {
    0%   { scale: 1; }
    22%  { scale: 1.1; }
    44%  { scale: 1; }
    66%  { scale: 1.1; }
    100% { scale: 1; }
  }
  /* Die Betonung muss sich gegen die Einblend-Regeln der Seite durchsetzen, die auf
     .reveal-Elementen ein eigenes transform setzen. Ohne Vorrang liefe die Animation zwar,
     bliebe aber ohne sichtbare Wirkung. */
  .pm-ovl .pm-ovl-title.is-puls {
    animation: pmTitelPuls 1.15s cubic-bezier(.4,0,.2,1) 1 !important;
    transform-origin: left center !important;
    will-change: transform;
  }
  @media (prefers-reduced-motion: reduce) { .pm-ovl .pm-ovl-title.is-puls { animation: none !important; } }
  /* 04.08.2026 (Dirk): Die Ueberschrift nennt jetzt immer den Standort und wird dadurch
     laenger. Auf schmalen Geraeten hart auf zwei Zeilen begrenzen, damit das Fenster nicht
     aus dem Bild waechst. Was nicht passt, endet mit Auslassungspunkten. */
  @media (max-width: 560px) {
    .pm-ovl-title {
      display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
      overflow: hidden; word-break: break-word; hyphens: auto;
    }
  }
  .pm-ovl-wichtig { color: #8A2E1C; font-weight: 700; }
  .pm-ovl-grund { color: var(--forest, #2a4a38); font-weight: 700; }
  .pm-ovl-neu-block { margin: 14px 0 4px; }
  .pm-ovl-tool-hinweis { margin: 14px 0 0; padding-top: 12px; border-top: 1px solid var(--line, rgba(42,74,56,0.12)); font-size: 14px; line-height: 1.5; color: var(--muted, #5A615C); }
  .pm-ovl-neu-zeit { font-size: 15px; font-weight: 600; color: var(--forest, #2a4a38); margin-bottom: 10px; }
  .pm-ovl-neu-tage { display: flex; flex-direction: column; gap: 4px; padding-top: 10px; border-top: 1px solid var(--line, rgba(42,74,56,0.12)); }
  .pm-ovl-neu-tag { display: flex; justify-content: space-between; gap: 14px; font-size: 15px; line-height: 1.45; }
  .pm-ovl-neu-tag-n { font-weight: 600; color: var(--ink, #1a1f1b); }
  .pm-ovl-neu-tag-z { color: var(--muted, #5A615C); text-align: right; }
  @media (max-width: 560px) { .pm-ovl-neu-tag { font-size: 14px; } }
  .pm-ovl-dismiss input { appearance: none; -webkit-appearance: none; margin: 0; flex-shrink: 0; width: 20px; height: 20px; border: 1.5px solid var(--line-strong, rgba(42,74,56,0.28)); border-radius: 6px; background: var(--white, #fff); position: relative; cursor: pointer; transition: background 0.2s ease, border-color 0.2s ease; }
  .pm-ovl-dismiss input:checked { background: var(--forest, #2a4a38); border-color: var(--forest, #2a4a38); }
  .pm-ovl-dismiss input:checked::after { content: ''; position: absolute; left: 6px; top: 2px; width: 5px; height: 10px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
  .pm-ovl-dismiss input:focus-visible { outline: 3px solid var(--gold, rgba(201,173,119,0.6)); outline-offset: 2px; }
  @media (prefers-reduced-motion: no-preference) {
    @keyframes pmDismissAttn { 0%,100% { transform: translateX(0) scale(1); } 12% { transform: translateX(-4px) scale(1.05); } 26% { transform: translateX(4px) scale(1.05); } 40% { transform: translateX(-3px) scale(1.03); } 54% { transform: translateX(3px) scale(1.02); } 68% { transform: translateX(-2px) scale(1.01); } 82% { transform: translateX(1px) scale(1.01); } }
    .pm-ovl-backdrop.is-open .pm-ovl-dismiss { animation: pmDismissAttn 0.8s ease 1s 1; transform-origin: center; }
  }
  .pm-ovl-ok { min-height: 44px; padding: 11px 26px; border: none; border-radius: 999px; background: var(--forest, #2a4a38); color: #fff; font-size: 15px; font-weight: 600; cursor: pointer; transition: opacity 0.2s ease; flex-shrink: 0; }
  .pm-ovl-ok:hover { opacity: 0.9; }
  @media (max-width: 560px) { .pm-ovl-backdrop { align-items: flex-start; padding: 18px; } .pm-ovl { max-width: 100%; max-height: calc(100vh - 36px); max-height: calc(100dvh - 36px); border-radius: 18px; } .pm-ovl-body { padding: 18px 18px 22px; } .pm-ovl-title { font-size: clamp(20px, 5.6vw, 24px); } .pm-ovl-on-image p { font-size: 17px; } .pm-ovl-foot { justify-content: center; } }
  .floating-emergency:hover {
    transform: translateY(-2px);
    box-shadow:
      0 0 0 1px rgba(0,0,0,0.06),
      0 24px 50px rgba(0,0,0,0.22),
      0 0 0 3px rgba(199, 42, 42, 0.12);
  }
  .floating-emergency-icon {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: #FDE6E6;
    color: #C72A2A;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
  }
  .floating-emergency-icon::before {
    content: '';
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    border: 2px solid rgba(199, 42, 42, 0.25);
    animation: emergencyPulse 2.4s ease-in-out infinite;
  }
  @keyframes emergencyPulse {
    0%, 100% { opacity: 0; transform: scale(1); }
    50% { opacity: 1; transform: scale(1.15); }
  }
  .floating-emergency-text {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
  }
  .floating-emergency-label {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--muted);
  }
  .floating-emergency-number {
    font-family: 'Fraunces', serif;
    font-size: 19px;
    font-weight: 500;
    color: var(--ink);
    letter-spacing: -0.01em;
  }
  @media (max-width: 520px) {
    .floating-emergency {
      bottom: 16px;
      right: 16px;
      padding: 12px 14px;
      max-width: 220px;
    }
    .floating-emergency-icon { width: 32px; height: 32px; }
    .floating-emergency-number { font-size: 17px; }
  }

  /* NAV */
  
  

  /* === RAG Tageszeit-Begruessung IM Menue (zentrierte zweite Zeile, 2026-06-29) ===
     position:absolute -> aus dem Flex-Fluss, stoert Logo/Links/CTA NICHT.
     left:50% + translateX(-50%) -> immer exakt in der Viewport-Mitte.
     bottom -> haengt in der unteren Padding-Zone (= eigene zweite Zeile unter den Links).
     pointer-events:none -> reine Anzeige, blockiert nie Menue-Klicks. */
  .rag-nav-greet {
    position: absolute;
    left: 50%;
    bottom: 6px;
    transform: translateX(-50%);
    transform-origin: center center;
    will-change: transform, opacity;
    display: inline-flex;
    align-items: baseline;
    gap: 0 0.3em;
    max-width: calc(100vw - 40px);
    white-space: nowrap;
    pointer-events: none;
    z-index: 2;
  }
  .rag-nav-greet .rag-greet,
  .rag-nav-greet .rag-sub {
    font-family: 'Fraunces', serif;
    text-shadow: 0 1px 3px rgba(28, 49, 37, 0.18), 0 1px 1px rgba(255, 255, 255, 0.4);
    font-variation-settings: "opsz" 144, "SOFT" 70;
    font-size: 25px;                 /* 10px groesser als die 14px nav-links */
    font-weight: 400;
    line-height: 1.05;
    white-space: nowrap;
  }
  .rag-nav-greet .rag-greet {
    color: var(--forest);            /* "Guten Tag," in Forest Green */
    opacity: 0;                      /* Startwert fuer ragZoomIn */
    transform-origin: center center;
  }
  .rag-nav-greet .rag-sub { color: var(--forest); }   /* "lieber Patient" gleiche Farbe wie Begruessung */
  .rag-nav-greet .rag-sub span { display: inline-block; opacity: 0; }

  /* Effekt 1: Begruessung baut sich aus dem Hintergrund auf (klein -> gross). */
  @keyframes ragZoomIn {
    0%   { opacity: 0; transform: translateX(-50%) scale(0.35); }
    55%  { opacity: 1; transform: translateX(-50%) scale(1.10); }
    70%  { opacity: 1; transform: translateX(-50%) scale(1.10); }
    100% { opacity: 1; transform: translateX(-50%) scale(1); }
  }
  /* Effekt 2: Buchstaben fliegen einzeln von rechts herein (body kappt Overflow). */
  @keyframes ragFlyIn {
    0%   { opacity: 0; transform: translateX(260px); filter: blur(4px); }
    70%  { opacity: 1; filter: blur(0); }
    100% { opacity: 1; transform: translateX(0); filter: blur(0); }
  }

  /* Mobil: nav-links sind per display:none weg -> Mitte frei. Eine Zeile, kleiner. */
  @media (max-width: 968px) {
    .rag-nav-greet { top: 51px; bottom: auto; }
    .rag-nav-greet .rag-greet,
    .rag-nav-greet .rag-sub { font-size: 18px; }
  }

  /* Barrierefreiheit: reduzierte Bewegung zeigt den Text sofort, ohne Animation. */
  @media (prefers-reduced-motion: reduce) {
    .rag-nav-greet .rag-greet { opacity: 1 !important; transform: none !important; animation: none !important; }
    .rag-nav-greet .rag-sub span { opacity: 1 !important; transform: none !important; filter: none !important; animation: none !important; }
  }

  
  
  .logo-mark::before { content:''; position:absolute; inset:-50%; background: conic-gradient(from 0deg, transparent, rgba(201,173,119,0.4), transparent); animation: logoShine 6s linear infinite; }
  @keyframes logoShine { from{transform:rotate(0);} to{transform:rotate(360deg);} }
  
  
  
  

  
  
  
  
  

  
  
  
  .nav-cta:hover::before { transform: translateX(100%); }

  /* HERO */
  .hero {
    min-height: 84vh; padding: 150px 48px 80px;
    display: grid; grid-template-columns: 1.1fr 1fr; gap: 72px;
    align-items: center; position: relative; scroll-margin-top: 100px;
  }
  .hero-content { position: relative; z-index: 2; }

  .eyebrow {
    display: inline-flex; align-items: center; gap: 14px;
    font-size: 12px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase;
    color: var(--forest); margin-bottom: 32px;
    opacity: 0; transform: translateY(20px);
    animation: fadeUp 1.2s var(--ease) 0.2s forwards;
  }
  .eyebrow::before { content:''; width:32px; height:1px; background: var(--forest); transform-origin: left; animation: lineGrow 1.2s var(--ease) 0.4s forwards; transform: scaleX(0); }
  @keyframes lineGrow { to { transform: scaleX(1); } }

  .hero h1 {
    font-family: 'Fraunces', serif;
    font-size: clamp(48px, 6.5vw, 88px);
    line-height: 1.02; font-weight: 300; letter-spacing: -0.03em;
    color: var(--ink); margin-bottom: 34px;
    font-variation-settings: "opsz" 144, "SOFT" 50;
  }
  .hero-word { display: inline-block; opacity: 0; filter: blur(10px); transform: translateY(30px); animation: wordReveal 1.4s var(--ease) forwards; }
  .hero-word:nth-child(1) { animation-delay: 0.3s; }
  .hero-word:nth-child(2) { animation-delay: 0.45s; }
  .hero-word:nth-child(3) { animation-delay: 0.6s; }
  .hero-word:nth-child(4) { animation-delay: 0.75s; }
  .hero-word:nth-child(5) { animation-delay: 0.9s; }
  .hero-word:nth-child(6) { animation-delay: 1.05s; }
  .hero-word:nth-child(7) { animation-delay: 1.2s; }
  @keyframes wordReveal { to { opacity: 1; filter: blur(0); transform: translateY(0); } }
  .hero h1 em { font-style: italic; font-weight: 300; color: var(--forest); position: relative; }
  .hero h1 em::after { content:''; position:absolute; bottom:6px; left:0; width:100%; height:10px; background: linear-gradient(90deg, var(--gold-soft), transparent); opacity: 0.4; z-index:-1; border-radius: 4px; transform: scaleX(0); transform-origin: left; animation: underlineGrow 1.5s var(--ease) 1.4s forwards; }
  @keyframes underlineGrow { to { transform: scaleX(1); } }

  /* 08.08.2026 (Dirk): Der Text lief nur bis zur halben Breite der Ueberschrift und
     wirkte dadurch abgeschnitten. Jetzt nutzt er dieselbe Spaltenbreite, damit
     Ueberschrift, Text und Knopfreihe einen geschlossenen Block bilden. */
  .hero p { font-size: 18px; line-height: 1.7; color: var(--muted); max-width: 41em; margin-bottom: 36px; opacity: 0; transform: translateY(20px); animation: fadeUp 1.2s var(--ease) 1.1s forwards; }

  .hero-ctas { display: flex; gap: 14px; flex-wrap: wrap; opacity: 0; transform: translateY(20px); animation: fadeUp 1.2s var(--ease) 1.3s forwards; margin-bottom: 36px; }

  .btn-primary, .btn-secondary {
    padding: 17px 30px; border-radius: 100px;
    text-decoration: none; font-weight: 500; font-size: 15px;
    display: inline-flex; align-items: center; gap: 10px;
    transition: all 0.8s var(--ease);
    border: 1px solid transparent; cursor: pointer;
    font-family: 'Inter', sans-serif; position: relative; overflow: hidden;
  }
  .btn-primary { background: var(--forest); color: var(--cream); }
  .btn-primary::before { content:''; position:absolute; inset:0; background: linear-gradient(90deg, transparent, rgba(201,173,119,0.35), transparent); transform: translateX(-100%); transition: transform 0.9s var(--ease); }
  .btn-primary:hover { background: var(--forest-mist); transform: translateY(-2px); box-shadow: 0 20px 45px rgba(42,74,56,0.28); }
  .btn-primary:hover::before { transform: translateX(100%); }
  .btn-secondary { background: rgba(255,255,255,0.7); backdrop-filter: blur(10px); color: var(--forest); border-color: var(--line-strong); }
  .btn-secondary:hover { border-color: var(--forest); background: var(--white); transform: translateY(-2px); box-shadow: 0 12px 30px rgba(26,31,27,0.08); }
  .btn-arrow { transition: transform 0.6s var(--ease); }
  .btn-primary:hover .btn-arrow, .btn-secondary:hover .btn-arrow { transform: translateX(5px); }

  /* Jameda Badge */
  .jameda-badge {
    display: inline-flex; align-items: center; gap: 12px;
    padding: 10px 18px; background: var(--white); border-radius: 100px;
    border: 1px solid var(--line); font-size: 13px; color: var(--text);
    box-shadow: 0 4px 16px rgba(26,31,27,0.05);
    opacity: 0; transform: translateY(20px);
    animation: fadeUp 1.2s var(--ease) 1.5s forwards;
  }
  .jameda-stars { color: var(--gold); letter-spacing: 0.05em; font-size: 14px; }
  .jameda-badge strong { font-weight: 600; color: var(--ink); }

  /* LIVE WIDGET */
  .hero-visual { position: relative; z-index: 2; opacity: 0; transform: translateX(40px) scale(0.97); animation: heroVisualIn 1.4s var(--ease) 0.8s forwards; }
  @keyframes heroVisualIn { to { opacity: 1; transform: translateX(0) scale(1); } }

  .live-widget {
    background: var(--white); border-radius: 28px; padding: 34px;
    box-shadow: 0 1px 3px rgba(26,31,27,0.04), 0 30px 80px rgba(26,31,27,0.08);
    border: 1px solid var(--line); position: relative; overflow: hidden;
  }
  .live-widget::before {
    content:''; position:absolute; top:0; left:-100%;
    width: 60%; height: 100%;
    background: linear-gradient(90deg, transparent, rgba(201,173,119,0.08), transparent);
    animation: widgetShine 10s ease-in-out infinite; animation-delay: 3s;
  }
  @keyframes widgetShine { 0%,85%,100%{left:-100%;} 92%{left:140%;} }

  .live-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 28px; position: relative; z-index: 1; gap: 16px; flex-wrap: wrap; }

  .live-status { display: inline-flex; align-items: center; gap: 10px; font-size: 12px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; }
  .status-dot { width: 10px; height: 10px; border-radius: 50%; position: relative; }
  .status-dot::after { content:''; position:absolute; inset:-4px; border-radius: 50%; animation: breath 3s ease-in-out infinite; }
  .live-status.open { color: #1B7A44; } .live-status.open .status-dot { background: #22C55E; box-shadow: 0 0 0 0 rgba(34,197,94,0.7); animation: dotPulseOpen 2s infinite; }
  .live-status.closed { color: #C72A2A; } .live-status.closed .status-dot { background: #E53E3E; box-shadow: 0 0 0 0 rgba(229,62,62,0.75); animation: dotPulseClosed 1.6s infinite; }
  .live-status .status-dot::after { display: none; }
  @keyframes breath { 0%,100%{transform:scale(0.8); opacity: 0.9;} 50%{transform:scale(1.3); opacity: 0;} }
  @keyframes dotPulseOpen {
    0%   { box-shadow: 0 0 0 0 rgba(34,197,94,0.75); }
    70%  { box-shadow: 0 0 0 12px rgba(34,197,94,0);   }
    100% { box-shadow: 0 0 0 0 rgba(34,197,94,0);     }
  }
  @keyframes dotPulseClosed {
    0%   { box-shadow: 0 0 0 0 rgba(229,62,62,0.8);  }
    70%  { box-shadow: 0 0 0 12px rgba(229,62,62,0);   }
    100% { box-shadow: 0 0 0 0 rgba(229,62,62,0);     }
  }

  .live-location-tabs { display: flex; gap: 4px; background: var(--cream-soft); padding: 4px; border-radius: 100px; border: 1px solid var(--line); }
  /* Weicher Fade bei Location Switch, gilt für Hero Widget schedulable Bereiche */
  .live-schedule, .live-status, .live-countdown, .live-date-row {
    transition: opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  }
  .live-widget.switching .live-schedule,
  .live-widget.switching .live-status,
  .live-widget.switching .live-countdown,
  .live-widget.switching .live-date-row {
    opacity: 0.15;
  }
  .location-tab { padding: 6px 14px; border-radius: 100px; font-size: 11px; font-weight: 600; letter-spacing: 0.05em; color: var(--muted); cursor: pointer; border: none; background: transparent; font-family: inherit; transition: all 0.6s var(--ease); text-transform: uppercase; }
  .location-tab.active { background: var(--forest); color: var(--cream); }

  .live-time { font-family: 'Fraunces', serif; font-variation-settings: "opsz" 144, "SOFT" 50; font-size: 52px; font-weight: 300; color: var(--ink); line-height: 1; margin-bottom: 6px; letter-spacing: -0.03em; display: flex; align-items: baseline; gap: 8px; }
  .live-time-colon { color: var(--gold); animation: colonBlink 1s ease-in-out infinite; }
  @keyframes colonBlink { 0%,49%{opacity:1;} 50%,100%{opacity:0.3;} }
  .live-date { font-size: 13px; color: var(--muted); letter-spacing: 0.02em; margin-bottom: 26px; }

  .live-countdown { background: linear-gradient(135deg, var(--sage-mist), var(--cream-soft)); border-radius: 16px; padding: 18px 20px; margin-bottom: 24px; position: relative; overflow: hidden; }
  .live-countdown::before { content:''; position:absolute; top:-40px; right:-40px; width:120px; height:120px; background: radial-gradient(circle, var(--white) 0%, transparent 70%); opacity: 0.5; }
  .countdown-label { font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: var(--forest); margin-bottom: 6px; position: relative; z-index: 1; }
  .countdown-value { font-family: 'Fraunces', serif; font-variation-settings: "opsz" 144, "SOFT" 50; font-size: 20px; font-weight: 400; color: var(--ink); line-height: 1.3; position: relative; z-index: 1; letter-spacing: -0.01em; }
  .countdown-value em { font-style: italic; color: var(--forest); }
  .live-dual-status { display: flex; flex-direction: column; gap: 10px; margin-bottom: 24px; }
  .dual-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
  .dual-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; background: var(--muted); }
  .dual-row.open .dual-dot { background: #22C55E; }
  .dual-row.closed .dual-dot { background: #E53E3E; }
  .dual-name { font-size: 12px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink); }
  .dual-row.open .dual-name { color: #1B7A44; }
  .dual-row.closed .dual-name { color: #C72A2A; }
  .dual-info { font-size: 13px; color: var(--muted); }
  .live-status.mixed { color: var(--muted); }
  .live-status.mixed .status-dot { background: var(--muted); animation: none; box-shadow: none; }
  .live-widget [hidden] { display: none !important; }

  .live-schedule { border-top: 1px solid var(--line); padding-top: 20px; }
  .schedule-title { font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: var(--muted); margin-bottom: 14px; }
  .schedule-list { display: flex; flex-direction: column; gap: 6px; }
  .schedule-day { display: grid; grid-template-columns: 40px 1fr auto; gap: 14px; align-items: center; padding: 7px 10px; border-radius: 8px; font-size: 13px; transition: background 0.6s var(--ease); }
  .schedule-day.today { background: var(--sage-mist); }
  .schedule-day .day-name { font-weight: 600; color: var(--text); letter-spacing: 0.05em; text-transform: uppercase; font-size: 11px; }
  .schedule-day.today .day-name { color: var(--forest); }
  .schedule-day .day-hours { color: var(--muted); font-variant-numeric: tabular-nums; }
  .schedule-day.today .day-hours { color: var(--ink); font-weight: 500; }
  /* Aktiver Zeitslot (laufende Sprechstunde) in kraeftigem Gruen, hebt sich vom hellen Heute-Hintergrund ab */
  .schedule-day .day-hours .slot-active { color: var(--forest); font-weight: 700; }
  .schedule-day .day-marker { width: 5px; height: 5px; border-radius: 50%; background: transparent; }
  .schedule-day.today .day-marker { background: var(--forest); }
  .schedule-day.closed .day-hours { color: var(--muted-light); font-style: italic; }
  .schedule-day .day-hours .slot-empty { color: var(--muted-light); }

  /* Rezept CTA Pille direkt in der Schedule Zeile des heutigen Tages.
     Ersetzt den alten floating-badge am Widget Rand. Wandert mit dem aktuellen Tag. */
  .day-cta { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px 4px 9px; background: linear-gradient(135deg, rgba(201,173,119,0.22), rgba(201,173,119,0.1)); color: var(--forest); border: 1px solid rgba(201,173,119,0.45); border-radius: 100px; font-size: 10.5px; font-weight: 600; letter-spacing: 0.02em; text-decoration: none; white-space: nowrap; transition: all 0.6s var(--ease); }
  .day-cta:hover { background: var(--forest); color: var(--gold-soft); border-color: var(--forest); box-shadow: 0 6px 14px rgba(42,74,56,0.25); transform: translateX(-2px); }
  .day-cta svg { width: 12px; height: 12px; flex-shrink: 0; }

  /* FLOATING BADGES - weiter außerhalb, höher positioniert */
  .floating-badge {
    position: absolute; background: var(--white);
    padding: 12px 18px; border-radius: 14px;
    box-shadow: 0 20px 50px rgba(26,31,27,0.12);
    display: flex; align-items: center; gap: 12px;
    border: 1px solid var(--line); z-index: 4;
  }
  .badge-1 { top: -30px; left: -52px; animation: floatB1 6s var(--ease) infinite, fadeInBadge 1s var(--ease) 1.8s backwards; }
  .badge-2 { bottom: -20px; right: -42px; animation: floatB2 7s var(--ease) infinite, fadeInBadge 1s var(--ease) 2.1s backwards; }
  @keyframes floatB1 { 0%,100%{transform: translateY(0) rotate(-1deg);} 50%{transform: translateY(-8px) rotate(0);} }
  @keyframes floatB2 { 0%,100%{transform: translateY(0) rotate(1deg);} 50%{transform: translateY(-10px) rotate(0);} }
  @keyframes fadeInBadge { from{opacity:0; transform:scale(0.9);} to{opacity:1; transform:scale(1);} }
  .badge-icon { width: 34px; height: 34px; border-radius: 50%; background: var(--sage-mist); display: flex; align-items: center; justify-content: center; color: var(--forest); flex-shrink: 0; }
  .badge-text strong { display:block; font-size: 13px; color: var(--ink); font-weight: 600; margin-bottom: 1px; }
  .badge-text span { font-size: 11px; color: var(--muted); }

  /* SECTIONS */
  

  .section-header { max-width: 900px; margin: 0 auto 80px; text-align: center; }
  .section-eyebrow { display: inline-flex; align-items: center; gap: 12px; font-size: 12px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--forest); margin-bottom: 24px; }
  .section-eyebrow::before, .section-eyebrow::after { content:''; width:28px; height:1px; background: var(--forest); }

  .section-title { font-family: 'Fraunces', serif; font-variation-settings: "opsz" 144, "SOFT" 50; font-size: clamp(38px, 5vw, 62px); line-height: 1.08; font-weight: 300; letter-spacing: -0.025em; color: var(--ink); margin-bottom: 24px; }
  .section-title em { font-style: italic; color: var(--forest); }
  .section-sub { font-size: 18px; color: var(--muted); max-width: 600px; margin: 0 auto; line-height: 1.65; }

  /* ABOUT */
  .about { background: linear-gradient(180deg, var(--cream) 0%, var(--cream-soft) 100%); padding: 80px 0; }
  .about-grid { max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1.15fr; gap: 100px; align-items: center; }
  .about-image-wrap { position: relative; aspect-ratio: 4/5; border-radius: 28px; overflow: hidden; box-shadow: 0 40px 100px rgba(26,31,27,0.15); }
  .about-image-wrap img { width: 100%; height: 100%; object-fit: cover; object-position: center 15%; }
  .about-image-wrap::after { content:''; position:absolute; inset:0; background: linear-gradient(135deg, transparent 40%, rgba(255,255,255,0.25) 50%, transparent 60%); transform: translateX(-100%); animation: imageShine 9s ease-in-out infinite; animation-delay: 4s; pointer-events: none; }
  @keyframes imageShine { 0%,85%,100%{transform: translateX(-100%);} 92%{transform: translateX(100%);} }
  .about-image-tag { position: absolute; bottom: 24px; left: 24px; background: var(--white); padding: 10px 18px; border-radius: 100px; font-size: 13px; font-weight: 500; color: var(--ink); font-family: 'Inter', sans-serif; box-shadow: 0 8px 20px rgba(0,0,0,0.1); z-index: 2; }
  .about-image-tag strong { display: block; color: var(--forest); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 600; margin-bottom: 2px; }

  .about-content h2 { font-family: 'Fraunces', serif; font-variation-settings: "opsz" 144, "SOFT" 50; font-size: clamp(34px, 4vw, 52px); line-height: 1.15; font-weight: 300; letter-spacing: -0.025em; color: var(--ink); margin-bottom: 32px; }
  .about-content h2 em { font-style: italic; color: var(--forest); }
  .about-content p { font-size: 17px; line-height: 1.8; color: var(--text); margin-bottom: 22px; }
  .about-signature { margin-top: 40px; font-family: 'Fraunces', serif; font-variation-settings: "opsz" 144, "SOFT" 70; font-style: italic; font-size: 22px; color: var(--forest); font-weight: 300; }

  /* STANDORTE */
  .standorte { background: var(--cream); padding: 80px 0 100px; scroll-margin-top: -33px; } .standorte .section-header { margin-bottom: 40px !important; }
  .standorte-grid { max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
  .standort-card {
    background: var(--white); border-radius: 28px;
    padding: 40px; position: relative; overflow: hidden;
    transition: all 0.9s var(--ease);
    border: 1px solid var(--line);
    box-shadow: 0 1px 2px rgba(0,0,0,0.02);
  }
  .standort-card.unfocused { opacity: 0.55; filter: saturate(0.7); }
  .standort-card:hover { transform: translateY(-8px); box-shadow: 0 40px 100px rgba(26,31,27,0.14); }

  /* Status Pille farbig (Kapitel 6.3) */
  .standort-live { position: absolute; top: 24px; right: 24px; display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 100px; font-size: 11px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; box-shadow: 0 4px 12px rgba(0,0,0,0.06); z-index: 2; transition: all 0.6s var(--ease); }
  .standort-live.open   { color: #1B7A44; background: #DCF5E3; }
  .standort-live.closed { color: #C72A2A; background: #FDE6E6; }
  .standort-live-dot { width: 8px; height: 8px; border-radius: 50%; position: relative; }
  .standort-live.open .standort-live-dot  { background: #22C55E; box-shadow: 0 0 0 0 rgba(34,197,94,0.7); animation: dotPulseOpen 2s infinite; }
  .standort-live.closed .standort-live-dot { background: #E53E3E; box-shadow: 0 0 0 0 rgba(229,62,62,0.75); animation: dotPulseClosed 1.6s infinite; }
  .standort-live-dot::after { display: none; }
  .standort-live.closed .standort-live-dot::after { background: rgba(212,144,87,0.3); }

  .standort-image { aspect-ratio: 16/10; border-radius: 18px; margin-bottom: 28px; position: relative; overflow: hidden; background: var(--sage-mist); }
  .standort-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
  .standort-card:hover .standort-image img { transform: scale(1.04); }
  .standort-image::after { content:''; position:absolute; top:0; left:-100%; width:50%; height:100%; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent); transition: left 1.2s var(--ease); z-index: 2; }
  .standort-card:hover .standort-image::after { left: 150%; }

  .standort-label { display: inline-flex; align-items: center; gap: 8px; background: var(--sage-mist); color: var(--forest); padding: 7px 14px; border-radius: 100px; font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 18px; }
  .standort-label::before { content:''; width:7px; height:7px; border-radius:50%; background: var(--forest); }

  .standort-name { font-family: 'Fraunces', serif; font-variation-settings: "opsz" 144, "SOFT" 50; font-size: 42px; font-weight: 300; line-height: 1.05; color: var(--ink); margin-bottom: 10px; letter-spacing: -0.025em; }
  .standort-info { display: grid; gap: 6px; padding: 16px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin-bottom: 32px; }
  /* Info-Zeile mit feinem Icon (Barrierefrei, Parken) */
  .info-row.info-row--icon { display: grid; grid-template-columns: 48px 1fr; align-items: start; gap: 0; }
  .info-row:not(.info-row--icon) + .info-row--icon { margin-top: 16px; }
  .info-row.info-row--icon .info-icon { grid-row: 1 / 3; width: 36px; height: 36px; margin-top: 0; --siegel-fill: var(--sage-mist); --siegel-symbol: var(--forest); }
  .info-row.info-row--icon .info-icon svg { width: 100%; height: 100%; display: block; }
  .info-row.info-row--icon .info-icon .siegel-fill { fill: var(--siegel-fill); transition: fill 1.2s cubic-bezier(0.25,0.46,0.45,0.94); }
  .info-row.info-row--icon .info-icon .siegel-symbol { stroke: var(--siegel-symbol); transition: stroke 0.7s cubic-bezier(0.4,0,0.2,1); }
  .info-row.info-row--icon:hover .info-icon { --siegel-fill: var(--forest); --siegel-symbol: var(--cream); }
  .info-row { display: grid; grid-template-columns: 110px 1fr; gap: 16px; align-items: start; }
  .info-label { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--forest); padding-top: 3px; }
  .info-value { font-size: 15px; color: var(--text); line-height: 1.5; font-weight: 500; }
  .info-value a { color: var(--forest); text-decoration: none; border-bottom: 1px solid rgba(42,74,56,0.4); transition: border-color 0.5s var(--ease); font-weight: 600; }
  .info-value a:hover { border-bottom-color: var(--forest); color: var(--forest-ink); }
  .info-row--mail .info-value, .info-row--mail .info-value a { overflow-wrap: anywhere; word-break: break-word; }
  /* KIM-Adresse pro Standort: nur fuer Aerzte/Fachpersonal. Gleiche Schriftgroesse wie die E-Mail
     (KEINE Verkleinerung), einzeilig (nowrap + Ellipsis = Abkuerzung), Klick auf die Adresse kopiert
     sie fuer den KIM-Client. Kein separater Kopieren-Button. */
  .info-value--kim { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; min-width: 0; }
  .kim-addr { max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font: inherit; color: var(--forest); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; border-bottom: none; background: none; border: 0; padding: 0; margin: 0; text-align: left; cursor: pointer; }
  .kim-addr:hover { color: var(--forest-ink); }
  .kim-addr:focus-visible { outline: 2px solid var(--forest); outline-offset: 2px; border-radius: 3px; }
  .kim-addr.is-copied { color: var(--forest-ink); }
  .kim-note { font: inherit; color: #5b6b60; font-weight: 500; }

  .route-box { background: var(--cream-soft); border-radius: 14px; padding: 14px 16px; margin-bottom: 22px; display: flex; align-items: center; gap: 14px; transition: all 0.7s var(--ease); cursor: pointer; border: 1px solid var(--line); text-decoration: none; color: inherit; }
  .route-box:hover { background: var(--sage-mist); transform: translateY(-1px); }
  .route-icon { width: 38px; height: 38px; border-radius: 12px; background: var(--forest); color: var(--cream); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
  .route-text { flex: 1; }
  .route-text strong { display: block; font-size: 13px; color: var(--ink); margin-bottom: 2px; font-weight: 600; }
  .route-text span { font-size: 12px; color: var(--muted); }
  .route-arrow { color: var(--muted); transition: transform 0.6s var(--ease); }
  .route-box:hover .route-arrow { transform: translateX(4px); color: var(--forest); }

  /* Dezente Sekundaer-Navigation zu Google Maps und Apple Karten (Dirk Anforderung)
     Primaer bleibt OSM (Datenschutz), Google und Apple nur als Quick Access */
  .route-alt { display: flex; gap: 8px; margin-top: 16px; margin-bottom: 0; }
  .route-alt-link { flex: 1; padding: 10px 12px; border: 1.5px solid var(--sage); border-radius: 10px; text-decoration: none; color: var(--forest); font-weight: 500; font-size: 11.5px; display: flex; align-items: center; justify-content: center; gap: 7px; transition: all 0.6s var(--ease); background: var(--white); }
  .route-alt-link:hover { border-color: var(--forest); color: var(--forest); background: var(--sage-mist); transform: translateY(-1px); }
  .route-alt-link svg { flex-shrink: 0; opacity: 0.75; }
  .route-alt-link:hover svg { opacity: 1; }

  /* DSGVO Banner dezent am Viewport-Boden (Dirk Anforderung: "im Footerbereich einblendend") */
  .privacy-banner {
    position: fixed; bottom: 20px; left: 20px; right: 20px; max-width: 560px; margin: 0 auto;
    background: var(--forest-ink); color: var(--cream); padding: 14px 18px; border-radius: 16px;
    box-shadow: 0 24px 60px rgba(0,0,0,0.3), 0 0 0 1px rgba(201,173,119,0.12);
    z-index: 900; display: flex; align-items: center; gap: 14px; font-size: 13px; line-height: 1.5;
    transform: translateY(calc(100% + 40px)); transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
  }
  .privacy-banner.visible { transform: translateY(0); }
  .privacy-banner-icon { width: 32px; height: 32px; border-radius: 50%; background: rgba(201,173,119,0.16); color: var(--gold-soft); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
  .privacy-banner-text { flex: 1; min-width: 0; font-size: 12.5px; }
  .privacy-banner-text strong { color: var(--gold-soft); font-weight: 600; }
  .privacy-banner-text a { color: var(--gold-soft); text-decoration: none; border-bottom: 1px solid rgba(201,173,119,0.45); padding-bottom: 1px; }
  .privacy-banner-text a:hover { border-bottom-color: var(--gold); }
  .privacy-banner-close { background: var(--gold); color: var(--forest-ink); border: none; padding: 8px 16px; border-radius: 100px; font-family: inherit; font-size: 12px; font-weight: 600; cursor: pointer; transition: all 0.5s var(--ease); flex-shrink: 0; letter-spacing: 0.01em; }
  .privacy-banner-close:hover { background: var(--gold-soft); transform: translateY(-1px); }
  @media (max-width: 520px) {
    .privacy-banner { bottom: 12px; left: 12px; right: 12px; padding: 12px 14px; gap: 10px; font-size: 12px; }
    .privacy-banner-icon { display: none; }
  }

  .standort-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 24px; }
  .standort-btn { padding: 14px 16px; border-radius: 12px; text-decoration: none; font-size: 14px; font-weight: 500; text-align: center; transition: all 0.8s var(--ease); cursor: pointer; border: 1px solid var(--line-strong); background: var(--white); color: var(--text); font-family: inherit; display: flex; align-items: center; justify-content: center; gap: 8px; }
  .standort-btn:hover { border-color: var(--forest); color: var(--forest); transform: translateY(-1px); box-shadow: 0 10px 25px rgba(26,31,27,0.06); }
  .standort-btn.primary { background: var(--forest); color: var(--cream); border-color: var(--forest); }
  .standort-btn.primary:hover { background: var(--forest-mist); color: var(--cream); border-color: var(--forest-mist); box-shadow: 0 15px 35px rgba(42,74,56,0.3); }

  /* Leaflet Karte pro Standort (Kapitel 6.7) */
  .standort-map { width: 100%; height: 220px; border-radius: 16px; margin-bottom: 18px; overflow: hidden; border: 1px solid var(--line); background: var(--cream-soft); position: relative; z-index: 0; box-shadow: 0 10px 36px rgba(26,31,27,0.20), 0 2px 8px rgba(26,31,27,0.12); }
  .standort-map iframe { display: block; width: 100%; height: 100%; border: 0; }
  .standort-map-consent { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; text-align: center; padding: 18px; background: var(--cream-soft); color: var(--forest); font-family: 'Inter', sans-serif; transition: background 0.5s var(--ease); }
  .standort-map-consent:hover { background: var(--sage-mist); }
  .standort-map-consent svg { opacity: 0.8; }
  .standort-map-consent strong { font-family: 'Fraunces', serif; font-size: 16px; font-weight: 500; }
  .standort-map-consent span { font-size: 11.5px; color: var(--muted); max-width: 280px; line-height: 1.5; }

  /* TEAM */
  .team { background: linear-gradient(180deg, var(--cream) 0%, var(--cream-soft) 100%); padding: 80px 0; scroll-margin-top: -33px; } .team .section-header { margin-bottom: 40px !important; }
  .team-grid { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 48px; padding: 20px 0; }
  .team-card {
    background: var(--white); border-radius: 24px; padding: 40px 36px;
    border: 1px solid rgba(26,31,27,0.05);
    text-align: center; position: relative;
    box-shadow:
      0 1px 2px rgba(26,31,27,0.04),
      0 8px 24px rgba(26,31,27,0.06),
      0 24px 60px rgba(26,31,27,0.08);
    transition: transform 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                box-shadow 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  }
  .team-card:hover {
    transform: translateY(-6px);
    box-shadow:
      0 2px 4px rgba(26,31,27,0.05),
      0 16px 40px rgba(26,31,27,0.09),
      0 40px 100px rgba(26,31,27,0.12);
  }
  .team-photo { width: 160px; height: 160px; border-radius: 50%; margin: 0 auto 28px; overflow: hidden; background: var(--sage-mist); position: relative; box-shadow: 0 12px 30px rgba(26,31,27,0.1); }
  .team-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 22%; }
  .team-photo-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-family: 'Fraunces', serif; color: var(--forest); font-size: 16px; background: linear-gradient(135deg, var(--sage-mist), var(--sage-pale)); }
  .team-name { font-family: 'Fraunces', serif; font-variation-settings: "opsz" 144, "SOFT" 50; font-size: 28px; font-weight: 400; color: var(--ink); margin-bottom: 6px; letter-spacing: -0.01em; }
  .team-role { font-size: 14px; color: var(--forest); font-weight: 600; letter-spacing: 0.05em; margin-bottom: 18px; }
  .team-bio { font-size: 14px; color: var(--muted); line-height: 1.65; }

  /* SERVICES - Hover wird grün */
  .services { background: var(--white); padding: 8px 48px 160px; scroll-margin-top: 68px; }
  .services-grid { max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
  /* Service Hover sanft und weich, Easing ist Custom Cubic fuer ruhigen Gleitstart (Kapitel 4.3 Anspruch) */
  .service-item {
    background: var(--cream); padding: 44px 34px; border-radius: 22px;
    transition: background 2.4s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                transform 1.4s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                box-shadow 1.4s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                border-color 2.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    position: relative; border: 1px solid var(--line); overflow: hidden;
  }
  .service-item:hover {
    background: var(--forest);
    border-color: var(--forest);
    transform: translateY(-6px);
    box-shadow: 0 30px 70px rgba(42,74,56,0.28);
  }

  .service-icon { width: 54px; height: 54px; border-radius: 15px; background: var(--white); display: flex; align-items: center; justify-content: center; margin-bottom: 26px; color: var(--forest); transition: background 2.4s cubic-bezier(0.25, 0.46, 0.45, 0.94), color 1.4s cubic-bezier(0.4, 0, 0.2, 1); box-shadow: 0 4px 12px rgba(0,0,0,0.03); }
  .service-item:hover .service-icon { background: var(--gold-soft); color: var(--forest-ink); }

  .service-number { font-family: 'Fraunces', serif; font-variation-settings: "opsz" 144; font-size: 13px; color: var(--muted-light); margin-bottom: 10px; letter-spacing: 0.12em; font-weight: 500; transition: color 2.4s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
  .service-item:hover .service-number { color: var(--gold-soft); }

  .service-title { font-family: 'Fraunces', serif; font-variation-settings: "opsz" 144, "SOFT" 50; font-size: 25px; font-weight: 400; line-height: 1.2; margin-bottom: 14px; color: var(--ink); letter-spacing: -0.015em; transition: color 2.4s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
  .service-item:hover .service-title { color: var(--cream); }

  .service-desc { font-size: 14.5px; line-height: 1.7; color: var(--muted); transition: color 2.4s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
  .service-item:hover .service-desc { color: rgba(248,245,238,0.85); }

  /* Schwerpunkte Tag Cloud (Kapitel 5.4, 9 jameda Schwerpunkte) */
  .schwerpunkte { max-width: 920px; margin: 0 auto 48px; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; padding: 0 48px; }
  .schwerpunkt-tag { display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; background: var(--white); border: 1px solid var(--line); border-radius: 100px; font-size: 13.5px; color: var(--text); font-weight: 500; transition: all 0.6s var(--ease); }
  .schwerpunkt-tag:hover { border-color: var(--forest); color: var(--forest); transform: translateY(-1px); background: var(--cream-soft); }
  .schwerpunkt-tag::before { content:''; width:5px; height:5px; border-radius:50%; background: var(--gold); flex-shrink: 0; }

  /* TESTIMONIALS Karussell */
  .testimonials { background: var(--cream-soft); padding: 8px 0 160px; overflow: hidden; scroll-margin-top: 68px; }
  .testimonials .section-header { padding: 0 48px; }
  .testimonials-track-wrap {
    position: relative;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: smooth;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }
  .testimonials-track-wrap::-webkit-scrollbar { display: none; }
  .testimonials-track-wrap::before, .testimonials-track-wrap::after { content:''; position:absolute; top:0; bottom:0; width:120px; z-index: 2; pointer-events: none; }
  .testimonials-track-wrap::before { left: 0; background: linear-gradient(90deg, var(--cream-soft), transparent); }
  .testimonials-track-wrap::after { right: 0; background: linear-gradient(-90deg, var(--cream-soft), transparent); }
  .testimonials-track { display: flex; gap: 24px; padding: 20px 48px; width: max-content; }
  .testimonial { scroll-snap-align: start; }
  @keyframes marquee {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
  }
  .testimonial { background: var(--white); border-radius: 24px; padding: 32px 28px 48px; width: 380px; flex-shrink: 0; border: 1px solid var(--line); box-shadow: 0 4px 16px rgba(26,31,27,0.04); position: relative; cursor: pointer; transition: transform 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
  .testimonial.testimonial-no-hint { padding-bottom: 32px; }

  /* TERMIN BUCHEN Section */
  .termin { background: linear-gradient(180deg, var(--cream) 0%, var(--cream-soft) 100%); padding: 60px 48px 160px; scroll-margin-top: -33px; }
  .termin-wrap {
    background: var(--white);
    max-width: 860px;
    margin: 24px auto 0;
    border-radius: 28px;
    padding: 48px 44px;
    box-shadow: 0 20px 60px rgba(26,31,27,0.08), 0 0 0 1px rgba(255,255,255,0.5) inset;
    border: 1px solid var(--line);
    min-height: 480px;
    position: relative;
  }
  .termin-phase { display: none; animation: terminPhaseIn 0.55s cubic-bezier(0.22, 1, 0.36, 1); }
  .termin-phase.active { display: block; }
  @keyframes terminPhaseIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }

  .termin-phase-head { margin-bottom: 28px; text-align: center; }
  .termin-step-badge {
    display: inline-block; padding: 5px 14px; border-radius: 100px;
    background: var(--sage-mist); color: var(--forest);
    font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase;
    margin-bottom: 16px;
  }
  .termin-phase-title {
    font-family: 'Fraunces', serif; font-variation-settings: "opsz" 144, "SOFT" 50;
    font-size: 32px; line-height: 1.2; color: var(--ink); font-weight: 400;
    margin: 0;
  }
  .termin-phase-title em { font-style: italic; color: var(--forest); }

  /* Standort Auswahl Phase 1 */
  .termin-locations { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-bottom: 28px; }
  .termin-location {
    display: flex; flex-direction: column; gap: 14px;
    padding: 28px 24px 24px; border-radius: 22px;
    background: var(--white); border: 1.5px solid var(--line);
    cursor: pointer; text-align: left; font-family: inherit;
    transition: all 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    box-shadow: 0 2px 10px rgba(26,31,27,0.03);
    position: relative;
  }
  .termin-location:hover {
    transform: translateY(-4px);
    border-color: var(--sage);
    background: var(--cream-soft);
    box-shadow: 0 14px 32px rgba(42,74,56,0.1);
  }
  .termin-location[aria-checked="true"] {
    border-color: var(--forest);
    background: linear-gradient(135deg, rgba(122,149,130,0.12), rgba(42,74,56,0.05));
    box-shadow: 0 14px 36px rgba(42,74,56,0.15);
  }
  .termin-location-icon {
    width: 48px; height: 48px; border-radius: 14px;
    background: linear-gradient(135deg, var(--sage-mist), var(--cream-soft));
    color: var(--forest);
    display: flex; align-items: center; justify-content: center;
    transition: all 0.7s var(--ease);
  }
  .termin-location[aria-checked="true"] .termin-location-icon {
    background: linear-gradient(135deg, var(--forest), var(--forest-mist));
    color: var(--gold-soft);
  }
  .termin-location-label {
    font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase;
    color: var(--muted); font-weight: 500;
  }
  .termin-location-name {
    font-family: 'Fraunces', serif; font-size: 22px;
    color: var(--ink); font-weight: 500; line-height: 1.2;
  }
  .termin-location-address {
    font-size: 13px; color: var(--muted); line-height: 1.5;
  }
  .termin-location-meta {
    font-size: 11.5px; color: var(--forest); letter-spacing: 0.04em;
    margin-top: 4px; padding-top: 12px; border-top: 1px solid var(--line);
  }

  /* Bestätigungs Phase: Übersicht vor Submit */
  .confirm-summary {
    background: var(--white);
    border: 1.5px solid var(--line);
    border-radius: 20px;
    padding: 28px;
    margin-bottom: 24px;
    box-shadow: 0 8px 24px rgba(26,31,27,0.06);
  }
  .confirm-doctor-block {
    display: flex; align-items: center; gap: 18px;
    padding: 18px 20px;
    background: linear-gradient(135deg, rgba(168,137,72,0.08), rgba(122,149,130,0.06));
    border: 2px solid var(--gold-soft);
    border-radius: 16px;
    margin-bottom: 20px;
    position: relative;
  }
  .confirm-doctor-block::before {
    content: 'Wichtig prüfen';
    position: absolute;
    top: -10px; left: 18px;
    background: var(--gold-soft);
    color: var(--white);
    font-size: 10px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 3px 10px;
    border-radius: 8px;
    font-weight: 600;
  }
  .confirm-doctor-avatar {
    width: 54px; height: 54px; border-radius: 50%;
    background: linear-gradient(135deg, var(--forest), var(--forest-mist));
    color: var(--gold-soft);
    display: flex; align-items: center; justify-content: center;
    font-family: 'Fraunces', serif; font-size: 19px;
    flex-shrink: 0;
  }
  .confirm-doctor-text strong {
    display: block; font-size: 17px; color: var(--ink); margin-bottom: 2px;
  }
  .confirm-doctor-text span {
    display: block; font-size: 13px; color: var(--muted);
  }
  .confirm-rows {
    display: grid; grid-template-columns: 1fr 1fr; gap: 14px 20px;
    margin-bottom: 20px;
  }
  .confirm-row {
    display: flex; flex-direction: column; gap: 4px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--line);
  }
  .confirm-row-full { grid-column: 1 / -1; }
  .confirm-row-label {
    font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase;
    color: var(--muted); font-weight: 500;
  }
  .confirm-row-value {
    font-size: 14px; color: var(--ink); line-height: 1.5;
  }
  .confirm-row-value strong { font-weight: 600; }
  .confirm-edit-btn {
    background: transparent; border: 1.5px solid var(--line-strong);
    border-radius: 100px;
    padding: 8px 16px;
    font-size: 12px;
    color: var(--forest);
    cursor: pointer;
    transition: all 0.6s var(--ease);
    display: inline-flex; align-items: center; gap: 6px;
    font-family: inherit;
    margin-top: 14px;
  }
  .confirm-edit-btn:hover {
    border-color: var(--forest);
    background: var(--cream-soft);
  }
  .confirm-doctor-confirm {
    display: flex; align-items: center; gap: 12px;
    padding: 14px 18px;
    background: rgba(122,149,130,0.08);
    border: 1px dashed var(--sage);
    border-radius: 12px;
    margin-bottom: 18px;
    cursor: pointer;
  }
  .confirm-doctor-confirm input[type="checkbox"] {
    width: 22px; height: 22px;
    accent-color: var(--forest);
    cursor: pointer;
    flex-shrink: 0;
  }
  .confirm-doctor-confirm-text {
    font-size: 13.5px; color: var(--ink); line-height: 1.5;
  }
  .confirm-doctor-confirm-text strong { color: var(--forest); }

  @media (max-width: 720px) {
    .termin-locations { grid-template-columns: 1fr; }
    .confirm-rows { grid-template-columns: 1fr; }
  }

  /* Doctor Auswahl */
  .termin-doctors { display: flex; flex-direction: column; gap: 14px; margin-bottom: 28px; }
  .termin-doctor {
    display: grid; grid-template-columns: auto 1fr auto; gap: 20px; align-items: center;
    padding: 20px 24px; border-radius: 18px;
    background: var(--white); border: 1.5px solid var(--line);
    cursor: pointer; text-align: left; font-family: inherit;
    transition: all 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    box-shadow: 0 2px 10px rgba(26,31,27,0.03);
  }
  .termin-doctor:hover {
    transform: translateY(-3px);
    border-color: var(--sage);
    background: var(--cream-soft);
    box-shadow: 0 10px 26px rgba(42,74,56,0.1);
  }
  .termin-doctor[aria-checked="true"] {
    border-color: var(--forest);
    background: linear-gradient(135deg, rgba(122,149,130,0.12), rgba(42,74,56,0.05));
    box-shadow: 0 12px 30px rgba(42,74,56,0.15);
  }
  .termin-doctor-avatar {
    width: 56px; height: 56px; border-radius: 50%;
    background: linear-gradient(135deg, var(--sage-mist), var(--cream-soft));
    color: var(--forest);
    display: flex; align-items: center; justify-content: center;
    font-family: 'Fraunces', serif; font-size: 20px; font-weight: 500;
    letter-spacing: 0.05em;
    flex-shrink: 0;
    transition: all 0.7s var(--ease);
  }
  .termin-doctor[aria-checked="true"] .termin-doctor-avatar {
    background: linear-gradient(135deg, var(--forest), var(--forest-mist));
    color: var(--gold-soft);
  }
  .termin-doctor-info strong { display: block; font-size: 16px; color: var(--ink); margin-bottom: 4px; font-weight: 600; }
  .termin-doctor-info span { display: block; font-size: 13px; color: var(--muted); line-height: 1.5; }
  .termin-doctor-info .termin-doctor-spec { font-size: 11.5px; color: var(--forest); margin-top: 6px; letter-spacing: 0.04em; }
  .termin-doctor-check {
    width: 30px; height: 30px; border-radius: 50%;
    background: transparent; border: 1.5px solid var(--line-strong);
    color: transparent;
    display: flex; align-items: center; justify-content: center;
    transition: all 0.6s var(--ease);
    flex-shrink: 0;
  }
  .termin-doctor-check svg { width: 16px; height: 16px; }
  .termin-doctor[aria-checked="true"] .termin-doctor-check {
    background: var(--forest); border-color: var(--forest); color: var(--cream);
  }

  /* =======================================================
     KALENDER MODUL v0.10 · SaaS Standard mit WCAG 2.2 AAA
     Quick Select + Month Picker + Slot Grid
     Feiertage Thüringen + Urlaubssperren
  ======================================================= */

  /* Quick Select Pills */
  .quick-select {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    margin-bottom: 24px;
  }
  .quick-btn {
    background: var(--white);
    border: 2px solid var(--line-strong);
    border-radius: 14px;
    padding: 14px 12px;
    cursor: pointer;
    text-align: left;
    font-family: inherit;
    display: flex; flex-direction: column;
    gap: 4px;
    transition: all 0.4s var(--ease);
    min-height: 80px;
    position: relative;
    color: var(--ink);
  }
  .quick-btn:hover {
    border-color: var(--forest);
    background: var(--cream-soft);
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(42,74,56,0.1);
  }
  .quick-btn:focus-visible {
    outline: 3px solid var(--forest);
    outline-offset: 2px;
  }
  .quick-btn[aria-pressed="true"] {
    border-color: var(--forest);
    background: linear-gradient(135deg, rgba(42,74,56,0.08), rgba(122,149,130,0.05));
  }
  .quick-btn-icon {
    width: 22px; height: 22px;
    color: var(--forest);
    margin-bottom: 2px;
  }
  .quick-btn-label {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--ink);
  }
  .quick-btn-count {
    font-size: 11.5px;
    color: var(--muted);
    font-variant-numeric: tabular-nums;
  }
  .quick-btn-count strong {
    color: var(--forest);
    font-weight: 700;
  }

  /* Cal Split Layout */
  .cal-split {
    display: grid;
    grid-template-columns: 360px 1fr;
    gap: 28px;
    margin-bottom: 24px;
    align-items: start;
  }

  /* Month Picker */
  .cal-picker {
    background: var(--cream-soft);
    border-radius: 18px;
    padding: 20px 18px;
    border: 1px solid var(--line);
  }
  .cal-picker-head {
    display: flex; align-items: center; justify-content: space-between;
    gap: 10px;
    margin-bottom: 16px;
  }
  .cal-picker-nav {
    width: 40px; height: 40px;
    border-radius: 50%;
    background: var(--white);
    border: 1.5px solid var(--line-strong);
    color: var(--forest);
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: all 0.4s var(--ease);
    flex-shrink: 0;
  }
  .cal-picker-nav:hover { background: var(--forest); color: var(--cream); border-color: var(--forest); }
  .cal-picker-nav:focus-visible { outline: 3px solid var(--forest); outline-offset: 2px; }
  .cal-picker-nav:disabled { opacity: 0.35; cursor: not-allowed; }
  .cal-picker-nav:disabled:hover { background: var(--white); color: var(--forest); }
  .cal-picker-month {
    font-family: 'Fraunces', serif;
    font-size: 18px;
    color: var(--forest-ink);
    font-weight: 500;
    text-align: center;
    flex: 1;
  }

  .cal-picker-weekdays {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 4px;
    margin-bottom: 8px;
  }
  .cal-picker-weekdays span {
    text-align: center;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--forest);
    padding: 6px 0;
  }

  .cal-picker-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 4px;
  }
  .cal-day {
    aspect-ratio: 1;
    border-radius: 10px;
    background: transparent;
    border: 1.5px solid transparent;
    cursor: pointer;
    font-family: inherit;
    font-size: 14px;
    font-weight: 500;
    color: var(--ink);
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    position: relative;
    min-height: 44px;
    min-width: 44px;
    transition: all 0.3s var(--ease);
    padding: 2px;
  }
  .cal-day:hover:not(:disabled) {
    background: var(--white);
    border-color: var(--sage);
  }
  .cal-day:focus-visible {
    outline: 3px solid var(--forest);
    outline-offset: 2px;
    z-index: 2;
  }
  .cal-day.other-month {
    color: var(--muted-light);
    opacity: 0.45;
    pointer-events: none;
  }
  .cal-day.past {
    color: var(--muted-light);
    pointer-events: none;
    text-decoration: line-through;
    opacity: 0.4;
  }
  .cal-day.available {
    background: var(--white);
    border-color: var(--line);
  }
  .cal-day.available::after {
    content: '';
    position: absolute;
    bottom: 5px;
    width: 4px; height: 4px;
    border-radius: 50%;
    background: var(--sage);
  }
  .cal-day.few::after { background: var(--gold); }
  .cal-day.none {
    color: var(--muted-light);
    background: repeating-linear-gradient(135deg, transparent 0, transparent 4px, rgba(26,31,27,0.04) 4px, rgba(26,31,27,0.04) 5px);
    pointer-events: none;
  }
  .cal-day.closed {
    color: var(--muted-light);
    background: var(--cream);
    pointer-events: none;
    opacity: 0.6;
  }
  .cal-day.holiday {
    color: #9E2B2B;
    background: #FCECEC;
    pointer-events: none;
    font-weight: 600;
  }
  .cal-day.holiday::before {
    content: '★';
    position: absolute;
    top: 3px; right: 4px;
    font-size: 9px;
    color: #C72A2A;
  }
  .cal-day.vacation {
    color: var(--gold);
    background: rgba(201,173,119,0.15);
    pointer-events: none;
  }
  .cal-day.vacation::before {
    content: '✈';
    position: absolute;
    top: 3px; right: 4px;
    font-size: 10px;
    color: var(--gold);
  }
  .cal-day.today {
    outline: 2px dashed var(--forest);
    outline-offset: -4px;
    font-weight: 700;
  }
  .cal-day.selected {
    background: var(--forest) !important;
    color: var(--cream) !important;
    border-color: var(--forest) !important;
    box-shadow: 0 6px 16px rgba(42,74,56,0.3);
  }
  .cal-day.selected::after { background: var(--gold-soft); }

  .cal-picker-legend {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
    display: flex; flex-wrap: wrap;
    gap: 10px 14px;
    font-size: 11px;
    color: var(--muted);
  }
  .cal-picker-legend span {
    display: inline-flex; align-items: center; gap: 5px;
  }
  .cal-picker-legend .dot {
    width: 8px; height: 8px; border-radius: 50%;
    flex-shrink: 0;
  }
  .cal-picker-legend .dot.free { background: var(--sage); }
  .cal-picker-legend .dot.few { background: var(--gold); }
  .cal-picker-legend .dot.none { background: var(--muted-light); }
  .cal-picker-legend .dot.holiday { background: #C72A2A; }
  .cal-picker-legend .dot.vacation { background: var(--gold-soft); border: 1px dashed var(--gold); }

  /* Slots Panel rechts */
  .cal-slots {
    background: var(--white);
    border-radius: 18px;
    border: 1px solid var(--line);
    padding: 22px 24px;
    min-height: 420px;
    display: flex; flex-direction: column;
  }
  .cal-slots-head {
    padding-bottom: 16px;
    margin-bottom: 18px;
    border-bottom: 1px solid var(--line);
  }
  .cal-slots-date {
    font-family: 'Fraunces', serif;
    font-size: 22px;
    color: var(--ink);
    font-weight: 500;
    line-height: 1.2;
  }
  .cal-slots-date em {
    font-style: italic;
    color: var(--forest);
  }
  .cal-slots-sub {
    font-size: 13px;
    color: var(--muted);
    margin-top: 4px;
    line-height: 1.5;
  }
  .cal-slots-sub strong {
    color: var(--forest-ink);
    font-weight: 600;
  }

  .cal-slots-empty {
    flex: 1;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    text-align: center;
    color: var(--muted);
    padding: 40px 20px;
  }
  .cal-slots-empty svg {
    width: 48px; height: 48px;
    color: var(--muted-light);
    margin-bottom: 14px;
  }
  .cal-slots-empty strong {
    display: block;
    font-family: 'Fraunces', serif;
    font-size: 17px;
    color: var(--ink);
    margin-bottom: 4px;
    font-weight: 500;
  }
  .cal-slots-empty span {
    font-size: 13px;
    color: var(--muted);
    max-width: 300px;
    line-height: 1.5;
  }

  .cal-slots-group + .cal-slots-group {
    margin-top: 22px;
  }
  .cal-slots-group-title {
    display: flex; align-items: center; gap: 10px;
    font-size: 11.5px; font-weight: 700;
    letter-spacing: 0.14em; text-transform: uppercase;
    color: var(--forest);
    margin-bottom: 12px;
  }
  .cal-slots-group-title svg {
    color: var(--gold);
    width: 16px; height: 16px;
    flex-shrink: 0;
  }
  .cal-slots-group-title span:last-child {
    color: var(--muted);
    font-weight: 500;
    letter-spacing: 0.04em;
    text-transform: none;
    font-size: 12px;
    margin-left: auto;
  }

  .cal-slots-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(82px, 1fr));
    gap: 8px;
  }
  .cal-time-slot {
    padding: 12px 8px;
    border-radius: 10px;
    background: var(--white);
    border: 1.5px solid var(--line-strong);
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
    cursor: pointer;
    transition: all 0.3s var(--ease);
    min-height: 73px;
    position: relative;
  }
  .cal-time-slot:hover:not(:disabled) {
    background: var(--sage);
    color: var(--white);
    border-color: var(--sage);
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(122,149,130,0.3);
  }
  .cal-time-slot:focus-visible {
    outline: 3px solid var(--forest);
    outline-offset: 2px;
    z-index: 2;
  }
  .cal-time-slot.taken {
    background: transparent;
    color: var(--muted-light);
    cursor: not-allowed;
    border-style: dashed;
    border-color: var(--line);
    text-decoration: line-through;
  }
  .cal-time-slot.selected {
    background: var(--forest);
    color: var(--cream);
    border-color: var(--forest);
    box-shadow: 0 6px 18px rgba(42,74,56,0.3);
  }
  .cal-time-slot.selected:hover { background: var(--forest-ink); }

  /* Day Info Bar oben in Slots Panel bei Feiertag/Urlaub */
  .cal-day-notice {
    padding: 14px 16px;
    border-radius: 12px;
    display: flex; align-items: center; gap: 12px;
    font-size: 13px;
    line-height: 1.5;
    margin-bottom: 8px;
  }
  .cal-day-notice.holiday {
    background: #FCECEC;
    color: #9E2B2B;
    border: 1px solid rgba(229,62,62,0.25);
  }
  .cal-day-notice.vacation {
    background: rgba(201,173,119,0.12);
    color: var(--forest-ink);
    border: 1px solid rgba(201,173,119,0.3);
  }
  .cal-day-notice.closed {
    background: var(--cream-soft);
    color: var(--muted);
    border: 1px solid var(--line);
  }
  .cal-day-notice svg { flex-shrink: 0; }
  .cal-day-notice strong { display: block; font-size: 13.5px; font-weight: 600; margin-bottom: 2px; }
  .cal-day-notice span { font-size: 12.5px; opacity: 0.85; }

  /* Screenreader only Helfer für WCAG AAA */
  .sr-only {
    position: absolute !important;
    width: 1px !important; height: 1px !important;
    padding: 0 !important; margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0,0,0,0) !important;
    white-space: nowrap !important;
    border: 0 !important;
  }

  /* Patient Präferenzen Box in Phase 4 */
  .patient-prefs {
    background: linear-gradient(135deg, rgba(201,173,119,0.08), rgba(122,149,130,0.04));
    border: 1px solid rgba(201,173,119,0.3);
    border-radius: 14px;
    padding: 18px 20px;
    margin: 18px 0 14px;
  }
  .patient-prefs-head {
    display: flex; gap: 12px; align-items: flex-start;
    padding-bottom: 14px; margin-bottom: 14px;
    border-bottom: 1px dashed rgba(201,173,119,0.3);
  }
  .patient-prefs-head svg { color: var(--gold); flex-shrink: 0; margin-top: 2px; }
  .patient-prefs-head strong {
    display: block;
    font-family: 'Fraunces', serif;
    font-size: 15px;
    color: var(--ink);
    font-weight: 500;
    margin-bottom: 3px;
  }
  .patient-prefs-head span {
    font-size: 12.5px;
    color: var(--muted);
    line-height: 1.5;
  }

  .pref-option {
    display: grid;
    grid-template-columns: 22px 1fr auto;
    gap: 12px;
    align-items: flex-start;
    padding: 12px 0;
    cursor: pointer;
  }
  .pref-option + .pref-option {
    border-top: 1px solid rgba(26,31,27,0.06);
  }
  .pref-option input[type="checkbox"] {
    width: 20px; height: 20px;
    cursor: pointer;
    accent-color: var(--forest);
    margin-top: 2px;
  }
  .pref-option input[type="checkbox"]:focus-visible {
    outline: 3px solid var(--forest);
    outline-offset: 2px;
  }
  .pref-option-text {
    line-height: 1.5;
  }
  .pref-option-text strong {
    display: block;
    font-size: 13.5px;
    color: var(--ink);
    font-weight: 600;
    margin-bottom: 3px;
  }
  .pref-option-text span {
    display: block;
    font-size: 12px;
    color: var(--muted);
  }
  .pref-option-badge {
    padding: 3px 9px;
    border-radius: 100px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    flex-shrink: 0;
    align-self: center;
  }
  .pref-default { background: var(--forest); color: var(--cream); }
  .pref-optional { background: var(--cream-deep); color: var(--forest); }

  /* Success Extras: Anfahrt + Absage Link */
  .success-anfahrt {
    max-width: 540px; margin: 16px auto 0;
    background: var(--cream-soft);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 18px 20px;
    text-align: left;
    display: grid; grid-template-columns: 22px 1fr auto; gap: 14px;
    align-items: start;
  }
  .success-anfahrt-icon { color: var(--forest); margin-top: 2px; }
  .success-anfahrt-body strong {
    display: block;
    font-family: 'Fraunces', serif;
    font-size: 14.5px; color: var(--ink);
    font-weight: 500; margin-bottom: 3px;
  }
  .success-anfahrt-body span {
    display: block;
    font-size: 12.5px; color: var(--muted);
    line-height: 1.5;
  }
  .success-anfahrt-body em {
    font-style: normal;
    color: var(--forest-ink);
    font-weight: 500;
  }
  .success-anfahrt-link {
    padding: 7px 14px;
    background: var(--white);
    border: 1px solid var(--line-strong);
    border-radius: 10px;
    font-size: 11.5px; font-weight: 600;
    color: var(--forest); text-decoration: none;
    white-space: nowrap;
    transition: all 0.4s var(--ease);
    align-self: center;
  }
  .success-anfahrt-link:hover {
    background: var(--forest); color: var(--cream); border-color: var(--forest);
  }
  .success-anfahrt-link:focus-visible {
    outline: 3px solid var(--forest);
    outline-offset: 2px;
  }

  .success-absage {
    max-width: 540px; margin: 12px auto 0;
    background: rgba(229,62,62,0.04);
    border: 1px dashed rgba(229,62,62,0.25);
    border-radius: 14px;
    padding: 14px 18px;
    text-align: left;
    display: flex; align-items: center; gap: 12px;
    font-size: 12.5px; color: var(--muted);
    line-height: 1.5;
  }
  .success-absage svg { color: #C72A2A; flex-shrink: 0; }
  .success-absage a {
    color: #C72A2A;
    text-decoration: underline;
    font-weight: 600;
  }
  .success-absage a:focus-visible {
    outline: 3px solid #C72A2A;
    outline-offset: 2px;
    border-radius: 4px;
  }

  /* Selected Info Box */
  .termin-selected-box {
    display: flex; align-items: center; gap: 14px;
    padding: 16px 20px; background: linear-gradient(135deg, rgba(201,173,119,0.1), rgba(122,149,130,0.05));
    border: 1px solid rgba(201,173,119,0.35); border-radius: 14px;
    margin-bottom: 24px;
  }
  .termin-selected-box svg { color: var(--forest); flex-shrink: 0; }
  .termin-selected-box strong { display: block; font-size: 15px; color: var(--ink); font-weight: 600; }
  .termin-selected-box span { display: block; font-size: 13px; color: var(--muted); margin-top: 2px; }

  /* Chips für Versicherung und Status */
  .termin-chips { display: flex; gap: 8px; flex-wrap: wrap; }
  .termin-chip {
    padding: 10px 18px; border-radius: 100px;
    background: var(--white); border: 1.5px solid var(--line);
    font-family: inherit; font-size: 13px; color: var(--ink); font-weight: 500;
    cursor: pointer; transition: all 0.5s var(--ease);
  }
  .termin-chip:hover { border-color: var(--sage); background: var(--cream-soft); }
  .termin-chip[aria-checked="true"] {
    background: var(--forest); color: var(--cream); border-color: var(--forest);
    box-shadow: 0 4px 12px rgba(42,74,56,0.2);
  }

  /* Actions */
  .termin-actions {
    display: flex; justify-content: space-between; gap: 14px;
    margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--line);
  }
  .termin-btn-next, .termin-btn-back {
    padding: 14px 26px; border-radius: 14px; font-family: inherit;
    font-size: 14px; font-weight: 600; cursor: pointer;
    display: inline-flex; align-items: center; gap: 10px;
    transition: all 0.6s var(--ease);
    border: none;
  }
  .termin-btn-next { background: var(--forest); color: var(--cream); margin-left: auto; }
  .termin-btn-next:hover:not(:disabled) { background: var(--forest-ink); transform: translateY(-1px); box-shadow: 0 14px 32px rgba(42,74,56,0.25); }
  .termin-btn-next:disabled { background: var(--muted-light); cursor: not-allowed; opacity: 0.6; }
  .termin-btn-back { background: transparent; color: var(--muted); border: 1px solid var(--line); }
  .termin-btn-back:hover { color: var(--forest); border-color: var(--forest); }

  /* Success Phase */
  .termin-success { text-align: center; padding: 20px 0; }
  .termin-success-icon {
    width: 80px; height: 80px; margin: 0 auto 24px;
    border-radius: 50%;
    background: linear-gradient(135deg, rgba(34,197,94,0.15), rgba(122,149,130,0.1));
    color: #1B7A44;
    display: flex; align-items: center; justify-content: center;
    animation: successPop 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
  }
  @keyframes successPop { from { transform: scale(0); opacity: 0; } to { transform: scale(1); opacity: 1; } }
  .termin-success h3 {
    font-family: 'Fraunces', serif; font-variation-settings: "opsz" 144, "SOFT" 50;
    font-size: 32px; color: var(--ink); font-weight: 400;
    margin-bottom: 10px;
  }
  .termin-success h3 em { font-style: italic; color: var(--forest); }
  .termin-success > p { color: var(--muted); font-size: 15px; margin-bottom: 32px; line-height: 1.6; }
  .termin-success-hints { display: flex; flex-direction: column; gap: 12px; max-width: 540px; margin: 0 auto 28px; text-align: left; }
  .termin-success-hint {
    display: flex; gap: 14px; align-items: flex-start;
    padding: 16px 18px; background: var(--cream-soft); border-radius: 14px;
    border: 1px solid var(--line);
  }
  .termin-success-hint svg { color: var(--forest); flex-shrink: 0; width: 22px; height: 22px; margin-top: 2px; }
  .termin-success-hint strong { display: block; font-size: 14px; color: var(--ink); font-weight: 600; margin-bottom: 3px; }
  .termin-success-hint span { display: block; font-size: 12.5px; color: var(--muted); line-height: 1.55; }



  .testimonial:hover { transform: translateY(-4px); box-shadow: 0 20px 50px rgba(26,31,27,0.1); }
  .testimonial-more { position: absolute; bottom: 18px; left: 28px; font-size: 11.5px; font-weight: 600; letter-spacing: 0.06em; color: var(--forest); display: inline-flex; align-items: center; gap: 6px; text-transform: uppercase; opacity: 0.7; transition: opacity 0.6s var(--ease), gap 0.6s var(--ease); }
  .testimonial:hover .testimonial-more { opacity: 1; gap: 10px; }
  .testimonial-more svg { width: 12px; height: 12px; }
  .testimonial-stars { color: var(--gold); margin-bottom: 16px; letter-spacing: 0.1em; font-size: 16px; }
  .testimonial-text { font-family: 'Fraunces', serif; font-variation-settings: "opsz" 144, "SOFT" 70; font-size: 17px; line-height: 1.55; color: var(--ink); margin-bottom: 20px; font-weight: 400; min-height: calc(17px * 1.55 * 4); display: -webkit-box; -webkit-line-clamp: 4; line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
  .testimonial-author { display: flex; align-items: center; gap: 12px; padding-top: 18px; border-top: 1px solid var(--line); }
  .testimonial-avatar { width: 40px; height: 40px; border-radius: 50%; background: var(--sage-mist); color: var(--forest); display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: 14px; flex-shrink: 0; }
  .testimonial-info strong { display: block; font-size: 14px; color: var(--ink); font-weight: 600; margin-bottom: 2px; }
  .testimonial-info span { font-size: 12px; color: var(--muted); }

  /* Source Badges Testimonials (Kapitel 6.8) */
  .testimonial-source { position: absolute; top: 20px; right: 20px; display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: 100px; font-size: 10.5px; font-weight: 600; letter-spacing: 0.04em; }
  .testimonial-source.jameda { background: #E8F5F1; color: #00936C; }
  .testimonial-source.google { background: #F4F9FE; color: #4285F4; }
  .testimonial-source svg { width: 12px; height: 12px; }

  /* REZEPT */
  .rezept { background: linear-gradient(180deg, var(--cream-soft) 0%, var(--sage-mist) 100%); padding: 55px 48px 120px; scroll-margin-top: -33px; } .termin .section-header { margin-bottom: 40px !important; } .rezept .section-header { margin-bottom: 40px !important; }
  .rezept-wrap { max-width: 1120px; margin: 0 auto; background: var(--white); border-radius: 32px; overflow: hidden; display: grid; grid-template-columns: 1fr 1.25fr; box-shadow: 0 50px 120px rgba(26,31,27,0.12); border: 1px solid var(--line); }
  .rezept-side { background: linear-gradient(180deg, var(--forest) 0%, var(--forest-ink) 100%); color: var(--cream); padding: 56px 44px; position: relative; overflow: hidden; }
  .rezept-side::before { content:''; position:absolute; top:-100px; right:-100px; width:400px; height:400px; background: radial-gradient(circle, rgba(201,173,119,0.2) 0%, transparent 70%); animation: rezeptGlow 10s ease-in-out infinite; }
  @keyframes rezeptGlow { 0%,100%{transform: translate(0,0) scale(1); opacity: 0.6;} 50%{transform: translate(-30px,40px) scale(1.15); opacity: 1;} }

  .rezept-side-content { position: relative; z-index: 1; }
  .rezept-side h3 { font-family: 'Fraunces', serif; font-variation-settings: "opsz" 144, "SOFT" 50; font-size: 38px; font-weight: 300; line-height: 1.15; margin-bottom: 22px; letter-spacing: -0.02em; }
  .rezept-side h3 em { font-style: italic; color: var(--gold-soft); }
  .rezept-side p { font-size: 15px; color: rgba(248,245,238,0.8); margin-bottom: 36px; line-height: 1.7; }

  /* DSGVO Seal prominent im Rezept Bereich (Kapitel 6.4) */
  .dsgvo-seal { display: flex; align-items: center; gap: 16px; padding: 22px 22px; background: rgba(201,173,119,0.08); border: 1px solid rgba(201,173,119,0.35); border-radius: 18px; margin-bottom: 32px; position: relative; z-index: 1; }
  .dsgvo-seal-icon { width: 46px; height: 46px; border-radius: 12px; background: linear-gradient(135deg, var(--gold), var(--gold-soft)); color: var(--forest-ink); display: flex; align-items: center; justify-content: center; flex-shrink: 0; box-shadow: 0 6px 16px rgba(201,173,119,0.3); }
  .dsgvo-seal-text strong { display: block; color: var(--gold-soft); font-size: 14px; font-weight: 600; letter-spacing: 0.03em; margin-bottom: 3px; }
  .dsgvo-seal-text span { display: block; color: rgba(248,245,238,0.75); font-size: 12.5px; line-height: 1.4; }
  .rezept-trust { margin-top: 36px; padding-top: 32px; border-top: 1px solid rgba(248,245,238,0.15); }
  .trust-item { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 22px; transition: transform 0.6s var(--ease); }
  .trust-item:hover { transform: translateX(4px); }
  .trust-icon-wrap { width: 36px; height: 36px; flex-shrink: 0; background: rgba(248,245,238,0.1); border-radius: 10px; display: flex; align-items: center; justify-content: center; color: var(--gold-soft); transition: all 0.6s var(--ease); }
  .trust-item:hover .trust-icon-wrap { background: var(--gold); color: var(--forest-ink); }
  .trust-text { font-size: 13px; color: rgba(248,245,238,0.75); line-height: 1.55; }
  .trust-text strong { display: block; color: var(--cream); margin-bottom: 3px; font-weight: 600; font-size: 14px; }

  .rezept-form { padding: 56px 48px; background: var(--white); }
  .form-tabs { display: flex; gap: 4px; margin-bottom: 32px; background: var(--cream-soft); padding: 4px; border-radius: 100px; width: fit-content; border: 1px solid var(--line); }
  .tab { padding: 10px 22px; border-radius: 100px; font-size: 13px; font-weight: 500; color: var(--muted); cursor: pointer; transition: all 0.7s var(--ease); border: none; background: transparent; font-family: inherit; }
  .tab.active { background: var(--forest); color: var(--cream); box-shadow: 0 8px 20px rgba(42,74,56,0.2); }

  .form-group { margin-bottom: 20px; }
  .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
  .form-label { display: block; font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--forest); margin-bottom: 8px; }
  .form-input, .form-select { width: 100%; padding: 15px 17px; background: var(--cream); border: 1px solid var(--line); border-radius: 12px; font-family: inherit; font-size: 15px; color: var(--ink); transition: all 0.7s var(--ease); }
  .form-input:focus, .form-select:focus { outline: none; border-color: var(--forest); background: var(--white); box-shadow: 0 0 0 4px var(--sage-mist); transform: translateY(-1px); }
  .form-textarea { min-height: 90px; resize: vertical; font-family: inherit; }
  .form-submit { width: 100%; padding: 18px; background: var(--forest); color: var(--cream); border: none; border-radius: 14px; font-family: inherit; font-size: 15px; font-weight: 500; cursor: pointer; margin-top: 8px; transition: all 0.8s var(--ease); display: flex; align-items: center; justify-content: center; gap: 12px; position: relative; overflow: hidden; }
  .form-submit::before { content:''; position:absolute; inset:0; background: linear-gradient(90deg, transparent, rgba(201,173,119,0.3), transparent); transform: translateX(-100%); transition: transform 0.9s var(--ease); }
  .form-submit:hover { background: var(--forest-mist); transform: translateY(-2px); box-shadow: 0 20px 45px rgba(42,74,56,0.3); }
  .form-submit:hover::before { transform: translateX(100%); }

  /* NOTFALL */
  .notfall { background: var(--cream); padding: 70px 48px 70px; scroll-margin-top: 68px; }
  .notfall-wrap { max-width: 1280px; margin: 0 auto; background: var(--white); border-radius: 28px; padding: 52px 56px; display: grid; grid-template-columns: 1fr; gap: 36px; align-items: stretch; position: relative; overflow: hidden; border: 1px solid var(--line); box-shadow: 0 30px 80px rgba(26,31,27,0.06); }
  .notfall-wrap::before { content:''; position:absolute; top:-120px; right:-120px; width:340px; height:340px; border-radius: 50%; background: var(--sage-mist); opacity: 0.5; animation: notfallPulse 12s ease-in-out infinite; }
  @keyframes notfallPulse { 0%,100%{transform: scale(1) translate(0,0);} 50%{transform: scale(1.08) translate(-20px,20px);} }
  .notfall-intro { position: relative; z-index: 1; }
  .notfall-label { display: inline-flex; align-items: center; gap: 10px; color: var(--forest); font-size: 12px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; margin-bottom: 18px; }
  .notfall-label-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--forest); position: relative; }
  .notfall-label-dot::after { content:''; position:absolute; inset:-4px; border-radius: 50%; background: rgba(42,74,56,0.35); animation: breath 2.5s ease-in-out infinite; }
  .notfall-title { text-align: center; font-family: 'Fraunces', serif; font-variation-settings: "opsz" 144, "SOFT" 50; font-size: 34px; font-weight: 300; line-height: 1.2; color: var(--ink); letter-spacing: -0.02em; }
  .notfall-numbers { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 22px; position: relative; z-index: 1; }
  .notfall-number { background: var(--cream); padding: 26px 22px; border-radius: 16px; border: 1px solid var(--line-strong); transition: all 0.8s var(--ease); cursor: pointer; text-decoration: none; display: block; box-shadow: 0 4px 16px rgba(26,31,27,0.04), 0 1px 3px rgba(26,31,27,0.04);  text-align: center; align-items: center; position: relative; z-index: 1; }
  .notfall-number:hover { border-color: var(--forest); transform: scale(1.2); background: var(--white); box-shadow: 0 25px 50px rgba(26,31,27,0.10), 0 4px 12px rgba(26,31,27,0.06); z-index: 5; }
  .notfall-type { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
  .notfall-tel { font-family: 'Fraunces', serif; font-variation-settings: "opsz" 144, "SOFT" 50; font-size: 30px; font-weight: 400; color: var(--forest); line-height: 1.05; margin-bottom: 6px; letter-spacing: -0.025em; white-space: nowrap; }
  .notfall-desc { font-size: 13px; color: var(--muted); }
  .notfall-pharmacy { display: block; background: var(--cream); border-radius: 16px; border: 1px solid var(--line-strong); padding: 14px 28px; margin-top: -15px; text-decoration: none; color: inherit; transition: all 0.4s var(--ease); position: relative; z-index: 1; box-shadow: 0 4px 16px rgba(26,31,27,0.04), 0 1px 3px rgba(26,31,27,0.04); }
  /* Kein Hover-Aufhellen mehr: Karte bleibt immer gleich (cream), sonst bleibt der Touch-Hover kleben. */
  .notfall-pharmacy-header { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; }
  .notfall-pharmacy-state { font-size: 14px; color: var(--forest); font-weight: 500; }
  .notfall-pharmacy-period { font-size: 13px; color: var(--muted); }
  .notfall-pharmacy-body { display: grid; grid-template-columns: 1fr 1.4fr; gap: 32px; margin-top: 22px; align-items: stretch; }
  .notfall-pharmacy-when { font-size: 13px; color: var(--muted, #5A615C); margin-top: 0; }
  .notfall-pharmacy-when .nfw-m { display: none; }
  .notfall-pharmacy-logo.no-pulse { animation: none; }
  .notfall-pharmacy-info-column { position: relative; }
  .notfall-pharmacy-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--line-strong, rgba(42,74,56,0.2)); background: var(--white, #fff); color: var(--forest, #2a4a38); font-size: 22px; line-height: 1; padding: 0; display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 4; box-shadow: 0 2px 8px rgba(26,31,27,0.10); transition: background 0.25s ease, color 0.25s ease; }
  .notfall-pharmacy-nav:hover { background: var(--forest, #2a4a38); color: #fff; }
  .notfall-pharmacy-nav:disabled { opacity: 0.28; cursor: default; }
  .notfall-pharmacy-nav-prev { left: -32px; right: auto; }
  .notfall-pharmacy-nav-next { right: max(8px, calc(50% - 134px)); left: auto; }
  .notfall-pharmacy-info-column { display: flex; flex-direction: column; align-items: center; justify-content: space-between; gap: 14px; }
  .notfall-pharmacy-actions-column { display: flex; flex-direction: column; align-items: center; width: 100%; justify-content: space-between; gap: 14px; }
  .notfall-pharmacy-actions { display: flex; flex-direction: row; gap: 12px; justify-content: stretch; width: 100%; }
  .notfall-pharmacy-extras { display: flex; flex-direction: column; gap: 12px; font-size: 13px; color: var(--muted); line-height: 1.5; max-width: 600px; width: 100%; margin: 18px auto 0; }
  .notfall-pharmacy-extra-item { padding-left: 12px; border-left: 2px solid var(--forest); }
  .notfall-pharmacy-extra-item strong { color: var(--ink); font-weight: 600; }
  .notfall-pharmacy-info { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 8px; position: relative; margin-top: -7px; }
  .notfall-pharmacy-info-text { display: flex; flex-direction: column; gap: 6px; }
  .notfall-pharmacy-logo { position: absolute; right: 100%; margin-right: 20px; top: 0; bottom: 0; margin-top: auto; margin-bottom: auto; height: 92px; width: auto; transform-origin: center; animation: apoHeartbeat 3s ease-in-out infinite; }
  @keyframes apoHeartbeat { 0% { transform: scale(1); } 6% { transform: scale(1.11); } 13% { transform: scale(1); } 20% { transform: scale(1.11); } 27% { transform: scale(1); } 100% { transform: scale(1); } }
  @media (prefers-reduced-motion: reduce) { .notfall-pharmacy-logo, .pm-ovl-apotheke::before { animation: none; } }
  @media (min-width: 768px) { .notfall-pharmacy-logo, .pm-ovl-apotheke::before { animation-duration: 5s; } }
  @media (max-width: 600px) {
    .notfall-pharmacy-info { flex-direction: row; align-items: center; justify-content: space-between; text-align: left; width: 100%; gap: 14px; }
    .notfall-pharmacy-info-text { order: 1; align-items: flex-start; }
    .notfall-pharmacy-logo { position: static; order: 2; height: 78px; margin: 0; flex-shrink: 0; }
    .notfall-pharmacy .notfall-pharmacy-name { font-size: 18px; white-space: nowrap; }
    .notfall-pharmacy-when { white-space: nowrap; }
    .notfall-pharmacy-when .nfw-d { display: none; }
    .notfall-pharmacy-when .nfw-m { display: inline; }
    .notfall-pharmacy-nav { top: 24px; transform: none; width: 26px; height: 26px; font-size: 18px; }
    .notfall-pharmacy-nav-prev { left: -26px; right: auto; }
    .notfall-pharmacy-nav-next { right: -21px; left: auto; }
    .notfall-type .nft-kreis { display: none; }
  }
  .notfall-pharmacy-services { display: flex; flex-direction: column; align-items: center; gap: 14px; margin-top: 4px; width: 100%; }
  .notfall-pharmacy-service-link { color: var(--forest); text-decoration: none; font-size: 13px; border-bottom: 1px dashed var(--forest); padding-bottom: 1px; transition: opacity 0.3s ease; }
  .notfall-pharmacy-service-link:hover { opacity: 0.7; }
  .notfall-pharmacy-route-action { font-family: 'Fraunces', serif; font-size: 15px; font-weight: 400; letter-spacing: -0.01em; color: var(--ink); display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
  .notfall-pharmacy-overlay-trigger { background: none; border: none; color: var(--forest); text-decoration: none; font-size: 13px; border-bottom: 1px dashed var(--forest); padding: 0 0 1px 0; cursor: pointer; font-family: inherit; transition: opacity 0.3s ease; }
  .notfall-pharmacy-overlay-trigger:hover { opacity: 0.7; }
  .notfall-pharmacy-overlay-backdrop { position: fixed; inset: 0; background: rgba(26,31,27,0.45); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); display: flex; align-items: center; justify-content: center; z-index: 9999; padding: 24px; opacity: 0; visibility: hidden; transition: opacity 0.4s ease, visibility 0.4s ease; }
  .notfall-pharmacy-overlay-backdrop.active { opacity: 1; visibility: visible; }
  .notfall-pharmacy-overlay { background: var(--cream); border-radius: 22px; width: 100%; max-width: 980px; max-height: 90vh; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 30px 80px rgba(26,31,27,0.32), 0 10px 24px rgba(26,31,27,0.12); transform: translateY(24px) scale(0.96); transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1); }
  .notfall-pharmacy-overlay-backdrop.active .notfall-pharmacy-overlay { transform: translateY(0) scale(1); }
  .notfall-pharmacy-overlay-header { padding: 22px 28px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); flex-shrink: 0; }
  .notfall-pharmacy-overlay-title { font-family: 'Fraunces', serif; font-size: 22px; font-weight: 400; margin: 0; letter-spacing: -0.01em; color: var(--ink); }
  .notfall-pharmacy-overlay-close { background: var(--white); border: 1px solid var(--line); border-radius: 50%; width: 38px; height: 38px; font-size: 20px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; color: var(--ink); transition: all 0.3s ease; padding: 0; }
  .notfall-pharmacy-overlay-close:hover { background: var(--forest); color: var(--white); border-color: var(--forest); transform: scale(1.05); }
  .notfall-pharmacy-overlay-body { padding: 22px 28px; overflow-y: auto; display: flex; flex-direction: column; gap: 10px; }
  .notfall-pharmacy-overlay-row { display: grid; grid-template-columns: 240px 1fr 1fr 150px; gap: 16px; align-items: center; padding: 14px 18px; background: var(--white); border: 1px solid var(--line); border-radius: 12px; }
  .notfall-pharmacy-overlay-row:hover { border-color: var(--forest); box-shadow: 0 6px 20px rgba(26,31,27,0.06); }
  .notfall-pharmacy-overlay-row-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
  .notfall-pharmacy-overlay-row-period { font-size: 13px; color: var(--muted); font-weight: 500; line-height: 1.45; }
  .notfall-pharmacy-overlay-row-period .weekday { display: inline-block; width: 24px; font-weight: 600; color: var(--ink); }
  .notfall-pharmacy-overlay-row-period .datepart { font-weight: 600; color: var(--ink); }
  .notfall-pharmacy-overlay-row-badge { background: var(--forest); color: var(--white); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; padding: 4px 10px; border-radius: 999px; font-weight: 500; }
  .notfall-pharmacy-overlay-row-name { font-family: 'Fraunces', serif; font-size: 17px; font-weight: 500; color: var(--ink); display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-left: -5px; }
  .notfall-pharmacy-overlay-row-address { color: var(--muted); font-size: 13px; }
  .notfall-pharmacy-overlay-row-tel { display: inline-flex; align-items: center; gap: 6px; margin-top: 4px; color: var(--forest); text-decoration: none; font-weight: 500; font-size: 14px; transition: opacity 0.3s ease; align-self: flex-start; }
  .notfall-pharmacy-overlay-row-tel:hover { opacity: 0.7; }
  .notfall-pharmacy-overlay-row-current { border-color: var(--forest); background: linear-gradient(180deg, rgba(42,74,56,0.05) 0%, rgba(42,74,56,0.02) 100%); }
  body.notfall-overlay-open .notfall-pharmacy-tel,
  body.notfall-overlay-open .notfall-pharmacy-route,
  body.notfall-overlay-open .notfall-pharmacy-overlay-trigger,
  body.notfall-overlay-open .notfall-pharmacy-service-link,
  body.notfall-overlay-open .notfall-number { pointer-events: none !important; }
  body.notfall-overlay-open .notfall-pharmacy-tel:hover,
  body.notfall-overlay-open .notfall-pharmacy-route:hover,
  body.notfall-overlay-open .notfall-pharmacy-overlay-trigger:hover,
  body.notfall-overlay-open .notfall-pharmacy-service-link:hover,
  body.notfall-overlay-open .notfall-number:hover { transform: none !important; background: var(--white) !important; border-color: var(--line) !important; color: var(--ink) !important; box-shadow: 0 2px 8px rgba(26,31,27,0.04), 0 1px 2px rgba(26,31,27,0.04) !important; }
  body.notfall-overlay-open .notfall-pharmacy-tel:hover .notfall-pharmacy-tel-label,
  body.notfall-overlay-open .notfall-pharmacy-tel:hover .notfall-pharmacy-tel-number,
  body.notfall-overlay-open .notfall-pharmacy-route:hover .notfall-pharmacy-tel-label,
  body.notfall-overlay-open .notfall-pharmacy-route:hover .notfall-pharmacy-route-action { color: var(--ink) !important; }
  .notfall-pharmacy-svg-icon { width: 22px; height: 22px; flex-shrink: 0; }
  .notfall-pharmacy-svg-icon.is-apple { transform: scale(1.18); transform-origin: center; }
  .notfall-pharmacy-svg-icon.is-google { transform: scale(0.86); transform-origin: center; }
  .notfall-pharmacy-overlay-trigger { margin-top: 0; margin-bottom: 12px; }
  .notfall-pharmacy-actions-column .notfall-pharmacy-service-link { margin-top: 0; margin-bottom: 12px; }
  @keyframes notfallTimePulse {
    0%, 100% { opacity: 1; color: #2e7d32; }
    50% { opacity: 0.6; color: #66bb6a; }
  }
  .notfall-pharmacy-time-pulse { font-weight: 700; color: #2e7d32; display: inline-block; animation: notfallTimePulse 1.6s ease-in-out infinite; }
  .notfall-pharmacy-info { min-width: 0; }
  .notfall-pharmacy-name { font-family: 'Fraunces', serif; font-variation-settings: "opsz" 144, "SOFT" 50; font-size: 24px; font-weight: 400; letter-spacing: -0.015em; color: var(--ink); margin-bottom: 0; line-height: 1.2; }
  .notfall-pharmacy-address { font-size: 14px; color: var(--muted); }
  .notfall-pharmacy-tel { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; text-align: center; text-decoration: none; color: var(--forest); padding: 10px 14px; border-radius: 12px; background: var(--white); border: 1px solid var(--line); transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); min-height: 64px; box-shadow: 0 2px 8px rgba(26,31,27,0.04), 0 1px 2px rgba(26,31,27,0.04); }
  .notfall-pharmacy-tel:hover { transform: translateY(-2px); background: var(--forest); border-color: var(--forest); color: var(--cream); box-shadow: 0 12px 32px rgba(26,31,27,0.10), 0 3px 8px rgba(26,31,27,0.06); }
  .notfall-pharmacy-tel:hover .notfall-pharmacy-tel-label,
  .notfall-pharmacy-tel:hover .notfall-pharmacy-tel-number { color: var(--cream); }
  .notfall-pharmacy-tel:hover { background: var(--forest); color: var(--white); border-color: var(--forest); }
  .notfall-pharmacy-tel-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.12em; opacity: 0.7; font-weight: 600; }
  .notfall-pharmacy-tel-number { font-family: 'Fraunces', serif; font-variation-settings: "opsz" 144, "SOFT" 50; font-size: 22px; font-weight: 400; letter-spacing: -0.02em; }
  .notfall-pharmacy-route { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; text-align: center; text-decoration: none; color: var(--muted); padding: 10px 14px; border-radius: 12px; border: 1px solid var(--line); background: var(--white); font-size: 14px; transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); min-height: 64px; box-shadow: 0 2px 8px rgba(26,31,27,0.04), 0 1px 2px rgba(26,31,27,0.04); }
  .notfall-pharmacy-route:hover { transform: translateY(-2px); background: var(--forest); border-color: var(--forest); color: var(--cream); box-shadow: 0 12px 32px rgba(26,31,27,0.10), 0 3px 8px rgba(26,31,27,0.06); }
  .notfall-pharmacy-route:hover .notfall-pharmacy-tel-label,
  .notfall-pharmacy-route:hover .notfall-pharmacy-route-action { color: var(--cream); }
  .notfall-pharmacy-route:hover { background: var(--forest); color: var(--white); border-color: var(--forest); }
  .notfall-pharmacy-source { font-size: 11px; color: var(--muted); opacity: 0.65; margin-top: 14px; text-align: right; }

  /* FOOTER (Kapitel 6.5: 3 Spalten, kompakter) */
  
  
  
  
  
  @keyframes brandShimmer {
    0%   { background-position: 0%   0; }
    100% { background-position: 100% 0; }
  }
  
  
  
  
  
  
  
  
  
  
  
  
  /* Footer Rubriken Hover: jede Rubrik einzeln, Inhalt hebt sich und waechst leicht. Praxis-Beschreibung ausgenommen. */
  
  
  /* Praxis-Marke oben (Ueberschrift plus Beschreibung) wird als Gruppe mitanimiert, ohne die Standorte darin */
  
  
  
  
  
  
  /* V24 Footer Fade-in simultan aus Transparenz */
  
  footer.is-fade-in .footer-brand,
  footer.is-fade-in .footer-col,
  footer.is-fade-in .footer-bottom > * {
    opacity: 1;
    transition: opacity 1s ease-in-out;
  }


  
  footer.is-fade-in .footer-bottom p { transition: opacity 1s ease-in-out 0.75s, transform 0.4s var(--ease); }
  /* Gestaffeltes Einblenden von links nach rechts: Spalte 1 (Marke) sofort, dann je 0.3s versetzt */
  footer.is-fade-in .footer-grid > .footer-col:nth-child(2) { transition: transform 0.9s cubic-bezier(0.16, 1, 0.3, 1), opacity 1s ease-in-out 0.15s !important; }
  footer.is-fade-in .footer-grid > .footer-col:nth-child(3) { transition: transform 0.9s cubic-bezier(0.16, 1, 0.3, 1), opacity 1s ease-in-out 0.3s !important; }
  footer.is-fade-in .footer-grid > .footer-col:nth-child(4) { transition: transform 0.9s cubic-bezier(0.16, 1, 0.3, 1), opacity 1s ease-in-out 0.45s !important; }
  footer.is-fade-in .footer-grid > .footer-col:nth-child(5) { transition: transform 0.9s cubic-bezier(0.16, 1, 0.3, 1), opacity 1s ease-in-out 0.6s !important; }

  /* REVEAL - bidirektional symmetrisch (Kapitel 6.1)
     Jedes Element hat Ursprungsposition, kommt aus dieser Richtung
     und kehrt in dieselbe Richtung zurueck, egal Scroll hoch oder runter.
     Keine past Klasse, nur visible Toggle. Keine Blur Filter. */
  /* 12.08.2026: Die reveal-Regeln standen hier ohne das Skript, das die Klasse
     visible setzt. Der Notfallblock blieb dadurch dauerhaft unsichtbar, ein
     leerer Kasten mitten auf der Seite. Auf den Standortseiten wird nichts
     eingeblendet, alles steht sofort da. */

  @keyframes fadeUp { to { opacity: 1; transform: translateY(0); } }

  /* REDUCED MOTION */
  @media (prefers-reduced-motion: reduce) {
    
    .ambient-orb, .cursor-glow { display: none !important; }
    .testimonials-track-wrap { scroll-behavior: auto !important; }
    .testimonials-track { animation: none !important; }
  }

  /* RESPONSIVE */
  @media (max-width: 968px) {
    
    
    .hero { grid-template-columns: minmax(0, 1fr); padding: 120px 24px 60px; gap: 60px; }
    .hero-visual { max-width: 440px; margin: 0 auto; }
    
    .about-grid { grid-template-columns: 1fr; gap: 48px; }
    .standorte-grid { grid-template-columns: 1fr; }
    .services-grid { grid-template-columns: 1fr; }
    .team-grid { grid-template-columns: 1fr; }
    .rezept-wrap { grid-template-columns: 1fr; }
    .rezept-side { padding: 40px 28px; }
    .rezept-form { padding: 40px 28px; }
    .notfall-wrap { grid-template-columns: 1fr; padding: 32px 24px; gap: 28px; }
    
    .floating-badge { display: none; }
    .form-row { grid-template-columns: 1fr; }
    .standort-card { padding: 28px; }
    .info-row { grid-template-columns: 88px 1fr; gap: 12px; }
    .info-row--mail { grid-template-columns: 1fr; gap: 2px; }
    .info-row--kim { grid-template-columns: 1fr; gap: 4px; }
    .live-widget { padding: 28px; }
    .live-time { font-size: 44px; }
    .cursor-glow { display: none; }
    .testimonial { width: 300px; }
    .testimonials .section-header { padding: 0 24px; }
    .testimonials-track { padding: 20px 24px; }
    .rezept { padding: 40px 24px 80px; }
    .services { padding: 40px 24px 80px; }
  }
  @media (max-width: 480px) {
    
    .standort-actions { grid-template-columns: 1fr; }
    .hero h1 { font-size: 42px; }
    .standort-name { font-size: 34px; }
    .notfall-tel { font-size: 30px; white-space: nowrap; } .notfall-number { padding: 22px 18px; }
    .notfall-numbers { grid-template-columns: 1fr; }
    .notfall-pharmacy { padding: 20px; margin-top: 18px; }
    .notfall-pharmacy-body { grid-template-columns: 1fr; gap: 18px; margin-top: 18px; }
    .notfall-pharmacy-actions { flex-direction: column; gap: 10px; }
    .notfall-pharmacy-tel, .notfall-pharmacy-route { width: 100%; min-height: 60px; }
    .notfall-pharmacy-overlay { max-width: 100%; max-height: 92vh; border-radius: 18px; }
    .notfall-pharmacy-overlay-header { padding: 18px 20px; }
    .notfall-pharmacy-overlay-title { font-size: 18px; }
    .notfall-pharmacy-overlay-body { padding: 16px 20px; gap: 12px; }
    .notfall-pharmacy-overlay-row { grid-template-columns: 1fr; gap: 6px; padding: 14px 16px; }
    .notfall-pharmacy-overlay-row-name { font-size: 17px; }
    .notfall-pharmacy-source { text-align: center; }
    .rezept-side h3 { font-size: 28px; }
    
  }

  /* MODAL OVERLAY fuer Rezept und Ueberweisung (Dirk Anforderung)
     Overlay mit Blur ist sofort beim Oeffnen voll da, nur Panel sliced ein.
     Shadow rundherum gleichmaessig dunkel fuer klare Abhebung vom Blur. */
  .modal { position: fixed; inset: 0; z-index: 1000; display: none; align-items: center; justify-content: center; padding: 24px; }
  .modal.open { display: flex; }

  .modal-overlay {
    position: absolute; inset: 0;
    background: rgba(26, 31, 27, 0.55);
    backdrop-filter: blur(16px) saturate(120%);
    -webkit-backdrop-filter: blur(16px) saturate(120%);
    cursor: pointer;
    animation: modalOverlayIn 0.28s ease-out;
  }
  @keyframes modalOverlayIn { from { opacity: 0; } to { opacity: 1; } }

  .modal-panel {
    position: relative; background: var(--white); max-width: 640px; width: 100%; max-height: 90vh;
    overflow-y: auto; border-radius: 28px;
    box-shadow:
      0 0 0 1px rgba(255, 255, 255, 0.55) inset,
      0 30px 90px rgba(0, 0, 0, 0.45),
      0 0 60px rgba(0, 0, 0, 0.35),
      0 0 0 1px rgba(0, 0, 0, 0.08);
    display: block; border: 1px solid rgba(255,255,255,0.5);
    animation: modalSlideIn 0.55s cubic-bezier(0.22, 1, 0.36, 1);
  }
  /* Linke grüne Modal Seite entfällt zugunsten mehr Platz im Formular. DSGVO Hinweis wandert in dezenten Header oben im Form Wrap. */
  .modal .modal-side { display: none; }
  .modal .modal-form-wrap { border-radius: 28px; padding: 48px 44px 40px; }
  .modal .modal-form-wrap::before {
    content: '';
    display: block;
    width: 32px; height: 2px;
    background: linear-gradient(90deg, var(--gold), var(--gold-soft));
    border-radius: 2px;
    margin: 0 auto 18px;
    opacity: 0.7;
  }
  .modal-trust-inline {
    display: flex; align-items: center; justify-content: center; gap: 18px;
    margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--line);
    font-size: 11px; color: var(--muted); font-style: italic; flex-wrap: wrap;
  }
  .modal-trust-inline span { display: inline-flex; align-items: center; gap: 6px; }
  .modal-trust-inline svg { width: 12px; height: 12px; color: var(--forest); flex-shrink: 0; }
  @keyframes modalSlideIn { from { transform: translateY(30px) scale(0.96); opacity: 0; } to { transform: translateY(0) scale(1); opacity: 1; } }

  .modal-close { position: absolute; top: 18px; right: 18px; z-index: 10; width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,0.9); border: 1px solid var(--line); color: var(--forest); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.5s var(--ease); backdrop-filter: blur(10px); }
  .modal-close:hover { background: var(--forest); color: var(--cream); transform: rotate(90deg); }

  .modal-side { background: linear-gradient(180deg, var(--forest) 0%, var(--forest-ink) 100%); color: var(--cream); padding: 44px 36px; position: relative; overflow: hidden; border-radius: 28px 0 0 28px; }
  .modal-side::before { content:''; position:absolute; top:-80px; right:-80px; width:300px; height:300px; background: radial-gradient(circle, rgba(201,173,119,0.25) 0%, transparent 70%); animation: rezeptGlow 10s ease-in-out infinite; }
  .modal-side-content { position: relative; z-index: 1; }
  .modal-side-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold-soft); margin-bottom: 14px; display: inline-flex; align-items: center; gap: 10px; }
  .modal-side-eyebrow::before { content:''; width: 24px; height: 1px; background: var(--gold-soft); }
  .modal-side h3 { font-family: 'Fraunces', serif; font-variation-settings: "opsz" 144, "SOFT" 50; font-size: 30px; font-weight: 300; line-height: 1.15; margin-bottom: 18px; letter-spacing: -0.02em; }
  .modal-side h3 em { font-style: italic; color: var(--gold-soft); }
  .modal-side p { font-size: 14px; color: rgba(248,245,238,0.78); margin-bottom: 26px; line-height: 1.65; }

  .modal-dsgvo { display: flex; align-items: center; gap: 12px; padding: 14px 16px; background: rgba(201,173,119,0.1); border: 1px solid rgba(201,173,119,0.35); border-radius: 14px; margin-bottom: 22px; }
  .modal-dsgvo-icon { width: 36px; height: 36px; border-radius: 10px; background: linear-gradient(135deg, var(--gold), var(--gold-soft)); color: var(--forest-ink); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
  .modal-dsgvo-text strong { display: block; color: var(--gold-soft); font-size: 12.5px; font-weight: 600; margin-bottom: 2px; }
  .modal-dsgvo-text span { display: block; color: rgba(248,245,238,0.7); font-size: 11.5px; line-height: 1.4; }

  .modal-trust { display: grid; gap: 12px; }
  .modal-trust-item { display: flex; gap: 10px; align-items: flex-start; font-size: 12px; color: rgba(248,245,238,0.75); }
  .modal-trust-item svg { width: 15px; height: 15px; flex-shrink: 0; color: var(--gold-soft); margin-top: 2px; }
  .modal-trust-item strong { display: block; color: var(--cream); font-size: 12.5px; font-weight: 600; margin-bottom: 1px; }

  .modal-form-wrap { padding: 44px 40px; background: var(--white); border-radius: 0 28px 28px 0; }
  .modal-tabs { display: flex; gap: 6px; background: var(--cream-soft); padding: 5px; border-radius: 100px; margin-bottom: 28px; border: 1px solid var(--line); }
  .modal-tab { flex: 1; padding: 10px 14px; border-radius: 100px; border: none; background: transparent; font-family: inherit; font-size: 13px; font-weight: 600; color: var(--muted); cursor: pointer; transition: all 0.6s var(--ease); }
  .modal-tab.active { background: var(--forest); color: var(--cream); box-shadow: 0 4px 12px rgba(42,74,56,0.2); }

  .modal-form-group { margin-bottom: 18px; }
  .modal-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 18px; }
  .modal-form-label { display: block; font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--forest); margin-bottom: 8px; }
  .modal-form-input, .modal-form-select, .modal-form-textarea { width: 100%; padding: 12px 14px; border: 1px solid var(--line-strong); border-radius: 12px; background: var(--white); font-family: inherit; font-size: 14px; color: var(--text); transition: all 0.5s var(--ease); }
  .modal-form-input:focus, .modal-form-select:focus, .modal-form-textarea:focus { outline: none; border-color: var(--forest); box-shadow: 0 0 0 3px rgba(42,74,56,0.08); }
  .modal-form-textarea { resize: vertical; min-height: 80px; }
  .modal-form-submit { width: 100%; padding: 15px 20px; background: var(--forest); color: var(--cream); border: none; border-radius: 100px; font-family: inherit; font-size: 14px; font-weight: 500; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 10px; transition: all 0.7s var(--ease); position: relative; overflow: hidden; }
  .modal-form-submit::before { content:''; position:absolute; inset:0; background: linear-gradient(90deg, transparent, rgba(201,173,119,0.35), transparent); transform: translateX(-100%); transition: transform 0.9s var(--ease); }
  .modal-form-submit:hover { background: var(--forest-mist); transform: translateY(-2px); box-shadow: 0 15px 35px rgba(42,74,56,0.3); }
  .modal-form-submit:hover::before { transform: translateX(100%); }

  /* Standort Picker: Pill Switch mit Adresshinweis, statt standard Dropdown (110 Prozent Anspruch) */
  .loc-label { display: inline-block; font-size: 9.5px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--forest); margin-bottom: 4px; opacity: 0.7; }
  .loc-name { display: block; font-family: 'Fraunces', serif; font-variation-settings: "opsz" 144, "SOFT" 50; font-size: 20px; font-weight: 400; color: var(--ink); line-height: 1.1; margin-bottom: 4px; }
  .loc-sub { display: block; font-size: 11.5px; color: var(--muted); line-height: 1.35; }

  /* =========================================================
     WIZARD SYSTEM fuer Multi Step Rezept Modal (MED:ON Logik nachgebaut, DSGVO sauber)
     Stufen: 1 Anliegen waehlen, 2 dynamisch je Anliegen, 3 Kontaktdaten plus Consent
     ========================================================= */
  .wizard-progress { display: flex; align-items: center; gap: 10px; margin-bottom: 26px; justify-content: center; }
  .wizard-step-dot { width: 28px; height: 28px; border-radius: 50%; background: var(--cream-soft); color: var(--muted); display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 600; border: 1.5px solid var(--line); transition: all 0.5s var(--ease); flex-shrink: 0; }
  .wizard-step-dot.active { background: var(--forest); color: var(--cream); border-color: var(--forest); box-shadow: 0 4px 14px rgba(42,74,56,0.25); }
  .wizard-step-dot.done { background: var(--sage); color: var(--cream); border-color: var(--sage); }
  .wizard-step-line { flex: 0 1 38px; height: 1.5px; background: var(--line); transition: background 0.5s var(--ease); }
  .wizard-step-line.done { background: var(--sage); }
  .wizard-step-label { display: inline-flex; align-items: center; font-size: 11px; color: var(--muted); margin-left: 6px; font-weight: 500; letter-spacing: 0.02em; }
  @media (max-width: 520px) { .wizard-step-label { display: none; } .wizard-step-line { flex-basis: 26px; } }

  .wizard-step-title { font-family: 'Fraunces', serif; font-variation-settings: "opsz" 144, "SOFT" 50; font-size: 22px; font-weight: 400; color: var(--ink); margin-bottom: 8px; letter-spacing: -0.015em; }
  .wizard-step-sub { font-size: 13.5px; color: var(--muted); margin-bottom: 22px; line-height: 1.55; }

  .wizard-section { display: none; }
  .wizard-section.active { display: block; animation: wizardFade 0.45s cubic-bezier(0.22, 1, 0.36, 1); }
  @keyframes wizardFade { from { opacity: 0; transform: translateX(10px); } to { opacity: 1; transform: translateX(0); } }

  .wizard-choices { display: grid; gap: 10px; margin-bottom: 8px; }
  .wizard-choice { background: var(--white); border: 1.5px solid var(--line); border-radius: 14px; padding: 14px 16px; text-align: left; cursor: pointer; font-family: inherit; transition: all 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94); display: flex; align-items: center; gap: 13px; position: relative; }
  .wizard-choice:hover { border-color: var(--sage); background: var(--cream-soft); transform: translateY(-1px); }
  .wizard-choice.selected { border-color: var(--forest); background: linear-gradient(135deg, rgba(122,149,130,0.1), rgba(42,74,56,0.04)); box-shadow: 0 4px 14px rgba(42,74,56,0.1); }
  .wizard-choice-icon { width: 40px; height: 40px; border-radius: 12px; background: var(--cream-soft); color: var(--forest); display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: all 0.7s var(--ease); }
  .wizard-choice.selected .wizard-choice-icon { background: var(--forest); color: var(--gold-soft); }
  .wizard-choice-text { flex: 1; min-width: 0; }
  .wizard-choice-text strong { display: block; font-size: 14px; color: var(--ink); font-weight: 600; margin-bottom: 2px; }
  .wizard-choice-text span { display: block; font-size: 12px; color: var(--muted); line-height: 1.4; }
  .wizard-choice-arrow { color: var(--muted); transition: all 0.6s var(--ease); flex-shrink: 0; }
  .wizard-choice:hover .wizard-choice-arrow { color: var(--forest); transform: translateX(4px); }
  /* Rezept Inline Choices, einheitlich mit Modal Step 1, ohne Pfeil visuell aufgewertet */
  .rezept-inline-choices { background: var(--white); border-radius: 20px; padding: 36px 32px; border: 1px solid var(--line); box-shadow: 0 4px 20px rgba(26,31,27,0.04); display: flex; flex-direction: column; gap: 24px; }
  .rezept-inline-choices .wizard-choices { gap: 12px; }
  .rezept-inline-choices .wizard-choice {
    padding: 18px 20px;
    border-radius: 16px;
    border-width: 1.5px;
    box-shadow: 0 2px 10px rgba(26,31,27,0.03);
    gap: 16px;
    transition: transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94), border-color 0.7s var(--ease), background 0.7s var(--ease), box-shadow 0.7s var(--ease);
  }
  .rezept-inline-choices .wizard-choice:hover {
    transform: translateY(-3px);
    border-color: var(--forest);
    background: linear-gradient(135deg, rgba(122,149,130,0.08), rgba(42,74,56,0.03));
    box-shadow: 0 12px 30px rgba(42,74,56,0.12);
  }
  .rezept-inline-choices .wizard-choice-icon {
    width: 46px; height: 46px; border-radius: 14px;
    background: linear-gradient(135deg, var(--sage-mist), var(--cream-soft));
    color: var(--forest);
    transition: all 0.7s var(--ease);
  }
  .rezept-inline-choices .wizard-choice:hover .wizard-choice-icon {
    background: linear-gradient(135deg, var(--forest), var(--forest-mist));
    color: var(--gold-soft);
    transform: scale(1.05);
  }
  .rezept-inline-choices .wizard-choice-text strong { font-size: 15px; margin-bottom: 3px; }
  .rezept-inline-choices .wizard-choice-text span { font-size: 12.5px; }
  .rezept-inline-header { text-align: left; }
  .rezept-inline-title { font-family: 'Fraunces', serif; font-variation-settings: "opsz" 144, "SOFT" 60; font-size: 30px; line-height: 1.2; color: var(--ink); margin-bottom: 10px; font-weight: 400; }
  .rezept-inline-title em { font-style: italic; color: var(--forest); }
  .rezept-inline-sub { font-size: 14.5px; color: var(--muted); line-height: 1.6; margin: 0; }
  .rezept-inline-note { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; color: var(--muted); padding-top: 10px; border-top: 1px solid var(--line); font-style: italic; }
  .rezept-inline-note svg { color: var(--forest); flex-shrink: 0; }
  .wizard-choice.selected .wizard-choice-arrow { color: var(--forest); transform: translateX(4px); }

  .wizard-toggle-row { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; background: var(--cream-soft); border: 1px solid var(--line); border-radius: 12px; margin-bottom: 14px; gap: 14px; cursor: pointer; }
  .wizard-toggle-label { font-size: 13.5px; color: var(--ink); font-weight: 500; }
  .wizard-toggle { position: relative; width: 44px; height: 24px; background: var(--muted-light); border-radius: 100px; cursor: pointer; border: none; padding: 0; transition: background 0.5s var(--ease); flex-shrink: 0; }
  .wizard-toggle::after { content:''; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: var(--white); box-shadow: 0 2px 6px rgba(0,0,0,0.2); transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); }
  .wizard-toggle[aria-checked="true"] { background: var(--forest); }
  .wizard-toggle[aria-checked="true"]::after { transform: translateX(20px); }

  .wizard-note { padding: 12px 14px; border-radius: 12px; font-size: 12.5px; line-height: 1.55; margin-bottom: 14px; display: flex; gap: 10px; align-items: flex-start; }
  .wizard-note svg { width: 16px; height: 16px; flex-shrink: 0; margin-top: 1px; }
  .wizard-note.info { background: rgba(122,149,130,0.1); color: var(--forest-ink); border: 1px solid rgba(122,149,130,0.25); }
  .wizard-note.info svg { color: var(--forest); }
  .wizard-note.warn { background: rgba(168,137,72,0.1); color: var(--forest-ink); border: 1px solid rgba(201,173,119,0.45); }
  .wizard-note.warn svg { color: var(--gold); }
  .wizard-note strong { display: block; margin-bottom: 2px; }

  .wizard-section-title { font-size: 13px; font-weight: 600; color: var(--forest); margin: 18px 0 12px; letter-spacing: 0.02em; }

  .wizard-medikament { background: var(--cream-soft); border: 1px solid var(--line); border-radius: 14px; padding: 16px; margin-bottom: 12px; position: relative; }
  .wizard-medikament-title { font-size: 10.5px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--forest); margin-bottom: 10px; opacity: 0.8; }
  .wizard-medikament-remove { position: absolute; top: 12px; right: 12px; background: transparent; border: none; width: 26px; height: 26px; border-radius: 50%; color: var(--muted); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.5s var(--ease); }
  .wizard-medikament-remove:hover { background: #F5E4D5; color: #A86A3E; }
  .wizard-add-medikament { width: 100%; padding: 12px 16px; background: transparent; border: 1.5px dashed var(--line-strong); border-radius: 12px; color: var(--forest); font-family: inherit; font-size: 13px; font-weight: 600; cursor: pointer; transition: all 0.6s var(--ease); display: inline-flex; align-items: center; justify-content: center; gap: 8px; margin-bottom: 4px; }
  .wizard-add-medikament:hover:not([disabled]) { border-color: var(--forest); background: var(--cream-soft); }
  .wizard-add-medikament[disabled] { opacity: 0.4; cursor: not-allowed; }
  /* Groesse-Hinweis (23.07.): kleiner, nicht-versaler Zusatz hinter dem Label, bleibt einzeilig */
  .med-menge-hint { text-transform: none; letter-spacing: 0; font-weight: 500; font-size: 10px; color: var(--muted); white-space: nowrap; }
  /* Hilfsmittel-Hinweis-Sheet (23.07.): erklaert, dass ueber dieses Medikamenten-Formular keine Hilfsmittel bestellbar sind */
  .himi-sheet { position: fixed; inset: 0; z-index: 1100; display: flex; align-items: center; justify-content: center; padding: 22px; background: rgba(26,31,27,0.34); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); opacity: 0; visibility: hidden; transition: opacity 0.28s var(--ease), visibility 0.28s var(--ease); }
  .himi-sheet.is-open { opacity: 1; visibility: visible; }
  .himi-card { background: var(--white); border-radius: 20px; border: 1px solid var(--line-strong); box-shadow: 0 24px 60px rgba(26,31,27,0.30); max-width: 480px; width: 100%; max-height: 90vh; overflow-y: auto; padding: 32px 30px 26px; transform: translateY(14px) scale(0.98); transition: transform 0.32s cubic-bezier(0.16,1,0.3,1); }
  .himi-sheet.is-open .himi-card { transform: none; }
  .himi-card.is-warn { border-left: 4px solid #C0563B; }
  .himi-ico { width: 52px; height: 52px; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-bottom: 16px; background: var(--cream-soft); color: var(--forest); }
  .himi-card.is-warn .himi-ico { background: #F7E7DF; color: #C0563B; }
  .himi-ico svg { width: 28px; height: 28px; }
  /* Groessere Schrift fuer gute Lesbarkeit auch fuer aeltere Patienten (23.07., Dirk) */
  .himi-title { font-family: 'Fraunces', serif; font-size: 25px; font-weight: 400; color: var(--ink); margin: 0 0 12px; letter-spacing: -0.01em; line-height: 1.25; }
  .himi-body { font-size: 17.5px; line-height: 1.7; color: var(--text); margin: 0 0 14px; }
  .himi-body strong { color: var(--forest); }
  .himi-examples { font-size: 16px; line-height: 1.7; color: var(--text); background: var(--cream-soft); border-radius: 12px; padding: 14px 16px; margin: 0 0 20px; }
  .himi-actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: flex-end; }
  .himi-btn { min-height: 50px; padding: 13px 26px; border-radius: 999px; font-family: inherit; font-size: 16.5px; font-weight: 600; cursor: pointer; border: 1px solid var(--line-strong); background: var(--white); color: var(--forest); transition: all 0.4s var(--ease); }
  .himi-btn:hover { background: var(--cream-soft); }
  .himi-btn-primary { background: var(--forest); color: #fff; border-color: var(--forest); }
  .himi-btn-primary:hover { background: var(--forest-mist); }
  .himi-btn:focus-visible { outline: 3px solid rgba(42,74,56,0.3); outline-offset: 2px; }

  /* Chipkarte Blur Gate: alles darunter ist inaktiv bis Toggle on */
  .wizard-chip-gate {
    position: relative;
    filter: blur(5px) saturate(0.6);
    opacity: 0.45;
    pointer-events: none;
    user-select: none;
    transition: filter 0.55s var(--ease), opacity 0.55s var(--ease);
  }
  .wizard-chip-gate.unlocked {
    filter: none;
    opacity: 1;
    pointer-events: auto;
    user-select: auto;
  }
  .wizard-chip-gate-hint {
    display: flex; align-items: center; gap: 10px;
    padding: 12px 16px; margin: 0 0 14px;
    background: linear-gradient(135deg, rgba(168,137,72,0.1), rgba(201,173,119,0.06));
    border: 1px dashed rgba(168,137,72,0.4);
    border-radius: 12px;
    font-size: 12.5px; color: var(--forest-ink); font-style: italic;
    filter: none !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transition: opacity 0.4s var(--ease);
  }
  .wizard-chip-gate-hint svg { color: var(--gold); flex-shrink: 0; }
  .wizard-chip-gate.unlocked .wizard-chip-gate-hint { display: none; }

  /* === Additive Ergaenzungen: Anrede, eRezept-Weg, Geburtsdatum, Feldfehler, Chip-Bestaetigung === */
  .wizard-field-error { display: flex; align-items: center; gap: 6px; font-size: 12px; color: #A6492F; margin-top: 7px; font-weight: 500; line-height: 1.4; }
  .wizard-field-error[hidden] { display: none; }
  .wizard-field-error svg { width: 14px; height: 14px; flex-shrink: 0; }
  .modal-form-input.input-invalid, .modal-form-select.input-invalid { border-color: #C0563B; box-shadow: 0 0 0 3px rgba(192,86,59,0.10); }
  .modal-form-input.input-invalid { border-color: #C0392B !important; box-shadow: 0 0 0 2px rgba(192,57,43,0.12) !important; }

  .wizard-weg-choices { display: grid; gap: 10px; margin-bottom: 6px; }
  .wizard-weg-choice { padding: 13px 15px; }
  .wizard-weg-choice .wizard-choice-icon { width: 38px; height: 38px; border-radius: 11px; }
  .wizard-weg-choice[aria-checked="true"] { border-color: var(--forest); background: linear-gradient(135deg, rgba(122,149,130,0.1), rgba(42,74,56,0.04)); box-shadow: 0 4px 14px rgba(42,74,56,0.1); }
  .wizard-weg-choice[aria-checked="true"] .wizard-choice-icon { background: var(--forest); color: var(--gold-soft); }

  .wizard-dob { display: grid; grid-template-columns: 0.8fr 1.3fr 0.95fr; gap: 10px; }
  @media (max-width: 380px) { .wizard-dob { grid-template-columns: 1fr 1fr; } .wizard-dob input[data-dob="year"] { grid-column: 1 / -1; } }

  .wizard-submit-error { display: flex; align-items: flex-start; gap: 8px; padding: 12px 14px; border-radius: 12px; background: rgba(168,73,47,0.07); border: 1px solid rgba(168,73,47,0.32); color: #8C3D27; font-size: 12.5px; line-height: 1.5; margin: 4px 0 14px; }
  .wizard-submit-error[hidden] { display: none; }
  .wizard-submit-error svg { width: 16px; height: 16px; flex-shrink: 0; margin-top: 1px; }
  .wizard-success-eingang { margin-top: 8px; font-size: 13px; color: var(--forest-ink); }
  .wizard-success-eingang[hidden] { display: none; }
  .wizard-success-eingang strong { font-family: 'Fraunces', serif; letter-spacing: 0.05em; color: var(--forest); }

  /* Chipkarte Bestaetigungs-Overlay (liegt ueber dem Wizard-Modal) */
  .chip-confirm-overlay { position: fixed; inset: 0; z-index: 1200; display: none; align-items: center; justify-content: center; padding: 22px; }
  .chip-confirm-overlay.open { display: flex; }
  .chip-confirm-backdrop { position: absolute; inset: 0; background: rgba(20,35,24,0.55); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); }
  .chip-confirm-box { position: relative; max-width: 440px; width: 100%; background: var(--white); border-radius: 22px; padding: 30px 30px 24px; box-shadow: 0 30px 80px rgba(20,35,24,0.32), 0 8px 24px rgba(20,35,24,0.14); border-top: 4px solid var(--gold); animation: chipConfirmIn 0.4s cubic-bezier(0.22,1,0.36,1); }
  @keyframes chipConfirmIn { from { opacity: 0; transform: translateY(14px) scale(0.97); } to { opacity: 1; transform: none; } }
  .chip-confirm-icon { width: 52px; height: 52px; border-radius: 14px; background: linear-gradient(135deg, var(--forest), var(--forest-mist)); color: var(--gold-soft); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
  .chip-confirm-title { font-family: 'Fraunces', serif; font-variation-settings: "opsz" 144, "SOFT" 50; font-size: 22px; font-weight: 400; color: var(--forest); margin: 0 0 12px; letter-spacing: -0.01em; }
  .chip-confirm-text { font-size: 16px; font-weight: 500; line-height: 1.55; color: #1A1F1B; margin: 0 0 22px; }
  .chip-confirm-em { font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
  .chip-confirm-actions { display: flex; gap: 12px; justify-content: flex-end; flex-wrap: wrap; }
  .chip-confirm-btn { padding: 12px 22px; border-radius: 100px; font-family: inherit; font-size: 13.5px; font-weight: 600; cursor: pointer; transition: all 0.5s var(--ease); border: 1.5px solid transparent; }
  .chip-confirm-btn.cancel { background: var(--white); color: var(--forest); border-color: var(--line-strong); }
  .chip-confirm-btn.cancel:hover { background: var(--cream-soft); border-color: var(--forest); }
  .chip-confirm-btn.confirm { background: var(--forest); color: var(--cream); }
  .chip-confirm-btn.confirm:hover { background: var(--forest-mist); box-shadow: 0 10px 24px rgba(42,74,56,0.28); }
  .chip-confirm-btn:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
  @media (max-width: 480px) { .chip-confirm-actions { flex-direction: column-reverse; } .chip-confirm-btn { width: 100%; } }

    .wizard-consent { display: flex; gap: 12px; padding: 14px 16px; background: var(--cream-soft); border: 1px solid var(--line); border-radius: 12px; margin-top: 14px; margin-bottom: 8px; }
  .wizard-consent input { margin-top: 3px; accent-color: var(--forest); cursor: pointer; flex-shrink: 0; width: 16px; height: 16px; }
  .wizard-consent-text { font-size: 12px; color: var(--text); line-height: 1.55; }
  .wizard-consent-text a { color: var(--forest); text-decoration: none; border-bottom: 1px solid var(--forest); font-weight: 500; }
  .wizard-consent-text a:hover { color: var(--forest-ink); }

  .wizard-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; pointer-events: none; opacity: 0; }

  .wizard-actions { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); }
  .wizard-btn-back, .wizard-btn-next { padding: 12px 22px; border-radius: 100px; font-family: inherit; font-size: 13.5px; font-weight: 500; cursor: pointer; border: 1px solid transparent; transition: all 0.6s var(--ease); display: inline-flex; align-items: center; gap: 8px; }
  .wizard-btn-back { background: transparent; color: var(--muted); border-color: var(--line-strong); }
  .wizard-btn-back:hover { background: var(--cream-soft); color: var(--forest); }
  .wizard-btn-back[hidden] { display: none; }
  .wizard-btn-next { background: var(--forest); color: var(--cream); margin-left: auto; position: relative; overflow: hidden; }
  .wizard-btn-next::before { content:''; position:absolute; inset:0; background: linear-gradient(90deg, transparent, rgba(201,173,119,0.35), transparent); transform: translateX(-100%); transition: transform 0.9s var(--ease); }
  .wizard-btn-next:hover { background: var(--forest-mist); box-shadow: 0 12px 30px rgba(42,74,56,0.25); transform: translateY(-1px); }
  .wizard-btn-next:hover::before { transform: translateX(100%); }
  .wizard-btn-next[disabled] { opacity: 0.5; cursor: not-allowed; transform: none; box-shadow: none; }
  .wizard-btn-next[disabled]:hover { background: var(--forest); transform: none; box-shadow: none; }
  .wizard-btn-next[disabled]:hover::before { transform: translateX(-100%); }

  .wizard-success { text-align: center; padding: 26px 0; }
  .wizard-success-icon { width: 72px; height: 72px; border-radius: 50%; background: linear-gradient(135deg, rgba(122,149,130,0.2), rgba(42,74,56,0.1)); color: var(--forest); display: flex; align-items: center; justify-content: center; margin: 0 auto 22px; animation: successPop 0.6s cubic-bezier(0.22, 1, 0.36, 1); }
  @keyframes successPop { 0% { transform: scale(0.6); opacity: 0; } 60% { transform: scale(1.08); } 100% { transform: scale(1); opacity: 1; } }
  .wizard-success h3 { font-family: 'Fraunces', serif; font-variation-settings: "opsz" 144, "SOFT" 50; font-size: 24px; color: var(--ink); margin-bottom: 10px; font-weight: 400; }
  .wizard-success p { font-size: 14px; color: var(--muted); line-height: 1.6; margin-bottom: 22px; }

  /* =========================================================
     KARRIERE SECTION auf der Seite (vor Notfall)
     ========================================================= */
  .karriere { background: linear-gradient(180deg, var(--cream) 0%, #EEE9DB 100%); padding: 90px 48px; position: relative; overflow: hidden; scroll-margin-top: -33px; }
  .karriere::before { content:''; position: absolute; top: -120px; right: -120px; width: 400px; height: 400px; border-radius: 50%; background: radial-gradient(circle, rgba(201,173,119,0.18) 0%, transparent 70%); pointer-events: none; }
  .karriere::after { content:''; position: absolute; bottom: -80px; left: -80px; width: 320px; height: 320px; border-radius: 50%; background: radial-gradient(circle, rgba(122,149,130,0.12) 0%, transparent 70%); pointer-events: none; }
  .karriere-wrap { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; position: relative; z-index: 1; }
  .karriere-content .section-eyebrow { color: var(--gold); }
  .karriere-content h2 { margin-bottom: 18px; }
  .karriere-content h2 em { font-style: italic; color: var(--forest); font-variation-settings: "opsz" 144, "SOFT" 100; }
  .karriere-content p { font-size: 15.5px; color: var(--text); line-height: 1.7; margin-bottom: 22px; max-width: 540px; }
  .karriere-benefits { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 18px; margin: 28px 0 32px; }
  .karriere-benefit { display: flex; gap: 10px; align-items: flex-start; font-size: 13.5px; color: var(--text); line-height: 1.45; }
  .karriere-benefit svg { width: 18px; height: 18px; color: var(--forest); flex-shrink: 0; margin-top: 1px; }
  .karriere-benefit strong { color: var(--ink); font-weight: 600; display: block; margin-bottom: 2px; }
  .karriere-cta { display: inline-flex; align-items: center; gap: 10px; padding: 14px 28px; background: var(--forest); color: var(--cream); border: none; border-radius: 100px; font-family: inherit; font-size: 14px; font-weight: 500; letter-spacing: 0.01em; cursor: pointer; transition: all 0.7s var(--ease); position: relative; overflow: hidden; }
  .karriere-cta::before { content:''; position:absolute; inset:0; background: linear-gradient(90deg, transparent, rgba(201,173,119,0.4), transparent); transform: translateX(-100%); transition: transform 0.9s var(--ease); }
  .karriere-cta:hover { background: var(--forest-mist); transform: translateY(-2px); box-shadow: 0 15px 35px rgba(42,74,56,0.3); }
  .karriere-cta:hover::before { transform: translateX(100%); }

  .karriere-visual { position: relative; aspect-ratio: 1 / 1.05; max-width: 460px; justify-self: end; width: 100%; }
  .karriere-visual-main { position: absolute; inset: 0; background: linear-gradient(155deg, var(--forest-ink) 0%, var(--forest) 60%, #3A5F49 100%); border-radius: 32px; overflow: hidden; box-shadow: 0 40px 90px rgba(42,74,56,0.35); }
  .karriere-visual-main::before { content:''; position: absolute; top: -60%; left: -30%; width: 180%; height: 160%; background: radial-gradient(ellipse, rgba(201,173,119,0.25) 0%, transparent 55%); pointer-events: none; }
  .karriere-visual-inner { position: relative; z-index: 1; padding: 44px 40px; color: var(--cream); height: 100%; display: flex; flex-direction: column; justify-content: space-between; }
  .karriere-visual-inner h3 { font-family: 'Fraunces', serif; font-variation-settings: "opsz" 144, "SOFT" 50; font-size: 32px; font-weight: 400; line-height: 1.15; color: var(--cream); letter-spacing: -0.01em; }
  .karriere-visual-inner h3 em { color: var(--gold); font-style: italic; font-variation-settings: "opsz" 144, "SOFT" 100; }
  .karriere-roles { display: flex; flex-direction: column; gap: 10px; }
  .karriere-role { display: flex; align-items: center; gap: 12px; padding: 12px 14px; background: rgba(248,245,238,0.06); border: 1px solid rgba(248,245,238,0.12); border-radius: 12px; backdrop-filter: blur(8px); transition: all 0.6s var(--ease); }
  .karriere-role:hover { background: rgba(248,245,238,0.12); border-color: rgba(201,173,119,0.4); }
  .karriere-role-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--gold); flex-shrink: 0; box-shadow: 0 0 12px rgba(201,173,119,0.6); animation: dotPulse 2.4s ease-in-out infinite; }
  @keyframes dotPulse { 0%,100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.55; transform: scale(0.85); } }
  .karriere-role-text { flex: 1; font-size: 13.5px; color: var(--cream); font-weight: 500; }
  .karriere-role-tag { font-size: 10.5px; color: var(--gold-soft); background: rgba(201,173,119,0.12); padding: 3px 9px; border-radius: 100px; font-weight: 600; letter-spacing: 0.04em; border: 1px solid rgba(201,173,119,0.25); }

  @media (max-width: 900px) {
    .karriere { padding: 72px 28px; }
    .karriere-wrap { grid-template-columns: 1fr; gap: 44px; }
    .karriere-visual { justify-self: center; max-width: 400px; }
    .karriere-benefits { grid-template-columns: 1fr; }
  }

  /* Karriere Modal Variante: Gold on Forest Ink Side */
  .modal.modal-karriere .modal-side { background: linear-gradient(165deg, var(--forest-ink) 0%, #0E1A12 50%, #1A2F22 100%); }
  .modal.modal-karriere .modal-side-eyebrow { color: var(--gold-soft); }
  .modal.modal-karriere .modal-side h3 em { color: var(--gold); }
  .modal.modal-karriere .modal-side-features .feature-icon { background: rgba(201,173,119,0.14); color: var(--gold-soft); border-color: rgba(201,173,119,0.3); }
  .modal.modal-karriere .modal-side-footer strong { color: var(--gold-soft); }

  body.modal-open { overflow: hidden; }

  /* Testimonial Detail Modal, kompakter als das Rezept Modal */
  .modal.modal-testimonial .modal-panel { display: block; grid-template-columns: none; max-width: 620px; padding: 52px 48px 40px; text-align: center; background: var(--cream); }
  .testimonial-modal-badge { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 100px; font-size: 11px; font-weight: 600; letter-spacing: 0.04em; margin-bottom: 20px; }
  .testimonial-modal-badge.jameda { background: #E8F5F1; color: #00936C; }
  .testimonial-modal-badge.google { background: #F4F9FE; color: #4285F4; }
  .testimonial-modal-badge svg { width: 13px; height: 13px; }
  .testimonial-modal-stars { color: var(--gold); letter-spacing: 0.12em; font-size: 20px; margin-bottom: 22px; }
  .testimonial-modal-text { font-family: 'Fraunces', serif; font-variation-settings: "opsz" 144, "SOFT" 70; font-size: 22px; line-height: 1.55; color: var(--ink); margin-bottom: 32px; font-weight: 400; }
  .testimonial-modal-author { display: flex; justify-content: center; align-items: center; gap: 14px; padding-top: 26px; border-top: 1px solid var(--line); }
  .testimonial-modal-author .testimonial-avatar { width: 44px; height: 44px; border-radius: 50%; background: var(--sage-mist); color: var(--forest); display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: 16px; }
  .testimonial-modal-info { text-align: left; }
  .testimonial-modal-info strong { display: block; font-size: 15px; color: var(--ink); font-weight: 600; }
  .testimonial-modal-info span { font-size: 13px; color: var(--muted); }
  .testimonial-modal-source-note { margin-top: 22px; font-size: 11.5px; color: var(--muted); font-style: italic; line-height: 1.5; }
  .testimonial-modal-source-note a { color: var(--forest); text-decoration: none; border-bottom: 1px solid var(--forest); }

  @media (max-width: 840px) {
    .modal-panel { grid-template-columns: 1fr; max-height: 92vh; }
    .modal-side { border-radius: 28px 28px 0 0; padding: 32px 28px; }
    .modal-form-wrap { padding: 32px 28px; border-radius: 0 0 28px 28px; }
    .modal-form-row { grid-template-columns: 1fr; }
  }
/* === Patch 2026-04-27: Leistungs Sektion Feintuning === */
.services { padding-top: 80px !important; scroll-margin-top: -33px !important; }
.services-grid { gap: 18px !important; }
.service-item { padding: 26px 22px !important; transition: background-color 0.3s ease, color 0.3s ease !important; }
.service-icon { margin-bottom: 14px !important; }
.service-icon svg { width: 20px !important; height: 20px !important; }
.service-number { margin-bottom: 6px !important; font-size: 11px !important; }
.service-title { font-size: 19px !important; margin-bottom: 8px !important; transition: color 0.3s ease !important; }
.service-desc { font-size: 13px !important; line-height: 1.55 !important; }
/* === Ende Patch === */

/* ---------------------------------------------------------------------------
   04.08.2026 (Dirk): Leistungskacheln kraeftiger. Vorher lagen sie fast unsichtbar
   auf dem Untergrund - der Patch vom 27.04. hatte die Uebergangsliste ueberschrieben
   und dabei Anhebung und Schatten aus dem Hover geworfen, uebrig blieb ein reiner
   Farbwechsel auf einer flachen Flaeche.

   Jetzt: im Ruhezustand ein leichter gruener Schimmer mit sichtbarem Rahmen und ein
   schmaler Akzentstreifen oben, der beim Zeigen aufleuchtet. Beim Zeigen wird die
   Kachel wie gehabt dunkelgruen, hebt sich aber wieder an und wirft einen Schatten.
   --------------------------------------------------------------------------- */
.service-item {
  background: linear-gradient(168deg, #FFFFFF 0%, #F6F4EC 58%, #EEF2ED 100%) !important;
  border: 1px solid rgba(42,74,56,0.16) !important;
  box-shadow: 0 1px 2px rgba(28,49,37,0.04), 0 10px 26px -18px rgba(28,49,37,0.35) !important;
  transition: background-color .32s ease, color .32s ease, transform .32s cubic-bezier(.16,1,.3,1),
              box-shadow .32s ease, border-color .32s ease !important;
}
/* Akzentstreifen oben. Im Ruhezustand ein zurueckhaltendes Gruen, beim Zeigen Gold. */
.service-item::before {
  content: ''; position: absolute; left: 0; right: 0; top: 0; height: 3px;
  background: linear-gradient(90deg, rgba(42,74,56,0.55), rgba(42,74,56,0.18) 65%, transparent);
  opacity: .85; transition: background .32s ease, opacity .32s ease;
}
.service-item:hover::before, .service-item:focus-within::before {
  background: linear-gradient(90deg, var(--gold, #A88948), rgba(201,173,119,0.35) 70%, transparent);
  opacity: 1;
}
.service-item:hover, .service-item:focus-within {
  background: var(--forest, #2a4a38) !important;
  border-color: var(--forest, #2a4a38) !important;
  transform: translateY(-5px) !important;
  box-shadow: 0 26px 52px -20px rgba(28,49,37,0.55), 0 4px 12px rgba(28,49,37,0.10) !important;
}
/* Icon bekommt im Ruhezustand einen gruenen Grund, sonst schwamm es auf Weiss. */
.service-icon {
  background: rgba(42,74,56,0.10) !important;
  color: var(--forest, #2a4a38) !important;
  box-shadow: none !important;
  transition: background 2s var(--ease), color 2s var(--ease) !important;
}
/* 05.08.2026 (Dirk): Das Icon lief beim Ueberfahren ins Weisse. Golden war es
   urspruenglich (--gold-soft, weiter oben in der Datei) und ist es im Scroll-Zustand
   auf dem Handy bis heute - daher stammt die Erinnerung, es habe sich "golden
   aufgebaut". Hier war es als einziger Zustand auf Weiss umgestellt worden. */
.service-item:hover .service-icon, .service-item:focus-within .service-icon {
  background: var(--gold-soft, #C9AD77) !important; color: var(--forest-ink, #1C3125) !important;
}
/* Nummer und Text im Ruhezustand dunkler, damit der Kontrast auch bei Tageslicht traegt. */
.service-number { color: rgba(42,74,56,0.60) !important; font-weight: 600 !important; }
.service-item:hover .service-number, .service-item:focus-within .service-number { color: var(--gold-soft, #C9AD77) !important; }
.service-desc { color: #4A544D !important; }
.service-item:hover .service-title, .service-item:focus-within .service-title { color: var(--cream, #F8F5EE) !important; }
.service-item:hover .service-desc, .service-item:focus-within .service-desc { color: rgba(248,245,238,0.88) !important; }
@media (prefers-reduced-motion: reduce) {
  .service-item, .service-item::before, .service-icon { transition: none !important; }
  .service-item:hover, .service-item:focus-within { transform: none !important; }
}

/* 04.08.2026 (Dirk), zweiter Durchgang: Die Merkmale ueber dem Raster wirkten neben den
   nun kraeftigeren Kacheln zu blass. Sie bekommen denselben leichten gruenen Grund, einen
   sichtbaren Rahmen und einen dezenten Schatten - damit stehen Merkmale und Kacheln in
   derselben Tonlage. Der goldene Punkt bleibt als verbindendes Detail. */
.schwerpunkt-tag {
  background: linear-gradient(170deg, #FFFFFF 0%, #EFF4EE 100%) !important;
  border: 1px solid rgba(42,74,56,0.26) !important;
  color: #2F3A33 !important;
  font-weight: 600 !important;
  box-shadow: 0 1px 2px rgba(28,49,37,0.05) !important;
  transition: background .28s ease, border-color .28s ease, color .28s ease, transform .28s ease, box-shadow .28s ease !important;
}
.schwerpunkt-tag::before { width: 6px !important; height: 6px !important;
  background: var(--forest, #2a4a38) !important; }
.schwerpunkt-tag:hover {
  background: var(--forest, #2a4a38) !important;
  border-color: var(--forest, #2a4a38) !important;
  color: #F8F5EE !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 10px 20px -10px rgba(28,49,37,0.5) !important;
}
.schwerpunkt-tag:hover::before { background: var(--gold, #A88948) !important; }

/* Mehr Kontrast im Raster: kraeftigerer Rahmen, deutlicherer Verlauf, tieferer Schatten.
   Der Text steht jetzt auf einer Flaeche, die sich klar vom Seitenhintergrund abhebt. */
.service-item {
  /* 04.08.2026, zweite Nachbesserung (Dirk): Kontrast noch einmal um rund ein Fünftel hoch.
     Dunkleres Ende im Verlauf, kräftigerer Rahmen, tieferer Schatten. */
  background: linear-gradient(166deg, #FFFFFF 0%, #EFF4ED 50%, #DDE8DE 100%) !important;
  border: 1px solid rgba(42,74,56,0.30) !important;
  box-shadow: 0 1px 2px rgba(28,49,37,0.07), 0 16px 34px -20px rgba(28,49,37,0.55) !important;
}
.service-item::before { height: 4px !important;
  background: linear-gradient(90deg, var(--forest, #2a4a38), rgba(42,74,56,0.42) 62%, transparent) !important;
  opacity: 1 !important; }
.service-icon { background: rgba(42,74,56,0.16) !important; }
.service-title { color: #1C2A22 !important; }
.service-desc { color: #3D473F !important; }

/* V40 Hero Hours Final - Schedule kompakt, Uhr Suffix, Pulse Sequence */
#scheduleList li { margin-top: -10px !important; font-size: calc(1em + 1.5px) !important; line-height: 1.35 !important; }
#scheduleList li:first-child { margin-top: 0 !important; }
#countdownLabel { color: #2a2a2a !important; font-weight: 400 !important; }
#countdownValue { color: #1ea64a !important; font-weight: 400 !important; display: inline-block; transform: scale(1); transform-origin: center center; }
@keyframes v40TimePulseDouble {
  0%   { transform: scale(1); }
  15%  { transform: scale(1.22); }
  30%  { transform: scale(1); }
  45%  { transform: scale(1); }
  60%  { transform: scale(1.22); }
  75%  { transform: scale(1); }
  100% { transform: scale(1); }
}
#countdownValue.v40-pulse { animation: v40TimePulseDouble 1.4s ease-in-out; }
@media (prefers-reduced-motion: reduce) {
  #countdownValue.v40-pulse { animation: none !important; }
}


/* V41 Hero Hours Final */
#scheduleList { font-size: 0.92em !important; }
#scheduleList li, #scheduleList > div, #scheduleList > * {
  margin: 0 !important;
  padding: 1px 0 !important;
  line-height: 1.2 !important;
  font-size: inherit !important;
}
.live-countdown #countdownLabel,
#countdownLabel,
.live-widget #countdownLabel {
  color: #1a1a1a !important;
  font-weight: 400 !important;
}


/* V42 Hero Hours Final */
#scheduleList { font-size: calc(0.92em + 0.5px) !important; }
#scheduleList li, #scheduleList > * {
  margin: 0 !important; padding: 0 !important;
  line-height: 1.25 !important; font-size: inherit !important;
}
#scheduleList li + li, #scheduleList > * + * { margin-top: 3px !important; }
.live-countdown { animation: none !important; transition: none !important; }
.live-widget #countdownLabel, .live-countdown #countdownLabel, #countdownLabel {
  color: #1a1a1a !important; font-weight: 400 !important;
  animation: none !important; transform: none !important; transition: none !important;
}
.live-widget #countdownValue, #countdownValue {
  color: #1ea64a !important; font-weight: 400 !important;
}
.live-time::after {
  content: " Uhr"; font-size: 0.42em; font-weight: 400;
  vertical-align: 0.15em; margin-left: 0.4em; opacity: 0.65;
}
[data-v42-rezept] { font-size: calc(1em - 0.5px) !important; }


/* V43 Hero Hours FINAL FIX */
.live-widget #scheduleList { font-size: calc(1em + 2px) !important; }
.live-widget #scheduleList .schedule-day {
  margin-bottom: 4px !important; padding: 0 !important; line-height: 1.35 !important;
}
.live-widget #scheduleList .schedule-day:last-child { margin-bottom: 0 !important; }
.live-widget #scheduleList .day-cta { font-size: calc(1em - 0.5px) !important; }
.live-widget #countdownLabel, #countdownLabel {
  color: #1a1a1a !important; font-weight: 400 !important;
  animation: none !important; transition: none !important; transform: none !important;
}
.live-widget #countdownValue, #countdownValue {
  color: #1ea64a !important; font-weight: 400 !important;
}
#countdownValue .cd-pre {
  color: #1a1a1a !important; font-weight: 400 !important;
}
#countdownValue em {
  color: #1ea64a !important; font-style: normal !important; font-weight: 500 !important;
}


/* V44 Hero Hours REAL FIX */
html body .live-widget #scheduleList .day-name {
  text-transform: none !important;
  letter-spacing: 0 !important;
  word-spacing: 0 !important;
  width: 115px !important;
  min-width: 115px !important;
  max-width: 115px !important;
  font-weight: 500 !important;
  color: #1a1a1a !important;
  white-space: nowrap !important;
  overflow: visible !important;
  flex-shrink: 0 !important;
  font-size: 0.95em !important;
}
html body .live-widget #scheduleList .schedule-day {
  display: flex !important;
  align-items: baseline !important;
  gap: 8px !important;
  margin-bottom: 4px !important;
  flex-wrap: nowrap !important;
  white-space: nowrap !important;
}
html body .live-widget #scheduleList .day-hours {
  flex: 1 !important;
  white-space: nowrap !important;
  overflow: visible !important;
}
html body .live-widget .live-time::after {
  content: " Uhr" !important;
  font-size: 0.55em !important;
  vertical-align: 0.2em !important;
  margin-left: 0.4em !important;
  opacity: 0.8 !important;
  font-weight: 400 !important;
}
html body .live-widget #countdownValue,
html body #countdownValue {
  color: #1ea64a !important;
}
html body .live-widget #countdownValue .cd-pre,
html body #countdownValue .cd-pre {
  color: #1a1a1a !important;
  font-weight: 400 !important;
}
html body .live-widget #countdownValue em,
html body #countdownValue em {
  color: #1ea64a !important;
  font-style: normal !important;
  font-weight: 500 !important;
}


/* V45 Hero Hours STABLE FINAL */
html body .live-widget .live-time::after,
.live-widget .live-time::after {
  content: "" !important;
  display: none !important;
  margin: 0 !important;
}


/* V46 Final Touch */
html body .live-widget #scheduleList .day-cta {
  font-size: calc(1em - 1.5px) !important;
}
@keyframes v46Pulse {
  0%   { transform: scale(1); }
  20%  { transform: scale(1.12); }
  40%  { transform: scale(1); }
  60%  { transform: scale(1.12); }
  80%, 100% { transform: scale(1); }
}
html body #countdownValue em.v46-pulse {
  display: inline-block !important;
  animation: v46Pulse 1.4s ease-in-out !important;
  transform-origin: center center !important;
}


/* V47 Final Polish */
@keyframes v46Pulse {
  0%   { transform: scale(1); }
  15%  { transform: scale(1.17); }
  30%  { transform: scale(1); }
  42%  { transform: scale(1); }
  57%  { transform: scale(1.17); }
  72%  { transform: scale(1); }
  100% { transform: scale(1); }
}
html body #countdownValue em.v46-pulse {
  display: inline-block !important;
  animation: v46Pulse 1.6s ease-in-out !important;
  transform-origin: center center !important;
}
html body .live-widget #scheduleList .day-cta {
  font-size: calc(1em - 2px) !important;
}
html body .live-widget #scheduleList .day-name {
  font-size: calc(0.95em - 0.3px) !important;
}
html body .live-widget #scheduleList .day-hours {
  font-size: calc(1em - 0.3px) !important;
}
/* 2-Spalten-Grid Wochentabelle (Vormittag | Nachmittag), schlaegt die Flex-Overrides */
html body .live-widget #scheduleList .schedule-day .day-hours {
  display: grid !important;
  grid-template-columns: 7.6em 7.6em !important;
  column-gap: 1.1em !important;
  align-items: baseline !important;
  white-space: nowrap !important;
  overflow: visible !important;
}
html body .live-widget #scheduleList .slot-col { text-align: left; }
html body .live-widget #scheduleList .slot-empty .dg { display: inline-block; width: 2ch; text-align: center; }
html body .live-widget #scheduleList .schedule-day.closed .slot-closed { grid-column: 1 / -1 !important; }


/* V48 Pulse 2x echte Iterationen + Button kleiner */
@keyframes v48Pulse {
  0%   { transform: scale(1); }
  50%  { transform: scale(1.17); }
  100% { transform: scale(1); }
}
html body #countdownValue em,
html body #countdownValue em.v46-pulse {
  display: inline-block !important;
}
html body #countdownValue em.v46-pulse {
  animation: v48Pulse 0.7s ease-in-out 2 !important;
  transform-origin: center center !important;
}
html body .live-widget #scheduleList .day-cta {
  font-size: calc(1em - 3px) !important;
  transform: scale(0.93) !important;
  transform-origin: center center !important;
  display: inline-block !important;
}


/* V49 Pulse weg, SVG Icon weg */
html body #countdownValue em,
html body #countdownValue em.v46-pulse {
  animation: none !important;
  transform: none !important;
  display: inline !important;
}
html body .live-widget #scheduleList .day-cta svg {
  display: none !important;
}


  /* === STANDORTAUSWAHL OVERLAY CSS === */
  .standort-overlay-panel {
    max-width: 920px;
    width: calc(100% - 40px);
    padding: 48px 40px 6px;
    background: var(--cream, #f8f5ee);
    border-radius: 24px;
    border: 1px solid var(--line, rgba(26,31,27,0.08));
    /* Patch K panelshadow: gleichmaessig rundum, am Rand intensiv, hebt Panel vom Backdrop ab */
    box-shadow:
      0 0 24px rgba(26,31,27,0.22),
      0 0 60px rgba(26,31,27,0.16),
      0 0 120px -20px rgba(26,31,27,0.20);
  }
  .standort-overlay-content {
    display: flex;
    flex-direction: column;
    gap: 22px;
  }
  .standort-overlay-eyebrow {
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--gold-soft, #C8852A);
  }
  .standort-overlay-title {
    font-family: 'Fraunces', 'Lora', Georgia, serif;
    font-size: clamp(26px, 3.6vw, 36px);
    font-weight: 400;
    line-height: 1.15;
    color: var(--forest, #2A4A38);
    margin: 0;
    letter-spacing: -0.01em;
  }
  .standort-overlay-sub {
    font-size: 15px;
    line-height: 1.55;
    color: var(--ink, #1a1f1b);
    margin: 0;
    opacity: 0.7;
    max-width: none;
  }
  .standort-overlay-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    margin: 8px 0 4px;
  }
  .standort-overlay-card {
    appearance: none;
    background: var(--white, #ffffff);
    border: 1px solid var(--line, rgba(26,31,27,0.06));
    border-radius: 16px;
    padding: 30px 26px 30px;
    cursor: pointer;
    text-align: left;
    color: var(--ink, #1a1f1b);
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    gap: 10px;
    /* Patch I finalpolish: Edge etwas dezenter */
    box-shadow:
      0 0 6px rgba(26,31,27,0.08),
      0 0 14px rgba(26,31,27,0.07),
      0 0 28px -4px rgba(26,31,27,0.06);
    transition: background 0.55s cubic-bezier(0.4, 0, 0.2, 1),
                color 0.55s cubic-bezier(0.4, 0, 0.2, 1),
                border-color 0.55s cubic-bezier(0.4, 0, 0.2, 1),
                transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
                box-shadow 0.55s cubic-bezier(0.4, 0, 0.2, 1);
  }
  .standort-overlay-card:hover {
    background: var(--forest, #2A4A38);
    color: var(--cream, #f8f5ee);
    border-color: var(--forest, #2A4A38);
    transform: translateY(-4px) scale(1.02);
    box-shadow:
      0 2px 4px rgba(42,74,56,0.14),
      0 12px 24px -4px rgba(42,74,56,0.24),
      0 28px 48px -12px rgba(42,74,56,0.30);
  }
  .standort-overlay-card:focus-visible {
    outline: 2px solid var(--gold-soft, #C8852A);
    outline-offset: 4px;
  }
  .standort-overlay-label {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--gold-soft, #C8852A);
  }
  .standort-overlay-card .standort-overlay-name,
  .standort-overlay-card .standort-overlay-address,
  .standort-overlay-card .standort-overlay-phone,
  .standort-overlay-card .standort-overlay-label {
    transition: color 0.55s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.55s cubic-bezier(0.4, 0, 0.2, 1);
  }
  .standort-overlay-name {
    font-family: 'Fraunces', 'Lora', Georgia, serif;
    font-size: 26px;
    font-weight: 400;
    letter-spacing: -0.01em;
    line-height: 1.1;
  }
  .standort-overlay-address {
    font-size: 13.5px;
    line-height: 1.5;
    opacity: 0.78;
  }
  .standort-overlay-phone {
    font-size: 13px;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 2px;
    opacity: 0.92;
  }
  .standort-overlay-phone svg {
    flex-shrink: 0;
    opacity: 0.65;
  }
  .standort-overlay-arrow {
    position: absolute;
    bottom: 22px;
    right: 22px;
    opacity: 0;
    transform: translateX(-8px);
    transition: opacity 0.35s ease, transform 0.35s ease;
  }
  .standort-overlay-card:hover .standort-overlay-arrow {
    opacity: 1;
    transform: translateX(0);
  }
  .standort-overlay-foot {
    font-size: 12px;
    color: var(--ink, #1a1f1b);
    opacity: 0.55;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding-top: 0px;
    margin-top: -1px;
  }
  /* Patch DCplus applied */
  @media (max-width: 720px) {
    .standort-overlay-panel {
      padding: 30px 22px;
      width: calc(100% - 24px);
      max-height: calc(100vh - 40px);
      overflow-y: auto;
    }
    .standort-overlay-grid {
      grid-template-columns: 1fr;
      gap: 12px;
    }
    .standort-overlay-card {
      padding: 24px 20px;
    }
    .standort-overlay-name {
      font-size: 22px;
    }
    .standort-overlay-arrow {
      bottom: 16px;
      right: 16px;
    }
  }

  /* Standort-Bildwechsler */
  .standort-slider .slide { transition: opacity 1.2s ease-in-out, transform 1.2s var(--ease); opacity: 0; }
  .standort-slider .slide.is-active { opacity: 1; }
  .standort-slider .slide + .slide { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
  @media (prefers-reduced-motion: reduce) { .standort-slider .slide { transition: none; } }

  /* Hero Marken-Flaeche (2026-07-12): Cream-Basis kommt vom Body, dazu nur ein
     zarter Gold-Hauch oben rechts. Text und Karte stehen auf z-index 2. */
  .hero {
    background: radial-gradient(1100px 780px at 82% 12%, rgba(201,173,119,0.07), transparent 70%);
  }

  


/* T1 + T4: einheitlicher Seitenrand auf Mobil, nichts beruehrt mehr die Kante
   (Wurzel laut Diagnose: .about/.standorte/.team ohne horizontales Padding) */
@media (max-width: 968px) {
  .about,
  .standorte,
  .team,
  .notfall { padding-left: 20px; padding-right: 20px; }
  
  /* T3: mehr Luft zwischen Hero-Text/Buttons und Live-Widget */
  .hero { gap: 72px; }
  /* T6: Beschwerde-Chips auf Mobil komplett ausblenden */
  .schwerpunkte { display: none !important; }
}
@media (max-width: 480px) {
  /* Footer-Markenname darf umbrechen statt rechts abgeschnitten zu werden */
  
}
/* T6: Chips auf Desktop hochwertiger, feiner Hover-Effekt */
.schwerpunkt-tag {
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, color .18s ease, background-color .18s ease;
}
.schwerpunkt-tag:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(42,74,56,.12);
  border-color: var(--gold, #C9A24B);
  color: var(--forest, #2A4A38);
}
/* T5: Notfall-Pille etwas breiter und praesenter auf Mobil */
@media (max-width: 520px) {
  .floating-emergency { padding: 14px 22px; gap: 14px; max-width: 330px; }
  .floating-emergency-number { font-size: 21px; }
}
  /* Termin-Tool auf Mobil breiter, weniger verschenkter Seitenrand (Mobil-Override fehlte) */
  @media (max-width: 768px) {
    .termin { padding: 40px 16px 72px !important; }
    .termin-wrap { padding: 26px 16px !important; max-width: 100% !important; }
    .termin-location { padding: 20px 16px 18px !important; }
  }
  /* Karriere auf Mobil komplett aus: Sektion auf der Seite + Footer-Spalte */
  @media (max-width: 768px) {
    #karriere { display: none !important; }
    
    /* Footer: Service und Rechtliches nebeneinander, Marke oben volle Breite */
    
    
  }


/* ---------------------------------------------------------------------------
   12.08.2026: Notfallblock auf dem Handy

   Der Block stand breiter da als das Fenster und wurde rechts abgeschnitten.
   Ein Raster mit 1fr heisst minmax(auto, 1fr): die Spalte wird nie schmaler
   als ihr breitester unteilbarer Inhalt, hier 430 Pixel bei 375 Pixeln
   Fensterbreite. Mit minmax(0, 1fr) und min-width: 0 darf sie das doch, der
   Inhalt bricht dann sauber um.

   Vorher hielt eine Pauschalregel aus der Startseiten-Vollkopie
   (* { max-width: 100% !important }) den Ueberstand nur verdeckt. Die ist mit
   dem Aufraeumen entfallen, deshalb steht hier jetzt die eigentliche Ursache.
   --------------------------------------------------------------------------- */
@media (max-width: 900px) {
  .notfall-wrap,
  .notfall-numbers,
  .notfall-pharmacy { grid-template-columns: minmax(0, 1fr); }

  .notfall-wrap > *,
  .notfall-numbers > *,
  .notfall-pharmacy > *,
  .notfall-intro > * { min-width: 0; }

  /* Netz fuer alles, was sich nicht ans Raster haelt: Bilder, Karten,
     eingebettete Inhalte. Text bricht um, harte Breiten werden gedeckelt. */
  .notfall * { max-width: 100%; }

  /* Lange Rufnummern und Adressen duerfen umbrechen, statt die Zeile
     auseinanderzuziehen. */
  .notfall-number { overflow-wrap: anywhere; }
}


/* ==========================================================================
   Notfallbereich eins zu eins wie die Startseite, 12.08.2026

   Am Morgen des 12.08.2026 wurden aus dieser Datei die pauschalen Regeln
   entfernt, die Menue und Abstaende der ganzen Seite kaputt gemacht hatten.
   Das war richtig. Dabei sind aber auch Regeln verschwunden, die der
   Notfallblock selbst braucht, und der Block sass ausserdem in einem
   Container, der ihn 140 Pixel schmaler macht als auf der Startseite.

   Alles hier ist auf den Notfallblock begrenzt. Pauschale Auswahlen wie
   nav oder section kommen bewusst nicht zurueck.
   ========================================================================== */

/* --- 1 Der Statusblock -----------------------------------------------------
   Wort fuer Wort aus der Startseite uebernommen. Am Bildschirm ausgeblendet,
   erst ab 768 Pixel abwaerts sichtbar. Ohne die erste Zeile stand auf den
   Standortseiten blanker Text ueber den Notrufnummern. */
.praxis-status-mobile { display: none; }

@keyframes praxisStatusPulse {
  0%, 100% { transform: scale(1); opacity: 0.4; }
  50% { transform: scale(1.6); opacity: 0; }
}

@media (max-width: 768px) {
  .praxis-status-mobile { display: flex !important; flex-direction: column; gap: 10px; margin-top: 22px; padding: 16px 18px; background: rgba(42, 74, 56, 0.04); border: 1px solid rgba(42, 74, 56, 0.10); border-radius: 14px; align-self: stretch; }
  .praxis-status-mobile .status-row { display: flex; align-items: center; gap: 12px; }
  .praxis-status-mobile .status-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; position: relative; }
  .praxis-status-mobile .status-dot::after { content: ''; position: absolute; inset: -4px; border-radius: 50%; opacity: 0.4; animation: praxisStatusPulse 2.4s ease-in-out infinite; }
  .praxis-status-mobile .status-row.is-open .status-dot { background: #4A7C59; }
  .praxis-status-mobile .status-row.is-open .status-dot::after { background: #4A7C59; }
  .praxis-status-mobile .status-row.is-closed .status-dot { background: #C84B4B; }
  .praxis-status-mobile .status-row.is-closed .status-dot::after { background: #C84B4B; }
  .praxis-status-mobile .status-header { font-size: 12px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); margin-bottom: 4px; }
  .praxis-status-mobile .status-header:empty { display: none; }
  .praxis-status-mobile .status-text { font-size: 13.5px; font-weight: 500; color: var(--ink); line-height: 1.35; white-space: nowrap; }
}

/* --- 2 Die Naht ---------------------------------------------------------
   Entfaellt seit dem 12.08.2026: der Notfallbereich steht jetzt als letzte
   Sektion vor dem Fussbereich, genau wie auf der Startseite. Der wrap wird
   dort ohnehin geschlossen, es muss nichts mehr aufgetrennt werden. */

/* --- 3 Zeilenhoehe ---------------------------------------------------------
   Der Rumpf der Standortseiten gibt 1,7 vor, die Startseite 1,65. Fuer
   diesen einen Bereich wird der Wert der Startseite genommen, damit die
   Karten dieselbe Hoehe bekommen. */
section.notfall { line-height: 1.65; }


/* ==========================================================================
   Farben des Notfallblocks wie auf der Startseite, 12.08.2026

   standort.css bringt eine eigene Palette mit, die sich in zwei Werten von
   der Startseite unterscheidet. Im Notfallblock fiel das an 17 Stellen auf:
   Beschriftungen der Notrufkarten, Zeitangabe und Adresse der Apotheke,
   Knopfbeschriftungen, Quellenzeile.

       Startseite     --muted: #676E68   --muted-light: #67706A
       standort.css   --muted: #6B736C   --muted-light: #9BA39D

   Hier gelten fuer den Notfallblock die Werte der Startseite. Der Rest der
   Standortseiten behaelt seine eigene Palette.
   ========================================================================== */
section.notfall {
  --muted: #676E68;
  --muted-light: #67706A;
}


/* ===========================================================================
   CSS-5 Stufe 1 (15.08.2026): Overlay-Feinschliff der Startseite nachgezogen.
   Die beiden Bloecke stehen WORTGLEICH in index.html (Stand 15.08.); bei
   Aenderungen dort bitte hier mitziehen, bis die Vollkopie eingedampft ist.
   =========================================================================== */
.pm-ovl-apotheke { padding-right: 16px !important; min-height: 106px; word-break: normal !important; overflow-wrap: break-word !important; }
.pm-ovl-vertretung { word-break: normal !important; overflow-wrap: break-word !important; }
.pm-ovl-apotheke::before {
  top: 24px !important; bottom: auto !important; right: 19px !important;
  width: 84px !important; height: 84px !important;
}
.pm-ovl-apotheke .pm-ovl-card-title,
.pm-ovl-apotheke .pm-ovl-card-name,
.pm-ovl-apotheke .pm-ovl-card-line,
.pm-ovl-apotheke .pm-ovl-card-link { padding-right: 96px !important; }
.pm-ovl-card-routes { display: flex !important; flex-wrap: nowrap !important; gap: 8px !important;
  width: 100% !important; padding-right: 0 !important; }
.pm-ovl-card-routes .pm-ovl-route { flex: 1 1 0 !important; min-width: 0 !important;
  white-space: nowrap !important; justify-content: center; }
@media (max-width: 520px) {
  .pm-ovl-apotheke::before { width: 66px !important; height: 66px !important; top: 12px !important; }
  .pm-ovl-apotheke .pm-ovl-card-title,
  .pm-ovl-apotheke .pm-ovl-card-name,
  .pm-ovl-apotheke .pm-ovl-card-line,
  .pm-ovl-apotheke .pm-ovl-card-link { padding-right: 76px !important; }
}

.pm-ovl-card-routes .pm-ovl-route:nth-child(1) svg { width: 15px !important; height: 15px !important; }
.pm-ovl-card-routes .pm-ovl-route:nth-child(2) svg { width: 18px !important; height: 18px !important; }

.pm-ovl-cards { align-items: stretch; }
.pm-ovl-vertretung, .pm-ovl-apotheke { display: flex; flex-direction: column; }
.pm-ovl-card-routes { margin-top: auto; padding-top: 10px; }
.pm-ovl-vertretung, .pm-ovl-apotheke { word-break: normal; overflow-wrap: break-word; }
.pm-ovl-apotheke::before { width: clamp(56px, 24%, 84px) !important; height: clamp(56px, 24%, 84px) !important; }
.pm-ovl-apotheke .pm-ovl-card-name, .pm-ovl-apotheke .pm-ovl-card-line { padding-right: clamp(64px, 28%, 94px); }
