/* ---------- 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; }

/* 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', 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', '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); } }
.dm-hero h1                { animation: dm-rise 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', 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', 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', 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', 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); 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', 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', 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); 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', 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', 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', 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', 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); 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', 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', sans-serif; letter-spacing: -.02em; margin: 0 0 1.4rem; color: #2A1710; }
.dm-ticket__k { font: 600 1rem/1.3 'Atkinson Hyperlegible Next', sans-serif; color: #93431D; margin: 0 0 .35rem; }
.dm-ticket__big { font: 300 clamp(2.1rem, 3.5vw, 3.1rem)/1.02 'Jost', 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', 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); 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', sans-serif; color: #93431D; margin-bottom: auto; }
.dm-pick__name { font: 300 clamp(2.4rem, 4.6vw, 4.2rem)/1 'Jost', 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', 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', 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', 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); backdrop-filter: blur(12px); }
.dm-glass h2 { font: 500 clamp(1.5rem, 2.2vw, 1.9rem)/1.1 'Jost', 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', 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', sans-serif; letter-spacing: -.04em; color: #93431D; }
#tm-main .dm-flow h3 { font: 500 1.45rem/1.15 'Jost', 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', 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', 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', 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', 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); 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', 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', 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__row strong { font: 500 clamp(1.5rem, 2.4vw, 2.05rem)/1.12 'Jost', 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); 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', 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', 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', 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', 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%), url(img/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)), url(img/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%), url(img/trainingsraum-s.jpg); background-size: cover; background-position: center; }
.dm-pane--massage { background-image: linear-gradient(180deg, rgba(25,34,21,.55) 0%, rgba(25,34,21,.88) 78%), url(img/massage-raum-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%), url(img/trainingsraum-s.jpg); }
.dm-split .dm-pane--massage:hover, .dm-split .dm-pane--massage:focus-visible { background-image: linear-gradient(180deg, rgba(25,34,21,.28) 0%, rgba(25,34,21,.84) 78%), url(img/massage-raum-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); 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, .dm-hero--fan .uk-grid > div { width: 100%; }
.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', 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', 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', 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', 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); 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: -5px 0 0 -7px; 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', 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', 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); 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', 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', 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', 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); 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/mu-plugins/dombrowski-wow/img/leather.png?v=4); }
.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); 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', 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', 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', sans-serif; letter-spacing: -.035em; color: #FFF0DA; }
.dm-pass p { margin: 0; font: 500 clamp(1.3rem, 1.7vw, 1.55rem)/1.3 'Jost', 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); 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', 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', 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', 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', 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', 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', 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; } }
