@font-face { font-family: "Oswald"; font-style: normal; font-weight: 200; font-display: swap; src: url(/assets/fonts/oswald-v49-latin-200.woff2) format("woff2"); }
@font-face { font-family: "Oswald"; font-style: normal; font-weight: 300; font-display: swap; src: url(/assets/fonts/oswald-v49-latin-300.woff2) format("woff2"); }
@font-face { font-family: "Oswald"; font-style: normal; font-weight: 400; font-display: swap; src: url(/assets/fonts/oswald-v49-latin-regular.woff2) format("woff2"); }
@font-face { font-family: "Oswald"; font-style: normal; font-weight: 500; font-display: swap; src: url(/assets/fonts/oswald-v49-latin-500.woff2) format("woff2"); }
@font-face { font-family: "Oswald"; font-style: normal; font-weight: 600; font-display: swap; src: url(/assets/fonts/oswald-v49-latin-600.woff2) format("woff2"); }
@font-face { font-family: "Oswald"; font-style: normal; font-weight: 700; font-display: swap; src: url(/assets/fonts/oswald-v49-latin-700.woff2) format("woff2"); }
@font-face { font-family: "Oswald Fallback"; font-weight: 100 450; src: local("Arial"), local("ArialMT"), local("Helvetica"), local("Liberation Sans"), local("Arimo"); size-adjust: 72%; ascent-override: 165%; descent-override: 40%; line-gap-override: 0%; }
@font-face { font-family: "Oswald Fallback"; font-weight: 451 550; src: local("Arial"), local("ArialMT"), local("Helvetica"), local("Liberation Sans"), local("Arimo"); size-adjust: 75.6%; ascent-override: 157.4%; descent-override: 38.4%; line-gap-override: 0%; }
@font-face { font-family: "Oswald Fallback"; font-weight: 551 650; src: local("Arial Bold"), local("Arial-BoldMT"), local("Helvetica Bold"), local("Liberation Sans Bold"), local("Arimo Bold"); size-adjust: 76.6%; ascent-override: 155.4%; descent-override: 37.9%; line-gap-override: 0%; }
@font-face { font-family: "Oswald Fallback"; font-weight: 651 900; src: local("Arial Bold"), local("Arial-BoldMT"), local("Helvetica Bold"), local("Liberation Sans Bold"), local("Arimo Bold"); size-adjust: 78.1%; ascent-override: 152.4%; descent-override: 37.1%; line-gap-override: 0%; }


