h1,
h2,
h3,
h4,
h5,
h6 {
  padding: 0;
  margin: 0;
  font-family: "Inter", serif;

  color: inherit;
}
:root {
  --red: #c00;
}
a,
span,
div {
  color: inherit;
}
p,
li {
  color: inherit;
}
html {
  scroll-behavior: smooth;
}
input:focus,
textarea:focus {
  outline: 1px solid #0f1138;
}
p,
ul {
  padding: 0;
  margin: 0;
}

html,
body {
  margin: 0 !important;
  padding: 0;
}
.mb-0 {
  margin-bottom: 0 !important;
}

.flex {
  display: flex;
}
.flex-child-1 > * {
  flex: 1;
}
.items-center {
  align-items: center;
}
.items-start {
  align-items: flex-start;
}
.items-end {
  align-items: flex-end;
}
.justify-start {
  justify-content: flex-start;
}
.justify-center {
  justify-content: center;
}
.justify-end {
  justify-content: flex-end;
}
.justify-between {
  justify-content: space-between;
}
.flex-col {
  flex-direction: column;
}
.flex-row {
  -ms-flex-direction: row;
  flex-direction: row;
}
.container-padding {
  padding-left: 80px;
  padding-right: 80px;
}

.text-left {
  text-align: left;
}
.text-center {
  text-align: center;
}
.text-white {
  color: white;
}
.text-uppercase {
  text-transform: uppercase;
}
.child-flex-1 > * {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.mt-10 {
  margin-top: 10px;
}
.mt-20 {
  margin-top: 20px;
}
.mt-30 {
  margin-top: clamp(20px, 1.56vw, 30px);
}
.mt-40 {
  margin-top: clamp(20px, 2.083vw, 40px);
}
.mt-50 {
  margin-top: clamp(20px, 2.605vw, 50px);
}
.mt-60 {
  margin-top: clamp(40px, 3.125vw, 60px);
}
.mt-70 {
  margin-top: clamp(40px, 3.64vw, 70px);
}
.mt-80 {
  margin-top: clamp(60px, 4.166vw, 80px);
}
.mt-90 {
  margin-top: clamp(60px, 4.678vw, 90px);
}
.mt-100 {
  margin-top: clamp(60px, 5.208vw, 100px);
}
.mt-110 {
  margin-top: clamp(60px, 5.729vw, 110px);
}
.mt-120 {
  margin-top: clamp(60px, 6.25vw, 120px);
}
.mt-130 {
  margin-top: clamp(60px, 6.77vw, 130px);
}
.mt-140 {
  margin-top: clamp(60px, 7.29vw, 140px);
}
.mt-150 {
  margin-top: clamp(60px, 7.8vw, 150px);
}
.mt-160 {
  margin-top: clamp(60px, 8.33vw, 160px);
}
.mt-170 {
  margin-top: clamp(70px, 8.854vw, 170px);
}
.mt-180 {
  margin-top: clamp(70px, 9.375vw, 180px);
}
.mt-190 {
  margin-top: clamp(70px, 9.89vw, 190px);
}
.mt-200 {
  margin-top: clamp(80px, 10.41vw, 200px);
}
.mb-10 {
  margin-bottom: 10px;
}
.mb-20 {
  margin-bottom: 20px;
}
.mb-25 {
  margin-bottom: 25px;
}
.mb-30 {
  margin-bottom: clamp(20px, 1.56vw, 30px);
}
.mb-40 {
  margin-bottom: clamp(20px, 2.083vw, 40px);
}
.mb-45 {
  margin-bottom: clamp(20px, 2.34375vw, 45px);
}
.mb-50 {
  margin-bottom: clamp(20px, 2.605vw, 50px);
}
.mb-60 {
  margin-bottom: clamp(40px, 3.125vw, 60px);
}
.mb-70 {
  margin-bottom: clamp(40px, 3.64vw, 70px);
}
.mb-80 {
  margin-bottom: clamp(60px, 4.166vw, 80px);
}
.mb-90 {
  margin-bottom: clamp(60px, 4.678vw, 90px);
}
.mb-100 {
  margin-bottom: clamp(60px, 5.208vw, 100px);
}
.mb-110 {
  margin-bottom: clamp(60px, 5.729vw, 110px);
}
.mb-120 {
  margin-bottom: clamp(60px, 6.25vw, 120px);
}
.mb-130 {
  margin-bottom: clamp(60px, 6.77vw, 130px);
}
.mb-140 {
  margin-bottom: clamp(60px, 7.29vw, 140px);
}
.mb-150 {
  margin-bottom: clamp(60px, 7.8vw, 150px);
}
.mb-160 {
  margin-bottom: clamp(60px, 8.33vw, 160px);
}
.mb-170 {
  margin-bottom: clamp(70px, 8.854vw, 170px);
}
.mb-180 {
  margin-bottom: clamp(70px, 9.375vw, 180px);
}
.mb-190 {
  margin-bottom: clamp(70px, 9.89vw, 190px);
}
.mb-200 {
  margin-bottom: clamp(80px, 10.41vw, 200px);
}
.pt-10 {
  padding-top: 10px;
}
.pt-20 {
  padding-top: 20px;
}
.pt-30 {
  padding-top: clamp(20px, 1.56vw, 30px);
}
.pt-40 {
  padding-top: clamp(20px, 2.083vw, 40px);
}
.pt-50 {
  padding-top: clamp(20px, 2.605vw, 50px);
}
.pt-60 {
  padding-top: clamp(40px, 3.125vw, 60px);
}
.pt-70 {
  padding-top: clamp(40px, 3.64vw, 70px);
}
.pt-80 {
  padding-top: clamp(60px, 4.166vw, 80px);
}
.pt-90 {
  padding-top: clamp(60px, 4.678vw, 90px);
}
.pt-100 {
  padding-top: clamp(60px, 5.208vw, 100px);
}
.pt-110 {
  padding-top: clamp(60px, 5.729vw, 110px);
}
.pt-120 {
  padding-top: clamp(60px, 6.25vw, 120px);
}
.pt-130 {
  padding-top: clamp(60px, 6.77vw, 130px);
}
.pt-140 {
  padding-top: clamp(60px, 7.29vw, 140px);
}
.pt-150 {
  padding-top: clamp(60px, 7.8vw, 150px);
}
.pt-160 {
  padding-top: clamp(60px, 8.33vw, 160px);
}
.pt-170 {
  padding-top: clamp(70px, 8.854vw, 170px);
}
.pt-180 {
  padding-top: clamp(70px, 9.375vw, 180px);
}
.pt-190 {
  padding-top: clamp(70px, 9.89vw, 190px);
}
.pt-200 {
  padding-top: clamp(80px, 10.41vw, 200px);
}
.pt-330 {
  padding-top: clamp(100px, 17.1875vw, 330px);
}
.pt-550 {
  padding-top: clamp(450px, 23.90625vw, 550px);
}
.pb-10 {
  padding-bottom: 10px;
}
.pb-20 {
  padding-bottom: 20px;
}
.pb-30 {
  padding-bottom: clamp(20px, 1.56vw, 30px);
}
.pb-40 {
  padding-bottom: clamp(20px, 2.083vw, 40px);
}
.pb-50 {
  padding-bottom: clamp(20px, 2.605vw, 50px);
}
.pb-60 {
  padding-bottom: clamp(40px, 3.125vw, 60px);
}
.pb-70 {
  padding-bottom: clamp(40px, 3.64vw, 70px);
}
.pb-80 {
  padding-bottom: clamp(60px, 4.166vw, 80px);
}
.pb-90 {
  padding-bottom: clamp(60px, 4.678vw, 90px);
}
.pb-100 {
  padding-bottom: clamp(60px, 5.208vw, 100px);
}
.pb-110 {
  padding-bottom: clamp(60px, 5.729vw, 110px);
}
.pb-120 {
  padding-bottom: clamp(60px, 6.25vw, 120px);
}
.pb-130 {
  padding-bottom: clamp(60px, 6.77vw, 130px);
}
.pb-140 {
  padding-bottom: clamp(60px, 7.29vw, 140px);
}
.pb-150 {
  padding-bottom: clamp(60px, 7.8vw, 150px);
}
.pb-160 {
  padding-bottom: clamp(60px, 8.33vw, 160px);
}
.pb-170 {
  padding-bottom: clamp(70px, 8.854vw, 170px);
}
.pb-180 {
  padding-bottom: clamp(70px, 9.375vw, 180px);
}
.pb-190 {
  padding-bottom: clamp(70px, 9.89vw, 190px);
}
.pb-200 {
  padding-bottom: clamp(80px, 10.41vw, 200px);
}
.pb-250 {
  padding-bottom: clamp(120px, 11.1979vw, 250px);
}

/* Per-block bottom spacing (chosen in the editor; default Medium = 80px).
   Values mirror the .pb-* responsive scale so they read identically. */
.oda-mb--none {
  margin-bottom: 0;
}
.oda-mb--small {
  margin-bottom: clamp(20px, 2.083vw, 40px);
}
.oda-mb--medium {
  margin-bottom: clamp(60px, 4.166vw, 80px);
}
.oda-mb--large {
  margin-bottom: clamp(60px, 5.208vw, 100px);
}
.oda-mb--xlarge {
  margin-bottom: clamp(60px, 8.33vw, 160px);
}

a {
  text-decoration: unset;
  cursor: pointer;
}

.bg-white {
  background-color: #fff;
}
.w-max {
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
}

.w-full {
  width: 100%;
}

li {
  list-style: none;
}
.footer-only {
  display: none;
}
.gap-5 {
  gap: 5px;
}
.gap-20 {
  gap: 20px;
}
.gap-15 {
  gap: 15px;
}
.paragraph__16 p {
  font-size: 16px;
  color: #2f3624;
}
.paragraph__30 p {
  font-size: clamp(18px, 1.5625vw, 30px);
}
.subtitle {
  color: var(--red);
  font-size: 12px;
  font-weight: 400;
  line-height: 16.5px;
  margin-bottom: 14px;
  display: inline-block;
  letter-spacing: 1.1px;
  text-transform: uppercase;
}
.h2__size {
  color: #0f0f10;
  font-size: 38px;
  font-style: normal;
  font-weight: 600;
  line-height: 41.8px;
  letter-spacing: -0.54px;
}
.paragraph__18 p,
.paragraph__18 {
  color: #424248;
  font-size: 18px;
  font-style: normal;
  font-weight: 400;
  line-height: 26.35px;
  letter-spacing: -0.08px;
}
.paragraph__20 p {
  font-size: clamp(16px, 1.04166666667vw, 20px);
  color: #2f3624;
  letter-spacing: -1px;
  line-height: 1.8;
}
#page {
  overflow-x: hidden;
}

