:root {
  --orange: #12495c;
  --orange-dark: #0b3341;
  --accent-light: #5eb5d1;
  --black: #111111;
  --text: #151515;
  --muted: #666666;
  --soft: #f7f7f4;
  --white: #ffffff;
  --line: rgba(0, 0, 0, 0.10);
  --shadow: 0 18px 45px rgba(0,0,0,.08);
  --radius: 14px;
  --max: 1120px;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  color: var(--text);
  background: var(--white);
  line-height: 1.5;
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  max-width: 100%;
}

.site-header {
  height: 76px;
  padding: 0 28px;
  display: flex;
  align-items: center;
  gap: 28px;
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255,255,255,.95);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--line);
}

.brand {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-right: auto;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: -.03em;
  color: var(--orange);
  font-size: 22px;
}

.brand img {
  width: 54px;
  height: 54px;
  object-fit: contain;
}

.main-nav {
  display: flex;
  align-items: center;
  gap: 24px;
  font-size: 13px;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.main-nav a {
  padding: 27px 0;
  border-bottom: 3px solid transparent;
}

.main-nav a:hover {
  color: var(--orange);
  border-bottom-color: var(--orange);
}

.header-button,
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  border-radius: 9px;
  font-weight: 900;
  text-transform: uppercase;
  font-size: 13px;
}

.header-button {
  padding: 0 18px;
  background: var(--orange);
  color: #fff;
  white-space: nowrap;
}

.button {
  padding: 0 24px;
}

.primary {
  background: var(--orange);
  color: #fff;
}

.primary:hover {
  background: var(--orange-dark);
}

.secondary {
  background: rgba(255,255,255,.8);
  border: 1px solid var(--line);
  color: var(--text);
}

.hero {
  min-height: 580px;
  position: relative;
  overflow: hidden;
  background: var(--soft);
}

.hero-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 42% center;
}

.hero-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(255,255,255,.72) 0%, rgba(255,255,255,.58) 32%, rgba(255,255,255,.22) 60%, rgba(255,255,255,.04) 100%),
    linear-gradient(180deg, rgba(255,255,255,.55) 0%, rgba(255,255,255,.06) 44%, rgba(255,255,255,.60) 100%);
}

.hero-inner {
  width: min(var(--max), calc(100% - 48px));
  margin: 0 auto;
  position: relative;
  z-index: 2;
  padding-top: 72px;
  padding-bottom: 64px;
}

.eyebrow {
  margin: 0 0 12px;
  color: var(--orange);
  font-size: 13px;
  font-weight: 950;
  letter-spacing: .12em;
  text-transform: uppercase;
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1 {
  max-width: 610px;
  margin-bottom: 24px;
  font-size: clamp(42px, 6vw, 76px);
  line-height: .95;
  letter-spacing: -3px;
  text-transform: uppercase;
}

h1 span {
  color: var(--orange);
}

h2 {
  margin-bottom: 18px;
  font-size: clamp(34px, 4.1vw, 52px);
  line-height: 1;
  letter-spacing: -2px;
  text-transform: uppercase;
}

h3 {
  margin-bottom: 10px;
  font-size: 20px;
  letter-spacing: -.02em;
  text-transform: uppercase;
}

.hero-copy {
  max-width: 500px;
  margin-bottom: 28px;
  font-size: 19px;
}

.hero-list {
  display: grid;
  gap: 12px;
  max-width: 560px;
  margin-bottom: 40px;
}

.hero-list p {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin: 0;
  font-weight: 750;
}

.hero-list span {
  color: var(--orange);
  font-weight: 950;
}

.button-row {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: center;
}

.hero .button-row {
  margin-bottom: 0;
}

.centered {
  justify-content: center;
}

.stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  background: #fff;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.stats article {
  padding: 30px 20px;
  text-align: center;
  border-right: 1px solid var(--line);
}

.stats article:last-child {
  border-right: 0;
}

.stats strong {
  display: block;
  margin-bottom: 6px;
  font-size: 42px;
  line-height: 1;
  letter-spacing: -1px;
}

.stats span {
  font-size: 12px;
  font-weight: 850;
  text-transform: uppercase;
}

.section {
  width: min(var(--max), calc(100% - 48px));
  margin: 0 auto;
  padding: 84px 0;
}

.split,
.section-head,
.split-card {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}

.section-head {
  align-items: center;
  margin-bottom: 36px;
}

.copy,
.section-head > p {
  color: var(--muted);
  font-size: 18px;
}

.copy p:last-child {
  margin-bottom: 0;
}

.program-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

.program-card,
.price-grid article,
.split-card,
.schedule-widget {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: var(--shadow);
}

.program-card {
  overflow: hidden;
}

.program-card img {
  display: block;
  width: 100%;
  height: 215px;
  object-fit: cover;
}

.program-card div {
  padding: 26px;
}

.program-card p {
  color: var(--muted);
}

.program-card a {
  color: var(--orange);
  font-weight: 950;
}

.beginner-box {
  width: 100%;
  background: var(--soft);
  padding-left: max(24px, calc((100vw - var(--max)) / 2));
  padding-right: max(24px, calc((100vw - var(--max)) / 2));
}

.split-card {
  width: min(var(--max), 100%);
  margin: 0 auto;
  padding: clamp(32px, 5vw, 60px);
  align-items: center;
}

.dark-section {
  width: 100%;
  max-width: none;
  background: var(--orange-dark);
  color: #fff;
  padding-left: max(24px, calc((100vw - var(--max)) / 2));
  padding-right: max(24px, calc((100vw - var(--max)) / 2));
}

.light > p {
  color: rgba(255,255,255,.72);
}

.trainer-grid {
  width: min(var(--max), 100%);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}

.trainer-card {
  background: #191919;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: var(--radius);
  overflow: hidden;
}

.trainer-card img,
.trainer-card .initial {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1.08;
  object-fit: cover;
  object-position: center 18%;
  background: #252525;
}

.trainer-card .initial {
  display: grid;
  place-items: center;
  color: var(--orange);
  font-size: 66px;
  font-weight: 950;
}

.trainer-card div:last-child {
  padding: 18px;
}

.trainer-card h3 {
  margin-bottom: 6px;
  font-size: 17px;
}

.trainer-card p {
  margin-bottom: 0;
  color: var(--orange);
  font-size: 13px;
  font-weight: 850;
}

.check-list {
  margin: 0;
  padding: 0;
  list-style: none;
  color: var(--muted);
  font-size: 18px;
}

.check-list li {
  position: relative;
  padding: 14px 0 14px 34px;
  border-bottom: 1px solid var(--line);
}

.check-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--orange);
  font-weight: 950;
}

.move {
  background: #fff;
}

.schedule-section {
  width: min(var(--max), calc(100% - 48px));
}

.schedule-widget {
  padding: 24px;
  min-height: 680px;
  overflow: hidden;
}

.gymdesk-schedule {
  width: 100%;
  min-height: 640px;
}

.schedule-widget:empty::before {
  content: "Stundenplan lädt...";
  display: block;
  padding: 32px;
  color: var(--muted);
}

.schedule-section .button-row {
  margin-top: 24px;
}

.price-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.price-grid article {
  padding: 28px;
}

.price-grid strong {
  display: block;
  margin: 18px 0 8px;
  font-size: 50px;
  line-height: 1;
  letter-spacing: -2px;
}

.price-grid span,
.note {
  color: var(--muted);
}

.final-cta {
  width: min(var(--max), calc(100% - 48px));
  margin: 84px auto;
  padding: clamp(30px, 5vw, 54px);
  display: grid;
  grid-template-columns: 130px 1fr auto;
  gap: 30px;
  align-items: center;
  background: var(--black);
  color: #fff;
  border-radius: 22px;
}

.final-cta img {
  width: 120px;
  height: 120px;
  object-fit: contain;
}

.final-cta p {
  color: rgba(255,255,255,.72);
  margin-bottom: 0;
}

.final-cta h2 {
  margin-bottom: 10px;
}

.footer {
  padding: 60px max(24px, calc((100vw - var(--max)) / 2));
  background: #111;
  color: #fff;
  display: grid;
  grid-template-columns: .7fr 1.3fr;
  gap: 48px;
}

.footer strong {
  font-size: 24px;
  text-transform: uppercase;
}

.footer p {
  color: rgba(255,255,255,.72);
}

.footer-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.footer-grid span {
  display: block;
  margin-bottom: 8px;
  color: #fff;
  font-weight: 900;
  text-transform: uppercase;
  font-size: 13px;
}

.footer a {
  color: #fff;
}