:root {
  --bg: #ffffff;
  --fg: #0a0a0a;
  --muted: #575757;
  --line: rgba(0, 0, 0, 0.12);
  --btn-2: #d9d9d9;
  --dark-bg: #0a0a0a;
  --dark-fg: #ffffff;
  --dark-muted: rgba(255, 255, 255, 0.7);
  --dark-line: rgba(255, 255, 255, 0.14);
  --maxw: 75rem;
  --offset: 38%;
  --font: "Helvetica Neue", Arial, system-ui, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html, body { margin: 0; padding: 0; }
html, body { overflow-x: clip; }
body { font-family: var(--font); color: var(--fg); background: var(--bg); line-height: 1.55; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
a[href^="tel:"] { text-decoration: none; }

:focus-visible { outline: 2px solid var(--fg); outline-offset: 2px; border-radius: 0; }
.topbar :focus-visible, .band--dark :focus-visible, .media-band :focus-visible,
.hm-hero :focus-visible, .hm-offer :focus-visible, .hm-why :focus-visible, .hm-cta :focus-visible { outline-color: #fff; }

.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 clamp(1.25rem, 5vw, 4rem); }

.offset { margin-left: var(--offset); max-width: 36rem; }

.eyebrow { margin: 0 0 1.25rem; font-size: .76rem; letter-spacing: .28em; text-transform: uppercase; color: var(--muted); }
.h-xl { font-size: clamp(2.4rem, 7vw, 5rem); line-height: .94; font-weight: 800; letter-spacing: -0.025em; text-transform: uppercase; margin: 0 0 2rem; }
.h-lg { font-size: clamp(1.9rem, 5.4vw, 3.6rem); line-height: 1; font-weight: 800; letter-spacing: -0.02em; text-transform: uppercase; margin: 0 0 1.5rem; }
.lead { font-size: clamp(1.02rem, 1.5vw, 1.18rem); color: var(--muted); }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  padding: .75rem 1.6rem; background: var(--fl-red); color: #fff;
  font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; text-transform: uppercase;
  letter-spacing: .02em; font-size: .85rem;
  text-decoration: none; border-radius: 0; border: 0;
  transition: background .15s ease;
}
.btn:hover { background: #b80017; }
.btn--wa { background: var(--fl-green); }
.btn--wa:hover { background: #016b01; }
.btn--ghost { background: transparent; border: 1px solid #fff; color: #fff; }
.btn--ghost:hover { background: rgba(255,255,255,.12); }
.btn--secondary { background: var(--btn-2); color: var(--fg); }
.btn--secondary:hover { background: #cfcfcf; }
.btn--small { padding: .5rem 1.1rem; font-size: .78rem; }
.prose button {
  display: block; width: 100%; padding: .75rem 1.6rem; cursor: pointer;
  background: var(--fl-red); color: #fff; border: 0; border-radius: 0;
  font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; text-transform: uppercase; font-size: .85rem;
  transition: background .15s ease;
}
.prose button:hover { background: #b80017; }

.topbar {
  display: flex; justify-content: flex-end; gap: 1.75rem;
  padding: .5rem clamp(1.25rem, 5vw, 4rem);
  font-size: .76rem; letter-spacing: .06em;
  color: var(--dark-muted); background: var(--dark-bg);
}
.topbar a { text-decoration: none; }
.topbar a:hover { color: #fff; }

.site-top { position: sticky; top: 0; z-index: 20; }
.site-header {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; padding: 1rem clamp(1.25rem, 5vw, 4rem);
  background: rgba(255, 255, 255, .92); backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
.site-header__logo { display: inline-flex; align-items: center; text-decoration: none; }
.site-header__logo img { height: clamp(15px, 2.2vw, 20px); width: auto; display: block; }
.nav { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: clamp(.8rem, 1.8vw, 1.6rem); }
.nav a { text-decoration: none; font-size: .82rem; color: var(--fg); white-space: nowrap; display: block; padding: .3rem 0; }
.nav a:hover { opacity: .6; }
.nav a[aria-current="page"] { font-weight: 700; }
.nav__item { position: relative; }
.nav__item--has-children > a::after { content: " ▾"; font-size: .7em; opacity: .6; }
.nav__sub {
  list-style: none; margin: 0; padding: .5rem 0; position: absolute; left: 0; top: 100%;
  min-width: 15rem; background: #fff; border: 1px solid var(--line); border-radius: 0;
  box-shadow: 0 12px 30px rgba(0,0,0,.12); z-index: 30;
  opacity: 0; visibility: hidden; transform: translateY(4px); transition: opacity .12s, transform .12s;
}
.nav__sub li { margin: 0; }
.nav__sub a { padding: .45rem 1rem; font-size: .8rem; white-space: normal; }
.nav__sub a:hover { opacity: 1; background: var(--line); }
.nav__item--has-children:hover > .nav__sub,
.nav__item--has-children:focus-within > .nav__sub { opacity: 1; visibility: visible; transform: translateY(0); }
.nav__sub .nav__item--has-children > a::after { content: "›"; float: right; margin-left: .5rem; }
.nav__sub .nav__sub { left: 100%; top: -.5rem; }
@media (min-width: 901px) {
  .nav > .nav__item:nth-last-child(-n+3) .nav__sub .nav__sub { left: auto; right: 100%; }
  .nav > .nav__item:nth-last-child(-n+3) > .nav__sub { left: auto; right: 0; }
}

.nav-toggle { display: none; flex-direction: column; gap: 4px; background: none; border: 0; cursor: pointer; padding: .4rem; }
.nav-toggle span { width: 24px; height: 2px; background: var(--fg); display: block; }

@media (max-width: 900px) {
  .nav-toggle { display: flex; }
  .site-header__nav { display: none; position: absolute; left: 0; right: 0; top: 100%;
    background: #fff; border-bottom: 1px solid var(--line); max-height: 80vh; overflow-y: auto;
    padding: .5rem clamp(1.25rem, 5vw, 4rem) 1.5rem; }
  .site-header__nav.is-open { display: block; }
  .nav { flex-direction: column; align-items: stretch; gap: 0; }
  .nav__item { border-bottom: 1px solid var(--line); }
  .nav a { padding: .8rem 0; font-size: .95rem; }
  .nav__sub { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none;
    border: 0; min-width: 0; padding: 0 0 .5rem .8rem; display: none; }
  .nav__item.is-expanded > .nav__sub { display: block; }
  .nav__item--has-children > a::after { content: " ＋"; float: right; }
  .nav__item.is-expanded > a::after { content: " –"; }
}

section { padding: clamp(4rem, 9vw, 7.5rem) 0; }
.band--dark { background: var(--dark-bg); color: var(--dark-fg); }
.band--dark .lead, .band--dark .cv__item dd, .band--dark .contact__fine { color: var(--dark-muted); }

.hero {
  position: relative; overflow: hidden; background: #fff;
  padding: clamp(3.5rem, 8vw, 7rem) 0 clamp(3rem, 6vw, 5rem);
}
.hero--about {
  min-height: clamp(28rem, 60vh, 40rem);
  display: flex; align-items: center;
  background-color: #111;
  background-size: cover; background-position: center right; background-repeat: no-repeat;
}
.hero--about::before {
  content: ""; position: absolute; inset: 0; z-index: 0;
  background: linear-gradient(90deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.9) 40%, rgba(255,255,255,.35) 68%, rgba(255,255,255,0) 100%);
}
.hero--about .wrap { width: 100%; }
.hero__content { max-width: 42rem; }
.hero .wrap { position: relative; z-index: 1; }
.hero__title { font-size: clamp(1.6rem, 5.2vw, 4rem); line-height: .98; font-weight: 800; letter-spacing: -0.03em; text-transform: uppercase; margin: 0 0 1.75rem; text-wrap: balance; }
.hero__body { margin-top: 0; }
.hero__lead { font-size: clamp(1.05rem, 1.7vw, 1.3rem); color: var(--muted); margin: 0 0 2rem; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 1rem; }

.media-band { padding: 0; background: #000; line-height: 0; }
.media-band__video { width: 100%; height: clamp(16rem, 40vw, 34rem); object-fit: cover; display: block; }

.split { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.split__media { overflow: hidden; }
.split__media img { width: 100%; height: 100%; object-fit: cover; object-position: center top; filter: grayscale(1); }
.split--rev .split__media { border-radius: 0; }

.pull { font-size: clamp(1.4rem, 3.2vw, 2.3rem); font-style: italic; font-weight: 500; line-height: 1.3; margin: 0 auto; max-width: 46rem; text-align: center; }
.pull__by { color: var(--muted); margin: 1.25rem 0 0; text-align: center; font-size: .95rem; }

.stats__grid { list-style: none; margin: 3.5rem 0 0; padding: 0; display: grid; gap: 2.5rem; grid-template-columns: repeat(3, 1fr); text-align: center; }
.stats__grid li { display: flex; flex-direction: column; gap: .4rem; }
.stats__value { font-size: clamp(2.8rem, 7vw, 4.6rem); font-weight: 800; line-height: 1; letter-spacing: -0.03em; }
.stats__label { text-transform: uppercase; letter-spacing: .12em; font-size: .82rem; font-weight: 700; }

.services .h-xl { margin-bottom: clamp(2rem, 5vw, 3.5rem); }
.service { margin-left: var(--offset); max-width: 36rem; padding: clamp(2.5rem, 5vw, 4rem) 0; }
.service:first-of-type { padding-top: 0; }
.service__title { font-size: clamp(1.3rem, 2.4vw, 1.85rem); font-weight: 800; text-transform: uppercase; letter-spacing: -0.01em; margin: 0 0 1.1rem; }
.service__body p, .service > p { color: var(--muted); margin: 0 0 1.5rem; }
.service__items { list-style: none; margin: 0 0 1.75rem; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .65rem 1.5rem; }
.service__items li { position: relative; padding-left: 1.6rem; font-size: .92rem; }
.service__items li::before { content: "✓"; position: absolute; left: 0; top: 0; font-weight: 700; }

.reviews__list { display: grid; gap: clamp(2.5rem, 5vw, 4rem); }
.reviews .stars { font-size: 1.1rem; letter-spacing: .2em; margin: 0 0 1.25rem; color: var(--fg); }
.review { margin: 0; }
.review blockquote { margin: 0 0 1.5rem; font-size: clamp(1rem, 1.4vw, 1.15rem); line-height: 1.55; color: var(--fg); }
.review__by { display: flex; align-items: center; gap: 1.1rem; color: var(--muted); font-size: .82rem; line-height: 1.35; }
.review__by strong { color: var(--fg); display: block; text-transform: uppercase; letter-spacing: .04em; font-size: .92rem; margin-bottom: .15rem; }
.review__avatar { width: 64px; height: 64px; object-fit: cover; filter: grayscale(1); flex: none; }

.contact__mail-lg { display: inline-block; margin-top: 1.5rem; font-size: clamp(1.5rem, 5vw, 3rem); font-weight: 800; letter-spacing: -0.02em; text-transform: uppercase; text-decoration: none; padding-bottom: 1rem; border-bottom: 2px solid currentColor; }
.contact__mail-lg:hover { opacity: .65; }
.contact__fine { margin-top: 1.5rem; color: var(--muted); font-size: .85rem; }

.cv__list { margin: 3rem 0 0; padding: 0; }
.cv__item { display: grid; grid-template-columns: var(--offset) 1fr; gap: clamp(1rem, 3vw, 2rem); padding: 2.25rem 0; border-top: 1px solid var(--line); }
.cv__item:first-child { border-top: 0; }
.cv__item dt { text-transform: uppercase; letter-spacing: .08em; font-size: .95rem; font-weight: 800; align-self: start; }
.cv__item dd { margin: 0; max-width: 36rem; color: var(--muted); }
.cv__item dd strong { color: var(--fg); }
.cv__item dd a { color: var(--fg); }

.band--soft { background: #f6f6f6; }
.band--stats { background: #f1f2f3; }
.band--dark .eyebrow { color: var(--dark-muted); }
.band--dark .step__text { color: var(--dark-muted); }

.statcards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.5rem, 4vw, 3rem); }
.statcard { display: flex; flex-direction: column; gap: .75rem; }
.statcard__value { font-size: clamp(2.6rem, 6vw, 4rem); font-weight: 800; line-height: 1; letter-spacing: -0.03em; min-height: clamp(2.6rem, 6vw, 4rem); display: flex; align-items: flex-end; }
.statcard__text { margin: 0; color: var(--fg); font-size: .98rem; line-height: 1.5; }
.statcard__source { color: var(--muted); font-size: .8rem; }

.geo-def { font-size: clamp(1.4rem, 3.2vw, 2.4rem); font-weight: 800; line-height: 1.25; letter-spacing: -0.015em; max-width: 52rem; margin: 0; }

.compare { width: 100%; border-collapse: collapse; margin-top: clamp(1.5rem, 4vw, 2.5rem); font-size: .95rem; }
.compare th, .compare td { text-align: left; padding: 1rem 1.25rem; border-bottom: 1px solid var(--line); vertical-align: top; }
.compare thead th { text-transform: uppercase; letter-spacing: .1em; font-size: .76rem; color: var(--muted); border-bottom: 2px solid var(--fg); }
.compare tbody th { font-weight: 700; width: 22%; }
.compare td { color: var(--muted); }
.compare .compare__geo { color: var(--fg); font-weight: 600; }

.steps { list-style: none; margin: clamp(2rem, 5vw, 3.5rem) 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(1.5rem, 3vw, 2.5rem); }
.step { display: flex; flex-direction: column; gap: .65rem; padding-top: 1.5rem; border-top: 2px solid var(--dark-line); }
.step__num { font-size: .76rem; letter-spacing: .12em; text-transform: uppercase; color: var(--dark-muted); }
.step__title { margin: 0; font-size: clamp(1.05rem, 1.6vw, 1.3rem); font-weight: 800; text-transform: uppercase; letter-spacing: -0.01em; }
.step__text { margin: 0; font-size: .9rem; line-height: 1.5; }

.cardgrid { list-style: none; margin: clamp(2rem, 5vw, 3.5rem) 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.5rem, 3vw, 2.5rem) clamp(1.5rem, 4vw, 3rem); }
.card { padding-top: 1.5rem; border-top: 2px solid var(--fg); }
.card__title { margin: 0 0 .6rem; font-size: 1.02rem; font-weight: 800; text-transform: uppercase; letter-spacing: .02em; }
.card__text { margin: 0; color: var(--muted); font-size: .92rem; line-height: 1.5; }

.faq { margin-top: clamp(2rem, 5vw, 3rem); border-top: 1px solid var(--line); }
.faq__item { border-bottom: 1px solid var(--line); }
.faq__item summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; padding: 1.4rem 0; font-weight: 700; text-transform: uppercase; letter-spacing: .02em; font-size: .92rem; }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary::after { content: "+"; font-weight: 400; font-size: 1.5rem; line-height: 1; flex: none; transition: transform .2s ease; }
.faq__item[open] summary::after { transform: rotate(45deg); }
.faq__answer { padding: 0 0 1.6rem; max-width: 50rem; }
.faq__answer p { margin: 0; color: var(--muted); }

.gallery { padding: 0; }
.gallery__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; }
.gallery__grid li { margin: 0; overflow: hidden; aspect-ratio: 3 / 4; }
.gallery__grid img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }

.site-footer { border-top: 1px solid var(--line); }
.site-footer__row {
  display: flex; justify-content: space-between; align-items: center;
  gap: 1.5rem 2.5rem;
  padding: clamp(2rem, 4vw, 3rem) clamp(1.25rem, 5vw, 4rem);
}
.site-footer__menu { display: flex; flex-wrap: wrap; align-items: center; gap: .9rem 1.75rem; }
.site-footer__nav { display: flex; flex-wrap: wrap; align-items: center; gap: .9rem 1.75rem; }
.site-footer__nav a { text-decoration: none; font-size: .85rem; color: var(--fg); }
.site-footer__nav a:hover { opacity: .6; }
.site-footer__social-note { font-size: .85rem; color: var(--muted); }
.site-footer__brand { flex: none; display: inline-flex; align-items: center; }
.site-footer__brand img { height: clamp(18px, 2vw, 24px); width: auto; display: block; }
.site-footer__copy { color: var(--muted); font-size: .76rem; margin: 0; padding: clamp(1rem, 2.5vw, 1.5rem) clamp(1.25rem, 5vw, 4rem); border-top: 1px solid var(--line); }
@media (max-width: 760px) {
  .site-footer__row { flex-direction: column; align-items: flex-start; gap: 1.75rem; }
}

.legal .wrap { max-width: 46rem; }
.legal h1 { font-size: clamp(1.8rem, 5vw, 2.6rem); text-transform: uppercase; letter-spacing: -0.01em; margin: 0 0 1.5rem; }
.legal h2 { font-size: 1.05rem; margin: 2rem 0 .5rem; }
.legal p { color: var(--muted); }
.legal a { color: var(--fg); }

@media (max-width: 900px) {
  .offset, .service, .cv__item dd { margin-left: 0; max-width: none; }
  .service { max-width: none; }
  .cv__item { grid-template-columns: 1fr; gap: .6rem; }
  .split { grid-template-columns: 1fr; }
  .split--rev .split__media { order: -1; }
  .hero--about {
    align-items: flex-end;
    min-height: clamp(30rem, 84vh, 42rem);
    background-position: right top;
  }
  .hero--about::before {
    background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0) 40%, rgba(255,255,255,.55) 62%, rgba(255,255,255,.85) 100%);
  }
  .hero--about .hero__content {
    max-width: none;
    background: rgba(255,255,255,.82);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
    padding: 1.4rem 1.25rem 1.5rem;
    border-radius: 0;
    box-shadow: 0 2px 20px rgba(0,0,0,.06);
  }
  .steps { grid-template-columns: repeat(2, 1fr); }
  .cardgrid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .stats__grid { grid-template-columns: 1fr; gap: 2rem; }
  .service__items { grid-template-columns: 1fr; }
  .gallery__grid { grid-template-columns: 1fr; }
  .statcards, .steps, .cardgrid { grid-template-columns: 1fr; }
  .compare { font-size: .85rem; }
  .compare th, .compare td { padding: .75rem .6rem; }
  .topbar { justify-content: center; gap: 1.1rem; }
  .site-header__nav { gap: 1.1rem; }
}

a.card--link { display: block; text-decoration: none; color: inherit; transition: transform .15s ease; }
a.card--link:hover { transform: translateY(-3px); }
.card__more { display: inline-block; margin-top: 1.1rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; }
a.card--link:hover .card__more { text-decoration: underline; text-underline-offset: 3px; }
.card__cat { display: block; font-size: .76rem; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: var(--muted); margin-bottom: .5rem; }
.card--link .card__title, .card--link .card__text, .card--soon .card__title, .card--soon .card__text { display: block; }
.card--soon { opacity: .6; }
.card__badge { display: inline-block; margin-top: 1.1rem; font-size: .76rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); border: 1px solid var(--line); border-radius: 0; padding: .25rem .8rem; }

.article__head { max-width: 44rem; }
.contact-cta { display: flex; flex-wrap: wrap; gap: .8rem; margin: 0; }
.btn--tel { white-space: nowrap; background: var(--fl-black); }
.btn--tel:hover { background: #000; }

.backlink { display: inline-flex; align-items: center; gap: .4rem; margin: 0 0 1.5rem; font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; text-decoration: none; color: var(--muted); transition: color .12s ease, gap .12s ease; }
.backlink:hover { color: var(--fg); gap: .7rem; }
.post-nav { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 3rem; max-width: 44rem; }
.post-nav__next { margin-left: auto; }
.article__meta { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; font-size: .85rem; color: var(--muted); text-transform: uppercase; letter-spacing: .08em; margin: 1.75rem 0 0; }
.article__meta .article__cat { font-weight: 700; color: var(--fg); }
.prose { max-width: 44rem; }
.prose > * + * { margin-top: 1.3rem; }
.prose h2 { font-size: clamp(1.3rem, 2.4vw, 1.9rem); line-height: 1.15; font-weight: 500; text-transform: uppercase; letter-spacing: 0; margin-top: 2.5rem; }
.prose h3 { font-size: clamp(1.1rem, 2vw, 1.5rem); line-height: 1.2; font-weight: 500; margin-top: 2rem; }
.prose h4 { font-size: 1.15rem; font-weight: 500; margin-top: 1.75rem; }
.prose h2.hx-3 { font-size: clamp(1.1rem, 2vw, 1.5rem); line-height: 1.2; margin-top: 2rem; }
.prose h3.hx-4 { font-size: 1.15rem; line-height: normal; margin-top: 1.75rem; }
.prose p, .prose li { color: var(--fg); }
.prose a { color: var(--fg); text-decoration: underline; text-underline-offset: 2px; }
.prose a:hover { opacity: .6; }
.prose ul, .prose ol { padding-left: 1.3rem; }
.prose li + li { margin-top: .5rem; }
.prose li::marker { color: var(--muted); }
.prose strong { font-weight: 700; }
.prose blockquote { margin: 2rem 0; border-left: 3px solid var(--fg); padding: .25rem 0 .25rem 1.4rem; font-style: italic; font-size: clamp(1.1rem, 1.8vw, 1.3rem); }
.prose h2 + p, .prose h3 + p { margin-top: 1rem; }
.article__faq { max-width: 44rem; margin-top: 3.5rem; }
.article__faq h2 { font-size: clamp(1.4rem, 3vw, 2rem); line-height: 1.12; font-weight: 800; text-transform: uppercase; letter-spacing: -0.01em; margin: 0; }
.article__author { display: flex; align-items: center; gap: 1rem; margin-top: 3rem; padding-top: 1.75rem; border-top: 1px solid var(--line); max-width: 44rem; color: var(--muted); font-size: .92rem; }
.article__author strong { color: var(--fg); display: block; text-transform: uppercase; letter-spacing: .04em; font-size: .95rem; margin-bottom: .1rem; }

.quiz { max-width: 44rem; }
.quiz__intro { color: var(--muted); margin: 0 0 2.5rem; }
.quiz__q { border: 0; border-top: 1px solid var(--line); margin: 0; padding: 1.75rem 0; min-width: 0; }
.quiz__q:first-of-type { border-top: 0; padding-top: 0; }
.quiz__question { display: block; width: 100%; padding: 0; font-weight: 700; font-size: 1.05rem; margin: 0 0 1rem; }
.quiz__num { color: var(--muted); font-weight: 700; margin-right: .5rem; }
.quiz__options { display: flex; flex-wrap: wrap; gap: .6rem; }
.quiz__option { position: relative; }
.quiz__option input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.quiz__option span { display: inline-block; padding: .6rem 1.3rem; border: 1.5px solid var(--line); border-radius: 0; font-size: .9rem; font-weight: 600; cursor: pointer; transition: border-color .12s ease, background .12s ease; }
.quiz__option input:checked + span { background: var(--fg); color: #fff; border-color: var(--fg); }
.quiz__option input:focus-visible + span { outline: 2px solid var(--fg); outline-offset: 2px; }
.quiz__actions { margin-top: 2.5rem; display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }
.quiz__hint { color: var(--muted); font-size: .85rem; }
.quiz__result { margin-top: 2.5rem; padding: 2rem; border: 2px solid var(--fg); border-radius: 0; }
.quiz__result[hidden] { display: none; }
.quiz__score { font-size: clamp(3rem, 9vw, 5rem); font-weight: 800; line-height: 1; letter-spacing: -0.03em; }
.quiz__score span { font-size: .4em; color: var(--muted); }
.quiz__grade { text-transform: uppercase; letter-spacing: .1em; font-weight: 700; font-size: .95rem; margin: .75rem 0 0; }
.quiz__bar { height: 10px; border-radius: 0; background: var(--btn-2); margin: 1.5rem 0; overflow: hidden; }
.quiz__bar-fill { height: 100%; background: var(--fg); border-radius: 0; width: 0; transition: width .6s ease; }
.quiz__recos { margin: 1.5rem 0 0; padding: 0; list-style: none; }
.quiz__recos li { position: relative; padding-left: 1.6rem; margin-top: .7rem; color: var(--fg); }
.quiz__recos li::before { content: "→"; position: absolute; left: 0; font-weight: 700; }
.quiz__noscript { color: var(--muted); font-size: .9rem; margin-top: 1.5rem; }

@media (max-width: 640px) {
  .quiz__result { padding: 1.4rem; }
  .quiz__option span { padding: .55rem 1rem; }
}

.tool { max-width: 44rem; }
.tool__intro { color: var(--muted); margin: 0 0 2.5rem; }
.tfields { display: grid; gap: 1.5rem; }
.tfield { display: flex; flex-direction: column; gap: .5rem; }
.tfield label { font-weight: 700; font-size: .95rem; }
.tfield .tfield__hint { font-weight: 400; color: var(--muted); font-size: .82rem; }
.tfield input, .tfield select, .tfield textarea {
  font: inherit; color: var(--fg); background: #fff;
  border: 1.5px solid var(--line); border-radius: 0; padding: .7rem .9rem; width: 100%;
}
.tfield textarea { resize: vertical; min-height: 3.2rem; line-height: 1.5; }
.tfield input:focus-visible, .tfield select:focus-visible, .tfield textarea:focus-visible {
  outline: 2px solid var(--fg); outline-offset: 2px; border-color: var(--fg);
}
.tfield__count { font-size: .82rem; color: var(--muted); }
.tool__actions { margin-top: 2rem; display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }

.tout { margin-top: 2.5rem; padding: 2rem; border: 2px solid var(--fg); border-radius: 0; }
.tout[hidden] { display: none; }
.tout__label { text-transform: uppercase; letter-spacing: .1em; font-weight: 700; font-size: .8rem; color: var(--muted); margin: 0; }
.tout__big { font-size: clamp(2.4rem, 7vw, 4rem); font-weight: 800; line-height: 1; letter-spacing: -0.03em; margin: .4rem 0 0; }
.tout__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin-top: 1.75rem; }
.tout__row .tout__label { margin-bottom: .3rem; }
.tout__sub { font-size: clamp(1.3rem, 3vw, 1.9rem); font-weight: 800; letter-spacing: -0.02em; }
.tout__note { color: var(--muted); font-size: .88rem; margin: 1.5rem 0 0; }

.serp { margin-top: 1.5rem; padding: 1.25rem 1.4rem; background: #fff; border: 1px solid var(--line); border-radius: 0; font-family: Arial, sans-serif; }
.serp__crumb { font-size: .82rem; color: #4d5156; margin-bottom: .2rem; }
.serp__title { color: #1a0dab; font-size: 1.25rem; line-height: 1.3; margin: 0; font-weight: 400; }
.serp__desc { color: #4d5156; font-size: .92rem; line-height: 1.45; margin: .3rem 0 0; }

.gauge { height: 8px; border-radius: 0; background: var(--btn-2); margin: .5rem 0; overflow: hidden; }
.gauge__fill { height: 100%; width: 0; border-radius: 0; transition: width .25s ease, background .25s ease; }
.is-ok { background: #1a7f37; } .is-warn { background: #9a6700; } .is-bad { background: #b42318; }
.gauge-note { font-size: .82rem; }
.gauge-note.is-ok { color: #1a7f37; background: none; } .gauge-note.is-warn { color: #9a6700; background: none; } .gauge-note.is-bad { color: #b42318; background: none; }

.gen { margin-top: 2rem; }
.gen__box { white-space: pre-wrap; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .88rem; line-height: 1.6; background: #f6f6f6; border: 1px solid var(--line); border-radius: 0; padding: 1.25rem 1.4rem; max-height: 30rem; overflow: auto; }
.gen[hidden] { display: none; }

@media (max-width: 640px) {
  .tout { padding: 1.4rem; }
  .tout__row { grid-template-columns: 1fr; gap: 1rem; }
}

:root { --fl-red: #dc001b; --fl-black: #111; --fl-dropdown: #020202; --fl-green: #008000; --fl-gray: #828488; }
body { font-family: "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; color: #222; }
h1, h2, h3, h4, h5, .h-xl, .h-lg, .hero__title, .eyebrow { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; }

.site-header {
  border-top: 4px solid var(--fl-red);
  background: var(--fl-black); color: #fefefe;
  backdrop-filter: none; border-bottom: 0;
  padding: 0 clamp(1rem, 3vw, 2rem); gap: clamp(1rem, 2vw, 2rem);
}
.site-header__logo { padding: .4rem 0; }
.lgo { font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: 24px; font-weight: 500; text-transform: uppercase; color: #fff; letter-spacing: .02em; line-height: 1; }
.lgo span { color: var(--fl-red); }

.nav { gap: 0; }
.nav > .nav__item > a {
  font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500;
  color: #fefefe; font-size: 1.1rem; padding: 1.2rem .938rem; letter-spacing: .02em;
}
.nav > .nav__item > a:hover { opacity: 1; background: var(--fl-dropdown); }
.nav > .nav__item > a[aria-current="page"] { background: #fff; color: #222; font-weight: 600; }
.nav__item--has-children > a::after { content: " ▾"; opacity: .7; }

.nav__sub {
  background: var(--fl-dropdown); border: 0; border-radius: 0; box-shadow: 0 12px 30px rgba(0,0,0,.4);
  min-width: 250px; padding: 0; text-align: left;
}
.nav__sub a {
  font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 400;
  color: #fefefe; font-size: .78rem; padding: .7815rem 1rem; letter-spacing: .02em; white-space: normal;
}
.nav__sub a:hover { background: #000; opacity: 1; }
.nav__sub .nav__item--has-children > a::after { content: "›"; float: right; border: 1px solid #202020; background: #070707; border-radius: 0; padding: 0 .35rem; margin-left: .5rem; }
.nav__sub .nav__sub { top: 0; }

.nav-toggle span { background: #fff; }

[id] { scroll-margin-top: 120px; }

.cta-bar {
  display: flex; align-items: center; justify-content: center; gap: .5rem;
  background: var(--fl-green); color: #fff; text-decoration: none;
  font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; letter-spacing: .03em;
  font-size: .9rem; padding: .7rem 1rem; text-align: center;
}
.cta-bar:hover { color: #eee; }

.site-footer { background: var(--fl-black); color: #fff; margin-top: 4rem; border-top: 0; padding: 3rem clamp(1.25rem, 5vw, 4rem) 2rem; }
.site-footer__cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7rem; max-width: 1100px; margin: 0 auto; }
.site-footer__standort h3 { font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: 1.6rem; font-weight: 300; text-transform: uppercase; color: var(--fl-gray); margin: 0 0 .6rem; }
.site-footer__addr, .site-footer__hours { font-size: .9rem; line-height: 1.7; color: #ddd; margin: 0 0 .9rem; }
.site-footer__addr a, .site-footer__hours a { color: #fff; }
.site-footer__zt { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 400; text-transform: uppercase; color: var(--fl-gray); font-size: 1rem; margin: 0 0 .15rem; }
.site-footer__zeiten { margin: 0; font-size: .86rem; line-height: 1.5; }
.site-footer__zeiten > div { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: .38rem 0; border-bottom: 1px solid #262626; text-align: left; }
.site-footer__zeiten dt { color: #9a9a9a; white-space: nowrap; }
.site-footer__zeiten dd { margin: 0; color: #fff; text-align: right; white-space: nowrap; }
.site-footer .sep { color: var(--fl-red); }
.site-footer__nav { display: flex; flex-wrap: wrap; gap: 1.2rem; justify-content: center; margin: 2.5rem auto 1rem; border-top: 1px solid #2a2a2a; padding-top: 1.5rem; max-width: 1100px; }
.site-footer__nav a { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-size: .82rem; color: #fff; text-decoration: none; }
.site-footer__nav a:hover { color: var(--fl-red); }
.site-footer__copy { text-align: center; color: #9a9a9a; font-size: .8rem; margin: 0; }

@media (max-width: 900px) {
  .site-header { padding: 9px clamp(1rem, 3vw, 2rem); }
  .site-header__nav { background: var(--fl-black); border-bottom: 0; }
  .nav > .nav__item { border-bottom: 1px solid #2a2a2a; }
  .nav__sub { background: var(--fl-dropdown); }
  .site-footer__cols { grid-template-columns: 1fr; gap: 2rem; text-align: center; }
}

.shell { max-width: 1240px; margin: 0 auto; padding: 1.5rem clamp(1.25rem, 5vw, 4rem) 0;
  display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: 2.5rem; align-items: start; }
.shell__main { min-width: 0; }
.shell__main > main { padding: 0; }
.shell__main .wrap { max-width: none; padding-left: 0; padding-right: 0; }
.shell__main section { padding: 0 0 2.25rem; }
.shell__main .hero { background: none; padding: 0 0 1rem; }
.page .prose { max-width: none; }
.page .prose img { max-width: 100%; height: auto; }
.prose .bild-ki { margin: 0 0 1.2rem; }
.prose .bild-ki img { display: block; }
.prose .bild-ki .bild-ki__hinweis { margin-top: .35rem; font-size: .76rem; color: var(--muted); }
.band-hero__fig { margin: 0; }
.band-hero picture, .lpager__card picture { display: block; }
.band-hero__fig .bild-ki__hinweis { margin-top: .35rem; font-size: .76rem; color: var(--muted); }
.course-card, .lpager__card, .team-card__photo, .fp-hero__photo { position: relative; }
.team-card__banderole { position: absolute; left: 0; right: 0; bottom: 0; padding: .55rem .9rem .7rem; background: #0a0a0a; border-top: 5px solid var(--fl-red); color: #fff; text-align: right; line-height: 1.15; }
.team-card__banderole strong { display: block; font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 600; font-size: clamp(1rem, 2.2vw, 1.5rem); }
.team-card__banderole span { display: block; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; letter-spacing: .04em; font-size: clamp(.7rem, 1.3vw, .9rem); }
.shell .sidebar { position: sticky; top: 132px; }
@media (max-width: 900px) {
  .shell { grid-template-columns: 1fr; gap: 1.8rem; }
  .shell .sidebar { position: static; }
}

.standort { padding: 0; }
.standort__title { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 500; margin: 0 0 1.4rem; }
.standort__photo { width: 100%; height: auto; display: block; margin-bottom: 1.2rem; }
.breadcrumb-line { margin: 1.2rem 0 0; font-size: .82rem; color: var(--muted); }
.breadcrumb-line a { color: var(--fl-red); text-decoration: none; }

.accordion__item { border: 0; margin: 0 0 .55rem; }
.accordion__head {
  list-style: none; cursor: pointer; background: #222; color: #fff;
  font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; letter-spacing: .02em;
  font-size: 1rem; padding: 1rem 1.2rem; position: relative;
}
.accordion__head::-webkit-details-marker { display: none; }
.accordion__h { font: inherit; letter-spacing: inherit; color: inherit; margin: 0; display: inline; }
.accordion__head::after { content: "+"; position: absolute; right: 1.2rem; font-weight: 400; }
.accordion__item[open] > .accordion__head { background: var(--fl-red); }
.accordion__item[open] > .accordion__head::after { content: "–"; }
.accordion__body { padding: 1.4rem 1.2rem 1.8rem; }
.accordion__body img { max-width: 100%; height: auto; }

.gallery { display: grid; grid-template-columns: repeat(4, 1fr); gap: .5rem; }
.gallery__item { display: block; overflow: hidden; aspect-ratio: 4 / 3; }
.gallery__item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.gallery__item:hover img { transform: scale(1.06); }

.sidebar { display: flex; flex-direction: column; gap: 1.4rem; }
.sb-box { background: var(--fl-black); color: #fff; padding: 1.3rem; }
.sb-box--banner { padding: 0; display: block; }
.sb-box--banner img { width: 100%; height: auto; display: block; }
.sb-box__eyebrow { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; color: #8ec73b; font-size: 1.05rem; margin: 0 0 .6rem; line-height: 1.2; }
.sb-box__title { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: 1.05rem; margin: 0 0 .8rem; color: #fff; }
.sb-box__text { font-size: .9rem; color: #ccc; margin: 0 0 1rem; }
.sb-btn { display: block; text-align: center; text-decoration: none; padding: .7rem 1rem; margin: .5rem 0 0;
  font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: .85rem; }
.sb-btn--red { background: var(--fl-red); color: #fff; }
.sb-btn--red:hover { background: #b80017; }
.sb-btn--green { background: var(--fl-green); color: #fff; }
.sb-btn--green:hover { background: #016b01; }
.sb-social { list-style: none; margin: 0; padding: 0; }
.sb-social li { margin: .4rem 0; }
.sb-social a { color: #fff; text-decoration: none; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-size: .95rem; }
.sb-social a:hover { color: var(--fl-red); }

.locbar { position: fixed; left: 0; top: 50%; transform: translateY(-50%); z-index: 40;
  display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.locbar a { display: flex; align-items: center; justify-content: center; width: 56px; height: 56px;
  font-size: 0; line-height: 0; text-decoration: none; color: #111; background: #fff;
  border: 1px solid #e1e1e1; border-left: 0; box-shadow: 0 6px 18px rgba(0, 0, 0, .16);
  transition: width .18s ease, background-color .18s ease, color .18s ease, border-color .18s ease; }
.locbar a::before { content: ""; width: 28px; height: 28px; background: currentColor;
  -webkit-mask-position: center; mask-position: center; -webkit-mask-size: contain; mask-size: contain;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; }
.locbar a:hover, .locbar a:focus-visible { width: 72px; background: var(--fl-red); border-color: var(--fl-red); color: #fff; }
.locbar a.locbar__wa { background: #008000; border-color: #008000; color: #fff; }
.locbar a.locbar__wa::before { width: 31px; height: 31px; }
.locbar a.locbar__wa:hover, .locbar a.locbar__wa:focus-visible { background: #016b01; border-color: #016b01; }
.locbar__wa::before { -webkit-mask-image: url(/assets/images/icons/whatsapp.svg); mask-image: url(/assets/images/icons/whatsapp.svg); }
.locbar__anmeldung::before { -webkit-mask-image: url(/assets/images/icons/anmeldung.svg); mask-image: url(/assets/images/icons/anmeldung.svg); }
.locbar__kursplan::before { -webkit-mask-image: url(/assets/images/icons/kursplan.svg); mask-image: url(/assets/images/icons/kursplan.svg); }
.locbar__termine::before { -webkit-mask-image: url(/assets/images/icons/termine.svg); mask-image: url(/assets/images/icons/termine.svg); }
.locbar__kontakt::before { -webkit-mask-image: url(/assets/images/icons/kontakt.svg); mask-image: url(/assets/images/icons/kontakt.svg); }
@media (prefers-reduced-motion: reduce) { .locbar a { transition: none; } }
picture { display: contents; }
picture > source { display: none; }

@media (max-width: 900px) {
  .gallery { grid-template-columns: repeat(2, 1fr); }
  .locbar { display: none; }
}

.page-title { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 500; margin: 0 0 1.2rem; }
.disziplin__header { width: 100%; height: auto; display: block; margin: 0 0 1.4rem; }
.disziplin__courses-title { margin: 2.4rem 0 1.2rem; }
.course-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.2rem; }
.course-card { display: flex; flex-direction: column; background: #f4f4f4; text-decoration: none; color: var(--fg); overflow: hidden; transition: box-shadow .2s; }
.course-card:hover { box-shadow: 0 10px 26px rgba(0,0,0,.14); }
.course-card__img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.course-card__title { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: 1.05rem; padding: .9rem 1rem .3rem; }
.course-card__text { font-size: .88rem; color: var(--muted); padding: 0 1rem; line-height: 1.5; flex: 1; }
.course-card__more { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-size: .78rem; color: var(--fl-red); padding: .8rem 1rem 1rem; }
.cta-strip { margin-top: 2.5rem; padding: clamp(2.5rem, 6vw, 4.25rem) 0; border-radius: 0; border-top: 4px solid #dc001b; }
.shell__main .cta-strip .wrap { padding-left: clamp(1.4rem, 3.5vw, 3rem); padding-right: clamp(1.4rem, 3.5vw, 3rem); }
.cta-strip--img { position: relative; overflow: hidden; background-size: cover; background-position: center; }
.cta-strip--img::before { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, rgba(6,6,6,.94) 30%, rgba(6,6,6,.78) 60%, rgba(10,10,10,.5) 100%); }
.cta-strip--img .wrap { position: relative; z-index: 1; }
.cta-strip__title { margin: 0 0 .6rem; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 600; font-size: clamp(1.7rem, 3.6vw, 2.6rem); line-height: 1.1; }
.cta-strip__accent { color: #ff2f45; }
.cta-strip__lead { margin: 0 0 1.4rem; color: #e2e2e2; max-width: 34rem; font-size: clamp(.98rem, 1.5vw, 1.1rem); }
.cta-strip__proof { margin: 1.1rem 0 0; font-size: .82rem; color: #cfcfcf; text-transform: uppercase; letter-spacing: .08em; }
.btn--gross { padding: 1.05rem 2rem; font-size: .85rem; }
.contact-cta .btn svg { flex-shrink: 0; }
@media (max-width: 620px) { .course-grid { grid-template-columns: 1fr; } }

.listing__intro { color: var(--muted); font-size: 1.05rem; margin: 0 0 1.6rem; max-width: 46rem; }
.team-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.team-grid--gross { grid-template-columns: repeat(2, 1fr); }
.listing__h2:first-of-type { margin-top: 1.2rem; }
.listing__h2 { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500;
  font-size: clamp(1.3rem, 2.6vw, 1.8rem); margin: 2.4rem 0 1rem;
  padding-left: .8rem; border-left: 4px solid var(--fl-red); }
.team-card__meta { font-size: .78rem; color: #9a9a9a; padding: .1rem .8rem .85rem; }
.team-card { display: flex; flex-direction: column; text-decoration: none; color: var(--fg); background: #111; overflow: hidden; }
.team-card__photo { display: block; aspect-ratio: 3 / 4; background: #000; overflow: hidden; }
.team-card__photo img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s, opacity .3s; opacity: .92; }
.team-card:hover .team-card__photo img { transform: scale(1.05); opacity: 1; }
.team-card__name { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: .95rem; color: #fff; padding: .7rem .8rem .1rem; }
.team-card__role { font-size: .78rem; color: var(--fl-red); padding: 0 .8rem .9rem; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; }
.team-card__ph { display: block; width: 100%; height: 100%; background: linear-gradient(135deg,#1c1c1c,#333); }

.coach__head { display: grid; grid-template-columns: 260px 1fr; gap: 2rem; align-items: start; margin-top: 1rem; }
.coach__photo img { width: 100%; height: auto; display: block; }
.coach__role { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; color: var(--fl-red); font-weight: 500; margin: 0 0 .2rem; }
.coach__body ul { padding-left: 1.1rem; }
.coach__body li { margin: .25rem 0; }
@media (max-width: 700px) {
  .team-grid { grid-template-columns: repeat(2, 1fr); }
  .coach__head { grid-template-columns: 1fr; gap: 1.2rem; }
  .coach__photo { max-width: 260px; }
}

.hm-hero { position: relative; background: #0a0a0a; color: #fff; overflow: hidden; border-bottom: 4px solid #dc001b; padding: 0; }
.hm-hero__media { position: relative; }
.hm-hero__media img { width: 100%; height: clamp(220px, 56vw, 340px); object-fit: cover; object-position: center 30%; display: block; }
.hm-hero__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,10,10,.05) 40%, rgba(10,10,10,.65) 80%, #0a0a0a 100%); }
.hm-hero .wrap { position: relative; z-index: 1; }
.hm-hero__inner { max-width: 44rem; padding: 1.6rem 0 2.9rem; }
.hm-hero__loc { margin: 0 0 .9rem; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; letter-spacing: .22em; font-size: .8rem; color: #ff2f45; }
.hm-hero h1 { margin: 0 0 1rem; font-size: clamp(2.2rem, 9vw, 4.2rem); font-weight: 600; line-height: 1.02; }
.hm-hero__accent { display: inline-block; background: #dc001b; color: #fff; padding: .05em .22em .08em; margin-top: .12em; }
.hm-hero__lead { margin: 0 0 1.6rem; font-size: clamp(1rem, 2vw, 1.2rem); color: #e6e6e6; max-width: 36rem; }
.hm-hero__cta { display: flex; flex-wrap: wrap; gap: .8rem; }
.hm-proof { display: flex; flex-wrap: wrap; gap: .45rem 1.6rem; margin: 1.9rem 0 0; padding: 0; list-style: none; font-size: .9rem; color: #e6e6e6; }
.hm-check { color: #4fd865; margin-right: .45rem; font-weight: 700; }
@media (min-width: 1000px) {
  .hm-hero { min-height: 34rem; display: flex; align-items: center; }
  .hm-hero__media { position: absolute; top: 0; right: 0; bottom: 0; width: 62%; }
  .hm-hero__media img { width: 100%; height: 100%; clip-path: polygon(16% 0, 100% 0, 100% 100%, 0 100%); }
  .hm-hero__media::after { background: linear-gradient(90deg, #0a0a0a 3%, rgba(10,10,10,.6) 18%, rgba(10,10,10,.22) 40%, rgba(10,10,10,.05) 70%); }
  .home .hm-hero__lead, .home .hm-proof { text-shadow: 0 1px 6px rgba(0,0,0,.85); }
  .hm-hero .wrap { width: 100%; }
  .hm-hero__inner { max-width: 40rem; padding: 5.5rem 0; }
}

.hm-offer { background: linear-gradient(135deg, #e30019 0%, #ad0014 100%); color: #fff;
  padding: clamp(2.6rem, 6vw, 4.2rem) 0; }
.hm-offer__grid { display: grid; gap: 2rem; }
.hm-offer__eyebrow { margin: 0 0 .4rem; font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500;
  font-size: .76rem; letter-spacing: .2em; text-transform: uppercase; color: #ffc2c9; }
.hm-offer h2 { margin: 0 0 1.2rem; font-size: clamp(1.8rem, 4.6vw, 2.7rem); font-weight: 700; line-height: 1.08; }
.hm-offer__marker { background: #fff; color: var(--fl-red); padding: 0 .22em; }
.hm-offer__vorteile { list-style: none; margin: 0 0 1.3rem; padding: 0; display: grid; gap: .5rem;
  font-size: .96rem; }
.hm-offer__vorteile .hm-check { color: #fff; background: rgba(255, 255, 255, .22); border-radius: 0;
  display: inline-flex; align-items: center; justify-content: center;
  width: 1.3rem; height: 1.3rem; font-size: .75rem; margin-right: .55rem; }
.hm-offer__hint { margin: 0; color: #ffd0d6; font-size: .88rem; }
.hm-offer__btns { display: grid; gap: .8rem; align-content: center; }
.hm-offer__cta { display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  background: #fff; color: var(--fl-black); text-decoration: none; padding: 1rem 1.3rem;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .22); transition: transform .15s ease, box-shadow .15s ease; }
.hm-offer__cta:hover { transform: translateY(-2px); box-shadow: 0 14px 32px rgba(0, 0, 0, .3); }
.hm-offer__ort { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 600; font-size: 1.1rem;
  text-transform: uppercase; letter-spacing: .02em; }
.hm-offer__aktion { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .74rem;
  letter-spacing: .06em; text-transform: uppercase; color: var(--fl-red); white-space: nowrap; }
.hm-offer__aktion::after { content: "→"; display: inline-block; margin-left: .4em; transition: transform .15s ease; }
.hm-offer__cta:hover .hm-offer__aktion::after { transform: translateX(4px); }
@media (min-width: 1000px) {
  .hm-offer__grid { grid-template-columns: 1.1fr .9fr; gap: 3.5rem; align-items: center; }
}

.hm-sec { padding: clamp(2.75rem, 7vw, 5rem) 0; }
.hm-sec--tint { background: #f4f4f4; }
.hm-h2 { margin: 0 0 .6rem; font-size: clamp(1.5rem, 4.5vw, 2.25rem); font-weight: 500; }
.hm-sub { margin: 0 0 1.6rem; color: var(--muted); max-width: 38rem; }
.hm-more { margin: 1.4rem 0 0; }
.hm-more a { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; letter-spacing: .06em; text-decoration: none; color: var(--fg); border-bottom: 2px solid #dc001b; padding-bottom: .15rem; }

.hm-dgrid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .7rem; }
.hm-dcard { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; border-radius: 0; background: #111; }
.hm-dcard img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease, opacity .25s ease; }
.hm-dcard:hover img { transform: scale(1.06); opacity: .85; }
.hm-dcard span { position: absolute; left: 0; right: 0; bottom: 0; padding: 1.4rem .7rem .55rem; background: linear-gradient(transparent, rgba(0,0,0,.88)); color: #fff; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-size: .92rem; letter-spacing: .04em; }

.hm-lounges { display: grid; grid-template-columns: 1fr; gap: .7rem; }
.hm-lcard { display: block; background: #fff; border-left: 4px solid #dc001b; padding: 1.1rem 1.2rem; text-decoration: none; border-radius: 0; box-shadow: 0 1px 3px rgba(0,0,0,.07); transition: transform .15s ease; }
.hm-lcard:hover { transform: translateY(-2px); }
.hm-lcard__title { display: block; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; color: var(--fg); margin-bottom: .25rem; }
.hm-lcard__text { display: block; color: var(--muted); font-size: .92rem; line-height: 1.45; }

.hm-why { background: #111; color: #fff; padding: clamp(2.75rem, 7vw, 5rem) 0; }
.hm-why__grid { display: grid; grid-template-columns: 1fr; gap: 2rem; align-items: center; }
.hm-why__img { width: 100%; height: auto; border-radius: 0; }
.hm-why__img--gfx { width: 461px; max-width: min(100%, 461px); margin: 0 auto; display: block; border-radius: 0; }
.hm-why p { color: #d8d8d8; max-width: 38rem; }
.hm-why a.btn { margin-top: 1.4rem; }
.hm-checklist { margin: 1.2rem 0 0; padding: 0; list-style: none; }
.hm-checklist li { margin-bottom: .6rem; color: #e6e6e6; }
.hm-checklist--zweispaltig li { display: flex; align-items: baseline; gap: .55rem;
  margin: 0; padding: .38rem 0; line-height: 1.45; }
.hm-checklist--zweispaltig .hm-check { flex: none; margin-right: 0; }
@media (min-width: 700px) {
  .hm-checklist--zweispaltig { display: grid; grid-template-columns: 1fr 1fr; column-gap: 2.2rem; }
}
.hm-checklist a { color: #fff; }

.hm-locgrid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
.hm-loccard { display: block; text-decoration: none; background: #fff; border-radius: 0; overflow: hidden; box-shadow: 0 1px 4px rgba(0,0,0,.09); transition: transform .15s ease; }
.hm-loccard:hover { transform: translateY(-2px); }
.hm-loccard img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.hm-loccard__body { display: block; padding: 1rem 1.1rem 1.15rem; }
.hm-loccard__title { display: block; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: 1.05rem; color: var(--fg); }
.hm-loccard__text { display: block; color: var(--muted); font-size: .9rem; margin: .3rem 0 .55rem; }
.hm-loccard__more { display: block; color: #dc001b; font-weight: 700; font-size: .82rem; text-transform: uppercase; letter-spacing: .08em; }

.hm-cta { background: #111; color: #fff; padding: clamp(2.75rem, 7vw, 5rem) 0; text-align: center; }
.hm-cta h2 { margin: 0 0 .6rem; font-size: clamp(1.6rem, 5vw, 2.4rem); font-weight: 500; }
.hm-cta p { color: #d8d8d8; max-width: 34rem; margin: 0 auto 1.5rem; }
.hm-cta p.hm-cta__tel { margin-top: 2.4rem; font-size: .95rem; }
@media (max-width: 699px) {
  .hm-cta p.hm-cta__tel { display: none; }
}
.hm-cta__tel a { color: #fff; white-space: nowrap; }
.hm-teamband { background: #0a0a0a; line-height: 0; }
.hm-teamband img { width: 100%; height: auto; }
.home + .site-footer { margin-top: 0; }

.hm-dcard--gross { grid-column: span 2; }
.hm-dcard--gross .hm-dcard__badge { position: absolute; top: .7rem; left: .7rem; right: auto; bottom: auto; z-index: 1;
  background: var(--fl-red); color: #fff; padding: .28rem .65rem;
  font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .68rem;
  letter-spacing: .1em; text-transform: uppercase; }
.hm-dcard--gross .hm-dcard__inhalt { position: absolute; left: 0; right: 0; bottom: 0;
  padding: 2.4rem .9rem .85rem; background: linear-gradient(transparent, rgba(0, 0, 0, .92)); }
.hm-dcard--gross .hm-dcard__titel { position: static; display: block; background: none; padding: 0;
  color: #fff; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 600;
  font-size: 1.5rem; letter-spacing: .04em; }
.hm-dcard--gross .hm-dcard__sub { position: static; display: block; background: none; padding: .2rem 0 0;
  color: #d6d6d6; font-family: var(--font); text-transform: none; letter-spacing: 0;
  font-size: .85rem; line-height: 1.45; }
.hm-dcard--gross .hm-dcard__cta { position: static; display: inline-block; background: var(--fl-red);
  margin-top: .7rem; padding: .45rem .9rem; color: #fff;
  font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .78rem;
  letter-spacing: .06em; text-transform: uppercase; transition: background .15s; }
.hm-dcard--gross:hover .hm-dcard__cta { background: #a00014; }
.hm-dcard--mehr { display: flex; align-items: center; justify-content: center; text-align: center;
  aspect-ratio: 16 / 10; padding: .6rem; background: #111; color: #fff; text-decoration: none;
  font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500;
  font-size: .92rem; letter-spacing: .05em; transition: background .15s; }
.hm-dcard--mehr:hover { background: var(--fl-red); }
@media (min-width: 700px) {
  .hm-dgrid { grid-template-columns: repeat(3, 1fr); gap: .9rem; }
  .hm-dcard--gross { grid-row: span 2; aspect-ratio: auto; height: 100%; }
  .hm-lounges { grid-template-columns: repeat(2, 1fr); }
  .hm-locgrid { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1000px) {
  .hm-dgrid { grid-template-columns: repeat(4, 1fr); }
  .hm-why__grid { grid-template-columns: 1.15fr .85fr; gap: 3rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
  html { scroll-behavior: auto; }
}

.visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

.kp-seite .backlink { margin-top: .5rem; }
.kp, .kp-ort, .kp-tag, .kp-beschreibungen { padding-top: 0; padding-bottom: 0; }
.kp-sub { color: var(--muted); margin: 0 0 1.4rem; }
.kp-meta { font-size: .82rem; color: var(--muted); margin: 0 0 1rem; }

.kp-filter { display: flex; flex-wrap: wrap; gap: .8rem 1.4rem; margin: 0 0 1.1rem; }
.kp-filter label { font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; display: flex; flex-direction: column; gap: .3rem; }
.kp-filter select { font: inherit; padding: .45rem .6rem; border: 1.5px solid var(--fg); border-radius: 0; background: #fff; min-width: 12rem; }
.kp-filter__reset { align-self: flex-end; padding: .5rem 1rem; background: transparent;
  border: 1px solid #bbb; border-radius: 0; cursor: pointer;
  font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .78rem;
  letter-spacing: .05em; text-transform: uppercase; color: var(--fg);
  transition: border-color .15s, background .15s; }
.kp-filter__reset:hover { border-color: var(--fg); background: #f3f3f3; }

.kp-tage ul { list-style: none; margin: 0 0 1.1rem; padding: .2rem 0; display: flex; gap: .4rem; overflow-x: auto; }
.kp-tage a { display: flex; align-items: center; justify-content: center; min-width: 3rem;
  padding: .5rem .95rem; border-radius: 0; background: #efefef; color: var(--fg);
  text-decoration: none; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500;
  transition: background .12s, color .12s; }
.kp-tage a:hover { background: #dedede; }
.kp-tage a.is-active, .kp-tage a[aria-current] { background: #dc001b; color: #fff; }

section.kp-tag { background: #fff; border: 1px solid var(--line); border-radius: 0;
  padding: 1.3rem 1.4rem 1.4rem; margin: 0 0 1rem; box-shadow: 0 4px 16px rgba(0, 0, 0, .05); }
.kp-tag__name { display: flex; align-items: center; gap: .6rem; margin: 0 0 .7rem;
  font-size: 1.15rem; font-weight: 500; }
.kp-tag__anzahl { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .68rem;
  letter-spacing: .06em; color: #fff; background: var(--fl-black);
  border-radius: 0; padding: .2rem .65rem; }
.kp-zu { margin: 0; color: var(--muted); }
.kp-leer { margin: 0; color: var(--muted); font-size: .92rem; }

.kp-kurse { list-style: none; margin: 0; padding: 0; }
.kp-kurs { display: grid; grid-template-columns: auto 1fr; gap: .15rem 1rem;
  padding: .6rem .6rem .6rem .8rem; border-left: 3px solid #d9d9d9;
  border-bottom: 1px solid var(--line); transition: background .12s; }
.kp-kurs:hover { background: #f7f7f7; }
.kp-kurs:last-child { border-bottom: 0; }
.kp-zeit { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-variant-numeric: tabular-nums; white-space: nowrap; font-size: .95rem; }
.kp-zeit span[aria-hidden] { color: #b5b5b5; padding: 0 .12rem; }
.kp-name { overflow-wrap: anywhere; align-self: center; }
.kp-name a { color: var(--fg); text-decoration: none; font-weight: 600; }
.kp-name a:hover { color: #dc001b; }
.kp-badges { display: inline-flex; flex-wrap: wrap; gap: .35rem; margin-left: .45rem; vertical-align: middle; }
.kp-badge, .kp-matte { font-size: .66rem; font-weight: 700; letter-spacing: .05em; padding: .14rem .55rem; border-radius: 0; }
.kp-badge { color: #555; border: 1px solid #bbb; background: #fff; }
.kp-matte { color: #444; border: 1px solid #999; background: #fff; }
.kp-kurs--zeitraum { color: var(--muted); background: #f5f5f5; border-left-color: transparent;
  border-bottom: 0; border-radius: 0; margin-bottom: .4rem; }
.kp-kurs--zeitraum:hover { background: #f5f5f5; }
.kp-kurs--zeitraum .kp-zeit { font-weight: 400; }
.kp-kurs--raus { opacity: .22; filter: grayscale(1); }
.kp-kurs--raus:hover { background: transparent; }
.kp-kurs[data-disziplin$="/mixed-martial-arts"] { border-left-color: #dc001b; }
.kp-kurs[data-disziplin$="/thai-boxen"] { border-left-color: #e07a00; }
.kp-kurs[data-disziplin$="/luta-livre"] { border-left-color: #0e7bbf; }
.kp-kurs[data-disziplin$="/boxen"] { border-left-color: #7a4dd8; }
.kp-kurs[data-disziplin$="/krav-maga"] { border-left-color: #3d3d3d; }
.kp-kurs[data-disziplin$="lil-dragon-lounge"] { border-left-color: #e6a700; }
.kp-kurs[data-disziplin$="thai-boxen-teenager-jugend-10-18-jahre"] { border-left-color: #0a9b60; }
.kp-kurs[data-disziplin$="ladies-lounge"] { border-left-color: #c2447f; }

.kp-status { margin-left: .5rem; font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.kp-kurs.is-now { border-left-color: #dc001b; background: #fdecee; }
.kp-kurs.is-now .kp-status { color: #b40016; }
.kp-kurs.is-soon { border-left-color: #008000; }
.kp-kurs.is-soon .kp-status { color: #006b00; }
.kp-kurs.is-past:not(.kp-kurs--zeitraum) { color: #595959; }
.kp-kurs.is-past:not(.kp-kurs--zeitraum) .kp-name a { color: #595959; }

.kp-legende { margin: .4rem 0 0; font-size: .85rem; color: var(--muted); }
.kp-legende summary { cursor: pointer; font-weight: 700; }
.kp-legende ul { margin: .5rem 0 0; padding-left: 1.2rem; }

.kp-intro { margin-top: 2rem; }
.kp-info { display: grid; grid-template-columns: 1fr; gap: 1.5rem; margin: 2rem 0 0; padding: 1.4rem; background: #f4f4f4; border-radius: 0; }
.kp-info__h { margin: 0 0 .6rem; font-size: 1.05rem; font-weight: 500; }
.kp-info__liste { list-style: none; margin: 0; padding: 0; }
.kp-info__liste li { margin-bottom: .25rem; }
.kp-downloads { margin: 1.6rem 0 0; }
.kp-downloads ul { padding-left: 1.2rem; }

.kp-standorte ul { list-style: none; margin: 0 0 1.6rem; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.kp-standorte a { display: block; padding: .7rem 1.4rem; border: 1.5px solid var(--fg); border-radius: 0; text-decoration: none; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; color: var(--fg); }
.kp-standorte a.is-active, .kp-standorte a[aria-current] { background: #dc001b; border-color: #dc001b; color: #fff; }
.kp-ort { margin: 0 0 2.5rem; }
.kp-ort__name { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: clamp(1.3rem, 2.6vw, 1.8rem); margin: 0 0 .8rem; }
.kp-ort__mehr { margin: .4rem 0 0; }
.kp-beschreibungen { margin-top: 2.5rem; }
.kp-beschreibungen h2 { font-size: clamp(1.3rem, 2.6vw, 1.8rem); font-weight: 500; margin: 0 0 1rem; }

.kp { max-width: 46rem; }
@media (min-width: 1000px) {
  .kp-tage a { padding: .65rem 1.15rem; font-size: 1.02rem; }
  .kp-info { grid-template-columns: 1fr 1fr; }
}

.kp-akkordeon { max-width: 46rem; }
.kp-akk { margin: 0 0 .5rem; border-radius: 0; overflow: hidden; }
.kp-akk summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .85rem 1.1rem; background: #222; color: #fff; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; letter-spacing: .03em; }
.kp-akk summary::-webkit-details-marker { display: none; }
.kp-akk summary::after { content: "+"; font-size: 1.25rem; line-height: 1; flex-shrink: 0; }
.kp-akk[open] summary { background: #dc001b; }
.kp-akk[open] summary::after { content: "\00d7"; }
.kp-akk summary:hover { background: #000; }
.kp-akk[open] summary:hover { background: #b40016; }
.kp-akk__body { border: 1px solid var(--line); border-top: 0; border-radius: 0; padding: .9rem 1.1rem; background: #fff; }
.kp-akk__body p { margin: 0 0 .8rem; }
.kp-akk__body p:last-child { margin-bottom: 0; }
.kp-akk__body a { color: var(--fg); font-weight: 700; }

.shell__main .hm-dgrid { grid-template-columns: repeat(2, 1fr); }
@media (min-width: 1000px) { .shell__main .hm-dgrid { grid-template-columns: repeat(3, 1fr); } }

.termine { list-style: none; margin: 0 0 1.5rem; padding: 0; }
.termine li { display: flex; gap: 1.1rem; align-items: baseline; padding: .7rem 0; border-bottom: 1px solid var(--line); }
.termine__datum { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; color: #dc001b; white-space: nowrap; min-width: 6.4rem; }
.termine li.termine--vorbei { opacity: .45; }
.termine li.termine--vorbei .termine__datum { color: var(--muted); }
.termine li.termine--naechster { background: rgba(0, 128, 0, .08); border-left: 4px solid var(--fl-green); padding-left: .8rem; padding-right: .5rem; }
.termine li.termine--naechster .termine__datum { color: var(--fl-green); }
.termine__badge { display: inline-block; margin-left: .6rem; padding: .1rem .5rem; vertical-align: middle;
  background: var(--fl-green); color: #fff; border-radius: 0;
  font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .68rem; text-transform: uppercase; letter-spacing: .05em; }
.termine__was strong { display: block; }
.termine__wo { color: var(--muted); font-size: .92rem; }

.anm-lead { font-size: clamp(1.05rem, 1.8vw, 1.25rem); }
.anm-vorteile { list-style: none; margin: 0 0 1.5rem; padding: 0; }
.anm-vorteile li { margin-bottom: .45rem; }
.anm-vorteile .hm-check { color: #0a7d22; }
.anm-card { display: flex; flex-direction: column; }
.anm-card .hm-loccard__body { display: flex; flex-direction: column; flex: 1; }
.anm-card .anm-btn { margin-top: auto; width: 100%; justify-content: center; }
.anm-card .hm-loccard__text { margin-bottom: 1rem; }
.prose a.btn, .prose .hm-loccard a.btn { text-decoration: none; color: #fff; }
.prose a.btn--secondary { color: var(--fg); }
.anm-grid { margin: 1rem 0 1.75rem; }
.anm-sekundaer { display: flex; flex-wrap: wrap; gap: .7rem; }

.kontakt-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 1.2rem; margin-top: .5rem; }
.kontakt-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--fl-red); padding: 1.2rem 1.2rem 1.1rem; }
.kontakt-card__eyebrow { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin: 0 0 .15rem; }
.kontakt-card__titel { font-size: 1.3rem; font-weight: 500; margin: 0 0 .7rem; }
.kontakt-card__titel a { color: inherit; text-decoration: none; }
.kontakt-card__titel a:hover { color: var(--fl-red); }
.kontakt-card__adresse { margin: 0 0 .55rem; font-size: .9rem; line-height: 1.55; }
.kontakt-card__tel { margin: 0 0 1rem; }
.kontakt-card__tel a { display: inline-flex; align-items: center; gap: .45rem; font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: 1rem; color: var(--fl-red); text-decoration: none; }
.kontakt-card__tel a:hover { color: #a00014; }
.kontakt-card__zwt { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin: 0 0 .3rem; }
.kontakt-card__zeiten { list-style: none; margin: 0 0 1.2rem; padding: 0; font-size: .84rem; }
.kontakt-card__zeiten li { padding: .35rem 0; border-top: 1px solid var(--line); }
.kontakt-card__zeiten .tage { display: block; font-weight: 700; }
.kontakt-card__zeiten .zeit { color: var(--muted); }
.kontakt-card__aktionen { margin-top: auto; display: flex; gap: .6rem; align-items: stretch; }
.kontakt-card__aktionen .ka { flex: 1; display: inline-flex; align-items: center; justify-content: center; text-align: center; padding: .6rem .5rem; font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .74rem; letter-spacing: .05em; text-transform: uppercase; text-decoration: none; }
a.ka--kursplan { background: var(--fl-red); color: #fff; text-decoration: none; }
a.ka--kursplan:hover { background: #a00014; opacity: 1; }
a.ka--route { border: 1px solid var(--fl-black); color: var(--fl-black); text-decoration: none; }
a.ka--route:hover { background: var(--fl-black); color: #fff; opacity: 1; }

.kontakt-cta { background: var(--fl-black); color: #fff; border-top: 4px solid var(--fl-green); padding: clamp(1.5rem, 4vw, 2.4rem); }
.kontakt-cta__titel { font-size: clamp(1.25rem, 2.4vw, 1.7rem); font-weight: 500; letter-spacing: .02em; margin: 0 0 .6rem; }
.kontakt-cta__text { color: #c9c9c9; line-height: 1.6; margin: 0 0 1.4rem; max-width: 40rem; }
.kontakt-cta .btn--tel { background: transparent; border: 1px solid #4a4a4a; }
.kontakt-cta .btn--tel:hover { background: #fff; color: var(--fl-black); }
.contact-cta { align-items: stretch; }
.contact-cta .btn { display: inline-flex; align-items: center; justify-content: center; gap: .55rem; }
@media (max-width: 560px) {
  .kontakt-cta .contact-cta { flex-direction: column; }
  .kontakt-cta .contact-cta .btn { width: 100%; }
}

.consent { position: fixed; inset: 0; z-index: 60;
  display: flex; align-items: flex-end; justify-content: center;
  padding: 1rem clamp(.8rem, 2vw, 1.5rem) clamp(.8rem, 2vw, 1.5rem);
  background: rgba(5, 5, 5, .55); backdrop-filter: blur(3px);
  animation: consent-blende .25s ease-out; }
.consent__box { width: 100%; max-width: 34rem; max-height: 100%; display: flex; flex-direction: column;
  background: var(--fl-black); color: #fff; border-top: 4px solid var(--fl-red);
  padding: clamp(1.2rem, 3vw, 1.7rem) clamp(1.1rem, 3vw, 1.8rem) clamp(1.1rem, 3vw, 1.5rem);
  box-shadow: 0 24px 70px rgba(0, 0, 0, .55);
  animation: consent-rein .32s cubic-bezier(.2, .8, .3, 1); }
.consent__inhalt { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding-right: .6rem;
  scrollbar-width: thin; scrollbar-color: #444 transparent; }
.consent__inhalt:focus-visible { outline: 1px solid #666; outline-offset: 2px; }
.consent__aktionen { flex: none; padding-top: .3rem; }
.consent__titel { margin: 0 0 .5rem; font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500;
  text-transform: uppercase; letter-spacing: .04em; font-size: 1.25rem; line-height: 1.15; }
.consent__text { margin: 0 0 .55rem; font-size: .86rem; line-height: 1.6; color: #cfcfcf; }
.consent__rechtslinks { margin: 0 0 1.1rem; font-size: .78rem; color: #9a9a9a; }
.consent__rechtslinks a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.consent__rechtslinks a:hover { color: var(--fl-red); }
.consent__dienste { margin: 0 0 1.2rem; border-top: 1px solid #262626; }
.consent__dienst { display: flex; gap: .9rem; align-items: flex-start; cursor: pointer;
  padding: .8rem .2rem; border-bottom: 1px solid #262626; transition: background .15s; }
.consent__dienst:hover { background: #161616; }
.consent__dienst--pflicht, .consent__dienst--pflicht input { cursor: default; }
.consent__dienst input { appearance: none; -webkit-appearance: none; flex: none;
  width: 2.5rem; height: 1.35rem; margin: .15rem 0 0; border-radius: 0;
  background: #3c3c3c; position: relative; cursor: pointer; transition: background .18s; }
.consent__dienst input::before { content: ""; position: absolute; top: 3px; left: 3px;
  width: calc(1.35rem - 6px); height: calc(1.35rem - 6px); border-radius: 0;
  background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .4); transition: transform .18s; }
.consent__dienst input:checked { background: var(--fl-green); }
.consent__dienst input:checked::before { transform: translateX(1.15rem); }
.consent__dienst input:disabled { opacity: .55; }
.consent__dienst input:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.consent__dienst-text { font-size: .82rem; line-height: 1.5; }
.consent__dienst-text strong { display: block; font-weight: 700; letter-spacing: .01em; }
.consent__dienst-text span { color: #a8a8a8; }
.consent__aktionen { display: flex; flex-wrap: wrap; align-items: stretch; gap: .6rem; }
.consent__btn { display: inline-flex; align-items: center; justify-content: center;
  flex: 1 1 auto; min-height: 2.9rem; padding: .6rem 1.2rem;
  font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500;
  font-size: .82rem; letter-spacing: .05em; text-transform: uppercase;
  border: 1px solid transparent; border-radius: 0; cursor: pointer;
  transition: background .15s, color .15s; }
.consent__btn--voll { background: #fff; color: var(--fl-black); }
.consent__btn--voll:hover { background: #dcdcdc; }
.consent__btn--leise { background: transparent; color: #fff; border-color: #4a4a4a; }
.consent__btn--leise:hover { border-color: #fff; }
.consent__box { position: relative; }
.consent__schliessen { position: absolute; top: .55rem; right: .6rem;
  width: 2rem; height: 2rem; display: inline-flex; align-items: center; justify-content: center;
  background: transparent; border: 0; border-radius: 0; color: #9a9a9a;
  font-size: 1rem; line-height: 1; cursor: pointer; }
.consent__schliessen:hover { color: #fff; }
.consent-badge { position: fixed; left: 0; bottom: 0; z-index: 55;
  background: var(--fl-black); color: #cfcfcf; border: 1px solid #333; border-left: 0; border-bottom: 0;
  padding: .4rem .8rem; font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500;
  font-size: .68rem; letter-spacing: .06em; text-transform: uppercase;
  cursor: pointer; opacity: .82; transition: opacity .15s, color .15s; }
.consent-badge:hover { opacity: 1; color: #fff; }
@keyframes consent-blende { from { opacity: 0; } }
@keyframes consent-rein { from { opacity: 0; transform: translateY(22px); } }
@media (max-width: 560px) {
  .consent { padding: 0; align-items: flex-end; }
  .consent__box { max-width: none; }
  .consent__aktionen { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  .consent, .consent__box { animation: none; }
}

.buchen-block { display: grid; gap: .8rem; max-width: 42rem; margin: 0 auto 1.4rem; }
.bb-haupt { display: grid; gap: .8rem; }
.bb-card { display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: .35rem; text-align: center; padding: 1.4rem 1.2rem; text-decoration: none;
  transition: transform .15s ease, box-shadow .15s ease, background .15s; }
.bb-card:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(0, 0, 0, .35); }
.bb-card__titel { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 600; font-size: 1.1rem;
  letter-spacing: .04em; text-transform: uppercase; line-height: 1.2; }
.bb-card__sub { font-size: .82rem; line-height: 1.45; max-width: 22rem; }
.bb-card--wa { background: var(--fl-green); color: #fff; }
.bb-card--wa:hover { background: #016b01; }
.bb-card--wa .bb-card__sub { color: #eef8ee; }
.bb-card--abo { background: #fff; color: var(--fl-black); }
.bb-card--abo .bb-card__titel { color: var(--fl-red); }
.bb-card--abo .bb-card__sub { color: #555; }
.bb-neben { display: flex; flex-wrap: wrap; gap: .6rem; align-items: stretch; }
.bb-btn { flex: 1 1 0; display: flex; align-items: center; justify-content: center; text-align: center;
  min-height: 2.9rem; padding: .6rem .9rem; text-decoration: none;
  background: transparent; color: #cfcfcf; border: 1px solid #4a4a4a;
  font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .78rem;
  letter-spacing: .05em; text-transform: uppercase; transition: border-color .15s, color .15s; }
.bb-btn:hover { border-color: #fff; color: #fff; }
.bb-btn--video::before { content: "▶"; margin-right: .5rem; font-size: .7em; }
.bb-btn--tel { display: none; }
@media (max-width: 699px) {
  .bb-btn--tel { display: flex; }
}
@media (min-width: 700px) {
  .bb-haupt { grid-template-columns: 1fr 1fr; }
}

.video-optin { margin: 1.2rem 0; max-width: 860px; }
.video-optin__media { position: relative; display: block; cursor: pointer; }
.video-optin__media img { display: block; width: 100%; height: auto; }
.video-optin__media::after { content: ""; position: absolute; inset: 0;
  background: rgba(5, 5, 5, .72); }
.video-optin__overlay { position: absolute; inset: 0; z-index: 1;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: .6rem; padding: 1rem; text-align: center; }
.video-optin__pitch-titel { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 600;
  text-transform: uppercase; letter-spacing: .03em; color: #fff;
  font-size: clamp(1.15rem, 2.8vw, 1.8rem); line-height: 1.15;
  text-shadow: 0 2px 10px rgba(0, 0, 0, .7); }
.video-optin__pitch { color: #f2f2f2; font-size: clamp(.82rem, 1.6vw, .95rem); line-height: 1.5;
  max-width: 34rem; text-shadow: 0 1px 6px rgba(0, 0, 0, .7); }
.video-optin__btn { display: inline-flex; align-items: center; gap: .55rem;
  margin-top: .4rem; padding: .8rem 1.5rem;
  background: var(--fl-red); color: #fff; border: 0; border-radius: 0; cursor: pointer;
  font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .9rem;
  letter-spacing: .05em; text-transform: uppercase; transition: background .15s; }
.video-optin__btn::before { content: "▶"; font-size: .75em; }
.video-optin__media:hover .video-optin__btn { background: #a00014; }
@media (max-width: 560px) {
  .video-optin__pitch { display: none; }
}
.video-optin__hinweis { margin: .45rem 0 0; font-size: .78rem; color: var(--muted); }
.video-optin__player { aspect-ratio: 16 / 9; background: #000; }
.video-optin__player iframe { width: 100%; height: 100%; border: 0; display: block; }
.video-optin__cta { display: flex; align-items: center; justify-content: center; gap: .5rem;
  margin-top: .8rem; min-height: 3rem; padding: .7rem 1.2rem;
  background: var(--fl-green); color: #fff !important; text-decoration: none;
  font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .9rem;
  letter-spacing: .05em; text-transform: uppercase; transition: background .15s; }
.video-optin__cta:hover { background: #016b01; }
.video-optin__cta::after { content: "↓"; font-size: .9em; }

.leise-aktionen { display: flex; flex-wrap: wrap; gap: .7rem; }
a.btn-leise { display: inline-flex; align-items: center; justify-content: center;
  min-height: 2.75rem; padding: .55rem 1.3rem;
  border: 1px solid #bbb; background: transparent; color: var(--fg);
  text-decoration: none; font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500;
  font-size: .8rem; letter-spacing: .05em; text-transform: uppercase;
  transition: border-color .15s, background .15s; }
a.btn-leise:hover { border-color: var(--fg); background: #f3f3f3; opacity: 1; }

.page-joomla .formContainer { border: 0; margin: 0; padding: 0; min-width: 0; }
.page-joomla .formContainer .uk-grid { display: block; }
.page-joomla .formContainer [class*="uk-width"] { width: auto; }
.page-joomla .rsform-block { margin: 0 0 1.15rem; }
.page-joomla .rsform-block > .formControlLabel {
  display: block; margin: 0 0 .4rem;
  font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .8rem;
  letter-spacing: .08em; text-transform: uppercase;
}
.page-joomla .formRequired { color: var(--fl-red); margin-left: .15rem; }
.page-joomla .formControls { min-width: 0; }
.page-joomla .rsform-input-box, .page-joomla .rsform-text-box,
.page-joomla .rsform-select-box, .page-joomla .rsform-calendar-box {
  font: inherit; color: var(--fg); background: #fff;
  border: 1.5px solid var(--line); border-radius: 0; padding: .7rem .9rem;
  width: 100%; max-width: none; box-sizing: border-box;
}
.page-joomla .rsform-text-box { resize: vertical; min-height: 8rem; line-height: 1.5; }
.page-joomla .rsform-input-box:focus-visible, .page-joomla .rsform-text-box:focus-visible,
.page-joomla .rsform-select-box:focus-visible {
  outline: 2px solid var(--fl-red); outline-offset: 2px; border-color: var(--fl-red);
}
.page-joomla .rsfp-fieldset { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; }
.page-joomla .rsfp-fieldset label { display: inline-flex; align-items: flex-start; gap: .5rem; font-size: .95rem; line-height: 1.5; cursor: pointer; }
.page-joomla .rsform-radio, .page-joomla .rsform-checkbox { margin: .3rem 0 0; accent-color: var(--fl-red); flex-shrink: 0; }
.page-joomla .rsfp-fieldset label small { font-size: .85rem; color: inherit; }
.page-joomla .rsform-block-wejscie ._kontakt { display: none; }
.page-joomla .rsform-block-wejscie p, .page-joomla .rsform-block-wejscie li { font-size: .88rem; line-height: 1.55; }
.page-joomla .rsform-block-trenner hr { border: 0; border-top: 1px solid var(--line); margin: 1.4rem 0; }
.page-joomla .rsform-block-capcha img { display: block; max-width: 100%; height: auto; border: 1.5px solid var(--line); background: #fff; margin: 0 0 .6rem; }
.page-joomla .rsform-block-capcha .rsform-input-box { max-width: 14rem; }
.page-joomla .rsform-captcha-box { display: block; width: 14rem; max-width: 100%; box-sizing: border-box; padding: .7rem .9rem; font: inherit; color: var(--fg); background: #fff; border: 1.5px solid var(--line); border-radius: 0; }
.page-joomla .rsform-block-capcha a { display: inline-block; font-size: .85rem; margin: .5rem 0 0; }
.page-joomla .rsform-block-senden > .formControlLabel { display: none; }
.page-joomla .rsform-submit-button, .page-joomla .rsform-button {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  padding: .9rem 2rem; background: var(--fl-red); color: #fff;
  font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; text-transform: uppercase;
  letter-spacing: .05em; font-size: .9rem; border: 0; border-radius: 0; cursor: pointer;
  width: auto; min-width: 12rem; transition: background .15s ease;
}
.page-joomla .rsform-submit-button:hover, .page-joomla .rsform-button:hover { background: #b80017; }
.page-joomla .rsform-button { background: var(--btn-2); color: var(--fg); }
.page-joomla .rsform-button:hover { background: #cfcfcf; }
.page-joomla .formError, .page-joomla .formRed { color: var(--fl-red); font-size: .85rem; }
.page-joomla .formValidation { display: block; }
.page-joomla .rsform-block .formError { margin-top: .3rem; }
.page-joomla .rsform-thankyou, .page-joomla .rsform-block-thankyou { line-height: 1.6; }
.page-joomla .kontakt-formular { margin: 0 0 1.6rem; }
.page-joomla .kontakt-formular .rsform-block-trenner hr { border-top-color: var(--dark-line); }
.page-joomla .kontakt-formular .rsform-block-wejscie p { color: var(--dark-muted); }
.page-joomla .kontakt-formular .formError, .page-joomla .kontakt-formular .formRed { color: #ff7b8a; }
.page-joomla .kontakt-formular a { color: #fff; }
.page-joomla .formContainer h2, .page-joomla form > h2 { font-size: 1.3rem; margin: 0 0 1rem; }


.shell__main .hero__title { font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 500; letter-spacing: 0; line-height: 1.1; margin: 0 0 .8rem; }
.shell__main .hero__body { margin-left: 0; max-width: 42rem; }
.shell__main .hero__lead { font-size: 1.02rem; margin: 0 0 .5rem; }
.shell__main .eyebrow { margin-bottom: .6rem; }
.shell__main .band { padding-top: .5rem; }
.shell__main .cardgrid { margin-top: 1.2rem; gap: 1.6rem 1.4rem; }
.shell__main .card { padding-top: 0; border-top: 0; }
.card__img, .card__ph { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; margin: 0 0 .85rem; background: #e6e6e6; }
.card__ph { display: flex; align-items: center; justify-content: center; background: var(--fl-black); border-top: 4px solid var(--fl-red); }
.card__ph .lgo { font-size: 1.15rem; opacity: .55; }
.shell__main .card__title { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: 1.05rem; letter-spacing: .01em; line-height: 1.25; margin: 0 0 .4rem; }
.shell__main .card__cat { font-size: .72rem; letter-spacing: .1em; margin-bottom: .35rem; }
.shell__main .card__more { margin-top: .7rem; font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .78rem; letter-spacing: .06em; color: var(--fl-red); }
.disziplin__courses-title { font-size: clamp(1.3rem, 2.4vw, 1.7rem); font-weight: 500; letter-spacing: 0; line-height: 1.15; margin: 2.2rem 0 1rem; }
.news-item .prose p, .page .prose p { margin: 0 0 1rem; line-height: 1.6; }
.prose a { color: var(--fl-red); }
.prose img { max-width: 100%; height: auto; }
.card--portrait .card__img, .card--portrait .card__ph { aspect-ratio: 3 / 4; object-position: top; }
.card__img { height: auto; }
.prose img { display: block; width: 100%; max-width: 100%; height: auto; margin: 1.75rem 0; }
.prose img + img, .prose div > div + div > img:first-child { margin-top: 1.25rem; }
.prose div > div + div { margin-top: 1rem; }
.prose div > div:has(> img:only-child) + div:has(> img:only-child) { margin-top: 0; }
.prose figure { margin: 1.75rem 0; }
.prose img { border-top: 4px solid var(--fl-red); }
.news-item__image { display: block; width: 100%; height: auto; margin: 0 0 1.5rem; border-top: 4px solid var(--fl-red); }
.shell__main .cta-strip, .shell__main .band--dark.cta-strip { padding: clamp(2.2rem, 4.5vw, 3.25rem) 0 clamp(2rem, 4vw, 3rem); }
.shell__main .cta-strip .wrap { padding-left: clamp(1.6rem, 3.5vw, 3rem); padding-right: clamp(1.6rem, 3.5vw, 3rem); }
.shell__main .cta-strip__title { margin-bottom: .8rem; }
.sb-box { padding: clamp(1.6rem, 2.6vw, 2.1rem); }
.sb-box--banner { padding: 0; }
.kontakt-cta { padding: clamp(2.2rem, 4.5vw, 3.25rem) clamp(1.6rem, 3.5vw, 3rem) clamp(2rem, 4vw, 3rem); }
.consent__box { padding: clamp(1.6rem, 3vw, 2.2rem) clamp(1.6rem, 3vw, 2.2rem) clamp(1.4rem, 3vw, 2rem); }
.shell__main img:not([src$=".svg"]) { border-top: 4px solid var(--fl-red); }
.hm-dcard { border-top: 4px solid var(--fl-red); }
.hm-loccard img, .hm-teamband img { border-top: 4px solid var(--fl-red); }
.prose .hm-locgrid .hm-loccard > img:first-child { margin: 0; }
.prose .hm-locgrid > div + div { margin-top: 0; }
.kp-seite { padding: clamp(1.8rem, 3.5vw, 2.75rem) 0 clamp(2.5rem, 5vw, 4rem); }
.kp-ort__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.kp-ort__plan, .kp-ort__side { min-width: 0; }
.kp-ort__grid .kp { max-width: none; }
.kp-ort__side { padding: clamp(1.6rem, 2.6vw, 2.1rem); }
.kp-side__h { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: 1.02rem; margin: 0 0 .6rem; color: #fff; }
.kp-side__h + .kp-side__h, .kp-side__liste + .kp-side__h, .kp-side__adr + .kp-side__h { margin-top: 1.4rem; }
.kp-side__liste { list-style: none; margin: 0; padding: 0; font-size: .9rem; }
.kp-side__liste li { display: flex; justify-content: space-between; gap: 1rem; padding: .35rem 0; border-bottom: 1px solid var(--dark-line); }
.kp-side__liste li:last-child { border-bottom: 0; }
.kp-side__liste strong { font-weight: 400; color: var(--dark-muted); }
.kp-side__liste span { text-align: right; white-space: nowrap; flex-shrink: 0; }
.kp-side__adr { margin: 0; font-size: .9rem; line-height: 1.6; }
.kp-side__adr a { color: #fff; }
.kp-side__dl { margin: 0; padding: 0; list-style: none; font-size: .9rem; }
.kp-side__dl li { margin: 0 0 .35rem; }
.kp-side__dl a { color: #fff; }
.kp-side__btn { width: 100%; margin-top: 1.4rem; }
.kp-akkordeon { max-width: none; }
@media (min-width: 64rem) {
  .kp-ort__grid { grid-template-columns: minmax(0, 1fr) 20rem; gap: 2rem; }
  .kp-akkordeon { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; align-items: start; }
}
.kp-ort__plan .kp-intro { margin-top: 1.8rem; }
.kp-andere { margin-top: 2.5rem; }
.kp-andere__h { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: clamp(1.2rem, 2.2vw, 1.5rem); margin: 0 0 .8rem; }
.kp-andere ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.kp-andere a { display: block; padding: .7rem 1.4rem; border: 1.5px solid var(--fg); text-decoration: none; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; color: var(--fg); }
.kp-andere a:hover { background: var(--fg); color: #fff; }

.sb-icons { list-style: none; margin: 0; padding: 0; display: flex; gap: .6rem; }
.sb-icons a { display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border: 1.5px solid var(--line); color: var(--fg); transition: background .15s, color .15s, border-color .15s; }
.sb-icons a:hover { background: var(--fl-black); border-color: var(--fl-black); color: #fff; }

.sbB { display: grid; gap: 1rem; }
.sbB__start { background: #fff; color: var(--fg); padding: clamp(1.5rem, 2.4vw, 1.9rem); box-shadow: 0 1px 4px rgba(0,0,0,.08); }
.sbB__eyebrow { margin: 0 0 .25rem; font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #277012; }
.sbB__title { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: 1.9rem; line-height: 1.05; margin: 0 0 .6rem; color: var(--fg); }
.sbB__title span { color: var(--fl-red); }
.sbB__text { margin: 0 0 1.2rem; font-size: .92rem; line-height: 1.55; color: var(--muted); }
.sbB__checks { list-style: none; margin: 0 0 1.4rem; padding: 1.1rem 0 .2rem; border-top: 1px solid var(--line); font-size: .9rem; }
.sbB__checks li { display: flex; align-items: center; gap: .8rem; padding: .42rem 0; }
.sbB__ico { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 2.1rem; height: 2.1rem; background: #fdecee; color: var(--fl-red); }
.sbB__ico svg { width: 1.15rem; height: 1.15rem; }
.sbB__btn { width: 100%; margin-top: .55rem; padding: .85rem 1rem; font-size: .88rem; }
.sbB__btn svg { flex-shrink: 0; }
.sbB__orte-label { margin: 1.4rem 0 .5rem; padding-top: 1.1rem; border-top: 1px solid var(--line); font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.sbB__orte { margin: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.sbB__orte a { display: inline-block; padding: .38rem .8rem; border: 1.5px solid var(--fg); color: var(--fg); text-decoration: none; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-size: .8rem; letter-spacing: .04em; transition: background .15s, border-color .15s, color .15s; }
.sbB__orte a:hover { background: var(--fl-red); border-color: var(--fl-red); color: #fff; }
.sbB__card { background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.08); padding: clamp(1.4rem, 2.2vw, 1.8rem); }
.sbB__h { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: 1.05rem; margin: 0 0 .8rem; padding-left: .7rem; border-left: 4px solid var(--fl-red); line-height: 1.2; }
.sbB__zeiten { list-style: none; margin: 0 0 .9rem; padding: 0; font-size: .86rem; }
.sbB__zeiten li { display: flex; justify-content: space-between; gap: .8rem; padding: .35rem 0; border-bottom: 1px solid var(--line); }
.sbB__zeiten li:last-child { border-bottom: 0; }
.sbB__zeiten span { color: var(--muted); }
.sbB__zeiten strong { font-weight: 500; text-align: right; white-space: nowrap; flex-shrink: 0; }
.sbB__adr { margin: 0 0 .9rem; font-size: .86rem; line-height: 1.55; color: var(--muted); }
.sbB__adr a { color: var(--fg); }
.sbB__standorte, .sbB__news { list-style: none; margin: 0 0 .9rem; padding: 0; }
.sbB__standorte li, .sbB__news li { border-bottom: 1px solid var(--line); }
.sbB__standorte li:last-child, .sbB__news li:last-child { border-bottom: 0; }
.sbB__standorte a { display: flex; justify-content: space-between; gap: .8rem; padding: .5rem 0; text-decoration: none; color: var(--fg); font-size: .88rem; }
.sbB__standorte strong { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; }
.sbB__standorte span { color: var(--muted); text-align: right; }
.sbB__standorte a:hover strong { color: var(--fl-red); }
.sbB__news li { padding: .5rem 0; }
.sbB__news a { display: block; color: var(--fg); text-decoration: none; font-size: .88rem; font-weight: 600; line-height: 1.4; }
.sbB__news a:hover { color: var(--fl-red); }
.sbB__news span { display: block; font-size: .76rem; color: var(--muted); margin-top: .15rem; }
.sbB__more { display: inline-block; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: .85rem; letter-spacing: .04em; color: var(--fl-red); text-decoration: none; }
.sbB__more::after { content: " \2192"; }
.sbB__more:hover { text-decoration: underline; text-underline-offset: 3px; }
.sbB__foot { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .2rem .2rem 0; }
.sbB__seminare { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: .9rem; color: var(--fg); text-decoration: none; border-bottom: 2px solid var(--fl-red); padding-bottom: .1rem; }
.sbB__seminare:hover { color: var(--fl-red); }

.band-hero { max-width: 1240px; margin: 0 auto; padding: 1.5rem clamp(1.25rem, 5vw, 4rem) 0; }
.band-hero__title { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 500; margin: 0 0 1.2rem; }
.band-hero__img { display: block; width: 100%; height: auto; aspect-ratio: 21 / 9; object-fit: cover; object-position: center; border-top: 4px solid var(--fl-red); }
.shell--band { padding-top: 2.25rem; }
.shell--band .sidebar { top: 132px; }
@media (max-width: 700px) { .band-hero__img { aspect-ratio: 16 / 10; } }
.band-hero__img.band-hero__img--voll { aspect-ratio: auto; }

.band-hero__title + .lnav { margin-top: -.35rem; }
.lnav { margin: 0 0 1.2rem; }
.lnav__back { display: inline-block; margin: 0 0 .6rem; font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); text-decoration: none; transition: color .12s ease; }
.lnav__back:hover { color: var(--fg); }
.lnav__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.lnav__item { display: flex; align-items: center; min-height: 2.3rem; padding: .35rem .85rem; border: 1px solid var(--line); border-radius: 0; background: #fff; color: var(--fg); font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: .85rem; text-transform: uppercase; letter-spacing: .04em; text-decoration: none; white-space: nowrap; transition: border-color .12s ease; }
.lnav__item:hover { border-color: var(--fg); }
.lnav__item[aria-current="page"] { border-color: var(--fg); box-shadow: inset 0 -3px 0 var(--fl-red); }
@media (max-width: 700px) {
  .lnav__list { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch;
    margin: 0 calc(-1 * clamp(1.25rem, 5vw, 4rem)); padding: 0 clamp(1.25rem, 5vw, 4rem) .1rem;
    -webkit-mask-image: linear-gradient(to right, #000 88%, transparent); mask-image: linear-gradient(to right, #000 88%, transparent); }
  .lnav__list::-webkit-scrollbar { display: none; }
}

.kz, .shell__main section.kz { margin: 0 0 2.4rem; padding: 1.4rem clamp(1rem, 3vw, 1.7rem) 1.2rem; border: 1px solid var(--line); border-top: 4px solid var(--fl-red); background: #fff; }
.kz__kopf { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .7rem 1rem; margin: 0 0 .8rem; }
.kz__titel { margin: 0; font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: clamp(1.15rem, 2.2vw, 1.45rem); font-weight: 500; text-transform: uppercase; line-height: 1.2; }
.kz__live { display: inline-flex; align-items: center; gap: .55rem; margin: 0; padding: .45rem .8rem; border: 1px solid rgba(0, 128, 0, .28); background: #eff8ef; color: #0b5d0b; font-size: .86rem; font-weight: 600; }
.kz__live[hidden] { display: none; }
.kz__puls { flex: none; width: .55rem; height: .55rem; background: #0a8a0a; animation: kz-puls 1.8s ease-out infinite; }
@keyframes kz-puls { 0% { box-shadow: 0 0 0 0 rgba(10, 138, 10, .5); } 70% { box-shadow: 0 0 0 .5rem rgba(10, 138, 10, 0); } 100% { box-shadow: 0 0 0 0 rgba(10, 138, 10, 0); } }
@media (prefers-reduced-motion: reduce) { .kz__puls { animation: none; } }
.kz__fakten { display: flex; flex-wrap: wrap; gap: .35rem 1.3rem; margin: 0 0 1.1rem; padding: 0; list-style: none; font-size: .88rem; color: var(--muted); }
.kz__fakten strong { color: var(--fg); }
.kz__tab { width: 100%; border-collapse: collapse; table-layout: fixed; }
.kz__tab th, .kz__tab td { padding: .55rem .35rem; border-bottom: 1px solid var(--line); text-align: center; vertical-align: middle; }
.kz__tab thead th { padding-top: 0; border-bottom: 2px solid var(--fg); }
.kz__tab thead th:first-child, .kz__tab tbody th { width: 3.8rem; text-align: left; }
.kz__tab tbody tr:last-child > * { border-bottom: 0; }
.kz__ort { display: inline-flex; align-items: center; gap: .45rem; color: var(--fg); font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: .95rem; font-weight: 500; text-transform: uppercase; letter-spacing: .03em; text-decoration: none; }
.kz__ort::before { content: ""; width: .6rem; height: .6rem; background: #111; }
.kz__ort--dortmund::before { background: var(--fl-red); }
.kz__ort--bochum::before { background: goldenrod; }
.kz__ort:hover { text-decoration: underline; text-underline-offset: 3px; }
.kz__tab tbody th { font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: 1rem; font-weight: 500; text-transform: uppercase; }
.kz__tab abbr { text-decoration: none; }
.kz__heute { display: block; margin-top: .1rem; color: var(--fl-red); font-family: system-ui, sans-serif; font-size: .62rem; font-weight: 700; letter-spacing: .1em; }
.kz__heute[hidden] { display: none; }
.kz__tab tr.is-heute > * { background: #fdf2f3; }
.kz__slot { display: flex; flex-direction: column; align-items: center; width: 100%; max-width: 10rem; margin: 0 auto; padding: .3rem .55rem; border: 1px solid var(--line); background: #fff; line-height: 1.15; }
.kz__slot + .kz__slot { margin-top: .3rem; }
.kz__slot b { font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: 1.1rem; font-weight: 500; }
.kz__slot small { font-size: .72rem; color: var(--muted); }
.kz__kurs { display: block; margin-top: .2rem; font-size: .72rem; font-style: normal; font-weight: 600; color: var(--fg); line-height: 1.2; }
.kz__level { display: block; margin-top: .1rem; font-size: .64rem; font-style: normal; letter-spacing: .06em; color: var(--muted); }
.kz__legende { margin: .8rem 0 0; font-size: .8rem; color: var(--muted); }
.kz__legende strong { color: var(--fg); }
.kz__slot.is-naechst { border-color: #0a8a0a; box-shadow: inset 0 -3px 0 #0a8a0a; }
.kz__leer::before { content: ""; display: inline-block; width: 1rem; height: 1px; background: rgba(0, 0, 0, .25); vertical-align: middle; }
.kz__sparring { margin: 1rem 0 0; font-size: .88rem; }
.kz__fuss { margin: .55rem 0 0; font-size: .78rem; color: var(--muted); }
.kz__fuss a { color: var(--fl-red); text-decoration: none; }
.kz__fuss a:hover { text-decoration: underline; }
@media (max-width: 560px) {
  .kz__tab th, .kz__tab td { padding: .5rem .15rem; }
  .kz__tab thead th:first-child, .kz__tab tbody th { width: 2.6rem; }
  .kz__ort { gap: .3rem; font-size: .8rem; }
  .kz__ort::before { width: .5rem; height: .5rem; }
  .kz__slot { min-width: 0; width: 100%; padding: .3rem .2rem; }
  .kz__slot b { font-size: 1rem; }
  .kz__slot small { font-size: .66rem; }
}

.lpager { margin: 2.5rem 0 0; padding-top: 1.6rem; border-top: 1px solid var(--line); }
.lpager__title { margin: 0 0 1rem; font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: 1.2rem; font-weight: 500; text-transform: uppercase; }
.lpager__grid { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; }
.lpager__card { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 0; background: #fff; color: var(--fg); text-decoration: none; transition: border-color .12s ease; }
.lpager__card:hover { border-color: var(--fg); }
.lpager__card img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-top: 3px solid var(--fl-red); }
.lpager__dir { padding: .85rem 1rem 0; font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.lpager__name { padding: .15rem 1rem .95rem; font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: 1.05rem; text-transform: uppercase; letter-spacing: .03em; }
.lpager__card--next { text-align: right; }
.lpager--text .lpager__card { border-top: 3px solid var(--fl-red); }
.lpager--text .lpager__dir { padding-top: 1rem; }
.lpager__all { margin: 1rem 0 0; font-size: .85rem; font-weight: 700; }
.lpager__all a { color: var(--fl-red); text-decoration: none; }
.lpager__all a:hover { text-decoration: underline; }

.shell--band .shell__main .prose > :is(h2, h3):first-child,
.shell--band .shell__main .prose > :first-child > :is(h2, h3):first-child,
.shell--band .shell__main .prose > :first-child > :first-child > :is(h2, h3):first-child,
.shell--band .shell__main .prose > :first-child > :first-child > :first-child > :is(h2, h3):first-child,
.shell--band .shell__main .prose > :first-child > :first-child > :first-child > :first-child > :is(h2, h3):first-child,
.shell--band .shell__main .prose > :first-child > :first-child > :first-child > :first-child > :first-child > :is(h2, h3):first-child,
.shell--band .shell__main .prose > :first-child > :first-child > :first-child > :first-child > :first-child > :first-child > :is(h2, h3):first-child,
.shell--band .shell__main .prose > :first-child > :first-child > :first-child > :first-child > :first-child > :first-child > :first-child > :is(h2, h3):first-child,
.shell--band .shell__main .prose > :first-child > :first-child > :first-child > :first-child > :first-child > :first-child > :first-child > :first-child > :is(h2, h3):first-child { margin-top: 0; }
.shell--band .shell__main .wrap > :first-child { margin-top: 0; }

.team-card__role--tight { padding-bottom: .15rem; }
.team-card__role--tight + .team-card__meta { padding-top: 0; }

.fighter__head { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: clamp(1.5rem, 3vw, 2.5rem); align-items: start; margin-top: .5rem; }
.fighter__photo img { width: 100%; height: auto; display: block; }
.fighter__cat { margin: 0 0 .3rem; }
.fighter__cat a { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; color: var(--fl-red); text-decoration: none; letter-spacing: .04em; }
.fighter__cat a:hover { text-decoration: underline; text-underline-offset: 3px; }
.fighter .page-title { margin-bottom: 1.2rem; }
.fighter__specs { display: grid; grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr)); gap: .6rem; margin: 0 0 1.8rem; }
.fighter__specs > div { background: #f4f4f4; padding: .8rem .95rem; border-left: 4px solid var(--fl-red); }
.fighter__specs dt { font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin: 0 0 .2rem; }
.fighter__specs dd { margin: 0; font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: 1.1rem; line-height: 1.2; }
.fighter__h2 { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: 1.25rem; margin: 0 0 .7rem; padding-left: .7rem; border-left: 4px solid var(--fl-red); }
.fighter__erfolge { list-style: none; margin: 0 0 1.8rem; padding: 0; }
.fighter__erfolge li { display: flex; gap: .6rem; align-items: baseline; padding: .4rem 0; border-bottom: 1px solid var(--line); }
.fighter__erfolge li:last-child { border-bottom: 0; }
.fighter__erfolge span { color: #0a7d22; font-weight: 700; }
.fighter__links { display: flex; flex-wrap: wrap; gap: .6rem; margin: 0; }
@media (max-width: 700px) {
  .fighter__head { grid-template-columns: 1fr; }
  .fighter__photo { max-width: 300px; }
}
.fighter__erfolge-sub { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; color: var(--muted); padding-top: 1rem !important; border-bottom: 0 !important; }

.listing .cardgrid--news { margin-top: 0; gap: 1.5rem 1.25rem; }
.listing .listing__h2 + .listing__intro { margin-top: -.4rem; }
.news-archiv__anzahl { font-size: .78rem; font-weight: 400; letter-spacing: .06em; opacity: .75; margin-left: auto; }
.news-archiv__liste { list-style: none; margin: 0; padding: .4rem 0 .2rem; }
.news-archiv__liste li { border-bottom: 1px solid var(--line); }
.news-archiv__liste li:last-child { border-bottom: 0; }
.news-archiv__liste a { display: grid; grid-template-columns: 9.5rem minmax(0, 1fr); gap: .6rem 1rem; padding: .55rem .2rem; text-decoration: none; color: var(--fg); font-size: .92rem; line-height: 1.4; }
.news-archiv__liste a:hover .news-archiv__titel { color: var(--fl-red); }
.news-archiv__datum { color: var(--muted); font-size: .82rem; padding-top: .1rem; }
.news-archiv__titel { font-weight: 600; }
@media (max-width: 600px) { .news-archiv__liste a { grid-template-columns: 1fr; gap: .1rem; } }

.media-card__thumb { position: relative; display: block; }
.media-card__play { position: absolute; left: 50%; top: 50%; width: 3.2rem; height: 3.2rem; transform: translate(-50%, -60%); background: rgba(220,0,27,.92); display: flex; align-items: center; justify-content: center; }
.media-card__play::after { content: ""; border-style: solid; border-width: .55rem 0 .55rem .95rem; border-color: transparent transparent transparent #fff; margin-left: .2rem; }
.media-card:hover .media-card__play { background: #b80017; }
.media-card__count { position: absolute; right: .6rem; bottom: 1.4rem; background: rgba(0,0,0,.75); color: #fff; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-size: .72rem; letter-spacing: .06em; padding: .25rem .55rem; }
.media-item__eyebrow { margin-bottom: .3rem; color: var(--fl-red); letter-spacing: .12em; font-weight: 700; }
.media-item .page-title { margin-bottom: 1rem; }
.media-item__text { margin: 0 0 1.4rem; }
.media-item__video { max-width: none; margin: 0 0 1.6rem; }
.media-item__video .video-optin__media img { aspect-ratio: 16 / 9; object-fit: cover; }
.media-item__ph { display: block; aspect-ratio: 16 / 9; background: var(--fl-black); }
.media-item__weg { padding: 1rem 1.2rem; background: #f4f4f4; border-left: 4px solid var(--fl-red); margin: 0 0 1.4rem; }
.media-item__gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: .6rem; margin: 0 0 1.4rem; }
.media-item__gallery img, .shell__main .media-item__gallery img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-top: 0; margin: 0; }
@media (max-width: 600px) { .media-item__gallery { grid-template-columns: repeat(2, 1fr); } }

.kontakt-cta { background: #fff; color: var(--fg); border-top: 4px solid var(--fl-green); box-shadow: 0 1px 4px rgba(0,0,0,.08); }
.kontakt-cta__text { color: var(--muted); }
.kontakt-cta .btn--tel { background: transparent; border: 1.5px solid var(--fg); color: var(--fg); }
.kontakt-cta .btn--tel:hover { background: var(--fg); color: #fff; }
.page-joomla .kontakt-formular .rsform-block-trenner hr { border-top-color: var(--line); }
.page-joomla .kontakt-formular .rsform-block-wejscie p { color: var(--muted); }
.page-joomla .kontakt-formular .formError, .page-joomla .kontakt-formular .formRed { color: var(--fl-red); }
.page-joomla .kontakt-formular a { color: var(--fl-red); }
.kontakt-cta .bb-card--abo { background: #f4f4f4; }
.kontakt-cta .bb-card:hover { box-shadow: 0 8px 22px rgba(0, 0, 0, .14); }
.kontakt-cta .bb-btn { color: var(--fg); border-color: var(--line); }
.kontakt-cta .bb-btn:hover { border-color: var(--fg); color: var(--fg); background: #f4f4f4; }
.page-joomla .rsform-block-capcha img { max-width: 14rem; width: auto; }
.shell__main .rsform-block-capcha img { border-top: 0; }

.media-item__gallery img { cursor: zoom-in; transition: transform .2s ease, opacity .2s ease; }
.media-item__gallery img:hover, .media-item__gallery img:focus-visible { transform: scale(1.03); opacity: .92; outline: none; }
.media-item__gallery img:focus-visible { box-shadow: 0 0 0 3px var(--fl-red); }
html.lb-offen { overflow: hidden; }
.lb { border: 0; padding: 0; margin: 0; width: 100vw; height: 100vh; max-width: none; max-height: none; background: rgba(5,5,5,.985); color: #fff; }
.lb::backdrop { background: rgba(5,5,5,.985); }
.lb[open] { display: flex; flex-direction: column; }
.lb__stage { flex: 1; display: grid; grid-template-columns: 3.5rem minmax(0, 1fr) 3.5rem; align-items: center; min-height: 0; }
.lb__fig { margin: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; min-height: 0; padding: 1rem 0; }
.lb__img { max-width: 100%; max-height: calc(100vh - 7rem); width: auto; height: auto; object-fit: contain; border-top: 4px solid var(--fl-red); opacity: 0; transform: scale(.985); }
.lb__img.is-in { opacity: 1; transform: none; transition: opacity .22s ease, transform .22s ease; }
.lb__cap { margin-top: .6rem; font-size: .85rem; color: #cfcfcf; text-align: center; }
.lb__btn { background: transparent; border: 0; color: #fff; font-size: 3rem; line-height: 1; cursor: pointer; height: 100%; opacity: .75; transition: opacity .15s, background .15s; }
.lb__btn:hover, .lb__btn:focus-visible { opacity: 1; background: rgba(255,255,255,.06); outline: none; }
.lb__bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem 1.2rem; border-top: 1px solid rgba(255,255,255,.14); font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; letter-spacing: .06em; font-size: .85rem; }
.lb__close { background: transparent; border: 1.5px solid rgba(255,255,255,.5); color: #fff; padding: .45rem .9rem; font: inherit; cursor: pointer; }
.lb__close:hover, .lb__close:focus-visible { background: var(--fl-red); border-color: var(--fl-red); outline: none; }
@media (max-width: 600px) { .lb__stage { grid-template-columns: 2.4rem minmax(0, 1fr) 2.4rem; } .lb__btn { font-size: 2.2rem; } }
@media (prefers-reduced-motion: reduce) { .lb__img, .lb__img.is-in, .media-item__gallery img { transition: none; transform: none; } }

.impressum__grid { margin: 1.2rem 0 2.2rem; }
.impressum__firma { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: 1.15rem; line-height: 1.2; margin: .2rem 0 .5rem; }
.impressum__adr { margin: 0 0 .8rem; color: var(--muted); font-size: .92rem; line-height: 1.5; }
.impressum__dl { margin: 0; font-size: .9rem; }
.impressum__dl > div { padding: .4rem 0; border-top: 1px solid var(--line); }
.impressum__dl dt { font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin: 0 0 .1rem; }
.impressum__dl dd { margin: 0; overflow-wrap: anywhere; }
.impressum__dl a { color: var(--fg); }
.impressum__text { max-width: 46rem; }
.impressum__text h2 { font-size: 1.2rem; margin-top: 2rem; }

.media-nav { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; margin: 1.6rem 0 0; }
.media-nav__link { display: flex; flex-direction: column; gap: .25rem; padding: .9rem 1.1rem; background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--fl-red); text-decoration: none; color: var(--fg); transition: background .15s; }
.media-nav__link--next { text-align: right; align-items: flex-end; }
.media-nav__link:hover { background: #f4f4f4; }
.media-nav__label { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: .78rem; letter-spacing: .06em; color: var(--fl-red); }
.media-nav__title { font-weight: 600; font-size: .95rem; line-height: 1.35; }
.media-nav__pos { grid-column: 1 / -1; margin: .2rem 0 0; font-size: .85rem; color: var(--muted); text-align: center; }
.media-nav__pos a { color: var(--fg); }
@media (max-width: 560px) { .media-nav { grid-template-columns: 1fr; } .media-nav__link--next { text-align: left; align-items: flex-start; } }

.ds-toc { background: #f4f4f4; border-left: 4px solid var(--fl-red); padding: 1.1rem 1.4rem; margin: 0 0 2rem; }
.ds-toc__h { margin: 0 0 .5rem; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: 1rem; }
.ds-toc ol { margin: 0; padding: 0; list-style: none; columns: 2; column-gap: 2rem; }
.ds-toc li { margin: .2rem 0; break-inside: avoid; font-size: .92rem; }
.ds-toc a { color: var(--fg); }
.ds-toc a:hover { color: var(--fl-red); }
.prose h2[id^="abschnitt-"] { scroll-margin-top: 140px; }
@media (max-width: 600px) { .ds-toc ol { columns: 1; } }
.media-nav__sub { display: block; font-weight: 400; font-size: .8rem; color: var(--muted); margin-top: .1rem; }
.coach .media-nav, .fighter .media-nav { margin-top: 2.2rem; }

.partner-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: 1rem; margin: 0 0 1.5rem; }
.prose .partner-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--fl-red); text-decoration: none; color: var(--fg); transition: transform .15s ease, box-shadow .15s ease; }
.prose .partner-card:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(0,0,0,.12); opacity: 1; }
.partner-card__logo { display: flex; align-items: center; justify-content: center; height: 8rem; padding: 1.2rem 1.5rem; background: #fff; border-bottom: 1px solid var(--line); }
.prose .partner-card__logo img, .shell__main .partner-card__logo img { width: auto; max-width: 100%; max-height: 100%; height: auto; margin: 0; border-top: 0; object-fit: contain; }
.partner-card__body { display: flex; flex-direction: column; gap: .3rem; padding: 1rem 1.2rem 1.1rem; }
.partner-card__name { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: 1.05rem; }
.partner-card__text { font-size: .9rem; color: var(--muted); line-height: 1.5; }
.partner-card__url { margin-top: .3rem; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-size: .78rem; letter-spacing: .05em; color: var(--fl-red); }
.prose .link-liste { list-style: none; margin: 0 0 1.5rem; padding: 0; }
.prose .link-liste li { border-bottom: 1px solid var(--line); }
.prose .link-liste li:last-child { border-bottom: 0; }
.prose .link-liste a { display: flex; align-items: center; gap: .7rem; padding: .65rem .2rem; text-decoration: none; color: var(--fg); font-weight: 600; }
.prose .link-liste a::before { content: ""; flex-shrink: 0; width: .5rem; height: .5rem; background: var(--fl-red); }
.prose .link-liste a::after { content: "\2197"; margin-left: auto; color: var(--muted); font-weight: 400; }
.prose .link-liste a:hover { color: var(--fl-red); opacity: 1; }

.prose .ausb-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1.3rem; }
.prose .ausb-chips span { display: inline-block; padding: .4rem .9rem; border: 1.5px solid var(--fg); font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: .82rem; letter-spacing: .04em; }
.prose .ausb-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; margin: 1rem 0 2rem; }
.prose .ausb-card { background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--fl-red); padding: 1.3rem 1.4rem 1.2rem; }
.prose .ausb-card h3 { margin: 0 0 .6rem; font-size: 1.15rem; }
.prose .ausb-card p { margin: 0 0 .7rem; font-size: .95rem; }
.prose .ausb-card p:last-child { margin-bottom: 0; }
.prose .ausb-card ul { margin: 0 0 .9rem; padding-left: 1.1rem; font-size: .92rem; }
.prose .ausb-card li { margin: .2rem 0; }
.prose .ausb-split { display: grid; grid-template-columns: 1fr; gap: 1.5rem; align-items: start; margin: 1rem 0 1.5rem; }
.prose .ausb-split .bild-ki { margin: 0; }
.prose .ausb-split__text > :first-child { margin-top: 0; }
.prose .ausb-checks { list-style: none; margin: 0 0 1.2rem; padding: 0; }
.prose .ausb-checks li { position: relative; padding: .3rem 0 .3rem 1.6rem; border-bottom: 1px solid var(--line); }
.prose .ausb-checks li:last-child { border-bottom: 0; }
.prose .ausb-checks li::before { content: "\2713"; position: absolute; left: 0; top: .3rem; color: #0a7d22; font-weight: 700; }
.prose .ausb-steps { list-style: none; margin: 1rem 0 1.5rem; padding: 0; counter-reset: schritt; }
.prose .ausb-steps li { counter-increment: schritt; position: relative; padding: .7rem 0 .9rem 3.4rem; border-bottom: 1px solid var(--line); }
.prose .ausb-steps li:last-child { border-bottom: 0; }
.prose .ausb-steps li::before { content: counter(schritt); position: absolute; left: 0; top: .75rem; width: 2.4rem; height: 2.4rem; display: flex; align-items: center; justify-content: center; background: var(--fl-red); color: #fff; font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: 1.1rem; }
.prose .ausb-steps strong { display: block; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: 1.05rem; margin-bottom: .15rem; }
.prose .ausb-cta { background: #fff; border-top: 4px solid var(--fl-green); box-shadow: 0 1px 4px rgba(0,0,0,.08); padding: clamp(1.6rem, 3vw, 2.2rem); margin: 2rem 0 0; }
.prose .ausb-cta__h { margin: 0 0 .3rem; font-size: 1.5rem; }
.prose .ausb-cta__lead { margin: 0 0 1rem; color: var(--fl-red); font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; }
.prose .ausb-cta p { margin: 0 0 1rem; }
.prose .ausb-cta .anm-sekundaer { margin-bottom: 0; }
@media (min-width: 700px) { .prose .ausb-grid { grid-template-columns: 1fr 1fr; } .prose .ausb-split { grid-template-columns: 18rem minmax(0, 1fr); } }

.prose .kontakt-grid > div + div { margin-top: 0; }
.prose .kontakt-grid { margin-bottom: 1.8rem; }
.prose .kontakt-card .kontakt-card__titel { margin-top: 0; }
.prose .kontakt-card a.ka--kursplan { color: #fff; text-decoration: none; }
.prose .kontakt-card a.ka--kursplan:hover { opacity: 1; }
.prose .kontakt-card a.ka--route { color: var(--fl-black); text-decoration: none; }
.prose .kontakt-card a.ka--route:hover { color: #fff; opacity: 1; }


.lp { background: #fff; }
.lp .wrap { max-width: 1180px; }
.lp-eyebrow { margin: 0 0 .6rem; font-size: .74rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #8ec73b; }
.lp-eyebrow--dark { color: #277012; }
.lp-h2 { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: clamp(1.5rem, 3vw, 2.1rem); line-height: 1.1; margin: 0 0 1.2rem; }
.lp-h2--light { color: #fff; }
.lp-sub { margin: -.4rem 0 1.4rem; color: var(--muted); max-width: 46rem; }
.lp-hero__soft { margin: 1.4rem 0 0; font-size: .9rem; color: #cfcfcf; }
.lp-hero__soft a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.lp-hero__soft--dark { color: var(--muted); }
.lp-hero__soft--dark a { color: var(--fg); }
.lp-stats { background: #f4f4f4; border-bottom: 1px solid var(--line); }
.lp-stats__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem 2rem; padding-top: 1.6rem; padding-bottom: 1.6rem; }
.lp-stats__grid div { display: flex; flex-direction: column; gap: .15rem; padding-left: .9rem; border-left: 4px solid var(--fl-red); }
.lp-stats__grid strong { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: clamp(1.7rem, 3vw, 2.3rem); line-height: 1; }
.lp-stats__grid span { font-size: .88rem; color: var(--muted); }
.lp-steps { padding: clamp(2.4rem, 5vw, 4rem) 0 clamp(1.8rem, 4vw, 3rem); }
.lp-steps__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: 1rem; counter-reset: s; }
.lp-steps__list li { position: relative; background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--fl-red); padding: 1.4rem 1.4rem 1.3rem 4.4rem; }
.lp-steps__nr { position: absolute; left: 1.2rem; top: 1.3rem; width: 2.4rem; height: 2.4rem; display: flex; align-items: center; justify-content: center; background: var(--fl-red); color: #fff; font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: 1.15rem; }
.lp-steps__list strong { display: block; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: 1.15rem; margin: 0 0 .35rem; }
.lp-steps__list p { margin: 0; color: var(--muted); font-size: .95rem; line-height: 1.55; }
.lp-proof { background: #f4f4f4; padding: clamp(2.4rem, 5vw, 4rem) 0; }
.lp-proof__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.2rem; }
.lp-proof__head .lp-h2 { margin: 0; }
.lp-proof__rating { margin: 0; display: inline-flex; align-items: center; gap: .6rem; padding: .55rem .9rem; background: #fff; border: 1px solid var(--line); font-size: .9rem; }
.lp-proof__stars { color: #f5a623; letter-spacing: .05em; }
.lp-proof__grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
.lp-proof__card { margin: 0; background: #fff; border-left: 4px solid var(--fl-red); padding: 1.3rem 1.4rem; display: flex; flex-direction: column; gap: 1rem; }
.lp-proof__card p { margin: 0; font-size: .98rem; line-height: 1.55; }
.lp-proof__card footer { display: flex; align-items: center; gap: .8rem; font-size: .85rem; color: var(--muted); }
.lp-proof__avatar { width: 2.6rem; height: 2.6rem; border-radius: 50%; background: #ddd; flex-shrink: 0; }
.lp-proof__coaches { margin: 1.4rem 0 0; font-size: .92rem; color: var(--muted); }
.lp-proof__coaches a { color: var(--fg); font-weight: 600; }
.lp-video { padding: clamp(2.4rem, 5vw, 4rem) 0 clamp(1.4rem, 3vw, 2.4rem); }
.lp-video__inner .video-optin { max-width: none; margin: 0; }
.lp-faq { padding: clamp(1.8rem, 4vw, 3rem) 0 clamp(2.4rem, 5vw, 4rem); }
.lp-faq__inner { max-width: 900px; }
.lp-faq__item { border-top: 1px solid var(--line); }
.lp-faq__item:last-child { border-bottom: 1px solid var(--line); }
.lp-faq__item summary { list-style: none; cursor: pointer; padding: 1rem 2.4rem 1rem 0; position: relative; font-weight: 600; font-size: 1.02rem; }
.lp-faq__item summary::-webkit-details-marker { display: none; }
.lp-faq__item summary::after { content: "+"; position: absolute; right: .2rem; top: .75rem; font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: 1.6rem; color: var(--fl-red); }
.lp-faq__item[open] summary::after { content: "\2013"; }
.lp-faq__item p { margin: 0 0 1.1rem; color: var(--muted); line-height: 1.6; max-width: 46rem; }
.lp-final { background: var(--fl-black); color: #fff; padding: clamp(2.4rem, 5vw, 4rem) 0 clamp(2.8rem, 6vw, 5rem); border-top: 4px solid var(--fl-red); }
.lp-final__grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
.lp-final__card { background: #fff; color: var(--fg); display: flex; flex-direction: column; }
.lp-final__card img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; display: block; border-top: 4px solid var(--fl-red); }
.lp-final__body { padding: 1.2rem 1.3rem 1.3rem; display: flex; flex-direction: column; gap: .6rem; flex: 1; }
.lp-final__body h3 { margin: 0; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: 1.15rem; }
.lp-final__body p { margin: 0; font-size: .9rem; color: var(--muted); }
.lp-final__body p a { color: var(--fg); }
.lp-final__btn { margin-top: auto; width: 100%; padding: .9rem 1rem; }
.lp-final__more { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: .82rem; letter-spacing: .04em; color: var(--fl-red); text-decoration: none; }
.lp-final__fine { margin: 1.6rem 0 0; font-size: .85rem; color: #bdbdbd; }
.lp-final__fine a { color: #fff; }
.lp-final__cta { text-align: center; }
.lp-final__cta > p { max-width: 40rem; margin: 0 auto 1.4rem; color: #cfcfcf; }
.lp-final__cta .lp-hero__btns { justify-content: center; }
.lp-sticky { display: none; }
@media (max-width: 900px) {
  .lp-sticky { display: flex; align-items: center; justify-content: center; position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; padding: .95rem 1rem; background: var(--fl-red); color: #fff; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; letter-spacing: .04em; text-decoration: none; box-shadow: 0 -4px 14px rgba(0,0,0,.25); }
  .lp-sticky:hover { background: #b80017; }
  .lp { padding-bottom: 0; }
  .lp ~ .site-footer { padding-bottom: 5.6rem; }
}
@media (min-width: 700px) {
  .lp-stats__grid { grid-template-columns: repeat(4, 1fr); }
  .lp-steps__list, .lp-proof__grid, .lp-final__grid { grid-template-columns: repeat(3, 1fr); }
}
.lp-proof__ratings { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.lp-proof__ratings a { display: inline-flex; align-items: center; gap: .5rem; padding: .55rem .9rem; background: #fff; border: 1px solid var(--line); font-size: .88rem; color: var(--fg); text-decoration: none; }
.lp-proof__ratings a:hover { border-color: var(--fg); }
.lp-proof__ratings strong { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: 1.1rem; }
.lp-proof__ratings span:last-child { color: var(--muted); }
.lp-proof__quote-stars { margin: 0 0 -.4rem; color: #f5a623; letter-spacing: .05em; font-size: .95rem; }
.lp-proof__avatar { display: inline-flex; align-items: center; justify-content: center; background: var(--fl-black); color: #fff; font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: 1.1rem; }

.lp ~ .site-footer { margin-top: 0; }
.lp-coaches { margin: 1.8rem 0 0; }
.lp-coaches__h { margin: 0 0 .9rem; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: 1.05rem; }
.lp-coaches__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .8rem; }
.lp-coaches__card { display: flex; align-items: center; gap: .8rem; background: #fff; border: 1px solid var(--line); padding: .6rem .9rem .6rem .6rem; text-decoration: none; color: var(--fg); transition: border-color .15s; }
.lp-coaches__card:hover { border-color: var(--fg); }
.lp-coaches__card img { width: 3.8rem; height: 3.8rem; object-fit: cover; object-position: center 22%; flex-shrink: 0; border-top: 0; }
.lp-coaches__card strong { display: block; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: .95rem; line-height: 1.15; color: var(--fg); }
.lp-coaches__card > span { min-width: 0; }
.lp-coaches__card > span > span { display: block; font-size: .78rem; line-height: 1.2; color: var(--fl-red); text-transform: uppercase; letter-spacing: .05em; white-space: nowrap; }
.lp-coaches__more { margin: .8rem 0 0; font-size: .9rem; }
@media (min-width: 900px) { .lp-coaches__grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 599px) { .lp-coaches__grid { grid-template-columns: 1fr; } .lp-coaches__card { padding: .6rem .9rem .6rem .6rem; } .lp-coaches__card strong { font-size: 1rem; } }

.lp-hero7 { padding: 0; }
.lp-hero7 .hm-hero__media img { object-position: center 10%; }
.lp-hero7__label { margin: 0 0 .7rem; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; letter-spacing: .04em; }
.lp-hero7 .hm-hero__cta .btn { padding: .95rem 1.7rem; font-size: 1rem; }
.lp-hero7__rating { color: #e6e6e6; text-decoration: none; }
.lp-hero7__rating:hover { color: #fff; }
.lp-hero7 .lp-hero__soft { margin-top: 1.3rem; }
@media (min-width: 1000px) {
  .lp-hero7 .hm-hero__media img { object-position: 12% 10%; }
  .lp-hero7 .hm-hero__media::after { background: linear-gradient(90deg, #0a0a0a 8%, rgba(10,10,10,.82) 26%, rgba(10,10,10,.3) 46%, rgba(10,10,10,.05) 64%); }
  .lp-hero7 .hm-hero__lead, .lp-hero7 .hm-proof, .lp-hero7 .lp-hero__soft { text-shadow: 0 1px 6px rgba(0,0,0,.85); }
}
@media (min-width: 1200px) { .lp-hero7 .hm-hero__media img { object-position: 36% 10%; } }

.standort__tour iframe { display: block; width: 100%; height: clamp(260px, 42vw, 500px); border: 0; margin: 0 0 1.4rem; }
.standort__info { display: grid; grid-template-columns: 1fr; gap: 1.4rem; }
.standort__info-h { margin: 0 0 .5rem; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; font-size: 1.05rem; padding-left: .7rem; border-left: 4px solid var(--fl-red); }
.standort__info p { margin: 0 0 1rem; line-height: 1.6; }
.standort__info p a { color: var(--fg); }
.standort__info .anm-sekundaer { margin: 0; }
.standort__zeiten { list-style: none; margin: 0; padding: 0; font-size: .95rem; }
.standort__zeiten li { display: flex; justify-content: space-between; gap: 1rem; padding: .4rem 0; border-bottom: 1px solid var(--line); }
.standort__zeiten li:last-child { border-bottom: 0; }
.standort__zeiten span { color: var(--muted); }
.standort__zeiten strong { font-weight: 500; text-align: right; white-space: nowrap; }
.gallery img.gallery__item, .shell__main .gallery img.gallery__item { aspect-ratio: 4 / 3; object-fit: cover; margin: 0; border-top: 0; cursor: zoom-in; transition: transform .2s ease, opacity .2s ease; }
.gallery img.gallery__item:hover { transform: scale(1.03); opacity: .92; }
@media (min-width: 700px) { .standort__info { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .gallery { grid-template-columns: repeat(2, 1fr); } }

.slideshow { position: relative; overflow: hidden; background: #111; border-top: 4px solid var(--fl-red); margin-bottom: 1.2rem; }
.slideshow__track { position: relative; aspect-ratio: 16 / 10; }
.slideshow__track img, .shell__main .slideshow__track img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; margin: 0; border-top: 0; opacity: 0; transition: opacity .7s ease; }
.slideshow__track img.is-active { opacity: 1; }
.slideshow__btn { position: absolute; top: 50%; transform: translateY(-50%); width: 2.8rem; height: 2.8rem; border: 0; background: rgba(10,10,10,.55); color: #fff; font-size: 2rem; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .15s; }
.slideshow__btn:hover, .slideshow__btn:focus-visible { background: var(--fl-red); outline: none; }
.slideshow__btn--prev { left: .8rem; } .slideshow__btn--next { right: .8rem; }
.slideshow__dots { position: absolute; left: 0; right: 0; bottom: .8rem; display: flex; justify-content: center; gap: .45rem; }
.slideshow__dot { width: .6rem; height: .6rem; padding: 0; border: 0; background: rgba(255,255,255,.5); cursor: pointer; transition: background .15s, transform .15s; }
.slideshow__dot.is-active { background: var(--fl-red); transform: scale(1.3); }
.slideshow:focus-visible { outline: 3px solid var(--fl-red); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { .slideshow__track img { transition: none; } }

@media (max-width: 600px) { .kp-tage ul { gap: .3rem; overflow: visible; } .kp-tage li { flex: 1 1 0; min-width: 0; } .kp-tage a { min-width: 0; padding: .55rem .2rem; font-size: .9rem; } }
.fighter__specs--wide { grid-column: 1 / -1; }
.fighter__coachlink { margin: -.8rem 0 1.6rem; font-size: .92rem; color: var(--muted); }
.fighter__coachlink a { color: var(--fl-red); font-weight: 600; }

.fighter__slideshow { margin: 0 0 .4rem; }
.fighter > .wrap > .fighter__h2 { margin-top: 2rem; }
.slideshow--contain .slideshow__track { aspect-ratio: 16 / 10; background: #111; }
.slideshow--contain .slideshow__track img { object-fit: contain; }
.slideshow__caption { position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: 2rem 3.5rem .6rem; text-align: center; font-size: .82rem; color: #fff; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.7) 100%); pointer-events: none; }
.slideshow--contain .slideshow__dots { bottom: 2.4rem; }

.fp-hero { display: grid; grid-template-columns: 1fr; background: #fff; color: var(--fg); border: 1px solid var(--line); border-top: 4px solid var(--fl-red); margin: .8rem 0 0; padding: 0; overflow: hidden; }
.fp-hero__photo { position: relative; background: #f4f4f4; }
.fp-hero__photo img { display: block; width: 100%; height: 100%; aspect-ratio: 3 / 4; object-fit: cover; object-position: center top; border-top: 0; margin: 0; }
.fp-hero__ph { display: flex; align-items: center; justify-content: center; aspect-ratio: 3 / 4; background: linear-gradient(135deg, #e6e6e6, #cfcfcf); }
.fp-hero__ph .lgo { font-size: 1.4rem; opacity: .5; }
.fp-hero__body { padding: clamp(1.4rem, 3vw, 2.4rem); display: flex; flex-direction: column; gap: .9rem; }
.fp-hero__cat { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; letter-spacing: .14em; font-size: .78rem; }
.fp-hero__cat a { color: var(--fl-red); text-decoration: none; }
.fp-hero__cat a:hover { text-decoration: underline; text-underline-offset: 3px; }
.listing__h2 a { color: inherit; text-decoration: none; }
.listing__h2 a:hover { color: var(--fl-red); }
.listing__h2-sub { display: block; margin-top: .15rem; font-family: system-ui, sans-serif; font-size: .82rem; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--muted); }
.listing__sub { margin: -.6rem 0 .8rem; color: var(--muted); font-size: .95rem; }
.fp-hero__team { color: var(--muted); }
.fp-hero__name { margin: 0; font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 600; font-size: clamp(2.2rem, 5vw, 3.6rem); line-height: .98; letter-spacing: -.01em; }
.fp-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.fp-chips li { display: inline-flex; align-items: center; gap: .4rem; padding: .35rem .75rem; border: 1.5px solid var(--fg); font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-size: .8rem; letter-spacing: .05em; }
.fp-chips--gurt li { border-color: transparent; background: #f4f4f4; text-transform: none; font-family: var(--font); font-size: .82rem; }
.fp-chips__belt { width: 1.1rem; height: .45rem; background: #2e9e3a; box-shadow: inset 0 0 0 1px rgba(0,0,0,.25); }
.fp-stats { margin: .4rem 0 0; padding: 1rem 0 0; border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem 1.2rem; }
.fp-stats > div { min-width: 0; }
.fp-stats dt { margin: 0 0 .1rem; font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }
.fp-stats dd { margin: 0; display: flex; align-items: baseline; gap: .25rem; }
.fp-stats strong { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: clamp(1.6rem, 2.6vw, 2.1rem); line-height: 1; color: var(--fg); }
.fp-stats small { font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: .85rem; color: var(--muted); text-transform: uppercase; }
.fp-stats__text { font-size: clamp(1.05rem, 1.6vw, 1.25rem) !important; line-height: 1.2 !important; overflow-wrap: anywhere; }
.fp-hero__coach { margin: 0; font-size: .88rem; }
.fp-hero__coach a { color: var(--fl-red); font-weight: 600; text-decoration: none; }
.fp-hero__coach a:hover { text-decoration: underline; text-underline-offset: 3px; }
.fp-erfolge { margin: 1.8rem 0 0; }
.fp-timeline { list-style: none; margin: 0; padding: 0; }
.fp-timeline__item { display: grid; grid-template-columns: 3.6rem 1.4rem minmax(0, 1fr); align-items: start; column-gap: .4rem; position: relative; padding: 0 0 1rem; }
.fp-timeline__jahr { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .95rem; color: var(--fl-red); text-align: right; padding-right: .3rem; padding-top: .1rem; }
.fp-timeline__dot { position: relative; width: .8rem; height: .8rem; margin: .3rem auto 0; background: var(--fl-red); }
.fp-timeline__item::before { content: ""; position: absolute; left: calc(3.6rem + .4rem + .7rem - 1px); top: 1.1rem; bottom: -.3rem; width: 2px; background: var(--line); }
.fp-timeline__item.is-last::before { display: none; }
.fp-timeline__text { font-size: 1rem; line-height: 1.45; padding-top: .05rem; }
.fp-timeline__sub { font-family: "Oswald", "Oswald Fallback", sans-serif; text-transform: uppercase; font-weight: 500; color: var(--muted); padding: .6rem 0 .6rem 5.4rem; }
.fighter .fighter__links { margin: 1.4rem 0 0; }
.shell__main section.fp-hero { padding: 0; }
.shell__main section.fp-erfolge { padding-bottom: 0; }
@media (min-width: 640px) { .fp-hero { grid-template-columns: minmax(240px, 36%) minmax(0, 1fr); align-items: stretch; } .fp-hero__photo img { position: static; width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; object-position: center top; } .fp-hero__body { justify-content: center; } .fp-stats { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1100px) { .fp-stats { grid-template-columns: repeat(auto-fit, minmax(6.5rem, max-content)); justify-content: start; gap: .8rem 1.8rem; } }

.fighter--breit .wrap { max-width: 1240px; }
.fighter--breit section.fp-hero { padding: 0; }
.fighter--breit section.fp-erfolge { padding: 0; margin: 2rem 0 0; }
.fighter--breit .fighter__h2 { margin-top: 2rem; }
.fighter--breit .fp-erfolge .fighter__h2 { margin-top: 0; }
.fighter--breit > .wrap:first-child { padding-top: 1.5rem; }
.fighter__unten { margin-top: 2.5rem; padding-top: 2.5rem; padding-bottom: 3rem; border-top: 1px solid var(--line); }
.fighter__unten .sbB { display: grid; grid-template-columns: 1fr; gap: 1rem; align-items: start; }
.fighter__unten .sbB__foot { grid-column: 1 / -1; padding-top: .6rem; }
@media (min-width: 900px) {
  .fighter__unten .sbB { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
  .fighter--breit .fp-hero { grid-template-columns: minmax(300px, 36%) minmax(0, 1fr); }
  .fighter--breit .fp-stats { grid-template-columns: repeat(auto-fit, minmax(6.5rem, max-content)); justify-content: start; gap: .8rem 2.2rem; }
  .fighter--breit .fp-timeline { columns: 2; column-gap: 3rem; }
  .fighter--breit .fp-timeline__item, .fighter--breit .fp-timeline__sub { break-inside: avoid; }
  .fighter--breit .slideshow--contain .slideshow__track { aspect-ratio: 16 / 9; }
}

.shell--breit { grid-template-columns: minmax(0, 1fr); }
.shell-unten { max-width: 1240px; }
.shell-unten .sbB { display: grid; grid-template-columns: 1fr; gap: 1rem; align-items: start; }
.shell-unten .sbB__foot { grid-column: 1 / -1; padding-top: .6rem; }
@media (min-width: 900px) { .shell-unten .sbB { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); } }
.shell--breit .article__faq { max-width: none; }
@media (min-width: 900px) { .shell--breit .article__faq .faq { columns: 2; column-gap: 3rem; } .shell--breit .article__faq .faq__item { break-inside: avoid; } }

.coach--breit .wrap { max-width: 1240px; }
.coach--breit > .wrap { padding-top: 1.5rem; }
.coach--breit section.fp-hero { padding: 0; }
.cp-hero__intro { font-size: 1rem; }
.cp-hero__intro p { margin: 0 0 .7rem; }
.cp-hero__intro p:last-child { margin-bottom: 0; }
.cp-hero__intro ul { margin: 0; padding-left: 1.1rem; }
.cp-bloecke { display: grid; grid-template-columns: 1fr; gap: 1rem; margin: 1.5rem 0 0; }
.coach--breit section.cp-block { padding: 1.3rem 1.4rem 1.2rem; background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--fl-red); }
.cp-block .fighter__h2 { margin: 0 0 .8rem; padding-left: 0; border-left: 0; }
.cp-block__body ul { list-style: none; margin: 0; padding: 0; }
.cp-block__body li { position: relative; padding: .35rem 0 .35rem 1.5rem; border-bottom: 1px solid var(--line); font-size: .95rem; }
.cp-block__body li:last-child { border-bottom: 0; }
.coach .fighter__h2.cp-video__h { margin-top: 3.5rem; }
.cp-block__body li::before { content: "\2713"; position: absolute; left: 0; top: .35rem; color: #0a7d22; font-weight: 700; }
.cp-block__body li strong, .cp-block__body li b { font-weight: 600; }
.cp-block__body p { margin: .8rem 0 0; font-size: .95rem; }
.cp-block__body p:first-child { margin-top: 0; }
.coach--breit .media-nav { margin-top: 2rem; }
@media (min-width: 900px) { .cp-bloecke { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; } }

.cp-galerie__h { margin-top: 2rem; }
.cp-galerie { display: grid; grid-template-columns: repeat(2, 1fr); gap: .6rem; margin: 0 0 .5rem; }
.cp-galerie img, .shell__main .cp-galerie img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; object-position: top; margin: 0; border-top: 0; cursor: zoom-in; transition: transform .2s ease, opacity .2s ease; }
.cp-galerie img:hover, .cp-galerie img:focus-visible { transform: scale(1.02); opacity: .92; outline: none; }
.cp-galerie img:focus-visible { box-shadow: 0 0 0 3px var(--fl-red); }
@media (min-width: 700px) { .cp-galerie { grid-template-columns: repeat(4, 1fr); } }

.prosa-galerie { display: grid; grid-template-columns: repeat(2, 1fr); gap: .6rem; margin: 1.75rem 0; }
.prose .prosa-galerie img, .shell__main .prosa-galerie img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; margin: 0; border-top: 0; cursor: zoom-in; transition: transform .2s ease, opacity .2s ease; }
.prosa-galerie img:hover, .prosa-galerie img:focus-visible { transform: scale(1.02); opacity: .92; outline: none; }
.prosa-galerie img:focus-visible { box-shadow: 0 0 0 3px var(--fl-red); }

.kontakt-seite .kx-kopf { margin-bottom: clamp(2rem, 4vw, 3rem); }
.kx-eyebrow { margin: 0 0 .35rem; font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; color: var(--fl-red); }
.kx-lead { max-width: 44rem; }
.kx-wege { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 1.6rem; }
.kx-weg { position: relative; display: flex; flex-direction: column; gap: .35rem; padding: 1.3rem 1.3rem 1.2rem; background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--fg); color: var(--fg); text-decoration: none; transition: border-color .15s ease, box-shadow .15s ease; }
a.kx-weg:hover { border-color: var(--fg); box-shadow: 0 6px 18px rgba(0, 0, 0, .08); }
.kx-weg--wa { border-top-color: var(--fl-green); }
.kx-weg--tel { border-top-color: var(--fl-red); }
.kx-weg__icon { display: inline-flex; align-items: center; justify-content: center; width: 2.6rem; height: 2.6rem; margin-bottom: .35rem; background: #f4f4f4; color: var(--fg); }
.kx-weg--wa .kx-weg__icon { background: #e9f5e9; color: var(--fl-green); }
.kx-weg--tel .kx-weg__icon { background: #fdeef0; color: var(--fl-red); }
.kx-weg__titel { font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: 1.15rem; font-weight: 500; text-transform: uppercase; letter-spacing: .03em; }
.kx-weg__text { font-size: .9rem; line-height: 1.5; color: var(--muted); }
.kx-weg__mehr { margin-top: auto; padding-top: .5rem; font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: .82rem; letter-spacing: .05em; text-transform: uppercase; color: var(--fl-red); }
.kx-weg--wa .kx-weg__mehr { color: var(--fl-green); }
.kx-weg__nummern { list-style: none; margin: .15rem 0 0; padding: 0; }
.kx-weg__nummern li { display: flex; justify-content: space-between; gap: .8rem; padding: .4rem 0; border-top: 1px solid var(--line); font-size: .92rem; }
.kx-weg__nummern li span { color: var(--muted); }
.kx-weg__nummern a { font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; color: var(--fg); text-decoration: none; white-space: nowrap; }
.kx-weg__nummern a:hover { color: var(--fl-red); }

.kx-haupt { margin-bottom: clamp(2.5rem, 5vw, 3.5rem); }
.kx-layout { display: block; }
.kx-form { scroll-margin-top: 150px; padding: clamp(1.4rem, 3vw, 2.2rem); background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--fl-red); }
.kx-h2 { margin: 0 0 .5rem; font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: clamp(1.35rem, 2.4vw, 1.75rem); font-weight: 500; text-transform: uppercase; letter-spacing: .02em; }
.kx-form__text { margin: 0 0 1.6rem; max-width: 40rem; color: var(--muted); line-height: 1.6; }

.kontakt-seite .kontakt-formular { margin: 0; }
.kontakt-seite .kontakt-formular .formContainer .uk-width-12-12 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.2rem; }
.kontakt-seite .kontakt-formular .rsform-block { grid-column: 1 / -1; margin-bottom: 1.1rem; }
.kontakt-seite .kontakt-formular :is(.rsform-block-voername, .rsform-block-name, .rsform-block-email, .rsform-block-telefon) { grid-column: auto; }
.kontakt-seite .kontakt-formular .rsform-block-anrede { order: 1; }
.kontakt-seite .kontakt-formular .rsform-block-voername { order: 2; }
.kontakt-seite .kontakt-formular .rsform-block-name { order: 3; }
.kontakt-seite .kontakt-formular .rsform-block-email { order: 4; }
.kontakt-seite .kontakt-formular .rsform-block-telefon { order: 5; }
.kontakt-seite .kontakt-formular .rsform-block-firma { order: 6; }
.kontakt-seite .kontakt-formular .rsform-block-location { order: 7; }
.kontakt-seite .kontakt-formular .rsform-block-mitteilung { order: 8; }
.kontakt-seite .kontakt-formular .rsform-block-capcha { order: 9; }
.kontakt-seite .kontakt-formular .rsform-block-dsgvo { order: 10; padding-top: 1.1rem; border-top: 1px solid var(--line); }
.kontakt-seite .kontakt-formular .rsform-block-senden { order: 11; margin-bottom: 0; }
.kontakt-seite .kontakt-formular :is(.rsform-block-wejscie, .rsform-block-trenner) { display: none; }
.kontakt-seite .kontakt-formular :is(.rsform-input-box, .rsform-text-box, .rsform-select-box) { width: 100%; max-width: none; }
.kontakt-seite .kontakt-formular .rsform-text-box { min-height: 9rem; }
.kontakt-seite .kontakt-formular .rsform-submit-button { min-width: 12rem; }
.kontakt-seite .kontakt-formular .rsform-block-capcha a { display: inline-block; margin: .5rem 0 0; }

.kx-direkt, .shell__main section.kx-direkt { margin-top: clamp(1.2rem, 2.5vw, 1.8rem); padding: clamp(1.4rem, 3.5vw, 2.4rem); background: #f6f6f6; border: 1px solid var(--line); }
.kx-direkt__titel { margin: 0 0 1.1rem; font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: clamp(1.15rem, 2vw, 1.4rem); font-weight: 500; text-transform: uppercase; letter-spacing: .03em; }
.kx-direkt__karten { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.kx-direkt__karte { display: flex; flex-direction: column; gap: .3rem; padding: 1.3rem 1.4rem; background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--fg); color: var(--fg); text-decoration: none; transition: border-color .15s ease, box-shadow .15s ease; }
.kx-direkt__karte:hover { border-color: var(--fg); box-shadow: 0 6px 18px rgba(0, 0, 0, .08); }
.kx-direkt__karte--abo { border-top-color: var(--fl-red); }
.kx-direkt__label { font-family: "Oswald", "Oswald Fallback", sans-serif; font-size: 1.05rem; font-weight: 500; text-transform: uppercase; letter-spacing: .03em; }
.kx-direkt__karte--abo .kx-direkt__label { color: var(--fl-red); }
.kx-direkt__label::after { content: " →"; }
.kx-direkt__text { font-size: .9rem; line-height: 1.55; color: var(--muted); }
.kx-direkt__mail { margin: 1.1rem 0 0; font-size: .92rem; color: var(--muted); }
.kx-direkt__mail a { color: var(--fl-red); font-weight: 600; text-decoration: none; }
.kx-direkt__mail a:hover { text-decoration: underline; }

.kx-standorte { margin-bottom: clamp(1rem, 3vw, 2rem); }
.kx-standorte .kx-h2 { margin-bottom: 1rem; }

@media (max-width: 900px) {
  .kx-wege { grid-template-columns: 1fr; }
  .kx-direkt__karten { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .kontakt-seite .kontakt-formular .formContainer .uk-width-12-12 { grid-template-columns: 1fr; }
  .kx-wege { gap: .7rem; margin-top: 1.2rem; }
  .kx-weg--form { display: none; }
  .kx-weg { padding: .9rem 1rem; }
  .kx-weg--wa { flex-direction: row; align-items: center; gap: .8rem; }
  .kx-weg--wa .kx-weg__icon { margin: 0; }
  .kx-weg--wa :is(.kx-weg__text, .kx-weg__mehr) { display: none; }
  .kx-weg--wa .kx-weg__titel::after { content: " · Chat öffnen"; font-size: .85rem; color: var(--fl-green); }
  .kx-weg--tel { flex-direction: row; flex-wrap: wrap; align-items: center; column-gap: .8rem; }
  .kx-weg--tel .kx-weg__icon { margin: 0; }
  .kx-weg--tel .kx-weg__nummern { flex-basis: 100%; }
}

.page-joomla { --f-flaeche: #f5f5f8; --f-flaeche-hover: #ededf1; --f-rand: #c9c9d0; --f-ring: rgba(220, 0, 27, .12); --f-aktiv: #fff4f5; }

.page-joomla form#userForm { background: #fff; border: 0; padding: clamp(1.6rem, 4vw, 3.2rem);
  box-shadow: 0 30px 80px rgba(20, 20, 30, .11), 0 2px 6px rgba(20, 20, 30, .05); }
.page-joomla .kontakt-formular form#userForm { background: none; padding: 0; box-shadow: none; }
.page-joomla .formContainer h2, .page-joomla form > h2 { font-size: clamp(1.4rem, 2.4vw, 1.8rem); line-height: 1.2; margin: 0 0 2rem; }

.page-joomla .formContainer .uk-width-12-12 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.4rem; }
.page-joomla .rsform-block { grid-column: 1 / -1; margin: 0 0 1.7rem; }
.page-joomla :is(.rsform-block-name, .rsform-block-voername, .rsform-block-email, .rsform-block-tel, .rsform-block-telefon) { grid-column: auto; }
.page-joomla .rsform-block-firma:has(+ .rsform-block-email) { grid-column: auto; }
.kontakt-seite .kontakt-formular .rsform-block-firma { grid-column: 1 / -1; }
.page-joomla [class*="rsform-block-trenner"] { display: none; }

.page-joomla .rsform-block > .formControlLabel { margin: 0 0 .55rem; font-family: inherit; text-transform: none; letter-spacing: 0;
  font-size: .92rem; font-weight: 600; color: #26262b; }

.page-joomla :is(.rsform-input-box, .rsform-text-box, .rsform-select-box, .rsform-calendar-box, .rsform-captcha-box) {
  min-height: 3.7rem; padding: 1rem 1.2rem; font: inherit; font-size: 1rem; color: var(--fg);
  background-color: var(--f-flaeche); border: 1.5px solid transparent; border-radius: 0;
  box-sizing: border-box; transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease; }
.page-joomla :is(.rsform-input-box, .rsform-text-box, .rsform-select-box, .rsform-calendar-box, .rsform-captcha-box):hover { background-color: var(--f-flaeche-hover); }
.page-joomla :is(.rsform-input-box, .rsform-text-box, .rsform-select-box, .rsform-calendar-box, .rsform-captcha-box):focus,
.page-joomla :is(.rsform-input-box, .rsform-text-box, .rsform-select-box, .rsform-calendar-box, .rsform-captcha-box):focus-visible {
  outline: 0; background-color: #fff; border-color: var(--fl-red); box-shadow: 0 0 0 5px var(--f-ring); }
.page-joomla .rsform-text-box { min-height: 10rem; line-height: 1.55; }
.page-joomla .rsform-select-box { -webkit-appearance: none; appearance: none; padding-right: 3rem; cursor: pointer;
  background-image: url(/assets/images/icons/chevron.svg); background-repeat: no-repeat; background-position: right 1.2rem center; background-size: 1rem; }

.page-joomla .rsfp-fieldset { gap: .6rem; }
.page-joomla .rsfp-fieldset label { position: relative; align-items: center; gap: .65rem; padding: .8rem 1.35rem; background: var(--f-flaeche);
  border: 1.5px solid transparent; font-size: .95rem; font-weight: 500; line-height: 1.3;
  transition: border-color .15s ease, background-color .15s ease, color .15s ease, box-shadow .15s ease; }
.page-joomla .rsfp-fieldset label:hover { border-color: var(--f-rand); }
.page-joomla .rsfp-fieldset label:has(input:checked) { background: var(--f-aktiv); border-color: var(--fl-red); color: #111; box-shadow: 0 6px 16px rgba(220, 0, 27, .12); }
.page-joomla .rsform-block:not(.rsform-block-dsgvo) .rsfp-fieldset label:has(input:checked)::before { content: ""; width: 1rem; height: 1rem; flex-shrink: 0; background: var(--fl-red);
  clip-path: polygon(12% 48%, 0 64%, 40% 100%, 100% 22%, 86% 8%, 38% 68%); }
.page-joomla .rsfp-fieldset label:has(input:focus-visible) { border-color: var(--fl-red); box-shadow: 0 0 0 5px var(--f-ring); }
.page-joomla :is(.rsform-radio, .rsform-checkbox) { -webkit-appearance: none; appearance: none; display: grid; place-content: center;
  width: 1.3rem; height: 1.3rem; margin: 0; flex-shrink: 0; background: #fff; border: 1.5px solid #8d8d94; border-radius: 0; cursor: pointer;
  transition: background-color .12s ease, border-color .12s ease; }
.page-joomla :is(.rsform-radio, .rsform-checkbox)::before { content: ""; width: .66rem; height: .66rem; background: #fff; transform: scale(0); transition: transform .12s ease; }
.page-joomla .rsform-checkbox::before { width: .82rem; height: .82rem; clip-path: polygon(12% 48%, 0 64%, 40% 100%, 100% 22%, 86% 8%, 38% 68%); }
.page-joomla :is(.rsform-radio, .rsform-checkbox):checked { background: var(--fl-red); border-color: var(--fl-red); }
.page-joomla :is(.rsform-radio, .rsform-checkbox):checked::before { transform: scale(1); }
.page-joomla :is(.rsform-radio, .rsform-checkbox):focus-visible { outline: 0; }
@supports selector(:has(*)) {
  .page-joomla .rsform-block:not(.rsform-block-dsgvo) .rsfp-fieldset :is(.rsform-radio, .rsform-checkbox) { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
}

.page-joomla .rsform-block-dsgvo .rsfp-fieldset label { display: flex; align-items: flex-start; width: 100%; box-sizing: border-box;
  padding: 1.15rem 1.3rem; font-size: .9rem; font-weight: 400; line-height: 1.6; }
.page-joomla .rsform-block-dsgvo .rsfp-fieldset label:has(input:checked) { background: var(--f-aktiv); border-color: var(--fl-red); color: inherit; box-shadow: none; }
.page-joomla .rsform-block-dsgvo .rsform-checkbox { margin-top: .1rem; }

.page-joomla .rsform-block-capcha .formControls { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1rem; }
.page-joomla .rsform-block-capcha img { margin: 0; height: 3.7rem; width: auto; max-width: 12rem; box-sizing: border-box; padding: 0 .6rem; border: 0; background: var(--f-flaeche); }
.page-joomla .rsform-block-capcha .rsform-captcha-box, .page-joomla .rsform-block-capcha .rsform-input-box { width: 11rem; max-width: 100%; letter-spacing: .18em; font-weight: 500; }
.page-joomla .rsform-block-capcha a { margin: 0; font-size: .88rem; font-weight: 600; }
.page-joomla .rsform-block-capcha .formValidation { flex-basis: 100%; }

.page-joomla .rsform-block-senden .formControls, .page-joomla [class*="rsform-block-weiter"] .formControls { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; }
.page-joomla :is(.rsform-submit-button, .rsform-button, .rsform-button-next, .rsform-button-prev) {
  display: inline-flex; align-items: center; justify-content: center; gap: .7rem; min-height: 3.7rem; min-width: 11rem; padding: 1rem 2.4rem;
  font-family: "Oswald", "Oswald Fallback", sans-serif; font-weight: 500; font-size: .95rem; letter-spacing: .09em; text-transform: uppercase;
  width: auto; flex: 0 0 auto; border: 1.5px solid transparent; border-radius: 0; background: var(--f-flaeche); color: #111; cursor: pointer;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.page-joomla :is(.rsform-button, .rsform-button-prev):hover { background: var(--f-flaeche-hover); border-color: var(--f-rand); color: #111; }
.page-joomla :is(.rsform-submit-button, .rsform-button-next) { background: linear-gradient(135deg, #f0122d, #b80017); color: #fff; box-shadow: 0 14px 34px rgba(220, 0, 27, .32); }
.page-joomla :is(.rsform-submit-button, .rsform-button-next):hover { background: linear-gradient(135deg, #e00d27, #a30014); border-color: transparent; color: #fff; box-shadow: 0 18px 40px rgba(220, 0, 27, .4); transform: translateY(-1px); }
.page-joomla .rsform-submit-button { min-width: 14rem; }
.page-joomla :is(.rsform-submit-button, .rsform-button-next)::after { content: ""; width: 1.1rem; height: 1.1rem; background: currentColor;
  -webkit-mask-image: url(/assets/images/icons/pfeil.svg); mask-image: url(/assets/images/icons/pfeil.svg);
  -webkit-mask-size: contain; mask-size: contain; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center;
  transition: transform .15s ease; }
.page-joomla :is(.rsform-submit-button, .rsform-button-next):hover::after { transform: translateX(4px); }
.page-joomla :is(.rsform-submit-button, .rsform-button, .rsform-button-next, .rsform-button-prev):focus-visible { outline: 0; box-shadow: 0 0 0 5px var(--f-ring); }

.page-joomla .formError { display: inline-block; margin-top: .5rem; font-size: .86rem; font-weight: 600; line-height: 1.4; }
.page-joomla :is(.rsform-input-box, .rsform-text-box, .rsform-select-box, .rsform-captcha-box):is(.rsform-error, .uk-form-danger, [aria-invalid="true"]) { border-color: var(--fl-red); background-color: var(--f-aktiv); }

@media (max-width: 760px) {
  .page-joomla .formContainer .uk-width-12-12 { grid-template-columns: 1fr; }
  .page-joomla :is(.rsform-submit-button, .rsform-button-next, .rsform-button-prev) { flex: 1 1 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .page-joomla :is(.rsform-input-box, .rsform-text-box, .rsform-select-box, .rsform-captcha-box, .rsform-radio, .rsform-checkbox, .rsform-submit-button, .rsform-button, .rsform-button-next, .rsform-button-prev),
  .page-joomla .rsfp-fieldset label, .page-joomla :is(.rsform-radio, .rsform-checkbox)::before, .page-joomla :is(.rsform-submit-button, .rsform-button-next)::after { transition: none; }
}
