/* ---------- Schriften: Jost für Überschriften, Atkinson Hyperlegible Next zum Lesen (selbst gehostet) ---------- */
@font-face { font-family: 'Atkinson Hyperlegible Next'; font-style: normal; font-weight: 300 800; font-display: swap;
  src: url(fonts/ahn-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Atkinson Hyperlegible Next'; font-style: normal; font-weight: 300 800; font-display: swap;
  src: url(fonts/ahn-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* Ersatzschriften mit den Maßen der Webfonts (size-adjust/ascent/descent): Solange Atkinson und Jost laden, bricht der Text schon genauso um wie danach.
   Der Tausch lässt dann nichts mehr springen (Layout-Verschiebung). Werte gemessen gegen Arial (auf Android/Linux greift Liberation Sans). */
@font-face { font-family: 'Atkinson Fallback'; font-weight: 300 500; src: local('Arial'), local('ArialMT'), local('Liberation Sans'); size-adjust: 98.7%; ascent-override: 99.7%; descent-override: 32%; line-gap-override: 0%; }
@font-face { font-family: 'Atkinson Fallback'; font-weight: 600 800; src: local('Arial Bold'), local('Arial-BoldMT'), local('Liberation Sans Bold'); size-adjust: 96.6%; ascent-override: 101.8%; descent-override: 32.7%; line-gap-override: 0%; }
@font-face { font-family: 'Jost Fallback'; font-weight: 300 600; src: local('Arial'), local('ArialMT'), local('Liberation Sans'); size-adjust: 100%; ascent-override: 106%; descent-override: 37%; line-gap-override: 0%; }

/* Lesetext (mit "body" davor, damit die Regel sicher vor den Theme-Regeln gewinnt) */
html, body,
body .uk-text-lead, body .uk-text-meta, body .uk-text-small, body .uk-text-large, body .uk-card, body .uk-list, body .uk-panel,
body .uk-button, body .uk-accordion-content, body .uk-input, body .uk-textarea, body .uk-select, body .tm-footer, body footer, body mark,
body .el-content, body .el-meta, body .el-link {
  font-family: 'Atkinson Hyperlegible Next', 'Atkinson Fallback', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}
/* Lesbarer Kartentext auf hellen Abschnitten (dunkle Abschnitte behalten ihre eigenen Farben) */
.uk-section-default .uk-card .el-content, .uk-section-muted .uk-card .el-content { color: #4D3A30; }
body #tm-main .uk-card .el-content { font-size: 1.05rem; line-height: 1.6; font-weight: 400; }
body #tm-main .uk-card .el-meta { font-size: .95rem; font-weight: 600; letter-spacing: .01em; }
/* Überschriften bleiben Jost */
#tm-main :is(h1, h2, h3, h4, h5, h6, .uk-h1, .uk-h2, .uk-h3, .uk-h4, .uk-card-title, .uk-heading-medium, .uk-accordion-title),
footer :is(h1, h2, h3, h4, h5, h6) {
  font-family: 'Jost', 'Jost Fallback', 'Work Sans', system-ui, sans-serif;
}

/* Größen und Gewichte: Fließtext 18 px, nichts unter 15 px */
html { font-size: 18px; }
body { line-height: 1.65; font-weight: 400; }
#tm-main :is(h1, h2, .uk-heading-medium, .uk-h1) { font-weight: 400; }
#tm-main h2.uk-h1 { font-size: clamp(2.2rem, 3.9vw, 3.4rem); line-height: 1.08; letter-spacing: -.012em; }
#tm-main .uk-width-large\@m { width: 600px; }                       /* Zeilenlänge ~60 Zeichen statt 40 */
#tm-main .uk-text-lead { font-size: clamp(1.25rem, 1.7vw, 1.45rem); line-height: 1.55; font-weight: 400; color: #2A1710; }
.uk-text-meta { font-size: .92rem; line-height: 1.5; font-weight: 500; letter-spacing: .005em; }
#tm-main .uk-card .uk-panel,
#tm-main .uk-card .uk-text-meta { font-size: 1rem; line-height: 1.6; }
#tm-main .uk-card .uk-card-title { font-size: clamp(1.45rem, 2vw, 1.75rem); line-height: 1.18; font-weight: 500; letter-spacing: -.003em; }
#tm-main .uk-card .uk-panel { font-weight: 400; }
.uk-list > * > :last-child, .uk-list li { font-size: 1.05rem; line-height: 1.5; }
.uk-list-large > li { padding-block: .35rem; }
#tm-main .uk-accordion-title { font-size: clamp(1.2rem, 1.6vw, 1.4rem); font-weight: 500; line-height: 1.3; padding-block: .6rem; }
#tm-main .uk-accordion-content { font-size: 1.05rem; line-height: 1.65; max-width: 62ch; }
mark { font-size: inherit; }

/* Buttons: größer, ruhiger gesetzt */
.uk-button { font-size: 1rem; font-weight: 600; letter-spacing: .015em; line-height: 50px; padding: 0 30px; }
.uk-button-small { line-height: 40px; }
#tm-main .uk-card .uk-button { font-size: .95rem; line-height: 46px; padding: 0 26px; }

/* Fußzeile */
footer { font-size: 1rem; }
footer :is(h3, .uk-h4) { font-size: 1.35rem; font-weight: 500; }
footer .uk-text-meta { font-size: .95rem; }

/* Auswahl-Karten: die Situation spricht zuerst */
.dm-choose .uk-card .el-meta { font-size: 1.02rem; font-weight: 600; color: #93431D; margin-bottom: .45rem; letter-spacing: .01em; }
.dm-choose .uk-card :is(.uk-card-title, .el-title) { font-size: clamp(1.55rem, 2.1vw, 1.9rem); margin-top: 0; }

/* Dombrowski – additive Erweiterung. Ändert kein bestehendes Stylesheet.
   Nutzt ausschließlich die vorhandene Palette und das vorhandene Glas-Rezept. */

/* ---------- Hero ---------- */
.dm-hero { position: relative; overflow: hidden; }
.dm-hero { padding-block: clamp(0px, 3vw, 40px); }
.dm-hero h1 { max-width: 16ch; text-wrap: balance; overflow-wrap: break-word; font-size: clamp(2.5rem, 6vw, 5.8rem); line-height: 1.1; padding-bottom: .22em; margin-bottom: -.1em; letter-spacing: -.022em; margin-bottom: 0; }
.dm-hero--s h1 { font-size: clamp(2.4rem, 4.8vw, 4.5rem); }
.dm-hero .uk-grid { align-items: center; }

@keyframes dm-rise { from { opacity: 0; transform: translate3d(0, 22px, 0); } }
/* Überschrift gleitet nur ein, ohne einzublenden: Text mit Deckkraft 0 zählt für den LCP nicht, die Seite wirkte sonst 0,7 s später fertig. */
@keyframes dm-rise-t { from { transform: translate3d(0, 22px, 0); } }
.dm-hero h1                { animation: dm-rise-t 1s cubic-bezier(.2,.7,.2,1) backwards; }
.dm-hero .uk-text-lead     { animation: dm-rise 1s cubic-bezier(.2,.7,.2,1) .18s backwards; }
.dm-hero .uk-button-group,
.dm-hero .uk-grid-small    { animation: dm-rise 1s cubic-bezier(.2,.7,.2,1) .34s backwards; }
.dm-hero .uk-text-meta     { animation: dm-rise 1s cubic-bezier(.2,.7,.2,1) .5s backwards; }

/* ---------- Wirbelsäule aus Glas ---------- */
.dm-spine { --dm-h: clamp(400px, 62vh, 640px); position: relative; width: 100%; height: var(--dm-h); }
.dm-spine--s { --dm-h: clamp(300px, 46vh, 420px); }
.dm-spine .dm-disc {
  position: absolute; left: 50%; top: 50%; width: min(86%, 470px, calc(var(--dm-h) * .84)); aspect-ratio: 1; border-radius: 50%;
  transform: translate(-50%, -50%);
  background: linear-gradient(320deg, #A44E22, #8A3A12);
  box-shadow: 0 30px 60px rgba(56,26,12,.22), inset 0 0 0 1px rgba(255,240,218,.18), inset 0 2px 0 rgba(255,240,218,.28);
}
.dm-spine .dm-ring {
  position: absolute; left: 50%; top: 50%; width: min(104%, 560px, calc(var(--dm-h) * 1.0)); aspect-ratio: 1; border-radius: 50%;
  transform: translate(-50%, -50%); box-shadow: inset 0 0 0 1px rgba(138,58,18,.28);
}
.dm-spine canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; touch-action: pan-y; cursor: grab; }
.dm-spine.is-drag canvas { cursor: grabbing; }
.dm-spine.is-3d .dm-disc { opacity: 0; }

/* ---------- Karten: Lichtkegel folgt dem Zeiger ---------- */
.uk-card-default::after {
  content: ''; position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity .35s ease; border-radius: inherit;
  background: radial-gradient(640px circle at var(--mx, 50%) var(--my, 50%), rgba(181,89,43,.10), rgba(181,89,43,.045) 38%, transparent 72%);
}
.mb-forest .uk-card-default::after, .mb-oxblood .uk-card-default::after {
  background: radial-gradient(640px circle at var(--mx, 50%) var(--my, 50%), rgba(255,240,218,.11), rgba(255,240,218,.05) 38%, transparent 72%);
}
.uk-card-default:hover::after { opacity: 1; }

/* ---------- Schritte: dünne Linie führt durch die Karten ---------- */
@media (min-width: 960px) {
  .dm-steps .uk-card { position: relative; }
  .dm-steps > div:not(:last-child) .uk-card::before {
    content: ''; position: absolute; right: -40px; top: 50%; width: 40px; height: 1px; z-index: 2;
    background: linear-gradient(90deg, rgba(164,78,34,.7), rgba(164,78,34,0));
  }
}

/* ---------- Fester Termin-Button (nur Mobil, dort ist die Navigation eingeklappt) ---------- */
.dm-cta { position: fixed; left: 50%; bottom: max(14px, env(safe-area-inset-bottom)); z-index: 980; display: none;
  transform: translate(-50%, 160%); transition: transform .5s cubic-bezier(.2,.8,.2,1); }
.dm-cta.is-on { transform: translate(-50%, 0); }
.dm-cta .uk-button { padding-inline: 28px; box-shadow: 0 14px 30px rgba(56,26,12,.28), inset 0 0 0 1px rgba(255,240,218,.18), inset 0 1px 0 rgba(255,240,218,.3); }
@media (max-width: 959px) { .dm-cta { display: block; } }

/* ---------- Abschluss: der Haupt-Button atmet ---------- */
@keyframes dm-breathe { 0%, 100% { box-shadow: 0 6px 16px rgba(0,0,0,.25), 0 0 0 0 rgba(246,236,217,.34); } 50% { box-shadow: 0 6px 16px rgba(0,0,0,.25), 0 0 0 14px rgba(246,236,217,0); } }
.mb-oxblood .uk-button-primary { animation: dm-breathe 3.4s ease-in-out infinite; }

/* ---------- Mobil ---------- */
@media (max-width: 959px) {
  .dm-spine { --dm-h: 380px; }
  .dm-spine--s { --dm-h: 290px; }
}

@media (prefers-reduced-motion: reduce) {
  .dm-hero h1, .dm-hero .uk-text-lead, .dm-hero .uk-button-group, .dm-hero .uk-grid-small, .dm-hero .uk-text-meta { animation: none; }
  .mb-oxblood .uk-button-primary { animation: none; }
  .dm-cta { transition: none; }
}

/* FAQ: Frage und Plus-Zeichen bleiben nah beieinander */
#tm-main .uk-accordion { max-width: 880px; }

/* Verlaufstext: der Hintergrund des Inline-Spans endet sonst knapp unter der Grundlinie und schneidet Unterlängen (g, p) ab */
#tm-main h1 .uk-text-background { padding-block: .08em .24em; -webkit-box-decoration-break: clone; box-decoration-break: clone; }

/* =====================================================================
   Typo-System (einheitlich, ohne neue Farben)
   Eine Stufe pro Rolle:  Eyebrow 15 px · H2 3.4 rem · Intro 1.25 rem ·
   Kartentitel 1.6 rem · Text 1.05 rem · Button 1 rem
   ===================================================================== */
:root { --dm-ink: #2A1710; --dm-accent: #93431D; --dm-cream: rgba(255,240,218,.78); }

/* Kartenlabel: Satzschrift, kein Versalien-Etikett */
#tm-main .uk-card .el-meta { font-family: 'Atkinson Hyperlegible Next', 'Atkinson Fallback', system-ui, sans-serif; font-size: 1rem; font-weight: 700; line-height: 1.3; color: var(--dm-accent); }
#tm-main .uk-section-secondary .uk-card .el-meta { color: var(--dm-cream); }

/* Überschriften: eine Gewichtsstufe mehr, damit sie tragen */
#tm-main :is(h1, h2, .uk-heading-medium, .uk-h1) { font-weight: 500; }
#tm-main h2.uk-h1 { font-size: clamp(2.5rem, 5vw, 4.4rem); line-height: 1.02; letter-spacing: -.028em; margin: 0 0 .5em; text-wrap: balance; }
.dm-hero h1 { letter-spacing: -.03em; }

/* Intro unter der H2: immer gleich */
#tm-main .uk-section :is(h2.uk-h1) + .uk-panel,
#tm-main .uk-section :is(h2.uk-h1) + p { font-size: 1.25rem; line-height: 1.55; max-width: 60ch; }
#tm-main .uk-section > .uk-container .uk-text-meta { font-size: 1rem; }

/* Kartentitel: überall dieselbe Größe, Label immer darüber */
#tm-main .uk-card :is(.uk-card-title, .el-title, h3),
.dm-choose .uk-card :is(.uk-card-title, .el-title) { font-size: clamp(1.45rem, 1.9vw, 1.65rem); line-height: 1.2; font-weight: 500; margin: .35rem 0 .7rem; }
#tm-main .uk-card .el-meta, .dm-choose .uk-card .el-meta { margin: 0 0 .4rem; }
#tm-main .uk-card .el-content { font-size: 1.05rem; line-height: 1.6; }

/* Schritte: große Ziffer statt „Schritt 1“ */
#tm-main .dm-steps .uk-card .el-meta {
  font-family: 'Jost', 'Jost Fallback', sans-serif; font-size: 4rem; font-weight: 500; line-height: 1; letter-spacing: -.02em; text-transform: none; margin-bottom: .6rem;
}
#tm-main .dm-steps .uk-card .el-meta::before { content: none; }

/* Listen: dunkle Schrift, nur das Häkchen trägt die Akzentfarbe; Spaltenköpfe mit Linie */
#tm-main .uk-list li, #tm-main .uk-list > * > :last-child { font-size: 1.1rem; line-height: 1.5; }
#tm-main .uk-section-default .uk-list :is(li, a, div, .el-content, .el-link, .uk-link):not(.uk-width-auto), #tm-main .uk-section-muted .uk-list :is(li, a, div, .el-content, .el-link, .uk-link):not(.uk-width-auto) { color: var(--dm-ink); }
#tm-main .uk-list-divider > li:nth-child(n+2), #tm-main .uk-list-large > li { padding-block: .45rem; }
#tm-main h3:not([class]) { font-size: 1.6rem; font-weight: 500; line-height: 1.2; padding-bottom: .6rem; margin-bottom: .4rem; border-bottom: 1px solid rgba(147,67,29,.28); }

/* Buttons: eine Größe überall (Karten wie Abschnitte) */
.uk-button, #tm-main .uk-card .uk-button { font-size: 1rem; font-weight: 600; line-height: 50px; padding: 0 30px; letter-spacing: .015em; }

/* FAQ: Frage kräftiger, Linie auch oben */
#tm-main .uk-accordion > li:first-child { border-top: 1px solid rgba(147,67,29,.2); padding-top: .2rem; }
#tm-main .uk-accordion-title { font-size: clamp(1.2rem, 1.6vw, 1.4rem); font-weight: 500; }

@media (max-width: 959px) {
  #tm-main .dm-steps .uk-card .el-meta { font-size: 3rem; }
}

/* =====================================================================
   STARTSEITE – Komposition
   Hero = Goniometer (Winkelmesser der Physiotherapie), danach wechselnde Dichte
   ===================================================================== */
:root { --dm-terra: linear-gradient(320deg, #A44E22, #8A3A12); --dm-glass-sh: 0 8px 24px rgba(56,26,12,.1), inset 0 0 0 1px rgba(255,240,218,.14), inset 0 1px 0 rgba(255,240,218,.22); --dm-ease: cubic-bezier(.2,.8,.2,1); }

/* ---- Hero ---- */
.dm-hero.uk-section { padding-top: 128px; padding-bottom: 80px; }
.dm-stage { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: clamp(28px, 5vw, 84px); align-items: start; }
.dm-stage h1 { grid-column: 1 / -1; margin: 0; font-family: 'Jost', 'Jost Fallback', sans-serif; font-weight: 500; font-size: clamp(2.7rem, 6.4vw, 5.7rem); line-height: 1.03; letter-spacing: -.035em; text-wrap: balance;
  background: linear-gradient(100deg, #3A1010 8%, #8A3A12 78%); -webkit-background-clip: text; background-clip: text; color: transparent; padding-bottom: .1em; }
.dm-stage__copy { grid-column: 1; grid-row: 2; padding-top: 2.2rem; }
.dm-lead { font-size: clamp(1.25rem, 1.7vw, 1.45rem); line-height: 1.55; color: #2A1710; max-width: 31em; margin: 0 0 2rem; }
.dm-stage__cta { display: flex; flex-wrap: wrap; gap: .8rem; margin: 0 0 1.6rem; }
.dm-note { font-size: 1rem; color: #4D3A30; margin: 0; }


.dm-paths { list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(42,23,16,.18); }
.dm-path { border-bottom: 1px solid rgba(42,23,16,.18); }
.dm-path__q { all: unset; box-sizing: border-box; display: flex; align-items: center; gap: .9rem; width: 100%; padding: .78rem 0; cursor: pointer; font: 500 1.3rem/1.2 'Jost', 'Jost Fallback', sans-serif; color: #2A1710; transition: color .25s, padding .35s var(--dm-ease); }
.dm-path__q i { flex: none; width: .8rem; height: .8rem; border-radius: 50%; border: 2px solid rgba(42,23,16,.55); transition: all .3s; }
.dm-path__q:hover { color: #93431D; }
.dm-path__q:focus-visible { outline: 3px solid #A44E22; outline-offset: 3px; border-radius: 6px; }
.dm-path.is-on .dm-path__q { color: #93431D; font-weight: 600; }
.dm-path.is-on .dm-path__q i { background: #A44E22; border-color: #A44E22; transform: scale(1.25); }
.dm-path__a { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .5s var(--dm-ease); }
.dm-path.is-on .dm-path__a { grid-template-rows: 1fr; }
.dm-path__a > div { overflow: hidden; }
.dm-path__a p { margin: 0 0 1rem; padding-left: 1.7rem; font-size: 1.05rem; line-height: 1.6; color: #4D3A30; max-width: 34em; }
.dm-path__a p strong { color: #2A1710; font-weight: 600; }
.dm-path__a .uk-button { margin: 0 0 1.1rem 1.7rem; }

@media (max-width: 959px) {
  .dm-hero.uk-section { padding-top: 100px; }
  .dm-stage { grid-template-columns: 1fr; }
  .dm-stage__copy, .dm-ask { grid-column: 1; grid-row: auto; }
  .dm-ask { margin-top: 2.4rem; }
}

/* ---- Ablauf: eine Treppe, die Stufen steigen (die dritte ist das Ziel) ---- */
.dm-stairs { list-style: none; margin: 3rem 0 2.2rem; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; align-items: end; }
.dm-stair { display: flex; flex-direction: column; border-radius: 22px; padding: 1.8rem 2rem 2.1rem; background: rgba(255,240,218,.6); box-shadow: var(--dm-glass-sh); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.dm-stair:nth-child(1) { min-height: 270px; } .dm-stair:nth-child(2) { min-height: 360px; } .dm-stair:nth-child(3) { min-height: 450px; background: var(--dm-terra); color: #FFF0DA; box-shadow: 0 18px 40px rgba(138,58,18,.28), inset 0 0 0 1px rgba(255,240,218,.18), inset 0 1px 0 rgba(255,240,218,.3); }
.dm-stair__n { font: 300 clamp(5rem, 8vw, 7.5rem)/.85 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.05em; color: #93431D; margin-bottom: auto; padding-bottom: 1.5rem; }
.dm-stair:nth-child(3) .dm-stair__n { color: rgba(255,240,218,.9); }
.dm-stair h3 { font: 500 1.65rem/1.15 'Jost', 'Jost Fallback', sans-serif; margin: 0 0 .55rem; color: inherit; }
.dm-stair p { margin: 0; font-size: 1.08rem; line-height: 1.55; color: #4D3A30; }
.dm-stair:nth-child(3) p { color: rgba(255,240,218,.92); }
@media (max-width: 959px) { .dm-stairs { grid-template-columns: 1fr; } .dm-stair:nth-child(n) { min-height: 0; } .dm-stair__n { margin-bottom: 1rem; font-size: 4rem; } }

/* ---- Entscheidung: zwei Glasflächen, die aufgehen ---- */
.dm-split { display: flex; gap: 1.25rem; margin-top: 3rem; min-height: 470px; }
.dm-pane { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; padding: 2.4rem; border-radius: 22px; color: #F6ECD9; text-decoration: none;
  background: rgba(255,240,218,.07); box-shadow: 0 8px 24px rgba(56,26,12,.22), inset 0 0 0 1px rgba(255,240,218,.14), inset 0 1px 0 rgba(255,240,218,.22); -webkit-backdrop-filter: blur(16px) saturate(1.4); backdrop-filter: blur(16px) saturate(1.4);
  transition: flex-grow .7s var(--dm-ease), background .4s; }
.dm-split:hover .dm-pane { flex-grow: .8; } .dm-split .dm-pane:hover, .dm-split .dm-pane:focus-visible { flex-grow: 1.4; background-color: rgba(255,240,218,.13); color: #FFF0DA; }
.dm-pane:focus-visible { outline: 3px solid #FFF0DA; outline-offset: 3px; }
.dm-pane__tag { font-size: 1rem; font-weight: 600; padding: .3rem 1rem; border-radius: 500px; border: 1px solid rgba(255,240,218,.45); margin-bottom: auto; }
.dm-pane__title { display: block; font: 300 clamp(2.6rem, 5vw, 4.6rem)/.98 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.03em; margin: 2rem 0 1rem; text-wrap: balance; }
.dm-pane__text { display: block; max-width: 28em; font-size: 1.1rem; line-height: 1.55; color: rgba(246,236,217,.85); }
.dm-pane .uk-button { margin-top: 1.6rem; }
@media (max-width: 959px) { .dm-split { flex-direction: column; min-height: 0; } .dm-split:hover .dm-pane, .dm-split .dm-pane:hover { flex-grow: 1; } .dm-pane__title { margin-top: 1.4rem; } }

/* ---- Register: Leistungen als Inhaltsverzeichnis mit Filter ---- */
.dm-index { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.dm-index__side { position: sticky; top: 130px; }
.dm-index__side h2 { margin-bottom: 1.2rem; }
.dm-filter { display: flex; flex-wrap: wrap; gap: .6rem; }
.dm-filter button { all: unset; box-sizing: border-box; cursor: pointer; padding: .55rem 1.25rem; border-radius: 500px; font: 600 1rem/1.3 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; color: #2A1710; background: rgba(255,240,218,.55); box-shadow: var(--dm-glass-sh); transition: background .3s, color .3s; }
.dm-filter button:hover { background: rgba(255,240,218,.9); }
.dm-filter button[aria-pressed="true"] { background: var(--dm-terra); color: #F6ECD9; box-shadow: 0 6px 16px rgba(164,78,34,.3), inset 0 1px 0 rgba(255,240,218,.3); }
.dm-filter button:focus-visible { outline: 3px solid #A44E22; outline-offset: 3px; }
.dm-index__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(42,23,16,.2); }
.dm-index__list li { border-bottom: 1px solid rgba(42,23,16,.2); }
.dm-index__list li.is-off { display: none; }
.dm-index__list li { animation: dm-in .5s var(--dm-ease) backwards; }
@keyframes dm-in { from { opacity: 0; transform: translateY(8px); } }
.dm-index__list a { display: flex; align-items: baseline; justify-content: space-between; gap: 1.5rem; padding: 1.05rem 0; color: #2A1710; text-decoration: none; font: 500 clamp(1.45rem, 2.4vw, 2.05rem)/1.15 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.012em; transition: padding .4s var(--dm-ease), color .25s; }
.dm-index__list a:hover, .dm-index__list a:focus-visible { padding-left: 1.2rem; color: #93431D; }
.dm-index__list a:focus-visible { outline: 3px solid #A44E22; outline-offset: -3px; }
.dm-index__tag { flex: none; font: 600 .95rem/1 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; letter-spacing: 0; color: #4D3A30; }
li[data-k="s"] .dm-index__tag { padding: .4rem .8rem; border-radius: 500px; background: rgba(164,78,34,.14); color: #6F2E0E; }
@media (max-width: 959px) { .dm-index { grid-template-columns: 1fr; } .dm-index__side { position: static; } .dm-index__tag { display: none; } }

/* ---- Standorte: Gewicht folgt der Bedeutung ---- */
.dm-places { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 1.25rem; align-items: start; margin-top: 3rem; }
.dm-place { display: flex; flex-direction: column; align-items: flex-start; padding: 2.4rem; border-radius: 22px; text-decoration: none; color: #2A1710; background: rgba(255,240,218,.6); box-shadow: var(--dm-glass-sh); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); transition: transform .5s var(--dm-ease); }
.dm-place:hover { transform: translateY(-6px); }
.dm-place strong { display: block; font: 500 1.95rem/1.05 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.02em; margin: 1.1rem 0 .7rem; }
.dm-place__tag { font-size: 1rem; font-weight: 700; color: #93431D; }
.dm-place__text { display: block; font-size: 1.08rem; line-height: 1.55; color: #4D3A30; max-width: 30em; }
.dm-place .uk-button { margin-top: 1.5rem; }
.dm-place--new .uk-button { background: rgba(255,240,218,.92); color: #2A1710; }
.dm-place--new { min-height: 460px; background: var(--dm-terra); color: #FFF0DA; box-shadow: 0 18px 40px rgba(138,58,18,.28), inset 0 0 0 1px rgba(255,240,218,.18), inset 0 1px 0 rgba(255,240,218,.3); }
.dm-place--new .dm-place__tag { color: rgba(255,240,218,.95); margin-bottom: auto; padding: .3rem 1rem; border: 1px solid rgba(255,240,218,.5); border-radius: 500px; }
.dm-place--new strong { font-size: clamp(2.8rem, 5.6vw, 5rem); font-weight: 300; line-height: .98; letter-spacing: -.035em; }
.dm-place--new .dm-place__text { color: rgba(255,240,218,.92); }
.dm-place--old { margin-top: 6rem; }
@media (max-width: 959px) { .dm-places { grid-template-columns: 1fr; } .dm-place--old { margin-top: 0; } .dm-place--new { min-height: 340px; } }

/* ---- FAQ: Überschrift läuft mit, Antworten rechts ---- */
@media (min-width: 960px) { #tm-main .dm-sticky { position: sticky; top: 130px; align-self: flex-start; } }
#tm-main .uk-accordion { max-width: none; }

/* ---- Abschluss: Typo als Bild ---- */
#tm-main .mb-oxblood h2.uk-h1 { font-size: clamp(3.2rem, 9vw, 8.2rem); font-weight: 300; line-height: .95; letter-spacing: -.045em; max-width: 9em; margin-bottom: .35em; }

@media (prefers-reduced-motion: reduce) { .dm-index__list li { animation: none; } .dm-pane, .dm-place, .dm-path__a { transition: none; } }

/* =====================================================================
   PHYSIOTHERAPIE – Ticket, Beschwerde-Wähler, Raumzahl
   ===================================================================== */
.dm-stage--ticket { grid-template-rows: auto 1fr; }
.dm-stage--ticket h1 { grid-column: 1; max-width: 8.5em; }
.dm-stage--ticket .dm-stage__copy { grid-column: 1; grid-row: 2; }
.dm-ticketwrap { grid-column: 2; grid-row: 1 / 3; align-self: start; padding-top: .6rem; }

/* Ticket: Perforation mit Aussparungen links und rechts */
.dm-ticket { --cut: 52%; position: relative; filter: drop-shadow(0 18px 30px rgba(56,26,12,.16)); transition: transform .6s var(--dm-ease); }
.dm-ticket:hover { transform: translateY(-4px); }
.dm-ticket__top, .dm-ticket__bottom { background: rgba(255,240,218,.94); padding: 2.2rem 2.4rem; }
.dm-ticket__top { border-radius: 22px 22px 0 0; padding-bottom: 2rem; }
.dm-ticket__bottom { border-radius: 0 0 22px 22px; padding-top: 2rem; position: relative; }
.dm-ticket__bottom::before { content: ''; position: absolute; left: 1.6rem; right: 1.6rem; top: 0; border-top: 2px dashed rgba(147,67,29,.45); }
.dm-ticket__top::before, .dm-ticket__top::after { content: ''; position: absolute; bottom: -15px; width: 30px; height: 30px; border-radius: 50%; background: #F3EBDF; z-index: 1; }
.dm-ticket__top::before { left: -15px; } .dm-ticket__top::after { right: -15px; }
.dm-ticket__top { position: relative; }
.dm-ticket h2 { font: 500 clamp(1.9rem, 2.8vw, 2.5rem)/1.05 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.02em; margin: 0 0 1.4rem; color: #2A1710; }
.dm-ticket__k { font: 600 1rem/1.3 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; color: #93431D; margin: 0 0 .35rem; }
.dm-ticket__big { font: 300 clamp(2.1rem, 3.5vw, 3.1rem)/1.02 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.03em; color: #2A1710; margin: 0; }
.dm-ticket ul { list-style: none; margin: .4rem 0 1.5rem; padding: 0; }
.dm-ticket li { position: relative; padding: .4rem 0 .4rem 1.7rem; font-size: 1.08rem; line-height: 1.5; color: #4D3A30; }
.dm-ticket li::before { content: ''; position: absolute; left: 0; top: .95rem; width: .75rem; height: .45rem; border-left: 2px solid #A44E22; border-bottom: 2px solid #A44E22; transform: rotate(-45deg); }
.dm-ticketwrap .dm-note { margin-top: 1.4rem; max-width: 28em; }

@media (max-width: 959px) { .dm-stage--ticket h1, .dm-stage--ticket .dm-stage__copy, .dm-ticketwrap { grid-column: 1; grid-row: auto; } .dm-ticketwrap { margin-top: 2.2rem; } .dm-ticket { transform: none; } }

/* Beschwerde-Wähler: links wählen, rechts steht die Antwort in groß */
.dm-picks { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(1.5rem, 4vw, 4rem); margin-top: 3rem; align-items: stretch; }
.dm-picks__tabs { display: flex; flex-direction: column; border-top: 1px solid rgba(42,23,16,.2); }
.dm-pickbtn { all: unset; box-sizing: border-box; cursor: pointer; display: block; width: 100%; padding: 1.05rem 0; border-bottom: 1px solid rgba(42,23,16,.2); font: 500 clamp(1.4rem, 2.1vw, 1.85rem)/1.15 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.012em; color: #2A1710; transition: padding .4s var(--dm-ease), color .25s; }
.dm-pickbtn:hover { color: #93431D; }
.dm-pickbtn[aria-selected="true"] { padding-left: 1.2rem; color: #93431D; font-weight: 600; box-shadow: inset 4px 0 0 #A44E22; }
.dm-pickbtn:focus-visible { outline: 3px solid #A44E22; outline-offset: -3px; }
.dm-picks__panels { display: grid; position: relative; padding: clamp(1.8rem, 3.5vw, 3.2rem); border-radius: 22px; background: rgba(255,240,218,.6); box-shadow: var(--dm-glass-sh); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); min-height: 360px; }
.dm-pick { grid-area: 1 / 1; display: flex; flex-direction: column; justify-content: flex-end; opacity: 0; visibility: hidden; transform: translateY(14px); transition: opacity .35s ease, transform .55s var(--dm-ease), visibility 0s .35s; }
.dm-pick.is-on { opacity: 1; visibility: visible; transform: none; transition: opacity .45s ease .12s, transform .6s var(--dm-ease) .12s, visibility 0s; }
.dm-pick__lead { font: 600 1rem/1.3 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; color: #93431D; margin-bottom: auto; }
.dm-pick__name { font: 300 clamp(2.4rem, 4.6vw, 4.2rem)/1 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.035em; color: #2A1710; margin: 2rem 0 1rem; text-wrap: balance; }
.dm-pick p { margin: 0; font-size: 1.25rem; line-height: 1.55; color: #4D3A30; max-width: 30em; }
@media (max-width: 959px) { .dm-picks { grid-template-columns: 1fr; } .dm-picks__panels { min-height: 300px; } }

/* Trainingsraum: die Fläche wird zur Zahl */
.dm-room { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(2rem, 6vw, 6rem); align-items: center; }
.dm-room__num { font: 300 clamp(10rem, 25vw, 22rem)/.8 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.07em; color: rgba(255,240,218,.94); position: relative; padding-top: 2.4rem; }
.dm-room__num small { position: absolute; top: 0; left: .15em; font: 500 clamp(1.6rem, 2.6vw, 2.2rem)/1 'Jost', 'Jost Fallback', sans-serif; letter-spacing: 0; color: rgba(255,240,218,.7); }
.dm-room__num sup { font-size: .26em; letter-spacing: 0; vertical-align: top; position: relative; top: .35em; margin-left: .08em; color: rgba(255,240,218,.7); font-weight: 400; }
.dm-room__lead { font-size: 1.25rem; line-height: 1.55; color: rgba(246,236,217,.88); max-width: 30em; margin: 0 0 2rem; }
.dm-room__rows { list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(255,240,218,.28); }
.dm-room__rows li { border-bottom: 1px solid rgba(255,240,218,.28); }
.dm-room__rows a { display: block; padding: 1.3rem 0; color: #F6ECD9; text-decoration: none; transition: padding .4s var(--dm-ease); }
.dm-room__rows a:hover, .dm-room__rows a:focus-visible { padding-left: 1.2rem; }
.dm-room__rows a:focus-visible { outline: 3px solid #FFF0DA; outline-offset: -3px; }
.dm-room__rows span { display: block; font-size: 1rem; font-weight: 600; color: rgba(255,240,218,.7); margin-bottom: .2rem; }
.dm-room__rows strong { display: block; font: 500 clamp(1.5rem, 2.2vw, 1.9rem)/1.15 'Jost', 'Jost Fallback', sans-serif; color: #FFF0DA; margin-bottom: .25rem; }
.dm-room__rows em { display: block; font-style: normal; font-size: 1.08rem; line-height: 1.5; color: rgba(246,236,217,.82); }
@media (max-width: 959px) { .dm-room { grid-template-columns: 1fr; } .dm-room__num { font-size: clamp(8rem, 38vw, 12rem); } }
@media (prefers-reduced-motion: reduce) { .dm-ticket, .dm-pick { transition: none; } .dm-ticket { transform: none; } }

/* =====================================================================
   UNTERSEITEN – gemeinsame Bausteine
   ===================================================================== */
.dm-stage--wide .dm-stage__copy { grid-column: 1; grid-row: 2; }
.dm-aside { grid-column: 2; grid-row: 2; padding-top: 2.2rem; }
.dm-aside--rise { margin-top: clamp(-150px, -8vw, -30px); padding-top: 0; }
.dm-aside .dm-note { max-width: 24em; font-size: 1.1rem; }
@media (max-width: 959px) { .dm-aside, .dm-aside--rise { grid-column: 1; grid-row: auto; margin-top: 2.2rem; padding-top: 0; } }

/* Glasfläche (Hero-Beiwerk) */
.dm-glass { padding: clamp(1.6rem, 3vw, 2.6rem); border-radius: 22px; background: rgba(255,240,218,.6); box-shadow: var(--dm-glass-sh); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.dm-glass h2 { font: 500 clamp(1.5rem, 2.2vw, 1.9rem)/1.1 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.015em; margin: 0 0 1.2rem; color: #2A1710; }
.dm-glass--hours p { font: 300 clamp(2rem, 3vw, 2.6rem)/1.1 'Jost', 'Jost Fallback', sans-serif; margin: 0; color: #2A1710; }

/* Ablauf als senkrechter Faden (Massage, Praxis) */
.dm-flow { list-style: none; margin: 0 0 1rem; padding: 0; }
.dm-flow li { position: relative; display: grid; grid-template-columns: 3.6rem 1fr; gap: 1rem; padding-bottom: 1.5rem; }
.dm-flow li:last-child { padding-bottom: 0; }
.dm-flow li:not(:last-child)::before { content: ''; position: absolute; left: 1.15rem; top: 3.1rem; bottom: .3rem; border-left: 2px dashed rgba(147,67,29,.45); }
.dm-flow b { font: 300 3.2rem/1 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.04em; color: #93431D; }
.dm-flow:not(.dm-flow--words) li:first-child b { transform: translateX(-.09em); }
#tm-main .dm-flow h3 { font: 500 1.45rem/1.15 'Jost', 'Jost Fallback', sans-serif; margin: .25rem 0 .3rem; color: #2A1710; padding: 0; border: 0; }
.dm-flow p { margin: 0; font-size: 1.08rem; line-height: 1.5; color: #4D3A30; }
.dm-flow--words li { grid-template-columns: 4.4rem 1fr; }
.dm-flow--words b { font: 700 1rem/1.3 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; letter-spacing: 0; padding-top: .55rem; }
.dm-flow--words li:not(:last-child)::before { left: .4rem; top: 2.4rem; }

/* Hausbesuche: Route zeichnet sich einmal beim Laden */
.dm-routeviz { display: block; width: 100%; height: auto; overflow: visible; }
.dm-routeviz .r-base { fill: none; stroke: rgba(42,23,16,.3); stroke-width: 3; stroke-dasharray: 2 12; stroke-linecap: round; }
.dm-routeviz .r-draw { fill: none; stroke: #A44E22; stroke-width: 6; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; animation: dm-draw 2.4s cubic-bezier(.55,0,.25,1) .5s forwards; }
.dm-routeviz .r-a { fill: #2A1710; }
.dm-routeviz .r-house path { fill: #A44E22; } .dm-routeviz .r-house rect { fill: #FFF0DA; }
.dm-routeviz .r-house { opacity: 0; transform-box: fill-box; transform-origin: 50% 100%; animation: dm-pop .6s cubic-bezier(.3,1.5,.5,1) 2.7s forwards; }
.dm-routeviz text { font: 500 24px 'Jost', 'Jost Fallback', sans-serif; fill: #2A1710; }
@keyframes dm-draw { to { stroke-dashoffset: 0; } }
@keyframes dm-pop { from { opacity: 0; transform: translateY(12px) scale(.8); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .dm-routeviz .r-draw { animation: none; stroke-dashoffset: 0; } .dm-routeviz .r-house { animation: none; opacity: 1; } }

/* Fakten als Tabelle */
.dm-facts { list-style: none; margin: 3rem 0 0; padding: 0; border-top: 1px solid rgba(42,23,16,.2); }
.dm-facts li { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 5fr) minmax(0, 4fr); gap: 2rem; align-items: baseline; padding: 1.9rem 0; border-bottom: 1px solid rgba(42,23,16,.2); }
.dm-facts span { font-size: 1.05rem; font-weight: 700; color: #93431D; }
.dm-facts strong { font: 500 clamp(1.8rem, 3.2vw, 2.8rem)/1.05 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.025em; color: #2A1710; }
.dm-facts p { margin: 0; font-size: 1.12rem; line-height: 1.55; color: #4D3A30; }
@media (max-width: 959px) { .dm-facts li { grid-template-columns: 1fr; gap: .4rem; } }

/* Wegstrecke aus drei Stationen */
.dm-route { list-style: none; margin: 3rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; counter-reset: r; }
.dm-route li { position: relative; padding-top: 3.2rem; }
.dm-route li::before { content: ''; position: absolute; left: 0; top: 0; width: 1.5rem; height: 1.5rem; border-radius: 50%; border: 3px solid #A44E22; background: #F6ECD9; }
.dm-route li:last-child::before { background: #A44E22; box-shadow: 0 0 0 8px rgba(164,78,34,.18); }
.dm-route li:not(:last-child)::after { content: ''; position: absolute; left: 2.1rem; right: -2rem; top: .7rem; border-top: 3px dashed rgba(147,67,29,.45); }
#tm-main .dm-route h3 { font: 500 clamp(1.6rem, 2.4vw, 2.1rem)/1.1 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.02em; margin: 0 0 .6rem; color: #2A1710; padding: 0; border: 0; }
.dm-route p { margin: 0; font-size: 1.12rem; line-height: 1.55; color: #4D3A30; max-width: 22em; }
@media (max-width: 959px) { .dm-route { grid-template-columns: 1fr; gap: 0; } .dm-route li { padding: 0 0 2.2rem 3rem; } .dm-route li::before { top: .15rem; } .dm-route li:not(:last-child)::after { left: .68rem; right: auto; top: 2rem; bottom: .2rem; border-top: 0; border-left: 3px dashed rgba(147,67,29,.45); } }

/* Zusatzangebote: Werkzeugkasten (ungleiche Kacheln, Personal Training am größten) */
.dm-bento { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1.25rem; margin-top: 3rem; }
.dm-tile { display: flex; flex-direction: column; padding: 2rem; border-radius: 22px; background: rgba(255,240,218,.6); box-shadow: var(--dm-glass-sh); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); transition: transform .5s var(--dm-ease); }
.dm-tile:hover { transform: translateY(-5px); }
.dm-tile__tag { font-size: 1rem; font-weight: 700; color: #93431D; margin-bottom: auto; padding-bottom: 1.6rem; }
#tm-main .dm-tile h3 { font: 500 clamp(1.7rem, 2.4vw, 2.2rem)/1.08 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.022em; margin: 0 0 .6rem; color: #2A1710; padding: 0; border: 0; }
.dm-tile p { margin: 0; font-size: 1.08rem; line-height: 1.55; color: #4D3A30; }
.dm-tile--pt { grid-column: span 3; grid-row: span 2; background: var(--dm-terra); box-shadow: 0 18px 40px rgba(138,58,18,.28), inset 0 0 0 1px rgba(255,240,218,.18), inset 0 1px 0 rgba(255,240,218,.3); padding: 2.6rem; }
.dm-tile--pt .dm-tile__tag { color: rgba(255,240,218,.92); }
#tm-main .dm-tile--pt h3 { font: 300 clamp(2.8rem, 5.4vw, 4.8rem)/.98 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.04em; color: #FFF0DA; margin-bottom: 1rem; }
.dm-tile--pt p { color: rgba(255,240,218,.94); font-size: 1.2rem; max-width: 24em; }
.dm-tile--a, .dm-tile--b { grid-column: span 3; }
.dm-tile--c, .dm-tile--d, .dm-tile--e { grid-column: span 2; }
@media (max-width: 959px) { .dm-bento { grid-template-columns: 1fr; } .dm-tile--pt, .dm-tile--a, .dm-tile--b, .dm-tile--c, .dm-tile--d, .dm-tile--e { grid-column: auto; grid-row: auto; } }
#tm-main .dm-bandsec h2.uk-h1 { font-size: clamp(3rem, 8vw, 7.2rem); font-weight: 300; line-height: .95; letter-spacing: -.045em; max-width: 9.5em; margin-bottom: .4em; }

/* Massage: Preisliste (Struktur für Kundeninhalt) */
.dm-price__head, .dm-price__row { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 2fr) minmax(0, 2fr); gap: 1.5rem; align-items: baseline; }
.dm-price__head { padding-bottom: .7rem; border-bottom: 1px solid rgba(42,23,16,.35); font-size: 1rem; font-weight: 700; color: #93431D; }
.dm-price__row { padding: 1.4rem 0; border-bottom: 1px solid rgba(42,23,16,.2); }
.dm-price--two .dm-price__head, .dm-price--two .dm-price__row { grid-template-columns: minmax(0, 7fr) minmax(0, 3fr); }
.dm-price__row strong { font: 500 clamp(1.5rem, 2.4vw, 2.05rem)/1.12 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.015em; color: #2A1710; }
.dm-price__row span { font-size: 1.15rem; color: #4D3A30; }
.dm-price .dm-note { margin-top: 1.4rem; }

/* Massage: Einwilligungs-Schalter */
.dm-consent { display: grid; grid-template-columns: minmax(0, 1fr) minmax(190px, .62fr) minmax(0, 1fr); gap: 0; align-items: center; margin-top: 3rem; }
.dm-consent__room { padding: 2.2rem; border-radius: 22px; background: rgba(255,240,218,.07); box-shadow: 0 8px 24px rgba(56,26,12,.22), inset 0 0 0 1px rgba(255,240,218,.14), inset 0 1px 0 rgba(255,240,218,.22); -webkit-backdrop-filter: blur(16px) saturate(1.4); backdrop-filter: blur(16px) saturate(1.4); color: #F6ECD9; }
.dm-consent__room span { display: inline-block; font-size: 1rem; font-weight: 600; padding: .3rem 1rem; border: 1px solid rgba(255,240,218,.45); border-radius: 500px; }
.dm-consent__room strong { display: block; font: 300 clamp(2rem, 3.4vw, 3rem)/1 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.03em; color: #FFF0DA; margin: 1.6rem 0 .8rem; }
.dm-consent__room em { font-style: normal; font-size: 1.08rem; line-height: 1.5; color: rgba(246,236,217,.85); }
.dm-consent__link { position: relative; display: flex; flex-direction: column; align-items: center; padding: 0 .4rem; }
.dm-consent__line { display: block; width: 100%; height: 0; border-top: 3px dashed rgba(255,240,218,.4); transition: border-color .4s, filter .4s; }
.dm-switch { all: unset; box-sizing: border-box; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: .6rem; margin-top: 1.1rem; text-align: center; color: rgba(246,236,217,.9); font: 600 1rem/1.3 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; }
.dm-switch b { position: relative; width: 4rem; height: 2.2rem; border-radius: 500px; background: rgba(255,240,218,.14); box-shadow: inset 0 0 0 1px rgba(255,240,218,.35); transition: background .35s; }
.dm-switch b::after { content: ''; position: absolute; left: .3rem; top: .3rem; width: 1.6rem; height: 1.6rem; border-radius: 50%; background: #FFF0DA; box-shadow: 0 3px 8px rgba(0,0,0,.3); transition: transform .45s cubic-bezier(.3,1.4,.5,1); }
.dm-switch[aria-checked="true"] b { background: #A44E22; }
.dm-switch[aria-checked="true"] b::after { transform: translateX(1.8rem); }
.dm-switch:focus-visible { outline: 3px solid #FFF0DA; outline-offset: 6px; border-radius: 12px; }
.dm-consent.is-on .dm-consent__line { border-top-style: solid; border-color: #FFF0DA; filter: drop-shadow(0 0 8px rgba(255,240,218,.55)); }
.dm-consent__state { grid-column: 1 / -1; margin: 2rem 0 0; text-align: center; font-size: 1.25rem; line-height: 1.5; color: #F6ECD9; min-height: 3em; }
@media (max-width: 959px) { .dm-consent { grid-template-columns: 1fr; } .dm-consent__link { padding: 1.2rem 0; } .dm-consent__line { width: 0; height: 3.2rem; border-top: 0; border-left: 3px dashed rgba(255,240,218,.4); } .dm-consent.is-on .dm-consent__line { border-left-style: solid; border-left-color: #FFF0DA; } .dm-consent__state { margin-top: 1.2rem; } }

/* Praxis: Visitenkarten mit Datenzeilen */
.dm-place--static:hover { transform: none; }
.dm-place dl { margin: 1.6rem 0 0; width: 100%; }
.dm-place dl div { padding: .85rem 0; border-top: 1px solid rgba(42,23,16,.2); }
.dm-place dt { font-size: 1rem; font-weight: 700; color: #93431D; margin-bottom: .1rem; }
.dm-place dd { margin: 0; font-size: 1.2rem; line-height: 1.45; color: #2A1710; }
.dm-place--new dl div { border-color: rgba(255,240,218,.32); }
.dm-place--new dt { color: rgba(255,240,218,.78); } .dm-place--new dd { color: #FFF0DA; }
.dm-place--new { justify-content: space-between; }
.dm-places--info .dm-place--old { margin-top: 3rem; }

/* Team: Bogenrahmen, gestaffelt */
.dm-team { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.2rem, 3vw, 3rem); align-items: start; }
.dm-arch { margin: 0; }
.dm-arch--2 { margin-top: 4rem; } .dm-arch--3 { margin-top: 1.8rem; }
.dm-arch__img { aspect-ratio: 4 / 5; display: flex; align-items: flex-end; justify-content: center; padding: 1.6rem; border-radius: 999px 999px 22px 22px; box-shadow: var(--dm-glass-sh), 0 18px 40px rgba(56,26,12,.18); }
.dm-arch--1 .dm-arch__img { background: linear-gradient(320deg, #A44E22, #8A3A12); }
.dm-arch--2 .dm-arch__img { background: linear-gradient(320deg, #2E3D26, #1F2A1A); }
.dm-arch--3 .dm-arch__img { background: linear-gradient(320deg, #4A1620, #2B0A10); }
.dm-arch__img span { font-size: 1.05rem; font-weight: 600; color: rgba(255,240,218,.85); padding: .35rem 1rem; border: 1px solid rgba(255,240,218,.4); border-radius: 500px; }
.dm-arch figcaption { padding-top: 1.4rem; }
.dm-arch strong { display: block; font: 500 clamp(1.7rem, 2.6vw, 2.3rem)/1.08 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.02em; color: #2A1710; }
.dm-arch figcaption > span { display: block; font-size: 1.05rem; font-weight: 700; color: #93431D; margin: .2rem 0 .7rem; }
.dm-arch p { margin: 0; font-size: 1.08rem; line-height: 1.55; color: #4D3A30; }
@media (max-width: 959px) { .dm-team { grid-template-columns: 1fr; } .dm-arch--2, .dm-arch--3 { margin-top: 0; } .dm-arch__img { aspect-ratio: 5 / 4; } }

/* Termin: Kontaktzeilen im Wähler */
.dm-pick__contact { margin-top: 1.4rem !important; font: 400 clamp(1.4rem, 2.2vw, 1.8rem)/1.4 'Jost', 'Jost Fallback', sans-serif !important; color: #2A1710 !important; }
.dm-pick > p + .dm-pick__contact { margin-top: 1.4rem; }

.dm-hero .dm-stage h1 { max-width: none; }
.dm-hero .dm-stage--ticket h1 { max-width: 8.5em; }
.dm-consent__room { align-self: stretch; }

/* =====================================================================
   BILDER (gpt-image-1, Filmlook in der Seitenpalette)
   ===================================================================== */
.dm-photo { margin: 0; overflow: hidden; border-radius: 22px; box-shadow: 0 18px 40px rgba(56,26,12,.16); }
.dm-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* Hausbesuche: Diptychon, versetzt */
.dm-diptych { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 1.25rem; align-items: start; margin-top: 3rem; }
.dm-photo--wide { aspect-ratio: 4 / 3; }
.dm-photo--tall { aspect-ratio: 4 / 5; margin-top: 3.5rem; }
.dm-photo--tall img { object-position: 30% 50%; }
@media (max-width: 959px) { .dm-diptych { grid-template-columns: 1fr; } .dm-photo--tall { margin-top: 0; aspect-ratio: 4 / 3; } }

/* Massage: Foto unter der Preisliste */
.dm-photoband { margin-top: clamp(2.5rem, 6vw, 5rem); }
.dm-photoband .dm-photo { aspect-ratio: 21 / 9; }
@media (max-width: 959px) { .dm-photoband .dm-photo { aspect-ratio: 4 / 3; } }

/* Zusatzangebote: Bild oben in der Kachel */
.dm-tile__img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 14px; margin-bottom: 1.4rem; }
.dm-tile--pt .dm-tile__img { aspect-ratio: auto; flex: 1 1 auto; min-height: 260px; margin-bottom: 1.8rem; box-shadow: 0 10px 30px rgba(0,0,0,.25); }
.dm-tile--pt .dm-tile__tag { margin-bottom: 0; padding-bottom: 1rem; }

/* Physiotherapie: der Raum hinter der Zahl */
.uk-section.dm-roomsec.mb-forest { background-image: linear-gradient(90deg, rgba(25,34,21,.95) 0%, rgba(25,34,21,.82) 45%, rgba(25,34,21,.55) 100%), var(--dm-room-img, url(/wp-content/uploads/dombrowski/trainingsraum.jpg)); background-size: cover; background-position: center; }
@media (max-width: 959px) { .uk-section.dm-roomsec.mb-forest { background-image: linear-gradient(180deg, rgba(25,34,21,.9), rgba(25,34,21,.8)), var(--dm-room-img-s, url(/wp-content/uploads/dombrowski/trainingsraum-s.jpg)); } }

/* Start: die zwei Wahlflächen tragen je ein Foto unter dem Glas */
.dm-pane--physio { background-image: linear-gradient(180deg, rgba(25,34,21,.55) 0%, rgba(25,34,21,.88) 78%), var(--dm-img, url(/wp-content/uploads/dombrowski/trainingsraum-s.jpg)); background-size: cover; background-position: center; }
.dm-pane--pain { background-image: linear-gradient(180deg, rgba(25,34,21,.55) 0%, rgba(25,34,21,.88) 78%), var(--dm-img, url(/wp-content/uploads/dombrowski/mt-s.jpg)); background-size: cover; background-position: center; }
.dm-split .dm-pane--physio:hover, .dm-split .dm-pane--physio:focus-visible { background-image: linear-gradient(180deg, rgba(25,34,21,.28) 0%, rgba(25,34,21,.84) 78%), var(--dm-img, url(/wp-content/uploads/dombrowski/trainingsraum-s.jpg)); }
.dm-split .dm-pane--pain:hover, .dm-split .dm-pane--pain:focus-visible { background-image: linear-gradient(180deg, rgba(25,34,21,.28) 0%, rgba(25,34,21,.84) 78%), var(--dm-img, url(/wp-content/uploads/dombrowski/mt-s.jpg)); }

/* Kachelbilder: Querformat, damit das Personal-Training-Bild nicht die ganze Spalte streckt */
.dm-tile--a .dm-tile__img, .dm-tile--b .dm-tile__img { aspect-ratio: 5 / 2; }
.dm-tile--pt .dm-tile__img { min-height: 240px; max-height: 620px; }
@media (max-width: 959px) { .dm-tile--pt .dm-tile__img { aspect-ratio: 4 / 3; max-height: none; flex: none; } .dm-tile--a .dm-tile__img, .dm-tile--b .dm-tile__img { aspect-ratio: 16 / 10; } }

/* =====================================================================
   BILDER, RUNDE 2
   ===================================================================== */
/* Team: echtes Porträt im Bogenrahmen; das Etikett kennzeichnet den Platzhalter bis zum echten Foto */
.dm-arch__img { position: relative; overflow: hidden; padding: 0; }
.dm-arch__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 22%; }
.dm-arch__img span { position: absolute; left: 50%; bottom: 1.1rem; transform: translateX(-50%); white-space: nowrap; background: rgba(43,10,16,.72); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); color: #FFF0DA; }

/* Physiotherapie: Behandlungsbild rechts im Wähler-Panel */
.dm-pick { position: relative; }
.dm-pick__img { position: absolute; top: 0; right: 0; bottom: 0; width: 42%; height: 100%; object-fit: cover; border-radius: 14px; box-shadow: 0 10px 30px rgba(56,26,12,.2); }
.dm-pick > :not(.dm-pick__img) { max-width: 54%; position: relative; }
.dm-pick .dm-pick__name { font-size: clamp(2rem, 3.4vw, 3.2rem); }
@media (max-width: 959px) {
  .dm-pick { display: flex; }
  .dm-pick__img { position: static; width: 100%; height: auto; aspect-ratio: 16 / 10; margin-bottom: 1.4rem; order: -1; }
  .dm-pick > :not(.dm-pick__img) { max-width: none; }
}
.dm-photoband--two { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 1.25rem; align-items: end; }
.dm-photoband--two .dm-photo { aspect-ratio: 4 / 3; }
.dm-photoband--two .dm-photo:last-child { aspect-ratio: 4 / 5; }
@media (max-width: 959px) { .dm-photoband--two { grid-template-columns: 1fr; } .dm-photoband--two .dm-photo:last-child { aspect-ratio: 4 / 3; } }



/* =====================================================================
   HERO (Start): vollflächig, volle Breite. Das Foto der gewählten Situation füllt den Bildschirm.
   Maße: Seitenrand 40 px (wie Navigationsleiste), Abstandsfolge 8 · 16 · 24 · 40 · 64
   ===================================================================== */
.dm-hero--fan.uk-section { --hx: 40px; --nav: 130px; position: relative; padding: 0; overflow: hidden; display: flex; background: #2A1710; }
.dm-hero--fan > .uk-container, .dm-hero--fan .uk-grid > div { width: 100%; }
#tm-main .dm-hero--fan .uk-grid { width: calc(100% + 30px); max-width: none; }   /* Raster hat margin-left -30px: ohne die +30px endet es rechts zu früh */
@media (min-width: 1200px) { #tm-main .dm-hero--fan .uk-grid { width: calc(100% + 40px); } }
.dm-fan { position: static; box-sizing: border-box; width: 100%; min-height: max(100svh, 700px); padding: clamp(124px, 15svh, 160px) 0 var(--hx); display: flex; flex-direction: column; justify-content: space-between; gap: 40px; }
.dm-fan__bg { position: absolute; inset: 0; z-index: 0; background: #2A1710; }
.dm-fan__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.06); transition: opacity 1s ease, transform 6s cubic-bezier(.2,.6,.2,1); }
.dm-fan__img.is-on { opacity: 1; transform: scale(1); }
.dm-fan__veil { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(31,14,8,.74) 0%, rgba(31,14,8,.4) 42%, rgba(31,14,8,0) 70%), linear-gradient(180deg, rgba(31,14,8,.4) 0%, rgba(31,14,8,0) 24%, rgba(31,14,8,0) 50%, rgba(31,14,8,.9) 100%); }

/* Textblock: H1 > Zeile > Lead > Buttons, feste Abstände */
.dm-fan__text { position: relative; z-index: 2; max-width: 44rem; }
.dm-fan__text h1 { margin: 0 0 24px; font: 500 clamp(3rem, min(7.2vw, 13.5svh), 7.6rem)/.96 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.04em; color: #FFF0DA; background: none; -webkit-text-fill-color: #FFF0DA; text-wrap: balance; text-shadow: 0 4px 50px rgba(20,8,4,.4); }
.dm-fan__text h1 span { display: block; margin-top: 16px; font-size: .37em; font-weight: 300; letter-spacing: -.012em; line-height: 1.12; color: rgba(255,240,218,.94); -webkit-text-fill-color: rgba(255,240,218,.94); }
.dm-fan__text .dm-lead { color: rgba(255,240,218,.96); max-width: 26em; margin: 0 0 24px; font-size: clamp(1.15rem, 1.35vw, 1.35rem); line-height: 1.55; text-wrap: pretty; text-shadow: 0 2px 24px rgba(20,8,4,.5); }
.dm-fan__text .dm-lead mark { color: #2A1710; }
.dm-fan__text .dm-stage__cta { margin: 0; gap: 12px; }
.dm-fan__text .uk-button-default { background: rgba(255,240,218,.18); color: #FFF0DA; }

/* Situationsleiste: vier gleiche Spalten, gleiche Höhe, Linie füllt sich beim aktiven Eintrag */
.dm-fan__ask { position: relative; z-index: 2; }
.dm-fan__hint { margin: 0 0 16px; font-size: 1rem; line-height: 1.3; font-weight: 600; color: rgba(255,240,218,.85); }
.dm-fan__row { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 24px; }
.dm-fan__d { border-top: 2px solid rgba(255,240,218,.35); position: relative; }
.dm-fan__d::before { content: ''; position: absolute; left: 0; top: -2px; height: 2px; width: 0; background: #FFF0DA; transition: width .7s cubic-bezier(.2,.8,.2,1); }
.dm-fan__d.is-on::before { width: 100%; }
.dm-fan__d a { display: block; padding: 16px 0 0; color: #FFF0DA; text-decoration: none; }
.dm-fan__d a:focus-visible { outline: 3px solid #FFF0DA; outline-offset: 4px; border-radius: 6px; }
#tm-main .dm-fan__q { display: block; font: 500 clamp(1.15rem, 1.65vw, 1.55rem)/1.15 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.012em; color: rgba(255,240,218,.8); text-wrap: balance; transition: color .4s; }
#tm-main .dm-fan__d.is-on .dm-fan__q { color: #FFF0DA; }
#tm-main .dm-fan__go { display: block; margin-top: 8px; min-height: 1.4em; font-size: 1rem; line-height: 1.4; font-weight: 600; color: rgba(255,240,218,.95); opacity: 0; transform: translateY(6px); transition: opacity .4s, transform .6s cubic-bezier(.2,.8,.2,1); }
#tm-main .dm-fan__go::after { content: ''; display: inline-block; width: .8em; height: .8em; margin-left: .55em; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg) scale(.7); }
#tm-main .dm-fan__d.is-on .dm-fan__go { opacity: 1; transform: none; }

/* Navigationsleiste liegt unter 1200 px im Fluss: das Theme schiebt den Abschnitt dort selbst um 130 px nach unten */
@media (max-width: 1199px) { .dm-fan { padding-top: 24px; min-height: max(calc(100svh - 130px), 560px); } }
/* Tablet: zwei Spalten, damit die Leiste im Bild bleibt */
@media (max-width: 959px) {
  .dm-hero--fan.uk-section { --hx: 15px; }
  .dm-fan { gap: 32px; padding-bottom: 24px; }
  .dm-fan__veil { background: linear-gradient(180deg, rgba(31,14,8,.55) 0%, rgba(31,14,8,.35) 40%, rgba(31,14,8,.9) 100%); }
  .dm-fan__row { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 16px; }
  #tm-main .dm-fan__go { display: none; } #tm-main .dm-fan__d.is-on .dm-fan__go { display: block; }
}
@media (max-width: 599px) {
  .dm-fan__text h1 { font-size: clamp(2.8rem, 13.5vw, 3.6rem); margin-bottom: 16px; }
  .dm-fan__row { grid-template-columns: 1fr; row-gap: 0; }
  .dm-fan__d a { padding: 12px 0; }
}
/* Niedrige Fenster (Laptop): Text enger, damit alles ins Bild passt */
@media (min-width: 1200px) and (max-height: 780px) { .dm-fan { gap: 24px; } .dm-fan__text h1 { margin-bottom: 16px; } .dm-fan__text .dm-lead { margin-bottom: 16px; } }
@media (prefers-reduced-motion: reduce) { .dm-fan__img { transition: opacity .01s; transform: none; } }

/* Aufweit-Flächen: Umbruch und Größen hängen nicht an der aktuellen Flächenbreite, sondern an der schmalsten (aufgezogenen) Stellung.
   So springt beim Hover weder der Titel noch der Fließtext in eine andere Zeilenzahl. */
@media (min-width: 960px) {
  .dm-split { --sw: min(1360px, calc(100vw - 80px)); --inner-min: calc((var(--sw) - 24px) * .3636 - 4.8rem); }
  .dm-split .dm-pane__title { white-space: nowrap; font-size: clamp(2rem, calc(var(--inner-min) / 6.3), 4.4rem); }
  .dm-split .dm-pane__text { max-width: min(26em, var(--inner-min)); }
}

/* =====================================================================
   START: Leistungen. Erst das Anliegen, dann der Fachbegriff. Foto-Karten, Umschalter mit gleitendem Zeiger.
   ===================================================================== */
.dm-offer__head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px 64px; align-items: end; margin-bottom: 40px; }
#tm-main .dm-offer__head h2 { margin: 0 0 16px; }
.dm-offer__lead { margin: 0; max-width: 30em; font-size: clamp(1.15rem, 1.35vw, 1.3rem); line-height: 1.55; color: #4D3A30; }

.dm-offer__tabs { --i: 0; position: relative; display: grid; grid-template-columns: 1fr 1fr; padding: 6px; border-radius: 500px; background: rgba(42,23,16,.07); box-shadow: inset 0 0 0 1px rgba(42,23,16,.08); min-width: min(100%, 30rem); }
.dm-offer__tabs::before { content: ''; position: absolute; top: 6px; bottom: 6px; left: 6px; width: calc((100% - 12px) / 2); border-radius: 500px; background: var(--dm-terra); box-shadow: 0 8px 20px rgba(138,58,18,.3), inset 0 1px 0 rgba(255,240,218,.3); transform: translateX(calc(var(--i) * 100%)); transition: transform .6s cubic-bezier(.3,1.15,.4,1); }
.dm-offer__tab { all: unset; box-sizing: border-box; position: relative; z-index: 1; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 14px 24px; border-radius: 500px; text-align: center; font: 600 1.05rem/1.2 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; color: #2A1710; transition: color .35s; }
.dm-offer__tab small { font-size: .9rem; font-weight: 400; opacity: .78; }
.dm-offer__tab[aria-selected="true"] { color: #FFF0DA; }
.dm-offer__tab:focus-visible { outline: 3px solid #A44E22; outline-offset: 2px; }

.dm-offer__panel[hidden] { display: none; }
.dm-offer__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.dm-offer__panel.is-in .dm-offer__grid li { animation: dm-oc-in .7s cubic-bezier(.2,.8,.2,1) backwards; animation-delay: calc(var(--k, 0) * 70ms); }
@keyframes dm-oc-in { from { opacity: 0; transform: translateY(18px); } }

.dm-oc { position: relative; display: block; aspect-ratio: 3 / 2; border-radius: 22px; overflow: hidden; isolation: isolate; color: #FFF0DA; text-decoration: none; background: #2A1710; box-shadow: 0 18px 40px rgba(56,26,12,.2); }
.dm-oc img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transform: scale(1.02); transition: transform 1.2s cubic-bezier(.2,.8,.2,1); }
.dm-oc::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(31,14,8,.12) 0%, rgba(31,14,8,0) 30%, rgba(31,14,8,.55) 62%, rgba(31,14,8,.9) 100%); transition: opacity .5s; }
.dm-oc:hover img, .dm-oc:focus-visible img { transform: scale(1.08); }
.dm-oc:focus-visible { outline: 3px solid #A44E22; outline-offset: 3px; }
.dm-oc__body { position: absolute; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; padding: 24px; }
#tm-main .dm-oc__for { font: 500 clamp(1.5rem, 2vw, 1.9rem)/1.1 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.02em; color: #FFF0DA; text-shadow: 0 2px 20px rgba(20,8,4,.4); }
#tm-main .dm-oc__name { margin-top: 8px; font-size: 1rem; line-height: 1.35; font-weight: 600; color: rgba(255,240,218,.85); }
.dm-oc__txt { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows .55s cubic-bezier(.2,.8,.2,1), opacity .4s .05s; }
.dm-oc__txt > span { overflow: hidden; font-size: 1.05rem; line-height: 1.5; color: rgba(255,240,218,.95); }
.dm-oc__txt > span::before { content: ''; display: block; height: 12px; }
.dm-oc:hover .dm-oc__txt, .dm-oc:focus-visible .dm-oc__txt { grid-template-rows: 1fr; opacity: 1; }
.dm-oc__go { position: absolute; top: 16px; right: 16px; width: 44px; height: 44px; border-radius: 50%; background: rgba(255,240,218,.16); box-shadow: inset 0 0 0 1px rgba(255,240,218,.4), inset 0 1px 0 rgba(255,240,218,.3); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); transition: background .35s, transform .5s cubic-bezier(.2,.8,.2,1); }
.dm-oc__go::after { content: ''; position: absolute; left: 50%; top: 50%; width: 10px; height: 10px; margin: -6px 0 0 -10px; border-top: 2px solid #FFF0DA; border-right: 2px solid #FFF0DA; transform: rotate(45deg); transition: border-color .35s; }
.dm-oc:hover .dm-oc__go, .dm-oc:focus-visible .dm-oc__go { background: #FFF0DA; transform: scale(1.08); }
.dm-oc:hover .dm-oc__go::after, .dm-oc:focus-visible .dm-oc__go::after { border-color: #93431D; }

/* Touch: keine Hover-Erklärung, also immer sichtbar */
@media (hover: none) { .dm-oc__txt { grid-template-rows: 1fr; opacity: 1; } }

@media (max-width: 1099px) { .dm-offer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .dm-offer__head { grid-template-columns: 1fr; gap: 24px; } }
@media (max-width: 719px) {
  .dm-offer__grid { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; margin-inline: -15px; padding: 0 15px 16px; scrollbar-width: none; }
  .dm-offer__grid::-webkit-scrollbar { display: none; }
  .dm-offer__grid li { flex: 0 0 82%; scroll-snap-align: start; }
  .dm-oc { aspect-ratio: 4 / 5; } .dm-oc__txt { grid-template-rows: 1fr; opacity: 1; }
  .dm-offer__tab { padding: 12px 14px; font-size: 1rem; } .dm-offer__tab small { font-size: .85rem; }
}
@media (prefers-reduced-motion: reduce) { .dm-offer__panel.is-in .dm-offer__grid li { animation: none; } .dm-oc img, .dm-oc__txt, .dm-offer__tabs::before { transition: none; } }

/* Korrekturen: Umschalter bleibt im Raster, Karten rasten mit Seitenabstand ein */
.dm-offer__head { grid-template-columns: minmax(0, 1fr) minmax(0, 30rem); }
.dm-offer__tabs { min-width: 0; width: 100%; box-sizing: border-box; }
@media (max-width: 1099px) { .dm-offer__head { grid-template-columns: minmax(0, 1fr); } .dm-offer__tabs { max-width: 30rem; } }
@media (max-width: 719px) { .dm-offer__grid { scroll-padding-inline: 15px; } }

/* =====================================================================
   Standorte: zwei gleichwertige Karten, gleiche Größe, gleicher Aufbau. Nur die Farbe unterscheidet sie.
   ===================================================================== */
.dm-flow--words li { grid-template-columns: 6.6rem 1fr; }
.dm-locs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-top: 40px; }
.dm-loc { position: relative; display: flex; flex-direction: column; align-items: flex-start; box-sizing: border-box; min-height: 480px; padding: 40px; border-radius: 26px; color: #FFF0DA; text-decoration: none; overflow: hidden; isolation: isolate;
  box-shadow: 0 24px 56px rgba(56,26,12,.22), inset 0 0 0 1px rgba(255,240,218,.16), inset 0 1px 0 rgba(255,240,218,.3); transition: transform .6s cubic-bezier(.2,.8,.2,1); }
.dm-loc--reisbach { background: linear-gradient(320deg, #A44E22, #8A3A12); }
.dm-loc--wartenberg { background: linear-gradient(320deg, #2E3D26, #1F2A1A); }
.dm-loc::before { content: ''; position: absolute; z-index: -1; right: -18%; top: -30%; width: 70%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(255,240,218,.16), rgba(255,240,218,0) 70%); }
a.dm-loc:hover, a.dm-loc:focus-visible { transform: translateY(-6px); }
a.dm-loc:focus-visible { outline: 3px solid #A44E22; outline-offset: 4px; }
.dm-loc__status { font-size: 1rem; font-weight: 600; line-height: 1.2; padding: 6px 16px; border-radius: 500px; border: 1px solid rgba(255,240,218,.5); color: rgba(255,240,218,.96); }
#tm-main .dm-loc__town { display: block; margin: auto 0 8px; padding-top: 40px; font: 300 clamp(3.2rem, 6.4vw, 5.8rem)/.95 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.045em; color: #FFF0DA; }
.dm-loc__addr { font-size: 1.2rem; line-height: 1.4; color: rgba(255,240,218,.92); }
.dm-loc__label { display: block; margin: 32px 0 8px; font-size: 1rem; font-weight: 600; color: rgba(255,240,218,.75); }
.dm-loc__offers { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; min-height: 42px; }
.dm-loc__offers li { display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; border-radius: 500px; font-size: 1.02rem; font-weight: 600; line-height: 1.2; background: rgba(255,240,218,.14); box-shadow: inset 0 0 0 1px rgba(255,240,218,.3), inset 0 1px 0 rgba(255,240,218,.25); }
.dm-loc__offers li::before { content: ''; width: 7px; height: 12px; margin: -3px 2px 0 0; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) scale(.8); }
.dm-loc .uk-button { margin-top: 28px; background: rgba(255,240,218,.92); color: #2A1710; }
.dm-loc__dl { width: 100%; margin: 28px 0 0; }
.dm-loc__dl div { padding: 12px 0; border-top: 1px solid rgba(255,240,218,.28); }
.dm-loc__dl dt { font-size: 1rem; font-weight: 700; color: rgba(255,240,218,.75); margin-bottom: 2px; }
.dm-loc__dl dd { margin: 0; font-size: 1.2rem; line-height: 1.45; color: #FFF0DA; }
.dm-loc__dl mark { color: #2A1710; }
@media (max-width: 959px) { .dm-locs { grid-template-columns: 1fr; margin-top: 32px; } .dm-loc { min-height: 0; padding: 32px 24px; } #tm-main .dm-loc__town { font-size: clamp(3rem, 15vw, 4.4rem); margin-top: 40px; padding-top: 0; } }
@media (prefers-reduced-motion: reduce) { .dm-loc { transition: none; } }
/* Beide Karten: Kopf (Ort, Adresse, Angebote) liegt immer auf derselben Höhe, Details sammeln sich unten */
@media (min-width: 960px) {
  .dm-locs { align-items: stretch; }
  #tm-main .dm-loc__town { margin-top: 0; padding-top: 0; }
  .dm-loc__status { margin-bottom: 56px; }
  .dm-loc__dl { margin-top: auto; padding-top: 28px; }
  .dm-loc--wartenberg .dm-loc__dl { margin-top: auto; }
  a.dm-loc .uk-button { margin-top: auto; }
  .dm-loc__offers { margin-bottom: 0; }
  a.dm-loc .dm-loc__offers { margin-bottom: 28px; }
}
.dm-loc__offers li { padding: 6px 14px; font-size: .98rem; }
.dm-loc__offers li::before { display: none; }
.dm-loc__offers { min-height: 0; }
.dm-loc__offers li { padding: 8px 18px; font-size: 1.05rem; }

/* Leistungen kompakt: eine Zeile pro Bereich, Bereich fett, Einzelleistungen als Fließtext */
.dm-loc__offers { display: block; }
.dm-loc__offers li { display: block; padding: 10px 0; border-radius: 0; background: none; box-shadow: none; border-top: 1px solid rgba(255,240,218,.28); font-size: 1rem; line-height: 1.45; font-weight: 400; }
.dm-loc__offers li:last-child { border-bottom: 1px solid rgba(255,240,218,.28); }
.dm-loc__offers li strong { font-weight: 700; color: #FFF0DA; margin-right: .35em; }
.dm-loc__offers li span { color: rgba(255,240,218,.82); }
@media (min-width: 960px) { .dm-loc { min-height: 0; } .dm-loc__status { margin-bottom: 40px; } }
@media (min-width: 1200px) { .dm-loc__offers li { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } }

/* Leistungen in einer Zeile: kurze Marken nebeneinander */
.dm-loc__offers { display: flex; flex-wrap: nowrap; gap: 8px; }
.dm-loc__offers li, .dm-loc__offers li:last-child { display: inline-flex; flex: none; padding: 8px 16px; border-radius: 500px; border: 0; background: rgba(255,240,218,.14); box-shadow: inset 0 0 0 1px rgba(255,240,218,.3), inset 0 1px 0 rgba(255,240,218,.25); font-size: 1rem; line-height: 1.2; white-space: nowrap; overflow: visible; }
.dm-loc__offers li strong { margin: 0; font-weight: 600; }
@media (max-width: 599px) { .dm-loc__offers { flex-wrap: wrap; } }

/* =====================================================================
   FAQ als Gespräch: Fragen sind Antwort-Chips, Antworten kommen als Sprechblasen
   ===================================================================== */
.dm-faq__src { margin: 0; }
.dm-faq__src > div { padding: 16px 0; border-top: 1px solid rgba(42,23,16,.2); }
.dm-faq__src dt { font: 500 1.4rem/1.2 'Jost', 'Jost Fallback', sans-serif; color: #2A1710; margin-bottom: 6px; }
.dm-faq__src dd { margin: 0; font-size: 1.1rem; line-height: 1.55; color: #4D3A30; }
.dm-faq.is-js .dm-faq__src { display: none; }

.dm-chat { display: none; }
.dm-faq.is-js .dm-chat { display: flex; flex-direction: column; gap: 14px; box-sizing: border-box; padding: 32px; border-radius: 26px; background: rgba(255,240,218,.6); box-shadow: var(--dm-glass-sh); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); min-height: 440px; }
.dm-chat__thread { display: flex; flex-direction: column; gap: 14px; }
.dm-msg { max-width: 34em; padding: 16px 22px; font-size: 1.12rem; line-height: 1.5; animation: dm-msg-in .5s cubic-bezier(.2,.8,.2,1) backwards; }
@keyframes dm-msg-in { from { opacity: 0; transform: translateY(12px) scale(.98); } }
.dm-msg--in { align-self: flex-start; border-radius: 22px 22px 22px 6px; color: #2A1710; background: #FFF6E6; box-shadow: 0 6px 18px rgba(56,26,12,.1), inset 0 0 0 1px rgba(255,240,218,.7); }
.dm-msg--out { align-self: flex-end; border-radius: 22px 22px 6px 22px; color: #FFF0DA; background: var(--dm-terra); font-weight: 600; box-shadow: 0 8px 20px rgba(138,58,18,.28), inset 0 1px 0 rgba(255,240,218,.3); }
.dm-msg mark { color: #2A1710; }
.dm-msg--typing { display: inline-flex; gap: 6px; padding: 18px 22px; }
.dm-msg--typing i { width: 8px; height: 8px; border-radius: 50%; background: #93431D; opacity: .35; animation: dm-dot 1s infinite ease-in-out; }
.dm-msg--typing i:nth-child(2) { animation-delay: .15s; } .dm-msg--typing i:nth-child(3) { animation-delay: .3s; }
@keyframes dm-dot { 0%, 100% { opacity: .3; transform: translateY(0); } 40% { opacity: 1; transform: translateY(-4px); } }

.dm-chat__chips { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; margin-top: auto; padding-top: 12px; }
.dm-chip { all: unset; box-sizing: border-box; cursor: pointer; padding: 12px 20px; border-radius: 500px; font: 600 1.02rem/1.25 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; color: #93431D; background: rgba(255,246,230,.9); box-shadow: inset 0 0 0 1.5px rgba(147,67,29,.45); transition: background .25s, color .25s, transform .4s cubic-bezier(.2,.8,.2,1); }
.dm-chip:hover { background: #A44E22; color: #FFF0DA; transform: translateY(-2px); }
.dm-chip:focus-visible { outline: 3px solid #A44E22; outline-offset: 3px; }
.dm-chip.is-leave { opacity: 0; transform: scale(.9); transition: opacity .25s, transform .25s; }
.dm-chat__foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.dm-chat__reset { all: unset; cursor: pointer; font: 600 1rem/1.3 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; color: #4D3A30; text-decoration: underline; text-underline-offset: 4px; }
.dm-chat__reset:hover { color: #93431D; } .dm-chat__reset:focus-visible { outline: 3px solid #A44E22; outline-offset: 3px; border-radius: 4px; }
.dm-chat__reset[hidden] { display: none; }
@media (max-width: 959px) { .dm-faq.is-js .dm-chat { padding: 20px 16px; min-height: 0; } .dm-chat__chips { justify-content: flex-start; } .dm-msg { font-size: 1.05rem; } }
@media (prefers-reduced-motion: reduce) { .dm-msg { animation: none; } .dm-msg--typing i { animation: none; opacity: .7; } .dm-chip { transition: none; } }

/* =====================================================================
   Seitenkopf der Unterseiten: gleiche Sprache wie der Start-Hero, nur niedriger.
   Foto (wenn es ein ehrliches gibt) oder Hausfarbe als Grund, Text unten links, Zusatzinfo rechts unten.
   ===================================================================== */
.dm-hero--page.uk-section { --nav: 130px; position: relative; padding: 0; overflow: hidden; display: flex; background: #2A1710; }
.dm-hero--page > .uk-container, .dm-hero--page .uk-grid, .dm-hero--page .uk-grid > div { width: 100%; }
.dm-phero { position: relative; box-sizing: border-box; width: 100%; min-height: max(68svh, 560px); padding: clamp(124px, 15svh, 160px) 0 56px; display: flex; flex-direction: column; justify-content: flex-end; }
.dm-phero__bg { position: absolute; inset: 0; z-index: 0; }
.dm-phero--forest .dm-phero__bg { background: linear-gradient(320deg, #2E3D26, #1F2A1A); }
.dm-phero--oxblood .dm-phero__bg { background: linear-gradient(320deg, #4A1620, #2B0A10); }
.dm-phero--terra .dm-phero__bg { background: linear-gradient(320deg, #A44E22, #8A3A12); }
.dm-phero__bg img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dm-phero__veil { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(31,14,8,.74) 0%, rgba(31,14,8,.4) 44%, rgba(31,14,8,0) 74%), linear-gradient(180deg, rgba(31,14,8,.4) 0%, rgba(31,14,8,0) 26%, rgba(31,14,8,0) 55%, rgba(31,14,8,.82) 100%); }
.dm-phero:not(:has(img)) .dm-phero__veil { background: radial-gradient(60% 80% at 85% 20%, rgba(255,240,218,.14), rgba(255,240,218,0) 70%); }
.dm-phero__in { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 28rem); gap: 40px; align-items: end; }
.dm-phero__text { max-width: 44rem; }
.dm-phero h1 { margin: 0 0 24px; font: 500 clamp(2.8rem, min(6.4vw, 11.5svh), 6.4rem)/.96 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.04em; color: #FFF0DA; background: none; -webkit-text-fill-color: #FFF0DA; text-wrap: balance; text-shadow: 0 4px 50px rgba(20,8,4,.4); }
.dm-phero .dm-lead { color: rgba(255,240,218,.96); max-width: 28em; margin: 0 0 24px; font-size: clamp(1.15rem, 1.35vw, 1.35rem); line-height: 1.55; text-wrap: pretty; text-shadow: 0 2px 24px rgba(20,8,4,.5); }
.dm-phero .dm-lead mark, .dm-phero .dm-glass mark, .dm-phero .dm-note mark { color: #2A1710; }
.dm-phero .dm-stage__cta { margin: 0; gap: 12px; display: flex; flex-wrap: wrap; }
.dm-phero .uk-button-default { background: rgba(255,240,218,.18); color: #FFF0DA; }
.dm-phero__aside .dm-note { margin: 0; color: rgba(255,240,218,.95); font-size: 1.1rem; }
.dm-phero .dm-glass { background: rgba(255,240,218,.1); box-shadow: 0 8px 24px rgba(0,0,0,.25), inset 0 0 0 1px rgba(255,240,218,.16), inset 0 1px 0 rgba(255,240,218,.24); -webkit-backdrop-filter: blur(16px) saturate(1.4); backdrop-filter: blur(16px) saturate(1.4); color: #FFF0DA; padding: 24px 28px; }
.dm-phero .dm-glass h2 { color: #FFF0DA; margin-bottom: 8px; font-size: 1.15rem; }
.dm-phero .dm-glass--hours p { color: #FFF0DA; font-size: 1.8rem; }
.dm-phero .dm-flow { margin: 0; } .dm-phero .dm-flow li { padding-bottom: 20px; }
.dm-phero .dm-flow b { color: #FFF0DA; }
.dm-phero .dm-flow h3 { color: #FFF0DA; font-size: 1.25rem; }
.dm-phero .dm-flow p { color: rgba(255,240,218,.88); font-size: 1rem; }
.dm-phero .dm-flow li:not(:last-child)::before { border-color: rgba(255,240,218,.4); }
@media (max-width: 1199px) { .dm-phero { padding-top: 24px; min-height: max(calc(68svh - 130px), 480px); } }
@media (max-width: 959px) { .dm-phero__in { grid-template-columns: minmax(0, 1fr); gap: 32px; } .dm-phero { padding-bottom: 32px; } .dm-phero__veil { background: linear-gradient(180deg, rgba(31,14,8,.5) 0%, rgba(31,14,8,.3) 40%, rgba(31,14,8,.88) 100%); } }
@media (max-width: 599px) { .dm-phero h1 { font-size: clamp(2.6rem, 12.5vw, 3.4rem); margin-bottom: 16px; } }

/* breites Foto im Textfluss (statt Zwei-Bild-Raster) */
.dm-photo--banner { margin: 40px 0 0; border-radius: 26px; overflow: hidden; aspect-ratio: 21 / 9; box-shadow: 0 24px 56px rgba(56,26,12,.2); }
.dm-photo--banner img { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 719px) { .dm-photo--banner { aspect-ratio: 4 / 3; border-radius: 22px; } }

/* Physio-Ticket sitzt jetzt im Textfluss (ohne eigene Überschrift): volle Spaltenbreite */
.dm-ticketwrap { grid-column: auto; grid-row: auto; padding-top: 0; }

/* Korrekturen Seitenkopf: Bild bezieht sich auf den Abschnitt (volle Breite), Text bekommt Platz, wenn es keine Zusatzinfo gibt */
.dm-phero { position: static; }
.dm-phero__in:not(:has(.dm-phero__aside)) { grid-template-columns: minmax(0, 1fr); }
.dm-phero__in:not(:has(.dm-phero__aside)) .dm-phero__text { max-width: 62rem; }
.dm-phero h1 { font-size: clamp(2.8rem, min(6vw, 11svh), 6rem); }
@media (max-width: 599px) { .dm-phero h1 { font-size: clamp(2.6rem, 12.5vw, 3.4rem); } }

/* Grundfarbe unter dem Verlauf: die Navigationsleiste liest daran, ob der Grund dunkel ist */
.dm-phero--forest .dm-phero__bg { background-color: #1F2A1A; }
.dm-phero--oxblood .dm-phero__bg { background-color: #2B0A10; }
.dm-phero--terra .dm-phero__bg { background-color: #8A3A12; }
#tm-main .dm-phero .dm-flow h3 { color: #FFF0DA; font-size: 1.25rem; }
#tm-main .dm-phero .dm-flow p { color: rgba(255,240,218,.88); font-size: 1rem; }
#tm-main .dm-phero .dm-flow b { color: #FFF0DA; }
#tm-main .dm-phero .dm-flow li:not(:last-child)::before { border-color: rgba(255,240,218,.4); }
#tm-main .dm-phero .dm-glass h2 { color: #FFF0DA; }
@media (max-width: 599px) { .dm-phero h1 { font-size: clamp(2.3rem, 11vw, 3rem); } }

/* =====================================================================
   Dunkelrot als Leder: gepresste Narbung statt Streifen. Die senkrechten „Nähte“ des Themes liegen nicht mehr über Fotos.
   ===================================================================== */
:root { --dm-leather: url(/wp-content/uploads/dombrowski/leather.webp?v=6); }
.mb-oxblood::before { background-image: linear-gradient(160deg, rgba(181,89,43,.2) 0%, rgba(0,0,0,0) 55%), linear-gradient(0deg, rgba(0,0,0,.2), rgba(0,0,0,0) 40%); }
.mb-oxblood::after { background-image: var(--dm-leather); background-size: 360px 360px; background-repeat: repeat; mix-blend-mode: soft-light; opacity: 1; }
.dm-phero--oxblood .dm-phero__bg::after { content: ''; position: absolute; inset: 0; background-image: var(--dm-leather); background-size: 360px 360px; mix-blend-mode: soft-light; pointer-events: none; }
/* keine Streifen über Foto-Flächen */
.dm-roomsec::before { display: none; }
/* Spezifität über die Theme-Regel heben: Streifen („Nähte“) raus, Leder rein */
body .uk-section.mb-oxblood::before { background-image: linear-gradient(160deg, rgba(181,89,43,.2) 0%, rgba(0,0,0,0) 55%), linear-gradient(0deg, rgba(0,0,0,.2), rgba(0,0,0,0) 40%); }
body .uk-section.mb-oxblood::after { background-image: var(--dm-leather); background-size: 360px 360px; background-repeat: repeat; mix-blend-mode: soft-light; opacity: 1; }
body .uk-section.dm-roomsec::before { display: none; }

/* =====================================================================
   Ablauf in drei Schritten: Karten mit großer Ziffer, das Ziel ist hervorgehoben
   ===================================================================== */
#tm-main .dm-route { gap: 24px; margin-top: 40px; counter-reset: none; align-items: stretch; }
#tm-main .dm-route li { position: relative; display: flex; flex-direction: column; box-sizing: border-box; padding: 32px; min-height: 260px; border-radius: 26px; background: rgba(255,240,218,.6); box-shadow: var(--dm-glass-sh); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
#tm-main .dm-route li::before { display: none; }
#tm-main .dm-route li:not(:last-child)::after { content: ''; position: absolute; z-index: 2; right: -17px; top: 50%; width: 10px; height: 10px; margin-top: -5px; border-top: 3px solid #A44E22; border-right: 3px solid #A44E22; transform: rotate(45deg); border-radius: 1px; }
#tm-main .dm-route__n { font: 300 clamp(4.5rem, 7vw, 6.5rem)/.85 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.05em; color: #93431D; margin-bottom: auto; padding-bottom: 32px; }
#tm-main .dm-route h3 { margin: 0 0 8px; padding: 0; border: 0; font: 500 clamp(1.5rem, 2.1vw, 1.9rem)/1.12 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.02em; color: #2A1710; }
#tm-main .dm-route p { margin: 0; font-size: 1.1rem; line-height: 1.5; color: #4D3A30; max-width: none; }
#tm-main .dm-route li.is-goal { background: var(--dm-terra); box-shadow: 0 18px 40px rgba(138,58,18,.28), inset 0 0 0 1px rgba(255,240,218,.18), inset 0 1px 0 rgba(255,240,218,.3); }
#tm-main .dm-route li.is-goal .dm-route__n, #tm-main .dm-route li.is-goal h3 { color: #FFF0DA; }
#tm-main .dm-route li.is-goal p { color: rgba(255,240,218,.94); }
@media (max-width: 959px) {
  #tm-main .dm-route { grid-template-columns: 1fr; gap: 16px; }
  #tm-main .dm-route li { min-height: 0; padding: 24px; flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: 4px 20px; }
  #tm-main .dm-route__n { font-size: 3.4rem; margin: 0; padding: 0; }
  #tm-main .dm-route li > h3 { flex: 1 1 60%; } #tm-main .dm-route li > p { flex: 1 1 100%; }
  #tm-main .dm-route li:not(:last-child)::after { right: auto; left: 38px; top: auto; bottom: -15px; margin: 0; transform: rotate(135deg); }
}

/* Foto-Band statt leerem Abschnitt (Praxis: Hausbesuch-Hinweis) */
.dm-band { position: relative; isolation: isolate; border-radius: 26px; overflow: hidden; min-height: 420px; display: flex; align-items: flex-end; box-shadow: 0 24px 56px rgba(56,26,12,.22); }
.dm-band img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; }
.dm-band__veil { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(31,14,8,.82) 0%, rgba(31,14,8,.5) 45%, rgba(31,14,8,.05) 80%), linear-gradient(180deg, rgba(31,14,8,0) 50%, rgba(31,14,8,.55) 100%); }
.dm-band__in { padding: 48px; max-width: 44rem; }
#tm-main .dm-band h2 { margin: 0 0 16px; color: #FFF0DA; font-size: clamp(2.2rem, 4.2vw, 3.6rem); line-height: 1.02; text-shadow: 0 4px 40px rgba(20,8,4,.4); }
.dm-band .dm-lead { color: rgba(255,240,218,.95); margin: 0 0 24px; max-width: 28em; font-size: 1.2rem; line-height: 1.55; }
.dm-band .dm-stage__cta { margin: 0; }
@media (max-width: 959px) { .dm-band { min-height: 0; } .dm-band__in { padding: 160px 24px 28px; } }
#tm-main .dm-route li:not(:last-child)::after { left: auto; bottom: auto; width: 10px; height: 10px; border-bottom: 0; border-left: 0; }
@media (min-width: 960px) { #tm-main .dm-route__n { margin-bottom: 0; padding-bottom: 40px; } #tm-main .dm-route li { justify-content: flex-start; } }
@media (max-width: 959px) { #tm-main .dm-route li:not(:last-child)::after { left: 38px; top: auto; bottom: -15px; } }

/* Narbung dezenter: gleiche Struktur, halbe Deckkraft */
body .uk-section.mb-oxblood::after { opacity: .55; }
.dm-phero--oxblood .dm-phero__bg::after { opacity: .55; }

/* Leder: echte Körnung (Zellen statt Rauschen), 512-px-Kachel auf 256 px gezeigt = scharf auch auf hochauflösenden Displays */
body .uk-section.mb-oxblood::after { background-size: 256px 256px; opacity: .8; }
.dm-phero--oxblood .dm-phero__bg::after { background-size: 256px 256px; opacity: .8; }

/* =====================================================================
   Physiotherapie: waagrechtes Ticket (Mitbringen · Erstgespräch · Hausbesuch) und Foto-Wähler
   ===================================================================== */
.dm-pass { position: relative; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) minmax(0, 1fr); margin-top: 40px; border-radius: 26px; filter: drop-shadow(0 20px 36px rgba(56,26,12,.2)); }
.dm-pass > div { position: relative; box-sizing: border-box; padding: 40px; display: flex; flex-direction: column; background: rgba(255,244,228,.97); min-height: 300px; }
.dm-pass__a { border-radius: 26px 0 0 26px; background: var(--dm-terra) !important; color: #FFF0DA; }
.dm-pass__c { border-radius: 0 26px 26px 0; align-items: flex-start; }
.dm-pass > div + div::before { content: ''; position: absolute; left: -1px; top: 28px; bottom: 28px; border-left: 2px dashed rgba(147,67,29,.4); }
.dm-pass__a + .dm-pass__b::before { border-left-color: rgba(255,240,218,.0); }
.dm-pass > div + div::after { content: ''; position: absolute; left: -15px; top: -15px; width: 30px; height: 30px; border-radius: 50%; background: #F1E4D0; box-shadow: 0 calc(100% + 0px) 0 0 transparent; }
.dm-pass > div + div > .dm-pass__notch { display: none; }
.dm-pass__k { font-size: 1rem; line-height: 1.3; font-weight: 700; color: #93431D; margin-bottom: 16px; }
.dm-pass__a .dm-pass__k { color: rgba(255,240,218,.85); }
.dm-pass__big { display: block; margin-top: auto; font: 300 clamp(2.4rem, 3.8vw, 3.6rem)/1 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.035em; color: #FFF0DA; }
.dm-pass p { margin: 0; font: 500 clamp(1.3rem, 1.7vw, 1.55rem)/1.3 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.01em; color: #2A1710; max-width: 16em; }
.dm-pass .uk-button { margin-top: auto; }
.dm-pass__note { margin: 20px 0 0; }
@media (max-width: 959px) {
  .dm-pass { grid-template-columns: 1fr; margin-top: 32px; }
  .dm-pass > div { padding: 28px 24px; min-height: 0; }
  .dm-pass__a { border-radius: 26px 26px 0 0; } .dm-pass__c { border-radius: 0 0 26px 26px; }
  .dm-pass > div + div::before { left: 24px; right: 24px; top: -1px; bottom: auto; border-left: 0; border-top: 2px dashed rgba(147,67,29,.4); }
  .dm-pass > div + div::after { display: none; }
  .dm-pass__big { margin-top: 24px; font-size: 2.6rem; } .dm-pass .uk-button { margin-top: 24px; }
}

/* Foto-Wähler: das Foto füllt die ganze Fläche, Text liegt darauf */
.dm-picks--photo .dm-picks__panels { padding: 0; overflow: hidden; min-height: 500px; background: #2A1710; isolation: isolate; box-shadow: 0 24px 56px rgba(56,26,12,.22); -webkit-backdrop-filter: none; backdrop-filter: none; }
.dm-picks--photo .dm-pick { position: relative; justify-content: flex-end; padding: 40px; color: #FFF0DA; transform: none; transition: opacity .8s ease, visibility 0s .8s; }
.dm-picks--photo .dm-pick.is-on { transition: opacity .8s ease, visibility 0s; }
.dm-picks--photo .dm-pick::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(31,14,8,.15) 0%, rgba(31,14,8,0) 35%, rgba(31,14,8,.88) 100%); }
.dm-picks--photo .dm-pick__img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; max-width: none; border-radius: 0; box-shadow: none; object-fit: cover; transform: scale(1.05); transition: transform 6s cubic-bezier(.2,.6,.2,1); }
.dm-picks--photo .dm-pick.is-on .dm-pick__img { transform: scale(1); }
.dm-picks--photo .dm-pick > :not(.dm-pick__img) { max-width: 34em; }
.dm-picks--photo .dm-pick__lead { margin: 0 0 8px; color: rgba(255,240,218,.85); }
.dm-picks--photo .dm-pick__name { margin: 0 0 12px; color: #FFF0DA; text-shadow: 0 4px 40px rgba(20,8,4,.4); }
.dm-picks--photo .dm-pick p { color: rgba(255,240,218,.95); font-size: 1.2rem; }
@media (max-width: 959px) {
  .dm-picks--photo .dm-picks__panels { min-height: 420px; }
  .dm-picks--photo .dm-pick { padding: 24px; } .dm-picks--photo .dm-pick > :not(.dm-pick__img) { max-width: none; }
  .dm-picks--photo .dm-pick__img { position: absolute; width: 100%; height: 100%; aspect-ratio: auto; margin: 0; order: 0; }
}
@media (prefers-reduced-motion: reduce) { .dm-picks--photo .dm-pick, .dm-picks--photo .dm-pick__img { transition: none; } }
.dm-pass > div + div::after { display: none; }
.dm-pass > div + div::before { top: 32px; bottom: 32px; }
.dm-pass__a + .dm-pass__b::before { display: none; }
@media (max-width: 959px) { .dm-pass > div + div::before { top: 0; } .dm-pass > .dm-pass__a + .dm-pass__b::before { display: none; } .dm-pass__c { padding-top: 36px; } }

/* =====================================================================
   Physio: „Dein erster Termin“ als große Verben auf Leder, „Wobei wir dir helfen“ mit Körperfigur
   ===================================================================== */
.dm-verbs { max-width: 1360px; }
.dm-verbs__t { margin: 0 0 40px; font: 600 1.15rem/1.3 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; color: rgba(255,240,218,.78); }
.dm-verbs__list { list-style: none; margin: 0 0 48px; padding: 0; border-top: 1px solid rgba(255,240,218,.3); }
.dm-verbs__list li { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 24px 64px; align-items: center; padding: 28px 0; border-bottom: 1px solid rgba(255,240,218,.3); transition: opacity .4s; }
.dm-verbs__list:hover li { opacity: .5; } .dm-verbs__list li:hover { opacity: 1; }
.dm-verbs__v { font: 300 clamp(3rem, 8vw, 8rem)/.92 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.045em; color: #FFF0DA; transition: transform .6s cubic-bezier(.2,.8,.2,1); }
.dm-verbs__list li:hover .dm-verbs__v { transform: translateX(16px); }
.dm-verbs__d { font-size: clamp(1.15rem, 1.6vw, 1.45rem); line-height: 1.5; color: rgba(255,240,218,.9); max-width: 24em; }
.dm-verbs__d strong { display: block; margin-bottom: 4px; font: 500 clamp(1.5rem, 2.2vw, 2rem)/1.15 'Jost', 'Jost Fallback', sans-serif; color: #FFF0DA; }
.dm-verbs .dm-note { margin: 24px 0 0; color: rgba(255,240,218,.85); }
@media (max-width: 959px) { .dm-verbs__list li { grid-template-columns: 1fr; gap: 12px; padding: 24px 0; } .dm-verbs__list:hover li { opacity: 1; } }

.dm-picks--photo { grid-template-columns: minmax(0, .85fr) minmax(0, 1fr) minmax(0, 1.9fr); align-items: stretch; }
.dm-bm { position: relative; align-self: start; width: 100%; max-width: 260px; margin: 0 auto; }
.dm-bm svg { display: block; width: 100%; height: auto; }
.dm-bm .bm-s { fill: rgba(255,240,218,.55); stroke: rgba(42,23,16,.5); stroke-width: 2; stroke-linejoin: round; }
.dm-bm .bm-l { fill: none; stroke: rgba(42,23,16,.25); stroke-width: 1.5; }
.dm-bm__pin { all: unset; box-sizing: border-box; position: absolute; transform: translate(-50%, -50%); cursor: pointer; width: 44px; height: 44px; display: grid; place-items: center; }
.dm-bm__pin i { width: 18px; height: 18px; border-radius: 50%; background: #FFF0DA; box-shadow: inset 0 0 0 3px #A44E22, 0 4px 10px rgba(56,26,12,.3); transition: transform .4s cubic-bezier(.3,1.4,.5,1), background .3s; }
.dm-bm__pin.is-on i { background: #A44E22; transform: scale(1.5); box-shadow: inset 0 0 0 3px #FFF0DA, 0 0 0 7px rgba(164,78,34,.25), 0 4px 10px rgba(56,26,12,.3); }
.dm-bm__pin:hover i { transform: scale(1.3); } .dm-bm__pin.is-on:hover i { transform: scale(1.5); }
.dm-bm__pin:focus-visible { outline: 3px solid #A44E22; outline-offset: 0; border-radius: 50%; }
.dm-bm__pin span { position: absolute; left: 50%; bottom: 100%; margin-bottom: 4px; transform: translate(-50%, 6px); padding: 6px 12px; border-radius: 500px; background: #2A1710; color: #FFF0DA; font: 600 .95rem/1.2 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity .25s, transform .4s cubic-bezier(.2,.8,.2,1); }
.dm-bm__pin:hover span, .dm-bm__pin:focus-visible span { opacity: 1; transform: translate(-50%, 0); }
.dm-bm__hint { margin: 16px 0 0; text-align: center; font-size: 1rem; line-height: 1.4; font-weight: 600; color: #4D3A30; }
.dm-picks--photo .dm-picks__tabs { align-self: center; }
@media (max-width: 1199px) { .dm-picks--photo { grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); } .dm-bm { display: none; } }
@media (max-width: 959px) { .dm-picks--photo { grid-template-columns: 1fr; } }
.dm-bm__fig { position: relative; }
.dm-bm .bm-s { fill: #E9D6B8; stroke: none; }
.dm-bm svg { filter: drop-shadow(0 14px 24px rgba(56,26,12,.18)) drop-shadow(0 0 1px rgba(42,23,16,.55)); }

/* =====================================================================
   Physio „Dein erster Termin“: ruhig, zwei Spalten, drei kompakte Zeilen mit Symbol
   ===================================================================== */
.dm-first { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(32px, 6vw, 96px); align-items: center; }
#tm-main .dm-first h2 { margin: 0 0 24px; }
.dm-first__big { margin: 0 0 32px; max-width: 16em; font: 500 clamp(1.6rem, 2.4vw, 2.2rem)/1.2 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.02em; color: #2A1710; }
.dm-first .dm-stage__cta { margin: 0 0 24px; }
.dm-first .dm-note { margin: 0; max-width: 26em; }
.dm-first__list { list-style: none; margin: 0; padding: 0; }
.dm-first__list li { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 24px; align-items: center; padding: 24px 0; border-top: 1px solid rgba(42,23,16,.18); }
.dm-first__list li:last-child { border-bottom: 1px solid rgba(42,23,16,.18); }
.dm-first__ic { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--dm-terra); box-shadow: 0 8px 20px rgba(138,58,18,.28), inset 0 1px 0 rgba(255,240,218,.3); }
.dm-first__ic svg { width: 28px; height: 28px; fill: none; stroke: #FFF0DA; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.dm-first__list strong { display: block; margin-bottom: 4px; font: 500 1.5rem/1.15 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.01em; color: #2A1710; }
.dm-first__list p { margin: 0; font-size: 1.1rem; line-height: 1.5; color: #4D3A30; max-width: 28em; }
@media (max-width: 959px) { .dm-first { grid-template-columns: 1fr; gap: 32px; } .dm-first__list li { grid-template-columns: 52px minmax(0, 1fr); gap: 16px; padding: 20px 0; } .dm-first__ic { width: 52px; height: 52px; } .dm-first__ic svg { width: 24px; height: 24px; } }

/* Körperfigur als generiertes Bild (transparent) statt gezeichnetem SVG */
.dm-bm { max-width: 230px; }
.dm-bm__fig img { display: block; width: 100%; height: auto; filter: drop-shadow(0 16px 22px rgba(56,26,12,.22)); }
.dm-bm__pin i { box-shadow: inset 0 0 0 3px #A44E22, 0 0 0 3px rgba(255,240,218,.9), 0 4px 10px rgba(56,26,12,.35); }
.dm-bm__pin.is-on i { box-shadow: inset 0 0 0 3px #FFF0DA, 0 0 0 3px rgba(164,78,34,.9), 0 0 0 9px rgba(164,78,34,.25), 0 4px 10px rgba(56,26,12,.35); }


/* =====================================================================
   Kundenwunsch: Trainingsraum nach vorn, Schmerztherapie statt Wellness
   ===================================================================== */
/* Zahlenkarte im Seitenkopf */
.dm-glass--num { display: flex; flex-direction: column; align-items: flex-start; }
.dm-glass--num small { font-size: 1.1rem; font-weight: 600; color: rgba(255,240,218,.85); }
.dm-glass--num strong { font: 300 clamp(4rem, 7vw, 6.5rem)/.9 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.045em; color: #FFF0DA; }
.dm-glass--num span { margin-top: 8px; font-size: 1.15rem; color: rgba(255,240,218,.92); }

/* Zwei große Foto-Karten (Trainingsraum) */
.dm-twoc { list-style: none; margin: 40px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.dm-twoc .dm-oc { aspect-ratio: 4 / 3; }
.dm-twoc .dm-oc__body { padding: 32px; }
.dm-twoc .dm-oc__for { font-size: clamp(1.8rem, 2.8vw, 2.6rem); }
.dm-twoc .dm-oc__name { font-size: 1.15rem; }
@media (max-width: 719px) { .dm-twoc { grid-template-columns: 1fr; } .dm-twoc .dm-oc { aspect-ratio: 4 / 5; } .dm-twoc .dm-oc__body { padding: 24px; } }

/* Schmerztherapie: drei Bausteine, vier Ergänzungen */
.dm-bento--three, .dm-bento--duo { margin-top: 40px; }
.dm-bento--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dm-bento--duo { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dm-bento--three .dm-tile--s, .dm-bento--duo .dm-tile--s { grid-column: auto; grid-row: auto; }
.dm-bento--three .dm-tile--s h3 { font-size: clamp(1.7rem, 2.4vw, 2.2rem); }
@media (max-width: 959px) { .dm-bento--three, .dm-bento--duo { grid-template-columns: 1fr; } }

/* Start/Physio: Trainingsraum-Abschnitt mit Button */
.dm-room__body .dm-stage__cta { margin: 32px 0 0; }
.dm-bento--three .dm-tile__tag { margin-bottom: 0; padding-bottom: 14px; }
.dm-bento--three .dm-tile { justify-content: flex-start; }

/* Hero heller und klarer: weniger Schummer, damit er nach Physiotherapie und Training aussieht, nicht nach Wellness */
.dm-fan__img { filter: brightness(1.12) saturate(.92) contrast(1.04); }
.dm-fan__veil { background: linear-gradient(90deg, rgba(31,14,8,.62) 0%, rgba(31,14,8,.26) 42%, rgba(31,14,8,0) 68%), linear-gradient(180deg, rgba(31,14,8,.3) 0%, rgba(31,14,8,0) 22%, rgba(31,14,8,0) 55%, rgba(31,14,8,.78) 100%); }
@media (max-width: 959px) { .dm-fan__veil { background: linear-gradient(180deg, rgba(31,14,8,.5) 0%, rgba(31,14,8,.28) 40%, rgba(31,14,8,.85) 100%); } }

/* Hausbesuche nur noch als Randinfo: Hero hat drei Türen, der Hinweis ist ein kleiner Link */
.dm-fan__row { grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); }   /* Anzahl der Türen kommt aus dem Element */
.dm-fan__hint { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; }
.dm-fan__side { font-size: .95rem; font-weight: 500; color: rgba(255,240,218,.75); text-decoration: underline; text-underline-offset: 4px; text-decoration-color: rgba(255,240,218,.35); transition: color .25s; }
.dm-fan__side:hover, .dm-fan__side:focus-visible { color: #FFF0DA; }
.dm-first__side { margin: 24px 0 0; font-size: 1rem; color: #4D3A30; }
.dm-first__side a { color: #93431D; font-weight: 600; text-underline-offset: 4px; }
@media (max-width: 959px) { .dm-fan__row { grid-template-columns: 1fr; } .dm-fan__hint { flex-direction: column; gap: 4px; align-items: flex-start; } }
@media (min-width: 960px) { .dm-first__side { grid-column: 2; margin: -8px 0 0; } .dm-first { row-gap: 0; } }

/* Hero: Status-Zeile (Eröffnung / Standorte) */
.dm-fan__text .dm-fan__status { margin: 0 0 16px; font-size: 1rem; line-height: 1.4; font-weight: 400; color: rgba(255,240,218,.96); text-shadow: 0 2px 24px rgba(20,8,4,.5); }
.dm-fan__text .dm-fan__status strong { display: inline-block; margin-right: 8px; padding: 4px 14px; border-radius: 500px; border: 1px solid rgba(255,240,218,.5); font-weight: 600; }
@media (max-width: 959px) { .dm-fan__text .dm-fan__status .dm-fan__more { display: none; } }

/* Wobei wir dir helfen: Textspalte breiter, Figur schmaler, kein Umbruch der Anliegen */
@media (min-width: 1200px) {
  .dm-picks--photo { grid-template-columns: 200px minmax(0, 1fr) minmax(0, 1.5fr); }
  .dm-picks--photo .dm-bm { max-width: 200px; }
  .dm-picks--photo .dm-pickbtn { font-size: clamp(1.4rem, 1.9vw, 1.75rem); }
  .dm-picks--photo .dm-pickbtn[aria-selected="true"] { padding-left: 1rem; }
}

/* Logo (früher axio): Wortmarke (inline SVG, folgt der Textfarbe) | Haarlinie | Descriptor zweizeilig.
   Maße aus der Leiste: Bedienelemente 38px hoch auf einer Achse, Schrift Jost 500 Versalien, Sperrung .1em. */
.tm-header .uk-logo, .tm-header-mobile .uk-logo { display: flex; flex-direction: row; align-items: center; gap: 14px; }
.tm-header .uk-logo svg, .tm-header-mobile .uk-logo svg { display: block; order: 0; height: 30px; width: auto; transform: translateY(-3px); } /* x-Höhe der Buchstaben auf die Achse, nicht die Box mit dem i-Punkt */
.tm-header .uk-logo::before, .tm-header-mobile .uk-logo::before { content: ''; order: 1; width: 1px; height: 30px; background: currentColor; opacity: .35; }
.tm-header .uk-logo::after, .tm-header-mobile .uk-logo::after { content: 'Physiotherapie\A& Training'; order: 2; white-space: pre; font: 500 12px/15px 'Jost', 'Jost Fallback', sans-serif; letter-spacing: .1em; text-transform: uppercase; opacity: .85; }
.tm-footer .el-image[uk-svg], .tm-footer svg.el-image { display: block; }
.dm-sub { font: 500 .875rem/1.4 'Jost', 'Jost Fallback', sans-serif; letter-spacing: .1em; text-transform: uppercase; }

/* Navigationsleiste: seitlicher Innenabstand an oben/unten angleichen (Bedienelemente 38px in 80px = 21px; Ecken-Radius 40 → konzentrisch bei 21–24px) */
body .tm-header .uk-navbar-container > .uk-container, body .tm-header-mobile .uk-navbar-container > .uk-container { padding-left: 24px !important; padding-right: 24px !important; } /* Plugin liquid-glass-nav setzt 14px mit !important */
/* Schmale Desktop-Breiten (1200–1399px): Menü ist mittig zentriert, links/rechts muss Platz bleiben */
@media (min-width: 1200px) and (max-width: 1399px) {
  .tm-header .uk-logo::before, .tm-header .uk-logo::after { display: none; }
}
@media (min-width: 1200px) and (max-width: 1299px) {
  body .tm-header .uk-navbar-container > .uk-container { padding-left: 20px !important; padding-right: 20px !important; }
  body .tm-header .uk-navbar-nav > li > a { padding-left: 14px !important; padding-right: 14px !important; }
}

/* Logo-SVG nicht an der Zeichenflächenkante beschneiden (Wortmarke endet exakt auf der Kante, Subpixel-Rendering schnitt das o an) */
.tm-header .uk-logo svg, .tm-header-mobile .uk-logo svg, .tm-footer svg.el-image, svg.el-image[uk-svg] { overflow: visible; }

/* Footer als abgesetzte Platte: Kanten auf der Inhaltsspalte der Seite (40px Rand, max. 1360px), Rundung 40px.
   Innenabstand > Radius (56px), damit nichts an der Rundung klebt. Setzt sich auf jeder Seite ab (davor Dunkelrot oder Hell). */
.dm-footplate { margin: 40px auto; width: calc(100% - 80px); max-width: 1360px; border-radius: 40px; overflow: hidden; }
.dm-footplate .uk-container { padding-left: 0; padding-right: 0; }
@media (max-width: 959px) { .dm-footplate { margin: 30px auto; width: calc(100% - 60px); } }
@media (max-width: 639px) { .dm-footplate { margin: 15px auto; width: calc(100% - 30px); border-radius: 28px; } }

/* ===== Footer (Platte) – Raster: 8px-Skala (8/16/24/40/56), Schrift wie die Leiste (Jost 500, Versalien, .1em) ===== */
.dm-footplate { padding-top: 0; padding-bottom: 0; }
.dm-ft { --ft-line: rgba(255,240,218,.14); padding: 48px 64px 24px; color: rgba(255,240,218,.92); }
.dm-ft a { color: inherit; text-decoration: none; }
.dm-ft ul { list-style: none; margin: 0; padding: 0; }
.dm-ft p { margin: 0; }
.dm-ft__label { display: block; margin-bottom: 12px; font: 500 12px/16px 'Jost', 'Jost Fallback', sans-serif; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,240,218,.6); }
/* oben: Marke links, Kontakt und Button rechts */
.dm-ft__top { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: center; column-gap: 40px; padding-bottom: 32px; }
.dm-ft__logo { grid-column: 1 / 3; justify-self: start; display: flex; align-items: center; gap: 16px; }
.dm-ft__contact { grid-column: 3; }
.dm-ft__cta { grid-column: 4; justify-self: start; }
.dm-ft__tel { font: 400 clamp(1.75rem, 2.4vw, 2.25rem)/1.1 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.01em; color: #FFF0DA; }
.dm-ft .dm-ft__mail { margin-top: 8px; font-size: 1.0625rem; line-height: 1.4; color: rgba(255,240,218,.78); }
.dm-ft__cta { white-space: nowrap; }
/* Mitte: vier Spalten auf gemeinsamer Linie */
.dm-ft__cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 40px; padding: 32px 0; border-top: 1px solid var(--ft-line); }
.dm-ft__cols li + li { margin-top: 4px; }
.dm-ft__cols a, .dm-ft__cols p { font-size: 1.0625rem; line-height: 1.5; }
.dm-ft__cols a { display: inline-block; padding: 2px 0; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .3s cubic-bezier(.2,.7,.2,1); }
.dm-ft__cols a:hover, .dm-ft__cols a:focus-visible { background-size: 100% 1px; }
.dm-ft__cols .dm-ft__note { margin-top: 8px; color: rgba(255,240,218,.68); }
/* unten: Linie, Rechtliches, Nach oben */
.dm-ft__bar { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding-top: 20px; border-top: 1px solid var(--ft-line); font-size: .9375rem; line-height: 1.4; color: rgba(255,240,218,.62); }
.dm-ft__bar nav { display: flex; gap: 24px; }
.dm-ft__bar a:hover { color: #FFF0DA; }
.dm-ft__top-link { justify-self: end; }
@media (max-width: 959px) {
  .dm-ft { padding: 56px 40px 28px; }
  .dm-ft__top { grid-template-columns: 1fr; row-gap: 24px; justify-items: start; padding-bottom: 40px; }
  .dm-ft__logo, .dm-ft__contact, .dm-ft__cta { grid-column: 1; }
  .dm-ft__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 40px; }
  .dm-ft__bar { grid-template-columns: 1fr; row-gap: 16px; justify-items: start; }
  .dm-ft__top-link { justify-self: start; }
}
@media (max-width: 639px) { .dm-ft { padding: 40px 24px 24px; } }
@media (max-width: 479px) { .dm-ft__cols { grid-template-columns: 1fr; row-gap: 32px; } .dm-ft__bar nav { flex-wrap: wrap; gap: 8px 24px; } }

/* ===== Gestrichelte Linien zentriert ===== */
/* Ablauf (Zahlen und Wörter): Beschriftung mittig in ihrer Spalte, Linie genau unter der Spaltenmitte, oben und unten gleicher Abstand (8px) */
.dm-flow b { text-align: center; }
.dm-flow li:not(:last-child)::before { left: calc(1.8rem - 1px); top: 3.3rem; bottom: .2rem; }
.dm-flow--words li:not(:last-child)::before { left: calc(3.3rem - 1px); top: 2.35rem; bottom: 0; }
/* Einwilligungs-Schalter: Linie läuft durch die Mitte der Karten, der Schalter sitzt auf der Linie, die Beschriftung darunter */
@media (min-width: 960px) {
  .dm-consent__link { align-self: stretch; display: grid; place-items: center; padding: 0 .4rem; }
  .dm-consent__line { position: absolute; left: .4rem; right: .4rem; top: 50%; width: auto; margin-top: -1.5px;
    -webkit-mask: linear-gradient(90deg, #000 calc(50% - 3rem), transparent calc(50% - 3rem) calc(50% + 3rem), #000 calc(50% + 3rem)); mask: linear-gradient(90deg, #000 calc(50% - 3rem), transparent calc(50% - 3rem) calc(50% + 3rem), #000 calc(50% + 3rem)); }
  .dm-switch { position: relative; display: block; margin: 0; width: 4rem; height: 2.2rem; }
  .dm-switch b { display: block; }
  .dm-switch span { position: absolute; top: calc(100% + .75rem); left: 50%; transform: translateX(-50%); width: max-content; max-width: 19rem; text-align: center; white-space: nowrap; }
}

/* Footer-Logo: gleiche Variante wie in der Leiste (Wortmarke | Haarlinie | zweizeilige Unterzeile), 1,2-fach */
.dm-ft__logo svg, .dm-ft__logo img { display: block; height: 36px; width: auto; overflow: visible; transform: translateY(-3.6px); }
.dm-ft__rule { display: block; width: 1px; height: 36px; background: currentColor; opacity: .35; }
.dm-ft__sub { font: 500 14px/18px 'Jost', 'Jost Fallback', sans-serif; letter-spacing: .1em; text-transform: uppercase; opacity: .85; white-space: nowrap; }

/* ===== Trainingsraum: Bereiche, Geräte, Spezifikation, freier Bereich ===== */
#tm-main .dm-areas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-top: 40px; }
#tm-main .dm-area { position: relative; display: block; aspect-ratio: 4 / 5; max-height: 720px; border-radius: 28px; overflow: hidden; isolation: isolate; color: #FFF0DA; text-decoration: none; background: #2A1710; box-shadow: 0 18px 40px rgba(56,26,12,.2); }
#tm-main .dm-area img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transform: scale(1.02); transition: transform 1.4s var(--dm-ease); }
#tm-main .dm-area::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(31,14,8,.35) 0%, rgba(31,14,8,0) 28%, rgba(31,14,8,.5) 58%, rgba(31,14,8,.92) 100%); }
#tm-main .dm-area:hover img, #tm-main .dm-area:focus-visible img { transform: scale(1.07); }
#tm-main .dm-area:focus-visible { outline: 3px solid #A44E22; outline-offset: 3px; }
#tm-main .dm-area__tag { position: absolute; top: 24px; left: 24px; padding: 8px 18px; border-radius: 999px; font: 500 .8rem/1 'Jost', 'Jost Fallback', sans-serif; letter-spacing: .1em; text-transform: uppercase; background: rgba(255,240,218,.16); box-shadow: inset 0 0 0 1px rgba(255,240,218,.4), inset 0 1px 0 rgba(255,240,218,.3); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
#tm-main .dm-area__body { position: absolute; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; gap: 12px; padding: 32px; }
#tm-main .dm-area__body strong { font: 500 clamp(1.9rem, 3vw, 2.9rem)/1.05 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.02em; max-width: 14ch; }
#tm-main .dm-area__body span { max-width: 34ch; font-size: 1.1rem; line-height: 1.5; color: rgba(255,240,218,.92); }

#tm-main .dm-gear { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; align-items: start; margin-top: 40px; }
#tm-main .dm-gear__list { border-top: 1px solid rgba(42,23,16,.2); }
#tm-main .dm-gearbtn { all: unset; box-sizing: border-box; cursor: pointer; display: grid; grid-template-columns: 3rem 1fr; column-gap: 8px; width: 100%; padding: 1.3rem 0; border-bottom: 1px solid rgba(42,23,16,.2); transition: padding .4s var(--dm-ease), color .3s; }
#tm-main .dm-gearbtn__n { grid-row: 1 / 3; font: 500 1rem/2.2 'Jost', 'Jost Fallback', sans-serif; color: #93431D; }
#tm-main .dm-gearbtn__t { font: 500 clamp(1.6rem, 2.4vw, 2.2rem)/1.1 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.015em; color: #2A1710; }
#tm-main .dm-gearbtn__f { font-size: 1.1rem; color: #4D3A30; }
#tm-main .dm-gearbtn:hover .dm-gearbtn__t { color: #93431D; }
#tm-main .dm-gearbtn[aria-selected="true"] { padding-left: 1.2rem; box-shadow: inset 4px 0 0 #A44E22; }
#tm-main .dm-gearbtn[aria-selected="true"] .dm-gearbtn__t { color: #93431D; font-weight: 600; }
#tm-main .dm-gearbtn:focus-visible { outline: 3px solid #A44E22; outline-offset: -3px; }
#tm-main .dm-gear__stage { position: relative; aspect-ratio: 3 / 2; border-radius: 28px; overflow: hidden; isolation: isolate; background: #2A1710; box-shadow: 0 18px 40px rgba(56,26,12,.2); }
#tm-main .dm-gearfig { position: absolute; inset: 0; margin: 0; opacity: 0; visibility: hidden; transition: opacity .7s var(--dm-ease), visibility 0s .7s; color: #FFF0DA; }
#tm-main .dm-gearfig.is-on { opacity: 1; visibility: visible; transition: opacity .7s var(--dm-ease); }
#tm-main .dm-gearfig img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); transition: transform 6s var(--dm-ease); }
#tm-main .dm-gearfig.is-on img { transform: scale(1); }
#tm-main .dm-gearfig::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(31,14,8,0) 45%, rgba(31,14,8,.9) 100%); }
#tm-main .dm-gearfig figcaption { position: absolute; z-index: 1; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; gap: 8px; padding: 32px; }
#tm-main .dm-gearfig strong { font: 500 clamp(1.7rem, 2.6vw, 2.4rem)/1.05 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.015em; }
#tm-main .dm-gearfig figcaption span { max-width: 46ch; font-size: 1.1rem; line-height: 1.5; color: rgba(255,240,218,.95); }

#tm-main .dm-spec { list-style: none; margin: 40px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border-top: 1px solid rgba(255,240,218,.3); }
#tm-main .dm-spec li { padding: 32px 28px 8px 0; }
#tm-main .dm-spec li + li { padding-left: 28px; border-left: 1px solid rgba(255,240,218,.2); }
#tm-main .dm-spec b { display: block; font: 500 clamp(1.5rem, 2.2vw, 2rem)/1.1 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.015em; color: #FFF0DA; }
#tm-main .dm-spec p { margin: 12px 0 0; font-size: 1.1rem; line-height: 1.55; color: rgba(255,240,218,.88); }

#tm-main .dm-free { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 40px; }
#tm-main .dm-free__f { position: relative; margin: 0; aspect-ratio: 3 / 4; border-radius: 28px; overflow: hidden; isolation: isolate; color: #FFF0DA; background: #2A1710; box-shadow: 0 18px 40px rgba(56,26,12,.2); }
#tm-main .dm-free__f:nth-child(2) { margin-top: 40px; }
#tm-main .dm-free__f img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--dm-ease); }
#tm-main .dm-free__f::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(31,14,8,.1) 0%, rgba(31,14,8,0) 30%, rgba(31,14,8,.6) 62%, rgba(31,14,8,.93) 100%); }
#tm-main .dm-free__f:hover img { transform: scale(1.07); }
#tm-main .dm-free__f figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 28px; display: flex; flex-direction: column; gap: 8px; }
#tm-main .dm-free__f span { font-size: 1rem; font-weight: 700; color: #F2B589; }
#tm-main .dm-free__f strong { font: 500 clamp(1.9rem, 2.8vw, 2.6rem)/1.05 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.02em; }
#tm-main .dm-free__f p { margin: 0; font-size: 1.1rem; line-height: 1.5; color: rgba(255,240,218,.92); }
@media (max-width: 1199px) { #tm-main .dm-spec { grid-template-columns: repeat(2, minmax(0, 1fr)); } #tm-main .dm-spec li:nth-child(3) { padding-left: 0; border-left: 0; } #tm-main .dm-spec li:nth-child(n+3) { border-top: 1px solid rgba(255,240,218,.2); margin-top: 24px; } }
@media (max-width: 959px) {
  #tm-main .dm-areas, #tm-main .dm-free { grid-template-columns: 1fr; }
  #tm-main .dm-area { aspect-ratio: 4 / 5; }
  #tm-main .dm-free__f { aspect-ratio: 4 / 5; } #tm-main .dm-free__f:nth-child(2) { margin-top: 0; }
  #tm-main .dm-gear { grid-template-columns: 1fr; gap: 24px; } #tm-main .dm-gear__stage { order: -1; }
}
@media (max-width: 639px) { #tm-main .dm-spec { grid-template-columns: 1fr; } #tm-main .dm-spec li, #tm-main .dm-spec li + li { padding: 24px 0 0; border-left: 0; } #tm-main .dm-spec li + li { border-top: 1px solid rgba(255,240,218,.2); margin-top: 24px; } }
@media (prefers-reduced-motion: reduce) { #tm-main .dm-gearfig, #tm-main .dm-gearfig img, #tm-main .dm-area img, #tm-main .dm-free__f img { transition: none; } }

/* ===== Karten (OpenStreetMap, vorgerendert und in Hausfarben eingefärbt) ===== */
.dm-phero__map { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dm-phero--forest:has(.dm-phero__map) .dm-phero__veil { background: linear-gradient(90deg, rgba(23,34,15,.78) 0%, rgba(23,34,15,.35) 42%, rgba(23,34,15,0) 70%), linear-gradient(180deg, rgba(23,34,15,.45) 0%, rgba(23,34,15,0) 24%, rgba(23,34,15,0) 78%, rgba(23,34,15,.5) 100%); }
.dm-osm { position: absolute; z-index: 2; right: 16px; bottom: 12px; padding: 4px 12px; border-radius: 999px; font-size: .8rem; line-height: 1.4; color: rgba(255,240,218,.9); background: rgba(23,34,15,.55); text-decoration: none; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.dm-osm:hover, .dm-osm:focus-visible { color: #fff; text-decoration: underline; }
.dm-osm-note { margin: 16px 0 0; font-size: .85rem; color: #6A5646; }
.dm-osm-note a { color: inherit; }
.dm-loc__map { position: absolute; z-index: -1; left: 0; right: 0; top: 0; height: 62%; pointer-events: none; opacity: .55; -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 45%, transparent 100%); mask-image: linear-gradient(180deg, #000 0%, #000 45%, transparent 100%); }
.dm-loc__map img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* Team: Silhouetten statt Fotos */
.dm-arch__sil { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: 88%; color: #FFF0DA; opacity: .24; }

/* Öffnungszeiten: Kurzzeile auf den Standort-Karten, mehrere Absätze im Kontakt-Kasten */
.dm-loc__hrs { display: block; margin-top: 4px; font-size: 1.05rem; line-height: 1.4; color: rgba(255,240,218,.8); }
.dm-glass--hours p + p { margin-top: 12px; }
.dm-glass--hours p strong { font-weight: 600; }
.dm-phero .dm-glass--hours p { font-size: 1.3rem; line-height: 1.4; }
.dm-phero .dm-glass--hours p strong { display: block; margin-bottom: 2px; font: 600 1.05rem/1.3 'Jost', 'Jost Fallback', sans-serif; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,240,218,.78); }

/* ===== Mobile Navigation (Vollbild, unter 1200px) =====
   Ersetzt die UIkit-Dropbar. Aufbau: Leiste (Logo, Schließen) | große Wörter mit Unterseiten als Pillen | Fuß (Status, Termin).
   Ein Antippen pro Ziel, keine Akkordeons. Daumenzone unten. */
@media (max-width: 1199px) { #tm-dialog-mobile { display: none !important; } }
html { scrollbar-gutter: stable; }   /* Scrollbar-Spur bleibt reserviert, damit die Seite beim Sperren des Scrollens (Menü, Anruf-Sheet) nicht springt */
html.dm-mnav-open { overflow: hidden; }
.dm-mnav { --lg-text: #FFF0DA; position: fixed; inset: 0; z-index: 100000; box-sizing: border-box; height: 100vh; height: 100dvh; display: flex; flex-direction: column; color: #FFF0DA; background: linear-gradient(330deg, #4A1620, #2B0A10); isolation: isolate; clip-path: circle(0 at calc(100% - 44px) 50px); transition: clip-path .55s cubic-bezier(.7,0,.2,1); }
.dm-mnav[hidden] { display: none; }
.dm-mnav.is-on { clip-path: circle(150vmax at calc(100% - 44px) 50px); }
.dm-mnav::before { content: ''; position: absolute; z-index: -1; inset: 0; background-image: var(--dm-leather); background-size: 256px 256px; mix-blend-mode: soft-light; opacity: .8; pointer-events: none; }
.dm-mnav::after { content: ''; position: absolute; z-index: -1; right: -30%; top: -12%; width: 90vw; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(196,100,47,.32), rgba(196,100,47,0) 68%); pointer-events: none; }
.dm-mnav__bar { flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; height: 80px; margin: 10px 12px 0; padding: 0 12px 0 24px; }
.dm-mnav__logo { display: flex; flex-direction: row; align-items: center; gap: 14px; color: #FFF0DA; text-decoration: none; }
.dm-mnav__logo svg { display: block; height: 30px; width: auto; transform: translateY(-3px); }
.dm-mnav__logo::before { content: ''; order: 1; width: 1px; height: 30px; background: currentColor; opacity: .35; }
.dm-mnav__logo::after { content: 'Physiotherapie\A& Training'; order: 2; white-space: pre; font: 500 12px/15px 'Jost', 'Jost Fallback', sans-serif; letter-spacing: .1em; text-transform: uppercase; opacity: .85; }
.dm-mnav__x { all: unset; box-sizing: border-box; cursor: pointer; width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; color: #FFF0DA; background: rgba(255,240,218,.12); box-shadow: inset 0 0 0 1px rgba(255,240,218,.34), inset 0 1px 0 rgba(255,240,218,.3); -webkit-tap-highlight-color: transparent; transition: transform .45s cubic-bezier(.2,.8,.2,1), background .3s; }
.dm-mnav__x:active { transform: scale(.92) rotate(90deg); background: rgba(255,240,218,.22); }
.dm-mnav__x:focus-visible, .dm-mnav a:focus-visible { outline: 3px solid #F2B589; outline-offset: 3px; border-radius: 12px; }
.dm-mnav__nav { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: clamp(8px, 3svh, 32px) 24px 16px; display: flex; flex-direction: column; justify-content: center; }
.dm-mnav__nav ul { list-style: none; margin: 0; padding: 0; }
.dm-mnav__i { padding: clamp(6px, 1.6svh, 14px) 0; opacity: 0; transform: translateY(26px); transition: opacity .5s ease, transform .6s cubic-bezier(.2,.8,.2,1); }
.dm-mnav.is-on .dm-mnav__i { opacity: 1; transform: none; transition-delay: calc(.16s + var(--i) * .06s); }
.dm-mnav__a { display: inline-block; font: 500 clamp(2.5rem, 12.5vw, 3.7rem)/1.02 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.025em; color: #FFF0DA; text-decoration: none; -webkit-tap-highlight-color: transparent; transition: color .25s, transform .35s cubic-bezier(.2,.8,.2,1); }
a.dm-mnav__a:active { color: #F2B589; transform: translateX(6px); }
.dm-mnav__a[aria-current="page"], .dm-mnav__a.is-here { color: #F2B589; }
.dm-mnav__a[aria-current="page"]::after, .dm-mnav__a.is-here::after { content: ''; display: inline-block; width: .16em; height: .16em; margin-left: .22em; border-radius: 50%; background: currentColor; vertical-align: .32em; }
.dm-mnav__sub { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.dm-mnav__sub a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 20px; border-radius: 999px; font: 500 1.05rem/1 'Work Sans', 'Atkinson Hyperlegible Next', 'Atkinson Fallback', system-ui, sans-serif; color: #FFF0DA; text-decoration: none; background: rgba(255,240,218,.12); box-shadow: inset 0 0 0 1px rgba(255,240,218,.34), inset 0 1px 0 rgba(255,240,218,.28); -webkit-tap-highlight-color: transparent; transition: background .25s; }
.dm-mnav__sub a:active { background: rgba(255,240,218,.26); }
.dm-mnav__sub a[aria-current="page"] { background: rgba(242,181,137,.22); box-shadow: inset 0 0 0 1px rgba(242,181,137,.7); color: #FFE2C6; }
.dm-mnav__foot { flex: 0 0 auto; padding: 16px 24px calc(20px + env(safe-area-inset-bottom)); border-top: 1px solid rgba(255,240,218,.2); opacity: 0; transform: translateY(20px); transition: opacity .5s ease .45s, transform .6s cubic-bezier(.2,.8,.2,1) .45s; }
.dm-mnav.is-on .dm-mnav__foot { opacity: 1; transform: none; }
.dm-mnav__status { list-style: none; margin: 0 0 16px; padding: 0; display: grid; gap: 6px; font-size: 1rem; line-height: 1.35; color: rgba(255,240,218,.85); }
.dm-mnav__status li { display: flex; align-items: baseline; gap: 10px; }
.dm-mnav__status i { flex: 0 0 auto; width: 9px; height: 9px; border-radius: 50%; background: rgba(255,240,218,.4); transform: translateY(-1px); }
.dm-mnav__status .is-open i { background: #8FD08A; box-shadow: 0 0 0 4px rgba(143,208,138,.25); }
.dm-mnav__status strong { color: #FFF0DA; font-weight: 700; margin-right: .25em; }
.dm-mnav .dm-mnav__cta { display: flex; align-items: center; justify-content: center; width: 100%; box-sizing: border-box; min-height: 56px; margin: 0; font-size: 1.05rem; }
@media (max-height: 800px) { .dm-mnav__a { font-size: clamp(2rem, min(12.5vw, 5.6svh), 3.7rem); } .dm-mnav__i { padding: clamp(3px, .9svh, 10px) 0; } .dm-mnav__nav { padding-top: 6px; padding-bottom: 6px; } .dm-mnav__sub a { min-height: 40px; } .dm-mnav__status { display: none; } .dm-mnav__foot { padding-top: 12px; } }
@media (max-height: 640px) { .dm-mnav__a { font-size: clamp(2rem, 10.5vw, 2.8rem); } .dm-mnav__bar { height: 72px; } .dm-mnav__status { display: none; } }
@media (min-width: 640px) { .dm-mnav__nav, .dm-mnav__foot { padding-left: 48px; padding-right: 48px; } .dm-mnav__bar { margin: 10px 28px 0; } }
@media (prefers-reduced-motion: reduce) { .dm-mnav, .dm-mnav__i, .dm-mnav__foot { transition: opacity .2s; transform: none; clip-path: none; } .dm-mnav { opacity: 0; } .dm-mnav.is-on { opacity: 1; clip-path: none; } .dm-mnav__i, .dm-mnav__foot { opacity: 1; } }

.dm-mnav .dm-mnav__logo, .dm-mnav .dm-mnav__logo:hover { color: #FFF0DA !important; }
.dm-mnav .dm-mnav__logo svg, .dm-mnav .dm-mnav__logo svg * { fill: currentColor; }

/* Mobile Navi: Theme-Linkfarben (Hover/Visited/Fokus, auf Touch bleibt :hover hängen) dürfen die Menüfarben nicht überschreiben */
.dm-mnav a.dm-mnav__a, .dm-mnav a.dm-mnav__a:visited, .dm-mnav a.dm-mnav__a:hover, .dm-mnav a.dm-mnav__a:focus { color: #FFF0DA !important; }
.dm-mnav a.dm-mnav__a[aria-current="page"], .dm-mnav .dm-mnav__a.is-here { color: #F2B589 !important; }
.dm-mnav .dm-mnav__sub a, .dm-mnav .dm-mnav__sub a:visited, .dm-mnav .dm-mnav__sub a:hover, .dm-mnav .dm-mnav__sub a:focus { color: #FFF0DA !important; text-decoration: none; }
.dm-mnav .dm-mnav__sub a[aria-current="page"] { color: #FFE2C6 !important; }
.dm-mnav .dm-mnav__cta, .dm-mnav .dm-mnav__cta:hover, .dm-mnav .dm-mnav__cta:focus { color: #FFF0DA; }
@media (hover: hover) { .dm-mnav a.dm-mnav__a:hover { color: #F2B589 !important; } }

/* Mobile Navi, Feinschliff: kein Punkt hinter der aktuellen Seite, Unterseiten als ruhige Textlinks statt Pillen */
.dm-mnav__a[aria-current="page"]::after, .dm-mnav__a.is-here::after { content: none; display: none; }
.dm-mnav__sub { gap: 4px 28px; margin-top: 6px; }
.dm-mnav .dm-mnav__sub a { min-height: 44px; padding: 0; border-radius: 0; background: none; box-shadow: none; font-size: 1.1rem; gap: 10px; color: rgba(255,240,218,.88) !important; }
.dm-mnav .dm-mnav__sub a::before { content: ''; flex: 0 0 auto; width: 18px; height: 1.5px; background: currentColor; opacity: .6; transition: width .3s cubic-bezier(.2,.8,.2,1), opacity .3s; }
.dm-mnav .dm-mnav__sub a:active::before { width: 28px; opacity: 1; }
.dm-mnav .dm-mnav__sub a:active { background: none; color: #F2B589 !important; }
.dm-mnav .dm-mnav__sub a[aria-current="page"] { background: none; box-shadow: none; color: #F2B589 !important; }

/* Mobile Navi: Untermenüs eingeklappt, öffnen mit dem Hauptpunkt, Einträge untereinander */
.dm-mnav button.dm-mnav__t { all: unset; box-sizing: border-box; cursor: pointer; display: inline-flex; align-items: center; gap: .28em; font: 500 clamp(2.5rem, 12.5vw, 3.7rem)/1.02 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.025em; color: #FFF0DA; -webkit-tap-highlight-color: transparent; transition: color .25s; }
.dm-mnav button.dm-mnav__t:focus-visible { outline: 3px solid #F2B589; outline-offset: 4px; border-radius: 12px; }
.dm-mnav button.dm-mnav__t.is-here { color: #F2B589; }
.dm-mnav button.dm-mnav__t:active { color: #F2B589; }
.dm-mnav__chev { flex: 0 0 auto; width: .36em; height: .36em; margin-top: .08em; opacity: .75; transition: transform .45s cubic-bezier(.2,.8,.2,1); }
.dm-mnav__t[aria-expanded="true"] .dm-mnav__chev { transform: rotate(180deg); }
.dm-mnav__subw { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .5s cubic-bezier(.2,.8,.2,1); }
.dm-mnav__t[aria-expanded="true"] + .dm-mnav__subw { grid-template-rows: 1fr; }
.dm-mnav__subw > div { overflow: hidden; min-height: 0; }
.dm-mnav__subw .dm-mnav__sub { display: flex; flex-direction: column; gap: 0; margin: 0; padding: 6px 0 4px 2px; opacity: 0; transform: translateY(-8px); transition: opacity .3s, transform .45s cubic-bezier(.2,.8,.2,1); }
.dm-mnav__t[aria-expanded="true"] + .dm-mnav__subw .dm-mnav__sub { opacity: 1; transform: none; transition-delay: .08s; }
.dm-mnav__subw:not(:has(+ *)) { visibility: visible; }
.dm-mnav__t[aria-expanded="false"] + .dm-mnav__subw { visibility: hidden; transition: grid-template-rows .5s cubic-bezier(.2,.8,.2,1), visibility 0s .5s; }
@media (prefers-reduced-motion: reduce) { .dm-mnav__subw, .dm-mnav__subw .dm-mnav__sub, .dm-mnav__chev { transition: none; } }

/* ===== Mobil: Kontrast-Overlay über Hero-Bildern =====
   Gemessen bei 390px (WCAG-Kontrast Text/Bild-Hintergrund, ungünstigste 5 % der Pixel). Mobil darf das Bild zugunsten der Lesbarkeit dunkler werden. */
@media (max-width: 959px) {
  body .dm-fan__veil { background: linear-gradient(180deg, rgba(31,14,8,.72) 0%, rgba(31,14,8,.66) 40%, rgba(31,14,8,.92) 100%); }
  body .dm-phero__veil { background: linear-gradient(180deg, rgba(31,14,8,.66) 0%, rgba(31,14,8,.6) 40%, rgba(31,14,8,.92) 100%); }
  body .dm-phero--forest:has(.dm-phero__map) .dm-phero__veil { background: linear-gradient(180deg, rgba(23,34,15,.7) 0%, rgba(23,34,15,.64) 40%, rgba(23,34,15,.92) 100%); }
  body .dm-phero:not(:has(img)) .dm-phero__veil { background: linear-gradient(180deg, rgba(31,14,8,.3) 0%, rgba(31,14,8,.38) 100%); }
  body .dm-band__veil { background: linear-gradient(180deg, rgba(31,14,8,.6) 0%, rgba(31,14,8,.7) 100%); }
}

/* Mobil/Tablet (<1200px): die Leiste (10–90px) liegt über dem Hero, der Kopf muss darunter beginnen, sonst verschwindet die erste H1-Zeile */
@media (max-width: 1199px) { body .dm-phero { padding-top: 112px; } }
@media (max-width: 959px) {
  body .dm-fan__veil { background: linear-gradient(180deg, rgba(31,14,8,.78) 0%, rgba(31,14,8,.68) 40%, rgba(31,14,8,.92) 100%); }
  body .dm-phero__veil { background: linear-gradient(180deg, rgba(31,14,8,.72) 0%, rgba(31,14,8,.64) 40%, rgba(31,14,8,.92) 100%); }
  body .dm-phero--forest:has(.dm-phero__map) .dm-phero__veil { background: linear-gradient(180deg, rgba(23,34,15,.76) 0%, rgba(23,34,15,.68) 40%, rgba(23,34,15,.92) 100%); }
  body .dm-fan__status strong { background: rgba(31,14,8,.55); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
}
@media (max-width: 480px) { .dm-phero .dm-glass--hours p { font-size: 1.12rem; } }

/* Mobile Navi: Plus, das beim Öffnen zum Minus wird (statt Chevron) */
.dm-mnav__chev { display: none; }
.dm-mnav__pm { position: relative; flex: 0 0 auto; width: .3em; height: .3em; margin: .1em 0 0 .06em; color: #F2B589; }
.dm-mnav__pm::before, .dm-mnav__pm::after { content: ''; position: absolute; left: 0; top: 50%; width: 100%; height: 2px; margin-top: -1px; border-radius: 2px; background: currentColor; transition: transform .5s cubic-bezier(.2,.8,.2,1); }
.dm-mnav__pm::after { transform: rotate(90deg); }
.dm-mnav__t[aria-expanded="true"] .dm-mnav__pm::after { transform: rotate(0deg) scaleX(0); }
.dm-mnav__t[aria-expanded="true"] .dm-mnav__pm::before { transform: rotate(180deg); }
@media (prefers-reduced-motion: reduce) { .dm-mnav__pm::before, .dm-mnav__pm::after { transition: none; } }

/* Mobile Navi v3: kein Symbol. Hinter dem Wort steht ein kurzer Strich (dasselbe Motiv wie vor den Unterpunkten).
   Beim Öffnen läuft der Strich bis zum Zeilenende und die Unterpunkte hängen daran. Die ganze Zeile ist die Tippfläche. */
.dm-mnav button.dm-mnav__t { display: flex; width: 100%; gap: .3em; }
.dm-mnav__pm { flex: 0 0 26px; flex-grow: 0; width: auto; height: 1.5px; margin: .12em 0 0; border-radius: 2px; color: #F2B589; background: currentColor; opacity: .85; transition: flex-grow .65s cubic-bezier(.65,0,.2,1), flex-basis .35s cubic-bezier(.2,.8,.2,1), opacity .3s; }
.dm-mnav__pm::before, .dm-mnav__pm::after { content: none; }
.dm-mnav button.dm-mnav__t:active .dm-mnav__pm { flex-basis: 40px; }
.dm-mnav__t[aria-expanded="true"] .dm-mnav__pm { flex-grow: 1; opacity: .45; }
.dm-mnav__t[aria-expanded="true"] { color: #F2B589; }
@media (prefers-reduced-motion: reduce) { .dm-mnav__pm { transition: none; } }

/* Mobile Navi v3b: der Strich liegt unter dem Wort (lange Wörter füllen die Zeile), wächst beim Öffnen auf volle Breite */
.dm-mnav button.dm-mnav__t { flex-direction: column; align-items: flex-start; gap: 0; }
.dm-mnav__pm { flex: 0 0 auto; align-self: flex-start; width: 28px; height: 2px; margin: 10px 0 2px; opacity: .9; transition: width .7s cubic-bezier(.65,0,.2,1), opacity .3s; }
.dm-mnav button.dm-mnav__t:active .dm-mnav__pm { width: 44px; }
.dm-mnav__t[aria-expanded="true"] .dm-mnav__pm { width: 100%; opacity: .4; }

/* Mobile Navi v4: kein Symbol. Unter Wörtern mit Unterseiten steht leise, was dahinter liegt. Beim Öffnen treten die anderen zurück,
   die Unterseiten erscheinen als Wörter an einer Führungslinie. */
.dm-mnav__pm, .dm-mnav__chev { display: none; }
.dm-mnav__pv { display: block; margin-top: 6px; max-height: 1.6em; overflow: hidden; font: 400 1rem/1.4 'Work Sans', 'Atkinson Hyperlegible Next', 'Atkinson Fallback', system-ui, sans-serif; letter-spacing: 0; color: rgba(255,240,218,.66); transition: max-height .4s cubic-bezier(.2,.8,.2,1), opacity .3s, margin .4s; }
.dm-mnav__t[aria-expanded="true"] .dm-mnav__pv { max-height: 0; margin-top: 0; opacity: 0; }
.dm-mnav__nav ul:has([aria-expanded="true"]) > .dm-mnav__i:not(:has([aria-expanded="true"])) { opacity: .34; }
.dm-mnav__i { transition: opacity .5s ease, transform .6s cubic-bezier(.2,.8,.2,1); }
.dm-mnav__subw .dm-mnav__sub { margin: 10px 0 6px 3px; padding: 2px 0 2px 20px; border-left: 1.5px solid rgba(242,181,137,.6); gap: 2px; }
.dm-mnav .dm-mnav__sub a { min-height: 50px; font: 500 1.65rem/1.1 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.01em; gap: 0; }
.dm-mnav .dm-mnav__sub a::before { content: none; }

/* ===== Einwilligung als Venn-Diagramm: zwei getrennte Räume, der Schalter schiebt sie ineinander ===== */
/* --dm-d = Abstand der Kreismitten von der Mitte; der Text behält feste Breite und gleitet nur (kein Umbruch beim Übergang) */
@property --dm-d { syntax: '<length>'; inherits: true; initial-value: 0px; }
@keyframes dm-lens { 0%, 100% { opacity: .78; } 50% { opacity: 1; } }
.dm-consent { --dm-off: .7; --dm-k: .45; --D: clamp(21rem, 30vw, 28rem); --dm-d: calc(var(--D) * var(--dm-off)); --dm-s: calc((var(--dm-d) - var(--D) * .38) * var(--dm-k)); position: relative; grid-template-columns: minmax(0, 1fr); justify-items: center; align-items: center; margin-top: 3.5rem;
  transition: --dm-d 1s cubic-bezier(.65, 0, .25, 1); }
.dm-consent.is-on { --dm-d: calc(var(--D) * .38); }
.dm-consent__room { grid-area: 1 / 1; align-self: center; width: var(--D); height: var(--D); box-sizing: border-box; border-radius: 50%; z-index: 1;
  display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center;
  background: radial-gradient(circle at 32% 24%, rgba(255,240,218,.16), rgba(255,240,218,.05) 62%);
  box-shadow: inset 0 0 0 1px rgba(255,240,218,.2), inset 0 1px 0 rgba(255,240,218,.3), 0 20px 50px rgba(0,0,0,.22);
  transition: box-shadow .8s; }
.dm-consent.is-on .dm-consent__room { box-shadow: inset 0 0 0 1px rgba(255,240,218,.45), inset 0 1px 0 rgba(255,240,218,.4), 0 20px 50px rgba(0,0,0,.22), 0 0 60px rgba(255,240,218,.1); }
.dm-consent__room span { font-size: .9rem; padding: .22rem .85rem; }
.dm-consent__room strong { font-size: clamp(1.4rem, 2.1vw, 1.9rem); line-height: 1.05; margin: 1.1rem 0 .6rem; }
.dm-consent__room em { font-size: 1rem; line-height: 1.45; }
.dm-consent__link { grid-area: 1 / 1; z-index: 2; position: relative; width: 100%; align-self: stretch; justify-self: stretch; display: grid; place-items: center; padding: 0; pointer-events: none; }
.dm-consent__line { position: absolute; inset: 0; width: auto; height: auto; margin: 0; border: 0; -webkit-mask: none; mask: none; filter: none; opacity: 0; transition: opacity .7s ease; }
.dm-consent__line::after { content: ''; position: absolute; inset: 0; background: radial-gradient(circle closest-side at 50% 50%, rgba(255,240,218,.5), rgba(255,240,218,.2) 62%, rgba(255,240,218,.08)); }
.dm-consent.is-on .dm-consent__line { opacity: 1; border: 0; filter: none; transition-delay: .35s; animation: dm-lens 3.6s ease-in-out 1.4s infinite; }
.dm-consent__link::before { content: ''; position: absolute; transition: opacity .5s; }
.dm-consent.is-on .dm-consent__link::before { opacity: 0; }
.dm-switch { pointer-events: auto; position: relative; z-index: 3; }
.dm-switch b { width: 4.4rem; height: 2.4rem; box-shadow: inset 0 0 0 1px rgba(255,240,218,.45), 0 6px 18px rgba(0,0,0,.28); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.dm-switch b::after { width: 1.8rem; height: 1.8rem; }
.dm-switch[aria-checked="true"] b::after { transform: translateX(2rem); }
.dm-switch span { font-size: .95rem; letter-spacing: .01em; white-space: nowrap; }
@media (prefers-reduced-motion: reduce) { .dm-consent, .dm-consent__line { transition: none; animation: none !important; } }

/* Breit: nebeneinander */
@media (min-width: 960px) {
  .dm-consent { grid-template-rows: var(--D) auto; }
  .dm-consent__room:first-child { transform: translateX(calc(var(--dm-d) * -1)); padding: 0 calc(var(--D) * .378) 0 calc(var(--D) * .09); }
  .dm-consent__room:nth-child(3) { transform: translateX(var(--dm-d)); padding: 0 calc(var(--D) * .09) 0 calc(var(--D) * .378); }
  .dm-consent__room:first-child > * { transform: translateX(var(--dm-s)); }
  .dm-consent__room:nth-child(3) > * { transform: translateX(calc(var(--dm-s) * -1)); }
  .dm-consent__line { clip-path: circle(calc(var(--D) / 2) at calc(50% - var(--dm-d)) 50%); }
  .dm-consent__line::after { clip-path: circle(calc(var(--D) / 2) at calc(50% + var(--dm-d)) 50%); }
  .dm-consent__link::before { top: 50%; left: calc(50% - var(--dm-d) + var(--D) / 2 + .5rem); right: calc(50% - var(--dm-d) + var(--D) / 2 + .5rem); border-top: 2px dashed rgba(255,240,218,.4); }
  .dm-switch span { position: absolute; left: 50%; transform: translateX(-50%); width: max-content; max-width: none; top: calc(var(--D) / 2 + 1.2rem + .9rem); }
  .dm-consent__state { grid-column: 1; grid-row: 2; margin-top: 5.2rem; max-width: 40rem; }
}

/* Schmal: übereinander */
@media (max-width: 959px) {
  .dm-consent { --dm-off: .62; --dm-k: .6; --D: min(84vw, 23rem); grid-template-rows: calc(var(--D) + 2 * var(--dm-d)) auto; margin-top: 2.5rem; }
  .dm-consent__room:first-child { transform: translateY(calc(var(--dm-d) * -1)); padding: calc(var(--D) * .09) calc(var(--D) * .12) calc(var(--D) * .378); }
  .dm-consent__room:nth-child(3) { transform: translateY(var(--dm-d)); padding: calc(var(--D) * .378) calc(var(--D) * .12) calc(var(--D) * .09); }
  .dm-consent__room:first-child > * { transform: translateY(var(--dm-s)); }
  .dm-consent__room:nth-child(3) > * { transform: translateY(calc(var(--dm-s) * -1)); }
  .dm-consent__room span { font-size: .85rem; }
  .dm-consent__room strong { font-size: clamp(1.35rem, 6vw, 1.65rem); margin: .8rem 0 .4rem; }
  .dm-consent__room em { font-size: .95rem; line-height: 1.4; }
  .dm-consent__line { clip-path: circle(calc(var(--D) / 2) at 50% calc(50% - var(--dm-d))); }
  .dm-consent__line::after { clip-path: circle(calc(var(--D) / 2) at 50% calc(50% + var(--dm-d))); }
  .dm-consent__link::before { left: 50%; top: calc(50% - var(--dm-d) + var(--D) / 2 + .5rem); bottom: calc(50% - var(--dm-d) + var(--D) / 2 + .5rem); border-left: 2px dashed rgba(255,240,218,.4); }
  .dm-switch span { position: absolute; left: 50%; transform: translateX(-50%); width: max-content; max-width: 90vw; top: calc(var(--D) / 2 + var(--dm-d) + 1.2rem + .9rem); }
  .dm-consent__state { grid-column: 1; grid-row: 2; margin-top: 4.2rem; }
}

/* Einwilligung: Farben aus der Palette. Krankenkasse = Creme, Selbstzahler = Terrakotta, Schnittmenge = beide verlaufen ineinander */
.dm-consent { --dm-ang: 90deg; }
@media (max-width: 959px) { .dm-consent { --dm-ang: 180deg; } }
.dm-consent__room:first-child { background: radial-gradient(circle at 32% 24%, rgba(255,240,218,.22), rgba(255,240,218,.06) 64%); }
.dm-consent__room:nth-child(3) { background: radial-gradient(circle at 68% 24%, rgba(164,78,34,.62), rgba(164,78,34,.2) 66%);
  box-shadow: inset 0 0 0 1px rgba(232,150,104,.55), inset 0 1px 0 rgba(255,214,184,.5), 0 20px 50px rgba(0,0,0,.22); }
.dm-consent.is-on .dm-consent__room:first-child { box-shadow: inset 0 0 0 1px rgba(255,240,218,.6), inset 0 1px 0 rgba(255,240,218,.45), 0 20px 50px rgba(0,0,0,.22), 0 0 70px rgba(255,240,218,.14); }
.dm-consent.is-on .dm-consent__room:nth-child(3) { box-shadow: inset 0 0 0 1px rgba(232,150,104,.85), inset 0 1px 0 rgba(255,214,184,.55), 0 20px 50px rgba(0,0,0,.22), 0 0 70px rgba(164,78,34,.35); }
.dm-consent__room:first-child span { background: rgba(255,240,218,.14); border-color: rgba(255,240,218,.6); }
.dm-consent__room:nth-child(3) span { background: rgba(164,78,34,.7); border-color: rgba(232,150,104,.75); color: #FFF0DA; }
.dm-consent__line::after { background: radial-gradient(circle closest-side at 50% 50%, rgba(255,240,218,.28), rgba(255,240,218,0) 90%), linear-gradient(var(--dm-ang), rgba(255,240,218,.62), rgba(214,110,58,.78)); }

/* ===== Kontakt-Hero: ruhiger Farbverlauf mit feinen Ringen, Karte mit Live-Status und wählbaren Wochentagen ===== */
@keyframes dm-ping { 0% { box-shadow: 0 0 0 0 rgba(255,240,218,.6); } 100% { box-shadow: 0 0 0 10px rgba(255,240,218,0); } }
.dm-phero:has(.dm-glass--hours) { overflow: hidden; }
.dm-phero:has(.dm-glass--hours) .dm-phero__bg { overflow: hidden; background: linear-gradient(320deg, #A44E22, #7A2E14 70%, #4A1620); }
.dm-phero:has(.dm-glass--hours) .dm-phero__bg::before { content: ''; position: absolute; inset: 0;
  background: radial-gradient(40% 52% at 10% 92%, rgba(74,22,32,.9), rgba(74,22,32,0) 72%), radial-gradient(36% 46% at 92% 6%, rgba(236,150,92,.7), rgba(236,150,92,0) 72%), radial-gradient(30% 38% at 55% 50%, rgba(46,61,38,.4), rgba(46,61,38,0) 72%); }
.dm-phero:has(.dm-glass--hours) .dm-phero__bg::after { content: ''; position: absolute; inset: 0; pointer-events: none;
  background: repeating-radial-gradient(circle at 76% 62%, rgba(255,240,218,0) 0 83px, rgba(255,240,218,.16) 84px 85px);
  -webkit-mask: radial-gradient(circle at 76% 62%, #000 0, rgba(0,0,0,.5) 24%, transparent 58%); mask: radial-gradient(circle at 76% 62%, #000 0, rgba(0,0,0,.5) 24%, transparent 58%); }
.dm-phero:has(.dm-glass--hours) .dm-phero__veil { background: radial-gradient(60% 80% at 85% 20%, rgba(255,240,218,.16), rgba(255,240,218,0) 70%), linear-gradient(180deg, rgba(31,14,8,.22), rgba(31,14,8,0) 30%, rgba(31,14,8,0) 62%, rgba(31,14,8,.4)); }
.dm-glass--hours.dm-live-on { padding: clamp(1.3rem, 2vw, 1.8rem); }
.dm-glass--hours.dm-live-on > h2 { display: flex; align-items: center; gap: .6rem; margin-bottom: 1rem; }
.dm-glass--hours.dm-live-on > h2::after { content: 'live'; font: 600 .68rem/1 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; letter-spacing: .14em; text-transform: uppercase; padding: .32rem .55rem .32rem 1rem; border-radius: 99px; background: radial-gradient(circle at .55rem 50%, #FFF0DA 0 .2rem, transparent .22rem), rgba(255,240,218,.16); color: #FFF0DA; }
.dm-phero .dm-glass--hours.dm-live-on > p { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.dm-live { display: grid; gap: 1.15rem; }
.dm-live__loc + .dm-live__loc { padding-top: 1.1rem; border-top: 1px solid rgba(255,240,218,.16); }
.dm-live__head { display: grid; grid-template-columns: auto 1fr; column-gap: .65rem; align-items: center; }
.dm-live__head strong { font: 600 .82rem/1 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; letter-spacing: .12em; text-transform: uppercase; color: #FFF0DA; }
.dm-live__head em { grid-column: 2; font: 500 1.12rem/1.3 'Jost', 'Jost Fallback', sans-serif; font-style: normal; color: rgba(255,240,218,.96); margin-top: .3rem; }
.dm-live__dot { grid-row: 1 / 3; width: .7rem; height: .7rem; border-radius: 50%; box-shadow: inset 0 0 0 2px rgba(255,240,218,.55); }
.is-open .dm-live__dot { background: #FFF0DA; box-shadow: none; animation: dm-ping 2.2s ease-out infinite; }
.is-soon .dm-live__dot { background: repeating-linear-gradient(45deg, #FFF0DA 0 2px, transparent 2px 4px); }
.dm-live__bar { position: relative; height: .7rem; margin-top: .85rem; border-radius: 99px; background: rgba(255,240,218,.14); }
.dm-live__span { position: absolute; top: 0; bottom: 0; border-radius: 99px; background: linear-gradient(90deg, rgba(255,240,218,.75), #FFF0DA); transition: left .45s cubic-bezier(.2,.8,.2,1), width .45s cubic-bezier(.2,.8,.2,1); }
.is-soon .dm-live__span { background: repeating-linear-gradient(115deg, rgba(255,240,218,.7) 0 6px, rgba(255,240,218,.2) 6px 12px); }
.is-closed .dm-live__span { opacity: .5; }
.dm-live__now { position: absolute; top: -.35rem; bottom: -.35rem; width: 3px; margin-left: -1.5px; border-radius: 2px; background: #FFF0DA; box-shadow: 0 0 0 3px rgba(164,78,34,.55), 0 0 14px 2px rgba(255,240,218,.8); }
.dm-live__ticks { position: relative; height: 1rem; margin-top: .45rem; }
.dm-live__ticks span { position: absolute; transform: translateX(-50%); font: 500 .72rem/1 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; color: rgba(255,240,218,.7); }
.dm-live__days { display: grid; grid-template-columns: repeat(7, 1fr); gap: .3rem; margin-top: .35rem; }
.dm-live__days button { all: unset; box-sizing: border-box; cursor: pointer; text-align: center; font: 600 .78rem/1 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; letter-spacing: .04em; padding: .6rem 0; border-radius: .6rem; color: rgba(255,240,218,.5); box-shadow: inset 0 0 0 1px rgba(255,240,218,.14); transition: background .25s, color .25s, box-shadow .25s; }
.dm-live__days button.on { color: #FFF0DA; background: rgba(255,240,218,.12); box-shadow: inset 0 0 0 1px rgba(255,240,218,.28); }
.dm-live__days button:hover { background: rgba(255,240,218,.24); color: #FFF0DA; }
.dm-live__days button.today:not(.sel) { box-shadow: inset 0 0 0 2px rgba(255,240,218,.85); color: #FFF0DA; }
.dm-live__days button.sel { background: #FFF0DA; color: #7A2E14; box-shadow: none; }
.dm-live__days button:focus-visible { outline: 3px solid #FFF0DA; outline-offset: 2px; }
.dm-phero .dm-glass--hours .dm-live__hint { margin: 0; font: 500 .85rem/1.3 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; color: rgba(255,240,218,.7); }
@media (prefers-reduced-motion: reduce) { .is-open .dm-live__dot { animation: none; } .dm-live__span { transition: none; } }

/* =====================================================================
   Lesbarkeit: Ergebnisse des Pixel-Audits (Text gegen den echten Hintergrund, Desktop 1440 und Handy 390)
   Ziel WCAG AA: 4,5:1 normaler Text, 3:1 große Schrift. Überall dezente Verläufe oder Flächen statt Bild abdunkeln.
   ===================================================================== */

/* Unter der Leiste: Bild läuft nach oben leicht dunkler aus, damit die Navigation lesbar bleibt */
.dm-fan__veil::after, .dm-phero__veil::after { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 190px; pointer-events: none; background: linear-gradient(180deg, rgba(31,14,8,.58), rgba(31,14,8,.22) 55%, rgba(31,14,8,0)); }
@media (max-width: 1199px) { .dm-fan__veil::after, .dm-phero__veil::after { height: 130px; } }

/* Primärbutton: etwas tiefer, Schrift kräftiger (14 px braucht 4,5:1) */
.dm-cta .uk-button { white-space: nowrap; }

/* Start-Hero Desktop: linker Textbereich bekommt einen weichen dunklen Verlauf */
@media (min-width: 960px) {
  body .dm-fan__veil { background: linear-gradient(90deg, rgba(31,14,8,.8) 0%, rgba(31,14,8,.52) 40%, rgba(31,14,8,.12) 68%, rgba(31,14,8,0) 84%), linear-gradient(180deg, rgba(31,14,8,.3) 0%, rgba(31,14,8,0) 22%, rgba(31,14,8,0) 52%, rgba(31,14,8,.82) 100%); }
  .dm-fan__text h1 span { font-weight: 400; color: #FFF0DA; -webkit-text-fill-color: #FFF0DA; text-shadow: 0 2px 28px rgba(20,8,4,.55); }
  .dm-fan__text .dm-fan__status strong { background: rgba(31,14,8,.4); }
}

/* Start-Hero Mobil: aufgeräumt. Status in einer Zeile, Überschrift, ein Button, darunter drei Türen als ruhige Glaszeilen.
   Fließtext, zweiter Button und die Antwortzeilen entfallen hier, die Türen tragen die Navigation. */
@media (max-width: 959px) {
  .dm-fan { gap: 28px; }
  .dm-fan__text .dm-fan__status { display: flex; align-items: center; gap: 10px; flex-wrap: nowrap; margin-bottom: 14px; font-size: .88rem; line-height: 1.2; white-space: nowrap; }
  .dm-fan__text .dm-fan__status strong { margin-right: 0; padding: 4px 12px; flex: none; }
  .dm-fan__text .dm-lead, .dm-fan__text .uk-button-default { display: none; }
  .dm-fan__text h1 { margin-bottom: 12px; }
  .dm-fan__text h1 span { margin-top: 10px; font-size: .42em; font-weight: 400; }
  .dm-fan__text .dm-stage__cta { margin-top: 22px; }
  .dm-fan__ask { display: grid; row-gap: 10px; }
  .dm-fan__hint { display: contents; }
  .dm-fan__hint > span { order: 1; font-size: .9rem; font-weight: 600; color: rgba(255,240,218,.9); }
  .dm-fan__row { order: 2; grid-template-columns: 1fr; row-gap: 8px; }
  .dm-fan__side { order: 3; justify-self: center; margin-top: 4px; font-size: .9rem; color: rgba(255,240,218,.88); }
  .dm-fan__d { border: 0; border-radius: 16px; background: rgba(31,14,8,.5); box-shadow: inset 0 0 0 1px rgba(255,240,218,.24); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); transition: background .4s, box-shadow .4s; }
  .dm-fan__d.is-on { background: rgba(255,240,218,.2); box-shadow: inset 0 0 0 1px rgba(255,240,218,.6); }
  .dm-fan__d::before { display: none; }
  .dm-fan__d a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 56px; padding: 0 18px; }
  .dm-fan__d a::after { content: ''; flex: none; width: .55em; height: .55em; border-top: 2px solid #FFF0DA; border-right: 2px solid #FFF0DA; transform: rotate(45deg); opacity: .85; }
  #tm-main .dm-fan__q, #tm-main .dm-fan__d.is-on .dm-fan__q { color: #FFF0DA; font-size: 1.1rem; }
  #tm-main .dm-fan__go, #tm-main .dm-fan__d.is-on .dm-fan__go { display: none; }
}

/* Standort-Karten: Karte liegt nur noch als Struktur unter einem dunkleren Verlauf, die Texte darüber bleiben ruhig */
.dm-loc__map { opacity: .34; }
.dm-loc::after { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.dm-loc--reisbach::after { background: linear-gradient(180deg, rgba(74,26,10,.55) 0%, rgba(74,26,10,.34) 45%, rgba(74,26,10,0) 78%); }
.dm-loc--wartenberg::after { background: linear-gradient(180deg, rgba(14,24,10,.6) 0%, rgba(14,24,10,.38) 45%, rgba(14,24,10,0) 78%); }
.dm-loc__status { background: rgba(31,14,8,.3); }
.dm-loc__label, .dm-loc__dl dt { color: rgba(255,240,218,.92); }
.dm-loc__hrs { color: rgba(255,240,218,.94); }
.dm-loc__offers li { background: rgba(31,14,8,.2); }

/* Text auf Fotos: Bildunterschriften, Marken und Etiketten */
#tm-main .dm-area__tag { background: rgba(31,14,8,.46); font-size: .82rem; }
.dm-pane__tag { background: rgba(31,14,8,.32); }
#tm-main .dm-gearfig::after { background: linear-gradient(180deg, rgba(31,14,8,0) 30%, rgba(31,14,8,.6) 58%, rgba(31,14,8,.92) 100%); }
@media (max-width: 959px) { #tm-main .dm-gear__stage { aspect-ratio: 4 / 5; } #tm-main .dm-gearfig::after { background: linear-gradient(180deg, rgba(31,14,8,0) 22%, rgba(31,14,8,.62) 52%, rgba(31,14,8,.94) 100%); } }
#tm-main .dm-free__f::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(31,14,8,0) 38%, rgba(31,14,8,.78) 100%); }
#tm-main .dm-free__f figcaption { z-index: 1; }
#tm-main .dm-route li.is-goal .dm-route__n { font-weight: 400; }

/* Kleinere Texte auf hellem Grund */
.dm-osm-note { color: #54402F; }
.dm-pick__lead { color: #7F3818; }
.dm-offer__tab small { opacity: .92; }

/* Kontakt-Hero: Karte auf dunklerer Glasfläche, Zeitachse und inaktive Tage deutlicher */
.dm-phero .dm-glass.dm-glass--hours.dm-live-on { background: rgba(58,20,10,.36); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.dm-live__ticks span { color: rgba(255,240,218,.9); }
.dm-live__days button { color: rgba(255,240,218,.72); }
.dm-live__days button.on { background: rgba(255,240,218,.16); }
.dm-phero .dm-glass--hours .dm-live__hint { color: rgba(255,240,218,.9); }
.dm-live__head strong { color: #FFF0DA; font-size: .85rem; }

/* Audit, zweite Runde */
.dm-loc--reisbach { background: linear-gradient(320deg, #964420, #7A3010); }
.dm-picks--photo .dm-pick::after { background: linear-gradient(180deg, rgba(31,14,8,.1) 0%, rgba(31,14,8,.12) 30%, rgba(31,14,8,.68) 56%, rgba(31,14,8,.93) 100%); }
.dm-picks--photo .dm-pick__lead { color: #FFF0DA; }
#tm-main .dm-free__f::after { background: linear-gradient(180deg, rgba(31,14,8,.1) 0%, rgba(31,14,8,.15) 22%, rgba(31,14,8,.6) 46%, rgba(31,14,8,.9) 72%, rgba(31,14,8,.95) 100%); }
#tm-main .dm-free__f span { color: #FFD5AE; }
.dm-live__days button.sel, .dm-live__days button.on.sel { background: #FFF0DA; color: #7A2E14; box-shadow: none; }
/* Cremefarbener Button auf dunklem Grund: Schrift tiefer (Terrakotta auf Creme lag bei 4,0:1) */
#tm-main .uk-button-primary:not(:is(.dm-loc, .dm-place, .dm-pass) *), body .dm-cta .uk-button-primary { background-color: rgba(134,58,20,.98); color: #FFF0DA; font-weight: 500; }
#tm-main :is(.uk-light, .uk-section-primary, .uk-section-secondary, .uk-card-primary, .uk-card-secondary, .uk-overlay-primary) .uk-button-primary:not(:is(.dm-loc, .dm-place, .dm-pass) *) { background-color: #F6ECD9; color: #7E3512; }
/* Haupt-Button im Hero auf dunklem Bild: Creme mit tiefer Schrift, hebt sich ab und liegt weit über 4,5:1 */
#tm-main :is(.dm-fan__text, .dm-phero__text) .uk-button-primary:not(:is(.dm-loc, .dm-place, .dm-pass) *) { background-color: #F6ECD9; color: #7E3512; box-shadow: 0 10px 28px rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.5); }

/* ===== Start „Du entscheidest“: flüssiges Aufweiten der Flächen (Safari-Ruckler) =====
   Vorher wurde pro Frame das Foto neu skaliert (background-size: cover bei wechselnder Breite), ein nutzloser Backdrop-Blur auf einer
   deckenden Fläche berechnet und der Glas-Button blurrte mit. Jetzt: Foto als feste Ebene (wird nur freigelegt, nie skaliert),
   Verlauf als eigene Ebene mit animierter Deckkraft, kein Backdrop-Filter in den Flächen, Rendering je Fläche abgeschottet. */
@property --dm-pa { syntax: '<number>'; inherits: false; initial-value: .55; }
.dm-split .dm-pane { position: relative; overflow: hidden; isolation: isolate; contain: layout paint;
  -webkit-backdrop-filter: none; backdrop-filter: none; transition: flex-grow .7s var(--dm-ease), background-color .4s; }
.dm-split .dm-pane.dm-pane--physio, .dm-split .dm-pane.dm-pane--physio:hover, .dm-split .dm-pane.dm-pane--physio:focus-visible,
.dm-split .dm-pane.dm-pane--pain, .dm-split .dm-pane.dm-pane--pain:hover, .dm-split .dm-pane.dm-pane--pain:focus-visible { background-image: none; }
.dm-split .dm-pane::before { content: ''; position: absolute; z-index: -2; top: 0; bottom: 0; left: 50%; width: 900px; transform: translateX(-50%);
  background-size: cover; background-position: center; background-repeat: no-repeat; pointer-events: none; }
.dm-split .dm-pane--physio::before { background-image: var(--dm-img, url(/wp-content/uploads/dombrowski/trainingsraum-s.jpg)); }
.dm-split .dm-pane--pain::before { background-image: var(--dm-img, url(/wp-content/uploads/dombrowski/mt-s.jpg)); }
.dm-split .dm-pane::after { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; transition: --dm-pa .5s ease;
  background: linear-gradient(180deg, rgba(25,34,21,var(--dm-pa)) 0%, rgba(25,34,21,.88) 78%); }
.dm-split .dm-pane:hover::after, .dm-split .dm-pane:focus-visible::after { --dm-pa: .28; }
.dm-pane .uk-button { -webkit-backdrop-filter: none; backdrop-filter: none; background-color: rgba(70,66,56,.72); }
@media (max-width: 959px) { .dm-split .dm-pane { flex: 0 0 auto; } .dm-split .dm-pane::before { left: 0; width: 100%; transform: none; } }
@media (prefers-reduced-motion: reduce) { .dm-split .dm-pane::after { transition: none; } }

/* ===== Leistungs-Karten (.dm-oc): flüssiges Hover (Safari-Ruckler) =====
   Vorher: Erklärung öffnete per grid-template-rows (Layout pro Frame), der runde Button blurrte das skalierende Foto mit.
   Jetzt: Foto als eigene GPU-Ebene, Erklärung bleibt im Fluss und der Körper der Karte gleitet per transform (Höhe misst ocfx() in dombrowski-wow.js). */
.dm-oc { transform: translateZ(0); }
.dm-oc img { will-change: transform; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.dm-oc__go { -webkit-backdrop-filter: none; backdrop-filter: none; background: rgba(40,28,20,.42); }
@media (hover: hover) and (min-width: 960px) {
  .dm-oc.is-fx .dm-oc__txt { grid-template-rows: 1fr; transition: opacity .4s ease .08s; }
  .dm-oc.is-fx .dm-oc__body { transform: translateY(var(--oc-shift, 0px)); transition: transform .55s cubic-bezier(.2, .8, .2, 1); will-change: transform; }
  .dm-oc.is-fx:hover .dm-oc__body, .dm-oc.is-fx:focus-visible .dm-oc__body { transform: none; }
}
@media (prefers-reduced-motion: reduce) { .dm-oc.is-fx .dm-oc__body { transition: none; } }

/* ===== Glasbox im Seitenkopf mobil über die volle Inhaltsbreite (Grid-Rand rechts fehlte) ===== */
@media (max-width: 959px) { .dm-hero--page .uk-grid.tm-grid-expand { width: calc(100% + 30px); max-width: none; } }

/* ===== Kontakt „Was passt zu dir?“: drei Wege als Karten, darunter Antwort mit Kontaktkacheln ===== */
.dm-picks:not(.dm-picks--photo) { grid-template-columns: 1fr; gap: 20px; margin-top: 2.2rem; }
.dm-picks:not(.dm-picks--photo) .dm-picks__tabs { flex-direction: row; gap: 14px; border: 0; counter-reset: dmw; }
.dm-picks:not(.dm-picks--photo) .dm-pickbtn { flex: 1 1 0; counter-increment: dmw; position: relative; box-sizing: border-box; padding: 1.3rem 1.4rem 1.3rem 4.2rem; border: 0; border-radius: 20px; min-height: 5.2rem; display: flex; align-items: center;
  font: 500 clamp(1.15rem, 1.6vw, 1.45rem)/1.2 'Jost', 'Jost Fallback', sans-serif; text-wrap: balance; background: rgba(255,240,218,.55); box-shadow: inset 0 0 0 1px rgba(42,23,16,.12), 0 8px 22px rgba(56,26,12,.08); transition: background .3s, box-shadow .3s, transform .4s var(--dm-ease), color .3s; }
.dm-picks:not(.dm-picks--photo) .dm-pickbtn::before { content: counter(dmw); position: absolute; left: 1.2rem; top: 50%; width: 2.1rem; height: 2.1rem; margin-top: -1.05rem; border-radius: 50%; display: grid; place-items: center; font: 600 1rem/1 'Jost', 'Jost Fallback', sans-serif; color: #7F3818; box-shadow: inset 0 0 0 1.5px rgba(127,56,24,.5); transition: background .3s, color .3s; }
.dm-picks:not(.dm-picks--photo) .dm-pickbtn:hover { transform: translateY(-2px); }
.dm-picks:not(.dm-picks--photo) .dm-pickbtn[aria-selected="true"] { padding-left: 4.2rem; background: #8A3A12; color: #FFF0DA; box-shadow: 0 14px 30px rgba(138,58,18,.3); }
.dm-picks:not(.dm-picks--photo) .dm-pickbtn[aria-selected="true"]::before { background: #FFF0DA; color: #8A3A12; box-shadow: none; }
.dm-picks:not(.dm-picks--photo) .dm-picks__panels { min-height: 0; padding: clamp(1.6rem, 3vw, 2.6rem); }
.dm-picks:not(.dm-picks--photo) .dm-pick { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); column-gap: clamp(1.5rem, 4vw, 4rem); row-gap: .4rem; align-content: center; justify-content: stretch; }
.dm-picks:not(.dm-picks--photo) .dm-pick__lead { grid-column: 1; margin: 0; }
.dm-picks:not(.dm-picks--photo) .dm-pick__name { grid-column: 1; margin: .4rem 0 .6rem; font-size: clamp(2rem, 3.4vw, 3.1rem); }
.dm-picks:not(.dm-picks--photo) .dm-pick > p:not(.dm-pick__contact) { grid-column: 1; max-width: 24em; font-size: 1.15rem; }
.dm-picks:not(.dm-picks--photo) .dm-pick__contact { grid-column: 2; grid-row: 1 / span 3; align-self: center; margin: 0 !important; display: grid; gap: 10px; font: inherit !important; }
.dm-cl { display: grid; gap: 2px; padding: .9rem 1.2rem; border-radius: 16px; background: rgba(255,255,255,.55); box-shadow: inset 0 0 0 1px rgba(42,23,16,.1); }
.dm-cl small { font: 600 .82rem/1.2 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; letter-spacing: .08em; text-transform: uppercase; color: #7F3818; }
.dm-cl b { font: 500 clamp(1.25rem, 1.9vw, 1.6rem)/1.25 'Jost', 'Jost Fallback', sans-serif; color: #2A1710; overflow-wrap: anywhere; }
.dm-cl--plain b { font-weight: 400; font-size: 1.15rem; }
@media (max-width: 959px) {
  .dm-picks:not(.dm-picks--photo) .dm-picks__tabs { flex-direction: column; gap: 10px; }
  .dm-picks:not(.dm-picks--photo) .dm-pickbtn { min-height: 4.2rem; flex: none; }
  .dm-picks:not(.dm-picks--photo) .dm-pick { grid-template-columns: 1fr; }
  .dm-picks:not(.dm-picks--photo) .dm-pick__contact { grid-column: 1; grid-row: auto; margin-top: 1.2rem !important; }
}

/* ===== Zeilenumbrüche: Überschriften ausbalanciert, Fließtext ohne Waisenwort ===== */
#tm-main :is(h1, h2, h3, h4, .dm-lead, .dm-oc__for, .dm-pane__title, .dm-loc__town, .dm-live__head em) { text-wrap: balance; }
#tm-main :is(p, li, dd, figcaption, .el-content, .dm-note, .dm-oc__txt > span, .dm-loc__addr) { text-wrap: pretty; }
#tm-main :is(h1, h2, h3, h4) { hyphens: manual; overflow-wrap: normal; }
.dm-picks:not(.dm-picks--photo) .dm-pick { grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); }
.dm-picks:not(.dm-picks--photo) .dm-pick__contact { grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }
.dm-cl b { overflow-wrap: normal; white-space: nowrap; font-size: clamp(1.1rem, 1.5vw, 1.4rem); }
@media (max-width: 959px) { .dm-picks:not(.dm-picks--photo) .dm-pick { grid-template-columns: 1fr; } .dm-cl b { font-size: 1.2rem; } }

/* ===== Start-Hero: automatischer Durchlauf der Türen, Füllung zeigt die Zeit ===== */
@keyframes dm-fan-fill { from { width: 0; } to { width: 100%; } }
.dm-fan.is-auto .dm-fan__d::before { width: 0; transition: none; }
.dm-fan.is-auto .dm-fan__d.is-on::before { width: 100%; animation: dm-fan-fill var(--dm-fan-dur, 5500ms) linear both; }
.dm-fan.is-auto.is-held .dm-fan__d.is-on::before { animation: none; width: 100%; }
@media (max-width: 959px) {
  .dm-fan .dm-fan__d { overflow: hidden; }
  .dm-fan__d::before { display: block; top: 0; left: 0; height: 100%; border-radius: 16px; background: rgba(255,240,218,.2); z-index: 0; }
  .dm-fan__d a { position: relative; z-index: 1; }
  .dm-fan__d.is-on { background: rgba(31,14,8,.5); }
  .dm-fan:not(.is-auto) .dm-fan__d.is-on { background: rgba(255,240,218,.2); }
  .dm-fan:not(.is-auto) .dm-fan__d.is-on::before { display: none; }
}
/* Schwebender Termin-Button mobil: Schatten wurde in Safari rechteckig abgeschnitten, deshalb Platz um den Button */
.dm-cta { padding: 20px 60px 70px; margin-bottom: -56px; pointer-events: none; }
.dm-cta .uk-button { pointer-events: auto; }

/* ===== Kontakt je Praxis (dm_reach): zwei Karten, Live-Status, Antippen kopiert ===== */
.dm-reach { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-top: 2.4rem; }
.dm-rc { position: relative; display: flex; flex-direction: column; padding: clamp(1.6rem, 3vw, 2.6rem); border-radius: 26px; color: #FFF0DA; overflow: hidden; isolation: isolate;
  box-shadow: 0 24px 56px rgba(56,26,12,.22), inset 0 0 0 1px rgba(255,240,218,.16), inset 0 1px 0 rgba(255,240,218,.3); }
.dm-rc--reisbach { background: linear-gradient(320deg, #A44E22, #7A3010); }
.dm-rc--wartenberg { background: linear-gradient(320deg, #2E3D26, #1A2415); }
.dm-rc::before { content: ''; position: absolute; z-index: -1; right: -20%; top: -35%; width: 75%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(255,240,218,.16), rgba(255,240,218,0) 70%); }
.dm-rc__status { display: inline-flex; align-items: center; gap: .6rem; align-self: flex-start; margin: 0; padding: .4rem 1rem .4rem .8rem; border-radius: 999px; background: rgba(31,14,8,.32); box-shadow: inset 0 0 0 1px rgba(255,240,218,.4); font: 600 .95rem/1.2 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; }
.dm-rc__status i { width: .6rem; height: .6rem; border-radius: 50%; box-shadow: inset 0 0 0 2px rgba(255,240,218,.7); flex: none; }
.dm-rc__status.is-open i { background: #FFF0DA; box-shadow: none; animation: dm-ping 2.2s ease-out infinite; }
.dm-rc__status.is-soon i { background: repeating-linear-gradient(45deg, #FFF0DA 0 2px, transparent 2px 4px); box-shadow: none; }
#tm-main .dm-rc__town { margin: clamp(2rem, 5vw, 3.4rem) 0 .3rem; padding: 0; border: 0; font: 300 clamp(3rem, 5.4vw, 5rem)/.95 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.045em; color: #FFF0DA; }
.dm-rc__addr { margin: 0 0 1.6rem; font-size: 1.2rem; line-height: 1.4; color: rgba(255,240,218,.94); }
.dm-rc__rows { display: grid; gap: 10px; }
.dm-rc__row { all: unset; box-sizing: border-box; cursor: pointer; position: relative; display: grid; grid-template-columns: 1fr auto; column-gap: 12px; align-items: center; padding: .95rem 1.2rem; border-radius: 18px; background: rgba(31,14,8,.28); box-shadow: inset 0 0 0 1px rgba(255,240,218,.28), inset 0 1px 0 rgba(255,240,218,.2); transition: background .25s, transform .4s cubic-bezier(.2,.8,.2,1); }
.dm-rc__row:hover, .dm-rc__row:focus-visible { background: rgba(31,14,8,.42); transform: translateY(-2px); }
.dm-rc__row:focus-visible { outline: 3px solid #FFF0DA; outline-offset: 3px; }
.dm-rc__row small { grid-column: 1; font: 600 .8rem/1.2 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,240,218,.9); }
.dm-rc__row b { grid-column: 1; font: 500 clamp(1.3rem, 2vw, 1.7rem)/1.25 'Jost', 'Jost Fallback', sans-serif; color: #FFF0DA; overflow-wrap: anywhere; }
.dm-rc__act { grid-column: 2; grid-row: 1 / span 2; width: 2.4rem; height: 2.4rem; border-radius: 50%; position: relative; background: rgba(255,240,218,.16); box-shadow: inset 0 0 0 1px rgba(255,240,218,.4); transition: background .25s; }
.dm-rc__act::before, .dm-rc__act::after { content: ''; position: absolute; left: 50%; top: 50%; border: 1.6px solid #FFF0DA; border-radius: 3px; width: .62rem; height: .74rem; }
.dm-rc__act::before { transform: translate(-70%, -62%); }
.dm-rc__act::after { transform: translate(-30%, -38%); background: rgba(255,240,218,.1); }
a.dm-rc__row .dm-rc__act::before { width: .5rem; height: .5rem; border: 0; border-top: 2px solid #FFF0DA; border-right: 2px solid #FFF0DA; border-radius: 0; transform: translate(-65%, -50%) rotate(45deg); }
a.dm-rc__row .dm-rc__act::after { display: none; }
.dm-rc__row.is-copied { background: #FFF0DA; }
.dm-rc__row.is-copied small, .dm-rc__row.is-copied b { color: #5B2410; }
.dm-rc__row.is-copied small::after { content: ' · kopiert'; }
.dm-rc__row.is-copied .dm-rc__act { background: #8A3A12; }
.dm-rc__row.is-copied .dm-rc__act::before { width: .35rem; height: .7rem; border: 0; border-right: 2px solid #FFF0DA; border-bottom: 2px solid #FFF0DA; border-radius: 0; transform: translate(-50%, -60%) rotate(45deg); }
.dm-rc__row.is-copied .dm-rc__act::after { display: none; }
.dm-rc__hrs { margin: 1.4rem 0 0; padding-top: 1.1rem; border-top: 1px solid rgba(255,240,218,.28); font-size: 1.1rem; line-height: 1.5; color: rgba(255,240,218,.95); }
.dm-reach__hint { margin: 1rem 0 0; font-size: .95rem; color: #54402F; }
@media (max-width: 959px) { .dm-reach { grid-template-columns: 1fr; gap: 18px; } }
@media (prefers-reduced-motion: reduce) { .dm-rc__status.is-open i { animation: none; } .dm-rc__row { transition: none; } }
.dm-rc__row b { white-space: nowrap; overflow-wrap: normal; }
@media (max-width: 959px) { .dm-rc__row b { font-size: min(1.5rem, 3.9vw); } .dm-rc__row { column-gap: 8px; padding-inline: 1rem; } .dm-rc__act { width: 2.1rem; height: 2.1rem; } }

/* ===== Mobil: Leiste fährt beim Runterscrollen weg, beim Hochscrollen zurück ===== */
@media (max-width: 1199px) {
  html body .tm-header-mobile { transition: transform .5s cubic-bezier(.32, .72, 0, 1); will-change: transform; }
  html.dm-nav-hide body .tm-header-mobile { transform: translate3d(0, -130%, 0); }
}

/* ===== Weg im Trainingsraum mobil: Pfeile mit Luft zu den Karten ===== */
@media (max-width: 959px) {
  #tm-main .dm-route { gap: 44px; }
  #tm-main .dm-route li:not(:last-child)::after { bottom: -28px; }
}

/* ===== Start-Hero mobil: nur durchwechseln, die Türen bleiben unverändert (kein Ladebalken) ===== */
@media (max-width: 959px) {
  .dm-fan.is-auto .dm-fan__d::before, .dm-fan.is-auto .dm-fan__d.is-on::before { display: none; animation: none; }
  .dm-fan .dm-fan__d.is-on, .dm-fan:not(.is-auto) .dm-fan__d.is-on { background: rgba(31,14,8,.5); box-shadow: inset 0 0 0 1px rgba(255,240,218,.24); }
}

/* ===== Kontakt-Karten: Kartenbild wie bei den Standorten, keine Kopierfunktion ===== */
.dm-rc__map { position: absolute; z-index: -1; left: 0; right: 0; top: 0; height: 62%; pointer-events: none; opacity: .34; -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 45%, transparent 100%); mask-image: linear-gradient(180deg, #000 0%, #000 45%, transparent 100%); }
.dm-rc__map img { display: block; width: 100%; height: 100%; object-fit: cover; }
.dm-rc::after { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.dm-rc--reisbach::after { background: linear-gradient(180deg, rgba(74,26,10,.55) 0%, rgba(74,26,10,.34) 45%, rgba(74,26,10,0) 78%); }
.dm-rc--wartenberg::after { background: linear-gradient(180deg, rgba(14,24,10,.6) 0%, rgba(14,24,10,.38) 45%, rgba(14,24,10,0) 78%); }
div.dm-rc__row { cursor: default; }
div.dm-rc__row:hover { background: rgba(31,14,8,.28); transform: none; }

/* Mobil-Menü: der Schließen-Button bleibt auch im Fokus ein Kreis */
.dm-mnav .dm-mnav__x, .dm-mnav .dm-mnav__x:focus, .dm-mnav .dm-mnav__x:focus-visible, .dm-mnav .dm-mnav__x:active { border-radius: 50%; }
.dm-mnav .dm-mnav__x:focus-visible { outline: 3px solid #F2B589; outline-offset: 3px; }
.dm-mnav .dm-mnav__x:focus:not(:focus-visible) { outline: none; }
@media (prefers-reduced-motion: reduce) { html body .tm-header-mobile { transition: none; } }

/* Schwebender Termin-Button: Schatten als eigene Verlaufsfläche statt box-shadow, ohne Backdrop-Filter am Button.
   Safari (iPhone) schnitt den box-shadow eines backdrop-filter-Elements rechteckig ab. */
.dm-cta .uk-button, body .dm-cta .uk-button.uk-button-primary { -webkit-backdrop-filter: none; backdrop-filter: none; box-shadow: inset 0 0 0 1px rgba(255,240,218,.18), inset 0 1px 0 rgba(255,240,218,.3); position: relative; z-index: 1; }
.dm-cta { position: fixed; }
.dm-cta::before { content: ''; position: absolute; z-index: 0; left: 36px; right: 36px; top: 34px; bottom: 28px; pointer-events: none;
  background: radial-gradient(closest-side, rgba(56,26,12,.34), rgba(56,26,12,.16) 55%, rgba(56,26,12,0)); }
/* Termin-Button mobil ohne Schatten: der Schatten wurde auf dem iPhone trotz Umbau als Rechteck dargestellt. Stattdessen heller Rand und Tiefe über Verlauf. */
.dm-cta::before { display: none; }
.dm-cta { padding: 0; margin: 0; }
.dm-cta .uk-button, body .dm-cta .uk-button.uk-button-primary { box-shadow: inset 0 0 0 1px rgba(255,240,218,.34), inset 0 1px 0 rgba(255,240,218,.45), inset 0 -3px 6px rgba(56,26,12,.28); background-image: linear-gradient(180deg, rgba(255,240,218,.14), rgba(255,240,218,0) 55%); }

/* Sprungziele (#id) bei direktem Aufruf einer URL mit Anker, z. B. /trainingsraum/#geraete: nicht unter der Glasleiste landen */
html { scroll-padding-top: 104px; }
@media (max-width: 1199px) { html { scroll-padding-top: 16px; } }

/* Logo vor dem Skript: Der Server liefert <img uk-svg>, UIkit ersetzt es erst nach dem Laden durch das Inline-SVG (das die Schriftfarbe erbt und 30px hoch ist).
   Bis dahin zeigte der Browser das Bild schwarz und 36px hoch (Aufblitzen, danach Sprung). Jetzt: gleiche Größe und Lage, das Bild selbst aus dem Blick geschoben
   und der Umriss des Logos mit der Schriftfarbe der Leiste gefüllt (Maske), also auch in der richtigen Farbe, egal ob Tönung automatisch oder fest. */
.tm-header .uk-logo img[uk-svg]:not([hidden]), .tm-header-mobile .uk-logo img[uk-svg]:not([hidden]) {
  display: block; order: 0; box-sizing: border-box; width: 112px; height: 30px; transform: translateY(-3.8px);
  object-fit: none; object-position: -9999px 0;
  background-color: var(--lg-text, #F6ECD9);
  -webkit-mask: url(/wp-content/uploads/taffit2/taffit-wortmarke.svg) center / 100% 100% no-repeat;
          mask: url(/wp-content/uploads/taffit2/taffit-wortmarke.svg) center / 100% 100% no-repeat;
}

/* Schmale Handys: Die Kachel-Spalte (Bento) darf nicht an einem langen Wort wie „Schmerztherapie“ aufweiten (1fr = min-content), und die Kachelüberschrift schrumpft mit der Breite */
@media (max-width: 959px) { .dm-bento { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 479px) { #tm-main .dm-tile h3, #tm-main .dm-bento--three .dm-tile--s h3 { font-size: min(1.7rem, 7vw); } }
/* Sehr schmale Handys (≤ 349px): die Unterzeile des Logos stößt sonst an das Menüsymbol */
@media (max-width: 349px) { .tm-header-mobile .uk-logo::before, .tm-header-mobile .uk-logo::after { display: none; } }

/* Schmerztherapie, Hero-H1: Desktop bleibt zweizeilig („Schmerztherapie &“ / „ganzheitliche Behandlung“). Auf dem Handy entfällt der feste Umbruch, damit die Zeilen
   gleichmäßig brechen (text-wrap: balance) statt „ganzheitliche“ allein auf einer Zeile hängen zu lassen. */
@media (max-width: 599px) { body.page-id-2541 .dm-phero h1 br { display: none; } }

/* Platz für die Live-Öffnungszeiten (Kontakt-Seite): dombrowski-wow.js baut das Fenster erst nach dem ersten Paint auf. Ohne reservierte Höhe sprang die ganze
   Kopfzeile um ~370 px (Layout-Verschiebung). Die Werte entsprechen der fertigen Höhe des Fensters in den jeweiligen Breiten. */
#tm-main .dm-phero .dm-glass--hours { min-height: 447px; box-sizing: border-box; }
@media (min-width: 360px) { #tm-main .dm-phero .dm-glass--hours { min-height: 429px; } }
@media (min-width: 480px) { #tm-main .dm-phero .dm-glass--hours { min-height: 406px; } }
@media (min-width: 1200px) { #tm-main .dm-phero .dm-glass--hours { min-height: 422px; } }

/* Hero: die zwei Einstiege als große Auswahlkarten (Desktop). Vorher dünne Textzeilen, wurden im Kundengespräch übersehen.
   Aktive Karte = helle Fläche mit dunkler Schrift (wie der Haupt-Button), die andere Glas. Antwortzeile immer sichtbar. */
@media (min-width: 960px) {
  #tm-main .dm-fan__hint { margin: 0 0 16px; align-items: center; }
  #tm-main .dm-fan__hint > span { font: 500 clamp(1.4rem, 1.9vw, 1.85rem)/1.15 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.012em; color: #FFF0DA; text-shadow: 0 2px 24px rgba(20,8,4,.5); }
  #tm-main .dm-fan__row { column-gap: 16px; }
  #tm-main .dm-fan__d { border: 0; border-radius: 24px; background: rgba(31,14,8,.46); box-shadow: inset 0 0 0 1.5px rgba(255,240,218,.5); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); transition: background .45s, box-shadow .45s, transform .45s cubic-bezier(.2,.8,.2,1); }
  #tm-main .dm-fan__d::before { display: none; }
  #tm-main .dm-fan__d:hover { transform: translateY(-3px); }
  #tm-main .dm-fan__d a { position: relative; min-height: 112px; padding: 24px 88px 24px 32px; display: flex; flex-direction: column; justify-content: center; gap: 8px; border-radius: 24px; }
  #tm-main .dm-fan__d a::after { content: ''; position: absolute; right: 28px; top: 50%; width: 48px; height: 48px; margin-top: -24px; border-radius: 50%; box-sizing: border-box; border: 1.5px solid rgba(255,240,218,.6); background: no-repeat center / 20px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23FFF0DA' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 10h12M11 5l5 5-5 5'/%3E%3C/svg%3E"); transition: background-color .45s, border-color .45s, transform .45s cubic-bezier(.2,.8,.2,1); }
  #tm-main .dm-fan__d:hover a::after, #tm-main .dm-fan__d a:focus-visible::after { transform: translateX(4px); }
  #tm-main .dm-fan__q, #tm-main .dm-fan__d.is-on .dm-fan__q { font-size: clamp(1.5rem, 2.1vw, 2.1rem); color: #FFF0DA; }
  #tm-main .dm-fan__go, #tm-main .dm-fan__d.is-on .dm-fan__go { margin: 0; opacity: .9; transform: none; color: #FFF0DA; font-weight: 500; }
  #tm-main .dm-fan__go::after { display: none; }
  #tm-main .dm-fan__d.is-on { background: #FFF0DA; box-shadow: 0 14px 44px rgba(20,8,4,.4); }
  #tm-main .dm-fan__d.is-on .dm-fan__q { color: #2A1710; }
  #tm-main .dm-fan__d.is-on .dm-fan__go { color: #4D3A30; opacity: 1; }
  #tm-main .dm-fan__d.is-on a::after { background-color: #93431D; border-color: #93431D; }
}
@media (min-width: 960px) and (max-height: 800px) { #tm-main .dm-fan__d a { min-height: 80px; padding-top: 12px; padding-bottom: 12px; gap: 4px; } #tm-main .dm-fan__hint { margin-bottom: 12px; } #tm-main .dm-fan__text .dm-lead { display: none; } .dm-fan { gap: 16px; } }

/* Mitlaufendes Etikett: Kassenleistung (grün) / Privatleistung (orange) */
.dm-badge { position: fixed; z-index: 90; left: 40px; bottom: 24px; display: inline-flex; align-items: center; gap: 12px; padding: 10px 22px 10px 16px; border-radius: 500px; color: #FFF0DA; font: 600 1rem/1.2 'Atkinson Hyperlegible Next', 'Atkinson Hyperlegible', sans-serif; box-shadow: inset 0 0 0 1.5px rgba(255,240,218,.5), 0 10px 30px rgba(20,8,4,.35); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); transition: opacity .35s, transform .45s cubic-bezier(.2,.8,.2,1); }
.dm-badge--kasse { background: rgba(46,61,38,.94); }
.dm-badge--privat { background: rgba(164,78,34,.94); }
.dm-badge strong { font-weight: 700; } .dm-badge { white-space: nowrap; }
.dm-badge > span:not(.dm-badge__dot) { font-weight: 400; opacity: .88; padding-left: 12px; border-left: 1px solid rgba(255,240,218,.4); }
.dm-badge__dot { width: 10px; height: 10px; border-radius: 50%; background: #FFF0DA; flex: none; }
.dm-badge.is-away { opacity: 0; transform: translateY(12px); pointer-events: none; }
@media (max-width: 959px) { .dm-badge { left: 15px; bottom: 76px; padding: 8px 16px 8px 12px; font-size: .95rem; } }
@media (max-width: 479px) { .dm-badge { left: 50%; transform: translateX(-50%); } .dm-badge.is-away { transform: translateX(-50%) translateY(12px); } }
@media (prefers-reduced-motion: reduce) { .dm-badge { transition: opacity .01s; } }

/* Wähler „Wobei wir dir helfen“: rechts in der Zeile nur das Kürzel der Therapie (voller Name im Tooltip und im Foto-Panel) */
.dm-picks--photo .dm-pickbtn, .dm-picks:not(.dm-picks--photo) .dm-pickbtn { display: flex; flex-direction: row; align-items: baseline; justify-content: space-between; gap: 16px; }
.dm-pickbtn__n { flex: none; align-self: center; font: 600 .95rem/1.2 'Atkinson Hyperlegible Next', 'Atkinson Hyperlegible', sans-serif; letter-spacing: .02em; padding: 3px 12px; border-radius: 500px; color: #5A463B; box-shadow: inset 0 0 0 1.5px rgba(42,23,16,.28); transition: color .3s, background .3s, box-shadow .3s; }
.dm-pickbtn[aria-selected="true"] .dm-pickbtn__n { background: #A44E22; color: #FFF0DA; box-shadow: none; }

/* Etikett Kassenleistung: Zusatz „nur in Reisbach“ klein dahinter */
.dm-badge em { font-style: normal; border-left: 1px solid rgba(255,240,218,.4); font-size: .85rem; font-weight: 500; opacity: .8; padding-left: 12px; border-left: 1px solid rgba(255,240,218,.4); }
@media (max-width: 479px) { .dm-badge em { padding-left: 10px; font-size: .8rem; } }
.dm-badge em { color: inherit; }
@media (max-width: 479px) { .dm-badge--kasse > span:not(.dm-badge__dot) { display: none; } .dm-badge--kasse em { padding-left: 0; border-left: 0; } }
@media (max-width: 479px) {
  .dm-picks, .dm-picks > *, .dm-pickbtn { min-width: 0; max-width: 100%; }
  .dm-pickbtn { gap: 10px; }
  .dm-pickbtn__t { min-width: 0; }
  .dm-pickbtn__n { font-size: .82rem; padding: 2px 9px; }
}
/* Reicht die Breite nicht, rutscht die Pille unter die Beschwerde, statt sie umzubrechen */
.dm-picks--photo .dm-pickbtn, .dm-picks:not(.dm-picks--photo) .dm-pickbtn { flex-wrap: wrap; row-gap: 8px; }
.dm-pickbtn__t { flex: 0 1 auto; }
@media (min-width: 960px) and (max-width: 1399px) { .dm-picks--photo .dm-pickbtn { font-size: clamp(1.3rem, 1.7vw, 1.75rem); gap: 10px; } }

/* Start, zwei Bereiche: Etikett wie am mitlaufenden Hinweis (grün Kassenleistung, orange Privatleistung) */
.dm-pane__tag--kasse, .dm-pane__tag--privat { display: inline-flex; align-items: center; gap: 12px; align-self: flex-start; padding: 8px 20px 8px 14px; border: 0; color: #FFF0DA; box-shadow: inset 0 0 0 1.5px rgba(255,240,218,.5); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.dm-pane__tag--kasse { background: rgba(46,61,38,.94); }
.dm-pane__tag--privat { background: rgba(164,78,34,.94); }
.dm-pane__tag--kasse i, .dm-pane__tag--privat i { width: 10px; height: 10px; border-radius: 50%; background: #FFF0DA; flex: none; }
.dm-pane__tag--kasse b, .dm-pane__tag--privat b { font-weight: 700; white-space: nowrap; }
.dm-pane__tag--kasse > span, .dm-pane__tag--privat > span { font-weight: 400; opacity: .9; padding-left: 12px; border-left: 1px solid rgba(255,240,218,.4); white-space: nowrap; }
.dm-pane__tag .dm-pane__more { font-size: .9rem; opacity: .8; }
@media (max-width: 479px) { .dm-pane__tag--kasse > span:not(.dm-pane__more), .dm-pane__tag--privat > span:not(.dm-pane__more) { display: none; } .dm-pane__tag--kasse .dm-pane__more { font-size: .85rem; } }

/* Farblogik: grün = Kassenleistung, orange = Privatleistung. Reisbach (Kasse + Privat) ist jetzt grün, Wartenberg (nur Privat) orange. */
.dm-loc--reisbach { background: linear-gradient(320deg, #2E3D26, #1F2A1A); }
.dm-loc--wartenberg { background: linear-gradient(320deg, #964420, #7A3010); }
.dm-rc--reisbach { background: linear-gradient(320deg, #2E3D26, #1A2415); }
.dm-rc--wartenberg { background: linear-gradient(320deg, #A44E22, #7A3010); }
.dm-loc--reisbach::after, .dm-rc--reisbach::after { background: linear-gradient(180deg, rgba(14,24,10,.6) 0%, rgba(14,24,10,.38) 45%, rgba(14,24,10,0) 78%); }
.dm-loc--wartenberg::after, .dm-rc--wartenberg::after { background: linear-gradient(180deg, rgba(74,26,10,.55) 0%, rgba(74,26,10,.34) 45%, rgba(74,26,10,0) 78%); }

/* Angebots-Umschalter: Tab 1 (Verordnung/Kasse) grün, Tab 2 (Privat) orange */
.dm-offer__tabs::before { transition: transform .6s cubic-bezier(.3,1.15,.4,1), background-color .45s, box-shadow .45s; }
.dm-offer__tabs:has(> [aria-selected="true"]:first-child)::before { background: #2E3D26; box-shadow: 0 8px 20px rgba(31,42,26,.35), inset 0 1px 0 rgba(255,240,218,.25); }

/* Kopfzeile: Telefonnummer Reisbach immer sichtbar, als ruhiger Textlink links vom Termin-Button (Builder-Widget „Header Termin“) */
@media (min-width: 1200px) {
  .tm-header a.uk-button-text { box-sizing: border-box; display: inline-flex; align-items: center; gap: 10px; min-height: 0; padding: 0 4px; border: 0; border-radius: 0; background: none !important; box-shadow: none !important; -webkit-backdrop-filter: none; backdrop-filter: none; color: #FFF0DA; font: 500 1.05rem/1 'Atkinson Hyperlegible Next', 'Atkinson Hyperlegible', sans-serif; letter-spacing: .03em; text-transform: none; text-shadow: 0 1px 6px rgba(56,26,12,.28); white-space: nowrap; }
  .tm-header a.uk-button-text::before { content: ''; flex: none; width: 18px; height: 18px; background: currentColor; -webkit-mask: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15 15 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E"); mask: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15 15 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E"); }
  .tm-header a.uk-button-text:hover { color: #fff; text-decoration: underline; text-underline-offset: 5px; }
  .tm-header a.uk-button-text:hover::before { transform: none; }
  .tm-header .uk-navbar-right .uk-grid { flex-wrap: nowrap; }
  .tm-header .uk-navbar-right .uk-button-primary { flex: none; }
}
/* Unter 1700 px würde die mittig sitzende Navigation gegen Nummer + Button stoßen: sie rückt neben das Logo */
@media (min-width: 1200px) and (max-width: 1699px) {
  .tm-header .uk-navbar-center { position: static; transform: none; margin-right: auto; margin-left: clamp(20px, 3vw, 56px); }
}
@media (min-width: 1200px) {
  .tm-header a.uk-button-text::before { position: static; inset: auto; right: auto; bottom: auto; border: 0; transition: none; }
  .tm-header a.uk-button-text::after { content: none; display: none; }
}
@media (min-width: 1200px) and (max-width: 1699px) {
  .tm-header .uk-navbar .uk-navbar-center { position: static; left: auto; transform: none; margin-right: 0; margin-left: clamp(20px, 3vw, 56px); }
  .tm-header .uk-navbar .uk-navbar-right { margin-left: auto; }
}
@media (min-width: 1200px) and (max-width: 1699px) {
  .tm-header .uk-navbar .uk-navbar-center { align-self: stretch; display: flex; align-items: center; }
}
@media (min-width: 1200px) and (max-width: 1699px) {
  .tm-header .uk-navbar .uk-navbar-center { align-self: auto; margin-top: auto; margin-bottom: auto; }
}
/* Mobiles Menü: Telefonnummer über dem Termin-Button */
.dm-mnav .dm-mnav__tel { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; margin: 0 0 12px; color: #FFF0DA; font: 600 1.15rem/1 'Atkinson Hyperlegible Next', 'Atkinson Hyperlegible', sans-serif; letter-spacing: .03em; text-decoration: none; }
.dm-mnav .dm-mnav__tel::before { content: ''; flex: none; width: 20px; height: 20px; background: currentColor; -webkit-mask: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15 15 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E"); mask: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15 15 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E"); }

/* Telefon-Kapsel: Glaskreis mit Hörer, daneben kleine Standortzeile über der Nummer. Hover füllt den Kreis, der Hörer wackelt einmal. */
@media (min-width: 1200px) {
  .tm-header a.uk-button-text { display: inline-flex; align-items: center; gap: 12px; padding: 4px 18px 4px 4px; border-radius: 500px; transition: background-color .35s; }
  .tm-header a.uk-button-text::before, .tm-header a.uk-button-text::after { content: none; display: none; }
  .tm-header a.uk-button-text:hover { text-decoration: none; }
  .dm-cap__ic { flex: none; width: 40px; height: 40px; border-radius: 50%; background: rgba(255,240,218,.14) no-repeat center / 19px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23FFF0DA' d='M6.6 10.8a15 15 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E"); box-shadow: inset 0 0 0 1.5px rgba(255,240,218,.5); transition: background-color .35s, box-shadow .35s; }
  .dm-cap__t { display: flex; flex-direction: column; gap: 4px; align-items: flex-start; }
  .dm-cap__t small { font: 500 .8rem/1 'Atkinson Hyperlegible Next', 'Atkinson Hyperlegible', sans-serif; letter-spacing: .03em; color: rgba(255,240,218,.82); }
  .dm-cap__t b { font: 700 1.1rem/1 'Atkinson Hyperlegible Next', 'Atkinson Hyperlegible', sans-serif; letter-spacing: .02em; color: #FFF0DA; }
  .uk-button-text.is-open .dm-cap__t small { color: #DDE8C8; }
  .tm-header a.uk-button-text:hover .dm-cap__ic, .tm-header a.uk-button-text:focus-visible .dm-cap__ic { background-color: #A44E22; box-shadow: inset 0 0 0 1.5px #FFF0DA; animation: dm-ring .7s ease-in-out 1; }
  .tm-header a.uk-button-text:focus-visible { outline: 2px solid #FFF0DA; outline-offset: 3px; }
}
@keyframes dm-ring { 0%, 100% { transform: rotate(0); } 18% { transform: rotate(-14deg); } 36% { transform: rotate(12deg); } 54% { transform: rotate(-9deg); } 72% { transform: rotate(6deg); } }
@media (prefers-reduced-motion: reduce) { .tm-header a.uk-button-text:hover .dm-cap__ic { animation: none; } }
@media (min-width: 1200px) {
  .tm-header a.uk-button-text, .tm-header a.uk-button-text:hover, .tm-header a.uk-button-text:focus { background: none !important; box-shadow: none !important; width: auto; min-width: 0; }
}

/* Kopfzeile ab 1200 px: Logo | Navigation | Nummer + Button als drei Spalten. Die Navigation sitzt mittig im freien Raum und kann nie gegen die Nummer stoßen. */
@media (min-width: 1200px) {
  .tm-header .uk-navbar { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; }
  .tm-header .uk-navbar .uk-navbar-left { grid-column: 1; }
  .tm-header .uk-navbar .uk-navbar-center { position: static; left: auto; transform: none; grid-column: 2; justify-self: center; align-self: center; margin: 0; }
  .tm-header .uk-navbar .uk-navbar-right { grid-column: 3; margin: 0; }
}
/* Telefon-Kapsel ohne Ortszeile: nur Kreis + Nummer; ein kleiner grüner Punkt am Kreis zeigt, wenn Reisbach gerade erreichbar ist */
@media (min-width: 1200px) {
  .dm-cap__t small { display: none; }
  .dm-cap__ic { position: relative; }
  .uk-button-text.is-open .dm-cap__ic::after { content: ''; position: absolute; right: 1px; top: 1px; width: 10px; height: 10px; border-radius: 50%; background: #8FB27A; box-shadow: 0 0 0 2px #3A2315; }
  .dm-cap__t b { font-size: 1.15rem; }
}

/* Zwei Leisten: Hauptleiste (Logo, Menü, Termin) und rechts daneben eine kleinere Glasleiste nur mit der Telefonnummer */
@media (min-width: 1200px) {
  .tm-header { --dm-pw: 236px; }
  .tm-header .uk-navbar-container { margin-right: calc(20px + var(--dm-pw) + 2px); }
  .tm-header .dm-phonebar { position: absolute; z-index: 3; right: 20px; top: 10px; box-sizing: border-box; width: var(--dm-pw); height: 80px; display: flex; align-items: center; justify-content: center; border-radius: 999px;
    background: linear-gradient(180deg, rgba(255,240,218,.16), rgba(255,240,218,.03)), rgba(118,50,20,.46);
    -webkit-backdrop-filter: blur(14px) saturate(1.8); backdrop-filter: blur(14px) saturate(1.8);
    box-shadow: inset 0 0 0 1px rgba(255,240,218,.32), inset 0 1.5px 0 rgba(255,240,218,.42), inset 0 -10px 20px rgba(255,200,150,.07), 0 12px 32px rgba(20,8,4,.22); }
  .tm-header .dm-phonebar a.uk-button-text { padding: 4px 8px 4px 4px; }
}
@media (min-width: 1200px) {
  .tm-header .uk-navbar-container { box-sizing: border-box; width: calc(100% - 40px - var(--dm-pw) - 2px); max-width: calc(1400px - var(--dm-pw) - 2px); margin-left: max(20px, calc((100% - 1400px) / 2)); margin-right: 0; }
  .tm-header .dm-phonebar { right: max(20px, calc((100% - 1400px) / 2)); }
}

/* Nummer in der kleinen Leiste = gleicher Button wie „Termin vereinbaren“, davor ein kleiner Hörer */
@media (min-width: 1200px) {
  .tm-header .dm-phonebar a.dm-tel { display: inline-flex; align-items: center; gap: 10px; }
  .tm-header .dm-phonebar a.dm-tel::before { content: ''; flex: none; width: 16px; height: 16px; background: currentColor; -webkit-mask: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15 15 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E"); mask: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15 15 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E"); }
}

/* Wasserbrücke zwischen den beiden Leisten: gleiche Glasrezeptur wie die Nummern-Leiste, Form per clip-path (JS) */
.dm-bridge { display: none; }
@media (min-width: 1200px) {
  .tm-header .dm-bridge { display: block; position: absolute; z-index: 2; pointer-events: none;
    background: linear-gradient(180deg, rgba(255,240,218,.16), rgba(255,240,218,.03)), rgba(118,50,20,.46);
    -webkit-backdrop-filter: blur(14px) saturate(1.8); backdrop-filter: blur(14px) saturate(1.8); }
  .tm-header .dm-bridge svg { position: absolute; inset: 0; overflow: visible; }
  .tm-header .dm-bridge path { fill: none; stroke: rgba(255,240,218,.34); stroke-width: 1.2; stroke-linecap: round; }
}
.tm-header .dm-phonebar { pointer-events: auto; }
.tm-header.dm-pg-on .dm-phonebar { background: none; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }

/* Nummern-Button grün (Kassenleistung-Grün, wie die Etiketten) */
@media (min-width: 1200px) {
  .tm-header .dm-phonebar a.dm-tel, .tm-header .dm-phonebar a.dm-tel:hover { background-color: rgba(46,61,38,.94); box-shadow: 0 6px 16px rgba(31,42,26,.38), inset 0 0 0 .5px rgba(255,240,218,.45), inset 0 1px 1px rgba(255,240,218,.5), inset 0 -6px 10px -6px rgba(255,240,218,.3); color: #FFF0DA; }
  .tm-header .dm-phonebar a.dm-tel:hover { background-color: rgba(58,76,48,.96); }
}

/* Nummern-Leiste ab dem ersten Bild da: Der Server legt sie im HTML neben die Hauptleiste (dombrowski-wow.php). Sie besteht aus drei Lagen wie die Glasfläche der Leiste:
   Tönung (.dm-phonetint, .dm-phoneneck-t) UNTER dem Glas (.dm-phonebar, .dm-phoneneck), sodass der Filter die Tönung mitsättigt. Hals in der Endform (gleicher Pfad wie in
   dombrowski-nav.js, Abstand 12 px, Kurvenhebel 12). Mit der gemeinsamen Glasfläche (dm-ug-ext) werden diese Lagen ausgeblendet; Farbe und Form sind dann identisch. */
@media (min-width: 1200px) {
  .tm-header { --dm-pr: max(20px, (100% - 1400px) / 2); --dm-tintc: color-mix(in srgb, var(--lg-c7, #3a2014) calc(var(--lg-tint, .41) * 100%), transparent); --dm-neck: path("M0 68.28 C8.49 59.8 16.95 59.8 25.44 68.28 L25.44 11.72 C16.95 20.2 8.49 20.2 0 11.72 A40 40 0 0 1 0 68.28 Z"); }
  .tm-header .dm-phonetint { position: absolute; z-index: 2; pointer-events: none; right: var(--dm-pr); top: 10px; width: var(--dm-pw); height: 80px; border-radius: 999px; background: var(--dm-tintc); }
  .tm-header .dm-phoneneck-t, .tm-header .dm-phoneneck { position: absolute; pointer-events: none; right: calc(var(--dm-pr) + var(--dm-pw) - 11.72px); top: 10px; width: 25.44px; height: 80px; clip-path: var(--dm-neck); }
  .tm-header .dm-phoneneck-t { z-index: 2; background: var(--dm-tintc); }
  .tm-header .dm-phoneneck { z-index: 3; -webkit-backdrop-filter: blur(var(--dm-blur, 8.5px)) saturate(var(--dm-sat, 2.15)); backdrop-filter: blur(var(--dm-blur, 8.5px)) saturate(var(--dm-sat, 2.15)); }
  .tm-header .dm-phonebar { opacity: 1; background: none; -webkit-backdrop-filter: blur(var(--dm-blur, 8.5px)) saturate(var(--dm-sat, 2.15)); backdrop-filter: blur(var(--dm-blur, 8.5px)) saturate(var(--dm-sat, 2.15));
    box-shadow: 0 10px 30px rgba(56,26,12,.20), 0 2px 6px rgba(56,26,12,.12), inset 0 0 0 .5px rgba(255,240,218,.35), inset 0 1px 1px rgba(255,240,218,.35), inset 0 -8px 16px -8px rgba(255,240,218,.18); }
  .tm-header.dm-ug-ext .dm-phonetint, .tm-header.dm-ug-ext .dm-phoneneck-t, .tm-header.dm-ug-ext .dm-phoneneck { display: none; }
  .tm-header .dm-bridge { display: none !important; }
}

/* Mobile Leiste ganz unten: runder oranger Anruf-Button links, daneben der grüne Termin-Button */
@media (max-width: 959px) {
  .dm-cta { bottom: max(4px, env(safe-area-inset-bottom)); display: flex; align-items: center; gap: 8px; width: max-content; max-width: calc(100vw - 16px); }
  .dm-cta .uk-button { padding-inline: 22px; }
  body .dm-cta .uk-button.uk-button-primary.dm-cta__book { background-color: rgba(46,61,38,.96); }
  body .dm-cta .uk-button.uk-button-primary.dm-cta__call { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 42px; height: 42px; min-height: 0; padding: 0; border-radius: 50%; background-color: rgba(134,58,20,.98); }
  .dm-cta__call svg { display: block; }
}

/* Anruf-Sheet: von unten, helles Papier wie die Karten, große Tippflächen */
.dm-call { position: fixed; inset: 0; z-index: 1200; }
.dm-call[hidden] { display: none; }
.dm-call__scrim { position: absolute; inset: 0; background: rgba(31,18,10,.5); opacity: 0; transition: opacity .35s ease; }
.dm-call__panel { position: absolute; left: 0; right: 0; bottom: 0; max-height: 92dvh; overflow-y: auto; overscroll-behavior: contain;
  padding: 26px 20px calc(22px + env(safe-area-inset-bottom)); border-radius: 28px 28px 0 0; background: #FBF5EA; color: #4D3A30;
  box-shadow: 0 -12px 40px rgba(31,18,10,.28), inset 0 1px 0 rgba(255,240,218,.9); transform: translateY(100%); transition: transform .38s cubic-bezier(.2,.8,.2,1); }
.dm-call.is-on .dm-call__scrim { opacity: 1; }
.dm-call.is-on .dm-call__panel { transform: none; }
html.dm-call-open { overflow: hidden; }
.dm-call__grip { position: absolute; top: 9px; left: 50%; width: 40px; height: 4px; margin-left: -20px; border-radius: 4px; background: rgba(77,58,48,.25); }
.dm-call__x { position: absolute; top: 14px; right: 14px; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: rgba(77,58,48,.08); color: #2A1710; }
.dm-call__h { margin: 4px 56px 6px 0; font: 400 28px/1.15 Jost, sans-serif; color: #2A1710; }
.dm-call__lead { margin: 0 0 18px; font-size: 18px; line-height: 1.5; }
.dm-call__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.dm-call__row { display: grid; grid-template-columns: 44px 1fr; grid-template-areas: "ic tx" "ic num"; column-gap: 14px; align-items: center; padding: 14px 16px; border-radius: 20px; background: rgba(255,240,218,.7); box-shadow: inset 0 0 0 1px rgba(77,58,48,.14); color: inherit; text-decoration: none; }
.dm-call__row:active { background: rgba(255,240,218,1); }
.dm-call__ic { grid-area: ic; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: rgba(134,58,20,.98); color: #FFF0DA; }
.dm-call__tx { grid-area: tx; display: grid; }
.dm-call__n { font: 500 20px/1.2 Jost, sans-serif; color: #2A1710; }
.dm-call__t, .dm-call__note { font-size: 16px; line-height: 1.4; color: #66564A; }
.dm-call__note { color: #2E3D26; font-weight: 500; }
.dm-call__num { grid-area: num; margin-top: 4px; font: 500 22px/1.2 Jost, sans-serif; letter-spacing: .02em; color: #8A3A12; }
.dm-call__info { margin: 18px 0 0; padding: 16px 18px; border-radius: 20px; background: rgba(46,61,38,.1); box-shadow: inset 0 0 0 1px rgba(46,61,38,.22); font-size: 18px; line-height: 1.5; color: #2A1710; }
.dm-call__info b { display: block; font-weight: 600; color: #2E3D26; }
.dm-call__more { display: block; margin-top: 14px; padding: 12px 0; text-align: center; font-size: 18px; color: #93431D; text-decoration: underline; text-underline-offset: 4px; }
@media (prefers-reduced-motion: reduce) { .dm-call__scrim, .dm-call__panel { transition: none; } }


/* neckfit */ @media (min-width: 1200px) { .tm-header .dm-phoneneck { -webkit-backdrop-filter: blur(var(--dm-blur, 8.5px)) saturate(1.7); backdrop-filter: blur(var(--dm-blur, 8.5px)) saturate(1.7); } }
/* pillfit */ @media (min-width: 1200px) { .tm-header:not(.dm-ug-ext) .dm-phonebar { -webkit-backdrop-filter: blur(var(--dm-blur, 8.5px)) saturate(1.9); backdrop-filter: blur(var(--dm-blur, 8.5px)) saturate(1.9); } }
/* Buttons in der Kopfzeile getauscht: „Termin vereinbaren“ grün, Telefonnummer orange (Desktop) */
@media (min-width: 1200px) {
  .tm-header .uk-navbar-container .uk-button-primary { background: rgba(46,61,38,.94) !important; box-shadow: 0 6px 16px rgba(31,42,26,.38), inset 0 0 0 .5px rgba(255,240,218,.45), inset 0 1px 1px rgba(255,240,218,.5), inset 0 -6px 10px -6px rgba(255,240,218,.3) !important; }
  .tm-header .dm-phonebar a.dm-tel, .tm-header .dm-phonebar a.dm-tel:hover { background-color: rgba(164,78,34,.94) !important; box-shadow: 0 6px 16px rgba(164,78,34,.38), inset 0 0 0 .5px rgba(255,240,218,.45), inset 0 1px 1px rgba(255,240,218,.5), inset 0 -6px 10px -6px rgba(255,240,218,.3) !important; }
  .tm-header .dm-phonebar a.dm-tel:hover { background-color: rgba(184,92,42,.96) !important; }
}

/* Handy-Hero: neben „Termin vereinbaren“ ein Anruf-Button mit der Wartenberg-Nummer (Desktop hat dafür die Nummern-Leiste) */
.dm-herotel { display: none; }
@media (max-width: 959px) {
  .dm-fan__text .dm-stage__cta { display: flex; flex-wrap: nowrap; gap: 10px; }
  .dm-fan__text .dm-stage__cta .uk-button { flex: 0 1 auto; padding-left: 20px !important; padding-right: 20px !important; white-space: nowrap; }
  .dm-fan__text .dm-herotel { display: inline-flex; align-items: center; gap: 8px; color: #FFF0DA; background: rgba(164,78,34,.94); box-shadow: 0 6px 16px rgba(164,78,34,.38), inset 0 0 0 .5px rgba(255,240,218,.45), inset 0 1px 1px rgba(255,240,218,.5), inset 0 -6px 10px -6px rgba(255,240,218,.3); }
  .dm-fan__text .dm-herotel::before { content: ''; flex: none; width: 15px; height: 15px; background: currentColor; -webkit-mask: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15 15 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E"); mask: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15 15 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E"); }
}
@media (max-width: 359px) { .dm-fan__text .dm-stage__cta { flex-wrap: wrap; } }
@media (max-width: 419px) { .dm-fan__text .dm-stage__cta { gap: 8px; } .dm-fan__text .dm-stage__cta .uk-button { padding-left: 14px !important; padding-right: 14px !important; font-size: .92rem; letter-spacing: .02em; } .dm-fan__text .dm-herotel { gap: 6px; } }
/* Handy-Hero: die beiden Buttons teilen sich die volle Breite zu gleichen Teilen */
@media (max-width: 959px) {
  .dm-fan__text .dm-stage__cta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; width: 100%; }
  .dm-fan__text .dm-stage__cta .uk-button { width: 100%; min-width: 0; box-sizing: border-box; justify-content: center; text-align: center; padding-left: 8px !important; padding-right: 8px !important; }
}
@media (max-width: 359px) { .dm-fan__text .dm-stage__cta { grid-template-columns: 1fr; } }

/* Start-Hero Desktop: der Nummern-Button ersetzt „Trainingsraum ansehen“ (auf dem Handy war dieser schon ausgeblendet) */
@media (min-width: 960px) {
  .dm-fan__text .dm-stage__cta .uk-button-default { display: none !important; }
  .dm-fan__text .dm-herotel { display: inline-flex !important; align-items: center; gap: 10px; color: #FFF0DA; background: rgba(164,78,34,.94); box-shadow: 0 6px 16px rgba(164,78,34,.38), inset 0 0 0 .5px rgba(255,240,218,.45), inset 0 1px 1px rgba(255,240,218,.5), inset 0 -6px 10px -6px rgba(255,240,218,.3); }
  .dm-fan__text .dm-herotel::before { content: ''; flex: none; width: 16px; height: 16px; background: currentColor; -webkit-mask: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15 15 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E"); mask: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15 15 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E"); }
  .dm-fan__text .dm-herotel:hover { background: rgba(184,92,42,.96); color: #fff; }
}

/* Kopfzeile Desktop: Nummer nur als runder Hörer-Button, die Leiste dahinter wird zum Kreis; Klick öffnet das Kontakt-Modal */
@media (min-width: 1200px) {
  .tm-header { --dm-pw: 80px; }
  .tm-header .dm-phonebar a.dm-tel { box-sizing: border-box; width: 52px; height: 52px; min-width: 0; padding: 0 !important; border-radius: 50% !important; font-size: 0 !important; line-height: 0 !important; letter-spacing: 0; gap: 0; justify-content: center; display: inline-flex; align-items: center; }
  .tm-header .dm-phonebar a.dm-tel::before { width: 22px; height: 22px; margin: 0; }
}


/* Telefon-Button oben: gleich hoch wie „Termin vereinbaren“ (38 px), Trennung zur Hauptleiste enger (6 px) */
@media (min-width: 1200px) {
  .tm-header .dm-phonebar a.dm-tel { width: 38px; height: 38px; }
  .tm-header .dm-phonebar a.dm-tel::before { width: 18px; height: 18px; }
}

/* Anruf-Sheet auf dem Desktop: derselbe Inhalt, als zentrierte Karte statt Sheet von unten; Auslöser ist der runde Hörer-Button in der Kopfzeile */
@media (min-width: 960px) {
  .dm-call__panel { left: 50%; right: auto; top: 50%; bottom: auto; width: min(92vw, 480px); max-height: 86vh; padding: 36px 32px 28px; border-radius: 28px; box-shadow: 0 30px 80px rgba(31,18,10,.4), inset 0 1px 0 rgba(255,240,218,.9); transform: translate(-50%, -46%) scale(.97); opacity: 0; transition: transform .4s cubic-bezier(.2,.8,.2,1), opacity .3s ease; }
  .dm-call.is-on .dm-call__panel { transform: translate(-50%, -50%); opacity: 1; }
  .dm-call__grip { display: none; }
  .dm-call__row:hover { background: #fff; }
}
/* Termin-Button rückt dichter an den Telefon-Kreis (rechter Innenabstand der Leiste 24 -> 12 px) */
@media (min-width: 1200px) { .tm-header .uk-navbar-container .uk-navbar-right { margin-right: -12px; } }

/* ===== Zusatzleistungen: Ergebniskarte ===== */
#tm-main .dm-say__out { display: grid; margin-top: 2.4rem; }
#tm-main .dm-sres { grid-area: 1 / 1; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); overflow: hidden; border-radius: 26px; background: rgba(255,240,218,.72); box-shadow: var(--dm-glass-sh), 0 24px 56px rgba(56,26,12,.12); opacity: 0; visibility: hidden; transform: translateY(14px); transition: opacity .35s ease, transform .6s var(--dm-ease), visibility 0s .35s; }
#tm-main .dm-sres.is-on { opacity: 1; visibility: visible; transform: none; transition: opacity .45s ease .1s, transform .6s var(--dm-ease) .1s, visibility 0s; }
#tm-main .dm-sres__pic { position: relative; min-height: 400px; background: #2A1710; overflow: hidden; }
#tm-main .dm-sres__img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; transform: scale(1.07); transition: transform 4s cubic-bezier(.2,.6,.2,1); }
#tm-main .dm-sres.is-on .dm-sres__img { transform: none; }
#tm-main .dm-sres__body { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(1.8rem, 3.6vw, 3.6rem); }
#tm-main .dm-sres__kicker { margin: 0 0 .7rem; font: 700 1rem/1.3 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; color: #93431D; }
#tm-main .dm-sres__name { margin: 0 0 1rem; font: 500 clamp(2rem, 3.4vw, 3.2rem)/1.08 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.015em; color: #2A1710; }
#tm-main .dm-sres__text { margin: 0; max-width: 29em; font-size: 1.25rem; line-height: 1.55; color: #4D3A30; }
#tm-main .dm-sres__term { display: flex; align-items: center; flex-wrap: wrap; gap: .3rem .7rem; margin: 1.5rem 0 0; font-size: 1.05rem; line-height: 1.4; color: #4D3A30; }
#tm-main .dm-sres__term span { padding: .12rem .7rem; border-radius: 500px; font-weight: 700; font-size: .95rem; color: #2A1710; background: rgba(42,23,16,.09); }
#tm-main .dm-sres__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.6rem; margin: 1.9rem 0 0; }
#tm-main .dm-sres__more { font-weight: 700; color: #93431D; text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px; }
#tm-main .dm-sres__more:hover { color: #7F3818; }
@media (max-width: 959px) {
  #tm-main .dm-sres { grid-template-columns: 1fr; }
  #tm-main .dm-sres__pic { min-height: 0; height: 230px; }
  #tm-main .dm-sres__body { padding: 1.6rem; }
}
@media (prefers-reduced-motion: reduce) {
}



/* ===== Zusatzleistungen: „Sag es in deinen Worten“ – freies Textfeld + Beispielsätze, Vorschlag nach Stichwörtern ===== */
#tm-main .dm-say { margin-top: 2.2rem; }
#tm-main .dm-say__field { position: relative; display: block; }
#tm-main .dm-say__lab { display: block; margin: 0 0 .7rem; font: 700 1rem/1.3 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; color: #93431D; }
#tm-main .dm-say__in { box-sizing: border-box; width: 100%; padding: 1.15rem 4.4rem 1.15rem 1.7rem; border: 0; border-radius: 500px; font: 500 clamp(1.4rem, 2.6vw, 2.2rem)/1.2 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.01em; color: #2A1710; background: rgba(255,240,218,.78); box-shadow: var(--dm-glass-sh), 0 18px 40px rgba(56,26,12,.12); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); transition: box-shadow .3s; }
#tm-main .dm-say__in::placeholder { color: rgba(77,58,48,.62); opacity: 1; }
#tm-main .dm-say__in:focus { outline: 0; box-shadow: 0 0 0 3px #A44E22, 0 18px 40px rgba(56,26,12,.16); }
#tm-main .dm-say__box { position: relative; display: block; }
#tm-main .dm-say__go { all: unset; box-sizing: border-box; cursor: pointer; position: absolute; right: .6rem; top: 50%; margin-top: -1.6rem; display: grid; place-items: center; width: 3.2rem; height: 3.2rem; border-radius: 50%; color: #FFF0DA; background-color: #A44E22; background-image: var(--dm-terra); box-shadow: 0 8px 18px rgba(138,58,18,.3), inset 0 1px 0 rgba(255,240,218,.3); transition: transform .35s var(--dm-ease); }
#tm-main .dm-say__go:hover { transform: translateX(3px); } #tm-main .dm-say__go:focus-visible { outline: 3px solid #A44E22; outline-offset: 3px; }
#tm-main .dm-say__go svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
#tm-main .dm-say__chips { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 1.2rem 0 0; }
#tm-main .dm-say__chips > span { margin-right: .4rem; font-size: 1.05rem; color: #4D3A30; }
#tm-main .dm-schip { all: unset; box-sizing: border-box; cursor: pointer; padding: .55rem 1.1rem; border-radius: 500px; font: 600 1.05rem/1.3 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; color: #2A1710; background: rgba(255,240,218,.6); box-shadow: var(--dm-glass-sh); transition: transform .35s var(--dm-ease), background-color .3s, color .3s; }
#tm-main .dm-schip:hover { transform: translateY(-2px); color: #93431D; } #tm-main .dm-schip:focus-visible { outline: 3px solid #A44E22; outline-offset: 3px; }
#tm-main .dm-schip.is-on { color: #FFF0DA; background-color: #A44E22; background-image: var(--dm-terra); }
#tm-main .dm-say__wrap { display: grid; grid-template-rows: 0fr; margin-top: 0; transition: grid-template-rows .6s var(--dm-ease), margin-top .6s var(--dm-ease); }
#tm-main .dm-say.has-res .dm-say__wrap { grid-template-rows: 1fr; margin-top: 2rem; }
#tm-main .dm-say__wrap > div { min-height: 0; overflow: hidden; }
#tm-main .dm-say__also { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin: 1.1rem 0 0; font-size: 1.05rem; color: #4D3A30; }
#tm-main .dm-say__also:empty { display: none; }
#tm-main .dm-say__miss { margin: 0 0 1rem; font-size: 1.1rem; color: #4D3A30; }
#tm-main .dm-say__miss:empty { display: none; }
@media (max-width: 599px) { #tm-main .dm-say__in { padding-left: 1.2rem; } #tm-main .dm-say__chips > span { flex-basis: 100%; } }
@media (prefers-reduced-motion: reduce) { #tm-main .dm-say__wrap { transition: none; } }

/* Zwei Wege: gleicher Start, gleiches Ziel, unterschiedlich viele Stationen */
#tm-main .dm-ways { display: grid; gap: clamp(1.1rem, 2.2vw, 1.8rem); margin-top: 2.6rem; }
#tm-main .dm-way { padding: clamp(1.7rem, 3vw, 2.6rem) clamp(1.6rem, 3.6vw, 3.2rem) clamp(1.5rem, 2.6vw, 2.2rem); border-radius: 26px; background: rgba(255,240,218,.6); box-shadow: var(--dm-glass-sh); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
#tm-main .dm-way.is-main { background: var(--dm-terra); color: #FFF0DA; box-shadow: 0 18px 40px rgba(138,58,18,.28), inset 0 0 0 1px rgba(255,240,218,.18), inset 0 1px 0 rgba(255,240,218,.3); }
#tm-main .dm-way__name { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem 1rem; margin: 0 0 2.1rem; font: 500 clamp(1.7rem, 2.6vw, 2.4rem)/1.1 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.012em; color: #2A1710; }
#tm-main .dm-way.is-main .dm-way__name { color: #FFF0DA; }
#tm-main .dm-way__name em { padding: .2rem .85rem; border-radius: 500px; font: 700 1rem/1.3 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; font-style: normal; letter-spacing: 0; color: #8A3A12; background: #FFF0DA; }
#tm-main .dm-way__track { position: relative; display: flex; justify-content: space-between; margin: 0; padding: 0; list-style: none; }
#tm-main .dm-way__track::before { content: ''; position: absolute; left: 10px; right: 10px; top: 10px; border-top: 2px dashed rgba(42,23,16,.4); transform-origin: left center; transition: transform 1s var(--dm-ease) .15s; }
#tm-main .dm-way.is-main .dm-way__track::before { border-top: 3px solid rgba(255,240,218,.92); top: 9px; }
#tm-main .dm-way__track li { position: relative; display: flex; flex-direction: column; max-width: 11.5em; transition: opacity .6s ease, transform .7s var(--dm-ease); }
#tm-main .dm-way__track li.is-first { align-items: flex-start; text-align: left; }
#tm-main .dm-way__track li.is-mid { align-items: center; text-align: center; }
#tm-main .dm-way__track li.is-last { align-items: flex-end; text-align: right; }
#tm-main .dm-way__track i { position: relative; flex: none; width: 20px; height: 20px; box-sizing: border-box; border-radius: 50%; border: 2px solid #2A1710; background: #F4E9D6; }
#tm-main .dm-way__track li.is-last i { background: #2A1710; }
#tm-main .dm-way.is-main .dm-way__track i { border-color: #FFF0DA; background: #A44E22; }
#tm-main .dm-way.is-main .dm-way__track li.is-last i { background: #FFF0DA; box-shadow: 0 0 0 7px rgba(255,240,218,.22); }
#tm-main .dm-way__track span { margin-top: .9rem; font: 600 1.15rem/1.3 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; color: #2A1710; }
#tm-main .dm-way.is-main .dm-way__track span { color: #FFF0DA; }
#tm-main .dm-way__note { margin: 1.7rem 0 0; font-size: 1.1rem; line-height: 1.5; color: #4D3A30; }
#tm-main .dm-way__note a { font-weight: 700; color: #93431D; text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px; }
#tm-main .dm-way.is-main .dm-way__note { color: #FFF0DA; }
#tm-main .dm-way.is-main .dm-way__note a { color: #FFF0DA; }
#tm-main .dm-ways__foot { margin-top: 1.4rem; max-width: 40em; font-size: 1.1rem; }
/* Einlaufen beim Erscheinen (nur mit JS): erst die Linie, dann die Stationen */
#tm-main .dm-ways.is-js:not(.is-in) .dm-way__track::before { transform: scaleX(0); }
#tm-main .dm-ways.is-js:not(.is-in) .dm-way__track li { opacity: 0; transform: translateY(10px); }
#tm-main .dm-ways.is-js .dm-way__track li:nth-child(2) { transition-delay: .35s; } #tm-main .dm-ways.is-js .dm-way__track li:nth-child(3) { transition-delay: .55s; } #tm-main .dm-ways.is-js .dm-way__track li:nth-child(4) { transition-delay: .75s; }
#tm-main .dm-ways.is-js .dm-way:nth-child(2) .dm-way__track::before { transition-delay: .9s; } #tm-main .dm-ways.is-js .dm-way:nth-child(2) .dm-way__track li { transition-delay: .9s; } #tm-main .dm-ways.is-js .dm-way:nth-child(2) .dm-way__track li.is-last { transition-delay: 1.5s; }
@media (max-width: 759px) {
  #tm-main .dm-way__track { flex-direction: column; gap: 1.5rem; }
  #tm-main .dm-way.is-main .dm-way__track { gap: 3.2rem; }
  #tm-main .dm-way__track::before { right: auto; bottom: 10px; width: 0; height: auto; border-top: 0; border-left: 2px dashed rgba(42,23,16,.4); transform-origin: top center; }
  #tm-main .dm-way.is-main .dm-way__track::before { border-left: 3px solid rgba(255,240,218,.92); left: 9px; }
  #tm-main .dm-way__track li, #tm-main .dm-way__track li.is-first, #tm-main .dm-way__track li.is-mid, #tm-main .dm-way__track li.is-last { flex-direction: row; align-items: center; text-align: left; max-width: none; gap: 1rem; }
  #tm-main .dm-way__track span { margin: 0; }
  #tm-main .dm-ways.is-js:not(.is-in) .dm-way__track::before { transform: scaleY(0); }
}
@media (prefers-reduced-motion: reduce) { #tm-main .dm-way__track::before, #tm-main .dm-way__track li { transition: none; } }


/* Zusatzleistungen: helles Heldenfoto braucht einen kräftigeren Schleier hinter der Überschrift (nur Desktop; Handy hat schon einen starken) */
@media (min-width: 960px) { body .dm-zl-hero .dm-phero__veil { background: linear-gradient(90deg, rgba(31,14,8,.84) 0%, rgba(31,14,8,.6) 46%, rgba(31,14,8,.2) 80%), linear-gradient(180deg, rgba(31,14,8,.4) 0%, rgba(31,14,8,0) 26%, rgba(31,14,8,0) 60%, rgba(31,14,8,.7) 100%); } }
#tm-main .dm-ways__foot { max-width: 46em !important; }
@media (min-width: 960px) { #tm-main .dm-zl-hero .dm-glass--num strong { font-size: clamp(2.6rem, 4.3vw, 4.2rem); letter-spacing: -.03em; line-height: 1; } }
#tm-main .dm-zl-hero .dm-glass--num strong { white-space: nowrap; }


@media (min-width: 960px) { #tm-main .dm-zl-hero .dm-glass--num strong { font-size: clamp(2.6rem, 4.3vw, 4.2rem); letter-spacing: -.03em; line-height: 1; } }
#tm-main .dm-zl-hero .dm-glass--num strong { white-space: nowrap; }

/* Wähler „Wobei wir dir helfen“ am Handy: Liste und Foto-Karte passen zusammen in einen Bildschirm (kein Hoch- und Runterscrollen beim Auswählen) */
@media (max-width: 959px) {
  .dm-picks--photo { height: calc(100svh - 235px); min-height: 440px; max-height: 760px; grid-template-rows: auto minmax(0, 1fr); gap: 12px; margin-top: 1.2rem; }
  .dm-picks--photo .dm-picks__tabs { align-self: stretch; }
  .dm-picks--photo .dm-pickbtn { padding: clamp(.4rem, 1.5svh, .75rem) 0; font-size: clamp(1.1rem, 3.3svh, 1.5rem); row-gap: 0; flex-wrap: nowrap; align-items: center; }
  .dm-picks--photo .dm-pickbtn[aria-selected="true"] { padding-left: .9rem; }
  .dm-picks--photo .dm-picks__panels { min-height: 0; }
  .dm-picks--photo .dm-pick { padding: 16px 18px; }
  .dm-picks--photo .dm-pick__name { font-size: clamp(1.5rem, 4.4svh, 2.2rem); margin-bottom: 6px; }
  .dm-picks--photo .dm-pick p { font-size: clamp(.95rem, 2.2svh, 1.1rem); line-height: 1.4; }
}

/* Handy: Etikett sitzt in der unteren Leiste neben Anruf- und Termin-Button (eine Zeile), Text zweizeilig */
@media (max-width: 959px) {
  .dm-cta .dm-badge { position: static; left: auto; bottom: auto; transform: none; opacity: 1; flex: 0 1 auto; min-width: 0; display: grid; grid-template-columns: auto 1fr; column-gap: 8px; align-items: center; padding: 5px 12px 5px 10px; border-radius: 16px; font-size: .72rem; line-height: 1.15; white-space: normal; pointer-events: auto; box-shadow: inset 0 0 0 1px rgba(255,240,218,.34), inset 0 -3px 6px rgba(56,26,12,.22); }
  .dm-cta .dm-badge__dot { grid-row: 1 / span 2; width: 8px; height: 8px; }
  .dm-cta .dm-badge strong { grid-column: 2; }
  .dm-cta .dm-badge em, .dm-cta .dm-badge--privat > span:not(.dm-badge__dot) { display: block; grid-column: 2; padding: 0; border: 0; font-size: .68rem; font-weight: 500; opacity: .85; }
  .dm-cta .dm-badge--kasse > span:not(.dm-badge__dot) { display: none; }
  .dm-cta .uk-button { padding-inline: 16px; font-size: .85rem; }
  body .dm-cta .uk-button.uk-button-primary.dm-cta__call { padding: 0; }
}
@media (max-width: 959px) {
  .dm-cta .dm-badge { align-content: center; row-gap: 1px; }
  .dm-cta .dm-badge__dot { grid-row: 1 / -1; align-self: center; }
}
@media (max-width: 389px) {
  .dm-cta .uk-button { padding-inline: 12px; font-size: .8rem; }
  .dm-cta .dm-badge { font-size: .68rem; padding: 5px 9px 5px 8px; column-gap: 6px; }
}

/* Handy: Termin-Button rund mit Kalender-Symbol, dadurch mehr Platz für das Etikett */
@media (max-width: 959px) {
  body .dm-cta .uk-button.uk-button-primary.dm-cta__book { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 42px; height: 42px; min-height: 0; padding: 0; border-radius: 50%; }
  .dm-cta__book svg { display: block; }
  .dm-cta .dm-badge { flex: 1 1 auto; font-size: .78rem; }
  .dm-cta .dm-badge em, .dm-cta .dm-badge--privat > span:not(.dm-badge__dot) { font-size: .74rem; }
}
@media (max-width: 959px) { .dm-cta .dm-badge { border-radius: 999px; padding: 6px 18px 6px 14px; } }
@media (max-width: 389px) { .dm-cta .dm-badge { padding: 6px 14px 6px 11px; } }
@media (max-width: 959px) { .dm-cta .dm-badge { padding: 8px 24px 8px 18px; column-gap: 10px; } }
@media (max-width: 389px) { .dm-cta .dm-badge { padding: 8px 18px 8px 14px; column-gap: 8px; } }
/* Ein einzelner Reiter braucht keine Reiterleiste (Zusatzleistungen: alle Leistungen auf einen Blick) */
#tm-main .dm-offer__tabs:has(> button:only-child) { display: none; }

/* Textfeld-Finder: Feld und Absende-Knopf mit festen Maßen, der Kreis sitzt mit gleichem Abstand oben, unten und rechts im Rund */
#tm-main .dm-say__in { height: 4.8rem; padding-top: 0; padding-bottom: 0; padding-right: 5.2rem; }
#tm-main .dm-say__go { width: 3.4rem; height: 3.4rem; right: .7rem; margin-top: -1.7rem; }
@media (max-width: 599px) {
  #tm-main .dm-say__in { height: 4.2rem; padding-right: 4.2rem; }
  #tm-main .dm-say__go { width: 3rem; height: 3rem; right: .6rem; margin-top: -1.5rem; }
}
/* Textfeld-Finder mehrzeilig: <textarea> wächst per JS (grow()), Knopf bleibt unten rechts, Rund wird bei mehreren Zeilen zur Rundung 2.4rem */
#tm-main .dm-say__in { display: block; resize: none; overflow-y: auto; height: auto; min-height: 4.8rem; max-height: 14rem; border-radius: 2.4rem; padding-top: calc((4.8rem - 1.2em) / 2); padding-bottom: calc((4.8rem - 1.2em) / 2); scrollbar-width: thin; }
#tm-main .dm-say__go { top: auto; bottom: .7rem; margin-top: 0; }
@media (max-width: 599px) {
  #tm-main .dm-say__in { min-height: 8.4rem; max-height: 16rem; border-radius: 2.1rem; padding-top: calc((4.2rem - 1.2em) / 2); padding-bottom: calc((4.2rem - 1.2em) / 2); }
  #tm-main .dm-say__go { bottom: .6rem; margin-top: 0; }
}

/* ===== Return 2 Sport: Weg mit Stationen – „Du bist hier“ wandert zur gewählten Station ===== */
#tm-main .dm-trail { margin-top: 2rem; }
#tm-main .dm-trail__hint { margin: 0 0 .4rem; font: 700 1rem/1.3 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; color: #93431D; }
#tm-main .dm-trail__track { position: relative; display: flex; justify-content: space-between; padding-top: 3.6rem; }
#tm-main .dm-trail__line { position: absolute; left: 11px; right: 11px; top: calc(3.6rem + 10px); height: 3px; border-radius: 3px; background: rgba(42,23,16,.2); }
#tm-main .dm-trail__line b { display: block; height: 100%; width: 0; border-radius: 3px; background: #A44E22; transition: width .8s var(--dm-ease), height .8s var(--dm-ease); }
#tm-main .dm-trail__me { position: absolute; z-index: 2; top: calc(3.6rem + 11.5px); left: 11px; width: 38px; height: 38px; margin: -19px 0 0 -19px; border-radius: 50%; background-color: #A44E22; background-image: var(--dm-terra); box-shadow: 0 0 0 6px rgba(164,78,34,.22), 0 8px 20px rgba(138,58,18,.35), inset 0 1px 0 rgba(255,240,218,.35); transition: left .8s cubic-bezier(.3,1.2,.4,1), top .8s cubic-bezier(.3,1.2,.4,1); pointer-events: none; }
#tm-main .dm-trail__me::after { content: ''; position: absolute; inset: 11px; border-radius: 50%; background: #FFF0DA; }
#tm-main .dm-trail__me em { position: absolute; left: 50%; bottom: calc(100% + 12px); transform: translateX(-50%); padding: .3rem .95rem; border-radius: 500px; white-space: nowrap; font: 700 .95rem/1.3 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; font-style: normal; color: #FFF0DA; background: #2A1710; box-shadow: 0 8px 20px rgba(42,23,16,.25); }
#tm-main .dm-trail__me em::after { content: ''; position: absolute; left: 50%; top: 100%; margin-left: -6px; border: 6px solid transparent; border-top-color: #2A1710; border-bottom: 0; }
#tm-main .dm-trail__me.is-start em { left: -6px; transform: none; } #tm-main .dm-trail__me.is-start em::after { left: 25px; }
#tm-main .dm-trail__me.is-end em { left: auto; right: -6px; transform: none; } #tm-main .dm-trail__me.is-end em::after { left: auto; right: 25px; margin-left: 0; }
#tm-main .dm-tstop { all: unset; box-sizing: border-box; cursor: pointer; position: relative; display: flex; flex-direction: column; align-items: center; max-width: 11em; text-align: center; }
#tm-main .dm-tstop:first-of-type { align-items: flex-start; text-align: left; } #tm-main .dm-tstop:last-of-type { align-items: flex-end; text-align: right; }
#tm-main .dm-tstop i { flex: none; width: 22px; height: 22px; box-sizing: border-box; border-radius: 50%; border: 2px solid #2A1710; background: #F4E9D6; transition: background-color .4s, border-color .4s, transform .3s var(--dm-ease); }
#tm-main .dm-tstop.is-past i { background: #A44E22; border-color: #A44E22; }
#tm-main .dm-tstop:hover i { transform: scale(1.2); }
#tm-main .dm-tstop span { margin-top: .9rem; font: 600 1.15rem/1.3 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; color: #2A1710; transition: color .3s; }
#tm-main .dm-tstop[aria-selected="true"] span { color: #93431D; font-weight: 700; }
#tm-main .dm-tstop:focus-visible { outline: 3px solid #A44E22; outline-offset: 6px; border-radius: 8px; }
#tm-main .dm-trail__panels { display: grid; margin-top: 2.2rem; }
#tm-main .dm-tpan { grid-area: 1 / 1; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: clamp(1.2rem, 4vw, 3.4rem); padding: clamp(1.7rem, 3.4vw, 3rem) clamp(1.6rem, 4vw, 3.6rem); border-radius: 26px; background: rgba(255,240,218,.72); box-shadow: var(--dm-glass-sh), 0 24px 56px rgba(56,26,12,.1); opacity: 0; visibility: hidden; transform: translateY(14px); transition: opacity .3s ease, transform .6s var(--dm-ease), visibility 0s .3s; }
#tm-main .dm-tpan.is-on { opacity: 1; visibility: visible; transform: none; transition: opacity .45s ease .1s, transform .6s var(--dm-ease) .1s, visibility 0s; }
#tm-main .dm-tpan__n { font: 200 clamp(5rem, 11vw, 9.5rem)/.8 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.04em; color: #A44E22; }
#tm-main .dm-tpan__k { margin: 0 0 .5rem; font: 700 1rem/1.3 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; color: #93431D; }
#tm-main .dm-tpan__t { margin: 0 0 .8rem; font: 500 clamp(1.8rem, 3vw, 2.8rem)/1.1 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.015em; color: #2A1710; }
#tm-main .dm-tpan__p { margin: 0; max-width: 34em; font-size: 1.25rem; line-height: 1.55; color: #4D3A30; }
#tm-main .dm-trail__cta { margin: 1.8rem 0 0; }
@media (max-width: 759px) {
  #tm-main .dm-trail__track { flex-direction: column; gap: 1.5rem; padding-top: 0; }
  #tm-main .dm-trail__line { left: 10px; right: auto; top: 11px; bottom: 11px; width: 3px; height: auto; }
  #tm-main .dm-trail__line b { width: 100%; height: 0; }
  #tm-main .dm-trail__me { top: 11.5px; left: 11.5px; }
  #tm-main .dm-trail__me em { display: none; }
  #tm-main .dm-tstop, #tm-main .dm-tstop:first-of-type, #tm-main .dm-tstop:last-of-type { flex-direction: row; align-items: center; text-align: left; max-width: none; gap: 1rem; }
  #tm-main .dm-tstop span { margin: 0; }
  #tm-main .dm-tstop[aria-selected="true"] span::after { content: ' · ' attr(data-flag); font-weight: 600; color: #2A1710; }
  #tm-main .dm-tpan { grid-template-columns: 1fr; gap: .6rem; }
  #tm-main .dm-tpan__n { font-size: 4.5rem; }
}
@media (prefers-reduced-motion: reduce) { #tm-main .dm-trail__me, #tm-main .dm-trail__line b, #tm-main .dm-tpan, #tm-main .dm-tpan.is-on, #tm-main .dm-tstop i { transition: none; } }
@media (max-width: 759px) { #tm-main .dm-trail__hint { margin-bottom: 1.1rem; } }
/* Letzte Kachel allein in der Reihe (7 Karten): über die ganze Breite */
@media (min-width: 960px) { #tm-main .dm-offer__grid > li:nth-child(7):last-child { grid-column: 1 / -1; } #tm-main .dm-offer__grid > li:nth-child(7):last-child .dm-oc { aspect-ratio: auto; min-height: 300px; } }
/* Fachbegriff im Ergebnis: nur der Begriff, in einer Pille */
#tm-main .dm-sres__term { margin: 1.5rem 0 0; }
#tm-main .dm-sres__term span { padding: .3rem 1rem; border-radius: 500px; font-weight: 700; font-size: 1rem; line-height: 1.3; color: #2A1710; background: rgba(42,23,16,.09); }

/* Einzelne Person im Team-Element (z. B. Ganzheitliche Behandlung): Karte füllt ihre Spalte, kein Versatz */
#tm-main .dm-team:has(> .dm-arch:only-child) { grid-template-columns: minmax(0, 1fr); }
#tm-main .dm-team > .dm-arch:only-child { margin-top: 0; }
@media (min-width: 960px) { #tm-main .dm-team:has(> .dm-arch:only-child) { max-width: 420px; } }

/* ===== Ganzheitliche Behandlung: Behandlungsplan zusammenstellen (Schwerpunkt-Ring) ===== */
#tm-main .dm-plan { margin-top: 2.2rem; }
#tm-main .dm-plan__lab { margin: 0 0 1rem; font: 700 1rem/1.3 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; color: #93431D; }
#tm-main .dm-plan__lab span { font-weight: 500; color: #4D3A30; }
#tm-main .dm-plan__chips { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0; padding: 0; list-style: none; }
#tm-main .dm-plan__chips > li { margin: 0; padding: 0; }
#tm-main .dm-pchip { all: unset; box-sizing: border-box; display: inline-flex; align-items: center; gap: .55rem; cursor: pointer; padding: .8rem 1.35rem; border-radius: 500px; font: 500 clamp(1.1rem, 1.6vw, 1.35rem)/1.25 'Jost', 'Jost Fallback', sans-serif; color: #2A1710; background: rgba(255,240,218,.78); box-shadow: var(--dm-glass-sh); transition: transform .35s var(--dm-ease), background-color .3s, color .3s; }
#tm-main .dm-pchip::before { content: ''; flex: none; width: 1.05rem; height: 1.05rem; border-radius: 50%; box-shadow: inset 0 0 0 2px rgba(147,67,29,.55); transition: background .3s, box-shadow .3s; }
#tm-main .dm-pchip:hover { transform: translateY(-2px); color: #93431D; }
#tm-main .dm-pchip:focus-visible { outline: 3px solid #A44E22; outline-offset: 3px; }
#tm-main .dm-pchip.is-on { color: #FFF0DA; background-color: #A44E22; background-image: var(--dm-terra); }
#tm-main .dm-pchip.is-on::before { background: #FFF0DA url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.4l2.7 2.7L12 5.6' fill='none' stroke='%23A44E22' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 100% no-repeat; box-shadow: none; }
#tm-main .dm-plan__stage { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: center; gap: clamp(1rem, 3vw, 3rem); margin-top: 2.2rem; padding: clamp(1.4rem, 3vw, 3rem); border-radius: 26px; background: rgba(255,240,218,.72); box-shadow: var(--dm-glass-sh), 0 24px 56px rgba(56,26,12,.12); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
#tm-main .dm-plan__svg { display: block; width: 100%; height: auto; overflow: visible; }
#tm-main .dm-plan__track, #tm-main .dm-plan__fill { fill: none; stroke-width: 30; stroke-linecap: round; }
#tm-main .dm-plan__track { stroke: rgba(42,23,16,.1); }
#tm-main .dm-plan__fill { stroke: #A44E22; transition: stroke-dashoffset 1s var(--dm-ease); }
#tm-main .dm-plan__lbl { font: 600 22px 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; fill: #6B564B; transition: fill .3s; }
#tm-main .dm-plan__lbl.is-on { fill: #2A1710; }
#tm-main .dm-plan__lbl.is-top { fill: #93431D; font-weight: 700; }
#tm-main .dm-plan__coreL { font: 700 15px 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; fill: #93431D; }
#tm-main .dm-plan__coreV { font: 500 28px 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.01em; fill: #2A1710; }
#tm-main .dm-plan__res { min-width: 0; }
#tm-main .dm-plan__res.is-swap .dm-plan__head, #tm-main .dm-plan__res.is-swap .dm-plan__lead { animation: dm-plan-in .55s var(--dm-ease) both; }
@keyframes dm-plan-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
#tm-main .dm-plan__kicker { margin: 0 0 .7rem; font: 700 1rem/1.3 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; color: #93431D; }
#tm-main .dm-plan__head { margin: 0 0 1rem; font: 500 clamp(1.9rem, 3.2vw, 3rem)/1.1 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.015em; color: #2A1710; }
#tm-main .dm-plan__lead { margin: 0 0 1.2rem; max-width: 30em; font-size: 1.25rem; line-height: 1.55; color: #4D3A30; }
#tm-main .dm-plan__lbl2 { margin: 1.4rem 0 .2rem; font: 700 1rem/1.3 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; color: #93431D; }
#tm-main .dm-plan__list { margin: 0; padding: 0; list-style: none; }
#tm-main .dm-plan.is-js .dm-pitem { display: none; }
#tm-main .dm-plan.is-js .dm-pitem.is-on { display: block; animation: dm-plan-in .55s var(--dm-ease) both; }
#tm-main .dm-pitem { margin: 0; padding: .95rem 0; border-top: 1px solid rgba(42,23,16,.14); }
#tm-main .dm-pitem b { display: block; margin: 0 0 .2rem; font: 500 1.4rem/1.2 'Jost', 'Jost Fallback', sans-serif; color: #2A1710; }
#tm-main .dm-pitem span { display: block; max-width: 34em; font-size: 1.1rem; line-height: 1.5; color: #4D3A30; }
#tm-main .dm-plan__meth { margin: 1rem 0 0; max-width: 34em; padding: .9rem 1.2rem; border-radius: 18px; font-size: 1.1rem; line-height: 1.5; color: #2A1710; background: rgba(42,23,16,.07); }
#tm-main .dm-plan__meth b { font-weight: 700; }
#tm-main .dm-plan__cta { margin: 1.7rem 0 0; }
#tm-main .dm-plan.is-empty .dm-plan__lbl2, #tm-main .dm-plan.is-empty .dm-plan__list, #tm-main .dm-plan.is-empty .dm-plan__meth, #tm-main .dm-plan.is-empty .dm-plan__cta { display: none; }
@media (max-width: 959px) {
  #tm-main .dm-plan__stage { grid-template-columns: 1fr; padding: 1.2rem; }
  #tm-main .dm-plan__ring { max-width: 440px; margin: 0 auto; width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  #tm-main .dm-plan__fill, #tm-main .dm-pchip { transition: none; }
  #tm-main .dm-plan__res.is-swap .dm-plan__head, #tm-main .dm-plan__res.is-swap .dm-plan__lead, #tm-main .dm-plan.is-js .dm-pitem.is-on { animation: none; }
}

/* Behandlungsplan, Handy: Der Stand bleibt beim Antippen sichtbar (Leiste oben, klebt unter der Navigation), Aussagen kompakter */
#tm-main .dm-plan__bar { display: none; }
@media (max-width: 959px) {
  #tm-main .dm-plan { margin-top: 1.4rem; }
  #tm-main .dm-plan__bar { display: block; position: sticky; top: 84px; z-index: 5; margin: 0 -4px 1rem; padding: .8rem 1rem .9rem; border-radius: 22px; background: rgba(255,240,218,.9); box-shadow: var(--dm-glass-sh), 0 14px 32px rgba(56,26,12,.16); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
  #tm-main .dm-plan__bqs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem; }
  #tm-main .dm-plan__bq { display: block; min-width: 0; }
  #tm-main .dm-plan__bq i { display: block; margin: 0 0 .3rem; font: 700 .8rem/1.2 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; font-style: normal; color: #4D3A30; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  #tm-main .dm-plan__bq u { display: block; height: 8px; border-radius: 8px; background: rgba(42,23,16,.12); overflow: hidden; text-decoration: none; }
  #tm-main .dm-plan__bq b { display: block; height: 100%; border-radius: 8px; background: #A44E22; transform: scaleX(0); transform-origin: left; transition: transform .7s var(--dm-ease); }
  #tm-main .dm-plan__bh { margin: .65rem 0 0; font: 500 1.15rem/1.25 'Jost', 'Jost Fallback', sans-serif; color: #2A1710; }
  #tm-main .dm-plan__chips { gap: .55rem; }
  #tm-main .dm-pchip { padding: .6rem 1.05rem; font-size: 1.08rem; }
  #tm-main .dm-plan__stage { margin-top: 1.4rem; }
  #tm-main .dm-plan__res .dm-plan__kicker, #tm-main .dm-plan__res .dm-plan__head { display: none; }
  #tm-main .dm-plan__ring { max-width: 340px; }
}
@media (prefers-reduced-motion: reduce) { #tm-main .dm-plan__bq b { transition: none; } }

/* ===== Behandlungsplan als Kartenstapel (wischen: trifft zu / trifft nicht zu) ===== */
#tm-main .dm-plan.is-deck .dm-plan__stage { display: none; }
#tm-main .dm-plan.is-deck.is-done .dm-plan__stage { display: grid; animation: dm-plan-in .7s var(--dm-ease) both; }
#tm-main .dm-plan.is-deck.is-done .dm-deck { display: none; }
#tm-main .dm-plan__again { margin: 1.6rem 0 0; }
#tm-main .dm-plan__reset { all: unset; cursor: pointer; font-weight: 700; color: #93431D; text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px; }
#tm-main .dm-plan__reset:hover { color: #7F3818; } #tm-main .dm-plan__reset:focus-visible { outline: 3px solid #A44E22; outline-offset: 4px; border-radius: 4px; }
#tm-main .dm-deck { max-width: 600px; margin: 0 auto; }
#tm-main .dm-deck__step { margin: 0 0 .6rem; text-align: center; font: 700 1rem/1.3 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; color: #93431D; }
#tm-main .dm-deck__dots { display: flex; justify-content: center; gap: .45rem; margin: 0 0 1.4rem; }
#tm-main .dm-deck__dots span { width: 2rem; height: 6px; border-radius: 6px; background: rgba(42,23,16,.14); transition: background-color .4s, transform .4s var(--dm-ease); }
#tm-main .dm-deck__dots .is-now { background: #93431D; transform: scaleY(1.5); }
#tm-main .dm-deck__dots .is-yes { background: #A44E22; } #tm-main .dm-deck__dots .is-no { background: rgba(42,23,16,.4); }
#tm-main .dm-deck__stack { position: relative; height: clamp(300px, 46vw, 340px); margin: 0; padding: 0; list-style: none; outline: none; }
#tm-main .dm-deck__stack:focus-visible { outline: 3px solid #A44E22; outline-offset: 10px; border-radius: 34px; }
#tm-main .dm-dcard { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: space-between; box-sizing: border-box; margin: 0; padding: clamp(1.4rem, 3vw, 2rem); overflow: hidden; border-radius: 30px; background: #FFF0DA; box-shadow: var(--dm-glass-sh), 0 24px 50px rgba(56,26,12,.18); cursor: grab; touch-action: pan-y; user-select: none; -webkit-user-select: none; transform-origin: 50% 100%; transition: transform .55s var(--dm-ease), opacity .4s; }
#tm-main .dm-dcard:active { cursor: grabbing; }
#tm-main .dm-dcard__q { font: 700 .95rem/1.3 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; color: #93431D; }
#tm-main .dm-dcard b { position: relative; display: block; font: 500 clamp(1.85rem, 6.4vw, 2.7rem)/1.14 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.015em; color: #2A1710; }
#tm-main .dm-dcard__st { position: absolute; top: 1.1rem; padding: .15rem .8rem; border: 3px solid currentColor; border-radius: 12px; font: 600 1.15rem/1.3 'Jost', 'Jost Fallback', sans-serif; font-style: normal; opacity: 0; pointer-events: none; }
#tm-main .dm-dcard__st--yes { left: 1.1rem; color: #A44E22; transform: rotate(-8deg); }
#tm-main .dm-dcard__st--no { right: 1.1rem; color: #6B564B; transform: rotate(8deg); }
#tm-main .dm-dcard.is-yes { transform: translateX(125%) rotate(18deg); opacity: 0; pointer-events: none; }
#tm-main .dm-dcard.is-no { transform: translateX(-125%) rotate(-18deg); opacity: 0; pointer-events: none; }
#tm-main .dm-deck__btns { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; margin-top: 1.8rem; }
#tm-main .dm-deck__btns .dm-deck__no, #tm-main .dm-deck__btns .dm-deck__yes { all: unset; box-sizing: border-box; display: flex; align-items: center; justify-content: center; gap: .6rem; min-height: 56px; cursor: pointer; border-radius: 500px; font: 500 1.2rem/1.2 'Jost', 'Jost Fallback', sans-serif; transition: transform .35s var(--dm-ease), box-shadow .3s; }
#tm-main .dm-deck__btns .dm-deck__no:hover, #tm-main .dm-deck__btns .dm-deck__yes:hover { transform: translateY(-2px); } #tm-main .dm-deck__btns .dm-deck__no:active, #tm-main .dm-deck__btns .dm-deck__yes:active { transform: scale(.97); }
#tm-main .dm-deck__btns .dm-deck__no:focus-visible, #tm-main .dm-deck__btns .dm-deck__yes:focus-visible { outline: 3px solid #A44E22; outline-offset: 3px; }
#tm-main .dm-deck__btns .dm-deck__no { color: #2A1710; background: rgba(255,240,218,.78); box-shadow: var(--dm-glass-sh), inset 0 0 0 2px rgba(42,23,16,.18); }
#tm-main .dm-deck__btns .dm-deck__yes { color: #FFF0DA; background-color: #A44E22; background-image: var(--dm-terra); box-shadow: 0 12px 28px rgba(147,67,29,.35); }
#tm-main .dm-deck__no::before, #tm-main .dm-deck__yes::before { font-size: 1.25rem; line-height: 1; }
#tm-main .dm-deck__no::before { content: '\2715'; } #tm-main .dm-deck__yes::before { content: '\2713'; }
#tm-main .dm-deck__foot { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: .4rem 1.4rem; margin: 1.1rem 0 0; text-align: center; font-size: 1rem; color: #4D3A30; }
#tm-main .dm-deck__back { all: unset; cursor: pointer; font-weight: 700; color: #93431D; text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px; }
#tm-main .dm-deck__back[hidden] { display: none; } #tm-main .dm-deck__back:focus-visible { outline: 3px solid #A44E22; outline-offset: 4px; border-radius: 4px; }
@media (max-width: 959px) { #tm-main .dm-plan__stage { margin-top: 0; } #tm-main .dm-deck__stack { height: 320px; } #tm-main .dm-deck__hint { flex-basis: 100%; } }
@media (prefers-reduced-motion: reduce) { #tm-main .dm-dcard, #tm-main .dm-deck__dots span, #tm-main .dm-deck__btns .dm-deck__no, #tm-main .dm-deck__btns .dm-deck__yes { transition: none; } #tm-main .dm-plan.is-deck.is-done .dm-plan__stage { animation: none; } }

@media (max-width: 959px) { #tm-main .dm-plan.is-deck .dm-plan__res .dm-plan__kicker { display: block; } #tm-main .dm-plan.is-deck .dm-plan__res .dm-plan__head { display: block; } }

/* ===== Ganzheitliche Behandlung: „Dein Tag“ – Uhr, Sonnenbogen und Himmel hängen stufenlos am Scrollen (Werte setzt dombrowski-wow.js) ===== */
#tm-main .dm-day { --bg: #F5EDDC; --fg: #2A1710; --fg2: #4D3A30; --ac: #93431D; --track: rgba(42,23,16,.22); --sun: #E9A24A; --pill: rgba(42,23,16,.07);
  display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); column-gap: clamp(2rem, 4.6vw, 4.6rem); margin-top: 2.2rem; padding: clamp(1.2rem, 2.4vw, 2.4rem); border-radius: 34px; background-color: var(--bg); color: var(--fg);
  box-shadow: var(--dm-glass-sh), 0 24px 56px rgba(56,26,12,.14); }
#tm-main .dm-day { --rail-h: 26rem; }
#tm-main .dm-day__rail { position: sticky; top: calc(50vh - var(--rail-h) / 2); top: calc(50svh - var(--rail-h) / 2); align-self: start; display: flex; flex-direction: column; justify-content: center; gap: 1.4rem; height: var(--rail-h); padding: 0; }   /* rastet in der Bildschirmmitte ein, auf einer Höhe mit dem Text der Station */
#tm-main .dm-day__time { display: block; font: 300 clamp(4.2rem, 7vw, 6.4rem)/.95 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.035em; font-variant-numeric: tabular-nums; color: var(--fg); }
#tm-main .dm-day__phase { display: block; margin-top: .5rem; font: 700 1.15rem/1.3 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; color: var(--ac); }
#tm-main .dm-day__arc { display: block; width: 100%; max-width: 350px; height: auto; overflow: visible; }
#tm-main .dm-day__arcline { fill: none; stroke: var(--track); stroke-width: 2; stroke-dasharray: 3 9; stroke-linecap: round; }
#tm-main .dm-day__horizon { stroke: var(--track); stroke-width: 2; }
#tm-main .dm-day__sun { fill: var(--sun); filter: drop-shadow(0 0 9px var(--sun)); }
#tm-main .dm-day__list { margin: 0; padding: 0; list-style: none; }
/* Abstand zwischen den Textblöcken ist fest (Polster oben und unten), nicht die Höhe der Station: sonst wirken die Lücken bei kürzeren Texten größer */
#tm-main .dm-dstep { display: flex; flex-direction: column; justify-content: center; min-height: 0; margin: 0; padding: 6.5rem 0; }
#tm-main .dm-dstep:first-child { padding-top: 1rem; }
#tm-main .dm-dstep:last-child { padding-bottom: 1rem; }
#tm-main .dm-dstep__t { font: 700 .95rem/1.3 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; color: var(--ac); }
#tm-main .dm-dstep__q { margin: .7rem 0 0; font: 500 clamp(2rem, 3.8vw, 3.4rem)/1.1 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.02em; color: var(--fg); }
#tm-main .dm-dstep__h { margin: 1.5rem 0 .5rem; font: 500 clamp(1.4rem, 2vw, 1.8rem)/1.2 'Jost', 'Jost Fallback', sans-serif; color: var(--ac); }
#tm-main .dm-dstep__x { margin: 0; max-width: 30em; font-size: 1.22rem; line-height: 1.55; color: var(--fg2); }
#tm-main .dm-dstep__m { margin: 1.1rem 0 0; max-width: 32em; padding: .8rem 1.1rem; border-radius: 16px; font-size: 1.08rem; line-height: 1.5; color: var(--fg); background: var(--pill); }
#tm-main .dm-dstep .dm-day__cta { margin: 1.6rem 0 0; }
#tm-main .dm-day.is-js .dm-dstep > * { opacity: var(--o, 1); transform: translateY(calc((1 - var(--o, 1)) * 22px)); will-change: opacity, transform; }
@media (max-width: 959px) {
  #tm-main .dm-day { grid-template-columns: 1fr; padding: 0 1.2rem 0; border-radius: 28px; }
  /* Leiste klebt bündig am oberen Rand: Ihr Hintergrund füllt auch den Streifen hinter der Navigationsleiste, der Inhalt beginnt darunter */
  #tm-main .dm-day__rail { top: 0; height: auto; z-index: 4; flex-direction: row; align-items: center; justify-content: space-between; gap: 1rem; margin: 0 -1.2rem; padding: 88px 1.2rem .8rem; border-radius: 28px 28px 22px 22px; background-color: var(--bg); box-shadow: 0 10px 22px -12px rgba(0,0,0,.3); }
  #tm-main .dm-day__time { font-size: 3.2rem; }
  #tm-main .dm-day__phase { margin-top: .2rem; font-size: 1rem; }
  #tm-main .dm-day__arc { width: 38%; max-width: 150px; }
  #tm-main .dm-dstep { padding: 4.2rem 0; }
  #tm-main .dm-dstep:first-child { padding-top: 2.2rem; }
  #tm-main .dm-dstep:last-child { padding-bottom: 2rem; }
}
/* „Dein Tag“, Desktop: erste und letzte Station sind so hoch wie die Uhr-Leiste, damit sie ohne großen Leerraum in der Box in der Bildschirmmitte beginnt und endet */
@media (min-width: 960px) {
  #tm-main .dm-dstep:first-child, #tm-main .dm-dstep:last-child { min-height: var(--rail-h); padding-top: 0; padding-bottom: 0; }   /* Text und Uhr-Leiste sind gleich hoch und beide mittig: so steht alles schon vor dem Scrollen sauber */
  #tm-main .dm-dstep:nth-child(2) { margin-top: 4rem; } #tm-main .dm-dstep:nth-last-child(2) { margin-bottom: 4rem; }
}

/* Kurze Displays: Untermenü offen -> restliche Einträge schrumpfen, damit nichts scrollt */
@media (max-height: 800px) {
  .dm-mnav__nav:has([aria-expanded="true"]) .dm-mnav__pv { max-height: 0; margin-top: 0; opacity: 0; }
  .dm-mnav__nav:has([aria-expanded="true"]) .dm-mnav__i { padding-top: 2px; padding-bottom: 2px; }
  .dm-mnav__nav:has([aria-expanded="true"]) .dm-mnav__subw .dm-mnav__sub { margin: 4px 0 4px 3px; }
  .dm-mnav__nav:has([aria-expanded="true"]) .dm-mnav__sub a { min-height: 38px; }
}

/* „Dein Tag“: Himmel als Verlauf (oben Himmel, unten Horizont) auf einer Ebene, die mit dem Bildschirm mitläuft, dazu Sterne bei Nacht */
#tm-main .dm-day { --bg2: #FBE6C8; --stars: 0; position: relative; }
#tm-main .dm-day__skywrap { position: absolute; inset: 0; border-radius: inherit; overflow: hidden; overflow: clip; pointer-events: none; }
#tm-main .dm-day__sky { position: sticky; top: 0; height: 100vh; background-image: linear-gradient(180deg, var(--bg) 0%, var(--bg2) 100%); }
#tm-main .dm-day__stars { position: absolute; inset: 0; opacity: calc(var(--stars) * .5); background-repeat: no-repeat;
  background-image: radial-gradient(1.6px 1.6px at 8% 12%, #FFF0DA 60%, transparent 62%), radial-gradient(1.2px 1.2px at 17% 31%, #FFF0DA 60%, transparent 62%), radial-gradient(1.8px 1.8px at 27% 8%, #FFF0DA 60%, transparent 62%),
    radial-gradient(1.2px 1.2px at 36% 24%, #FFF0DA 60%, transparent 62%), radial-gradient(1.6px 1.6px at 46% 11%, #FFF0DA 60%, transparent 62%), radial-gradient(1.2px 1.2px at 55% 33%, #FFF0DA 60%, transparent 62%),
    radial-gradient(1.8px 1.8px at 64% 7%, #FFF0DA 60%, transparent 62%), radial-gradient(1.2px 1.2px at 73% 22%, #FFF0DA 60%, transparent 62%), radial-gradient(1.6px 1.6px at 82% 13%, #FFF0DA 60%, transparent 62%),
    radial-gradient(1.2px 1.2px at 91% 29%, #FFF0DA 60%, transparent 62%), radial-gradient(1.4px 1.4px at 12% 52%, #FFF0DA 60%, transparent 62%), radial-gradient(1.2px 1.2px at 41% 47%, #FFF0DA 60%, transparent 62%),
    radial-gradient(1.4px 1.4px at 69% 49%, #FFF0DA 60%, transparent 62%), radial-gradient(1.2px 1.2px at 94% 55%, #FFF0DA 60%, transparent 62%), radial-gradient(1.4px 1.4px at 22% 70%, #FFF0DA 60%, transparent 62%),
    radial-gradient(1.2px 1.2px at 58% 66%, #FFF0DA 60%, transparent 62%), radial-gradient(1.4px 1.4px at 84% 72%, #FFF0DA 60%, transparent 62%); }
#tm-main .dm-day__rail, #tm-main .dm-day__list { position: relative; z-index: 1; }
#tm-main .dm-day__rail { position: sticky; }

/* „Dein Tag“, Uhr-Leiste als Glas wie die Navigation: gleiches Rezept (Tönung, Schatten, Innenkanten). Chromium: Refraktionsfilter des Plugins (wie die Leiste),
   Safari/Firefox: Milchglas (Blur + Sättigung). */
#tm-main .dm-day__rail { padding-left: clamp(1.4rem, 2.4vw, 2.2rem); padding-right: clamp(1.4rem, 2.4vw, 2.2rem); border-radius: 30px; --lg-radius: 30px;
  background: var(--glass-tint, rgba(255,240,218,.3));
  box-shadow: 0 10px 30px rgba(var(--lg-shadow-rgb), .20), 0 2px 6px rgba(var(--lg-shadow-rgb), .12), inset 0 0 0 .5px rgba(var(--lg-hi-rgb), .35), inset 0 1px 1px rgba(var(--lg-hi-rgb), .35), inset 0 -8px 16px -8px rgba(var(--lg-hi-rgb), .18);
  -webkit-backdrop-filter: blur(14px) saturate(125%); backdrop-filter: blur(14px) saturate(125%); }
@media (max-width: 959px) {
  #tm-main .dm-day__rail { padding-left: 1.2rem; padding-right: 1.2rem; border-radius: 28px 28px 22px 22px; --lg-radius: 24px;
    background: var(--glass-tint, rgba(255,240,218,.3));
    box-shadow: 0 10px 30px rgba(var(--lg-shadow-rgb), .20), 0 2px 6px rgba(var(--lg-shadow-rgb), .12), inset 0 0 0 .5px rgba(var(--lg-hi-rgb), .35), inset 0 1px 1px rgba(var(--lg-hi-rgb), .35), inset 0 -8px 16px -8px rgba(var(--lg-hi-rgb), .18); }
}

/* „Dein Tag“, Desktop: gleicher Abstand oben, links und unten um die Glas-Box; Inhalt der Box mittig; der Text rechts als gleich breiter Block mittig in seiner Spalte */
@media (min-width: 960px) {
  #tm-main .dm-day__rail { align-items: center; text-align: center; padding-left: 1.5rem; padding-right: 1.5rem; }
  #tm-main .dm-day__clock { text-align: center; }
  #tm-main .dm-day__arc { margin: 0 auto; }
  #tm-main .dm-dstep { align-items: flex-start; }
  #tm-main .dm-dstep > * { align-self: flex-start; }
  #tm-main .dm-dstep__q { max-width: 14em; }
}

/* Hero-Überschriften: Zeilenumbrüche kommen aus dem Text (<br>), nicht aus der Spaltenbreite. Textspalte wurde auf 44rem begrenzt, dadurch brach
   „Ohne Verordnung.“ in zwei Zeilen. Die Spalte darf bis 62rem wachsen (Lead bleibt auf eigener Maximalbreite), die Überschrift ist nicht mehr auf 16ch begrenzt. */
@media (min-width: 960px) {
  #tm-main .dm-phero__text, #tm-main .dm-fan__text { max-width: 62rem; }
  #tm-main .dm-phero h1, #tm-main .dm-fan__text h1 { max-width: none; }
}
/* Tablet quer: neben dem Glas-Kasten bleibt der Überschrift zu wenig Breite („Ohne / Verordnung.“) -> Kasten unter den Text */
@media (min-width: 960px) and (max-width: 1279px) {
  #tm-main .dm-phero__in:has(.dm-phero__aside) { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  #tm-main .dm-phero__in:has(.dm-phero__aside) .dm-phero__aside { max-width: 28rem; }
}

/* Uhr-Leiste liegt über dem Text (sonst läuft der Text scharf über das Glas, und der Blur wirkt nicht) */
#tm-main .dm-day__rail { z-index: 4; }

/* Handy: Ganz unten schließt die Glasleiste bündig mit der Box ab (kein Streifen darunter), gleiche Rundung wie die Box */
@media (max-width: 959px) {
  #tm-main .dm-day__rail { border-radius: 28px; }
  #tm-main .dm-dstep:last-child { padding-bottom: 1.6rem; }
}

/* Handy: Leiste darf nie breiter als die Box werden (Spalte schrumpfbar, Inhalt schrumpft mit) */
@media (max-width: 959px) {
  #tm-main .dm-day { grid-template-columns: minmax(0, 1fr); }
  #tm-main .dm-day__rail { min-width: 0; gap: .6rem; }
  #tm-main .dm-day__clock { min-width: 0; flex: 1 1 auto; }
  #tm-main .dm-day__time { font-size: clamp(2.6rem, 11vw, 3.2rem); }
  #tm-main .dm-day__phase { white-space: normal; }
  #tm-main .dm-day__arc { flex: 0 1 38%; width: 38%; min-width: 80px; max-width: 150px; }
}

/* ===== „Weg in Schritten“ (z. B. So läuft deine Behandlung ab): Glas-Karten auf Dunkelrot, Linie und Punkt laufen mit dem Scrollen ===== */
#tm-main .dm-course { --g: clamp(1rem, 2.4vw, 2rem); position: relative; margin-top: 2.6rem; }
#tm-main .dm-course__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--g); margin: 0; padding: 0; list-style: none; }
#tm-main .dm-cstep { position: relative; display: flex; flex-direction: column; align-items: flex-start; margin: 0; padding: 0; }
#tm-main .dm-cstep__n { position: relative; z-index: 3; display: grid; place-items: center; flex: none; width: 4.4rem; height: 4.4rem; margin-left: 1.2rem; border-radius: 50%; font: 300 2.1rem/1 'Jost', 'Jost Fallback', sans-serif; color: rgba(255,240,218,.88); background: #2B0A10; box-shadow: inset 0 0 0 2px rgba(255,240,218,.34); transition: background-color .6s ease, color .6s ease, box-shadow .6s ease; }
#tm-main .dm-cstep.is-on .dm-cstep__n { color: #FFF0DA; background: #A44E22; background-image: var(--dm-terra); box-shadow: 0 0 0 6px rgba(164,78,34,.22), 0 10px 26px rgba(0,0,0,.35); }
#tm-main .dm-cstep__card { align-self: stretch; margin-top: 1.4rem; padding: clamp(1.4rem, 2.4vw, 2rem); border-radius: 26px; background: rgba(255,240,218,.07); box-shadow: 0 10px 30px rgba(0,0,0,.25), inset 0 0 0 .5px rgba(255,240,218,.35), inset 0 1px 1px rgba(255,240,218,.3), inset 0 -8px 16px -8px rgba(255,240,218,.12); -webkit-backdrop-filter: blur(12px) saturate(125%); backdrop-filter: blur(12px) saturate(125%); transition: background-color .6s ease, transform .7s var(--dm-ease); }
#tm-main .dm-cstep.is-on .dm-cstep__card { background: rgba(255,240,218,.12); }
#tm-main .dm-cstep__tag { display: block; margin: 0 0 .6rem; font: 700 .95rem/1.3 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; color: #F2C9A0; }
#tm-main .dm-cstep__h { margin: 0 0 .7rem; font: 500 clamp(1.5rem, 2.2vw, 1.9rem)/1.15 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.01em; color: #FFF0DA; }
#tm-main .dm-cstep__x { margin: 0; font-size: 1.15rem; line-height: 1.55; color: rgba(255,240,218,.88); }
#tm-main .dm-course__line { position: absolute; z-index: 2; display: block; background: rgba(255,240,218,.22); border-radius: 2px; pointer-events: none; }
#tm-main .dm-course__line > i { display: block; width: 100%; height: 100%; background: linear-gradient(90deg, #F2C9A0, #A44E22); border-radius: inherit; transform: scaleX(0); transform-origin: 0 50%; }
#tm-main .dm-course__dot { position: absolute; left: 0; top: 0; z-index: 4; width: 14px; height: 14px; border-radius: 50%; background: #F6E6D0; box-shadow: 0 0 0 5px rgba(246,230,208,.18), 0 0 16px rgba(242,201,160,.7); pointer-events: none; will-change: transform; }
#tm-main .dm-course:not(.is-js) .dm-course__dot, #tm-main .dm-course:not(.is-js) .dm-course__line { display: none; }
@media (max-width: 959px) {
  #tm-main .dm-course__list { grid-template-columns: minmax(0, 1fr); gap: 1.2rem; }
  #tm-main .dm-cstep { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 1rem; align-items: start; }
  #tm-main .dm-cstep__n { margin-left: 0; width: 3.4rem; height: 3.4rem; font-size: 1.7rem; }
  #tm-main .dm-cstep__card { margin-top: 0; padding: 1.2rem; }
  #tm-main .dm-course__line > i { background: linear-gradient(180deg, #F2C9A0, #A44E22); transform: scaleY(0); transform-origin: 50% 0; }
}
@media (prefers-reduced-motion: reduce) { #tm-main .dm-cstep__n, #tm-main .dm-cstep__card { transition: none; } }

/* ===== Ablauf als Bühne (dm_reel): Abschnitt bleibt stehen, Riesenzahl, Text und Weg laufen mit dem Scrollen ===== */
#tm-main .dm-reel { position: relative; height: calc(100vh + (var(--n) - 1) * 70vh); height: calc(100svh + (var(--n) - 1) * 70svh); }
#tm-main .dm-reel__stage { position: sticky; top: 0; height: 100vh; height: 100svh; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); grid-template-rows: auto 1fr auto; column-gap: clamp(1.5rem, 4vw, 4rem); padding: 7.5rem 0 2.2rem; box-sizing: border-box; }
#tm-main .dm-reel__eyebrow { grid-column: 1 / -1; margin: 0; font: 700 1rem/1.3 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; letter-spacing: .02em; color: #F2C9A0; }
#tm-main .dm-reel__num { grid-column: 1; grid-row: 2; align-self: center; overflow: hidden; height: 1em; font: 200 clamp(12rem, 30vw, 28rem)/1 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.04em; }
#tm-main .dm-reel__numcol { display: flex; flex-direction: column; will-change: transform; }
#tm-main .dm-reel__numcol > span { display: block; height: 1em; line-height: 1; text-align: left; color: transparent; -webkit-text-stroke: 2px rgba(242,201,160,.62); background: linear-gradient(180deg, rgba(164,78,34,.55), rgba(164,78,34,0)); -webkit-background-clip: text; background-clip: text; }
#tm-main .dm-reel__texts { grid-column: 2; grid-row: 2; align-self: center; display: grid; }
#tm-main .dm-rstep { grid-area: 1 / 1; will-change: opacity, transform; }
#tm-main .dm-rstep__tag { display: block; margin: 0 0 .8rem; font: 700 1rem/1.3 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; color: #F2C9A0; }
#tm-main .dm-rstep__h { margin: 0 0 1.1rem; font: 500 clamp(2.4rem, 4.6vw, 4.2rem)/1.05 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.02em; color: #FFF0DA; }
#tm-main .dm-rstep__x { margin: 0; max-width: 29em; font-size: 1.3rem; line-height: 1.55; color: rgba(255,240,218,.9); }
#tm-main .dm-reel__way { grid-column: 1 / -1; grid-row: 3; width: 100%; height: clamp(90px, 14vh, 140px); overflow: visible; }
#tm-main .dm-reel__track, #tm-main .dm-reel__fill { fill: none; stroke-width: 2.5; stroke-linecap: round; }
#tm-main .dm-reel__track { stroke: rgba(255,240,218,.22); stroke-dasharray: 2 9; }
#tm-main .dm-reel__fill { stroke: #F2C9A0; }
#tm-main .dm-reel__nodes circle { fill: #2B0A10; stroke: rgba(255,240,218,.4); stroke-width: 2; transition: fill .5s, stroke .5s; }
#tm-main .dm-reel__nodes .is-on circle { fill: #A44E22; stroke: #F2C9A0; }
#tm-main .dm-reel__dot { fill: #F6E6D0; filter: drop-shadow(0 0 10px rgba(242,201,160,.9)); }
#tm-main .dm-reel:not(.is-js) { height: auto; }
#tm-main .dm-reel:not(.is-js) .dm-reel__stage { position: static; height: auto; }
#tm-main .dm-reel:not(.is-js) .dm-rstep { grid-area: auto; margin-bottom: 2rem; }
#tm-main .dm-reel:not(.is-js) .dm-reel__texts { display: block; }
@media (max-width: 959px) {
  #tm-main .dm-reel__stage { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr) auto; padding: 6.5rem 0 1.6rem; }
  #tm-main .dm-reel__num { grid-column: 1; grid-row: 2; align-self: start; justify-self: end; font-size: clamp(9rem, 46vw, 15rem); margin-top: -.2em; opacity: .7; pointer-events: none; }
  #tm-main .dm-reel__texts { grid-column: 1; grid-row: 2; align-self: end; padding-bottom: .5rem; z-index: 1; }
  #tm-main .dm-rstep__h { font-size: clamp(2rem, 9vw, 2.8rem); }
  #tm-main .dm-rstep__x { font-size: 1.15rem; }
  #tm-main .dm-reel__way { height: 84px; }
}
@media (prefers-reduced-motion: reduce) { #tm-main .dm-reel__nodes circle { transition: none; } }

/* „Weg in Schritten“, mehr Ausdruck: höhere Karten, große Konturzahl im Hintergrund, größere Schrift */
#tm-main .dm-cstep__card { position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; min-height: clamp(17rem, 25vw, 23rem); padding: clamp(1.6rem, 2.6vw, 2.4rem); }
#tm-main .dm-cstep__card::before { content: attr(data-n); position: absolute; top: -.14em; right: .06em; font: 200 clamp(10rem, 16vw, 15rem)/1 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.04em; color: transparent; -webkit-text-stroke: 1.5px rgba(242,201,160,.3); background: linear-gradient(180deg, rgba(164,78,34,.5), rgba(164,78,34,0) 80%); -webkit-background-clip: text; background-clip: text; pointer-events: none; transition: -webkit-text-stroke-color .7s ease, opacity .7s ease; opacity: .7; }
#tm-main .dm-cstep.is-on .dm-cstep__card::before { -webkit-text-stroke-color: rgba(242,201,160,.62); opacity: 1; }
#tm-main .dm-cstep__card > * { position: relative; }
#tm-main .dm-cstep__tag { align-self: flex-start; padding: .25rem .85rem; border-radius: 500px; background: rgba(255,240,218,.1); box-shadow: inset 0 0 0 1px rgba(242,201,160,.28); }
#tm-main .dm-cstep__h { font-size: clamp(1.9rem, 2.9vw, 2.6rem); line-height: 1.06; letter-spacing: -.02em; }
#tm-main .dm-cstep__x { font-size: 1.2rem; }
@media (max-width: 959px) {
  #tm-main .dm-cstep__card { min-height: 12rem; padding: 1.3rem; }
  #tm-main .dm-cstep__card::before { font-size: 8rem; top: -.1em; }
  #tm-main .dm-cstep__h { font-size: 1.7rem; }
}

/* „Weg in Schritten“ ohne Animation: Kreise fest in Terrakotta, kurze Verbindungsstriche, schlichte Karten ohne Hintergrundzahl */
#tm-main .dm-course__line, #tm-main .dm-course__dot { display: none !important; }
#tm-main .dm-cstep__card::before { display: none; }
#tm-main .dm-cstep__n, #tm-main .dm-cstep__card { transition: none; }
#tm-main .dm-cstep .dm-cstep__n { color: #FFF0DA; background: #A44E22; background-image: var(--dm-terra); box-shadow: 0 8px 20px rgba(0,0,0,.3); }
#tm-main .dm-cstep__card, #tm-main .dm-cstep.is-on .dm-cstep__card { background: rgba(255,240,218,.08); min-height: 0; justify-content: flex-start; }
#tm-main .dm-cstep:not(:last-child)::after { content: ''; position: absolute; top: 2.2rem; left: calc(1.2rem + 4.4rem + .6rem); width: calc(100% - 5.6rem + var(--g) - 1.2rem); height: 0; border-top: 2px dashed rgba(242,201,160,.45); }
@media (max-width: 959px) {
  #tm-main .dm-cstep:not(:last-child)::after { top: calc(3.4rem + .5rem); left: calc(1.7rem - 1px); width: 0; height: calc(100% - 3.4rem + 1.2rem - 1rem); border-top: 0; border-left: 2px dashed rgba(242,201,160,.45); }
  #tm-main .dm-cstep__card { min-height: 0; }
}

/* „Weg in Schritten“ ruhig: gleich hohe Karten, die Nummer steht in der Karte (kein Kreis, keine Striche, keine „Zuerst/Dann“-Zeile) */
#tm-main .dm-cstep__n, #tm-main .dm-cstep:not(:last-child)::after, #tm-main .dm-cstep__tag { display: none !important; }
#tm-main .dm-cstep { display: flex; flex-direction: column; align-items: stretch; }
#tm-main .dm-cstep__card { flex: 1 1 auto; align-self: stretch; margin-top: 0; min-height: 0; justify-content: flex-start; padding: clamp(1.6rem, 2.4vw, 2.2rem); }
#tm-main .dm-cstep__card::before { display: block; position: static; content: '0' attr(data-n); margin: 0 0 1.3rem; padding: 0 0 .9rem; font: 300 clamp(2.2rem, 3vw, 2.8rem)/1 'Jost', 'Jost Fallback', sans-serif; letter-spacing: 0; color: #F2C9A0; -webkit-text-stroke: 0; background: none; -webkit-background-clip: border-box; background-clip: border-box; border-bottom: 1px solid rgba(242,201,160,.28); opacity: 1; width: 100%; }
#tm-main .dm-cstep.is-on .dm-cstep__card::before { -webkit-text-stroke: 0; }
@media (max-width: 959px) {
  #tm-main .dm-cstep { display: flex; }
  #tm-main .dm-cstep__card { padding: 1.3rem; }
  #tm-main .dm-cstep__card::before { font-size: 2.2rem; margin-bottom: 1rem; padding-bottom: .7rem; }
}

/* ===== Person: Porträt im Bogen mit versetztem Konturbogen, Name groß, Fakten als Zeilen ===== */
#tm-main .dm-person { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); align-items: center; column-gap: clamp(2rem, 6vw, 6rem); }
#tm-main .dm-person__fig { position: relative; margin: 0; width: min(100%, 440px); justify-self: center; }
#tm-main .dm-person__ring { position: absolute; inset: 0; transform: translate(clamp(12px, 1.6vw, 22px), clamp(12px, 1.6vw, 22px)); border-radius: 999px 999px 30px 30px; box-shadow: inset 0 0 0 2px rgba(147,67,29,.38); pointer-events: none; }
#tm-main .dm-person__arch { position: relative; aspect-ratio: 4 / 5; overflow: hidden; border-radius: 999px 999px 30px 30px; background: linear-gradient(320deg, #A44E22, #7E3513); box-shadow: 0 24px 50px rgba(56,26,12,.22); }
#tm-main .dm-person__arch img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 22%; }
#tm-main .dm-person__sil { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: 86%; color: #FFF0DA; opacity: .26; }
#tm-main .dm-person__tag { position: absolute; left: 1.1rem; right: 1.1rem; bottom: 1.1rem; display: flex; flex-direction: column; gap: .15rem; padding: .9rem 1.2rem; border-radius: 22px; color: #FFF0DA;
  background: rgba(255,240,218,.14); box-shadow: 0 10px 30px rgba(56,26,12,.25), inset 0 0 0 .5px rgba(255,240,218,.4), inset 0 1px 1px rgba(255,240,218,.35), inset 0 -8px 16px -8px rgba(255,240,218,.16);
  -webkit-backdrop-filter: blur(14px) saturate(130%); backdrop-filter: blur(14px) saturate(130%); }
#tm-main .dm-person__tag strong { font: 500 1.5rem/1.15 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.01em; }
#tm-main .dm-person__tag span { font: 600 .95rem/1.3 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; color: rgba(255,240,218,.9); }
#tm-main .dm-person__eyebrow { margin: 0 0 .9rem; font: 700 1rem/1.3 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; color: #93431D; }
#tm-main .dm-person__name { margin: 0 0 1.2rem; font: 500 clamp(2.8rem, 5.4vw, 5.2rem)/1 'Jost', 'Jost Fallback', sans-serif; letter-spacing: -.025em; color: #2A1710; }
#tm-main .dm-person__lead { margin: 0 0 1.8rem; max-width: 30em; font-size: 1.3rem; line-height: 1.55; color: #4D3A30; }
#tm-main .dm-person__facts { margin: 0 0 2rem; padding: 0; max-width: 36rem; }
#tm-main .dm-person__facts > div { display: grid; grid-template-columns: 8.5rem minmax(0, 1fr); gap: 1rem; padding: .95rem 0; border-top: 1px solid rgba(42,23,16,.16); }
#tm-main .dm-person__facts > div:last-child { border-bottom: 1px solid rgba(42,23,16,.16); }
#tm-main .dm-person__facts dt { margin: 0; font: 700 1rem/1.4 'Atkinson Hyperlegible Next', 'Atkinson Fallback', sans-serif; color: #93431D; }
#tm-main .dm-person__facts dd { margin: 0; font-size: 1.15rem; line-height: 1.45; color: #2A1710; }
#tm-main .dm-person__cta { margin: 0; }
@media (max-width: 959px) {
  #tm-main .dm-person { grid-template-columns: minmax(0, 1fr); row-gap: 2.4rem; }
  #tm-main .dm-person__fig { width: min(78%, 340px); }
  #tm-main .dm-person__facts > div { grid-template-columns: 6.5rem minmax(0, 1fr); gap: .6rem; }
}

/* Label-Pille: Text mittig (Handy: drei Zeilen untereinander, jede Zeile in der Mitte der Textspalte) */
.dm-badge, .dm-badge > * { text-align: center; }
.dm-cta .dm-badge { justify-items: center; }
.dm-cta .dm-badge strong, .dm-cta .dm-badge em, .dm-cta .dm-badge--privat > span:not(.dm-badge__dot) { justify-self: center; text-align: center; }
@media (min-width: 960px) { .dm-badge { padding-left: 20px; padding-right: 20px; } }

/* Handy: Termin-Button ausgeschrieben (Pille, kein Symbol); das Etikett sitzt oben unter dem Rand, volle Breite mit Abstand, und erscheint nur beim Runterscrollen
   (dann ist die Leiste weggefahren), beim Hochscrollen (Leiste kommt zurück) verschwindet es */
@media (max-width: 959px) {
  body .dm-cta .uk-button.uk-button-primary.dm-cta__book { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: auto; height: auto; min-height: 44px; padding: 0 24px; border-radius: 999px; font-size: .95rem; letter-spacing: .02em; }
  body .dm-badge { position: fixed; z-index: 975; left: 12px; right: 12px; bottom: auto; top: calc(env(safe-area-inset-top, 0px) + 10px); width: auto; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 2px 0; padding: 10px 14px; border-radius: 999px; font-size: .88rem; line-height: 1.25; white-space: normal; text-align: center;
    transform: translate3d(0, calc(-100% - 24px), 0); opacity: 0; pointer-events: none; transition: transform .45s var(--dm-ease), opacity .3s ease; }
  html.dm-nav-hide body .dm-badge:not(.is-away) { transform: none; opacity: 1; }
  body .dm-badge .dm-badge__dot { display: none; }
  body .dm-badge strong, body .dm-badge > span:not(.dm-badge__dot), body .dm-badge em { display: inline-block; padding: 0 12px; margin: 0; border: 0; font-size: inherit; opacity: 1; }
  body .dm-badge > span:not(.dm-badge__dot), body .dm-badge em { font-weight: 500; }
  body .dm-badge em { border-left: 1px solid rgba(255,240,218,.4); }       /* Zeile 1: Titel, Zeile 2: die beiden Zusätze mit Trennstrich dazwischen */
  body .dm-badge strong { font-weight: 700; flex: 0 0 100%; padding: 0; }
}
@media (prefers-reduced-motion: reduce) { body .dm-badge { transition: opacity .01s; } }

/* Einzelne Standortkarte (Ganzheitliche Behandlung): zwei gleich große Kacheln, links Text, rechts die Karte als eigene Kachel */
@media (min-width: 960px) {
  .dm-locs:has(> .dm-loc:only-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dm-locs > .dm-loc:only-child .dm-loc__map { display: none; }
  .dm-locs:has(> .dm-loc:only-child)::after { content: ''; border-radius: 26px; min-height: 480px; background: #E3D3BC url(/wp-content/uploads/dombrowski/map-wartenberg-center.jpg?v=1) 50% 50% / cover no-repeat;
    box-shadow: 0 24px 56px rgba(56,26,12,.22), inset 0 0 0 1px rgba(255,240,218,.5); }
}

/* Person (Ganzheitliche Behandlung): Arch schlicht wie auf der Team-Seite, ohne Konturlinie und Glas-Label */
#tm-main .dm-person__ring, #tm-main .dm-person__tag { display: none; }
#tm-main .dm-person__arch { background: linear-gradient(320deg, #A44E22, #8A3A12); box-shadow: var(--dm-glass-sh), 0 18px 40px rgba(56,26,12,.18); border-radius: 999px 999px 22px 22px; }
#tm-main .dm-person__sil { opacity: .24; }

/* ===== Logo TAFFIT: Wortmarke allein in der Leiste, die Unterzeile steckt im Vollformat-Logo (Footer) ===== */
.tm-header .uk-logo::before, .tm-header .uk-logo::after, .tm-header-mobile .uk-logo::before, .tm-header-mobile .uk-logo::after,
.dm-mnav__logo::before, .dm-mnav__logo::after { display: none; }
/* optisch mittig: Der Punkt über dem i steht im SVG über den Buchstaben; deren Mitte liegt ca. 12,7 % der Höhe unter der Boxmitte, also die Box um so viel anheben */
.tm-header .uk-logo svg, .tm-header-mobile .uk-logo svg, .dm-mnav__logo svg { height: 30px; width: auto; transform: translateY(-3.8px); }
.dm-mnav .dm-mnav__logo svg circle { fill: #A9471F; }
.dm-ft__logo { flex-direction: column; align-items: flex-start; gap: 16px; }
.dm-ft__logo svg, .dm-ft__logo img { height: 86px; transform: none; }
.dm-ft__rule { display: none; }
html body .dm-ft__logo svg circle { fill: #C9602F !important; }
/* Unterzeile als echter Text statt als dünne Zeichnung im Logo: lesbar und mit der Hausschrift */
.dm-ft__sub { font: 500 13px/18px 'Jost', 'Jost Fallback', sans-serif; letter-spacing: .124em; opacity: .9; padding-left: 1.7px; }
@media (max-width: 479px) { .dm-ft__logo svg, .dm-ft__logo img { height: 72px; } .dm-ft__sub { font-size: 12px; letter-spacing: .057em; padding-left: 1.4px; } }
html body .tm-header .uk-logo svg circle, html body .tm-header-mobile .uk-logo svg circle, html body .dm-mnav__logo svg circle { fill: #A9471F !important; }
/* TAFFIT (Versalien, breiter als vorher): Luft zum ersten Menüpunkt */
@media (min-width: 1200px) { .tm-header .uk-logo { margin-right: 6px; } }

/* Trainingsbereich mit nur einer Karte (funktionales Training): breit statt schmal links */
@media (min-width: 960px) {
  #tm-main .dm-free__f:only-child { grid-column: 1 / -1; aspect-ratio: 21 / 9; }
  #tm-main .dm-free__f:only-child figcaption { max-width: 38rem; padding: 40px; }
  #tm-main .dm-free__f:only-child img { object-position: 50% 62%; }
}

/* Etikett "Eigenständiges Angebot" / "Auf Verordnung": randabfallender Streifen, klebt oben am Fenster (ersetzt die schwebende Pille) */
:root { --dm-strip: 38px; }
html body > .dm-badge { position: fixed !important; z-index: 985; top: 0 !important; left: 0 !important; right: 0 !important; bottom: auto !important; transform: none !important; opacity: 1 !important; pointer-events: auto; width: auto; box-sizing: border-box; height: var(--dm-strip); display: flex; flex-wrap: nowrap; align-items: center; justify-content: center; gap: 0; padding: 0 16px; border-radius: 0; font-size: .95rem; line-height: 1; white-space: nowrap; overflow: hidden; box-shadow: inset 0 -1px 0 rgba(255,240,218,.28), 0 6px 20px rgba(20,8,4,.22); -webkit-backdrop-filter: none; backdrop-filter: none; }
html body > .dm-badge--privat { background: #A44E22; }
html body > .dm-badge--kasse { background: #2E3D26; }
html body > .dm-badge .dm-badge__dot { display: block; margin-right: 12px; }
html body > .dm-badge strong { flex: none; padding: 0; }
html body > .dm-badge > span:not(.dm-badge__dot), html body > .dm-badge em { display: inline-block; flex: none; margin-left: 14px; padding: 0 0 0 14px; font-size: inherit; border-left: 1px solid rgba(255,240,218,.4); opacity: .9; }
body:has(> .dm-badge) .tm-header { top: var(--dm-strip); }
body:has(> .dm-badge) .tm-header-mobile { top: var(--dm-strip); }
@media (max-width: 959px) {
  html body > .dm-badge { font-size: .8rem; padding: 0 10px; }
  html body > .dm-badge .dm-badge__dot { display: none; }
  html body > .dm-badge > span:not(.dm-badge__dot), html body > .dm-badge em { margin-left: 10px; padding-left: 10px; }
}
@media (max-width: 479px) { :root { --dm-strip: 34px; } html body > .dm-badge { font-size: .76rem; } html body > .dm-badge--kasse > span:not(.dm-badge__dot) { display: none; } }

/* Drei Kacheln statt zwei (Start "Drei Angebote. Zwei Orte."): schmalste Breite entsprechend kleiner ansetzen */
@media (min-width: 960px) {
  .dm-split:has(> .dm-pane:nth-child(3)) { --inner-min: calc((var(--sw) - 48px) * .27 - 4.8rem); }
  .dm-split:has(> .dm-pane:nth-child(3)) .dm-pane__title { font-size: clamp(1.8rem, calc(var(--inner-min) / 6), 3.6rem); }
}

/* Hero Start mit drei Türen: weniger Innenabstand rechts, kleinere Titel, damit "Ich suche eine alternative Behandlung" in zwei Zeilen steht und die Karten nicht gedrängt wirken */
@media (min-width: 960px) {
  #tm-main .dm-fan__row:has(> .dm-fan__d:nth-child(3):last-child) { column-gap: 20px; }
  #tm-main .dm-fan__row:has(> .dm-fan__d:nth-child(3):last-child) .dm-fan__d a { box-sizing: border-box; padding: 28px 84px 28px 32px; min-height: 144px; gap: 10px; }
  #tm-main .dm-fan__row:has(> .dm-fan__d:nth-child(3):last-child) .dm-fan__d a::after { right: 24px; }
  #tm-main .dm-fan__row:has(> .dm-fan__d:nth-child(3):last-child) .dm-fan__q,
  #tm-main .dm-fan__row:has(> .dm-fan__d:nth-child(3):last-child) .dm-fan__d.is-on .dm-fan__q { font-size: clamp(1.3rem, 1.75vw, 1.85rem); }
}

/* Leistungen (Start): drei Reiter, Reisbach grün, Wartenberg terrakotta */
.dm-offer__tabs:has(> button:nth-child(3)) { grid-template-columns: repeat(3, 1fr); }
.dm-offer__tabs:has(> button:nth-child(3))::before { width: calc((100% - 12px) / 3); }
.dm-offer__tabs:has(> button:nth-child(3)) .dm-offer__tab { padding: 14px 14px; }
.dm-offer__tabs:has(> button:nth-child(3))::before { background: #2E3D26; box-shadow: 0 8px 20px rgba(31,42,26,.35), inset 0 1px 0 rgba(255,240,218,.25); }
.dm-offer__tabs:has(> [aria-selected="true"]:last-child)::before { background: var(--dm-terra); box-shadow: 0 8px 20px rgba(138,58,18,.3), inset 0 1px 0 rgba(255,240,218,.3); }
@media (min-width: 1100px) { .dm-offer__head:has(.dm-offer__tab:nth-child(3)) { grid-template-columns: minmax(0, 1fr) minmax(0, 44rem); } }
@media (max-width: 1099px) { .dm-offer__tabs:has(> button:nth-child(3)) { max-width: 44rem; } }
@media (max-width: 559px) { .dm-offer__tabs:has(> button:nth-child(3)) .dm-offer__tab { padding: 10px 6px; font-size: .9rem; } .dm-offer__tabs:has(> button:nth-child(3)) .dm-offer__tab small { font-size: .78rem; } }

/* Anruf-Sheet: Angebot je Standort */
.dm-call__w { font-size: 17px; line-height: 1.35; font-weight: 600; color: #2E3D26; margin: 2px 0 4px; }

/* Leistungen (Start), drei Reiter am Handy: wie am Desktop (Glas-Schalter mit runden Pillen), nur in zwei Reihen: zwei Reisbach-Pillen, darunter "Alternative Behandlung" */
@media (max-width: 719px) {
  .dm-offer__tabs:has(> button:nth-child(3)) { grid-template-columns: 1fr 1fr; gap: 6px; padding: 6px; border-radius: 36px; max-width: none; }
  .dm-offer__tabs:has(> button:nth-child(3))::before { display: none; }
  .dm-offer__tabs:has(> button:nth-child(3)) .dm-offer__tab { min-height: 64px; justify-content: center; padding: 8px 12px; border-radius: 500px; font-size: 1rem; line-height: 1.2; word-spacing: normal; background: rgba(255,249,238,.62); box-shadow: inset 0 0 0 1px rgba(42,23,16,.12); transition: color .35s, background-color .45s, box-shadow .45s; }
  .dm-offer__tabs:has(> button:nth-child(3)) .dm-offer__tab small { display: block; font-size: .9rem; line-height: 1.2; }
  .dm-offer__tabs:has(> button:nth-child(3)) .dm-offer__tab:nth-child(3) { grid-column: 1 / -1; }
  .dm-offer__tabs:has(> button:nth-child(3)) .dm-offer__tab[aria-selected="true"] { background: #2E3D26; color: #FFF0DA; box-shadow: 0 8px 20px rgba(31,42,26,.35), inset 0 1px 0 rgba(255,240,218,.25); }
  .dm-offer__tabs:has(> button:nth-child(3)) .dm-offer__tab:nth-child(3)[aria-selected="true"] { background: var(--dm-terra); box-shadow: 0 8px 20px rgba(138,58,18,.3), inset 0 1px 0 rgba(255,240,218,.3); }
}
@media (max-width: 389px) {
  .dm-offer__tabs:has(> button:nth-child(3)) .dm-offer__tab { padding: 8px 4px; font-size: .9rem; }
  .dm-offer__tabs:has(> button:nth-child(3)) .dm-offer__tab small { font-size: .82rem; }
}

/* Mobile Navigation: alle Hauptpunkte (Links und Aufklapp-Knöpfe) immer gleich groß, auch bei kurzen Displays und offenem Untermenü */
html body .dm-mnav { --mn-fs: clamp(2.5rem, 12.5vw, 3.7rem); }
@media (max-height: 800px) { html body .dm-mnav { --mn-fs: clamp(2rem, min(12.5vw, 5.6svh), 3.7rem); } }
@media (max-height: 640px) { html body .dm-mnav { --mn-fs: clamp(2rem, 10.5vw, 2.8rem); } }
html body .dm-mnav :is(a.dm-mnav__a, button.dm-mnav__t) { font-size: var(--mn-fs); }

@media (max-width: 479px) { html body > .dm-badge--privat > span:not(.dm-badge__dot) { display: none; } }

/* Etikett oben: Zusatzleistungen (Reisbach) grün, Handy: kleinere Schrift, damit drei Teile passen */
html body > .dm-badge--zusatz { background: #2E3D26; }
@media (max-width: 479px) {
  html body > .dm-badge--privat, html body > .dm-badge--zusatz { font-size: .72rem; padding: 0 8px; }
  html body > .dm-badge--privat > span:not(.dm-badge__dot), html body > .dm-badge--zusatz > span:not(.dm-badge__dot) { display: inline-block; }
  html body > .dm-badge--privat > span:not(.dm-badge__dot), html body > .dm-badge--privat em, html body > .dm-badge--zusatz > span:not(.dm-badge__dot), html body > .dm-badge--zusatz em { margin-left: 8px; padding-left: 8px; }
}
@media (max-width: 349px) { html body > .dm-badge--zusatz em, html body > .dm-badge--privat em { display: none; } }

/* Seitenkopf auf Seiten mit Etikett-Streifen: die Leiste sitzt um die Streifenhöhe tiefer, der Kopf rückt entsprechend nach unten (sonst verschwindet die Überschrift unter der Leiste) */
@media (max-width: 959px) { html body:has(> .dm-badge) #tm-main .dm-phero { padding-top: calc(112px + var(--dm-strip)); } }

/* Kontakt: Notfall-Hinweis als grüne Platte (Form wie der Footer), Ringe wie im Seitenkopf, links Text, rechts der Anruf-Knopf */
#tm-main .dm-notice-sec { padding-top: 40px; padding-bottom: 0; }
#tm-main .dm-notice-sec .uk-container > .uk-grid { margin-left: 0; }
#tm-main .dm-notice-sec .uk-container > .uk-grid > div { position: relative; overflow: hidden; isolation: isolate; display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 48px; align-items: center; padding: 56px 64px; border-radius: 40px; color: #FFF0DA;
  background: linear-gradient(160deg, rgba(181,89,43,.22) 0%, rgba(0,0,0,0) 55%), linear-gradient(0deg, rgba(0,0,0,.2), rgba(0,0,0,0) 40%), var(--dm-leather) 0 0 / 360px 360px, #2B0A10; background-blend-mode: normal, normal, soft-light, normal; box-shadow: 0 24px 60px rgba(43,10,16,.32), inset 0 1px 0 rgba(255,240,218,.16); }
#tm-main .dm-notice-sec .uk-container > .uk-grid > div::before { content: 'Notfalltermine'; position: relative; grid-column: 1; justify-self: start; display: inline-flex; align-items: center; margin-bottom: 20px; padding: 7px 16px 7px 34px; border-radius: 999px; background: radial-gradient(circle at 18px 50%, #F2B589 0 4px, transparent 5px), rgba(255,240,218,.12); box-shadow: inset 0 0 0 1px rgba(255,240,218,.38); font: 600 .95rem/1.2 'Atkinson Hyperlegible Next', 'Atkinson Hyperlegible', sans-serif; color: #FFF0DA; }
#tm-main .dm-notice-sec .uk-container > .uk-grid > div::after { content: ''; position: absolute; z-index: -1; right: -140px; top: 50%; width: 560px; height: 560px; margin-top: -280px; border-radius: 50%; background: repeating-radial-gradient(circle, rgba(255,240,218,.16) 0 1.5px, transparent 1.5px 56px); -webkit-mask: radial-gradient(circle, #000 20%, transparent 70%); mask: radial-gradient(circle, #000 20%, transparent 70%); }
#tm-main .dm-notice-sec h2 { grid-column: 1; margin: 0 0 14px; color: #FFF0DA; font-size: clamp(2rem, 4.2vw, 3.6rem); font-weight: 500; line-height: 1.05; letter-spacing: -.02em; }
#tm-main .dm-notice-sec .uk-panel { grid-column: 1; margin: 0; max-width: 40rem; font-size: 1.25rem; line-height: 1.55; color: rgba(255,240,218,.92); }
#tm-main .dm-notice-sec .uk-margin-remove-bottom { grid-column: 2; grid-row: 1 / span 3; margin: 0; align-self: center; }
#tm-main .dm-notice-sec .uk-button { display: inline-flex; align-items: center; gap: 12px; min-height: 64px; padding: 0 36px; border-radius: 999px; background: #FFF0DA; color: #2A1710; font-size: 1.15rem; letter-spacing: .02em; box-shadow: 0 12px 28px rgba(10,16,8,.35); text-transform: none; }
#tm-main .dm-notice-sec .uk-button::before { content: ''; flex: none; width: 22px; height: 22px; background: currentColor; -webkit-mask: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15 15 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E"); mask: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15 15 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E"); }
#tm-main .dm-notice-sec .uk-button:hover { background: #fff; color: #2A1710; }
@media (max-width: 959px) {
  #tm-main .dm-notice-sec .uk-container > .uk-grid > div { grid-template-columns: 1fr; padding: 40px 32px; border-radius: 32px; }
  #tm-main .dm-notice-sec .uk-margin-remove-bottom { grid-column: 1; grid-row: auto; margin-top: 28px; }
}
@media (max-width: 479px) { #tm-main .dm-notice-sec .uk-container > .uk-grid > div { padding: 32px 24px; } #tm-main .dm-notice-sec .uk-button { width: 100%; justify-content: center; } }
#tm-main .dm-notice-sec.uk-section { padding-top: 40px !important; padding-bottom: 56px !important; }
@media (max-width: 719px) { #tm-main .dm-notice-sec.uk-section { padding-top: 24px !important; padding-bottom: 40px !important; } }

/* Etikett Ganzheitliche Behandlung: em trägt jetzt die Orte, deshalb bleibt sie auf schmalen Handys stehen und "Ohne Verordnung" weicht (steht im Seiteninhalt) */
@media (max-width: 389px) { html body > .dm-badge--privat > span:not(.dm-badge__dot) { display: none; } }
@media (max-width: 349px) { html body > .dm-badge--privat em { display: inline-block; } }

/* Standortkarten: mehr als drei Leistungen dürfen auf eine zweite Zeile umbrechen (Reisbach hat vier) */
.dm-loc .dm-loc__offers { flex-wrap: wrap; row-gap: 8px; }

/* Footer: Hinweis „Telefonnummer folgt“ statt Nummer, einzeilig und kleiner als eine Nummer */
.dm-ft__tel { font-size: clamp(1.3rem, 1.6vw, 1.6rem); white-space: nowrap; }

/* Anruf-Fenster: Warteliste Reisbach */
.dm-call__wait { margin: 14px 0 0; padding: 16px 18px; border-radius: 20px; background: rgba(147,67,29,.08); box-shadow: inset 0 0 0 1px rgba(147,67,29,.25); color: #2A1710; }
.dm-call__wait b { display: block; font-weight: 600; font-size: 18px; line-height: 1.3; color: #8A3A12; }
.dm-call__wait p { margin: 6px 0 14px; font-size: 17px; line-height: 1.5; }
.dm-call__wait .dm-call__waitbtn { display: block; width: 100%; box-sizing: border-box; text-align: center; white-space: normal; }
.dm-call__num { overflow-wrap: anywhere; font-size: 20px; }
.dm-ft__cols .dm-ft__colmail { margin-top: 8px; overflow-wrap: anywhere; }
.dm-ft__cols .dm-ft__colmail a { color: rgba(255,240,218,.92); text-decoration: underline; text-decoration-color: rgba(255,240,218,.4); text-underline-offset: 3px; }
.dm-ft__cols .dm-ft__colmail a:hover { text-decoration-color: currentColor; }
/* Kontakt: Warteliste-Hinweis in der Kachel (unter den Öffnungszeiten) */
.dm-rc__wait { margin-top: 1.1rem; padding-top: 1.1rem; border-top: 1px solid rgba(255,240,218,.28); }
.dm-rc__wait b { display: block; font: 500 1.2rem/1.3 Jost, sans-serif; color: #FFF0DA; }
.dm-rc__wait p { margin: .5rem 0 1rem; font-size: 1.0625rem; line-height: 1.5; color: rgba(255,240,218,.92); }
.dm-rc__wait .dm-rc__waitbtn { display: block; padding: 14px 22px; border-radius: 999px; background: #FFF0DA; color: #2A1710; text-align: center; font: 500 1rem/1.3 Jost, sans-serif; letter-spacing: .04em; text-decoration: none; transition: background .2s ease, transform .2s ease; }
.dm-rc__wait .dm-rc__waitbtn:hover, .dm-rc__wait .dm-rc__waitbtn:focus-visible { background: #fff; transform: translateY(-1px); }