@media (max-width: 1050px) {
  .main-nav {
    display: none;
  }

  .header-button {
    margin-left: auto;
  }

  .hero-overlay {
    background:
      linear-gradient(90deg, rgba(255,255,255,.98), rgba(255,255,255,.78), rgba(255,255,255,.25)),
      linear-gradient(180deg, rgba(255,255,255,.72), rgba(255,255,255,.05), rgba(255,255,255,.70));
  }

  .split,
  .section-head,
  .split-card,
  .footer {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .program-grid,
  .trainer-grid,
  .price-grid,
  .footer-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .final-cta {
    grid-template-columns: 100px 1fr;
  }

  .final-cta .button {
    grid-column: 1 / -1;
    justify-self: start;
  }
}

@media (max-width: 650px) {
  .site-header {
    height: 70px;
    padding: 0 16px;
  }

  .brand span {
    display: none;
  }

  .brand img {
    width: 50px;
    height: 50px;
  }

  .header-button {
    display: none;
  }

  .hero {
    min-height: 900px;
  }

  .hero-image {
    object-position: 61% center;
  }

  .hero-inner {
    width: min(100% - 32px, var(--max));
    padding-top: 70px;
    padding-bottom: 96px;
  }

  h1 {
    letter-spacing: -2px;
  }

  .stats,
  .program-grid,
  .trainer-grid,
  .price-grid,
  .footer-grid,
  .final-cta {
    grid-template-columns: 1fr;
  }

  .stats article {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .stats article:last-child {
    border-bottom: 0;
  }

  .section,
  .schedule-section,
  .final-cta {
    width: min(100% - 32px, var(--max));
  }

  .section {
    padding: 64px 0;
  }

  .schedule-widget {
    padding: 12px;
    min-height: 560px;
  }

  .gymdesk-schedule {
    min-height: 540px;
  }

  .final-cta img {
    width: 110px;
    height: 110px;
  }

  .footer {
    padding: 46px 16px;
  }
}


/* V7 additions */

.why-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.why-grid article {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  padding: 26px;
  box-shadow: var(--shadow);
}

.why-grid p {
  color: var(--muted);
  margin-bottom: 0;
}

.trainer-card {
  color: inherit;
  text-decoration: none;
}

.trainer-card span,
.trainer-list-card span,
.text-link {
  color: var(--orange);
  font-weight: 950;
}

.trainer-overview-button {
  margin-top: 36px;
}

.dark-button {
  background: #fff;
  color: var(--text);
}

.sub-hero {
  width: min(var(--max), calc(100% - 48px));
  margin: 0 auto;
  padding: 110px 0 70px;
}

.sub-hero h1 {
  max-width: 850px;
}

.sub-hero > p:not(.eyebrow) {
  max-width: 760px;
  color: var(--muted);
  font-size: 20px;
}

.kinder-hero {
  padding-bottom: 88px;
}

.trainer-list {
  display: grid;
  gap: 22px;
}

.trainer-list-card {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 34px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  overflow: hidden;
  box-shadow: var(--shadow);
  color: inherit;
}

.trainer-list-card img {
  width: 100%;
  height: 320px;
  object-fit: cover;
  background: #eee;
}

.trainer-list-card div {
  padding: 28px 34px 28px 0;
}

.trainer-list-card h2 {
  margin-bottom: 12px;
}

.trainer-list-card p:not(.eyebrow) {
  color: var(--muted);
  font-size: 18px;
}

.trainer-profile {
  width: min(var(--max), calc(100% - 48px));
  margin: 0 auto;
  padding: 100px 0 90px;
  display: grid;
  grid-template-columns: 430px 1fr;
  gap: 60px;
  align-items: start;
}

.profile-image {
  border-radius: 20px;
  overflow: hidden;
  background: #eee;
  box-shadow: var(--shadow);
  border: 1px solid var(--line);
}

.profile-image img {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1.22;
  object-fit: cover;
}

.profile-copy .lead {
  color: var(--muted);
  font-size: 21px;
  margin-bottom: 26px;
}

.profile-copy p {
  color: var(--muted);
  font-size: 18px;
}

.profile-copy h2 {
  font-size: 30px;
  margin-top: 34px;
}

.profile-list {
  margin-bottom: 32px;
}

.profile-buttons {
  margin-top: 28px;
}

@media (max-width: 1050px) {
  .why-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .trainer-list-card,
  .trainer-profile {
    grid-template-columns: 1fr;
  }

  .trainer-list-card div {
    padding: 0 28px 28px;
  }

  .trainer-list-card img {
    height: 420px;
  }
}

@media (max-width: 650px) {
  .why-grid {
    grid-template-columns: 1fr;
  }

  .sub-hero,
  .trainer-profile {
    width: min(100% - 32px, var(--max));
    padding-top: 70px;
  }

  .trainer-list-card img {
    height: 360px;
  }
}


/* V9 additions */

.featured-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

.featured-grid article {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  overflow: hidden;
  box-shadow: var(--shadow);
}

.featured-grid img {
  width: 100%;
  height: 360px;
  object-fit: cover;
  display: block;
}

.featured-grid div {
  padding: 28px;
}

.featured-grid p {
  color: var(--muted);
}

.featured-grid a {
  color: var(--orange);
  font-weight: 950;
}

.program-grid-four {
  grid-template-columns: repeat(4, 1fr);
}

.program-grid-four .program-card img {
  height: 190px;
}

@media (max-width: 1050px) {
  .featured-grid,
  .program-grid-four {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 650px) {
  .featured-grid,
  .program-grid-four {
    grid-template-columns: 1fr;
  }

  .featured-grid img {
    height: 320px;
  }
}


/* V10 visual system */

.visual-story {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 64px;
  align-items: center;
}

.story-copy p:not(.eyebrow) {
  color: var(--muted);
  font-size: 18px;
}

.story-images {
  position: relative;
  min-height: 520px;
}

.story-main,
.story-float {
  position: absolute;
  object-fit: cover;
  border-radius: 28px;
  box-shadow: 0 30px 80px rgba(0,0,0,.18);
}

.story-main {
  right: 0;
  top: 0;
  width: 74%;
  height: 440px;
}

.story-float {
  left: 0;
  bottom: 0;
  width: 44%;
  height: 300px;
  border: 8px solid white;
}

.page-hero {
  position: relative;
  min-height: 680px;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: #111;
  color: white;
}

.page-hero > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.page-hero-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(0,0,0,.70), rgba(0,0,0,.28), rgba(0,0,0,.10)),
    linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.05), rgba(0,0,0,.70));
}

.page-hero > div:last-child {
  position: relative;
  z-index: 2;
  width: min(var(--max), calc(100% - 48px));
  margin: 0 auto;
  padding: 0 0 88px;
}

.page-hero h1 {
  max-width: 780px;
}

.page-hero p:not(.eyebrow) {
  max-width: 720px;
  font-size: 21px;
  color: rgba(255,255,255,.82);
}

.page-hero .secondary {
  background: rgba(255,255,255,.15);
  border-color: rgba(255,255,255,.35);
  color: #fff;
}

.image-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}

.image-stack {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}

.image-stack img {
  width: 100%;
  height: 390px;
  object-fit: cover;
  border-radius: 24px;
  box-shadow: var(--shadow);
}

.image-stack img:nth-child(2) {
  margin-top: 64px;
}

.compact {
  grid-template-columns: repeat(2, 1fr);
}

.dark-feature {
  width: 100%;
  max-width: none;
  padding: 90px max(24px, calc((100vw - var(--max)) / 2));
  background: #101010;
  color: white;
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 54px;
  align-items: center;
}

.dark-feature p:not(.eyebrow) {
  color: rgba(255,255,255,.72);
  font-size: 18px;
}

.mosaic {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}

.mosaic-wide {
  grid-template-columns: repeat(4, 1fr);
}

.mosaic img {
  width: 100%;
  height: 330px;
  object-fit: cover;
  border-radius: 18px;
}

.mosaic img:nth-child(2) {
  margin-top: 36px;
}

.mosaic img:nth-child(3) {
  margin-top: 72px;
}

.mosaic-wide img:nth-child(4) {
  margin-top: 108px;
}

.gallery-section {
  padding-top: 48px;
}

.photo-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.photo-grid img {
  width: 100%;
  height: 360px;
  object-fit: cover;
  border-radius: 20px;
  box-shadow: var(--shadow);
}

.modern-profile {
  align-items: center;
}

.hero-profile img {
  aspect-ratio: 1 / 1.25;
}

@media (max-width: 1050px) {
  .visual-story,
  .image-split,
  .dark-feature {
    grid-template-columns: 1fr;
  }

  .story-images {
    min-height: 500px;
  }

  .mosaic,
  .mosaic-wide,
  .photo-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .compact {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 650px) {
  .page-hero {
    min-height: 660px;
  }

  .page-hero > div:last-child {
    width: min(100% - 32px, var(--max));
    padding-bottom: 56px;
  }

  .story-images {
    min-height: 420px;
  }

  .story-main {
    width: 82%;
    height: 330px;
  }

  .story-float {
    width: 56%;
    height: 220px;
  }

  .image-stack,
  .mosaic,
  .mosaic-wide,
  .photo-grid {
    grid-template-columns: 1fr;
  }

  .image-stack img,
  .mosaic img,
  .photo-grid img {
    height: 320px;
    margin-top: 0 !important;
  }
}


/* V11 cleaner AOJ/Apple inspired refinements */

.clean-hero {
  position: relative;
  min-height: 720px;
  display: grid;
  align-items: end;
  overflow: hidden;
  background: #f6f4ef;
}

.clean-hero-bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.clean-hero-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 72% 42%, rgba(18,73,92,.18), transparent 34%),
    linear-gradient(90deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.78) 38%, rgba(255,255,255,.12) 72%),
    linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.74));
  backdrop-filter: blur(0px);
}

.clean-hero-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.95) contrast(1.02);
}

.beginner-clean .clean-hero-bg img {
  object-position: 58% 46%;
}

.women-clean .clean-hero-bg img {
  object-position: 50% 95%;
}

.clean-hero-content {
  position: relative;
  z-index: 2;
  width: min(var(--max), calc(100% - 48px));
  margin: 0 auto;
  padding: 0 0 96px;
}

.clean-hero-content h1 {
  max-width: 760px;
}

.clean-hero-content p:not(.eyebrow) {
  max-width: 620px;
  font-size: 21px;
  color: var(--muted);
}

.editorial-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 76px;
  align-items: center;
}

.editorial-split.reverse {
  grid-template-columns: 1.1fr .9fr;
}

.editorial-image {
  position: relative;
  min-height: 520px;
}

.editorial-image::before {
  content: "";
  position: absolute;
  inset: 54px -24px -24px 54px;
  border-radius: 34px;
  background: linear-gradient(135deg, rgba(18,73,92,.22), rgba(17,17,17,.08));
  filter: blur(0px);
}

.editorial-image img {
  position: relative;
  z-index: 2;
  width: 100%;
  height: 520px;
  object-fit: cover;
  border-radius: 34px;
  box-shadow: 0 35px 90px rgba(0,0,0,.16);
}

.layered-photo img {
  object-position: 50% 95%;
}

.cutout-card img {
  object-position: 50% 95%;
}

.soft-feature {
  width: min(var(--max), calc(100% - 48px));
  margin: 0 auto;
  padding: 54px;
  display: grid;
  grid-template-columns: .95fr 1.05fr;
  gap: 52px;
  align-items: center;
  background: #f7f7f4;
  border-radius: 34px;
  overflow: hidden;
}

.soft-feature .soft-image {
  min-height: 440px;
}

.soft-feature .soft-image img {
  width: 100%;
  height: 440px;
  object-fit: cover;
  border-radius: 26px;
  box-shadow: var(--shadow);
}

.soft-feature p {
  color: var(--muted);
  font-size: 18px;
}

.women-soft .soft-image img {
  object-position: 50% 95%;
}

