/* ============================================================
   Randori-Pro · Standortseite (Bold-Stil)
   Whoop-Feel · Drei-Anker-Rhythmus · monumentale Typografie.
   Aufbauend auf tokens.css. Klassen-Präfix .s- für die
   standort-eigenen Komponenten, .b- für aus Bold übernommene.
   ============================================================ */

html, body { margin: 0; padding: 0; }
.s-page { background: var(--rp-white); color: var(--rp-grau-7012); font-family: var(--font-body); -webkit-font-smoothing: antialiased; }
.s-page a { color: inherit; text-decoration: none; }
.s-wrap { max-width: 1480px; margin: 0 auto; padding: 0 64px; }
.s-wrap--narrow { max-width: 1180px; }
@media (max-width: 720px){ .s-wrap{ padding: 0 24px; } }

/* shared bits ------------------------------------------------ */
.s-kicker { font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; margin: 0 0 28px; display: flex; align-items: center; gap: 14px; }
.s-kicker::before { content:""; width: 40px; height: 1px; background: var(--rp-rot-akzent); flex-shrink: 0; }
.s-kicker--center { justify-content: center; }
.s-kicker--beige { color: var(--rp-beige); }
.s-kicker--anker { color: var(--rp-rot-anker); }
.s-kicker--anker::before { background: var(--rp-rot-anker); }

