/* ===================================================================
   inline-03-rumpf.css
   Etappe 2 · aus index.html ausgelagert, Inhalt unverändert.
   Sektionen, Bewertungs-Tool, Korrekturen · nach gesundheitsthemen.css, vor auswahl.css
   17 Blocke, Quellreihenfolge erhalten.
   Rückweg: Tag vor-redesign-20260905, Commit c04ab0a.
   Kein Wert geändert, keine Regel zusammengefasst, keine Dublette
   entfernt, keine Reihenfolge geändert.
   =================================================================== */

/* Block 7 · index.html Zeile 3322–3423 · <style id="sched-foto-css"> */
  /* Standortfoto im Oeffnungszeiten-Modul (09.08.2026, Dirk).

     Alle vier Aufnahmen liegen uebereinander, sichtbar ist immer genau eine.
     Beim Umschalten wird nur die Sichtbarkeit vertauscht. Dadurch steht beim
     Erscheinen der Oeffnungszeiten sofort das richtige Bild, ohne Nachladen
     und ohne Sprung.

     Das Foto reicht bis in die Ueberschrift hinauf, dadurch bekommt der
     Standort mehr Flaeche. Nach links laeuft es weich in die Seitenfarbe aus,
     damit die Uhrzeiten klar lesbar bleiben. */
  .live-widget .live-schedule { position: relative; }

  /* ===== FOTO-NEBEN-ZEITEN-20260908 (Dirk, 08.09.2026, 20:27) =====
     Das Foto liegt nicht mehr UNTER den Zeiten, es steht DANEBEN.

     Vorher: position:absolute, 70% Breite von rechts, z-index 0, dazu eine
     Maske nach links. Die Zeiten lagen darueber, und damit sie lesbar
     blieben, trug jede Zeile ein eigenes weisses Verlaufsband. Das sind die
     Streifen, die Dirk als haesslich markiert hat.

     Jetzt sind Liste und Foto zwei Nachbarn in einer Flex-Zeile:
       .schedule-list  flex 0 0 auto, also genau so breit wie ihre Spalten
       4 px Luft       Dirks Vorgabe "3 bis 5 Pixel"
       .sched-foto     flex 1 1 auto, nimmt den Rest bis zum bestehenden Rand

     Weil .day-name (115 px fest) und .day-hours (Raster 7.6em + 1.1em +
     7.6em) feste Breiten haben, steht das Foto IMMER gleich gross an
     derselben Stelle, auch an Tagen ohne Nachmittagssprechstunde. Genau das
     war Dirks Bedingung. */
  .live-widget .schedule-body {
    display: flex;
    align-items: stretch;
    gap: 4px;
  }
  .live-widget .schedule-body > .schedule-list {
    flex: 0 0 auto;
    min-width: 0;
  }
  /* Ohne das waechst die Zeitenspalte weiter und frisst den Platz des Fotos. */
  .live-widget .schedule-body > .schedule-list .day-hours {
    flex: 0 0 auto;
  }
  /* Der Heute-Punkt sass ganz rechts und stand damit zwischen Uhrzeit und
     Foto. Er haengt jetzt links aussen, ausserhalb des Textflusses, und
     kostet keine Breite mehr. */
  .live-widget .schedule-body > .schedule-list .schedule-day { position: relative; }
  .live-widget .schedule-body > .schedule-list .day-marker {
    position: absolute;
    left: -11px;
    top: 50%;
    transform: translateY(-50%);
    margin: 0;
  }

  .live-widget .sched-foto {
    position: relative;
    flex: 1 1 auto;
    top: auto; right: auto; bottom: auto;
    width: auto;
    align-self: stretch;
    margin: 0;
    border-radius: 14px;
    overflow: hidden;
    pointer-events: none;
    z-index: auto;
    /* Keine Maske mehr. Sie gab es nur, damit das Bild unter der Schrift
       ausblendet. Unter der Schrift liegt jetzt kein Bild. */
    -webkit-mask-image: none;
            mask-image: none;
  }

  .live-widget .sched-foto .sf-bild {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    /* Der Ausschnitt sitzt bewusst tief: die Eingaenge stehen im unteren
       Drittel der Aufnahmen, oben ist nur Himmel und Dachkante. */
    object-position: 50% 68%;
    opacity: 0;
    visibility: hidden;
  }
  .live-widget .sched-foto .sf-bild.ist-an { opacity: 1; visibility: visible; }

  /* Je Aufnahme der passende Ausschnitt, damit der Eingang vollstaendig steht. */
  .live-widget .sf-bild[data-ort="soemmerda"][data-nr="0"] { object-position: 50% 62%; }
  .live-widget .sf-bild[data-ort="soemmerda"][data-nr="1"] { object-position: 50% 58%; }
  .live-widget .sf-bild[data-ort="koelleda"][data-nr="0"]  { object-position: 42% 52%; }
  .live-widget .sf-bild[data-ort="koelleda"][data-nr="1"]  { object-position: 58% 72%; }

  /* Der Schleier ist ersatzlos weg. Er lag ueber dem ganzen Foto, damit die
     Schrift darauf lesbar blieb. Es liegt keine Schrift mehr darauf. */
  .live-widget .sched-foto::after { content: none; }

  /* Die Stapelung ist weg. Nichts liegt mehr uebereinander, also braucht
     auch nichts eine Ebene. */
  .live-widget .live-schedule .schedule-title { position: relative; }
  /* Feste Farbkombination statt Textschatten: jede Zeile steht auf einem
     eigenen hellen Band. Dadurch sieht sie immer gleich aus, unabhaengig
     davon, was im Foto darunter liegt. */
  .live-widget .schedule-body > .schedule-list { position: relative; }
  /* Jede Zeile traegt ihren hellen Grund selbst. Als eigene Ebene rutschte
     er hinter das Foto und die zweite Zeitspalte verschwand. */
  /* Das Band reicht nur so weit wie die Zeiten selbst. Rechts daneben
     bleibt das Foto frei sichtbar. */
  .live-widget .schedule-body > .schedule-list > * { position: relative; }

  /* 09.08.2026 (Dirk): Kein helles Band mehr, es hat das Foto verdeckt.
     Stattdessen wird die Schrift dort dunkler und kraeftiger, wo sie ueber
     dem Bild liegt. Fuer das Auge wirkt sie dadurch genauso wie die
     Vormittagszeiten, das Foto bleibt frei.
     Der Nachmittag steht immer in derselben Spalte, deshalb genuegt eine
     feste Zuordnung statt einer Rechnung zur Laufzeit. */
  .live-widget .schedule-body .day-name { color: #1C3125; }
  .live-widget .schedule-body .slot-vormittag { color: #2C332E; }
  /* Der weisse Textschatten war die Notloesung gegen das Foto darunter.
     Er faellt weg, die Farbe allein traegt jetzt. */
  .live-widget .schedule-body .slot-nachmittag {
    color: #14241B;
    font-weight: 600;
  }
  .live-widget .schedule-body .slot-nachmittag.slot-empty { color: #55605A; font-weight: 500; }
  .live-widget .schedule-body .slot-active { color: #1B7A46; font-weight: 700; }
  .live-widget .schedule-body > .schedule-list .day-name { color: #1C3125; }
  .live-widget .schedule-body > .schedule-list .day-hours,
  .live-widget .schedule-body > .schedule-list .slot-col { color: #2C332E; }
  .live-widget .schedule-body > .schedule-list .slot-empty { color: #7C847D; }

  /* Der alte Knopf "Rezept in 24h" entfaellt ersatzlos. */
  .live-widget .day-cta { display: none !important; }

  @media (max-width: 900px) {
    .live-widget .sched-foto {
      position: static; width: 100%; margin-top: 14px;
      aspect-ratio: 16 / 7;
      -webkit-mask-image: none; mask-image: none;
    }
    .live-widget .schedule-body > .schedule-list .day-name,
    .live-widget .schedule-body > .schedule-list .day-hours { text-shadow: none; }
  }

/* Block 8 · index.html Zeile 3499–3520 · <style> */
.stellen-badge{ position:fixed; top:calc(65px + 20mm); right:20mm; z-index:120; width:272px; box-sizing:border-box; display:block; text-align:center; font-family:inherit; cursor:pointer; -webkit-appearance:none; appearance:none; transform:rotate(8deg) scale(1.14); transform-origin:100% 0; background:linear-gradient(150deg,#2E5040,#1A2F22); color:#F8F5EE; border:1px solid rgba(201,173,119,0.55); border-radius:16px; padding:14px 18px 15px; box-shadow:0 16px 34px -12px rgba(26,47,34,0.62); transition:transform .55s cubic-bezier(0.16,1,0.3,1), box-shadow .55s cubic-bezier(0.16,1,0.3,1); animation:pmBadgeCycle 13s ease-in-out infinite; }
.stellen-badge:hover{ transform:rotate(5deg) scale(1.14) translateY(-2px); box-shadow:0 24px 46px -14px rgba(26,47,34,0.74); }
@keyframes pmBadgeCycle { 0%,68%{ opacity:1; pointer-events:auto; } 78%,88%{ opacity:0; pointer-events:none; } 100%{ opacity:1; pointer-events:auto; } }
.stellen-badge:focus-visible{ outline:3px solid #C9AD77; outline-offset:3px; }
.stellen-badge[hidden]{ display:none; }
.stellen-badge .sb-eyebrow{ display:block; font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:#C9AD77; font-weight:700; }
.stellen-badge .sb-role{ display:block; font-family:'Fraunces',Georgia,'Times New Roman',serif; font-weight:400; font-size:20.5px; line-height:1.18; margin:7px 0 3px; color:#F8F5EE; }
.stellen-badge .sb-loc{ display:block; font-size:12.5px; color:#D6DED3; }
.stellen-badge .sb-cta{ display:inline-flex; align-items:center; gap:6px; margin-top:11px; font-size:13px; font-weight:600; color:#1A2F22; background:#C9AD77; border-radius:999px; padding:6px 14px; }
.stellen-badge .sb-cta svg{ width:13px; height:13px; }
@media (max-width: 860px){
  .stellen-badge{ position:static; top:auto; right:auto; left:auto; bottom:auto; z-index:auto; width:100%; max-width:420px; margin:0; transform:none; border-radius:16px; border:1px solid rgba(201,173,119,0.55); display:block; text-align:center; padding:16px 18px 17px; box-shadow:0 14px 30px -14px rgba(26,47,34,0.5); animation:none; opacity:1; }
  .stellen-badge:hover{ transform:none; box-shadow:0 14px 30px -14px rgba(26,47,34,0.5); }
  .stellen-badge .sb-eyebrow{ display:block; font-size:10px; letter-spacing:0.1em; }
  .stellen-badge .sb-role{ display:block; font-size:19px; line-height:1.2; margin:6px 0 5px; }
  .stellen-badge .sb-loc{ display:block; font-size:12.5px; }
  .stellen-badge .sb-cta{ margin-top:12px; }
}
nav .nav-cta{ position:relative; z-index:140; }
@media (prefers-reduced-motion:reduce){ .stellen-badge, .stellen-badge:hover{ transition:none; animation:none; opacity:1; } }

/* Block 9 · index.html Zeile 5098–5239 · <style id="dgr-css"> */
.dgr-section{background:var(--cream-soft,#F3EEE2);padding:2px 0 96px;overflow:hidden;scroll-margin-top:-10px;}
.dgr{max-width:1400px;margin:5rem auto 0;padding:0 1rem;}
.dgr-head{text-align:center;margin-bottom:1.6rem;}
.dgr-eyebrow{font-size:13px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold,#C9AD77);margin:0 0 .9rem;font-weight:600;}
.dgr-title{font-family:'Fraunces',Georgia,serif;font-weight:400;font-size:clamp(2rem,3.8vw,2.9rem);color:var(--ink,#18302A);margin:0 0 1.3rem;line-height:1.14;letter-spacing:-0.01em;}
.dgr-agg{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;}
.dgr-stars{display:inline-flex;gap:2px;}
.dgr-star{color:rgba(201,173,119,.32);font-size:1.05em;line-height:1;}
.dgr-star.is-on{color:#E0A11E;}
.dgr-agg .dgr-stars-lg{font-size:1.9rem;gap:6px;line-height:1;margin-top:4px;}
.dgr-agg .dgr-stars-lg .dgr-star.is-on{text-shadow:0 3px 8px rgba(180,132,20,0.32);}
.dgr-agg-num{font-size:clamp(3.2rem,6vw,4.6rem);line-height:.92;color:var(--forest,#2a4a38);font-weight:400;font-family:'Fraunces',Georgia,serif;letter-spacing:-0.01em;}
.dgr-agg-count{color:var(--muted,#5A615C);font-size:1rem;line-height:1.3;margin-top:.12rem;}
.dgr-search{max-width:1280px;margin:1.8rem auto 1rem;text-align:center;}
.dgr-filters{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;margin:1.4rem 0 .9rem;}
.dgr-fchip{padding:.52rem 1.1rem;border-radius:999px;border:1.5px solid var(--line-strong,rgba(42,74,56,0.2));background:var(--white,#fff);color:var(--forest,#2a4a38);letter-spacing:.01em;font-size:.9rem;line-height:1;cursor:pointer;font-family:inherit;transition:color .25s,border-color .25s,background .25s;}
.dgr-fchip:hover{border-color:var(--forest,#2a4a38);}
.dgr-fchip.is-on{background:var(--forest,#2a4a38);color:var(--cream,#F8F5EE);border-color:var(--forest,#2a4a38);font-weight:600;}
.dgr-count{color:var(--muted,#5A615C);font-size:.9rem;margin:.4rem 0 0;}
.dgr-count-n{display:inline-block;color:var(--forest,#2a4a38);font-weight:700;transform-origin:center;}
.dgr-count-n.is-pulse{animation:dgr-count-pulse .8s ease-in-out;}
@keyframes dgr-count-pulse{0%{transform:scale(1)}20%{transform:scale(2.4)}40%{transform:scale(1)}60%{transform:scale(2.4)}80%{transform:scale(1)}100%{transform:scale(1)}}
.dgr-searchwrap{max-width:300px;margin:1.1rem auto 0;}
.dgr .dgr-search-input{width:100%;box-sizing:border-box;appearance:none;-webkit-appearance:none;padding:.8rem 1.5rem;background:var(--white,#fff);border:1.5px solid var(--line-strong,rgba(42,74,56,0.2));border-radius:999px;color:var(--ink,#18302A);font-family:inherit;font-size:1rem;outline:none;transition:border-color .3s,box-shadow .3s;}
.dgr .dgr-search-input::placeholder{color:var(--muted,#5A615C);opacity:1;}
.dgr .dgr-search-input:focus{border-color:var(--forest,#2a4a38);box-shadow:0 0 0 3px rgba(42,74,56,0.10);}
.dgr .dgr-search-input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;}
.dgr-carousel{position:relative;max-width:1400px;margin:1.5rem auto 0;padding:0 3.2rem;}
.dgr-viewport{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:rgba(201,173,119,.55) transparent;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 60px,#000 calc(100% - 60px),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 60px,#000 calc(100% - 60px),transparent 100%);}
.dgr-viewport::-webkit-scrollbar{height:6px;}
.dgr-viewport::-webkit-scrollbar-track{background:transparent;}
.dgr-viewport::-webkit-scrollbar-thumb{background:rgba(201,173,119,.55);border-radius:3px;}
.dgr-track{display:flex;gap:1.5rem;width:max-content;padding:.4rem 0 1rem;}
.dgr-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:46px;height:46px;border-radius:50%;border:1.5px solid var(--line-strong,rgba(42,74,56,0.25));background:var(--white,#fff);color:var(--forest,#2a4a38);font-size:1.7rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(26,31,27,0.10);transition:background .3s,color .3s,border-color .3s;}
.dgr-nav:hover,.dgr-nav:focus-visible{background:var(--forest,#2a4a38);color:var(--cream,#F8F5EE);border-color:var(--forest,#2a4a38);outline:none;}
.dgr-prev{left:0;} .dgr-next{right:0;}
.dgr-noresult{text-align:center;color:var(--muted,#5A615C);font-style:italic;padding:2rem 0;width:100%;}
.dgr-card{flex:0 0 384px;height:272px;box-sizing:border-box;display:flex;flex-direction:column;gap:1rem;text-align:left;padding:1.7rem;margin:0;background:var(--white,#fff);border:1px solid var(--line,rgba(42,74,56,0.10));border-radius:16px;cursor:pointer;color:inherit;font:inherit;box-shadow:0 2px 4px rgba(26,31,27,0.04),0 18px 40px -22px rgba(26,31,27,0.18);transition:border-color .35s,transform .35s,box-shadow .35s;overflow:hidden;}
.dgr-card:hover,.dgr-card:focus-visible{border-color:var(--gold,#C9AD77);transform:translateY(-4px);box-shadow:0 10px 26px rgba(26,31,27,0.12);outline:none;}
.dgr-card-top{display:flex;align-items:center;gap:.8rem;}
.dgr-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;flex:0 0 auto;background-position:center;background-size:cover;}
.dgr-avatar--ph{display:flex;align-items:center;justify-content:center;background:linear-gradient(150deg,var(--forest-2,#2A4A37),var(--forest,#1C3125));color:var(--cream,#F8F5EE);font-weight:600;font-size:1.15rem;}
.dgr-meta{display:flex;flex-direction:column;gap:.2rem;min-width:0;}
.dgr-author{color:var(--ink,#18302A);font-weight:600;font-size:1.05rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dgr-sub{display:flex;align-items:center;gap:.5rem;}
.dgr-time{color:var(--muted,#5A615C);font-size:.82rem;}
.dgr-g{margin-left:auto;line-height:0;display:inline-flex;flex:0 0 auto;}
.dgr-text{color:var(--ink,#18302A);font-size:1.02rem;line-height:1.6;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;}
.dgr-cta{text-align:center;margin:2.4rem 0 0;display:flex;flex-direction:column;align-items:center;gap:1.1rem;}
.dgr-cta-text{color:var(--forest,#2a4a38);font-size:clamp(1.3rem,2.1vw,1.7rem);font-family:'Fraunces',Georgia,serif;font-style:italic;margin:0;line-height:1.5;}
.dgr-cta-btn{display:inline-flex;align-items:center;gap:8px;padding:1rem 2.6rem;background:var(--forest,#2a4a38);color:var(--cream,#F8F5EE);letter-spacing:.02em;font-size:.95rem;font-weight:500;border-radius:999px;text-decoration:none;transition:background .3s,transform .3s,box-shadow .3s;}
.dgr-cta-btn:hover{background:var(--forest-mist,#31563f);transform:translateY(-2px);box-shadow:0 14px 32px rgba(42,74,56,0.28);}
.dgr-cta-all{color:var(--muted,#5A615C);border-bottom:1px solid rgba(201,173,119,.5);letter-spacing:.03em;font-size:.82rem;text-decoration:none;transition:color .3s,border-color .3s;}
.dgr-cta-all:hover{color:var(--forest,#2a4a38);border-color:var(--forest,#2a4a38);}
.dgr-jam{display:inline-flex;align-items:center;gap:15px;margin:1.7rem 0 0;padding:15px 28px;min-height:44px;background:#FFFFFF;border:1px solid rgba(201,173,119,.55);border-radius:18px;text-decoration:none;box-shadow:0 6px 18px rgba(42,74,56,.07);transition:transform .34s ease,box-shadow .34s ease,border-color .34s ease;}
.dgr-jam:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(42,74,56,.16);border-color:rgba(201,173,119,.95);}
.dgr-jam:focus-visible{outline:3px solid var(--forest,#2a4a38);outline-offset:3px;}
.dgr-jam-ic{line-height:0;flex:0 0 auto;}
.dgr-jam-tx{display:flex;flex-direction:column;text-align:left;gap:3px;}
.dgr-jam-top{color:var(--forest,#2a4a38);font-weight:600;font-size:1rem;letter-spacing:.01em;line-height:1.25;}
.dgr-jam-sub{color:#4B534D;font-size:.79rem;letter-spacing:.02em;line-height:1.3;}
@media (hover:none){.dgr-jam:hover{transform:none;box-shadow:0 6px 18px rgba(42,74,56,.07);}}
@media (prefers-reduced-motion:reduce){.dgr-jam{transition:none;}.dgr-jam:hover{transform:none;}}
@media (max-width: 490px){.dgr-jam{padding:13px 20px;gap:12px;margin-top:1.4rem;}.dgr-jam-top{font-size:.93rem;}.dgr-jam-sub{font-size:.73rem;}}
.dgr-pop[hidden]{display:none;}
.dgr-pop{position:fixed;inset:0;z-index:9999;pointer-events:none;}
.dgr-pop-backdrop{position:absolute;inset:0;background:rgba(26,31,27,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity .2s;}
.dgr-pop.is-click .dgr-pop-backdrop{opacity:1;pointer-events:auto;}
.dgr-pop-box{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:auto;max-width:min(560px,calc(100% - 40px));max-height:84vh;overflow:auto;background:var(--cream,#F8F5EE);border:1px solid rgba(201,173,119,.4);border-radius:20px;padding:2.1rem;box-shadow:0 30px 90px rgba(26,31,27,.4);animation:dgr-pop .3s cubic-bezier(.22,.61,.36,1);}
@keyframes dgr-pop{from{opacity:0;transform:translate(-50%,-50%) scale(.72)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes dgr-pop-out{from{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.72)}}
.dgr-pop.is-closing .dgr-pop-box{animation:dgr-pop-out .19s ease-in forwards;}
.dgr-pop-x{position:absolute;top:.7rem;right:.9rem;background:none;border:none;color:var(--muted,#5A615C);font-size:1.8rem;line-height:1;cursor:pointer;transition:color .3s;}
.dgr-pop-x:hover,.dgr-pop-x:focus-visible{color:var(--forest,#2a4a38);outline:none;}
.dgr-pop:not(.is-click) .dgr-pop-x{display:none;}
.dgr-modal-top{display:flex;align-items:center;gap:.85rem;margin-bottom:1.3rem;}
.dgr-m-headmeta{display:flex;flex-direction:column;gap:.2rem;}
.dgr-m-author{color:var(--ink,#18302A);font-weight:600;font-size:1.3rem;}
.dgr-m-sub{display:flex;align-items:center;gap:.5rem;}
.dgr-m-date{color:var(--muted,#5A615C);font-size:.92rem;}
.dgr-m-text{color:var(--ink,#18302A);font-size:1.22rem;line-height:1.7;white-space:pre-line;}
.dgr-m-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.7rem;}
.dgr-m-link{display:inline-block;padding:.7rem 1.6rem;border-radius:999px;letter-spacing:.02em;font-size:.85rem;background:var(--forest,#2a4a38);color:var(--cream,#F8F5EE);text-decoration:none;transition:background .3s;}
.dgr-m-link:hover{background:var(--forest-mist,#31563f);}
.dgr-m-link--ghost{background:none;border:1px solid rgba(201,173,119,.55);color:var(--forest,#2a4a38);}
.dgr-m-link--ghost:hover{background:rgba(201,173,119,.12);}
@media (max-width: 600px){.dgr{margin:3rem auto 0;}.dgr-section{padding:2px 0 68px;}.dgr-carousel{padding:0 2.4rem;}.dgr-viewport{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22px,#000 calc(100% - 22px),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 22px,#000 calc(100% - 22px),transparent 100%);}.dgr-card{flex-basis:290px;height:292px;}.dgr-pop-box{max-width:calc(100% - 40px);max-height:82vh;padding:1.5rem 1.4rem;}.dgr-m-text{font-size:1.12rem;line-height:1.65;}.dgr-nav{width:40px;height:40px;font-size:1.5rem;}.dgr-agg .dgr-stars-lg{font-size:1.65rem;margin-top:3px;}.dgr-agg-num{font-size:clamp(2.9rem,13vw,3.8rem);}.dgr-agg-count{font-size:.95rem;}.dgr-filters{gap:.4rem;margin:1.1rem 0 .7rem;}.dgr-fchip{padding:.48rem 1rem;font-size:.86rem;}}

/* Auf dem Handy tragen die langen Begriffe eine Kurzfassung, damit mehr Begriffe
   in die Zeile passen. Am Rechner bleibt die ausgeschriebene Fassung.
   Diese Regeln stehen bewusst am Ende und ausserhalb aller Media-Bloecke. */
/* Suchbegriffe: am Rechner zwei ruhige Zeilen statt 10 zu 1. */
.dgr-filters{max-width:930px;margin-left:auto;margin-right:auto;}
/* Auf dem Handy eine Reihe zum Wischen statt drei Zeilen Blockwerk.
   Die Reihe zeigt am Rand an, dass es weitergeht. */
@media (max-width: 860px){
  .dgr-filters{
    flex-wrap:nowrap;
    justify-content:flex-start;
    overflow-x:auto;
    scroll-snap-type:x proximity;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    padding:2px 18px;
    margin-left:-18px;
    margin-right:-18px;
    max-width:none;
    mask-image:linear-gradient(90deg,transparent 0,#000 16px,#000 calc(100% - 16px),transparent 100%);
  }
  .dgr-filters::-webkit-scrollbar{display:none;}
  .dgr-fchip{flex:0 0 auto;scroll-snap-align:center;}
}
.dgr-count--ruhe{display:none;}
.dgr-jam--oben{margin:.9rem 0 .2rem;}
.dgr-kurz{display:none;}
.dgr-lang{display:inline;}
/* Sortierknoepfe: gleiche Form wie die Themenknoepfe, aber durch einen feinen Strich
   abgesetzt - man soll sehen, dass sie etwas anderes tun als filtern. */
.dgr-schip{padding:.52rem 1.1rem;border-radius:999px;border:1.5px solid var(--line-strong,rgba(42,74,56,0.2));
  background:var(--white,#fff);color:var(--forest,#2a4a38);letter-spacing:.01em;font-size:.9rem;line-height:1;
  cursor:pointer;font-family:inherit;transition:color .25s,border-color .25s,background .25s;}
.dgr-schip:hover{border-color:var(--forest,#2a4a38);}
.dgr-schip.is-on{background:var(--gold-soft,#C9AD77);color:var(--forest-ink,#1C3125);border-color:var(--gold-soft,#C9AD77);font-weight:600;}
.dgr-sorttrenn{width:1px;align-self:stretch;min-height:24px;background:rgba(42,74,56,0.18);margin:0 .35rem;}

/* 05.08.2026 (Dirk): Die kompakte Wischreihe galt erst ab 640px abwaerts. Auf einem
   grossen Handy standen die Knoepfe deshalb als drei Bloecke untereinander und nahmen den
   halben Bildschirm ein. Umschaltpunkt jetzt 860px. */
@media (max-width: 860px){
  .dgr-lang{display:none;}
  .dgr-kurz{display:inline;}
  .dgr-fchip,.dgr-schip{padding:.4rem .78rem;font-size:.8rem;}
  .dgr-filters{gap:.32rem;}
  .dgr-sorttrenn{margin:0 .25rem;min-height:20px;}
  /* Auf Tastgeraeten bleibt die Zielgroesse bei 44px (WCAG 2.2 AAA, Projektstandard).
     Schmaler duerfen die Knoepfe werden, flacher nicht. */
  @media (pointer:coarse){
    .dgr-fchip,.dgr-schip{min-height:44px;display:inline-flex;align-items:center;}
  }
}

/* Block 10 · index.html Zeile 10224–10267 · <style id="testmodus-styles"> */
.termin-wrap { position: relative; }
.tm-badge {
  position: absolute; top: 14px; right: 14px; z-index: 30;
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--gold, #C9A24B); color: #2a2a2a;
  font: 600 11px/1 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  letter-spacing: .06em; text-transform: uppercase;
  padding: 6px 11px; border-radius: 999px;
  box-shadow: 0 3px 10px rgba(0,0,0,.12); pointer-events: none;
}
.tm-badge::before { content:""; width:7px; height:7px; border-radius:50%; background:#2A4A38; box-shadow:0 0 0 3px rgba(42,74,56,.18); }
@media (max-width: 520px){ .tm-badge{ top:10px; right:10px; font-size:10px; padding:5px 9px; } }
.tm-overlay {
  position: fixed; inset: 0; z-index: 9000; padding: 24px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(26,38,31,.55);
  -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px);
  opacity: 0; visibility: hidden; transition: opacity .28s ease, visibility .28s ease;
}
.tm-overlay.is-open { opacity: 1; visibility: visible; }
.tm-card {
  width: 100%; max-width: 440px; background: #FBF9F4; color: #1f2a23;
  border-radius: 20px; padding: 34px 28px; text-align: center;
  border: 1px solid rgba(42,74,56,.10);
  box-shadow: 0 24px 60px rgba(20,30,24,.32), 0 4px 14px rgba(20,30,24,.18);
  transform: translateY(12px) scale(.98); transition: transform .28s ease;
}
.tm-overlay.is-open .tm-card { transform: none; }
.tm-card-icon { width: 56px; height: 56px; margin: 0 auto 18px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: rgba(201,162,75,.16); color: #2A4A38; }
.tm-card h3 { margin: 0 0 12px; font-size: 22px; font-family: Georgia, "Times New Roman", serif; color: #2A4A38; }
.tm-card h3 em { font-style: italic; color: var(--gold, #B8862F); }
.tm-card p { margin: 0 0 24px; font-size: 15px; line-height: 1.62; color: #4a5650; }
.tm-card-btn { display: inline-flex; align-items: center; gap: 8px; background: #2A4A38; color: #fff; border: 0; cursor: pointer; font: 600 15px/1 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; padding: 14px 26px; border-radius: 999px; transition: background .2s ease, transform .1s ease; }
.tm-card-btn:hover { background: #1C3125; }
.tm-card-btn:active { transform: translateY(1px); }
.tm-card-note { margin-top: 14px; font-size: 12px; color: #8a948e; }
.termin-testmode-banner { display: flex; align-items: flex-start; gap: 12px; text-align: left; background: rgba(201,162,75,.12); border: 1px solid rgba(201,162,75,.35); border-radius: 14px; padding: 14px 16px; margin: 0 auto 22px; max-width: 560px; }
.termin-testmode-banner svg { flex: 0 0 auto; margin-top: 2px; color: #B8862F; }
.termin-testmode-banner strong { display:block; font-size: 14px; color: #2A4A38; margin-bottom: 3px; }
.termin-testmode-banner span { font-size: 13px; line-height: 1.5; color: #6a6258; }
@keyframes tmBannerPulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.06); box-shadow: 0 8px 22px rgba(184,134,47,.35); } }
.termin-testmode-banner.tm-signal { animation: tmBannerPulse .5s ease 3; }

/* Block 11 · index.html Zeile 10325–10372 · <style id="responsive-polish"> */
/* 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; }
  footer { 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 */
  .footer-brand h4 { white-space: normal; }
}
/* 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-col-karriere { display: none !important; }
    /* Footer: Service und Rechtliches nebeneinander, Marke oben volle Breite */
    .footer-grid { grid-template-columns: 1fr 1fr !important; gap: 28px 24px !important; }
    .footer-brand { grid-column: 1 / -1 !important; }
  }

/* Block 12 · index.html Zeile 10379–10402 · <style> */
.testimonials-track-wrap { overflow: hidden !important; }
.testimonials-track { animation: testimonials-marquee 360s linear infinite; will-change: transform; }
.testimonials-track:hover { animation-play-state: paused; }
@keyframes testimonials-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (max-width: 768px) {
  .testimonials-track { max-width: none !important; }
}

/* Bewertungs-CTA unter dem Karussell (2026-06-24) */
.testimonials { padding-bottom: 48px; }
.review-cta { max-width: 680px; margin: 60px auto 0; background: var(--white); border: 1px solid var(--line); border-radius: 24px; box-shadow: 0 3px 12px rgba(26,31,27,0.13), 0 16px 36px rgba(26,31,27,0.10), 0 0 64px rgba(26,31,27,0.10); padding: 44px 48px; text-align: center; }
.review-cta-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: 18px; }
.review-cta-eyebrow::before, .review-cta-eyebrow::after { content:''; width: 28px; height: 1px; background: var(--forest); }
.review-cta h3 { font-family: 'Fraunces', serif; font-variation-settings: "opsz" 144, "SOFT" 50; font-size: 30px; line-height: 1.14; font-weight: 300; letter-spacing: -0.02em; color: var(--ink); margin-bottom: 14px; }
.review-cta p { font-size: 16px; color: var(--muted); line-height: 1.65; max-width: 520px; margin: 0 auto 28px; }
.review-cta-btn { display: inline-flex; align-items: center; gap: 10px; padding: 14px 28px; background: var(--forest); color: var(--cream); border: 1.5px solid var(--forest); border-radius: 100px; text-decoration: none; font-size: 14px; font-weight: 500; transition: background 0.4s var(--ease), color 0.4s var(--ease), border-color 0.4s var(--ease), box-shadow 0.45s var(--ease), transform 0.25s var(--ease); }
.review-cta-btn:hover { background: var(--white); color: var(--forest); border-color: var(--forest); transform: translateY(-2px); box-shadow: 0 20px 44px rgba(42,74,56,0.30); }
.review-cta-btn:active { transform: translateY(0) scale(0.97); box-shadow: 0 6px 16px rgba(42,74,56,0.22); transition: transform 0.09s var(--ease), box-shadow 0.09s var(--ease); }
@media (max-width: 768px) {
  .review-cta { margin: 48px 20px 0; padding: 36px 26px; }
  .review-cta h3 { font-size: 25px; }
}

/* Block 13 · index.html Zeile 10552–10656 · <style> */
/* V39 Hero Hours Final - Original Breite, Wochentage, Permanentes Gruen */
.live-widget {
  overflow: hidden !important;
}
.live-widget .live-schedule-wrap {
  transition: opacity 700ms cubic-bezier(0.16, 1, 0.3, 1),
              transform 700ms cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform, opacity;
  backface-visibility: hidden;
}
.live-widget .live-schedule-wrap.exit-right {
  opacity: 0;
  transform: translateX(110%);
}
.live-widget .live-schedule-wrap.enter-from-left {
  opacity: 0;
  transform: translateX(-110%);
  transition: none !important;
}
.live-widget .live-time {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
}
.live-widget .live-time-colon {
  position: relative !important;
  display: inline-block !important;
  width: 0.26em !important;
  height: 1em !important;
  visibility: hidden !important;
  margin: 0 -1.5px !important;
}
.live-widget .live-time-colon::before,
.live-widget .live-time-colon::after {
  content: '' !important;
  position: absolute !important;
  left: 50% !important;
  width: 0.13em !important;
  height: 0.13em !important;
  background: rgba(28, 49, 37, 0.4) !important;
  border-radius: 50% !important;
  visibility: visible !important;
  transform: translateX(-50%) !important;
}
.live-widget .live-time-colon::before { top: 36% !important; }
.live-widget .live-time-colon::after { top: 60% !important; }
.live-widget .live-date {
  text-align: center !important;
  font-size: calc(1em + 2px) !important;
  transform: translateY(-2px) !important;
}
.live-widget .schedule-list {
  font-size: calc(1em + 1.5px) !important;
  line-height: 1.45 !important;
}
.live-widget .schedule-list * {
  font-size: inherit !important;
}
.live-widget .schedule-list > * {
  margin-top: -1.5px !important;
}
.live-widget .schedule-list > *:first-child {
  margin-top: 0 !important;
}
.live-widget #countdownValue,
.live-widget #countdownValue * {
  color: #1ea64a !important;
  font-weight: 400 !important;
}
.live-widget #countdownValue .time-blink {
  display: inline-block;
  transform-origin: center center;
}
.live-widget #countdownValue .time-blink.blink-active {
  animation: heroTimeBlink 600ms ease-in-out 1;
}
@keyframes heroTimeBlink {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.22); }
}
.live-widget .location-tab { transform-origin: center center; }
.live-widget .location-tab.tab-pulse {
  animation: tabBtnPulse 550ms ease-in-out 1;
}
@keyframes tabBtnPulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.30); }
}

/* FIX v50: Sprechstunden Zeit deutlich kontraststark gruen */
[class*="sprechstunde"] [class*="time"], [class*="sprechstunde"] [class*="-time"],
[class*="naechste"] [class*="time"], [class*="naechste"] [class*="hour"],
[class*="next-hours"], [class*="next-sprech"], [class*="upcoming"],
.next-hours-time, .next-sprechstunde-time, .sprechstunde-zeit,
.upcoming-time, .live-hours-time, .open-soon-time, .next-open-time,
.naechste-zeit, .naechste-time {
  color: #15803D !important;
  font-weight: 700 !important;
  opacity: 1 !important;
  animation: none !important;
  text-shadow: none !important;
}

/* Block 14 · index.html Zeile 11105–11175 · <style id="t2-widget-mobile"> */
/* Grid-Spalte/Widget nicht ueber die Viewportbreite wachsen lassen */
@media (max-width: 968px) {
  .hero { grid-template-columns: minmax(0, 1fr) !important; }
  .hero-visual { min-width: 0 !important; }
  html body .live-widget { min-width: 0 !important; max-width: 100% !important; }
}
/* Schmale Telefone: Tageszeile stapeln, lange Oeffnungszeiten brechen um statt ueberzulaufen */
@media (max-width: 520px) {
  html body .hero .live-widget #scheduleList .schedule-day {
    display: block !important;
    white-space: normal !important;
    flex-wrap: wrap !important;
    padding: 7px 10px !important;
  }
  html body .hero .live-widget #scheduleList .day-name {
    width: auto !important; min-width: 0 !important; max-width: none !important;
    display: block !important;
    white-space: normal !important;
    font-size: 0.78em !important;
    letter-spacing: .04em !important;
    opacity: .72 !important;
    margin-bottom: 1px !important;
  }
  html body .hero .live-widget #scheduleList .day-hours {
    display: block !important;
    white-space: normal !important;
    overflow: visible !important;
    font-size: 0.92em !important;
  }
  html body .live-widget {
    max-width: calc(100vw - 36px) !important;
    margin-left: auto !important; margin-right: auto !important;
    box-sizing: border-box !important;
    padding: 22px 18px !important;
  }
  html body .live-widget .schedule-title {
    letter-spacing: .08em !important; font-size: 10px !important; white-space: normal !important;
  }
}
/* T2b Kompakt: Widget soll auf einen Screen passen */
@media (max-width: 520px) {
  /* Ueberschrift nur "Oeffnungszeiten", "diese Woche" weg -> eine Zeile gespart */
  html body .live-widget .schedule-title .sched-week { display: none !important; }
  /* Rezept-in-24h-Pille auf Mobil entfernen -> eine Zeile gespart */
  html body .live-widget #scheduleList .day-cta { display: none !important; }
  /* Abstaende oben und um die Uhrzeit enger */
  html body .live-widget .live-header { margin-bottom: 14px !important; }
  html body .live-widget .live-time { margin-bottom: 2px !important; }
  html body .live-widget .live-date { margin-bottom: 12px !important; }
  html body .live-widget .live-countdown { padding: 12px 14px !important; margin-bottom: 12px !important; }
  /* Oeffnungszeiten-Block enger zusammenruecken */
  html body .live-widget .live-schedule { padding-top: 12px !important; }


  html body .live-widget .schedule-title { margin-bottom: 8px !important; }
  html body .live-widget .schedule-list { gap: 2px !important; }
  html body .live-widget #scheduleList .schedule-day { margin-bottom: 1px !important; padding: 4px 8px !important; }
  html body .live-widget #scheduleList .day-name { margin-bottom: 0 !important; }
}
@media (max-width: 520px) {
  /* 2-Spalten-Grid auch mobil (schlaegt das mobile display:block der day-hours) */
  html body .hero .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;
  }
}

/* Block 15 · index.html Zeile 11179–11182 · <style> */
.nav-wrapper { transition: transform 0.4s cubic-bezier(0.4,0,0.2,1); }
.nav-wrapper.nav-hidden { transform: translateY(-100%); }

/* Block 16 · index.html Zeile 11218–11235 · <style> */
.logo-gp { display: none; }
.service-item.scroll-active { background: var(--forest); border-color: var(--forest); transform: translateY(-6px); box-shadow: 0 30px 70px rgba(42,74,56,0.28); }
.service-item.scroll-active .service-icon { background: var(--gold-soft); color: var(--forest-ink); }
.service-item.scroll-active .service-number { color: var(--gold-soft); }
.service-item.scroll-active .service-title { color: var(--cream); }
.service-item.scroll-active .service-desc { color: rgba(248,245,238,0.85); }
@media (max-width: 768px) {
  .footer-brand { border-bottom: 1px solid rgba(255,255,255,0.14); padding-bottom: 28px; margin-bottom: 12px; }
  .footer-col li a { white-space: nowrap; }
  .footer-col li { margin-bottom: 12px; }
  .rezept-inline-choices { padding-left: 24px !important; padding-right: 24px !important; }
  .logo .sub { display: flex; }
  .logo-gp { display: none; }
  .service-item { transition: background 0.45s ease, transform 0.45s ease, box-shadow 0.45s ease, border-color 0.45s ease !important; }
  .service-item .service-icon, .service-item .service-number, .service-item .service-title, .service-item .service-desc { transition: background 0.45s ease, color 0.45s ease !important; }
}

/* Block 17 · index.html Zeile 11263–11320 · <style> */
aside.mobile-menu-panel, html body .mobile-menu-panel {
  background-color: #18302A !important;
  background-image: linear-gradient(180deg, #1F3A30 0%, #14241B 100%) !important;
  opacity: 1 !important;
  -webkit-backdrop-filter: none !important; backdrop-filter: none !important;
  isolation: isolate !important;
  z-index: 2147483646 !important;
}
html body .mobile-menu-overlay { z-index: 2147483645 !important; }
html body .mobile-menu-panel .mobile-menu-link,
html body .mobile-menu-panel .mobile-menu-label { color: #F8F5EE !important; }
html body .mobile-menu-panel .mobile-menu-sub { color: rgba(248,245,238,0.72) !important; }
html body .mobile-menu-panel .mobile-menu-num,
html body .mobile-menu-panel .mobile-menu-arrow { color: #C9AD77 !important; }
html body .mobile-menu-panel .mobile-menu-close {
  width: 44px !important; height: 44px !important;
  border: 1px solid rgba(248,245,238,0.45) !important;
  background: rgba(248,245,238,0.07) !important;
  color: #F8F5EE !important; display: inline-flex !important;
}
/* WURZEL: das Menue-Nav ist ein <nav> und erbt die helle Leisten-Regel nav{background} -> transparent erzwingen */
html body .mobile-menu-panel nav,
html body nav.mobile-menu-nav,
html body .mobile-menu-panel .mobile-menu-nav,
html body .mobile-menu-panel .mobile-menu-head {
  background: transparent !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
/* WURZEL 2 (Layout): das <nav>-Menue erbt von nav{} auch position:fixed + z-index:100.
   Dadurch faellt die Liste aus dem Panel-Fluss, der Fuss (Rezept bestellen / 116 117) rutscht
   nach oben ueber die Punkte 01-04 und das fixe Nav ueberdeckt den Schliessen-Knopf.
   Zurueck in den Flex-Fluss: Kopf oben, Liste Mitte (scrollbar), Fuss unten. */
html body .mobile-menu-panel .mobile-menu-nav,
html body nav.mobile-menu-nav {
  position: static !important;
  z-index: auto !important;
  inset: auto !important;
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow-y: auto !important;
  padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 28px) !important;
}
/* Testmodus-Auszeichnung am Menuepunkt Termin */
html body .mobile-menu-panel .mobile-menu-tag {
  font-size: 0.72em !important;
  color: #C9AD77 !important;
  font-weight: 600 !important;
  margin-left: 7px !important;
  letter-spacing: 0.02em !important;
  white-space: nowrap !important;
}
/* Bei offenem Menue: durchscheinende obere Leiste + Notfall-Pille ausblenden */
body.mobile-menu-open .nav-wrapper { opacity: 0 !important; visibility: hidden !important; pointer-events: none !important; }
html body.mobile-menu-open .floating-emergency,
html body.mobile-menu-open a.floating-emergency { display: none !important; }

/* Block 18 · index.html Zeile 11650–11657 · <style> */
/* A11y-Fix (Audit): sichtbarer Fokusindikator statt outline:none */
.dgr-nav:focus-visible,.dgr-card:focus-visible,.dgr-pop-x:focus-visible,
.modal-form-input:focus-visible,.modal-form-select:focus-visible,.modal-form-textarea:focus-visible,
[role="radio"]:focus-visible,.dgr-search-input:focus-visible{
  outline:3px solid var(--gold,#A88948) !important; outline-offset:2px !important;
}

/* Block 19 · index.html Zeile 11733–11739 · <style> */
/* A11y-2 (Audit GELB): Skip-Link, Touchziele >=24px */
a.a11y-skip{position:absolute;left:-9999px;top:0;z-index:100000;background:#2A4A38;color:#fff;padding:10px 16px;text-decoration:none;border-radius:0 0 8px 0;font-weight:600}
a.a11y-skip:focus{left:0}
.day-cta{min-height:24px;box-sizing:border-box}
.location-tab{min-height:24px;box-sizing:border-box}

/* Block 20 · index.html Zeile 11762–11765 · <style> */
/* Notfall-Leiste stoppt am Seitenende: blendet aus, sobald der Footer sichtbar wird (Dirk 26.07.) */
.floating-emergency.is-at-footer { opacity: 0 !important; visibility: hidden !important; pointer-events: none !important; }

/* Block 21 · index.html Zeile 11780–11813 · <style> */
/* Leistungs-Karten: Tiefe im Ruhezustand + spuerbarer Hover (Dirk 26.07.).
   Vorher: kein Schatten (flach) und transition 2.4s -> Effekt praktisch unsichtbar. */
.services-grid .service-item {
  box-shadow: 0 2px 6px rgba(26,31,27,0.05), 0 20px 44px -26px rgba(26,31,27,0.28);
  /* 05.08.2026 (Dirk): 420 bis 480ms schlugen zu hart um. Tempo jetzt an der Hausnorm -
     das Menue laeuft mit 0.6s var(--ease), die Standort-Knoepfe mit 0.8s var(--ease).
     Die urspruenglichen 2.4s bleiben bewusst Vergangenheit, sie waren am 26.07. als
     praktisch unsichtbar verworfen worden (siehe Kommentar oben). */
  /* 05.08.2026 (Dirk, zweiter Durchgang): 0.8s war immer noch zu schnell. Jetzt 2s, der
     Wert von vor dem 26.07. Damals galt er als unsichtbar - inzwischen hat die Karte aber
     Schatten und Bewegung dazubekommen, damit traegt das langsame Tempo. */
  transition: background 2s var(--ease),
              transform 2s var(--ease),
              box-shadow 2s var(--ease),
              border-color 2s var(--ease) !important;
}
.services-grid .service-item:hover {
  transform: translateY(-8px) !important;
  box-shadow: 0 36px 80px -20px rgba(42,74,56,0.38) !important;
}
.services-grid .service-item .service-icon,
.services-grid .service-item .service-number,
.services-grid .service-item .service-title,
.services-grid .service-item .service-desc {
  transition: background 2s var(--ease), color 2s var(--ease) !important;
}
@media (prefers-reduced-motion: reduce) {
  .services-grid .service-item, .services-grid .service-item:hover { transition: none !important; transform: none !important; }
  /* 05.08.2026: Zahl, Titel und Text fehlten hier und liefen trotz abgestellter Bewegung weiter. */
  .services-grid .service-item .service-icon, .services-grid .service-item .service-number,
  .services-grid .service-item .service-title, .services-grid .service-item .service-desc { transition: none !important; }
}

/* Block 22 · index.html Zeile 11814–11844 · <style> */
/* Apotheken-Karte im OVERLAY (Dirk 01.08., korrigiert):
   Logo in ORIGINALGROESSE (84px), nur weiter nach OBEN.
   Platz dafuer machen NUR die Textzeilen - die Button-Reihe laeuft ueber die volle
   Breite, damit Vertretung und Apotheke exakt gleich breite Buttons haben.
   Die Notfall-Sektion der Seite ist NICHT betroffen. */
.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;
}
/* 26.08.2026 (Dirk): Der Titel haelt keinen Platz mehr fuer das Logo frei.
   Er steht 16 px hoeher als das Logo beginnt und lief deshalb voellig
   grundlos auf zwei Zeilen, was die ganze Karte gegen die Vertretung
   verschob. Name, Adresse und Links behalten ihren Abstand, die brauchen ihn. */
.pm-ovl-apotheke .pm-ovl-card-title { padding-right: 0 !important; white-space: nowrap; }
.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-name,
  .pm-ovl-apotheke .pm-ovl-card-line,
  .pm-ovl-apotheke .pm-ovl-card-link { padding-right: 76px !important; }
}

/* Block 23 · index.html Zeile 11845–11877 · <style> */
/* Route-Icons im Overlay besser sichtbar (Dirk 01.08.):
   Google +2px (13->15), Apple +5px (13->18) -> optisch gleich gross.
   Reihenfolge ist fix: 1. Button Google, 2. Button Apple. */
.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; }

/* Ruhe auf der Seite (03.08.2026): Nichts soll sich von allein bewegen.
   Die Bewegungsbilder tragen dieselben Namen wie oben, nur ohne Weg. Dadurch
   bleiben Einblendungen und alle uebrigen Effekte unberuehrt.
   Pulsierende Statuspunkte und Glanzeffekte bleiben bewusst erhalten:
   sie zeigen an, ob die Praxis geoeffnet ist, und verschieben nichts. */
@keyframes drift1{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(0,0) scale(1);}}
@keyframes drift2{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(0,0) scale(1);}}
@keyframes drift3{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(0,0) scale(1);}}
@keyframes floatB1{0%,100%{transform:translateY(0) rotate(-1deg);}50%{transform:translateY(0) rotate(-1deg);}}
@keyframes floatB2{0%,100%{transform:translateY(0) rotate(1deg);}50%{transform:translateY(0) rotate(1deg);}}
@keyframes notfallPulse{0%,100%{transform:scale(1) translate(0,0);}50%{transform:scale(1) translate(0,0);}}

/* 05.08.2026 (Dirk): Die Knoepfe der beiden Karten standen nicht auf einer Linie.
   Ursache war eine umbrechende Adresse ("Strasse des Aufbaues 3A"), weil das Logo 94px
   Platz beansprucht. Zwei Massnahmen: Die Knopfreihe sitzt jetzt immer am unteren
   Kartenrand - damit stehen die Knoepfe auf einer Linie, egal wie lang der Text ist.
   Und das Logo gibt bei knappem Platz nach, statt den Text zu zerreissen. */
.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; }
/* Adressen brechen nicht mehr mitten im Wort. Eine Hausnummer gehoert an ihre Strasse. */
.pm-ovl-vertretung, .pm-ovl-apotheke { word-break: normal; overflow-wrap: break-word; }
/* Logo skaliert mit der Karte statt fester 84px, Text bekommt entsprechend Luft zurueck. */
.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); }