.clean-cards .why-grid article {
  box-shadow: none;
  border-color: rgba(0,0,0,.08);
  background: #fbfbf8;
}

.spotlight-band {
  width: 100%;
  max-width: none;
  padding: 96px max(24px, calc((100vw - var(--max)) / 2));
  background: #101010;
  color: white;
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 68px;
  align-items: center;
}

.spotlight-copy p:not(.eyebrow) {
  color: rgba(255,255,255,.72);
  font-size: 18px;
}

.spotlight-images {
  position: relative;
  min-height: 520px;
}

.spotlight-images img {
  position: absolute;
  object-fit: cover;
  border-radius: 28px;
  box-shadow: 0 30px 90px rgba(0,0,0,.30);
}

.spotlight-images img:first-child {
  right: 0;
  top: 0;
  width: 68%;
  height: 410px;
  object-position: 50% 95%;
}

.spotlight-images img:last-child {
  left: 0;
  bottom: 0;
  width: 48%;
  height: 300px;
  border: 8px solid #101010;
}

.page-hero.dark-hero > img,
.page-hero.image-hero > img {
  object-position: 50% 95%;
}

.page-hero.dark-hero .page-hero-overlay {
  background:
    linear-gradient(90deg, rgba(0,0,0,.76), rgba(0,0,0,.36), rgba(0,0,0,.12)),
    linear-gradient(180deg, rgba(0,0,0,.12), rgba(0,0,0,.10), rgba(0,0,0,.76));
}

.kids-spotlight .spotlight-images img:first-child {
  object-position: 50% 95%;
}

@media (max-width: 1050px) {
  .editorial-split,
  .editorial-split.reverse,
  .soft-feature,
  .spotlight-band {
    grid-template-columns: 1fr;
  }

  .spotlight-images {
    min-height: 500px;
  }
}

@media (max-width: 650px) {
  .clean-hero {
    min-height: 680px;
  }

  .clean-hero-bg::after {
    background:
      linear-gradient(180deg, rgba(255,255,255,.72), rgba(255,255,255,.48), rgba(255,255,255,.94));
  }

  .clean-hero-content {
    width: min(100% - 32px, var(--max));
    padding-bottom: 56px;
  }

  .editorial-image,
  .spotlight-images {
    min-height: 390px;
  }

  .editorial-image img {
    height: 390px;
  }

  .soft-feature {
    width: min(100% - 32px, var(--max));
    padding: 28px;
  }

  .soft-feature .soft-image,
  .soft-feature .soft-image img {
    height: 320px;
    min-height: 320px;
  }

  .spotlight-images img:first-child,
  .spotlight-images img:last-child {
    position: relative;
    width: 100%;
    height: 300px;
    inset: auto;
    border: 0;
    margin-bottom: 18px;
  }
}


/* V12 friendliness + cleaner modern refinements */

body {
  background: #fffdf8;
}

.clean-showcase {
  display: grid;
  grid-template-columns: .92fr 1.08fr;
  gap: 76px;
  align-items: center;
  padding-top: 96px;
  padding-bottom: 96px;
}

.showcase-copy p:not(.eyebrow) {
  color: var(--muted);
  font-size: 19px;
  max-width: 560px;
}

.showcase-media {
  position: relative;
  min-height: 540px;
}

.showcase-media::before {
  content: "";
  position: absolute;
  inset: 28px 30px 34px 80px;
  background: radial-gradient(circle at center, rgba(18,73,92,.22), rgba(18,73,92,.06), transparent 70%);
  filter: blur(28px);
  border-radius: 48px;
}

.showcase-main,
.showcase-small {
  position: absolute;
  object-fit: cover;
  box-shadow: 0 34px 90px rgba(0,0,0,.14);
}

.showcase-main {
  right: 0;
  top: 0;
  width: 72%;
  height: 470px;
  border-radius: 32px;
  object-position: 50% 95%;
}

.showcase-small {
  left: 0;
  bottom: 0;
  width: 44%;
  height: 300px;
  border-radius: 28px;
  border: 10px solid #fffdf8;
  object-position: 50% 95%;
}

.modern-programs .program-card {
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 24px 70px rgba(0,0,0,.08);
  border-color: rgba(0,0,0,.06);
}

.modern-programs .program-card img {
  height: 240px;
  object-position: 50% 95%;
}

.hero-band {
  position: relative;
  width: min(var(--max), calc(100% - 48px));
  min-height: 620px;
  margin: 0 auto;
  padding: 0;
  overflow: hidden;
  border-radius: 34px;
  display: flex;
  align-items: flex-end;
  background: #111;
  color: #fff;
  box-shadow: 0 34px 90px rgba(0,0,0,.16);
}

.hero-band img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 95%;
  filter: brightness(1.04) contrast(1.04);
}

.hero-band::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(0,0,0,.62), rgba(0,0,0,.18)),
    linear-gradient(180deg, rgba(0,0,0,.06), rgba(0,0,0,.68));
}

.hero-band > div {
  position: relative;
  z-index: 2;
  max-width: 620px;
  padding: 0 54px 54px;
}

.hero-band p:not(.eyebrow) {
  color: rgba(255,255,255,.80);
  font-size: 19px;
}

.women-clean .clean-hero-bg img {
  object-position: 50% 95%;
}

.women-clean .clean-hero-bg::after {
  background:
    radial-gradient(circle at 76% 38%, rgba(18,73,92,.14), transparent 34%),
    linear-gradient(90deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.80) 42%, rgba(255,255,255,.20) 76%),
    linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,.78));
}

.women-community-feature .soft-image img {
  object-position: 50% 95%;
}

.beginner-clean .clean-hero-bg img {
  object-position: 56% 50%;
}

.page-hero.image-hero > img,
.page-hero.dark-hero > img {
  object-position: 50% 95%;
  filter: brightness(1.08) contrast(1.02) saturate(1.04);
}

.featured-grid img,
.program-card img,
.photo-grid img,
.mosaic img,
.soft-feature .soft-image img,
.editorial-image img,
.spotlight-images img,
.story-main,
.story-float {
  filter: brightness(1.04) saturate(1.02);
}

.kids-spotlight .spotlight-images img:first-child {
  object-position: 50% 95%;
}

.kids-spotlight .spotlight-images img:last-child {
  object-position: 50% 95%;
}

@media (max-width: 1050px) {
  .clean-showcase {
    grid-template-columns: 1fr;
  }

  .showcase-media {
    min-height: 500px;
  }
}

@media (max-width: 650px) {
  .clean-showcase {
    padding-top: 64px;
    padding-bottom: 64px;
  }

  .showcase-media {
    min-height: 420px;
  }

  .showcase-main {
    width: 82%;
    height: 340px;
  }

  .showcase-small {
    width: 58%;
    height: 220px;
  }

  .hero-band {
    width: min(100% - 32px, var(--max));
    min-height: 540px;
  }

  .hero-band > div {
    padding: 0 28px 34px;
  }
}


/* V13 kids page refinements */

.kids-v13-hero > img {
  object-position: 50% 42% !important;
  filter: brightness(1.12) contrast(1.03) saturate(1.04);
}

.kids-v13-hero .page-hero-overlay {
  background:
    linear-gradient(90deg, rgba(0,0,0,.70), rgba(0,0,0,.32), rgba(0,0,0,.10)),
    linear-gradient(180deg, rgba(0,0,0,.10), rgba(0,0,0,.05), rgba(0,0,0,.68));
}

.kids-age-section {
  align-items: center;
}

.kids-age-images img:first-child {
  object-position: 50% 95%;
}

.kids-age-images img:nth-child(2) {
  object-position: 50% 95%;
}

.kids-spotlight .spotlight-images img:first-child {
  object-position: 50% 95%;
}

.kids-spotlight .spotlight-images img:last-child {
  object-position: 50% 95%;
}

@media (max-width: 650px) {
  .kids-v13-hero > img {
    object-position: 55% 42% !important;
  }
}


/* V14 targeted refinements: keep V13 structure, improve crops and calm the layout */

/* Competition hero: move image up/right and zoom slightly so Denise with both arms is visible and more centered */
.competition-team-page .page-hero > img,
body:has(.competition-hero-fix) .page-hero > img {
  object-position: 58% 58% !important;
  transform: scale(1.08);
}

/* Fallback targeting competition page hero through the image filename */
.page-hero img[src*="v14-competition-hero"] {
  object-position: 58% 58% !important;
  transform: scale(1.08);
}

/* Index competition band crop */
.hero-band img[src*="v14-competition-hero"] {
  object-position: 58% 56% !important;
  transform: scale(1.06);
}

/* Keep hero overlay readable but less muddy */
.page-hero.dark-hero .page-hero-overlay,
.page-hero.image-hero .page-hero-overlay {
  background:
    linear-gradient(90deg, rgba(0,0,0,.66), rgba(0,0,0,.28), rgba(0,0,0,.10)),
    linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.03), rgba(0,0,0,.64));
}

/* Beginner image crop */
.showcase-main[src*="v14-beginner-bluegi"],
.program-card img[src*="v14-beginner-bluegi"],
.editorial-image img[src*="v14-beginner-bluegi"] {
  object-position: 50% 28% !important;
}

/* Women's class group should sit as community section, not as kids image */
img[src*="v14-womens-class-group"] {
  object-position: 50% 38% !important;
}

/* Slightly friendlier image brightness without changing layout */
img[src*="v14-"],
img[src*="kids-"],
img[src*="women-"] {
  filter: brightness(1.03) saturate(1.02);
}

/* Prevent hero transform overflow glitches */
.page-hero,
.hero-band {
  overflow: hidden;
}

/* Make page heroes feel a bit cleaner */
.page-hero > div:last-child {
  padding-bottom: 76px;
}

.page-hero h1 {
  letter-spacing: -0.045em;
}

/* Softer modern cards, less gallery look */
.program-card,
.why-grid article,
.featured-grid article {
  border-color: rgba(0,0,0,.07);
}

/* V14 mobile crop safety */
@media (max-width: 850px) {
  .page-hero img[src*="v14-competition-hero"] {
    object-position: 61% 55% !important;
    transform: scale(1.12);
  }

  .hero-band img[src*="v14-competition-hero"] {
    object-position: 60% 54% !important;
    transform: scale(1.10);
  }
}