.s-btn { display: inline-flex; align-items: center; gap: 10px; background: var(--rp-rot-akzent); color: #fff; font-family: var(--font-display); font-weight: 700; font-size: 14px; letter-spacing: 0.1em; text-transform: uppercase; padding: 22px 40px; border-radius: 999px; white-space: nowrap; transition: background 220ms var(--ease-standard), transform 220ms var(--ease-standard); }
.s-btn:hover { background: #c40b1a; transform: translateY(-2px); }
.s-btn--big { padding: 26px 52px; font-size: 15px; }
.s-btn--ghost { background: transparent; border: 1px solid rgba(255,255,255,0.55); color: #fff; padding: 21px 40px; }
.s-btn--ghost:hover { background: #fff; color: var(--rp-tiefschwarz); border-color: #fff; }
.s-btn--ghost-dark { background: transparent; border: 1px solid var(--rp-tiefschwarz); color: var(--rp-tiefschwarz); padding: 21px 40px; }
.s-btn--ghost-dark:hover { background: var(--rp-tiefschwarz); color: #fff; }
/* Mobil: großer CTA nie zweizeilig (Pfeil bleibt in Zeile 1), Final-CTA vollbreit */
@media (max-width: 720px){
  .s-btn--big { padding: 22px 30px; font-size: 14px; }
  .s-final__row .s-btn { width: 100%; justify-content: center; }
}
@media (max-width: 420px){
  .s-btn--big { padding: 20px 22px; font-size: 13px; letter-spacing: 0.06em; }
}

.s-link { font-family: var(--font-display); font-weight: 700; font-size: 13px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--rp-rot-akzent); display: inline-flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--rp-rot-akzent); padding-bottom: 6px; }
.s-link::after { content: "→"; transition: transform 220ms var(--ease-standard); }
.s-link:hover::after { transform: translateX(6px); }
.s-link--plain::after { content: none; }

/* Platzhalter-Markierung (Bild & Inhalt) -------------------- */
.s-ph { color: var(--rp-rot-akzent); font-style: normal; }
.s-photo-note { position: absolute; left: 16px; bottom: 16px; z-index: 4; font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: #fff; background: rgba(20,16,15,0.62); border: 1px dashed rgba(220,13,29,0.7); padding: 6px 10px; border-radius: 6px; max-width: 70%; line-height: 1.5; }

/* HEADER ----------------------------------------------------- */
.s-header { position: absolute; inset: 0 0 auto 0; z-index: 50; padding: 26px 0; }
.s-header__inner { max-width: 1480px; margin: 0 auto; padding: 0 64px; display: flex; align-items: center; justify-content: space-between; }
.s-header img.s-logo { height: 38px; filter: brightness(0) invert(1); display: block; }
.s-nav { display: flex; gap: 36px; align-items: center; font-family: var(--font-display); font-weight: 500; font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; }
.s-nav a { color: rgba(255,255,255,0.85); transition: color 200ms; }
.s-nav a:hover { color: #fff; }
.s-nav .s-nav-cta { border: 1px solid rgba(255,255,255,0.55); padding: 11px 22px; border-radius: 999px; font-weight: 700; letter-spacing: 0.1em; transition: background 200ms, color 200ms, border-color 200ms; }
.s-nav .s-nav-cta:hover { background: #fff; color: var(--rp-tiefschwarz); border-color: #fff; }
@media (max-width: 900px){ .s-nav a:not(.s-nav-cta){ display:none; } .s-header__inner{ padding: 0 24px; } }

/* 1 · HERO --------------------------------------------------- */
.s-hero { position: relative; min-height: 100vh; background: linear-gradient(180deg, rgba(20,16,15,0.55) 0%, rgba(20,16,15,0.15) 30%, rgba(20,16,15,0.85) 100%), url('../assets/fotos/sportarten-mich-verteidigen-koennen.webp') center 35%/cover no-repeat, var(--rp-tiefschwarz); display: flex; align-items: flex-end; overflow: hidden; color: #fff; }
.s-hero__inner { width: 100%; max-width: 1480px; margin: 0 auto; padding: 0 64px 110px; position: relative; z-index: 2; }
.s-hero__h1 { font-family: var(--font-display); font-weight: 800; font-size: clamp(48px, 9vw, 120px); line-height: 0.92; letter-spacing: -0.035em; color: #fff; margin: 0 0 32px; max-width: 15ch; text-wrap: balance; }
.s-hero__h1 em { font-style: normal; color: var(--rp-rot-akzent); }
.s-hero__row { display: flex; align-items: flex-end; justify-content: space-between; gap: 48px; flex-wrap: wrap; }
.s-hero__sub { max-width: 460px; font-size: 17px; line-height: 1.55; color: rgba(255,255,255,0.85); margin: 0; }
.s-hero__cta-wrap { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.s-hero__meta { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.16em; color: rgba(212,201,181,0.7); text-transform: uppercase; }
.s-hero__corner { position: absolute; top: 110px; right: max(64px, calc((100% - 1480px) / 2 + 64px)); font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(212,201,181,0.78); text-align: right; line-height: 1.7; z-index: 2; }
.s-hero__corner strong { color: var(--rp-rot-akzent); font-weight: 600; }
@media (max-width: 900px){ .s-hero__corner{ display: none; } .s-hero__inner{ padding: 0 24px 130px; } }

/* MARQUEE ---------------------------------------------------- */
.s-marquee { position: absolute; bottom: 0; left: 0; right: 0; border-top: 1px solid rgba(255,255,255,0.08); background: rgba(20,16,15,0.55); backdrop-filter: blur(6px); z-index: 3; overflow: hidden; }
.s-marquee__track { display: flex; gap: 64px; padding: 18px 40px; font-family: var(--font-display); font-weight: 600; font-size: 13px; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255,255,255,0.7); white-space: nowrap; animation: s-marq 40s linear infinite; }
.s-marquee__track span { display: inline-flex; align-items: center; gap: 18px; }
.s-marquee__track .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--rp-rot-akzent); }
@keyframes s-marq { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* 2 · SPORTARTEN --------------------------------------------- */
.s-sports { background: var(--rp-tiefschwarz); color: #fff; padding: 160px 0 40px; }
.s-sports__head { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: end; margin-bottom: 64px; }
.s-sports__h { font-family: var(--font-display); font-weight: 800; font-size: clamp(38px, 5vw, 76px); line-height: 0.98; letter-spacing: -0.03em; margin: 0; max-width: 14ch; }
.s-sports__lede { font-size: 17px; line-height: 1.55; color: rgba(255,255,255,0.78); margin: 0; max-width: 44ch; }
.s-sports__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.s-prog { position: relative; aspect-ratio: 3/4; overflow: hidden; isolation: isolate; display: block; color: #fff; border-radius: 18px; }
.s-prog__img { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform 700ms var(--ease-standard); }
.s-prog:hover .s-prog__img { transform: scale(1.05); }
.s-prog::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,16,15,0.1) 0%, rgba(20,16,15,0.35) 50%, rgba(20,16,15,0.92) 100%); z-index: 1; }
.s-prog__body { position: absolute; left: 40px; right: 40px; bottom: 44px; z-index: 2; }
.s-prog__num { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.2em; color: var(--rp-beige); text-transform: uppercase; margin-bottom: 18px; display: block; }
.s-prog__h { font-family: var(--font-display); font-weight: 800; font-size: clamp(26px, 3vw, 40px); line-height: 0.95; letter-spacing: -0.025em; color: #fff; margin: 0 0 14px; text-wrap: balance; }
.s-prog__sub { font-size: 14px; line-height: 1.5; color: rgba(255,255,255,0.78); margin: 0 0 24px; max-width: 30ch; }
.s-prog__more { font-family: var(--font-display); font-weight: 700; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--rp-rot-akzent); display: inline-flex; gap: 10px; align-items: center; }
.s-prog__more::after { content: "→"; transition: transform 220ms var(--ease-standard); }
.s-prog:hover .s-prog__more::after { transform: translateX(6px); }
@media (max-width: 900px){ .s-sports{ padding: 90px 0 24px; } .s-sports__head{ grid-template-columns: 1fr; gap: 24px; margin-bottom: 40px; } .s-sports__grid{ grid-template-columns: 1fr; } }

/* 3 · KENNZAHLEN-TAKEOVER ★ (Rot-Anker) ---------------------- */
.s-stat { background: var(--rp-rot-anker); color: #fff; padding: 180px 0 160px; position: relative; overflow: hidden; }
.s-stat::before { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse at 80% 20%, rgba(220,13,29,0.4), transparent 60%); pointer-events: none; }
.s-stat__inner { position: relative; }
.s-stat__num { font-family: var(--font-display); font-weight: 900; font-size: clamp(110px, 18vw, 300px); line-height: 0.85; letter-spacing: -0.05em; margin: 0; }
.s-stat__num sup { font-size: 0.32em; vertical-align: super; font-weight: 700; margin-left: 14px; color: var(--rp-beige); letter-spacing: 0.04em; }
.s-stat__ph { color: rgba(255,255,255,0.55); }
.s-stat__row { margin-top: 56px; display: grid; grid-template-columns: 1.2fr 1fr; gap: 80px; align-items: end; }
.s-stat__h { font-family: var(--font-display); font-weight: 700; font-size: clamp(24px, 3vw, 40px); line-height: 1.1; letter-spacing: -0.02em; margin: 0; max-width: 18ch; }
.s-stat__sub { font-size: 17px; line-height: 1.55; color: rgba(255,255,255,0.85); margin: 0; max-width: 44ch; }
.s-stat__strip { margin-top: 96px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; border-top: 1px solid rgba(255,255,255,0.2); padding-top: 48px; }
.s-stat__cell .n { font-family: var(--font-display); font-weight: 800; font-size: clamp(36px, 4.4vw, 64px); line-height: 1; letter-spacing: -0.02em; }
.s-stat__cell .l { margin-top: 14px; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(255,255,255,0.75); }
@media (max-width: 900px){ .s-stat{ padding: 100px 0; } .s-stat__row{ grid-template-columns: 1fr; gap: 28px; margin-top: 32px;} .s-stat__strip{ grid-template-columns: 1fr 1fr; gap: 36px 24px; margin-top: 56px;} }

/* 4 · STANDORT-FAKTEN (Weiß) --------------------------------- */
.s-facts { background: var(--rp-white); color: var(--rp-grau-7012); padding: 150px 0; }
.s-facts__top { max-width: 760px; margin: 0 0 64px; }
.s-facts__grid { display: grid; grid-template-columns: 1fr 0.92fr; gap: 64px; align-items: stretch; }
.s-facts__panel { align-self: center; }
.s-facts__map { position: relative; border-radius: 24px; overflow: hidden; aspect-ratio: 2348/1372; box-shadow: 0 30px 80px -40px rgba(0,0,0,0.45); border: 1px solid var(--rp-border); }
.s-facts__map img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(0.85) contrast(1.05) brightness(0.96); }
.s-map-label { position: absolute; top: 18px; left: 18px; font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.2em; color: #fff; background: rgba(20,16,15,0.7); padding: 6px 10px; border-radius: 999px; border: 1px solid rgba(255,255,255,0.18); z-index: 3; }
.s-pin { position: absolute; width: 26px; height: 26px; border-radius: 50%; background: var(--rp-rot-akzent); border: 3px solid #fff; transform: translate(-50%, -50%); cursor: pointer; z-index: 2; box-shadow: 0 4px 12px rgba(0,0,0,0.5), 0 0 0 0 rgba(220,13,29,0.55); animation: s-pin-pulse 2.4s ease-out infinite; transition: transform 220ms; }
.s-pin:hover { transform: translate(-50%, -50%) scale(1.2); animation: none; }
@keyframes s-pin-pulse { 0%{ box-shadow: 0 4px 12px rgba(0,0,0,0.5), 0 0 0 0 rgba(220,13,29,0.6); } 70%{ box-shadow: 0 4px 12px rgba(0,0,0,0.5), 0 0 0 16px rgba(220,13,29,0); } 100%{ box-shadow: 0 4px 12px rgba(0,0,0,0.5), 0 0 0 0 rgba(220,13,29,0); } }
.s-pin__tip { position: absolute; bottom: calc(100% + 10px); left: 50%; transform: translateX(-50%) translateY(4px); background: var(--rp-rot-anker); color: #fff; font-family: var(--font-display); font-weight: 700; font-size: 12px; padding: 8px 14px; border-radius: 8px; white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity 220ms, transform 220ms; }
.s-pin:hover .s-pin__tip { opacity: 1; transform: translateX(-50%) translateY(0); }
.s-facts__h { font-family: var(--font-display); font-weight: 800; font-size: clamp(28px, 4vw, 52px); line-height: 1.05; letter-spacing: -0.02em; color: var(--rp-rot-anker); margin: 22px 0 0; max-width: 16ch; }
.s-facts__list { list-style: none; margin: 0; padding: 0; }
.s-facts__item { display: grid; grid-template-columns: 130px 1fr; gap: 24px; padding: 22px 0; border-top: 1px solid var(--rp-border-soft); align-items: baseline; }
.s-facts__item:last-child { border-bottom: 1px solid var(--rp-border-soft); }
.s-facts__item dt { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--rp-grau-muted); }
.s-facts__item dd { margin: 0; font-family: var(--font-body); font-size: 16px; line-height: 1.6; color: var(--rp-tiefschwarz); }
.s-facts__item dd strong { font-weight: 700; }
.s-facts__cta { margin-top: 40px; display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; }
@media (max-width: 900px){ .s-facts{ padding: 90px 0; } .s-facts__top{ margin-bottom: 44px; } .s-facts__grid{ grid-template-columns: 1fr; gap: 40px; } .s-facts__map{ order: -1; } }
/* Mobil: starre 130px-Labelspalte quetscht die Werte — Label über Wert stapeln */
@media (max-width: 560px){ .s-facts__item{ grid-template-columns: 1fr; gap: 8px; padding: 20px 0; } }

/* 5 · TRAINER (Beige) ---------------------------------------- */
.s-trainers { background: var(--rp-beige); color: var(--rp-tiefschwarz); padding: 160px 0; }
.s-trainers__head { max-width: 720px; margin-bottom: 80px; }
.s-trainers__h { font-family: var(--font-display); font-weight: 800; font-size: clamp(38px, 5vw, 72px); line-height: 0.98; letter-spacing: -0.03em; margin: 0 0 24px; }
.s-trainers__lede { font-size: 18px; line-height: 1.55; color: var(--rp-tiefschwarz); margin: 0; max-width: 52ch; }
.s-trainers__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px; }
.s-trainer { text-align: center; display: flex; flex-direction: column; align-items: center; }
.s-trainer__portrait { width: 100%; aspect-ratio: 1; border-radius: 50%; overflow: hidden; background: #c8bfaf; margin: 0 auto 28px; max-width: 240px; }
.s-trainer__portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center top; filter: grayscale(0.9) contrast(1.05); }
.s-trainer__name { font-family: var(--font-display); font-weight: 800; font-size: clamp(24px, 2.4vw, 32px); letter-spacing: -0.015em; margin: 0 0 10px; color: var(--rp-tiefschwarz); }
.s-trainer__grade { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--rp-rot-anker); margin: 0 0 18px; }
.s-trainer__bio { font-size: 15px; line-height: 1.6; color: var(--rp-tiefschwarz); margin: 0 auto; max-width: 34ch; }
@media (max-width: 900px){ .s-trainers{ padding: 90px 0; } .s-trainers__grid{ grid-template-columns: 1fr; gap: 56px; max-width: 420px; } .s-trainers__head{ margin-bottom: 56px; } }

/* 6 · PROBETRAINING-ABLAUF (Tiefschwarz) --------------------- */
.s-steps { background: var(--rp-tiefschwarz); color: #fff; padding: 160px 0; }
.s-steps__head { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: end; margin-bottom: 80px; }
.s-steps__h { font-family: var(--font-display); font-weight: 800; font-size: clamp(38px, 5vw, 76px); line-height: 0.98; letter-spacing: -0.03em; margin: 0; max-width: 14ch; }
.s-steps__sub { font-size: 17px; line-height: 1.55; color: rgba(255,255,255,0.78); margin: 0; max-width: 44ch; }
.s-steps__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.s-step { border-top: 1px solid rgba(255,255,255,0.2); padding-top: 32px; }
.s-step__num { font-family: var(--font-mono); font-size: 13px; letter-spacing: 0.16em; color: var(--rp-rot-akzent); margin-bottom: 28px; display: block; }
.s-step__h { font-family: var(--font-display); font-weight: 800; font-size: clamp(22px, 2.4vw, 30px); letter-spacing: -0.015em; margin: 0 0 14px; }
.s-step__p { font-size: 15px; line-height: 1.6; color: rgba(255,255,255,0.78); margin: 0; max-width: 32ch; }
.s-bring { margin-top: 72px; display: grid; grid-template-columns: 200px 1fr; gap: 40px; align-items: center; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.1); border-radius: 22px; padding: 40px 44px; }
.s-bring__label { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--rp-beige); }
.s-bring__list { display: flex; flex-wrap: wrap; gap: 14px; list-style: none; margin: 0; padding: 0; }
.s-bring__list li { font-family: var(--font-display); font-weight: 600; font-size: 14px; letter-spacing: 0.04em; color: #fff; border: 1px solid rgba(255,255,255,0.25); border-radius: 999px; padding: 12px 22px; }
@media (max-width: 900px){ .s-steps{ padding: 90px 0; } .s-steps__head{ grid-template-columns: 1fr; gap: 20px; margin-bottom: 48px; } .s-steps__grid{ grid-template-columns: 1fr; gap: 36px; } .s-bring{ grid-template-columns: 1fr; gap: 24px; padding: 32px 28px; } }

/* 7 · TESTIMONIALS (Beige) ----------------------------------- */
.s-voices { background: var(--rp-beige); color: var(--rp-tiefschwarz); padding: 160px 0; }
.s-voices__pull { font-family: var(--font-serif); font-weight: 400; font-style: italic; font-size: clamp(32px, 5vw, 76px); line-height: 1.1; letter-spacing: -0.02em; margin: 24px 0 56px; max-width: 22ch; text-wrap: balance; }
.s-voices__pull span { color: var(--rp-rot-anker); font-style: normal; font-family: var(--font-display); font-weight: 800; }
.s-voices__attr { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--rp-grau-7012); margin: 0 0 96px; }
.s-voices__row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.s-voice { background: #fff; border-radius: 18px; padding: 32px 28px 28px; border-top: 4px solid var(--rp-rot-akzent); }
.s-voice__q { font-family: var(--font-display); font-weight: 600; font-size: 18px; line-height: 1.4; margin: 0 0 24px; color: var(--rp-tiefschwarz); }
.s-voice__attr { display: flex; align-items: center; gap: 14px; padding-top: 20px; border-top: 1px solid rgba(26,20,20,0.1); }
.s-voice__attr img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; filter: grayscale(0.3); }
.s-voice__attr div { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; line-height: 1.6; }
.s-voice__attr strong { color: var(--rp-rot-anker); display: block; font-weight: 600; }
.s-voice__attr span { color: var(--rp-grau-7012); }
@media (max-width: 900px){ .s-voices{ padding: 90px 0; } .s-voices__row{ grid-template-columns: 1fr; } .s-voices__attr{ margin-bottom: 56px; } }

/* 8 · FAQ (Tiefschwarz) -------------------------------------- */
.s-faq { background: var(--rp-tiefschwarz); color: #fff; padding: 160px 0; }
.s-faq__head { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: end; margin-bottom: 64px; }
.s-faq__h { font-family: var(--font-display); font-weight: 800; font-size: clamp(38px, 5vw, 76px); line-height: 0.98; letter-spacing: -0.03em; margin: 0; max-width: 14ch; }
.s-faq__sub { font-size: 16px; color: rgba(255,255,255,0.7); max-width: 44ch; margin: 0; }
.s-faq__list { border-top: 1px solid rgba(255,255,255,0.14); }
.s-q { border-bottom: 1px solid rgba(255,255,255,0.14); }
.s-q__btn { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 32px; padding: 32px 0; text-align: left; background: none; border: 0; cursor: pointer; }
.s-q__btn h3 { font-family: var(--font-display); font-weight: 700; font-size: clamp(20px, 2.2vw, 28px); letter-spacing: -0.01em; color: #fff; margin: 0; }
.s-q__plus { flex-shrink: 0; width: 32px; height: 32px; position: relative; }
.s-q__plus::before, .s-q__plus::after { content: ""; position: absolute; left: 50%; top: 50%; background: var(--rp-rot-akzent); transition: transform 250ms; }
.s-q__plus::before { width: 22px; height: 2px; transform: translate(-50%, -50%); }
.s-q__plus::after { width: 2px; height: 22px; transform: translate(-50%, -50%); }
.s-q.is-open .s-q__plus::after { transform: translate(-50%, -50%) scaleY(0); }
.s-q__a { max-height: 0; overflow: hidden; transition: max-height 320ms var(--ease-standard); }
.s-q__a-inner { padding: 0 64px 32px 0; font-size: 17px; line-height: 1.6; color: rgba(255,255,255,0.78); max-width: 64ch; }
.s-q.is-open .s-q__a { max-height: 420px; }
@media (max-width: 900px){ .s-faq{ padding: 90px 0; } .s-faq__head{ grid-template-columns: 1fr; gap: 16px; margin-bottom: 32px; } .s-q__a-inner{ padding-right: 0; } }

/* 9 · FINALER CTA ★ (Rot-Anker Block) ------------------------ */
.s-final-wrap { background: var(--rp-tiefschwarz); padding: 80px 40px; }
.s-final { background: var(--rp-rot-anker); color: #fff; padding: 140px 24px; position: relative; overflow: hidden; text-align: center; border-radius: 32px; max-width: 1480px; margin: 0 auto; }
.s-final::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 50% 0%, rgba(220,13,29,0.5), transparent 60%); pointer-events: none; }
.s-final__inner { max-width: 900px; margin: 0 auto; position: relative; }
.s-final__h { font-family: var(--font-display); font-weight: 800; font-size: clamp(42px, 6.4vw, 92px); line-height: 0.96; letter-spacing: -0.03em; margin: 28px 0; text-wrap: balance; }
.s-final__sub { font-size: 18px; line-height: 1.55; color: rgba(255,255,255,0.88); margin: 0 auto 48px; max-width: 50ch; }
.s-final__row { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
.s-final__foot { margin-top: 48px; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255,255,255,0.6); }
@media (max-width: 720px){ .s-final-wrap{ padding: 40px 24px; } .s-final{ padding: 100px 22px; } }

/* 10 · ANDERE STANDORTE (Tiefschwarz) ------------------------ */
.s-others { background: var(--rp-tiefschwarz); color: #fff; padding: 160px 0; }
.s-others__head { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: end; margin-bottom: 56px; }
.s-others__h { font-family: var(--font-display); font-weight: 800; font-size: clamp(34px, 4.6vw, 68px); line-height: 0.98; letter-spacing: -0.03em; margin: 0; max-width: 14ch; }
.s-others__lede { font-size: 17px; line-height: 1.55; color: rgba(255,255,255,0.78); margin: 0; max-width: 44ch; }
.s-loc-list { border-top: 1px solid rgba(255,255,255,0.14); }
.s-loc { display: grid; grid-template-columns: 72px 1.1fr 1.4fr 56px; align-items: center; padding: 28px 4px; border-bottom: 1px solid rgba(255,255,255,0.14); transition: padding 220ms var(--ease-standard); position: relative; }
.s-loc:hover { padding-left: 24px; }
.s-loc::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 0; background: var(--rp-rot-akzent); transition: width 220ms var(--ease-standard); }
.s-loc:hover::before { width: 4px; }
.s-loc__num { font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.16em; color: rgba(255,255,255,0.4); }
.s-loc__name { font-family: var(--font-display); font-weight: 800; font-size: clamp(22px, 2.4vw, 32px); letter-spacing: -0.015em; }
.s-loc__addr { font-size: 14px; color: rgba(255,255,255,0.62); }
.s-loc__arrow { justify-self: end; width: 44px; height: 44px; border: 1px solid rgba(255,255,255,0.3); border-radius: 999px; display: flex; align-items: center; justify-content: center; font-size: 16px; transition: background 220ms, border-color 220ms; }
.s-loc:hover .s-loc__arrow { background: var(--rp-rot-akzent); border-color: var(--rp-rot-akzent); }
.s-loc--usa .s-loc__name::after { content: "USA"; display: inline-block; margin-left: 12px; font-family: var(--font-mono); font-weight: 500; font-size: 10px; letter-spacing: 0.18em; background: rgba(220,13,29,0.18); color: var(--rp-rot-akzent); padding: 4px 10px; border-radius: 999px; vertical-align: middle; }
@media (max-width: 900px){ .s-others{ padding: 90px 0; } .s-others__head{ grid-template-columns: 1fr; gap: 20px; } }
@media (max-width: 720px){ .s-loc{ grid-template-columns: 36px 1fr 44px; } .s-loc__addr{ display: none; } }

/* FOOTER ----------------------------------------------------- */
.s-foot { background: #0a0808; color: #888; padding: 80px 0 40px; font-size: 12px; }
.s-foot__top { display: grid; grid-template-columns: 2fr repeat(4, 1fr); gap: 48px; padding-bottom: 64px; border-bottom: 1px solid #1f1818; }
.s-foot__brand img { height: 38px; filter: brightness(0) invert(1); opacity: 0.9; margin-bottom: 24px; }
.s-foot__brand p { color: #777; font-size: 13px; line-height: 1.55; max-width: 32ch; margin: 0; }
.s-foot__col h4 { font-family: var(--font-display); font-size: 11px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--rp-beige); margin: 0 0 18px; }
.s-foot__col ul { list-style: none; margin: 0; padding: 0; }
.s-foot__col li { line-height: 2; }
.s-foot__col a { color: #888; transition: color 200ms; }
.s-foot__col a:hover { color: #fff; }
.s-foot__bot { margin-top: 32px; display: flex; justify-content: space-between; align-items: center; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.1em; color: #555; }
.s-foot__bot a { color: #777; }
.s-foot__bot a:hover { color: #fff; }
@media (max-width: 900px){ .s-foot__top{ grid-template-columns: 1fr 1fr; gap: 32px; } .s-foot__bot{ flex-direction: column; gap: 12px; text-align: center; } }

/* STICKY-CTA ------------------------------------------------- */
.s-sticky { position: fixed; z-index: 70; right: 32px; bottom: 32px; opacity: 0; transform: translateY(16px); pointer-events: none; transition: opacity 280ms var(--ease-standard), transform 280ms var(--ease-standard); }
.s-sticky.is-visible { opacity: 1; transform: translateY(0); pointer-events: auto; }
.s-sticky a { display: inline-flex; align-items: center; gap: 10px; background: var(--rp-rot-akzent); color: #fff; font-family: var(--font-display); font-weight: 700; font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase; padding: 18px 32px; border-radius: 999px; box-shadow: 0 12px 32px rgba(0,0,0,0.3); transition: background 220ms, transform 220ms; }
.s-sticky a:hover { background: #c40b1a; transform: translateY(-2px); }
@media (max-width: 720px){ .s-sticky{ left: 0; right: 0; bottom: 0; } .s-sticky a{ width: 100%; justify-content: center; border-radius: 0; padding: 20px; font-size: 14px; box-shadow: 0 -8px 24px rgba(0,0,0,0.3); } }

/* ============================================================
   ERWEITERUNG · Waltersdorf-Schönefeld
   Farbverteilung: Intensität skaliert mit der Zielgruppe.
   Kinder/Familie = Beige (warm). Selbstverteidigung/Erwachsene
   = Tiefschwarz/Rot-Anker (intensiv). Nur neue Modifier &
   Inhalts-Komponenten — keine neuen Design-Sprachen.
   ============================================================ */

/* HERO · langer SEO-H1 -------------------------------------- */
.s-hero__h1--long { font-size: clamp(40px, 6.6vw, 88px); max-width: 18ch; }
.s-hero__cta-row { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }
.s-btn--scroll { background: transparent; border: 1px solid rgba(255,255,255,0.5); color: #fff; }
.s-btn--scroll:hover { background: rgba(255,255,255,0.1); border-color: #fff; transform: translateY(-2px); }

/* Sektions-Auftakt (ein-Satz-Einleitung) -------------------- */
.s-lead { font-family: var(--font-body); font-size: clamp(19px, 2.2vw, 26px); line-height: 1.45; letter-spacing: -0.01em; max-width: 30ch; margin: 0; text-wrap: balance; }

/* 2a · KINDER & JUGEND  (Beige · warm) ---------------------- */
.s-sports--kids { background: var(--rp-beige); color: var(--rp-tiefschwarz); padding: 160px 0 120px; }
.s-sports--kids .s-sports__h { color: var(--rp-rot-anker); }
.s-sports--kids .s-sports__lede,
.s-sports--kids .s-lead { color: var(--rp-tiefschwarz); }
.s-sports__grid--kids { grid-template-columns: repeat(4, 1fr); gap: 16px; }
.s-sports__grid--kids .s-prog { aspect-ratio: 3/4; border-radius: 20px; }
.s-sports__grid--kids .s-prog::after { background: linear-gradient(180deg, rgba(20,16,15,0.05) 0%, rgba(20,16,15,0.30) 45%, rgba(20,16,15,0.90) 100%); }
.s-sports__grid--kids .s-prog__body { left: 28px; right: 28px; bottom: 30px; }
.s-sports__grid--kids .s-prog__h { font-size: clamp(24px, 2.2vw, 32px); }
.s-sports__grid--kids .s-prog__sub { font-size: 13px; margin-bottom: 0; }
@media (max-width: 1100px){ .s-sports__grid--kids{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px){ .s-sports__grid--kids{ grid-template-columns: 1fr; } }
@media (max-width: 900px){ .s-sports--kids{ padding: 90px 0 72px; } }

/* 2b · ERWACHSENE & SV  (Tiefschwarz · intensiv) ------------ */
.s-sports--adults { background: var(--rp-tiefschwarz); color: #fff; padding: 130px 0 150px; position: relative; }
.s-sports--adults .s-sports__head { margin-bottom: 56px; }
.s-disc-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.s-disc { position: relative; display: flex; flex-direction: column; justify-content: space-between; gap: 16px; min-height: 116px; padding: 20px 22px; border: 1px solid rgba(255,255,255,0.14); border-radius: 18px; background: rgba(255,255,255,0.025); transition: border-color 220ms var(--ease-standard), transform 220ms var(--ease-standard), background 220ms var(--ease-standard); }
.s-disc:hover { border-color: var(--rp-rot-akzent); transform: translateY(-3px); background: rgba(255,255,255,0.05); }
.s-disc__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.s-disc__name { font-family: var(--font-display); font-weight: 800; font-size: clamp(20px, 1.8vw, 24px); line-height: 1.04; letter-spacing: -0.015em; margin: 0; }
.s-disc__arrow { flex-shrink: 0; font-family: var(--font-body); font-size: 17px; color: rgba(255,255,255,0.45); transition: color 220ms, transform 220ms; }
.s-disc:hover .s-disc__arrow { color: var(--rp-rot-akzent); transform: translate(3px, -3px); }
.s-disc__sub { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(212,201,181,0.75); margin: 0; line-height: 1.6; }
.s-disc--feature { border-color: var(--rp-rot-akzent); background: linear-gradient(160deg, rgba(220,13,29,0.16), rgba(109,23,35,0.10)); }
.s-disc--feature:hover { background: linear-gradient(160deg, rgba(220,13,29,0.24), rgba(109,23,35,0.14)); }
.s-disc__badge { position: absolute; top: 16px; right: 16px; font-family: var(--font-mono); font-weight: 500; font-size: 9.5px; letter-spacing: 0.16em; text-transform: uppercase; color: #fff; background: var(--rp-rot-akzent); padding: 5px 10px; border-radius: 999px; }
.s-disc--feature .s-disc__arrow { color: var(--rp-rot-akzent); }
@media (max-width: 1100px){ .s-disc-grid{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px){ .s-disc-grid{ grid-template-columns: 1fr; } .s-disc{ min-height: 0; gap: 24px; } }
@media (max-width: 900px){ .s-sports--adults{ padding: 90px 0 100px; } }

/* Kennzahlen · großes Label statt überlangem Superscript ---- */
.s-stat__numlabel { font-family: var(--font-mono); font-size: clamp(13px, 1.5vw, 20px); letter-spacing: 0.18em; text-transform: uppercase; color: var(--rp-beige); margin: 18px 0 0; }

/* GEO-Anker-Satz unter Kennzahlen --------------------------- */
.s-geo { margin-top: 64px; padding-top: 40px; border-top: 1px solid rgba(255,255,255,0.2); }
.s-geo p { font-family: var(--font-serif); font-style: italic; font-size: clamp(18px, 2vw, 26px); line-height: 1.5; color: rgba(255,255,255,0.92); margin: 0; max-width: 66ch; }
.s-geo strong { font-style: normal; font-family: var(--font-display); font-weight: 700; color: var(--rp-beige); }

/* STANDORT-FAKTEN · echte Karten-Einbettung ----------------- */
.s-facts__map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: saturate(0.92) contrast(1.02); }
.s-facts__map--live { aspect-ratio: auto; height: 100%; min-height: 480px; background: var(--rp-beige-deep); }
@media (max-width: 900px){ .s-facts__map--live{ width: 100%; height: 340px; min-height: 0; aspect-ratio: auto; } }

/* TESTIMONIAL · dunkler Anker (Rot-Anker, ein Zitat) -------- */
.s-quote { background: var(--rp-rot-anker); color: #fff; padding: 170px 0; position: relative; overflow: hidden; }
.s-quote::before { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse at 20% 10%, rgba(220,13,29,0.38), transparent 60%); pointer-events: none; }
.s-quote__inner { position: relative; max-width: 1040px; }
.s-quote__mark { font-family: var(--font-serif); font-size: 120px; line-height: 0.6; color: rgba(212,201,181,0.5); display: block; margin-bottom: 8px; }
.s-quote__q { font-family: var(--font-serif); font-style: italic; font-weight: 400; font-size: clamp(28px, 4vw, 60px); line-height: 1.18; letter-spacing: -0.015em; margin: 0 0 48px; text-wrap: balance; }
.s-quote__attr { display: flex; align-items: center; gap: 18px; font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(255,255,255,0.85); }
.s-quote__attr::before { content: ""; width: 44px; height: 1px; background: var(--rp-beige); flex-shrink: 0; }
.s-quote__attr strong { color: var(--rp-beige); font-weight: 600; }
.s-quote__note { margin-top: 40px; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.55); }
@media (max-width: 900px){ .s-quote{ padding: 100px 0; } .s-quote__mark{ font-size: 84px; } }

/* FAQ · helle Variante (Weiß) ------------------------------- */
.s-faq--light { background: var(--rp-white); color: var(--rp-grau-7012); }
.s-faq--light .s-faq__h { color: var(--rp-rot-anker); }
.s-faq--light .s-faq__sub { color: var(--rp-grau-7012); }
.s-faq--light .s-faq__list { border-top-color: var(--rp-border); }
.s-faq--light .s-q { border-bottom-color: var(--rp-border); }
.s-faq--light .s-q__btn h3 { color: var(--rp-tiefschwarz); }
.s-faq--light .s-q__a-inner { color: var(--rp-grau-7012); }

/* Platzhalter-Marker im Beige-/Hell-Kontext ----------------- */
.s-sports--kids .s-ph, .s-facts .s-ph, .s-faq--light .s-ph { color: var(--rp-rot-akzent); }

/* Öffnungszeiten-Liste in den Standort-Fakten --------------- */
.s-hours { display: grid; grid-template-columns: auto 1fr; gap: 4px 18px; margin: 4px 0 0; align-items: baseline; }
.s-hours dt, .s-hours dd { border: 0; padding: 2px 0; margin: 0; display: block; }
.s-hours .d { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--rp-grau-muted); }
.s-hours .t { font-family: var(--font-body); font-size: 15px; color: var(--rp-tiefschwarz); font-variant-numeric: tabular-nums; }
.s-hours .t--closed { color: var(--rp-grau-muted); }
.s-facts__item dd a { color: var(--rp-rot-anker); border-bottom: 1px solid rgba(109,23,35,0.3); transition: border-color 200ms; }
.s-facts__item dd a:hover { border-color: var(--rp-rot-anker); }

/* Trainer-Reserveliste (Datenbasis) ------------------------- */
.s-trainers__roster { margin-top: 72px; padding-top: 32px; border-top: 1px solid rgba(26,20,20,0.18); font-family: var(--font-body); font-size: 15px; line-height: 1.7; color: var(--rp-tiefschwarz); max-width: 70ch; }
.s-trainers__roster strong { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--rp-rot-anker); display: block; margin-bottom: 8px; }
.s-trainer__discs { font-size: 14px; line-height: 1.55; color: var(--rp-tiefschwarz); margin: 0 0 14px; opacity: 0.85; }
.s-trainer__quote { font-family: var(--font-serif); font-style: italic; font-size: 16px; line-height: 1.5; color: var(--rp-rot-anker); margin: 0 auto; max-width: 32ch; }

/* ============================================================
   TEMPLATE C · „URBAN PERFORMANCE" — Standort Wilmersdorf
   Anmutung: clean, modern, präzise. WHOOP-Look in Reinform:
   sehr viel Weißraum, große fette Typo, klare Kanten.
   Differenzierung NUR über Farbverteilung / Bild / Ton / Anordnung
   — KEINE neuen Schriften, Buttons oder Komponenten.
   · Helle Sektionen: reines Weiß, KEIN Beige.
   · Dunkle Anker: kühles Schwarz #1a0a0e (nicht warmes Dunkelrot).
   · Rot #DC0D1D: präziser Energie-Akzent, sparsam.
   · Zahlen in JetBrains Mono prominenter (Performance-Anmutung).
   ============================================================ */

:root { --rp-schwarz-anker: #1a0a0e; }

/* HERO · kühler Schwarz-Anker, ruhige/lesbare Bildbühne (Template C) -- */
.s-hero--urban {
  background:
    linear-gradient(105deg, rgba(20,8,11,0.94) 0%, rgba(20,8,11,0.74) 34%, rgba(20,8,11,0.36) 64%, rgba(20,8,11,0.10) 100%),
    linear-gradient(0deg, rgba(20,8,11,0.80) 0%, rgba(20,8,11,0.12) 42%, rgba(20,8,11,0) 62%),
    url('../assets/fotos/sportarten-mich-verteidigen-koennen.webp') center 24% / cover no-repeat,
    var(--rp-schwarz-anker);
}
.s-hero--urban .s-hero__inner { padding-bottom: 76px; }
.s-hero--urban .s-hero__h1 { font-size: clamp(32px, 3.9vw, 52px); max-width: 19ch; margin-bottom: 30px; }
.s-hero--urban .s-hero__h1 em { color: var(--rp-rot-akzent); }
.s-hero--urban .s-hero__row { gap: 56px; }
.s-hero--urban .s-hero__cta-wrap { gap: 22px; }
.s-hero__scroll { font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(255,255,255,0.72); display: inline-flex; align-items: center; gap: 10px; transition: color 200ms var(--ease-standard); }
.s-hero__scroll:hover { color: #fff; }
@media (max-width: 900px){ .s-hero--urban .s-hero__inner { padding-bottom: 80px; } }

/* SPORTARTEN · ein einziger weißer Block, Programmbreite zeigen ---- */
.s-sports--urban { background: var(--rp-white); color: var(--rp-tiefschwarz); padding: 150px 0 140px; }
.s-sports--urban .s-sports__h { color: var(--rp-rot-anker); }
.s-sports--urban .s-sports__lede { color: var(--rp-grau-7012); }
.s-sports--urban .s-sports__head { margin-bottom: 28px; }
.s-sports__metaline { display: flex; flex-wrap: wrap; gap: 10px 14px; margin: 0 0 52px; padding-top: 28px; border-top: 1px solid var(--rp-border-soft); }
.s-sports__metaline span { font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--rp-grau-muted); }
.s-sports__metaline b { color: var(--rp-rot-anker); font-weight: 500; }
.s-sports__metaline i { color: var(--rp-border); font-style: normal; }
.s-disc-grid--urban { grid-template-columns: repeat(4, 1fr); }
.s-disc--light { border: 1px solid var(--rp-border); background: var(--rp-white); }
.s-disc--light .s-disc__name { color: var(--rp-tiefschwarz); }
.s-disc--light .s-disc__sub { color: var(--rp-grau-muted); }
.s-disc--light .s-disc__arrow { color: var(--rp-grau-muted); }
.s-disc--light:hover { border-color: var(--rp-rot-akzent); background: var(--rp-white); box-shadow: var(--shadow-md); }
.s-disc--light:hover .s-disc__arrow { color: var(--rp-rot-akzent); }
.s-disc--light.s-disc--feature { border-color: var(--rp-rot-akzent); background: linear-gradient(160deg, rgba(220,13,29,0.06), rgba(220,13,29,0.015)); }
.s-disc--light.s-disc--feature:hover { background: linear-gradient(160deg, rgba(220,13,29,0.10), rgba(220,13,29,0.03)); }
.s-disc--light.s-disc--feature .s-disc__sub { color: var(--rp-rot-anker); }
@media (max-width: 1100px){ .s-disc-grid--urban{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px){ .s-disc-grid--urban{ grid-template-columns: 1fr; } }
@media (max-width: 900px){ .s-sports--urban{ padding: 90px 0; } }

/* KENNZAHLEN · Schwarz-Anker + Zahlen in JetBrains Mono ----------- */
.s-stat--urban { background: var(--rp-schwarz-anker); }
.s-stat--urban::before { background: radial-gradient(ellipse at 82% 14%, rgba(220,13,29,0.30), transparent 58%); }
.s-stat--urban .s-stat__num { font-family: var(--font-mono); font-weight: 500; letter-spacing: -0.03em; font-size: clamp(96px, 16vw, 260px); }
.s-stat--urban .s-stat__cell .n { font-family: var(--font-mono); font-weight: 500; letter-spacing: -0.02em; }
.s-stat__approx { font-family: var(--font-mono); font-weight: 500; font-size: 0.26em; vertical-align: middle; color: var(--rp-beige); letter-spacing: 0.02em; margin-right: 0.18em; }

/* TRAINER · weiß statt beige (urban) ------------------------------ */
.s-trainers--urban { background: var(--rp-white); color: var(--rp-tiefschwarz); }
.s-trainers--urban .s-trainer__portrait { background: #ece9e3; }
.s-trainers--urban .s-trainer__portrait img { filter: grayscale(1) contrast(1.08); }
.s-trainers--urban .s-trainers__roster { border-top-color: var(--rp-border); }

/* PROBETRAINING-ABLAUF · Schwarz-Anker ---------------------------- */
.s-steps--urban { background: var(--rp-schwarz-anker); }

/* TESTIMONIAL · weiß, Source-Serif-Pull-Quote, linker Akzentbalken */
.s-testimonial { background: var(--rp-white); color: var(--rp-tiefschwarz); padding: 150px 0; }
.s-testimonial__inner { max-width: 1000px; }
.s-testimonial__mark { display: block; font-family: var(--font-serif); font-size: 96px; line-height: 0.5; color: rgba(220,13,29,0.18); margin: 0 0 8px 36px; }
.s-testimonial__q { font-family: var(--font-serif); font-style: italic; font-weight: 400; font-size: clamp(28px, 3.6vw, 54px); line-height: 1.24; letter-spacing: -0.015em; color: var(--rp-tiefschwarz); border-left: 4px solid var(--rp-rot-akzent); padding-left: 36px; margin: 0 0 36px; text-wrap: balance; }
.s-testimonial__attr { padding-left: 40px; font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--rp-grau-muted); }
.s-testimonial__attr strong { color: var(--rp-rot-anker); font-weight: 600; }
.s-testimonial__note { padding-left: 40px; margin: 28px 0 0; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--rp-grau-muted); }
@media (max-width: 900px){ .s-testimonial{ padding: 90px 0; } .s-testimonial__mark{ margin-left: 24px; } .s-testimonial__q{ padding-left: 24px; } .s-testimonial__attr, .s-testimonial__note{ padding-left: 28px; } }

/* FINALER CTA · Schwarz-Anker, Kante zu Kante (kein roter Block) -- */
.s-final-wrap--urban { background: var(--rp-schwarz-anker); padding: 0; }
.s-final--urban { background: var(--rp-schwarz-anker); border-radius: 0; max-width: none; margin: 0; padding: 170px 24px; }
.s-final--urban::before { background: radial-gradient(circle at 50% 0%, rgba(220,13,29,0.34), transparent 58%); }

/* ANDERE STANDORTE · weiß statt tiefschwarz ----------------------- */
.s-others--light { background: var(--rp-white); color: var(--rp-tiefschwarz); }
.s-others--light .s-others__h { color: var(--rp-rot-anker); }
.s-others--light .s-others__lede { color: var(--rp-grau-7012); }
.s-others--light .s-loc-list { border-top: 1px solid var(--rp-border); }
.s-others--light .s-loc { border-bottom-color: var(--rp-border); }
.s-others--light .s-loc__num { color: var(--rp-grau-muted); }
.s-others--light .s-loc__name { color: var(--rp-tiefschwarz); }
.s-others--light .s-loc__addr { color: var(--rp-grau-muted); }
.s-others--light .s-loc__arrow { border-color: var(--rp-border); color: var(--rp-tiefschwarz); }
.s-others--light .s-loc:hover .s-loc__arrow { background: var(--rp-rot-akzent); border-color: var(--rp-rot-akzent); color: #fff; }
