/* ================================================================
   Therapie Rückenwind – Sektions-Design-System
   Gemeinsame Bausteine für Startseite, Leistungs- und Standortseiten.
   Werte 1:1 aus dem Claude-Design; JS-Breakpoints → Media Queries (900px).
   ================================================================ */

.rw-section { padding-block: clamp(48px,6vw,84px); position: relative; }
.rw-section--white { background:#fff; }
.rw-section--soft  { background: var(--rw-bg-soft); }
.rw-section--sand  { background:#f7f5f1; }
.rw-section--mint  { background:#e8f3f0; }
.rw-section--navy  { background:#0f2f3c; color:#fff; }
.rw-section--navy .rw-h2 { color:#fff; }

.rw-eyebrow { font-weight:700; letter-spacing:.12em; font-size:13px; color:var(--rw-teal); text-transform:uppercase; margin-bottom:14px; }
.rw-h2 { font-family:var(--rw-font-serif); font-weight:600; font-size:clamp(26px,3.2vw,38px); line-height:1.15; color:var(--rw-navy); margin:0; }
.rw-lead { font-size:16.5px; line-height:1.6; color:var(--rw-muted); margin:14px 0 0; }
.rw-section--navy .rw-lead { color:#c7d6d6; }
.rw-sec-head { max-width:720px; margin:0 auto 40px; text-align:center; }
.rw-sec-head--left { margin-left:0; text-align:left; }

/* Checkliste */
.rw-check { display:flex; gap:11px; align-items:flex-start; }
.rw-check span { color:var(--rw-ink-soft); font-size:15.5px; line-height:1.45; font-weight:500; }
.rw-check__ic { flex:none; margin-top:2px; }

/* HERO (Startseite / Standort) – Bild deckt den GESAMTEN Hero, Text liegt immer darauf */
.rw-hero { position:relative; overflow:hidden; background:#eaf1f1; }
.rw-hero__media { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center right; z-index:0; }
.rw-hero__overlay { position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.93) 34%,rgba(255,255,255,.55) 60%,rgba(255,255,255,.1) 86%,rgba(255,255,255,0) 100%); }
.rw-hero__inner { position:relative; z-index:2; }
.rw-hero__grid { display:grid; grid-template-columns:1.15fr .85fr; gap:40px; align-items:center; }
.rw-hero__left { max-width:560px; padding-block:3rem; }
.rw-hero__eyebrow { display:inline-flex; align-items:center; gap:8px; font-weight:700; letter-spacing:.14em; font-size:13px; color:var(--rw-teal); text-transform:uppercase; margin-bottom:18px; }
.rw-hero h1 { font-family:var(--rw-font-serif); font-weight:600; font-size:clamp(23px,3.4vw,42px); line-height:1.1; color:var(--rw-navy); letter-spacing:-.5px; margin:0 0 10px; }
.rw-hero__sub { font-family:var(--rw-font-serif); font-weight:500; font-size:clamp(18px,2vw,24px); color:var(--rw-teal); margin:0 0 18px; }
.rw-hero__text { font-size:clamp(16px,1.6vw,18px); line-height:1.6; color:#516067; margin:0 0 26px; max-width:500px; }
.rw-hero__bullets { display:flex; flex-direction:column; gap:16px; }
.rw-hero__bullet { display:flex; gap:13px; align-items:flex-start; }
.rw-hero__bullet .t { font-weight:700; color:var(--rw-navy); font-size:16.5px; }
.rw-hero__bullet .d { color:var(--rw-muted); font-size:15px; line-height:1.5; }
.rw-hero__right { display:flex; justify-content:flex-end; align-items:flex-start; align-self:start; width:100%; padding-block:3rem; }
.rw-hero__form { width:452px; max-width:100%; margin-top:clamp(90px,11vw,168px); }
/* Nur der Startseiten-Hero: Formular nach links versetzt, tiefer, Bild endet am Inhaltsende */
.rw-hero:not(.rw-hero--inner) { overflow:visible; }
.rw-hero:not(.rw-hero--inner) .rw-hero__right { padding-bottom:0; }
.rw-hero:not(.rw-hero--inner) .rw-hero__form { margin-top:calc(clamp(90px,11vw,168px) + 34px); margin-bottom:-58px; }
/* Links-Versatz nur auf breiten Screens – auf Tablet würde das Formular sonst den Text überdecken */
@media (min-width:1200px) { .rw-hero:not(.rw-hero--inner) .rw-hero__form { transform:translateX(-8rem); } }
/* Innen-Hero (Standort/Leistung): niedriger, Formular darf unten herausragen */
.rw-hero--inner { overflow:visible; }
.rw-hero--inner .rw-hero__form { margin-top:48px; margin-bottom:-104px; }
.rw-hero--inner .rw-hero__inner { padding-top:clamp(22px,2.4vw,28px); }

/* Trust-Bar */
.rw-trustbar { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:8px; }
.rw-trust { padding:20px 22px; border-right:1px solid #eef2f2; }
.rw-trust:last-child { border-right:0; }
.rw-trust__ic { width:46px; height:46px; display:flex; align-items:center; justify-content:center; }
.rw-trust__ic svg { display:block; }
.rw-trust .t { font-weight:700; color:var(--rw-navy); font-size:16px; margin:12px 0 6px; }
.rw-trust .d { color:var(--rw-muted); font-size:14.5px; line-height:1.5; }

/* Vertrauens-Stat-Karten */
.rw-cards-3 { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:22px; }
.rw-stat-card { background:#fff; border-radius:16px; padding:28px 26px; box-shadow:0 12px 34px -22px rgba(7,60,78,.3); }
.rw-stat-card .stat { font-family:var(--rw-font-serif); font-size:34px; font-weight:700; color:var(--rw-teal); line-height:1; }
.rw-stat-card .t { font-weight:700; color:var(--rw-navy); font-size:18px; margin:12px 0 8px; }
.rw-stat-card .d { color:var(--rw-muted); font-size:15px; line-height:1.55; }

/* Split (Text + Bild) */
.rw-split { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:clamp(32px,4vw,60px); align-items:center; }
.rw-split__media { border-radius:20px; overflow:hidden; aspect-ratio:1/1; background:#e6eef0; align-self:start; }
/* "Wann sinnvoll": Querformat, damit die 6 Kaesten links nicht in die Hoehe gezogen werden */
.rw-split__media--wann { aspect-ratio:16/10; }
.rw-split__media img { width:100%; height:100%; object-fit:cover; display:block; }
.rw-checkgrid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; }

/* Leistungs-Kacheln */
.rw-tiles { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.rw-tile { background:rgba(255,255,255,.05); border-radius:16px; padding:22px 20px; display:flex; flex-direction:column; text-decoration:none; transition:background .16s, transform .16s; }
.rw-tile:hover { background:rgba(255,255,255,.1); transform:translateY(-3px); }
.rw-tile__ic { width:44px; height:44px; border-radius:11px; background:rgba(13,142,135,.16); display:flex; align-items:center; justify-content:center; margin-bottom:14px; }
.rw-tile .t { font-weight:700; color:#fff; font-size:16.5px; margin-bottom:6px; }
.rw-tile .d { color:#a9c4cc; font-size:14px; line-height:1.5; }
.rw-tile__more { margin-top:auto; padding-top:16px; display:inline-flex; align-items:center; gap:6px; color:#4fd0c4; font-weight:600; font-size:13.5px; }
.rw-tile__more svg { transition:transform .15s ease; }
.rw-tile:hover .rw-tile__more svg { transform:translateX(3px); }
/* Leistungen-Layout: Körper-Silhouette links + 2-Spalten-Raster rechts */
.rw-leist-layout { display:grid; grid-template-columns:1fr 2fr; gap:44px; align-items:center; }
.rw-leist-figure { display:flex; justify-content:center; align-items:center; }
.rw-leist-figure img { max-width:100%; height:auto; max-height:500px; opacity:.9; }
.rw-leist-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:899px) {
  .rw-leist-layout { grid-template-columns:1fr; gap:24px; }
  .rw-leist-figure { max-height:260px; overflow:hidden; }
  .rw-leist-figure img { max-height:260px; }
}
@media (max-width:520px) { .rw-leist-grid { grid-template-columns:1fr; } }

/* Ablauf-Schritte */
.rw-steps { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:20px; }
.rw-step { background:#fff; border-radius:16px; padding:24px 22px; }
.rw-step__n { width:40px; height:40px; border-radius:11px; background:var(--rw-navy); color:#fff; font-family:var(--rw-font-serif); font-weight:700; font-size:19px; display:flex; align-items:center; justify-content:center; margin-bottom:16px; }
.rw-step .t { font-weight:700; color:var(--rw-navy); font-size:16.5px; margin-bottom:7px; }
.rw-step .d { color:var(--rw-muted); font-size:14.5px; line-height:1.55; }

/* Ablauf – Zickzack-Timeline mit Mittellinie */
.rw-flow { max-width:1080px; margin:0 auto; position:relative; }
.rw-flow::before { content:''; position:absolute; left:50%; top:34px; bottom:34px; width:2px; background:rgba(13,142,135,.16); transform:translateX(-1px); }
.rw-flow::after { content:''; position:absolute; left:50%; top:34px; width:2px; background:var(--rw-teal); transform:translateX(-1px); height:max(0px,calc(var(--rw-flow-fill,0px) - 34px)); transition:height .12s linear; z-index:0; }
.rw-flow-step { display:grid; grid-template-columns:1fr 68px 1fr; align-items:center; }
.rw-flow-num { justify-self:center; width:46px; height:46px; border-radius:50%; background:#dfeae9; color:#9fb4b3; font-family:var(--rw-font-serif); font-weight:700; font-size:19px; display:flex; align-items:center; justify-content:center; border:5px solid var(--rw-bg-soft); box-shadow:none; position:relative; z-index:1; transition:background .25s ease, color .25s ease, box-shadow .25s ease; }
.rw-flow-num.is-filled { background:var(--rw-teal); color:#fff; box-shadow:0 5px 16px -4px rgba(13,142,135,.6); }
.rw-flow-media { padding:14px 20px; }
.rw-flow-media img { width:100%; height:auto; max-height:300px; object-fit:cover; border-radius:16px; display:block; box-shadow:0 22px 46px -26px rgba(7,60,78,.5); }
.rw-flow-text { padding:14px 34px; }
.rw-flow-text--right { text-align:right; }
.rw-flow-text--left { text-align:left; }
.rw-flow-eyebrow { color:var(--rw-teal); font-weight:700; font-size:12.5px; letter-spacing:.12em; text-transform:uppercase; margin-bottom:8px; }
.rw-flow-text h3 { font-family:var(--rw-font-serif); font-weight:600; font-size:clamp(20px,2.2vw,26px); color:var(--rw-navy); margin:0 0 8px; }
.rw-flow-text p { color:var(--rw-muted); font-size:15px; line-height:1.6; margin:0; }
@media (max-width:760px) {
  .rw-flow::before, .rw-flow::after { left:23px; }
  .rw-flow-step { grid-template-columns:46px 1fr; column-gap:16px; align-items:start; margin-bottom:28px; }
  .rw-flow-num { grid-column:1; grid-row:1; }
  /* Immer Text zuerst (oben), dann Bild – unabhängig vom Zickzack */
  .rw-flow-side--text { grid-column:2; grid-row:1; }
  .rw-flow-side--media { grid-column:2; grid-row:2; }
  .rw-flow-text, .rw-flow-media { padding:0; text-align:left !important; }
  .rw-flow-media { margin-top:12px; }
}

/* Reveal-on-Scroll */
.rw-reveal { opacity:0; transform:translateY(18px); transition:opacity .55s ease, transform .55s ease; }
.rw-reveal.is-in { opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce) { .rw-reveal { opacity:1; transform:none; transition:none; } }

/* Kosten-Karten */
.rw-kosten { display:grid; grid-template-columns:repeat(auto-fit,minmax(270px,1fr)); gap:20px; max-width:840px; margin-inline:auto; }
.rw-kosten-card { background:var(--rw-bg-soft); border-radius:18px; padding:28px 26px; display:flex; flex-direction:column; }
.rw-kosten-card--featured { background:var(--rw-navy); box-shadow:0 20px 50px -22px rgba(7,60,78,.6); }
.rw-kosten-card__ic { width:58px; height:58px; border-radius:15px; background:rgba(13,142,135,.14); display:flex; align-items:center; justify-content:center; margin-bottom:16px; }
.rw-kosten-card--featured .rw-kosten-card__ic { background:rgba(13,142,135,.18); }
.rw-kosten-card .t { font-weight:700; font-size:19px; color:var(--rw-navy); margin-bottom:8px; }
.rw-kosten-card .d { font-size:14.5px; line-height:1.55; color:var(--rw-muted); min-height:70px; margin-bottom:18px; }
.rw-kosten-card--featured .t { color:#fff; }
.rw-kosten-card--featured .d { color:#b4cdd4; }
.rw-kosten-card__points { display:flex; flex-direction:column; gap:10px; }
.rw-kosten-card__point { display:flex; gap:9px; align-items:flex-start; font-size:14.5px; line-height:1.45; color:var(--rw-ink-soft); }
.rw-kosten-card--featured .rw-kosten-card__point { color:#e4eef0; }
.rw-kosten-card__check { flex:none; margin-top:2px; }

/* Therapeuten-Karten */
.rw-therapists { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,300px)); justify-content:start; gap:22px; }
.rw-therapist { display:block; text-decoration:none; background:#fbfcfc; border-radius:18px; overflow:hidden; transition:box-shadow .18s ease; }
/* Hover: nur ein dezenter Schatten am ganzen Container, keine Bewegung. */
.rw-therapist:hover { box-shadow:0 8px 22px -8px rgba(7,60,78,.32); }
.rw-teamcard__imglink { display:block; }
.rw-therapist__img { width:100%; height:350px; object-fit:cover; display:block; background:#e6eef0; }
.rw-therapist__body { padding:20px 20px 22px; }
.rw-therapist .name { font-weight:700; color:var(--rw-navy); font-size:18px; }
.rw-therapist .spec { color:var(--rw-teal); font-weight:600; font-size:14px; margin:3px 0 10px; }
.rw-therapist .line { color:var(--rw-muted); font-size:14px; line-height:1.5; }
.rw-sec-flexhead { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:16px; margin-bottom:36px; }
.rw-outline-btn { background:none; border:1.5px solid var(--rw-navy); color:var(--rw-navy); font-family:inherit; font-weight:600; font-size:15px; border-radius:10px; padding:12px 20px; cursor:pointer; white-space:nowrap; text-decoration:none; transition:.15s; display:inline-block; }
.rw-outline-btn:hover { background:var(--rw-navy); color:#fff; }

/* Testimonials */
.rw-quotes { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:22px; position:relative; z-index:1; }
.rw-quote { background:#fff; border-radius:18px; padding:26px 26px 24px; box-shadow:0 14px 40px -26px rgba(7,60,78,.35); display:flex; flex-direction:column; }
.rw-quote__stars { color:#f2b100; font-size:16px; letter-spacing:2px; margin-bottom:12px; }
.rw-quote__text { color:#3d4d54; font-size:15.5px; line-height:1.6; margin:0 0 18px; }
.rw-quote__person { display:flex; align-items:center; gap:12px; margin-top:auto; }
.rw-quote__avatar { width:44px; height:44px; border-radius:50%; background:var(--rw-teal); color:#fff; font-weight:700; display:flex; align-items:center; justify-content:center; font-size:15px; }
.rw-quote__name { font-weight:700; color:var(--rw-navy); font-size:15px; }
.rw-quote__area { color:var(--rw-muted); font-size:13.5px; }

/* Testimonials-Karussell + Wellen-Hintergrund */
.rw-quotes-sec { position:relative; overflow:hidden; }
.rw-quotes-wave { position:absolute; top:-30px; left:50%; transform:translateX(-50%); width:172%; max-width:2100px; height:clamp(320px,42vw,460px); opacity:1; pointer-events:none; z-index:0; }
.rw-quotes-sec > .rw-container { position:relative; z-index:1; }
.rw-carousel__viewport { display:flex; gap:22px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:none; -ms-overflow-style:none; padding:6px 2px 4px; }
.rw-carousel__viewport::-webkit-scrollbar { display:none; }
.rw-carousel__slide { flex:0 0 calc((100% - 44px) / 3); scroll-snap-align:start; }
.rw-carousel__nav { display:flex; align-items:center; justify-content:center; gap:20px; margin-top:34px; }
.rw-carousel__btn { width:46px; height:46px; border-radius:50%; background:#fff; border:1px solid #dbe8e6; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:background .15s, border-color .15s, box-shadow .15s; }
.rw-carousel__btn:hover:not(:disabled) { border-color:var(--rw-teal); box-shadow:0 8px 20px -10px rgba(7,60,78,.4); }
.rw-carousel__btn:disabled { opacity:.4; cursor:default; }
.rw-carousel__dots { display:flex; align-items:center; gap:8px; }
.rw-carousel__dot { width:9px; height:9px; border-radius:999px; background:#bcd3ce; border:none; padding:0; cursor:pointer; transition:width .2s, background .2s; }
.rw-carousel__dot.is-active { width:26px; background:var(--rw-teal); }
@media (max-width:900px) { .rw-carousel__slide { flex:0 0 calc((100% - 22px) / 2); } }
@media (max-width:640px) { .rw-carousel__slide { flex:0 0 100%; } }
/* Therapeuten-Carousel: feste Slide-Breite; scrollbar sobald mehr als in eine Zeile passt.
   Mobil schmaler, damit die nächste Person rechts „hervorlugt" (Scroll-Hinweis). */
.rw-carousel--therap .rw-carousel__slide { flex:0 0 290px; scroll-snap-align:start; }
@media (max-width:900px){ .rw-carousel--therap .rw-carousel__slide { flex:0 0 300px; } }
@media (max-width:600px){ .rw-carousel--therap .rw-carousel__slide { flex:0 0 82%; } }
/* Extra Platz unten, damit der Hover-Schatten der Karten nicht vom scrollenden Container abgeschnitten wird */
.rw-carousel--therap .rw-carousel__viewport { padding:8px 6px 24px; }
.rw-carousel--therap .rw-carousel__nav { margin-top:12px; justify-content:flex-start; }

/* Team-Übersicht: auf Desktop bleibt das Grid (Nav wird per JS ausgeblendet), auf Handy horizontal scrollbar */
.rw-carousel--teamgrid .rw-carousel__nav { margin-top:12px; justify-content:flex-start; }
@media (max-width:700px) {
  .rw-carousel--teamgrid .rw-teamgrid {
    display:flex; grid-template-columns:none; gap:16px;
    overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth;
    scrollbar-width:none; -ms-overflow-style:none; padding:4px 6px 24px;
  }
  .rw-carousel--teamgrid .rw-teamgrid::-webkit-scrollbar { display:none; }
  .rw-carousel--teamgrid .rw-teamcard { flex:0 0 82%; scroll-snap-align:start; }
}

/* FAQ */
.rw-faqs { display:flex; flex-direction:column; gap:12px; max-width:820px; margin:0 auto; }
.rw-faq { border-radius:14px; overflow:hidden; background:#fbfcfc; }
.rw-faq__q { width:100%; background:none; border:none; cursor:pointer; padding:20px 22px; display:flex; align-items:center; justify-content:space-between; gap:16px; text-align:left; font-family:inherit; font-weight:700; color:var(--rw-navy); font-size:16.5px; }
.rw-faq__chev { display:flex; transition:transform .2s; flex:none; }
.rw-faq.is-open .rw-faq__chev { transform:rotate(180deg); }
.rw-faq__a { max-height:0; overflow:hidden; transition:max-height .25s ease; }
.rw-faq__a > div { padding:0 22px 22px; color:#516067; font-size:15.5px; line-height:1.6; }

/* Kontakt-CTA */
.rw-contact { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:clamp(32px,4vw,56px); align-items:center; }
.rw-contact h2 { color:#fff; margin:0 0 16px; }
.rw-contact__text { font-size:17px; line-height:1.6; color:#b4cdd4; margin:0 0 28px; }
.rw-contact__phone { display:inline-flex; align-items:center; gap:12px; text-decoration:none; margin-bottom:22px; }
.rw-contact__phone .ic { width:52px; height:52px; border-radius:50%; background:rgba(13,142,135,.16); display:flex; align-items:center; justify-content:center; flex:none; }
.rw-contact__phone .lbl { display:block; color:#8fb3bc; font-size:13px; }
.rw-contact__phone .num { display:block; color:#fff; font-weight:700; font-size:22px; font-family:var(--rw-font-serif); }
.rw-contact__meta { display:flex; flex-direction:column; gap:12px; color:#b4cdd4; font-size:15px; }
.rw-contact__meta div { display:flex; align-items:center; gap:10px; }

/* Responsive < 1040px – Hero stapelt schon auf Tablet (sonst überlappt das Formular den Text) */
@media (max-width: 1039px) {
  .rw-hero__grid { grid-template-columns:1fr; gap:20px; }
  .rw-hero__left { padding-block:2rem .5rem; }
  .rw-hero__right { justify-content:center; padding-block:0 2rem; }
  .rw-hero__overlay { background:linear-gradient(180deg,rgba(255,255,255,.93) 0%,rgba(255,255,255,.85) 50%,rgba(255,255,255,.96) 100%); }
  .rw-hero__form, .rw-hero:not(.rw-hero--inner) .rw-hero__form, .rw-hero--inner .rw-hero__form { width:100%; max-width:460px; margin:0 auto; transform:none; }
  .rw-trust { border-right:0; border-bottom:1px solid #eef2f2; }
}

/* ================================================================
   Kontaktformular
   ================================================================ */
.rw-formcard { background:#fff; border-radius:20px; box-shadow:0 30px 70px -30px rgba(7,60,78,.5); padding:22px 24px; border:1px solid #eef3f3; }
.rw-formcard__title { font-family:var(--rw-font-serif); font-weight:600; font-size:21px; color:var(--rw-navy); margin:0 0 4px; }
.rw-formcard__sub { font-size:14px; color:var(--rw-muted); margin:0 0 15px; line-height:1.45; }
.rw-formcard__notice { border-radius:12px; padding:16px 18px; font-size:15px; line-height:1.5; margin-bottom:4px; }
.rw-formcard__notice--ok { background:#e6f4f3; color:#0b6a63; border:1px solid #b7e2de; }
.rw-formcard__notice--err { background:#fdeceb; color:#b23b32; border:1px solid #f4c9c5; margin-bottom:18px; }

.rw-form { display:flex; flex-direction:column; gap:11px; }
.rw-form__row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.rw-form__field { display:flex; flex-direction:column; gap:6px; border:none; margin:0; padding:0; }
.rw-form__label { font-weight:600; font-size:13.5px; color:var(--rw-ink-soft); }
.rw-form__label em { color:var(--rw-teal); font-style:normal; }
.rw-form input[type=text], .rw-form input[type=tel], .rw-form input[type=email], .rw-form textarea, .rw-form select {
  width:100%; font-family:inherit; font-size:15px; color:var(--rw-ink);
  border:1px solid #dce6e6; border-radius:10px; padding:11px 15px; background:#fbfdfd; transition:border-color .15s, box-shadow .15s;
}
.rw-form input::placeholder, .rw-form textarea::placeholder { color:#8a99a0; }
.rw-form input[type=text]:focus, .rw-form input[type=tel]:focus, .rw-form input[type=email]:focus, .rw-form textarea:focus, .rw-form select:focus { outline:none; border-color:var(--rw-teal); box-shadow:0 0 0 3px rgba(13,142,135,.12); }
/* Radios/Checkbox: kein quadratischer Glow; dezenter, runder Fokus nur bei Tastatur-Navigation */
.rw-pref input:focus, .rw-consent input:focus { box-shadow:none; }
.rw-pref input:focus-visible, .rw-consent input:focus-visible { outline:2px solid var(--rw-teal); outline-offset:2px; border-radius:50%; }
.rw-form textarea { resize:vertical; min-height:66px; }

/* Kontaktweg-Auswahl (Anruf / E-Mail) */
.rw-form__pref { display:flex; align-items:center; flex-wrap:wrap; gap:8px 10px; }
.rw-form__pref-lbl { font-size:13.5px; font-weight:600; color:var(--rw-ink-soft); margin-right:2px; }
.rw-pref { display:inline-flex; align-items:center; gap:7px; cursor:pointer; border:1px solid #dce6e6; background:#fbfdfd; border-radius:999px; padding:7px 14px; font-size:14px; font-weight:600; color:var(--rw-muted); transition:border-color .15s, color .15s, background .15s; }
.rw-pref input { accent-color:var(--rw-teal); margin:0; }
.rw-pref:has(input:checked) { border-color:var(--rw-teal); color:var(--rw-navy); background:rgba(13,142,135,.06); }
.rw-formcard--glass .rw-pref { background:#fff; }
/* Dropdown Versicherungsart */
.rw-select { position:relative; }
.rw-form select { appearance:none; -webkit-appearance:none; -moz-appearance:none; padding-right:42px; cursor:pointer; color:var(--rw-ink); }
.rw-form select:has(option[value=""]:checked) { color:#8a99a0; }
.rw-form select option { color:var(--rw-ink); }
.rw-select__chev { position:absolute; right:15px; top:50%; transform:translateY(-50%); pointer-events:none; }
.rw-form__radios { display:flex; flex-direction:column; gap:8px; }
.rw-radio { display:flex; align-items:center; gap:9px; font-size:14.5px; color:var(--rw-ink-soft); cursor:pointer; }
.rw-radio input { accent-color:var(--rw-teal); width:17px; height:17px; }
.rw-consent { display:flex; align-items:flex-start; gap:10px; font-size:13px; line-height:1.45; color:var(--rw-muted); }
.rw-consent input { accent-color:var(--rw-teal); margin-top:2px; }
.rw-consent em { color:var(--rw-teal); font-style:normal; }
.rw-consent a { color:var(--rw-teal); }
.rw-form__submit { width:100%; margin-top:4px; font-size:16px; }
.rw-form__hint { font-size:12.5px; color:#8a99a0; text-align:center; margin:4px 0 0; display:flex; align-items:center; justify-content:center; gap:6px; }

/* Halbtransparente Karte (Startseiten-Hero) – Eingabefelder bleiben voll gefüllt */
.rw-formcard--glass { background:rgba(255,255,255,.58); -webkit-backdrop-filter:blur(9px); backdrop-filter:blur(9px); border-color:rgba(255,255,255,.55); }
.rw-formcard--glass .rw-form input[type=text], .rw-formcard--glass .rw-form input[type=tel], .rw-formcard--glass .rw-form input[type=email], .rw-formcard--glass .rw-form textarea, .rw-formcard--glass .rw-form select { background:#fff; }

/* Einklappbares Formular: erst nur Button, auf Klick wächst das Formular auf */
.rw-formcard__trigger { width:100%; font-size:16px; margin-top:2px; }
.rw-formcard--collapsible .rw-form { max-height:0; overflow:hidden; opacity:0; margin-top:0; transition:max-height .35s ease, opacity .3s ease, margin-top .3s ease; }
.rw-formcard--collapsible.is-open .rw-form { max-height:900px; opacity:1; margin-top:14px; }
.rw-formcard--collapsible.is-open .rw-formcard__trigger { display:none; }
.rw-hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
/* Fehler-Markierung (fehlende Pflichtangabe / Einwilligung) – Eingaben bleiben erhalten */
.rw-form input.rw-err, .rw-form textarea.rw-err { border-color:#e2554b; box-shadow:0 0 0 3px rgba(226,85,75,.16); }
.rw-consent.rw-err { outline:2px solid #e2554b; outline-offset:5px; border-radius:8px; }
.rw-consent.rw-err, .rw-consent.rw-err a { color:#c23b30; }
.rw-formcard { scroll-margin-top:100px; }

@media (max-width:520px){ .rw-form__row { grid-template-columns:1fr; } }

/* ================================================================
   Einsatzgebiete (Bezirks-Links)
   ================================================================ */
.rw-gebiete { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:32px; }
.rw-gebiete__city { font-family:var(--rw-font-serif); font-weight:600; font-size:20px; color:#fff; margin-bottom:16px; }
.rw-gebiete__chips { display:flex; flex-wrap:wrap; gap:9px; }
.rw-chip { display:inline-block; text-decoration:none; font-size:14px; font-weight:600; color:#cfe4e4; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:999px; padding:8px 15px; transition:background .15s, color .15s, border-color .15s; }
.rw-chip:hover { background:var(--rw-teal); color:#fff; border-color:var(--rw-teal); }
.rw-chip--static { cursor:default; }
.rw-chip--static:hover { background:rgba(255,255,255,.06); color:#cfe4e4; border-color:rgba(255,255,255,.1); }

/* ================================================================
   Leistungs-/Innen-Hero (Bild + Overlay + Breadcrumb + Badges)
   ================================================================ */
.rw-lhero { position:relative; overflow:hidden; background:#e7f0f0; }
.rw-lhero__media { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.rw-lhero__overlay { position:absolute; inset:0; z-index:1; pointer-events:none;
  /* Leistungs-Unterseiten: Overlay diagonal von links-oben (stark) nach rechts-unten (klar) */
  background:linear-gradient(135deg,rgba(240,246,246,.98) 0%,rgba(240,246,246,.94) 40%,rgba(240,246,246,.72) 60%,rgba(240,246,246,.3) 82%,rgba(240,246,246,.05) 100%); }
.rw-lhero__inner { position:relative; z-index:2; padding-block:clamp(66px,7.5vw,90px) clamp(52px,6vw,72px); min-height:clamp(520px,54vw,600px); display:flex; flex-direction:column; justify-content:center; }
.rw-lhero__box { max-width:600px; }

/* Die "tall"-Variante (Über uns + Team-Übersicht) wirkt NUR auf dem Handy (Media-Query unten).
   Auf Desktop/Tablet verhält sich der Hero wie ein ganz normaler .rw-lhero (Standardhöhe + Diagonal-Overlay). */
/* Handy: oberer Teil komplett in der Overlay-Farbe (Eyebrow + Headline), darunter blendet das Bild
   weich ein (100% → 0, keine harte Kante); der freie Bildbereich unten ist nur ~halb so hoch.
   Beide Seiten (Über uns + Team) nutzen dieselbe Regel -> gleiche Gesamthöhe. */
@media (max-width:700px){
  .rw-lhero--tall .rw-lhero__inner { min-height:500px; justify-content:flex-start; padding-block:clamp(30px,7vw,44px) 160px; }
  /* Bild startet erst unter der Vollfarbe (Köpfe werden nicht mehr verdeckt) und ragt unten aus dem
     Container heraus; oberer Bildausschnitt (Gesichter) bleibt oben verankert. */
  .rw-lhero--tall .rw-lhero__media { top:140px; height:460px; object-position:center top; }
  .rw-lhero--tall .rw-lhero__overlay {
    /* Solid über Eyebrow + H1 (~170px von oben), danach weicher Verlauf bis 0 */
    background:linear-gradient(180deg,#f0f6f6 0px,#f0f6f6 170px,rgba(240,246,246,0) 100%); }
}
.rw-breadcrumb { font-size:13px; color:var(--rw-muted); margin-bottom:16px; }
.rw-breadcrumb a { color:var(--rw-teal); text-decoration:none; }
.rw-breadcrumb a:hover { text-decoration:underline; }
.rw-breadcrumb .sep { margin:0 6px; }
.rw-breadcrumb__cur { color:#516067; }
/* Breadcrumb liegt transparent oben auf dem Hero-Bild – keine Linie, kein weißer Hintergrund */
.rw-hero-crumbs { position:absolute; top:0; left:0; right:0; z-index:4; }
.rw-hero-crumbs .rw-breadcrumb { margin:0; padding:15px 0 0; }
.rw-breadcrumb--flow { margin:0 0 36px; }
.rw-lhero h1 { font-family:var(--rw-font-serif); font-weight:600; font-size:clamp(30px,4.4vw,46px); line-height:1.1; color:var(--rw-navy); letter-spacing:-.5px; margin:0 0 18px; }
.rw-lhero__intro { font-size:18px; line-height:1.6; color:#516067; margin:0 0 26px; }
.rw-lhero__actions { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:26px; }
.rw-lhero__phone { display:inline-flex; align-items:center; gap:9px; border:1.5px solid #cfdcdc; background:rgba(255,255,255,.6); border-radius:11px; padding:15px 22px; color:var(--rw-navy); font-weight:600; font-size:16px; text-decoration:none; }
.rw-btn--lg { font-size:16px; border-radius:11px; padding:15px 26px; }
.rw-lhero__badges { display:flex; gap:22px; flex-wrap:wrap; padding-top:20px; border-top:1px solid rgba(7,60,78,.14); }
.rw-badge { display:flex; align-items:center; gap:8px; font-size:14px; color:var(--rw-ink-soft); font-weight:600; }

/* Prose (WYSIWYG-Inhalte) */
.rw-prose { font-size:17px; line-height:1.7; color:#46555c; }
.rw-prose p { margin:0 0 16px; }
.rw-prose h2, .rw-prose h3 { color:var(--rw-navy); }
.rw-prose ul { padding-left:1.2em; margin:0 0 16px; }
.rw-prose a { color:var(--rw-teal); }

/* Rechtliche Seiten (Impressum, Datenschutz, Cookie-Richtlinie) – einheitlicher, lesbarer Aufbau */
.rw-legal { max-width:820px; }
.rw-legal > h1 { font-family:var(--rw-font-serif); font-weight:600; font-size:clamp(28px,3.6vw,40px); line-height:1.15; color:var(--rw-navy); margin:10px 0 24px; }
.rw-legal .rw-prose h2 { font-family:var(--rw-font-serif); font-weight:600; font-size:clamp(20px,2.4vw,26px); line-height:1.25; margin:1.6em 0 .5em; }
.rw-legal .rw-prose h3 { font-weight:700; font-size:18px; margin:1.3em 0 .4em; }
.rw-legal .rw-prose a { text-decoration:underline; text-underline-offset:2px; }
.rw-legal .rw-prose ul, .rw-legal .rw-prose ol { margin:0 0 16px; padding-left:1.3em; }
.rw-legal .rw-prose li { margin-bottom:6px; }
/* Cookie-Tabelle (Complianz) im Seiten-Look */
.rw-legal .rw-prose table, .cmplz-document table { width:100%; border-collapse:collapse; margin:12px 0 22px; font-size:14.5px; background:#fff; border:1px solid #e3ecec; border-radius:12px; overflow:hidden; }
.rw-legal .rw-prose th, .cmplz-document th { background:var(--rw-bg-soft); color:var(--rw-navy); font-weight:700; text-align:left; padding:10px 14px; border-bottom:1px solid #e3ecec; }
.rw-legal .rw-prose td, .cmplz-document td { padding:10px 14px; border-bottom:1px solid #eef3f3; vertical-align:top; }
.rw-legal .rw-prose tr:last-child td { border-bottom:0; }
/* „Einwilligung verwalten/widerrufen"-Button von Complianz im Marken-Stil */
.cmplz-manage-consent-container .cmplz-manage-consent,
.rw-legal .cmplz-manage-consent { display:inline-flex; align-items:center; gap:8px; background:var(--rw-navy); color:#fff !important; text-decoration:none; font-weight:600; font-size:15px; border:0; border-radius:11px; padding:11px 20px; cursor:pointer; transition:background .2s ease; }
.cmplz-manage-consent-container .cmplz-manage-consent:hover,
.rw-legal .cmplz-manage-consent:hover { background:var(--rw-teal); }

/* Wann-Karten (Leistung) */
.rw-wanncards { display:grid; grid-template-columns:1fr 1fr; gap:14px; grid-auto-rows:1fr; }
.rw-wanncard { background:#fff; border-radius:14px; padding:20px 22px; display:flex; flex-direction:column; gap:12px; align-items:flex-start; justify-content:flex-start; }
.rw-wanncard span { color:var(--rw-ink-soft); font-size:15px; line-height:1.45; font-weight:500; }
@media (max-width:560px){ .rw-wanncards { grid-template-columns:1fr; grid-auto-rows:auto; } }

/* Innen-Hero (Standort) nutzt jetzt dieselbe content-basierte Logik wie der Startseiten-Hero. */

/* Beschwerden-Karten (navy) */
.rw-issues { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; }
.rw-issue { background:rgba(255,255,255,.05); border-radius:16px; padding:22px 20px; }
.rw-issue__ic { width:44px; height:44px; border-radius:11px; background:rgba(13,142,135,.16); display:flex; align-items:center; justify-content:center; margin-bottom:14px; }
.rw-issue .t { font-weight:700; color:#fff; font-size:16.5px; margin-bottom:6px; }
.rw-issue .d { color:#a9c4cc; font-size:14px; line-height:1.55; }

/* Callout-Box (Erreichbarkeit) */
.rw-callout { background:#fff; border-left:4px solid var(--rw-teal); border-radius:12px; padding:20px 22px; margin-top:8px; display:flex; gap:12px; align-items:flex-start; }
.rw-callout p { font-size:15.5px; line-height:1.6; color:#46555c; margin:0; }
.rw-callout strong { color:var(--rw-navy); }

/* ================================================================
   Team-Übersicht + Profil
   ================================================================ */
.rw-teamgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,300px)); justify-content:start; gap:24px; }
.rw-teamcard { background:#fbfcfc; border-radius:18px; overflow:hidden; display:flex; flex-direction:column; transition:box-shadow .18s ease; }
.rw-teamcard:hover { box-shadow:0 8px 22px -8px rgba(7,60,78,.32); }
.rw-teamcard__img { width:100%; height:350px; object-fit:cover; display:block; background:#e6eef0; }
.rw-teamcard__body { padding:22px; display:flex; flex-direction:column; flex:1; }
.rw-teamcard .name { font-weight:700; color:var(--rw-navy); font-size:19px; }
.rw-teamcard .spec { color:var(--rw-teal); font-weight:600; font-size:14px; margin:3px 0 10px; }
.rw-teamcard .line { color:var(--rw-muted); font-size:14.5px; line-height:1.55; margin-bottom:16px; }
.rw-teamcard__schwer { list-style:none; margin:0 0 18px; padding:0; display:flex; flex-direction:column; gap:7px; }
.rw-teamcard__schwer li { display:flex; gap:8px; align-items:flex-start; font-size:14.5px; color:var(--rw-ink-soft); line-height:1.4; }
.rw-teamcard__schwer li svg { flex:none; margin-top:2px; }
.rw-teamcard__body .rw-outline-btn { margin-top:auto; }
.rw-teamcard .rw-outline-btn { margin-top:auto; text-align:center; padding:11px; }

.rw-verbaende { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:12px; }
.rw-verband { background:#fff; border-radius:12px; padding:16px 18px; display:flex; gap:11px; align-items:center; }
.rw-verband span { font-weight:600; color:var(--rw-ink-soft); font-size:14.5px; }
.rw-verband svg { flex:none; }

/* Profil */
.rw-profile-hero { display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(32px,4vw,56px); align-items:stretch; }
/* Linke Spalte füllt die volle Höhe; die zwei Kästen wachsen bis zur Bild-Unterkante */
.rw-profile-hero__col { display:flex; flex-direction:column; }
.rw-profile-hero__col .rw-qa-grid { flex:1 1 auto; grid-auto-rows:1fr; align-content:stretch; }
.rw-profile-hero__col .rw-qa-card { height:100%; }
.rw-profile-hero__media { border-radius:18px; overflow:hidden; min-height:clamp(320px,34vw,440px); background:#f5f5f5; align-self:stretch; }
.rw-profile-hero__media img { width:100%; height:100%; object-fit:cover; display:block; }
.rw-qa-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin-bottom:24px; }
.rw-qa-card { background:var(--rw-bg-soft); border-radius:16px; padding:26px 24px; }
.rw-qa-card h3 { font-family:var(--rw-font-serif); font-weight:600; font-size:19px; color:var(--rw-navy); margin:0 0 10px; }
.rw-qa-card p { font-size:15.5px; line-height:1.6; color:#516067; margin:0; }
.rw-qa-list { display:flex; flex-direction:column; gap:9px; }
.rw-qa-list div { display:flex; gap:9px; align-items:flex-start; font-size:15px; color:var(--rw-ink-soft); }
.rw-philo { background:var(--rw-footer); border-radius:20px; padding:clamp(28px,4vw,44px); position:relative; overflow:hidden; }
.rw-philo__body { position:relative; z-index:1; max-width:65%; }
.rw-philo__wave { position:absolute; right:-3%; top:50%; transform:translateY(-50%); width:56%; height:auto; opacity:.55; pointer-events:none; z-index:0; }
@media (max-width:760px){ .rw-philo__body { max-width:100%; } .rw-philo__wave { display:none; } }
.rw-philo h3 { font-family:var(--rw-font-serif); font-weight:600; font-size:clamp(20px,2.4vw,26px); color:#fff; margin:0 0 14px; }
.rw-philo p { font-size:16.5px; line-height:1.7; color:#c6dbe0; margin:0; }
@media (max-width:760px){ .rw-profile-hero { grid-template-columns:1fr; } .rw-qa-grid { grid-template-columns:1fr; } }

/* ================================================================
   Über uns
   ================================================================ */
.rw-mission { max-width:900px; margin:0 auto; text-align:center; }
.rw-mission h2 { font-family:var(--rw-font-serif); font-weight:600; font-size:clamp(24px,3.4vw,38px); line-height:1.25; color:#fff; margin:0 0 18px; }
.rw-mission p { font-size:17px; line-height:1.65; color:#b4cdd4; margin:0; }
.rw-quali-box { background:var(--rw-bg-soft); border-radius:16px; padding:22px 24px; display:flex; align-items:center; justify-content:space-between; gap:24px; max-width:520px; }
.rw-quali-box__points { display:flex; flex-direction:column; gap:12px; }
.rw-quali-box__points > div { display:flex; gap:10px; align-items:flex-start; }
.rw-quali-box span { font-size:14px; font-weight:600; color:var(--rw-ink-soft); line-height:1.4; }
.rw-quali-box__logo { flex:none; height:60px; width:auto; object-fit:contain; }
.rw-quali-logos { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:clamp(22px,4vw,54px); margin-top:clamp(30px,4vw,46px); }
.rw-quali-logo { height:96px; width:auto; max-width:130px; object-fit:contain; }
/* Logos links unter dem Kasten (neben dem Bild) statt zentriert unten */
.rw-quali-logos--left { justify-content:flex-start; margin-top:22px; gap:28px; }
.rw-quali-logos--left .rw-quali-logo { height:56px; }

/* Behandlungsspektrum (Über uns) */
.rw-beh-head { text-align:center; max-width:720px; margin:clamp(40px,5vw,60px) auto 0; }
.rw-beh-title { font-family:var(--rw-font-serif); font-weight:600; font-size:clamp(22px,2.6vw,30px); color:var(--rw-navy); margin:0 0 10px; }
.rw-beh-sub { color:var(--rw-muted); font-size:16px; line-height:1.6; margin:0; }
.rw-behandlungen { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:clamp(24px,3vw,36px); }
@media (max-width:1000px){ .rw-behandlungen { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:620px){ .rw-behandlungen { grid-template-columns:1fr; } }
/* Leistungsabschnitte: Silhouette links, 6 Karten (2 Spalten × 3 Reihen) rechts */
.rw-leist-layout { display:grid; grid-template-columns:clamp(150px,16vw,240px) 1fr; gap:clamp(28px,4vw,56px); align-items:center; margin-top:clamp(24px,3vw,36px); }
.rw-leist-layout .rw-behandlungen { grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:0; }
@media (max-width:900px){ .rw-leist-layout { grid-template-columns:1fr; gap:22px; } .rw-leist-layout .rw-leist-figure { display:none; } }
@media (max-width:620px){ .rw-leist-layout .rw-behandlungen { grid-template-columns:1fr; } }
.rw-beh-card { position:relative; background:#fff; border:1px solid #eef3f3; border-radius:16px; padding:24px; box-shadow:0 12px 34px -26px rgba(7,60,78,.3); }
/* „Mehr erfahren" – Desktop: oben rechts, erst bei Hover, ohne Rahmen */
.rw-beh-more { display:inline-flex; align-items:center; gap:6px; color:var(--rw-teal); font-weight:600; font-size:14px; white-space:nowrap; }
.rw-behandlungen--navy .rw-beh-more { color:#4fd0c4; }
.rw-beh-more svg { transition:transform .15s ease; }
/* Nur Geräte mit echtem Hover (Desktop-Maus): Button erst beim Hovern oben rechts einblenden */
@media (hover:hover) and (min-width:701px){
  .rw-beh-more { position:absolute; top:22px; right:22px; opacity:0; transition:opacity .16s ease; }
  .rw-beh-card--link:hover .rw-beh-more { opacity:1; }
  .rw-beh-card--link:hover .rw-beh-more svg { transform:translateX(3px); }
}
/* Touch (Tablet/Handy – kein Hover) ODER schmal: dezenter, fest sichtbarer Button unten im Kasten */
@media (hover:none), (max-width:700px){
  .rw-beh-more { display:flex; width:fit-content; margin-top:16px; margin-left:auto; padding:8px 14px; border:1px solid rgba(79,208,196,.4); border-radius:9px; font-size:13px; }
}
.rw-beh-card--usp { background:var(--rw-navy); border-color:var(--rw-navy); }
.rw-beh-card h4 { font-family:var(--rw-font-serif); font-weight:600; font-size:18px; color:var(--rw-navy); margin:0 0 14px; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.rw-beh-card--usp h4 { color:#fff; }
.rw-beh-badge { font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#052a2c; background:var(--rw-teal); padding:3px 9px; border-radius:6px; }
.rw-beh-card ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
.rw-beh-card li { display:flex; gap:9px; align-items:flex-start; font-size:14.5px; color:var(--rw-ink-soft); line-height:1.45; }
.rw-beh-card--usp li { color:#dce9ea; }
.rw-beh-card li svg { flex:none; margin-top:2px; }
/* Icon-Kachel oben in jeder Behandlungskarte */
.rw-beh-ic { width:52px; height:52px; border-radius:14px; background:rgba(13,142,135,.12); display:flex; align-items:center; justify-content:center; margin-bottom:16px; }
.rw-beh-ic svg { display:block; }
.rw-beh-card--usp .rw-beh-ic { background:rgba(255,255,255,.12); }

/* Dunkle Variante fuer die Startseiten-Sektion "Unsere Leistungen" */
.rw-behandlungen--navy .rw-beh-card { background:rgba(255,255,255,.045); border-color:rgba(255,255,255,.09); box-shadow:none; }
.rw-behandlungen--navy .rw-beh-card h4 { color:#fff; }
.rw-behandlungen--navy .rw-beh-card li { color:#c6d6da; }
.rw-behandlungen--navy .rw-beh-ic { background:#0f2f3c; }
a.rw-beh-card { text-decoration:none; color:inherit; transition:transform .16s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease; }
.rw-beh-card--link:hover { transform:translateY(-3px); }
.rw-behandlungen--navy a.rw-beh-card--link:hover { border-color:rgba(13,142,135,.6); background:rgba(255,255,255,.08); }
.rw-beh-arrow { color:var(--rw-teal); font-weight:700; opacity:0; margin-left:2px; transition:opacity .16s ease; }
.rw-beh-card--link:hover .rw-beh-arrow { opacity:1; }
.rw-behandlungen--navy .rw-beh-card--usp { background:rgba(13,142,135,.16); border-color:rgba(13,142,135,.55); }
.rw-behandlungen--navy .rw-beh-card--usp .rw-beh-ic { background:rgba(13,142,135,.3); }
.rw-infobox { background:#fff; border-radius:16px; padding:26px 24px; display:flex; flex-direction:column; gap:12px; }
.rw-infobox > div { display:flex; gap:10px; align-items:flex-start; }
.rw-infobox span { font-size:15.5px; color:var(--rw-ink-soft); line-height:1.45; }
.rw-statbox { background:var(--rw-footer); border-radius:16px; padding:26px; color:#fff; }
.rw-statbox .big { font-family:var(--rw-font-serif); font-size:clamp(22px,2.6vw,28px); font-weight:600; margin-bottom:8px; }
.rw-statbox .sub { font-size:15px; line-height:1.6; color:#b4cdd4; }
.rw-awards { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:18px; }
.rw-award { text-align:center; padding:24px; background:var(--rw-bg-soft); border-radius:14px; }
.rw-award .num { font-family:var(--rw-font-serif); font-size:30px; font-weight:700; color:var(--rw-teal); }
.rw-award .lbl { color:var(--rw-muted); font-size:14px; margin-top:6px; }
.rw-marquee { overflow:hidden; position:relative; -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); }
.rw-marquee__track { display:flex; gap:22px; width:max-content; animation:rwMarquee 34s linear infinite; }
.rw-marquee__item { flex:none; width:190px; height:100px; background:#fff; border-radius:16px; display:flex; align-items:center; justify-content:center; gap:12px; }
@media (max-width:640px){ .rw-quali-box { flex-direction:column; align-items:flex-start; gap:18px; max-width:none; } }

/* ================================================================
   Rechtstexte (Impressum/Datenschutz) + generische Seite
   ================================================================ */
.rw-legal { max-width:820px; margin:0 auto; }
.rw-legal h1 { font-family:var(--rw-font-serif); font-weight:600; font-size:clamp(30px,4vw,44px); line-height:1.1; color:var(--rw-navy); margin:0 0 24px; }
.rw-legal h2 { font-family:var(--rw-font-serif); font-weight:600; font-size:clamp(20px,2.2vw,25px); color:var(--rw-navy); margin:32px 0 12px; }
.rw-legal p, .rw-legal li { font-size:15.5px; line-height:1.7; color:#46555c; }
.rw-legal a { color:var(--rw-teal); }
.rw-legal-note { background:#fdf3e7; border:1px solid #f2d9b8; border-radius:12px; padding:16px 18px; margin-bottom:32px; font-size:14px; line-height:1.6; color:#8a5a1f; }

/* ================================================================
   Mobil-Feinschliff (Tablet & Handy)
   ================================================================ */
/* Kein horizontales Scrollen; Medien nie breiter als der Bildschirm */
html, body { overflow-x:hidden; max-width:100%; }
img, svg, iframe, video { max-width:100%; }

/* Tablet & darunter */
@media (max-width:900px){
  /* Innen-Heroes (Leistung/Standort) kompakter statt 520–600px hoch */
  .rw-lhero__inner { min-height:clamp(340px,58vw,470px); }
  /* Behandlungs-Kacheln: 2 Spalten (bereits ab 1000px), Abstand etwas enger */
  .rw-leist-layout, .rw-behandlungen { gap:16px; }
}

/* Handy */
@media (max-width:600px){
  .rw-container { padding-left:18px; padding-right:18px; }
  .rw-logo img { height:52px; }
  .rw-footer__brand img { height:60px; }
  /* Weitere-Leistungen-Kacheln einspaltig */
  .rw-tiles { grid-template-columns:1fr; }
  /* Abschnitts-Kopf etwas kompakter */
  .rw-sec-head { margin-bottom:26px; }
  .rw-formcard { padding:20px 18px; }
  /* Hero-Buttons volle Breite & gut tippbar (Termin/Hausbesuch + Telefon) */
  .rw-lhero__actions { gap:10px; }
  .rw-lhero__actions > * { flex:1 1 100%; justify-content:center; }
  .rw-lhero__phone { padding:14px 18px; }
  /* Badges umbrechen sauber */
  .rw-lhero__badges { gap:10px 16px; }
  /* Kosten-/Karten-Padding etwas kleiner */
  .rw-beh-card, .rw-kosten-card, .rw-stat-card, .rw-qa-card, .rw-quali-box { padding:22px 20px; }
}

/* Sehr kleine Geräte */
@media (max-width:380px){
  .rw-container { padding-left:14px; padding-right:14px; }
  .rw-btn--primary { padding:12px 16px; }
}

/* Smart-Header (mobil/tablet): runter = ausblenden, hoch = einblenden.
   position:fixed statt sticky – sonst blendet iOS beim Hochscrollen nicht zuverlässig wieder ein. */
@media (max-width:1039px){
  .rw-header { position:fixed; top:0; left:0; right:0; transition:transform .28s ease; }
  .rw-header.rw-header--hidden { transform:translateY(-100%); }
  .rw-page { padding-top:var(--rw-headh,78px); }
}

/* Text/Bild-Blöcke (Über uns, „Was ist", Wann …): mobil immer erst Text, dann Bild */
@media (max-width:700px){
  .rw-split { grid-template-columns:1fr; }
  .rw-split__media { order:2; }
}

/* ================================================================
   Schwebende Widgets: Scroll-to-Top (nur Desktop) + Schnellkontakt
   ================================================================ */
.rw-totop { position:fixed; bottom:28px; right:24px; width:54px; height:54px; padding:0; border:0; background:none; cursor:pointer; z-index:900; opacity:0; visibility:hidden; transform:translateY(18px); transition:opacity .3s ease, transform .3s ease, visibility .3s ease; }
.rw-totop.is-visible { opacity:1; visibility:visible; transform:translateY(0); }
.rw-totop:active { transform:translateY(1px) scale(.97); }
.rw-totop__ring { position:absolute; inset:0; width:54px; height:54px; transform:rotate(-90deg); }
.rw-totop__track { fill:none; stroke:rgba(150,162,164,.55); stroke-width:3; }
.rw-totop__prog { fill:none; stroke:var(--rw-teal); stroke-width:3; stroke-linecap:round; transition:stroke-dashoffset .1s linear; }
.rw-totop__core { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:42px; height:42px; border-radius:50%; background:var(--rw-navy); display:flex; align-items:center; justify-content:center; box-shadow:0 6px 16px -6px rgba(7,60,78,.5), 0 0 0 1.5px rgba(255,255,255,.22); transition:background .2s ease; }
.rw-totop__core svg { width:18px; height:18px; }
.rw-totop:hover .rw-totop__core { background:var(--rw-teal); }
/* Scroll-to-Top nur auf Desktop */
@media (max-width:1023px){ .rw-totop { display:none; } }

.rw-contactw { position:fixed; right:18px; bottom:150px; z-index:900; opacity:0; visibility:hidden; transition:opacity .25s ease, visibility .25s ease; }
.rw-contactw.is-visible { opacity:1; visibility:visible; }
.rw-contactw__pill { background:var(--rw-navy); border-radius:999px; padding:8px; display:flex; flex-direction:column; gap:9px; box-shadow:0 16px 36px -16px rgba(7,60,78,.65); }
.rw-contactw__btn { width:42px; height:42px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.10); transition:background .2s ease, transform .2s ease; }
.rw-contactw__btn:hover { background:var(--rw-teal); transform:scale(1.06); }
.rw-contactw__btn svg { width:20px; height:20px; }
@media (max-width:600px){
  .rw-contactw { right:10px; }
  .rw-contactw__pill { padding:6px; gap:7px; }
  .rw-contactw__btn { width:38px; height:38px; }
  .rw-contactw__btn svg { width:18px; height:18px; }
}

/* ================================================================
   Blog: Übersicht (Karten-Grid) + Einzelbeitrag
   ================================================================ */
.rw-blog-head .rw-sec-head { margin-bottom:0; }
.rw-blog-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:26px; }
.rw-blog-card { display:flex; flex-direction:column; background:#fff; border:1px solid #eef3f3; border-radius:18px; overflow:hidden; text-decoration:none; transition:box-shadow .18s ease, transform .18s ease; }
.rw-blog-card:hover { box-shadow:0 16px 38px -20px rgba(7,60,78,.4); transform:translateY(-3px); }
.rw-blog-card__media { position:relative; aspect-ratio:16/10; background:linear-gradient(135deg,#0d4b52,#0a2e3a); overflow:hidden; }
.rw-blog-card__img { width:100%; height:100%; object-fit:cover; display:block; }
.rw-blog-card__ph { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.45); }
.rw-blog-card__cat { position:absolute; left:14px; bottom:14px; background:rgba(255,255,255,.94); color:var(--rw-navy); font-weight:700; font-size:12px; letter-spacing:.02em; padding:5px 11px; border-radius:999px; }
.rw-blog-card__body { padding:22px 22px 24px; display:flex; flex-direction:column; flex:1; }
.rw-blog-card__meta { color:var(--rw-teal); font-weight:600; font-size:13px; margin-bottom:8px; }
.rw-blog-card__title { font-family:var(--rw-font-serif); font-weight:600; font-size:20px; line-height:1.25; color:var(--rw-navy); margin:0 0 10px; }
.rw-blog-card__excerpt { color:var(--rw-muted); font-size:14.5px; line-height:1.55; margin:0 0 16px; }
.rw-blog-card__more { margin-top:auto; display:inline-flex; align-items:center; gap:6px; color:var(--rw-teal); font-weight:600; font-size:14px; }
.rw-blog-card__more svg { transition:transform .15s ease; }
.rw-blog-card:hover .rw-blog-card__more svg { transform:translateX(3px); }

/* Einzelbeitrag */
.rw-post__head { padding-top:clamp(40px,5vw,64px); padding-bottom:clamp(26px,3.4vw,38px); }
.rw-post__inner { max-width:820px; }
.rw-post__title { font-family:var(--rw-font-serif); font-weight:600; font-size:clamp(28px,4vw,44px); line-height:1.12; color:var(--rw-navy); margin:12px 0 14px; }
.rw-post__meta { color:var(--rw-teal); font-weight:600; font-size:14px; }
.rw-post__herowrap { background:#f7f5f1; padding-bottom:clamp(28px,3.5vw,48px); }
.rw-post__heroimg { display:block; width:100%; max-height:460px; object-fit:cover; border-radius:18px; }

/* 2-Spalten: sticky Sidebar (Autorenbox + Inhaltsverzeichnis) + Lesetext */
.rw-post__grid { display:grid; grid-template-columns:270px minmax(0,1fr); gap:clamp(30px,4vw,60px); align-items:start; }
.rw-post__asideinner { position:sticky; top:100px; display:flex; flex-direction:column; gap:18px; }
.rw-post__main { min-width:0; }
.rw-post-content { max-width:740px; margin:0; color:#2b3b40; font-size:17px; line-height:1.75; }
.rw-post-content > *:first-child { margin-top:0; }
.rw-post-content h2 { scroll-margin-top:100px; }

/* Autorenbox */
.rw-authorbox { background:var(--rw-bg-soft); border:1px solid #eef3f3; border-radius:16px; padding:20px; }
.rw-authorbox__head { display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.rw-authorbox__ava { width:46px; height:46px; border-radius:50%; background:var(--rw-navy); display:flex; align-items:center; justify-content:center; flex:none; }
.rw-authorbox__name { font-weight:700; color:var(--rw-navy); font-size:15px; }
.rw-authorbox__role { color:var(--rw-teal); font-weight:600; font-size:12.5px; }
.rw-authorbox__text { color:var(--rw-muted); font-size:13.5px; line-height:1.55; margin:0 0 16px; }
.rw-authorbox__btn { display:flex; width:100%; justify-content:center; }
.rw-authorbox__links { display:flex; flex-direction:column; gap:8px; margin-top:14px; }
.rw-authorbox__links a { display:inline-flex; align-items:center; gap:8px; color:var(--rw-navy); text-decoration:none; font-size:13.5px; font-weight:600; }
.rw-authorbox__links a:hover { color:var(--rw-teal); }

/* Inhaltsverzeichnis */
.rw-toc { background:#fff; border:1px solid #eef3f3; border-radius:16px; padding:18px 20px; }
.rw-toc__title { font-weight:700; color:var(--rw-navy); font-size:12px; text-transform:uppercase; letter-spacing:.09em; margin-bottom:12px; }
.rw-toc__list { list-style:none; margin:0; padding:0; }
.rw-toc__list li { margin:0 0 4px; }
.rw-toc__list a { display:block; color:var(--rw-muted); text-decoration:none; font-size:13.5px; line-height:1.4; border-left:2px solid #e3ecec; padding:5px 0 5px 12px; transition:color .15s, border-color .15s; }
.rw-toc__list a:hover { color:var(--rw-teal); border-color:var(--rw-teal); }

@media (max-width:900px){
  .rw-post__grid { grid-template-columns:1fr; gap:26px; }
  .rw-post__asideinner { position:static; }
  .rw-post-content, .rw-post__back { max-width:none; }
}
.rw-post-content p, .rw-post-content ul, .rw-post-content ol, .rw-post-content figure, .rw-post-content blockquote { margin:0 0 1.15em; }
.rw-post-content h2 { font-family:var(--rw-font-serif); font-weight:600; font-size:clamp(22px,2.6vw,30px); color:var(--rw-navy); line-height:1.2; margin:1.7em 0 .5em; }
.rw-post-content h3 { font-weight:700; font-size:20px; color:var(--rw-navy); margin:1.5em 0 .4em; }
.rw-post-content a { color:var(--rw-teal); text-decoration:underline; text-underline-offset:2px; }
.rw-post-content ul, .rw-post-content ol { padding-left:1.3em; }
.rw-post-content li { margin-bottom:.5em; }
.rw-post-content img { max-width:100%; height:auto; border-radius:14px; }
.rw-post-content blockquote { border-left:4px solid var(--rw-teal); background:var(--rw-bg-soft); margin:1.5em 0; padding:16px 22px; border-radius:0 12px 12px 0; font-style:italic; color:var(--rw-navy); }
.rw-post__back { margin:38px 0 0; }
.rw-post-pages { margin-top:18px; }

/* Pagination (Blog/Archiv) */
.rw-section .navigation.pagination { margin-top:44px; }
.rw-section .nav-links { display:flex; justify-content:center; gap:8px; flex-wrap:wrap; }
.rw-section .page-numbers { display:inline-flex; align-items:center; justify-content:center; min-width:42px; height:42px; padding:0 12px; border-radius:11px; border:1px solid #dbe8e6; color:var(--rw-navy); text-decoration:none; font-weight:600; background:#fff; transition:background .15s, border-color .15s, color .15s; }
.rw-section span.page-numbers.current { background:var(--rw-navy); color:#fff; border-color:var(--rw-navy); }
.rw-section a.page-numbers:hover { border-color:var(--rw-teal); color:var(--rw-teal); }
.rw-section .page-numbers.dots { border:0; background:none; min-width:auto; }

@media (max-width:600px){ .rw-blog-grid { grid-template-columns:1fr; } }

/* 404-Seite */
.rw-404__inner { max-width:660px; margin:0 auto; text-align:center; padding-block:clamp(30px,5vw,64px); }
.rw-404__btns { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin-top:30px; }