/* V15 final image audit + crop fixes */
.competition-team-page .page-hero > img,
.page-hero img[src*="final-competition-hero"] {
  object-position: 56% 57% !important;
  transform: scale(1.10);
  filter: brightness(1.08) contrast(1.03) saturate(1.04);
}
.hero-band img[src*="final-competition-hero"] {
  object-position: 56% 56% !important;
  transform: scale(1.08);
  filter: brightness(1.08) contrast(1.03) saturate(1.04);
}
.kids-v13-hero > img,
.page-hero img[src*="final-kids-hero"] {
  object-position: 50% 42% !important;
}
.kids-age-images img:first-child {
  object-position: 50% 28% !important;
}
.kids-age-images img:nth-child(2) {
  object-position: 50% 34% !important;
}
.women-clean .clean-hero-bg img,
.clean-hero-bg img[src*="final-women-hero"] {
  object-position: 50% 25% !important;
}
img[src*="final-women-community"] {
  object-position: 50% 38% !important;
}
img[src*="final-index-beginner"] {
  object-position: 50% 28% !important;
}
img[src*="final-"] {
  filter: brightness(1.03) saturate(1.02);
}
.page-hero.dark-hero .page-hero-overlay,
.page-hero.image-hero .page-hero-overlay {
  background:
    linear-gradient(90deg, rgba(0,0,0,.64), rgba(0,0,0,.28), rgba(0,0,0,.10)),
    linear-gradient(180deg, rgba(0,0,0,.06), rgba(0,0,0,.03), rgba(0,0,0,.62));
}
.page-hero,
.hero-band {
  overflow: hidden;
}
@media (max-width: 850px) {
  .competition-team-page .page-hero > img,
  .page-hero img[src*="final-competition-hero"] {
    object-position: 61% 55% !important;
    transform: scale(1.14);
  }
}


/* V16 final small corrections */

/* remove inconsistent visible frames/borders around images */
.story-float,
.showcase-small,
.spotlight-images img:last-child,
.featured-grid img,
.program-card img,
.editorial-image img,
.soft-feature .soft-image img,
.image-stack img,
.photo-grid img,
.mosaic img {
  border: none !important;
}

/* children hero: use clean original image, keep child/coach centered and friendly */
.kids-v13-hero > img,
.page-hero img[src*="v16-kids-hero-clean"] {
  object-position: 50% 38% !important;
  transform: scale(1.02);
  filter: brightness(1.08) contrast(1.02) saturate(1.03);
}

/* Denise card/profile crop: keep full face visible */
.featured-grid img[src*="v16-denise-heart-clean"],
.featured-grid img[src*="final-competition-denise"],
.profile-image img[src*="v16-denise-heart-clean"],
.profile-image img[src*="final-competition-denise"] {
  object-position: 50% 18% !important;
}

/* Beginner blue gi crop: avoid cutting off the head */
img[src*="v16-beginner-bluegi-clean"],
img[src*="final-index-beginner"] {
  object-position: 50% 16% !important;
}

/* Program cards need calmer, consistent crops */
.modern-programs .program-card img[src*="v16-beginner-bluegi-clean"],
.modern-programs .program-card img[src*="final-index-beginner"] {
  object-position: 50% 14% !important;
}

.modern-programs .program-card img {
  border-radius: 0 !important;
}

/* Make competition message card consistent with other image blocks */
.hero-band,
.program-card,
.featured-grid article {
  border: none !important;
}

/* keep Frank as Head Coach, only Denise labels were changed in HTML */


/* V17 updates */
.trainer-list-card img[src*="frank-burczynski-new"],
.featured-grid img[src*="frank-burczynski-new"],
.profile-image img[src*="frank-burczynski-new"] {
  object-position: 50% 18% !important;
  filter: brightness(1.04) contrast(1.03) saturate(1.02);
}

.kids-v13-hero > img[src*="kids-hero-arm-raised"],
.page-hero img[src*="kids-hero-arm-raised"] {
  object-position: 45% 42% !important;
  transform: scale(1.05);
  filter: brightness(1.08) contrast(1.03) saturate(1.03);
}

img[src*="v16-denise-heart-clean"],
img[src*="home-denise-heart"] {
  object-position: 50% 18% !important;
}

.beginner-clean .clean-hero-bg img,
.editorial-image img[src*="final-index-beginner"],
.showcase-main[src*="v16-beginner-bluegi-clean"] {
  object-position: 50% 14% !important;
}

.competition-culture {
  background: #fff;
}

.frank-profile-gallery .image-stack img:first-child {
  object-position: 50% 95%;
}
.frank-profile-gallery .image-stack img:nth-child(2) {
  object-position: 50% 95%;
}


/* V18 Google Reviews */

.reviews-section {
  width: min(var(--max), calc(100% - 48px));
  margin: 0 auto;
  padding: 110px 0;
}

.reviews-section .section-head.center {
  text-align: center;
  justify-content: center;
  margin-bottom: 34px;
}

.reviews-section .section-head.center > div,
.reviews-section .section-head.center p {
  margin-left: auto;
  margin-right: auto;
}

.reviews-section .section-head.center p {
  max-width: 620px;
}

.reviews-widget-card {
  position: relative;
  background: #ffffff;
  border: 1px solid rgba(0,0,0,.07);
  border-radius: 32px;
  padding: 26px;
  box-shadow: 0 28px 90px rgba(0,0,0,.08);
  overflow: hidden;
}

.reviews-widget-card::before {
  content: "";
  position: absolute;
  inset: -120px auto auto 50%;
  width: 520px;
  height: 260px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(18,73,92,.16), rgba(18,73,92,0) 70%);
  pointer-events: none;
}

.reviews-widget-card > script,
.reviews-widget-card > div {
  position: relative;
  z-index: 1;
}

.reviews-cta {
  margin-top: 34px;
}

.button-row.centered {
  justify-content: center;
}

@media (max-width: 650px) {
  .reviews-section {
    width: min(100% - 32px, var(--max));
    padding: 72px 0;
  }

  .reviews-widget-card {
    padding: 16px;
    border-radius: 24px;
  }
}


/* V19 Women image assignment + beginner hero crop */

.women-community-feature .soft-image img,
img[src*="v19-women-class-podium"] {
  object-position: 50% 34% !important;
}

img[src*="v19-women-coaching"] {
  object-position: 50% 38% !important;
}

img[src*="v19-women-flamingo"] {
  object-position: 50% 34% !important;
}

.beginner-hero-fix .clean-hero-bg img,
.beginner-clean .clean-hero-bg img {
  object-position: 50% 28% !important;
  transform: scale(1.06);
}

/* Card crops, so heads are not cut */
.program-card img[src*="final-index-beginner"],
.program-card img[src*="v16-beginner-bluegi-clean"],
.showcase-main[src*="final-index-beginner"],
.showcase-main[src*="v16-beginner-bluegi-clean"] {
  object-position: 50% 18% !important;
}

/* Keep women page adult/youth focused */
.frauen-bjj-berlin img[src*="final-competition-team"],
.frauen-bjj-berlin img[src*="competition-team-naga"] {
  display: none;
}


/* V20 launch refinements */

img[src*="v20-frank-profile"] {
  object-position: 50% 18% !important;
}

img[src*="v20-denise-heart"] {
  object-position: 50% 14% !important;
}

.page-hero img[src*="v20-kids-hero-arm"],
.kids-v13-hero > img {
  object-position: 50% 31% !important;
  transform: scale(1.06);
}

img[src*="v20-women-group"] {
  object-position: 50% 35% !important;
}

img[src*="v20-women-flamingo"] {
  object-position: 50% 28% !important;
}

.beginner-hero-fix .clean-hero-bg img,
.beginner-clean .clean-hero-bg img {
  object-position: 50% 16% !important;
  transform: scale(1.08);
}

.program-card img,
.featured-grid img,
.profile-hero img,
.soft-image img,
.image-stack img,
.spotlight-images img {
  border: none !important;
}

.women-extra-images-v20 {
  width: min(var(--max), calc(100% - 48px));
  display: grid;
  grid-template-columns: 1.3fr 1fr .8fr;
  gap: 22px;
  align-items: stretch;
}

.women-extra-images-v20 img {
  width: 100%;
  height: 360px;
  object-fit: cover;
  border-radius: 28px;
  box-shadow: 0 24px 70px rgba(0,0,0,.08);
}

.women-extra-images-v20 img:first-child {
  object-position: 50% 95%;
}

.competition-depth .team-culture {
  margin-top: 54px;
}

.denise-coaching-v20 .soft-feature {
  margin-top: 54px;
}

.prices .section-head p {
  max-width: 780px;
}

@media (max-width: 800px) {
  .women-extra-images-v20 {
    grid-template-columns: 1fr;
    width: min(100% - 32px, var(--max));
  }

  .women-extra-images-v20 img {
    height: 300px;
  }

  .beginner-hero-fix .clean-hero-bg img,
  .beginner-clean .clean-hero-bg img {
    object-position: 50% 12% !important;
  }

  .page-hero img[src*="v20-kids-hero-arm"] {
    object-position: 52% 30% !important;
  }
}


/* V21 legal + schedule fixes */

.legal-page {
  width: min(920px, calc(100% - 48px));
  margin: 0 auto;
  padding-top: 130px;
}

.legal-page h1 {
  font-size: clamp(46px, 7vw, 84px);
  line-height: .92;
  letter-spacing: -.055em;
  margin: 16px 0 36px;
}

.legal-card {
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 30px;
  padding: 42px;
  box-shadow: 0 28px 90px rgba(0,0,0,.07);
}

.legal-card h2 {
  font-size: 20px;
  margin: 34px 0 10px;
}

.legal-card h2:first-child {
  margin-top: 0;
}

.legal-card p {
  color: var(--muted);
  line-height: 1.75;
}

.schedule-widget {
  background: #fff;
  border: 1px solid rgba(0,0,0,.07);
  border-radius: 30px;
  padding: 24px;
  box-shadow: 0 24px 70px rgba(0,0,0,.07);
  overflow: hidden;
}

.gymdesk-schedule {
  min-height: 540px;
}

.footer-links a {
  margin-right: 18px;
}