body {
  color: #0f0f10;
  font-family: "Inter", sans-serif;
}
#page .slick-dots li {
  width: 8px;
  height: 8px;
}
#page .slick-dots button {
  padding: 0;
  width: 8px;
  height: 8px;
}
#page .slick-dots button::before {
  background: #191d23;
  content: "";
  border-radius: 50%;
  opacity: 0.3;
  width: 8px;
  height: 8px;
}
#page .slick-dots li.slick-active button::before {
  opacity: 1;
  width: 38px;
  border-radius: 6px;
  transition: 0.3s;
}
#page .slick-dots li.slick-active button {
  width: 38px;
  transition: 0.3s;
}
#page .slick-dots li.slick-active {
  width: 38px;
  transition: 0.3s;
}
.product-card .onsale {
  display: none !important;
}

.mobile-only {
  display: none;
}
@media only screen and (max-width: 991px) {
  .mobile-only {
    display: inline-block;
  }
  .desktop-only {
    display: none;
  }
}
a,
button {
  cursor: pointer;
}
#page .text-white p {
  color: #fff;
}
.filled__button {
  color: #fff;
  font-size: 14px;
  font-style: normal;
  font-weight: 600;
  line-height: 19.5px;
  padding: 12px 16px;
  border-radius: 999px;
  border: 1px solid var(--red);
  display: inline-block;
  transition: 0.3s;
  background: var(--red);
  letter-spacing: -0.08px;
}
.h1__size {
  color: var(--red);
  font-size: 62px;
  font-style: normal;
  font-weight: 700;
  margin-bottom: 22px;
  line-height: 63.24px;
  letter-spacing: -1.17px;
}
.card__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.card__link a {
  color: var(--red);
  font-size: 16px;
  font-style: normal;
  font-weight: 600;
  line-height: 19.5px; /* 121.875% */
  letter-spacing: -0.08px;
}
.h3__size {
  font-size: 22px;
  font-weight: 600;
  line-height: 26px;
  letter-spacing: -0.25px;
  display: inline-block;
  margin-bottom: 16px;
}
/* Fourth heading size, 18px. Follows .h3__size exactly, one step smaller.
   The theme's only other 18px utility is .paragraph__18, which is body copy
   (weight 400, grey #424248, and it drops to 16px under 600px) — that reads as
   a caption rather than a heading, so headings needed their own 18px step. */