@media (max-width: 650px) {
  .legal-page {
    width: min(100% - 32px, 920px);
    padding-top: 100px;
  }

  .legal-card {
    padding: 28px;
    border-radius: 24px;
  }

  .schedule-widget {
    padding: 12px;
    border-radius: 22px;
  }
}


/* V22 Gymdesk schedule fix */

.schedule-widget {
  min-height: 560px;
}

.schedule-widget .gymdesk-schedule {
  width: 100%;
  min-height: 560px;
}

.schedule-widget iframe {
  width: 100% !important;
  min-height: 560px !important;
  border: 0 !important;
}


/* V23 trainer images + legal polish */

/* Logo clean and transparent. No black box. */
.brand img,
.site-header .brand img,
.footer img,
.site-footer img,
.final-cta img {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
  mix-blend-mode: normal !important;
}

/* Trainer images unified */
.trainer-list-card img,
.profile-image img,
.featured-grid img,
.trainer-card img {
  object-fit: cover;
  object-position: 50% 95%;
}

img[src*="trainer-frank-v23"],
img[src*="trainer-denise-v23"],
img[src*="trainer-mauricio-v23"],
img[src*="trainer-toni-v23"] {
  object-position: 50% 14% !important;
}

/* Impressum typography */
.legal-page h1,
.legal-card h2,
.legal-card h3 {
  letter-spacing: normal !important;
  text-transform: none !important;
}

.legal-page h1 {
  max-width: none;
  font-size: clamp(42px, 6vw, 72px);
  line-height: 1;
}

.legal-card {
  max-width: 840px;
}

.legal-card h2 {
  font-size: 22px;
  line-height: 1.15;
  letter-spacing: normal !important;
}

/* Footer spacing polish */
.site-footer,
.footer {
  padding-left: max(28px, calc((100vw - var(--max)) / 2)) !important;
  padding-right: max(28px, calc((100vw - var(--max)) / 2)) !important;
}

.footer-links,
.site-footer .footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  align-items: center;
}

.footer-links a,
.site-footer .footer-links a {
  margin: 0 !important;
}

/* Private training CTA */
.private-training-denise .split-card,
.private-training-frank .split-card {
  align-items: center;
}

.private-training-denise .button,
.private-training-frank .button {
  margin-top: 12px;
}

@media (max-width: 650px) {
  .site-footer,
  .footer {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }

  .legal-page h1 {
    font-size: 42px;
  }
}


/* V26 Pre Launch polish */

/* Use the transparent logo cleanly. */
.brand,
.brand img,
.site-header .brand,
.site-header .brand img,
.footer-brand img,
.premium-footer img {
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
}

.brand img,
.footer-brand img {
  object-fit: contain !important;
}

/* Strong facts below hero */
.home-facts-v26 {
  width: min(var(--max), calc(100% - 48px));
  margin: -34px auto 70px;
  position: relative;
  z-index: 4;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}

.fact-card {
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(0,0,0,.07);
  border-radius: 24px;
  padding: 24px;
  box-shadow: 0 18px 60px rgba(0,0,0,.08);
  backdrop-filter: blur(12px);
}

.fact-card strong {
  display: block;
  font-size: clamp(28px, 3vw, 44px);
  line-height: .95;
  letter-spacing: -.04em;
  color: var(--ink);
}

.fact-card span {
  display: block;
  margin-top: 8px;
  color: var(--muted);
  font-weight: 700;
}

/* Premium footer */
.premium-footer {
  display: grid !important;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 34px;
  align-items: start;
  width: 100%;
  padding-top: 70px !important;
  padding-bottom: 34px !important;
  background: #0c0c0d;
  color: #fff;
}

.premium-footer a {
  display: block;
  color: rgba(255,255,255,.72);
  text-decoration: none;
  margin: 0 0 11px !important;
  font-weight: 700;
}

.premium-footer a:hover {
  color: #fff;
}

.premium-footer h4 {
  margin: 0 0 18px;
  color: #fff;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: 12px;
}

.footer-brand img {
  width: 92px;
  height: auto;
  margin-bottom: 16px;
}

.footer-brand strong {
  display: block;
  font-size: 22px;
  letter-spacing: -.02em;
  margin-bottom: 8px;
}

.footer-brand p {
  color: rgba(255,255,255,.68);
  max-width: 330px;
}

.footer-cta {
  display: inline-flex !important;
  color: #fff !important;
  margin-top: 12px !important;
}

.footer-bottom {
  grid-column: 1 / -1;
  margin: 26px 0 0;
  padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.52);
}

/* Legal page polish */
.legal-page h1,
.legal-card h2,
.legal-card h3 {
  letter-spacing: normal !important;
  text-transform: none !important;
}

.legal-card {
  margin-bottom: 60px;
}

/* Frank gallery */
.media-grid.three,
.frank-gallery-v26 .media-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

.media-grid.three img,
.frank-gallery-v26 img {
  width: 100%;
  height: 420px;
  object-fit: cover;
  border-radius: 28px;
  box-shadow: 0 24px 70px rgba(0,0,0,.08);
}

img[src*="v26-frank-worlds-podium"] {
  object-position: 50% 95%;
}

img[src*="v26-frank-medal"] {
  object-position: 50% 95%;
}

img[src*="v26-frank-sitting"] {
  object-position: 50% 95%;
}

/* Beginner image crop */
img[src*="v26-beginner-team"],
.beginner-hero-fix .clean-hero-bg img[src*="v26-beginner-team"],
.beginner-clean .clean-hero-bg img[src*="v26-beginner-team"] {
  object-position: 50% 32% !important;
}

/* Mobile hero crops. Keep faces visible. */
@media (max-width: 850px) {
  .home-facts-v26 {
    grid-template-columns: repeat(2, 1fr);
    width: min(100% - 32px, var(--max));
    margin: -22px auto 48px;
  }

  .premium-footer {
    grid-template-columns: 1fr 1fr;
    gap: 28px;
  }

  .media-grid.three,
  .frank-gallery-v26 .media-grid {
    grid-template-columns: 1fr;
  }

  .media-grid.three img,
  .frank-gallery-v26 img {
    height: 360px;
  }

  img[src*="v26-beginner-team"] {
    object-position: 50% 22% !important;
  }

  img[src*="v20-kids-hero-arm"] {
    object-position: 52% 28% !important;
  }

  img[src*="v20-women-group"],
  img[src*="women-group"] {
    object-position: 50% 30% !important;
  }

  img[src*="competition-action"],
  img[src*="final-competition-hero"] {
    object-position: 48% 28% !important;
  }
}

@media (max-width: 600px) {
  .home-facts-v26 {
    grid-template-columns: 1fr;
  }

  .fact-card {
    padding: 20px;
  }

  .premium-footer {
    grid-template-columns: 1fr;
    padding-left: 24px !important;
    padding-right: 24px !important;
  }

  .footer-brand img {
    width: 76px;
  }
}


/* V27 current version polish */

/* Startseite Hero: Community-Gruppenbild behalten, aber Menschen stärker fokussieren. */
.home-hero .hero-bg img,
.hero.home-hero img,
.hero-bg img {
  object-position: 50% 95%;
}

/* Nur für Anfängerseite das neue Mauricio-Teamfoto als Hero freundlicher croppen. */
body:has(img[src*="v26-beginner-team"]) img[src*="v26-beginner-team"] {
  object-position: 50% 24% !important;
}

/* Kontaktseite */
.contact-page-v27 {
  padding-top: 120px;
}

.contact-page-v27 h1 {
  max-width: 820px;
  font-size: clamp(54px, 8vw, 110px);
  line-height: .88;
  letter-spacing: -.06em;
  margin-bottom: 20px;
}

.contact-page-v27 .lead {
  max-width: 720px;
}

.contact-grid-v27 {
  margin-top: 44px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}

.contact-card-v27 {
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 28px;
  padding: 28px;
  box-shadow: 0 24px 70px rgba(0,0,0,.06);
}

.contact-card-v27.highlight {
  background: #111;
  color: #fff;
}

.contact-card-v27.highlight p {
  color: rgba(255,255,255,.72);
}

.contact-card-v27 h2 {
  margin-top: 0;
  letter-spacing: -.03em;
}

/* Competition V27 */
.competition-feature-v27 {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 34px;
  align-items: center;
  margin: 44px 0;
}

.competition-feature-v27 img {
  width: 100%;
  height: 520px;
  object-fit: cover;
  object-position: 50% 95%;
  border-radius: 34px;
  box-shadow: 0 30px 80px rgba(0,0,0,.10);
}

.competition-feature-v27 h3 {
  font-size: clamp(36px, 4vw, 68px);
  line-height: .9;
  letter-spacing: -.05em;
  margin: 0 0 18px;
}

.competition-grid-v27 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.competition-grid-v27 img {
  width: 100%;
  height: 420px;
  object-fit: cover;
  border-radius: 26px;
  box-shadow: 0 22px 60px rgba(0,0,0,.08);
}

img[src*="v27-comp-denise-victory"] {
  object-position: 48% 42% !important;
}

img[src*="v27-comp-denise-stand"] {
  object-position: 46% 32%;
}

img[src*="v27-comp-kid-win"] {
  object-position: 42% 28%;
}

img[src*="v27-comp-youth-fight"],
img[src*="v27-comp-kids-fight"] {
  object-position: 50% 95%;
}

img[src*="v27-comp-denise-action"] {
  object-position: 45% 34%;
}

img[src*="v27-comp-mauricio"] {
  object-position: 50% 95%;
}

.split-image {
  width: 100%;
  height: 480px;
  object-fit: cover;
  border-radius: 30px;
}

@media (max-width: 950px) {
  .contact-grid-v27,
  .competition-grid-v27 {
    grid-template-columns: repeat(2, 1fr);
  }

  .competition-feature-v27 {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 650px) {
  .home-hero .hero-bg img,
  .hero.home-hero img,
  .hero-bg img {
    object-position: 50% 95%;
  }

  .contact-grid-v27,
  .competition-grid-v27 {
    grid-template-columns: 1fr;
  }

  .contact-page-v27 {
    padding-top: 90px;
  }

  .competition-grid-v27 img,
  .competition-feature-v27 img {
    height: 340px;
  }
}


/* V28 Feinschliff */

/* Startseite Trainerbilder identisch und sauber gecroppt */
.home-coaches img,
.featured-coaches img,
.trainer-preview img,
.trainer-list-card img,
.trainer-card img {
  object-fit: cover;
  object-position: 50% 95%;
}

img[src*="trainer-frank-v23"],
img[src*="trainer-denise-v23"],
img[src*="trainer-mauricio-v23"],
img[src*="trainer-toni-v23"] {
  object-position: 50% 13% !important;
}

/* Neue Coach/Team Bilder */
img[src*="v28-denise-team-mat"] {
  object-position: 50% 95%;
}

img[src*="v28-frank-team-mat"] {
  object-position: 50% 95%;
}

.coaches-on-mat-v28 {
  padding-top: 40px;
}

.coach-action-grid-v28 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-top: 34px;
}

.coach-action-grid-v28 article {
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 32px;
  overflow: hidden;
  box-shadow: 0 28px 80px rgba(0,0,0,.08);
}

.coach-action-grid-v28 img {
  width: 100%;
  height: 520px;
  object-fit: cover;
  display: block;
}

.coach-action-grid-v28 h3 {
  font-size: 30px;
  letter-spacing: -.04em;
  margin: 24px 26px 8px;
}

.coach-action-grid-v28 p {
  margin: 0 26px 28px;
  color: var(--muted);
}

/* Kontaktseite aufgeräumt und gleichmäßiger */
.contact-page-v27 {
  width: min(var(--max), calc(100% - 48px));
  margin: 0 auto;
}

.contact-grid-v27 {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 22px !important;
  align-items: stretch;
}

.contact-card-v27 {
  min-height: 240px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 32px !important;
}

.contact-card-v27 h2 {
  font-size: 28px;
  margin-bottom: 12px;
}

.contact-card-v27 p {
  margin-bottom: 24px;
}

.contact-card-v27 .button {
  align-self: flex-start;
  margin-top: auto;
}

.contact-card-v27.highlight {
  background: linear-gradient(135deg, #111 0%, #252525 100%);
}

/* Frauenbereich: wenn Bilder durch Entfernen fehlen, Layout nicht brechen */
.frauen-page img[src=""],
.women-page img[src=""] {
  display: none !important;
}

/* Wettkampfseite ruhiger, neue Bilder stärker */
.competition-gallery-v27 {
  padding-bottom: 30px;
}

@media (max-width: 850px) {
  .coach-action-grid-v28 {
    grid-template-columns: 1fr;
  }

  .coach-action-grid-v28 img {
    height: 420px;
  }

  .contact-grid-v27 {
    grid-template-columns: 1fr !important;
  }

  .contact-card-v27 {
    min-height: auto;
  }
}

@media (max-width: 600px) {
  .coach-action-grid-v28 img {
    height: 340px;
  }

  .contact-page-v27 {
    width: min(100% - 32px, var(--max));
  }
}


/* V29 Finaler Feinschliff */

/* Startseite Hero neues, cleanes Gruppenbild */
.v29-home-hero img,
.home-hero .hero-bg img,
.hero.home-hero img,
.hero-bg img[src*="v29-home-hero-clean-team"] {
  object-position: 50% 42% !important;
}

img[src*="v29-home-hero-clean-team"] {
  object-fit: cover;
  object-position: 50% 42% !important;
}

/* Trainerbilder auf Startseite und Trainerseite einheitlich */
.home-coaches img,
.featured-coaches img,
.trainer-preview img,
.trainer-card img,
.trainer-list-card img {
  object-fit: cover !important;
  object-position: 50% 14% !important;
}

img[src*="trainer-frank-v23"],
img[src*="trainer-denise-v23"],
img[src*="trainer-mauricio-v23"],
img[src*="trainer-toni-v23"] {
  object-position: 50% 13% !important;
}

/* Anfängerseite Hinweistext */
.beginner-note-text {
  margin-top: 18px;
  max-width: 760px;
  color: rgba(255,255,255,.88);
}

.beginner-note-v29 .split-card {
  align-items: center;
}

/* Wettkampfteam Hero zurück auf Sieg-Bild */
img[src*="v27-comp-denise-victory"] {
  object-position: 48% 44% !important;
}

/* Wettkampfteam sortierter und symmetrischer */
.competition-feature-v27 {
  grid-template-columns: minmax(0, 1fr) minmax(320px, .72fr) !important;
  gap: 30px !important;
  align-items: center !important;
  max-width: 1120px;
  margin-left: auto !important;
  margin-right: auto !important;
}

.competition-feature-v27 img {
  height: 420px !important;
  max-height: 420px !important;
  object-position: 50% 42% !important;
  border-radius: 28px !important;
}

.competition-grid-v27 {
  max-width: 1120px;
  margin-left: auto;
  margin-right: auto;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 18px !important;
}

.competition-grid-v27 img {
  height: 360px !important;
  border-radius: 24px !important;
}

.coaches-on-mat-v28,
.competition-gallery-v27 {
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
}

.coach-action-grid-v28 {
  max-width: 1040px;
  margin-left: auto;
  margin-right: auto;
}

.coach-action-grid-v28 img {
  height: 430px !important;
}

img[src*="v28-denise-team-mat"] {
  object-position: 50% 46% !important;
}

img[src*="v28-frank-team-mat"] {
  object-position: 50% 24% !important;
}

/* Kontaktseite ruhiger und ordentlich */
.contact-page-v27 {
  width: min(1120px, calc(100% - 48px)) !important;
  margin: 0 auto !important;
}

.contact-grid-v27 {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 22px !important;
  align-items: stretch !important;
}

.contact-card-v27 {
  min-height: 238px !important;
  padding: 32px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
}

.contact-card-v27 .button {
  width: fit-content;
  margin-top: auto;
}

/* Frauenbereich darf keine entfernten Bilder als Lücke zeigen */
.frauen-page img[src=""],
.women-page img[src=""] {
  display: none !important;
}

/* Mobile */
@media (max-width: 850px) {
  img[src*="v29-home-hero-clean-team"] {
    object-position: 50% 42% !important;
  }

  .competition-feature-v27 {
    grid-template-columns: 1fr !important;
  }

  .competition-feature-v27 img,
  .competition-grid-v27 img,
  .coach-action-grid-v28 img {
    height: 340px !important;
  }

  .competition-grid-v27,
  .contact-grid-v27 {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 600px) {
  .contact-page-v27 {
    width: min(100% - 32px, 1120px) !important;
  }

  .contact-card-v27 {
    min-height: auto !important;
  }
}


/* V30 Release 1.0 cleanup */

/* Remove the duplicated fact tiles from older versions if any remain */
.home-facts-v26 {
  display: none !important;
}

/* Hero checks instead of awkward extra buttons */
.hero-checks-v30 {
  list-style: none;
  padding: 0;
  margin: 24px 0 0;
  display: grid;
  gap: 10px;
  max-width: 720px;
}

.hero-checks-v30 li {
  position: relative;
  padding-left: 30px;
  color: rgba(255,255,255,.92);
  font-weight: 750;
  line-height: 1.35;
}

.hero-checks-v30 li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: #12495c;
  font-weight: 900;
}

/* Start hero crop */
img[src*="v29-home-hero-clean-team"] {
  object-position: 50% 42% !important;
}

/* Beginner note */
.beginner-note-v30 .split-card {
  align-items: center;
}

/* Competition page calmer and less repetitive */
.competition-feature-v27 {
  grid-template-columns: minmax(0, 1fr) minmax(300px, .72fr) !important;
  gap: 28px !important;
  max-width: 1080px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.competition-feature-v27 img {
  height: 380px !important;
  max-height: 380px !important;
  border-radius: 28px !important;
}

.competition-grid-v27 {
  max-width: 1080px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 18px !important;
}

.competition-grid-v27 img {
  height: 330px !important;
  border-radius: 24px !important;
}

.competition-gallery-v27 {
  padding-top: 60px !important;
}

img[src*="v27-comp-denise-victory"] {
  object-position: 48% 44% !important;
}

/* Contact cards equal */
.contact-grid-v27 {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 22px !important;
}

.contact-card-v27 {
  min-height: 238px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
}

@media (max-width: 850px) {
  .competition-feature-v27,
  .competition-grid-v27,
  .contact-grid-v27 {
    grid-template-columns: 1fr !important;
  }

  .competition-feature-v27 img,
  .competition-grid-v27 img {
    height: 330px !important;
  }
}


/* V31 final fixes: readable hero facts, Frank update, language switch */
.hero-checks-v30 {
  background: rgba(255,255,255,.92) !important;
  color: #1f2528 !important;
  padding: 18px 22px !important;
  border-radius: 18px !important;
  box-shadow: 0 18px 55px rgba(0,0,0,.12) !important;
  backdrop-filter: blur(10px);
  border: 1px solid rgba(0,0,0,.06);
}

.hero-checks-v30 li {
  color: #1f2528 !important;
  text-shadow: none !important;
}

.hero-checks-v30 li::before {
  color: #12495c !important;
}

.language-toggle {
  appearance: none;
  border: 1px solid rgba(18,73,92,.28);
  background: rgba(255,255,255,.92);
  color: #1f2528;
  border-radius: 999px;
  padding: 10px 14px;
  font-weight: 900;
  letter-spacing: .08em;
  cursor: pointer;
  transition: transform .18s ease, background .18s ease, color .18s ease;
}

.language-toggle:hover {
  transform: translateY(-1px);
  background: #12495c;
  color: #fff;
}

#google_translate_element,
.goog-te-banner-frame,
.goog-te-gadget,
.goog-logo-link,
.goog-te-gadget span {
  display: none !important;
}

body { top: 0 !important; }

img[src*="frank-burczynski-2026"] {
  object-position: 50% 20% !important;
}

.profile-image img[src*="frank-burczynski-2026"] {
  object-position: 50% 18% !important;
}

.trainer-list-card img[src*="frank-burczynski-2026"],
.trainer-card img[src*="frank-burczynski-2026"],
.featured-grid img[src*="frank-burczynski-2026"] {
  object-position: 50% 16% !important;
}

@media (max-width: 900px) {
  .language-toggle {
    padding: 9px 12px;
  }
}


/* V32 final corrections */

/* Remove the box behind the hero check list. Keep the check text clean. */
.hero-checks-v30,
.hero-checks,
.hero-list,
.hero-points {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: none !important;
  box-shadow: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.hero-checks-v30 li,
.hero-checks li,
.hero-list p,
.hero-points div {
  text-shadow: 0 2px 12px rgba(0,0,0,.34);
}

/* V33: Sprachumschalter EN/DE im Header */
.lang-switch-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  height: 34px;
  padding: 0 12px;
  margin-left: 10px;
  border: 1px solid rgba(0,0,0,.16);
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .02em;
  color: inherit;
  text-decoration: none;
  transition: background .15s ease, border-color .15s ease;
}

.lang-switch-link:hover {
  background: rgba(0,0,0,.06);
  border-color: rgba(0,0,0,.28);
}

.dark-header .lang-switch-link,
.site-header.dark .lang-switch-link {
  border-color: rgba(255,255,255,.28);
}

.dark-header .lang-switch-link:hover,
.site-header.dark .lang-switch-link:hover {
  background: rgba(255,255,255,.12);
}

@media (max-width: 650px) {
  .lang-switch-link {
    margin-left: 6px;
  }
}

/* V34: Hero-Band Textblock vertikal zentrieren statt unten anzuhängen */
.hero-band {
  align-items: center;
}

.hero-band > div {
  padding: 54px;
}

.map-section {
  margin-top: 60px;
}

.map-section h2 {
  margin-bottom: 20px;
  letter-spacing: -.03em;
}

.map-embed {
  border-radius: 28px;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 24px 70px rgba(0,0,0,.06);
  line-height: 0;
}

.map-embed iframe {
  display: block;
  width: 100%;
  border: 0;
}

.map-reviews-button {
  margin-top: 22px;
}

@media (max-width: 650px) {
  .map-section {
    margin-top: 44px;
  }

  .map-embed iframe {
    height: 320px;
  }
}

/* V33: Mobiles Hamburger-Menü */
.nav-toggle {
  display: none;
  width: 44px;
  height: 44px;
  margin-left: auto;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  flex-shrink: 0;
}

.nav-toggle span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--black);
  border-radius: 2px;
  transition: transform .2s ease, opacity .2s ease;
}