.h4__size {
  font-size: 18px;
  font-weight: 600;
  line-height: 22px;
  letter-spacing: -0.45px;
  display: inline-block;
  margin-bottom: 14px;
}
.section__heading {
  margin-bottom: 32px;
}
.text--white,
.text--white h2,
.text--white h3,
.text--white h4,
.text--white h5,
.text--white h6,
.text--white a {
  color: #fff;
}
.text--white p {
  color: rgba(255, 255, 255, 0.8);
}
.video-wrapper__text h2 {
  font-size: 42px;
  font-weight: 600;
  display: inline-block;
  margin-bottom: 12px;
  line-height: 46px;
  letter-spacing: -1.26px;
}
/* White variant of the filled button */
.filled__button--white {
  background: #fff;
  border-color: #fff;
  color: inherit;
  padding: 15px 29px;
  font-size: 14px;
  font-weight: 600;
  line-height: 21px;
  letter-spacing: -0.08px;
}

/* Outlined button */
.outlined__button {
  display: inline-block;
  font-size: 14px;
  font-weight: 600;
  line-height: 19.5px;
  letter-spacing: -0.08px;
  padding: 15px 29px;

  border-radius: 999px;
  border: 1px solid #fff;
  background: transparent;
  color: #fff;
  transition: 0.3s;
}

.outlined__button:hover {
  background: #fff;
  color: var(--red);
}
.card__item--border-colored {
  border: 0;
}
.default-content__block {
  margin-bottom: 17px !important;
}

/* ===================================================================== *
 * Mobile typography — scale the fixed desktop headings down so they match
 * the Figma mobile boxes (h1 ≈ 144px, h2 ≈ 62px, hero lead ≈ 66px at 360px).
 * Desktop sizes are untouched (this only applies ≤600px).
 * ===================================================================== */
@media (max-width: 600px) {
  .h1__size {
    font-size: 40px;
    line-height: 36px;
    letter-spacing: -1.4px;
    margin-bottom: 18px;
  }
  /* Long single-word German titles (e.g. "Qualifikationsverfahren",
     "Berufsmeisterschaften") can't wrap at 40px on a 360px screen and pushed
     the page wider — allow them to break. */
  .h1__size,
  .h2__size {
    overflow-wrap: break-word;
    word-break: break-word;
    hyphens: auto;
  }
  .h2__size {
    font-size: 30px;
    line-height: 33px;
    letter-spacing: -0.9px;
  }
  .paragraph__18,
  .paragraph__18 p {
    font-size: 16px;
    line-height: 23px;
  }
}