.site-header.nav-open .nav-toggle span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.site-header.nav-open .nav-toggle span:nth-child(2) {
  opacity: 0;
}

.site-header.nav-open .nav-toggle span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

.mobile-nav-panel {
  display: flex;
  align-items: center;
  gap: 22px;
}

@media (max-width: 1050px) {
  .nav-toggle {
    display: flex;
  }

  .mobile-nav-panel {
    display: none;
    position: fixed;
    top: 76px;
    left: 0;
    right: 0;
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
    background: #fff;
    padding: 10px 24px 24px;
    max-height: calc(100vh - 76px);
    overflow-y: auto;
    box-shadow: 0 24px 50px rgba(0,0,0,.16);
    border-bottom: 1px solid var(--line);
    z-index: 99;
  }

  .site-header.nav-open .mobile-nav-panel {
    display: flex;
  }

  .mobile-nav-panel .main-nav {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .mobile-nav-panel .main-nav a {
    padding: 15px 2px;
    border-bottom: 1px solid var(--line);
    width: 100%;
  }

  .mobile-nav-panel .header-button,
  .mobile-nav-panel .nav-cta {
    display: inline-flex !important;
    margin: 16px 0 6px;
    width: 100%;
  }

  .mobile-nav-panel .lang-switch-link {
    margin: 0 0 8px;
    align-self: flex-start;
  }
}

@media (max-width: 650px) {
  .mobile-nav-panel {
    top: 70px;
    max-height: calc(100vh - 70px);
  }
}

/* V34: Schulen-Karten auf der Netzwerk-Seite */
.network-schools .why-grid article {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.network-schools .why-grid a.text-link {
  display: inline-block;
  margin-top: 4px;
}

.network-schools .why-grid article h3 {
  margin-bottom: 0;
}

/* V34: Hinweistext unterhalb von why-grid Sektionen */
.section-note {
  margin-top: 24px;
  font-weight: 850;
  color: var(--text);
}

/* V34: Vollbreites Foto mit Bildunterschrift (Netzwerk-Seite) */
.network-photo-full {
  width: min(var(--max), calc(100% - 48px));
  margin: 0 auto;
}

.network-photo-full img {
  width: 100%;
  max-height: 620px;
  object-fit: cover;
  border-radius: 34px;
  box-shadow: 0 35px 90px rgba(0,0,0,.16);
  display: block;
}

.network-photo-full .section-note {
  text-align: center;
  margin-top: 18px;
  color: var(--muted);
  font-weight: 700;
}

@media (max-width: 650px) {
  .network-photo-full img {
    max-height: 420px;
    border-radius: 20px;
  }
}

/* V35: Netzwerk-Seite - Bildausschnitte korrigieren */
.page-hero img[src*="network-blackbelts-germany"] {
  object-position: 50% 48%;
}

.editorial-image img[src*="pedro-duarte"] {
  object-position: 50% 12%;
}

/* V35: Abstand zwischen zwei direkt aufeinanderfolgenden split-card Sektionen */
.split-card + .split-card {
  margin-top: 32px;
}

/* V35: Vertikale Ausrichtung im Kopfbereich "Ein starkes Team auf und neben der Matte" korrigieren */
.featured-coaches .section-head {
  align-items: center;
}

/* V35: Bildausschnitt fürs Sparring-Foto auf der Frauenseite - beide Gesichter mittig */
.women-soft .soft-image img[src*="women-sparring-armlock"] {
  object-position: 50% 15%;
}

/* V36: FAQ Accordion */
.faq-groups {
  display: flex;
  flex-direction: column;
  gap: 56px;
}

.faq-group h2 {
  font-size: 22px;
  letter-spacing: -.01em;
  margin-bottom: 20px;
}

.faq-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.faq-item {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 4px 26px;
  box-shadow: 0 10px 30px rgba(0,0,0,.04);
}

.faq-item summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 20px 0;
  font-weight: 800;
  font-size: 17px;
  color: var(--text);
}

.faq-item summary::-webkit-details-marker {
  display: none;
}

.faq-item summary::after {
  content: "+";
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  font-weight: 700;
  color: var(--orange);
  transition: transform .2s ease;
}

.faq-item[open] summary::after {
  content: "\2212";
}

.faq-item p {
  margin: 0 0 22px;
  color: var(--muted);
  line-height: 1.6;
}

@media (max-width: 650px) {
  .faq-item summary {
    font-size: 15px;
    padding: 16px 0;
  }

  .faq-groups {
    gap: 40px;
  }
}

/* V37: "Über uns" Startseite - Copy-Spalte unten ausrichten statt oben schweben */
#ueber-uns {
  align-items: center;
}

/* V38: Lisa und Daniel Profilbilder - Kopfabstand an Frank angleichen */
.profile-image img[src*="daniel.jpg"] {
  object-position: 50% 95%;
}

/* V38: Daniel Kartenansichten - gleicher enger Zuschnitt wie Profilbild */
.trainer-list-card img[src*="daniel.jpg"] {
  object-position: 50% 72% !important;
}

.trainer-card img[src*="daniel.jpg"] {
  object-position: 50% 55% !important;
}

/* V39: Navigation - Lücke zwischen Mobile-Breakpoint (1050px) und
   tatsächlich benötigter Desktop-Breite (~1300px) schließen. In diesem
   Bereich quetschte sich die Desktop-Nav, der Markenname brach auf 3 Zeilen
   um und der Buchen-Button wurde abgeschnitten. */
@media (max-width: 1340px) {
  .main-nav {
    display: none;
  }

  .header-button {
    display: none;
  }

  .nav-toggle {
    display: flex;
  }

  .mobile-nav-panel {
    display: none;
    position: fixed;
    top: 76px;
    left: 0;
    right: 0;
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
    background: #fff;
    padding: 10px 24px 24px;
    max-height: calc(100vh - 76px);
    overflow-y: auto;
    box-shadow: 0 24px 50px rgba(0,0,0,.16);
    border-bottom: 1px solid var(--line);
    z-index: 99;
  }

  .site-header.nav-open .mobile-nav-panel {
    display: flex;
  }

  .mobile-nav-panel .main-nav {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .mobile-nav-panel .main-nav a {
    padding: 15px 2px;
    border-bottom: 1px solid var(--line);
    width: 100%;
  }

  .mobile-nav-panel .header-button,
  .mobile-nav-panel .nav-cta {
    display: inline-flex !important;
    margin: 16px 0 6px;
    width: 100%;
  }

  .mobile-nav-panel .lang-switch-link {
    margin: 0 0 8px;
    align-self: flex-start;
  }
}

/* ===== IMAG petrol palette: legibility fix for accent text on dark backgrounds ===== */
.dark-section .eyebrow,
.final-cta .eyebrow,
.trainer-card .initial,
.trainer-card p,
.trainer-card span {
  color: var(--accent-light);
}

/* Compact trainer grid for sections with only 1-2 trainers, so cards don't
   stretch into a mostly-empty 4-column row */
.trainer-grid-compact {
  grid-template-columns: repeat(auto-fit, minmax(180px, 220px));
  justify-content: start;
}

/* ===== Photo-free hero variant (used until real club-wide photography exists) ===== */
.hero-noimage {
  background:
    radial-gradient(circle at 82% 18%, rgba(94,181,209,.22), transparent 46%),
    repeating-linear-gradient(135deg, rgba(255,255,255,.035) 0px, rgba(255,255,255,.035) 2px, transparent 2px, transparent 40px),
    linear-gradient(160deg, #0b3341 0%, #0a1f28 55%, #101010 100%);
}

.hero-noimage .eyebrow {
  color: var(--accent-light);
}

.hero-noimage h1 {
  color: #fff;
}

.hero-noimage h1 span {
  color: var(--accent-light);
}

.hero-noimage .hero-copy {
  color: rgba(255,255,255,.82);
}

.hero-noimage .hero-list p {
  color: rgba(255,255,255,.92);
}

.hero-noimage .hero-list span {
  color: var(--accent-light);
}

/* Homepage: unified grid of all seven sports/offerings, sized to fill each
   row evenly regardless of count instead of leaving an awkward remainder */
.sports-grid-seven {
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

/* Vereinsführung: three board members instead of two */
.featured-grid-three {
  grid-template-columns: repeat(3, 1fr);
}

@media (max-width: 860px) {
  .featured-grid-three {
    grid-template-columns: 1fr;
  }
}

/* final-cta without a logo image: collapse the empty 130px logo column */
.final-cta.no-logo {
  grid-template-columns: 1fr auto;
}

@media (max-width: 650px) {
  .final-cta.no-logo {
    grid-template-columns: 1fr;
  }
}

/* Two-column variant of why-grid, for short side-by-side intro texts
   (e.g. "what is Thaiboxen" / "what is Kickboxen") */
.why-grid-two {
  grid-template-columns: repeat(2, 1fr);
}

@media (max-width: 700px) {
  .why-grid-two {
    grid-template-columns: 1fr;
  }
}

/* Program card variant for sports without photography yet: a branded
   color block instead of an image, sized to match photo cards */
.card-glyph {
  height: 240px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: linear-gradient(155deg, #12495c 0%, #0a1f28 100%);
  color: #fff;
  font-size: 26px;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: -0.01em;
  text-align: center;
  line-height: 1.15;
}

/* Initials placeholder for trainer profile pages without a photo */
.profile-image .initial {
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(155deg, #12495c 0%, #0a1f28 100%);
  color: #fff;
  font-size: 72px;
  font-weight: 950;
  border-radius: var(--radius);
}

/* Per-photo headroom corrections so heads line up consistently across
   trainer-card thumbnails, since the source photos are framed differently */
.trainer-card img[src*="trainer-ayo"] {
  object-position: center 32%;
}
.trainer-card img[src*="trainer-toni-kickbox"] {
  object-position: center 8%;
}
.trainer-card img[src*="trainer-daniel-schneider"] {
  object-position: center 14%;
}
.trainer-card img[src*="trainer-henrike"] {
  object-position: center 20%;
}

/* Shrink the photo-free homepage hero: with no image it doesn't need as
   much vertical space, and the previous size felt empty */
.hero-noimage {
  min-height: auto;
}

.hero-noimage .hero-inner {
  padding-top: 64px;
  padding-bottom: 56px;
}

.hero-noimage .button-row {
  margin-bottom: 0;
}

/* Profile page portraits: keep heads fully in frame (the taller profile
   crop clips heads more aggressively than the trainer-card thumbnail) */
.profile-image img[src*="trainer-toni-kickbox"] {
  object-position: center 4%;
}
.profile-image img[src*="trainer-henrike"] {
  object-position: center 6%;
}
.profile-image img[src*="trainer-ayo"] {
  object-position: center 8%;
}
.profile-image img[src*="trainer-daniel-schneider"] {
  object-position: center 6%;
}

/* Extra legibility safety margin for hero text now that the overlay is
   lighter (needed so the photo underneath — including the person on the
   left — stays visible) */
.hero-inner h1,
.hero-inner .eyebrow,
.hero-inner .hero-copy,
.hero-inner .hero-list p {
  text-shadow: 0 1px 16px rgba(255,255,255,.85), 0 1px 2px rgba(255,255,255,.9);
}

/* Two-column variant of clean-showcase (no photos): text on the left,
   checklist on the right, matching the .split pattern used elsewhere */
.clean-showcase.no-media {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}

.clean-showcase.no-media .showcase-copy p:not(.eyebrow) {
  max-width: 100%;
}

.clean-showcase.no-media .hero-checks-v30 {
  max-width: 100%;
}

@media (max-width: 860px) {
  .clean-showcase.no-media {
    grid-template-columns: 1fr;
  }
}

/* Clear numbered dividers between the different offerings on the Weitere
   Angebote page, so it's obvious where one course ends and the next begins */
.offer-divider {
  width: min(var(--max), calc(100% - 48px));
  margin: 0 auto;
  display: flex;
  align-items: baseline;
  gap: 18px;
  padding-top: 64px;
  border-top: 1px solid var(--line);
}

.offer-divider:first-of-type {
  border-top: none;
  padding-top: 0;
}

.offer-divider-index {
  font-size: 15px;
  font-weight: 950;
  color: var(--muted);
  letter-spacing: .04em;
}

.offer-divider-label {
  font-size: 13px;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--orange);
}

/* Three-column offering layout: text, image, trainer(s) side by side in one
   row instead of separate stacked blocks */
.offer-row {
  display: grid;
  grid-template-columns: 1fr 0.9fr 0.7fr;
  gap: 40px;
  align-items: start;
  border-top: 1px solid var(--line);
  padding-top: 64px;
}

.offer-row:first-of-type {
  border-top: none;
  padding-top: 0;
}

.offer-row .offer-text h2 {
  font-size: 36px;
  line-height: 1.08;
}

.offer-image {
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow);
}

.offer-image img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}

.offer-trainers {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.offer-trainers .trainer-card {
  width: 100%;
}

@media (max-width: 980px) {
  .offer-row {
    grid-template-columns: 1fr;
  }
  .offer-trainers {
    flex-direction: row;
    flex-wrap: wrap;
  }
  .offer-trainers .trainer-card {
    flex: 1 1 220px;
  }
}

/* Weitere Angebote: sport photo as full-bleed section background, with
   text and trainer(s) laid out on top */
.offer-bg-row {
  position: relative;
  width: min(var(--max), calc(100% - 48px));
  margin: 0 auto 40px;
  border-radius: 28px;
  overflow: hidden;
  min-height: 480px;
  display: grid;
  grid-template-columns: 1.3fr 0.7fr;
  gap: 40px;
  align-items: center;
  padding: clamp(32px, 5vw, 64px);
  color: #fff;
  box-shadow: 0 34px 90px rgba(0,0,0,.16);
}

.offer-bg-row.no-trainer {
  grid-template-columns: 1fr;
  min-height: 360px;
}

.offer-bg-image {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.offer-bg-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.offer-bg-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(100deg, rgba(8,18,23,.82) 0%, rgba(8,18,23,.55) 42%, rgba(8,18,23,.12) 100%);
}

.offer-bg-row .offer-text,
.offer-bg-row .offer-trainers {
  position: relative;
  z-index: 2;
}

.offer-bg-row .offer-text .eyebrow {
  color: var(--accent-light);
  font-size: 17px;
  letter-spacing: .08em;
}

.offer-bg-row .offer-text h2 {
  color: #fff;
  font-size: 44px;
  line-height: 1.08;
}

.offer-bg-row .offer-text .copy {
  color: rgba(255,255,255,.86);
  max-width: 480px;
}

.offer-bg-row .offer-text .text-link {
  color: var(--accent-light);
}

.offer-bg-row .offer-trainers {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

@media (max-width: 860px) {
  .offer-bg-row {
    grid-template-columns: 1fr;
  }
  .offer-bg-row .offer-trainers {
    flex-direction: row;
    flex-wrap: wrap;
  }
  .offer-bg-row .offer-trainers .trainer-card {
    flex: 1 1 200px;
  }
}

/* Frauen page: fix heads being cropped out of the wide/short hero and
   offer-bg-row background images — force a strong top bias so faces stay
   fully in frame even in these unusually short crops */
.clean-hero-bg img[src*="final-women-hero"],
.offer-bg-image img[src*="final-women-hero"] {
  object-position: center 6% !important;
}

.offer-bg-image img[src*="kickbox-women-pads"] {
  object-position: center 10% !important;
}

/* Kinder page hero: keep the kids' faces in frame on the wide/short hero crop */
.clean-hero-bg img[src*="bjj-kids-competition"] {
  object-position: center 20%;
  transform: scaleX(-1);
}

/* Kinder page offer boxes: keep kids' faces in frame */
.offer-bg-image img[src*="bjj-kids-grappling"] {
  object-position: center 30%;
}
.offer-bg-image img[src*="boxen-kids-sparring"] {
  object-position: center 15%;
}

/* ===== Sportarten dropdown in main nav ===== */
.nav-dropdown {
  position: relative;
}

.nav-dropdown-trigger {
  appearance: none;
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
  font: inherit;
  color: inherit;
  text-transform: inherit;
  letter-spacing: inherit;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.nav-dropdown-trigger .caret {
  font-size: 10px;
  transition: transform .15s ease;
}

.nav-dropdown.open .nav-dropdown-trigger .caret {
  transform: rotate(180deg);
}

.nav-dropdown-menu {
  position: absolute;
  top: calc(100% + 16px);
  left: 50%;
  transform: translateX(-50%);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 24px 60px rgba(0,0,0,.14);
  padding: 8px;
  min-width: 220px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  opacity: 0;
  visibility: hidden;
  transform: translateX(-50%) translateY(6px);
  transition: opacity .15s ease, transform .15s ease, visibility .15s;
  z-index: 40;
}

.nav-dropdown.open .nav-dropdown-menu {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}

.nav-dropdown-menu a {
  padding: 10px 14px !important;
  border-radius: 9px;
  white-space: nowrap;
}

.nav-dropdown-menu a:hover {
  background: var(--soft);
  color: var(--orange);
}

@media (hover: hover) and (min-width: 1051px) {
  .nav-dropdown:hover .nav-dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
  }
}

/* Mobile: no dropdown interaction — show the trigger as a plain label and
   the sport links as a flat, always-visible list under it */
@media (max-width: 1050px) {
  .mobile-nav-panel .nav-dropdown {
    width: 100%;
    border-bottom: 1px solid var(--line);
  }

  .mobile-nav-panel .nav-dropdown-trigger {
    padding: 15px 2px 6px;
    width: 100%;
    color: var(--muted);
    cursor: default;
    pointer-events: none;
  }

  .mobile-nav-panel .nav-dropdown-trigger .caret {
    display: none;
  }

  .mobile-nav-panel .nav-dropdown-menu {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    box-shadow: none;
    border: 0;
    padding: 0 0 6px;
    min-width: 0;
  }

  .mobile-nav-panel .nav-dropdown-menu a {
    padding: 12px 2px 12px 14px !important;
    border-bottom: 0 !important;
  }
}

/* Frauen page: BJJ Women's Class box — keep the main technique demo in frame */
.offer-bg-image img[src*="denise-krahn-bjj-womens-seminar"] {
  object-position: center 58%;
}
