/* ==========================================================================
   rayanberangi.com – Close-IT Akademie
   Handgeschrieben, ohne Framework. Maße aus dem Framer-Original (1440 / 390).
   ========================================================================== */

/* --- Fonts (selbst gehostet, Latin + Latin-Ext) ------------------------- */
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; font-display: swap; src: url(/assets/fonts/inter-400-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; font-display: swap; src: url(/assets/fonts/inter-400-latin-ext.woff2) format("woff2"); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 500; font-display: swap; src: url(/assets/fonts/inter-500-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 500; font-display: swap; src: url(/assets/fonts/inter-500-latin-ext.woff2) format("woff2"); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Inter"; font-style: italic; font-weight: 500; font-display: swap; src: url(/assets/fonts/inter-500i-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; font-style: italic; font-weight: 500; font-display: swap; src: url(/assets/fonts/inter-500i-latin-ext.woff2) format("woff2"); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 600; font-display: swap; src: url(/assets/fonts/inter-600-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 600; font-display: swap; src: url(/assets/fonts/inter-600-latin-ext.woff2) format("woff2"); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 700; font-display: swap; src: url(/assets/fonts/inter-700-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 700; font-display: swap; src: url(/assets/fonts/inter-700-latin-ext.woff2) format("woff2"); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Inter Display"; font-style: normal; font-weight: 400; font-display: swap; src: url(/assets/fonts/inter-display-400-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter Display"; font-style: normal; font-weight: 400; font-display: swap; src: url(/assets/fonts/inter-display-400-latin-ext.woff2) format("woff2"); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Inter Display"; font-style: normal; font-weight: 600; font-display: swap; src: url(/assets/fonts/inter-display-600-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter Display"; font-style: normal; font-weight: 600; font-display: swap; src: url(/assets/fonts/inter-display-600-latin-ext.woff2) format("woff2"); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 600; font-display: swap; src: url(/assets/fonts/poppins-600-latin.woff2) format("woff2"); }

/* --- Tokens --------------------------------------------------------------- */
:root {
  --gold: #dfb23d;
  --red: #e34e4a;
  --green: #02c39a;
  --ink: #232323;
  --text: #474747;
  --muted: #888;
  --quote: #757575;
  --soft: #fafaf8;
  --line: #ececea;
  --white: #fff;
  --wrap: 1100px;
  --narrow: 1000px;
  --font: "Inter", "Inter Placeholder", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --display: "Inter Display", "Inter", system-ui, sans-serif;
  --hdr: 88px;
}
@media (max-width: 809px) { :root { --hdr: 70px; } }

/* --- Basis ------------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--hdr) + 12px); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { margin: 0; font-family: var(--font); color: var(--ink); background: var(--white); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; line-height: 1.2; }
h1, h2, h3, h4, p, figure, blockquote, ul, ol { margin: 0; }
ul, ol { padding: 0; list-style: none; }
img, video { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; cursor: pointer; background: none; border: 0; padding: 0; }
svg.ic { display: block; width: 100%; height: 100%; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip { position: absolute; left: 12px; top: -60px; z-index: 200; background: var(--ink); color: #fff; padding: 10px 14px; border-radius: 8px; }
.skip:focus { top: 12px; }
:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
.gold { color: var(--gold); }
.red { color: var(--red); }
.wrap { width: min(var(--wrap), calc(100% - 40px)); margin-inline: auto; }
.narrow { width: min(var(--narrow), calc(100% - 40px)); margin-inline: auto; }
.only-m { display: none; }
@media (max-width: 809px) { .only-d { display: none !important; } .only-m { display: revert; } }

/* --- Typo-Bausteine ----------------------------------------------------------- */
.h-sec { font-size: 44px; line-height: 1.2; font-weight: 600; letter-spacing: -0.03em; text-align: center; }
.sub { font-size: 20px; line-height: 1.2; color: var(--text); letter-spacing: -0.03em; text-align: center; max-width: 600px; margin: 24px auto 0; }
@media (max-width: 809px) {
  .h-sec { font-size: 36px; overflow-wrap: anywhere; }
}

/* --- Buttons ------------------------------------------------------------------ */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 12px; background: var(--red); color: #fff; white-space: nowrap; transition: transform .2s ease, filter .2s ease, box-shadow .2s ease; }
.btn:hover { filter: brightness(1.05); transform: translateY(-1px); }
.btn:active { transform: translateY(0); }
.btn--lg { height: 48px; padding: 0 32px; min-width: 285px; font-size: 20px; letter-spacing: -0.03em; box-shadow: 0 0 20px rgba(227, 78, 74, .2); }
.btn--sm { height: 36px; padding: 0 24px; font-size: 16px; font-weight: 500; letter-spacing: -0.03em; }
.btn--dark { background: var(--ink); height: 36px; padding: 0 16px; font-size: 16px; font-weight: 600; letter-spacing: -0.03em; }
.cta-row { display: flex; justify-content: center; margin-top: 60px; }
@media (max-width: 809px) { .btn--lg { min-width: 0; width: min(339px, 100%); padding: 0 16px; } }

/* --- Header ------------------------------------------------------------------- */
.hdr { position: sticky; top: 0; z-index: 50; height: var(--hdr); background: rgba(255, 255, 255, .8); -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px); box-shadow: 0 0 2px rgba(246, 244, 240, .4); border-bottom: 1px solid rgba(0, 0, 0, .06); }
.hdr__in { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.hdr__logo { display: block; width: 64px; height: 64px; flex: none; }
.hdr__logo img { width: 100%; height: 100%; object-fit: contain; }
.hdr__nav { display: flex; gap: 24px; font-size: 16px; font-weight: 500; letter-spacing: -0.03em; }
.hdr__nav a { padding: 6px 0; transition: color .2s; }
.hdr__nav a:hover { color: var(--red); }
.hdr__menu { display: none; width: 30px; height: 30px; color: var(--gold); }
.hdr__panel { display: none; }
@media (max-width: 809px) {
  .hdr__logo { width: 40px; height: 40px; }
  .hdr__nav, .hdr__in > .btn { display: none; }
  .hdr__menu { display: block; }
  .hdr__panel { position: absolute; left: 0; right: 0; top: var(--hdr); background: rgba(255, 255, 255, .97); -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px); border-bottom: 1px solid var(--line); padding: 8px 20px 24px; flex-direction: column; align-items: center; gap: 4px; }
  .hdr.is-open .hdr__panel { display: flex; }
  .hdr__panel a:not(.btn) { padding: 10px 0; font-size: 16px; font-weight: 500; letter-spacing: -0.03em; }
  .hdr__panel .btn { margin-top: 12px; }
  .hdr--plain .hdr__in > .btn { display: inline-flex; }
}

/* --- Hero (Startseite) ------------------------------------------------------- */
.hero { background: var(--soft); padding: 92px 0 100px; }
.hero__in { display: grid; grid-template-columns: minmax(0, 1fr) 440px; gap: 40px; align-items: start; }
.hero__h { font-size: 48px; line-height: 1.1; font-weight: 700; letter-spacing: -0.03em; max-width: 560px; }
.ticks { margin-top: 32px; display: grid; gap: 14px; }
.ticks li { display: flex; align-items: center; gap: 12px; font-size: 18px; font-weight: 600; letter-spacing: -0.03em; }
.plus { flex: none; width: 34px; height: 34px; border-radius: 40px; background: var(--gold); color: #fff; }
.hero .btn--lg { margin-top: 32px; min-width: 339px; }
.hero__media { margin-top: 26px; }
.speaker { margin-top: 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 20px 20px 20px 20px; }
.speaker__n { font-family: var(--display); font-weight: 600; font-size: 20px; letter-spacing: -0.03em; color: var(--gold); }
.speaker__r { font-family: var(--display); font-size: 16px; letter-spacing: -0.03em; margin-top: 2px; }
@media (max-width: 1023px) { .hero__in { grid-template-columns: 1fr 380px; } .hero__h { font-size: 42px; } }
@media (max-width: 809px) {
  .hero { padding: 50px 0 40px; }
  .hero__in { grid-template-columns: 1fr; gap: 32px; }
  .hero__h { font-size: 44px; text-align: center; margin-inline: auto; }
  .ticks { margin-top: 32px; }
  .ticks li { font-size: 14px; }
  .hero__copy { display: flex; flex-direction: column; }
  .hero .btn--lg { align-self: center; min-width: 0; }
  .hero__media { margin-top: 0; }
}

/* --- Video-Container ------------------------------------------------------------ */
.vid { position: relative; aspect-ratio: 16 / 9; border-radius: 12px; overflow: hidden; background: #111 center / cover no-repeat; }
.vid > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.vid__play { position: absolute; inset: 0; display: grid; place-items: center; width: 100%; }
.vid__play span { width: 60px; height: 60px; border-radius: 50%; background: #ff0000; color: #fff; display: grid; place-items: center; box-shadow: 0 0 0 10px rgba(255, 0, 0, .12); transition: transform .2s; }
.vid__play span svg { width: 28px; height: 28px; margin-left: 4px; }
.vid__play:hover span { transform: scale(1.06); }
.vid .vidalytics-slot { position: absolute; inset: 0; }
.vid.is-live > img, .vid.is-live .vid__play { display: none; }
.vid video { width: 100%; height: 100%; object-fit: cover; background: #000; }
.vid iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* --- Sektionen allgemein ----------------------------------------------------------- */
.sec { padding: 80px 0; }
.sec--soft { background: var(--soft); }
.card { background: var(--soft); border: 1px solid var(--line); }

/* --- PDF-Ablese-Methode ------------------------------------------------------------ */
.method { display: grid; grid-template-columns: 1fr 1fr; border-radius: 20px; overflow: hidden; border: 1px solid var(--line); background: var(--soft); min-height: 418px; }
.method__copy { padding: 32px; display: flex; flex-direction: column; }
.method__h { font-size: 44px; line-height: 1.2; font-weight: 600; letter-spacing: -0.03em; }
.method__p { margin-top: 20px; font-size: 18px; line-height: 1.2; color: var(--text); letter-spacing: -0.03em; }
.proof { margin-top: auto; padding-top: 32px; display: flex; align-items: center; gap: 12px; font-size: 16px; font-weight: 600; letter-spacing: -0.03em; color: var(--text); }
.proof img { width: 135px; height: 40px; object-fit: contain; }
.proof em { font-style: normal; color: var(--red); }
.method__img { position: relative; }
.method__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.stats { margin-top: 60px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.stat { border-radius: 12px; padding: 12px 20px 20px 12px; min-height: 194px; }
.stat__top { display: flex; align-items: center; gap: 12px; }
.stat__ic { width: 48px; height: 48px; border-radius: 30px; background: #fff; display: grid; place-items: center; color: var(--gold); flex: none; }
.stat__ic svg { width: 22px; height: 22px; }
.stat__n { font-size: 29px; line-height: 1.1; font-weight: 600; letter-spacing: -0.03em; color: var(--gold); }
.stat__t { margin: 22px 0 0 10px; font-size: 22px; line-height: 1.2; font-weight: 600; letter-spacing: -0.03em; }
.stat__d { margin: 6px 0 0 10px; font-size: 14px; line-height: 1.1; color: var(--text); letter-spacing: -0.03em; }
@media (max-width: 809px) {
  .method { grid-template-columns: 1fr; border-radius: 32px; }
  .method__img { order: -1; aspect-ratio: 1; }
  .method__copy { padding: 28px 28px 24px; }
  .method__h { font-size: 34px; }
  .method__p { font-size: 16px; }
  .proof { font-size: 14px; padding-top: 24px; }
  .stats { grid-template-columns: 1fr; gap: 16px; margin-top: 40px; }
  .stat { min-height: 178px; border-radius: 16px; }
  .stat__top { justify-content: space-between; }
}
@media (min-width: 810px) and (max-width: 1023px) { .stats { grid-template-columns: repeat(2, 1fr); } }

/* --- Top Experte ------------------------------------------------------------------- */
.award__h { font-size: 40px; line-height: 1.2; font-weight: 600; letter-spacing: -0.03em; text-align: center; }
.award { margin-top: 60px; display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; }
.award__copy { background: var(--soft); border: 1px solid var(--line); border-right: 0; border-radius: 24px 0 0 24px; padding: 40px; display: flex; flex-direction: column; justify-content: center; font-size: 26px; line-height: 1.3; letter-spacing: -0.03em; }
.award__copy strong { font-weight: 700; display: block; }
.award__img { display: block; }
.award__img img { width: 100%; height: auto; }
@media (max-width: 809px) {
  .award__h { font-size: 36px; }
  .award { grid-template-columns: 1fr; margin-top: 40px; padding-inline: 20px; }
  .award__copy { border-right: 1px solid var(--line); border-radius: 32px 32px 0 0; padding: 32px; }
}

/* --- Absolventen ------------------------------------------------------------------- */
.grads { margin-top: 70px; display: grid; grid-template-columns: repeat(6, 1fr); gap: 50px 10px; align-items: start; }
.grad { grid-column: span 2; border-radius: 20px; padding: 12px 12px 24px; }
.grad--wide { grid-column: span 3; }
.grad__body { padding: 16px 4px 0; }
.grad__n { font-size: 16px; font-weight: 600; letter-spacing: -0.03em; color: var(--gold); }
.grad__k { margin-top: 2px; font-size: 12px; font-weight: 600; letter-spacing: -0.03em; }
.grad__q { margin-top: 10px; font-size: 16px; font-weight: 500; font-style: italic; letter-spacing: -0.03em; color: var(--quote); }
.grads-box { padding: 0; }
@media (max-width: 1023px) { .grads { grid-template-columns: repeat(2, 1fr); } .grad, .grad--wide { grid-column: span 1; } }
@media (max-width: 809px) { .grads { grid-template-columns: 1fr; gap: 10px; margin-top: 40px; } .grad:nth-child(3n) { margin-bottom: 20px; } }

/* --- Lernprogramm --------------------------------------------------------------------- */
.learn { margin-top: 60px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.lcard { border-radius: 24px; padding: 24px; min-height: 351px; }
.lcard__ic { display: block; width: 64px; height: 64px; border-radius: 75px; background: #fff; color: var(--gold); }
.lcard__t { margin-top: 40px; font-size: 28px; line-height: 1.2; font-weight: 600; letter-spacing: -0.03em; }
.lcard__d { margin-top: 16px; font-size: 20px; line-height: 1.2; color: var(--text); letter-spacing: -0.03em; }
.limg { border-radius: 24px; overflow: hidden; min-height: 351px; background: #a9a7a2; }
.limg img { width: 100%; height: 100%; object-fit: cover; }
.limg--phones { background: #afada7; border-radius: 26px; box-shadow: 0 0 4px rgba(0, 0, 0, .15); display: grid; place-items: center; padding: 20px; }
.limg--phones img { width: 313px; height: 313px; object-fit: cover; }
@media (max-width: 1023px) { .learn { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 809px) {
  .learn { grid-template-columns: 1fr; gap: 20px; margin-top: 40px; }
  .lcard { min-height: 0; border-radius: 26px; padding: 20px 20px 24px; box-shadow: 0 0 4px rgba(0, 0, 0, .15); }
  .lcard__t { margin-top: 28px; }
  .limg { min-height: 320px; border-radius: 26px; }
  .limg--phones img { width: 280px; height: 280px; }
  .learn > :nth-child(1) { order: 9; }
  .learn > :nth-child(2) { order: 1; }
  .learn > :nth-child(3) { order: 2; }
  .learn > :nth-child(6) { order: 3; }
  .learn > :nth-child(4) { order: 4; }
  .learn > :nth-child(5) { order: 5; }
  .learn > :nth-child(7) { order: 6; }
  .learn > :nth-child(8) { order: 7; }
  .learn > :nth-child(9) { order: 8; }
}

/* --- Für wen ------------------------------------------------------------------------- */
.who { margin-top: 60px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.who__c { border-radius: 24px; padding: 20px 20px 30px; min-height: 288px; }
.who__c .lcard__ic { margin-bottom: 36px; }
.who__t { font-size: 21px; font-weight: 600; letter-spacing: -0.03em; }
.who__d { margin-top: 18px; font-size: 16px; font-weight: 500; letter-spacing: -0.03em; color: var(--muted); }
@media (max-width: 1023px) { .who { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 809px) { .who { grid-template-columns: 1fr; margin-top: 40px; } .who__c { min-height: 0; } }

/* --- Team-Ticker ------------------------------------------------------------------------ */
.team { display: grid; grid-template-columns: 1fr 440px; gap: 40px; align-items: center; }
.team__h { font-size: 44px; font-weight: 600; letter-spacing: -0.03em; color: var(--red); }
.team__p { margin-top: 24px; font-size: 20px; line-height: 1.2; color: var(--text); letter-spacing: -0.03em; max-width: 330px; }
.ticker { position: relative; height: 476px; overflow: hidden; -webkit-mask-image: linear-gradient(transparent, #000 22%, #000 78%, transparent); mask-image: linear-gradient(transparent, #000 22%, #000 78%, transparent); }
.ticker__list { display: flex; flex-direction: column; align-items: center; gap: 4px; will-change: transform; }
.member { display: flex; align-items: center; gap: 14px; width: 330px; height: 80px; padding: 0 12px; border-radius: 20px; border: 1px solid rgba(0, 0, 0, .05); background: #fff; transform-origin: center; transition: background-color .3s; }
.member.is-focus { background: var(--soft); }
.member img { width: 52px; height: 52px; border-radius: 100px; object-fit: cover; flex: none; }
.member__n { font-size: 18px; color: #000; }
.member__r { margin-top: 4px; font-size: 12px; color: rgba(0, 0, 0, .4); }
@media (max-width: 809px) {
  .team { grid-template-columns: 1fr; text-align: center; gap: 30px; }
  .team__h { font-size: 36px; }
  .team__p { margin-inline: auto; }
  .ticker { height: 380px; }
  .member { width: 300px; }
}

/* --- Einnahmen ---------------------------------------------------------------------------- */
.income { display: grid; grid-template-columns: 600px 1fr; gap: 20px; align-items: center; }
.income__img img { width: 600px; height: auto; }
.income__h { font-size: 44px; line-height: 1.2; font-weight: 600; letter-spacing: -0.03em; color: var(--gold); max-width: 360px; }
.income__p { margin-top: 24px; font-size: 20px; line-height: 1.2; color: var(--text); letter-spacing: -0.03em; max-width: 330px; }
@media (max-width: 1023px) { .income { grid-template-columns: 1fr 1fr; } .income__img img { width: 100%; } }
@media (max-width: 809px) {
  .income { grid-template-columns: 1fr; text-align: center; }
  .income__img { order: 2; }
  .income__h { font-size: 36px; margin-inline: auto; }
  .income__p { margin-inline: auto; }
}

/* --- Fahrplan ------------------------------------------------------------------------------ */
.road { width: min(970px, calc(100% - 40px)); margin: 120px auto 0; display: grid; gap: 44px; }
.step { display: grid; grid-template-columns: 1fr 32px 1fr; gap: 12px 24px; align-items: center; }
.step__no { width: 32px; height: 32px; border-radius: 20px; background: var(--red); color: #fff; display: grid; place-items: center; font-family: "Poppins", var(--font); font-weight: 600; font-size: 20px; line-height: 1; }
.step__t { font-size: 30px; line-height: 40px; font-weight: 600; }
.step__d { margin-top: 10px; font-size: 16px; line-height: 20px; color: var(--muted); letter-spacing: .01em; }
.step__img { border-radius: 24px; overflow: hidden; border: 1px solid var(--line); background: #fff; }
.step__img img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.step:nth-child(odd) .step__copy { grid-column: 1; grid-row: 1; text-align: right; }
.step:nth-child(odd) .step__no { grid-column: 2; grid-row: 1; }
.step:nth-child(odd) .step__img { grid-column: 3; grid-row: 1; }
.step:nth-child(even) .step__img { grid-column: 1; grid-row: 1; }
.step:nth-child(even) .step__no { grid-column: 2; grid-row: 1; }
.step:nth-child(even) .step__copy { grid-column: 3; grid-row: 1; }
@media (max-width: 809px) {
  .road { margin-top: 40px; gap: 40px; width: min(350px, calc(100% - 40px)); }
  .step { grid-template-columns: 32px 1fr; gap: 12px; align-items: start; }
  .step:nth-child(n) .step__no { grid-column: 1; grid-row: 1; margin-top: 2px; }
  .step:nth-child(n) .step__copy { grid-column: 2; grid-row: 1; text-align: left; }
  .step:nth-child(n) .step__img { grid-column: 2; grid-row: 2; }
  .step__t { font-size: 24px; line-height: 32px; }
}

/* --- Ausbilder ------------------------------------------------------------------------------- */
.coach { margin-top: 60px; display: grid; grid-template-columns: 1fr 1fr; }
.coach__copy { background: var(--soft); border: 1px solid var(--line); border-right: 0; border-radius: 24px 0 0 24px; padding: 40px; }
.coach__n { font-size: 46px; line-height: 1.2; font-weight: 600; letter-spacing: -0.03em; color: var(--gold); }
.coach__p { margin-top: 20px; font-size: 16px; line-height: 1.3; letter-spacing: -0.03em; }
.facts { margin-top: 28px; display: grid; gap: 28px; }
.fact { display: flex; gap: 12px; align-items: center; }
.fact__ic { width: 48px; height: 48px; border-radius: 64px; background: #fff; color: var(--red); flex: none; display: grid; place-items: center; }
.fact__ic svg { width: 24px; height: 24px; }
.fact__ic svg.ic-48 { width: 48px; height: 48px; }
.fact__t { font-size: 16px; font-weight: 600; letter-spacing: -0.03em; }
.fact__d { margin-top: 4px; font-size: 12px; letter-spacing: -0.03em; max-width: 340px; }
.coach__img { position: relative; border-radius: 0 24px 24px 0; overflow: hidden; background: #222; min-height: 495px; }
.coach__img > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.coach__img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, 0) 45%, rgba(0, 0, 0, .55) 100%); }
.coach__quote { position: absolute; left: 40px; right: 40px; bottom: 40px; z-index: 1; color: #fff; }
.coach__quote blockquote { border-left: 2px solid var(--gold); padding-left: 18px; font-size: 14px; line-height: 1.2; letter-spacing: -0.03em; }
.coach__sig { margin-top: 18px; display: flex; align-items: center; gap: 20px; font-size: 14px; font-weight: 600; color: var(--gold); letter-spacing: -0.03em; }
.coach__sig img { width: 74px; height: 61px; }
@media (max-width: 809px) {
  .coach { grid-template-columns: 1fr; margin-top: 40px; }
  .coach__copy { border-right: 1px solid var(--line); border-radius: 32px 32px 0 0; padding: 32px; }
  .coach__n { font-size: 40px; }
  .facts { gap: 20px; }
  .coach__img { border-radius: 0 0 32px 32px; min-height: 525px; }
  .coach__quote { left: 20px; right: 20px; }
}

/* --- Presse-Laufband ------------------------------------------------------------------------- */
.press { margin-top: 60px; overflow: hidden; padding: 12px 0 16px; }
.press__track { display: flex; gap: 20px; width: max-content; animation: marquee var(--dur, 60s) linear infinite; }
.press:hover .press__track { animation-play-state: paused; }
.press__item { flex: none; width: 345px; height: 243px; border-radius: 8px; overflow: hidden; background: #fff; box-shadow: 0 0 12px rgba(0, 0, 0, .25); }
.press__item img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
@keyframes marquee { to { transform: translateX(calc(-50% - 10px)); } }
@media (prefers-reduced-motion: reduce) { .press__track { animation: none; } .press { overflow-x: auto; } }

/* --- Team-Bild --------------------------------------------------------------------------------- */
.crew { position: relative; border-radius: 28px; overflow: hidden; height: 440px; }
.crew__h { position: absolute; left: 40px; top: 40px; font-size: 32px; line-height: 1.2; font-weight: 600; letter-spacing: -0.03em; }
.crew__logo { position: absolute; right: 36px; top: 40px; width: 96px; height: 96px; }
.crew__img { position: absolute; left: 50px; right: 69px; bottom: 0; }
.crew__img img { width: 100%; height: auto; }
@media (max-width: 809px) {
  .crew { height: auto; padding: 40px 0 0; text-align: center; display: flex; flex-direction: column; align-items: center; }
  .crew__logo { position: static; width: 80px; height: 80px; }
  .crew__h { position: static; margin-top: 20px; padding-inline: 20px; }
  .crew__img { position: static; margin-top: 40px; width: 100%; }
}

/* --- FAQ -------------------------------------------------------------------------------------- */
.faq { width: min(703px, calc(100% - 40px)); margin: 30px auto 0; display: grid; gap: 12px; }
.faq details { background: var(--soft); border: 1px solid var(--line); border-radius: 10px; }
.faq summary { list-style: none; display: flex; align-items: center; gap: 24px; min-height: 62px; padding: 12px 20px 12px 24px; cursor: pointer; font-size: 15px; font-weight: 500; letter-spacing: -0.01em; color: #000; line-height: 1.1; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary svg { width: 16px; height: 16px; flex: none; color: var(--red); transition: transform .25s ease; }
.faq details[open] summary svg { transform: rotate(45deg); }
.faq__a { padding: 0 24px 20px 64px; font-size: 15px; line-height: 1.3; letter-spacing: -0.01em; color: #999; }
@media (max-width: 809px) { .faq { width: calc(100% - 40px); } .faq summary { gap: 20px; } .faq__a { padding-left: 60px; } }

/* --- YouTube-Karte ------------------------------------------------------------------------------ */
.yt { display: grid; grid-template-columns: 1fr 480px; gap: 20px; align-items: center; border-radius: 28px; padding: 20px 20px 20px 30px; }
.yt__ch { display: flex; align-items: center; gap: 24px; }
.yt__av { width: 127px; height: 127px; border-radius: 79px; object-fit: cover; object-position: center 15%; flex: none; }
.yt__name { display: flex; align-items: center; gap: 8px; font-size: 27px; font-weight: 600; letter-spacing: -0.03em; color: #0f0f0f; }
.yt__name svg { width: 35px; height: 24px; flex: none; }
.yt__meta { margin-top: 8px; font-size: 9.5px; line-height: 1.5; font-weight: 500; color: #818181; }
.yt__meta b { color: #0f0f0f; font-weight: 600; }
.yt__meta a { color: #275ecd; }
.yt__sub { display: inline-block; margin-top: 8px; background: #0f0f0f; color: #fff; font-size: 9.5px; font-weight: 600; padding: 6px 10px; border-radius: 559px; }
.yt .vid { border-radius: 12px; }
.yt-play { position: absolute; inset: 0; display: grid; place-items: center; width: 100%; }
.yt-play svg { width: 68px; height: 48px; }
@media (max-width: 809px) {
  .yt { grid-template-columns: 1fr; padding: 30px 20px 20px; border-radius: 28px; }
  .yt__ch { flex-direction: column; align-items: flex-start; }
  .yt__av { align-self: center; }
}

/* --- Schluss-CTA -------------------------------------------------------------------------------- */
.final { position: relative; border-radius: 40px; overflow: hidden; height: 507px; color: #fff; isolation: isolate; }
.final__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.final__person { position: absolute; left: 564px; top: -14px; width: 781px; max-width: none; z-index: -1; }
.final__copy { position: absolute; left: 53px; top: 31px; max-width: 360px; text-shadow: 0 1px 12px rgba(0, 0, 0, .25); }
.final__h { font-size: 46px; line-height: 1.2; font-weight: 600; letter-spacing: -0.03em; }
.final__p { margin-top: 12px; font-size: 18px; line-height: 1.2; font-weight: 600; letter-spacing: -0.03em; }
.pills { position: absolute; left: 0; top: 255px; display: grid; gap: 12px; justify-items: start; }
.pill { height: 64px; display: flex; align-items: center; gap: 12px; padding: 0 40px 0 20px; border-radius: 0 32px 32px 0; background: rgba(250, 250, 248, .8); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); color: var(--text); font-size: 17.6px; font-weight: 600; letter-spacing: -0.03em; }
.pill svg { width: 40px; height: 40px; flex: none; color: var(--gold); }
.final .btn--lg { position: absolute; right: 48px; bottom: 30px; min-width: 339px; }
/* Variante /termin + /danke: Villa, Goldrand, Text rechts */
.final--villa { border: 2px solid var(--gold); }
.final--villa .final__copy { left: auto; right: 40px; width: 506px; max-width: none; top: 93px; }
.final--villa .pills { top: 253px; }
.final--villa .btn--lg { right: auto; left: 552px; bottom: 89px; min-width: 285px; }
@media (max-width: 1100px) { .final__person { left: auto; right: -245px; } }
@media (max-width: 809px) {
  .final { height: 760px; border-radius: 40px; }
  .final__bg { object-position: 30% center; }
  .final__person { left: 50%; right: auto; top: auto; bottom: 0; width: 640px; transform: translateX(-34%); }
  .final__copy { left: 36px; right: 24px; top: 36px; }
  .final__h { font-size: 40px; }
  .pills { top: 420px; }
  .pill { padding: 0 24px 0 70px; height: 60px; }
  .pill svg { display: none; }
  .final .btn--lg { left: 50%; right: auto; bottom: 40px; transform: translateX(-50%); min-width: 0; width: calc(100% - 60px); }
  .final--villa .final__copy { right: 24px; left: 30px; width: auto; top: 40px; }
  .final--villa .pills { top: auto; bottom: 120px; }
  .final--villa .btn--lg { left: 50%; bottom: 40px; }
  .final--villa .final__bg { object-position: 25% center; }
}

/* --- Footer --------------------------------------------------------------------------------------- */
.ftr { padding: 20px 0; background: #fff; }
.ftr__in { width: min(1200px, calc(100% - 40px)); margin-inline: auto; display: flex; align-items: center; gap: 20px; }
.ftr__logo { width: 141px; height: 48px; flex: none; display: flex; align-items: center; }
.ftr__logo img { width: 48px; height: 48px; object-fit: contain; }
.ftr__mid { flex: 1; }
.ftr__soc { display: flex; gap: 8px; }
.ftr__soc a { width: 24px; height: 24px; display: block; }
.ftr__copy { margin-top: 4px; font-size: 14px; color: #808080; letter-spacing: -0.03em; }
.ftr__links { display: flex; gap: 32px; font-size: 16px; font-weight: 500; letter-spacing: -0.03em; }
.ftr__links a:hover { color: var(--red); }
@media (max-width: 809px) {
  .ftr { padding: 24px 0 40px; }
  .ftr__in { flex-direction: column; text-align: center; gap: 14px; }
  .ftr__logo { width: auto; justify-content: center; }
  .ftr__soc { justify-content: center; }
  .ftr__links { gap: 32px; }
}

/* --- Funnel-Hero (/termin, /danke) ------------------------------------------------------------------ */
.fhero { background: var(--soft); padding: 64px 0 80px; text-align: center; }
.fhero__badge { width: 80px; height: 80px; border-radius: 48px; margin: 0 auto 24px; display: grid; place-items: center; background: var(--gold); box-shadow: 0 0 24px rgba(223, 178, 61, .75); }
.fhero__badge svg { width: 30px; height: 40px; fill: none; }
.fhero__badge--ok { background: var(--green); box-shadow: 0 0 24px rgba(2, 195, 154, .55); }
.fhero__badge--ok svg { width: 42px; height: 31px; }
.fhero__h { font-size: 44px; line-height: 1.2; font-weight: 600; letter-spacing: -0.03em; }
.fhero__h--ok { color: var(--green); }
.fhero__p { margin: 24px auto 0; max-width: 600px; font-size: 20px; line-height: 1.2; font-weight: 500; letter-spacing: -0.03em; color: var(--text); }
.fhero .vid { width: min(500px, 100%); margin: 80px auto 0; }
.fhero .cta-row { margin-top: 80px; }
.termin .fhero__badge { margin: 24px auto 0; }
.termin .fhero .vid { margin-top: 80px; }
@media (max-width: 809px) {
  .fhero { padding: 40px 0 60px; }
  .fhero__h { font-size: 36px; }
  .fhero__p { font-size: 18px; }
  .fhero .vid, .termin .fhero .vid { margin-top: 40px; }
  .fhero .cta-row { margin-top: 40px; }
}

/* Calendly */
.cal { margin: 48px auto 0; width: min(1000px, 100%); background: #fff; border: 1px solid var(--line); border-radius: 20px; overflow: hidden; }
.cal__box { min-height: 700px; display: grid; place-items: center; color: var(--muted); font-size: 15px; }
.cal__box > .calendly-inline-widget, .cal__box > iframe { width: 100%; }
.cal__fb { margin-top: 14px; font-size: 14px; color: var(--muted); }
.cal__fb a { color: var(--red); text-decoration: underline; }
@media (max-width: 809px) { .cal { border-radius: 16px; } .cal__box { min-height: 1000px; } }

/* Termin-Karte /danke */
.slot { margin: 32px auto 0; width: min(500px, 100%); background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 18px 20px; text-align: left; display: grid; gap: 12px; }
.slot__row { display: flex; gap: 12px; align-items: center; }
.slot__ic { width: 40px; height: 40px; border-radius: 12px; background: rgba(2, 195, 154, .12); color: var(--green); display: grid; place-items: center; flex: none; }
.slot__ic svg { width: 20px; height: 20px; }
.slot__d { font-size: 16px; font-weight: 600; letter-spacing: -0.02em; }
.slot__t { font-size: 14px; color: var(--text); margin-top: 2px; }
.slot__btns { display: flex; gap: 8px; flex-wrap: wrap; }
.slot__btns a, .slot__btns button { flex: 1 1 180px; height: 40px; border-radius: 10px; border: 1px solid var(--line); background: var(--soft); font-size: 14px; font-weight: 500; display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.slot__btns a:hover, .slot__btns button:hover { border-color: var(--green); }
.slot__note { font-size: 14px; color: var(--text); text-align: center; margin-top: 28px; }

/* --- Rechtstexte ------------------------------------------------------------------------------------- */
.legal { background: var(--soft); padding: 80px 0 100px; }
.legal h1 { hyphens: auto; -webkit-hyphens: auto; overflow-wrap: anywhere; font-size: 44px; line-height: 1.2; font-weight: 600; letter-spacing: -0.03em; }
.legal .stand { margin-top: 16px; font-size: 20px; color: var(--text); letter-spacing: -0.03em; }
.legal h2 { margin-top: 56px; font-size: 24px; line-height: 1.2; font-weight: 600; letter-spacing: -0.03em; }
.legal h3 { margin-top: 24px; font-size: 20px; line-height: 1.2; font-weight: 600; letter-spacing: -0.03em; }
.legal p, .legal li { overflow-wrap: anywhere; }
.legal p { margin-top: 18px; font-size: 20px; line-height: 1.3; color: var(--text); letter-spacing: -0.03em; }
.legal p.addr { margin-top: 12px; color: var(--ink); line-height: 1.2; }
.legal ul { margin-top: 12px; padding-left: 28px; list-style: disc; }
.legal li { font-size: 20px; line-height: 32px; color: var(--text); letter-spacing: -0.03em; }
.legal a { color: var(--red); text-decoration: underline; overflow-wrap: anywhere; }
.legal strong { color: var(--ink); font-weight: 600; }
@media (max-width: 809px) { .legal { padding: 48px 0 64px; } .legal h1 { font-size: 36px; } .legal p, .legal li { font-size: 17px; } .legal li { line-height: 1.5; } .legal h2 { margin-top: 40px; font-size: 22px; } }

/* --- Modal / Opt-in ------------------------------------------------------------------------------------ */
.modal { position: fixed; inset: 0; z-index: 100; display: none; align-items: flex-start; justify-content: center; padding: 93px 16px 24px; background: rgba(0, 0, 0, .5); overflow-y: auto; overscroll-behavior: contain; }
.modal.is-open { display: flex; }
.modal__box { position: relative; width: min(541px, 100%); background: var(--soft); border-radius: 24px; padding: 20px; box-shadow: 0 0 6px rgba(143, 143, 143, .2); animation: pop .22s ease-out; }
@keyframes pop { from { opacity: 0; transform: translateY(12px) scale(.98); } }
@media (prefers-reduced-motion: reduce) { .modal__box { animation: none; } }
.modal__x { position: absolute; right: 18px; top: 18px; width: 30px; height: 30px; color: #8a8a8a; border-radius: 8px; display: grid; place-items: center; }
.modal__x svg { width: 22px; height: 22px; }
.modal__x:hover { color: var(--ink); }
.modal__logo { width: 40px; height: 40px; margin: 0 auto; object-fit: contain; }
.modal__h { margin-top: 12px; text-align: center; font-size: 24px; line-height: 1.2; font-weight: 600; letter-spacing: -0.03em; color: var(--red); }
.modal__p { margin-top: 12px; text-align: center; font-size: 14px; color: var(--text); letter-spacing: -0.01em; }
.form { margin-top: 12px; display: grid; gap: 14px; }
.f label, .f .f__l { display: block; font-size: 12px; font-weight: 500; margin-bottom: 8px; }
.f input[type=text], .f input[type=email], .f input[type=tel] { width: 100%; height: 40px; border: 1px solid transparent; border-radius: 10px; background: #fff; padding: 0 12px; font: inherit; font-size: 16px; color: var(--ink); outline: none; transition: border-color .15s, box-shadow .15s; }
.f input::placeholder { color: #b5b5b5; }
.f input:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(223, 178, 61, .2); }
.f.bad input { border-color: var(--red); }
.f__err { display: none; margin-top: 6px; font-size: 12px; color: var(--red); }
.f.bad .f__err { display: block; }
.phone { display: flex; align-items: center; background: #fff; border-radius: 10px; border: 1px solid transparent; transition: border-color .15s, box-shadow .15s; }
.phone:focus-within { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(223, 178, 61, .2); }
.f.bad .phone { border-color: var(--red); }
.phone .f__cc { position: relative; display: flex; align-items: center; gap: 8px; height: 40px; padding: 0 8px 0 12px; font-size: 14px; font-weight: 500; flex: none; }
.phone .f__cc select { position: absolute; inset: 0; opacity: 0; width: 100%; cursor: pointer; font-size: 16px; }
.phone .f__cc svg { width: 14px; height: 14px; }
.phone .f__flag { font-size: 18px; line-height: 1; }
.phone input[type=tel] { border: 0; box-shadow: none !important; padding-left: 4px; }
.wa { display: flex; align-items: center; gap: 12px; border: 1px dashed #d6d6d6; border-radius: 10px; padding: 9px 14px; font-size: 14px; font-weight: 500; letter-spacing: -0.02em; margin-top: -2px; }
.wa svg { width: 24px; height: 24px; flex: none; }
.f .chk { margin-bottom: 0; font-weight: 400; }
.chk { display: flex !important; gap: 10px; align-items: flex-start; font-size: 12px; line-height: 1.35; color: var(--text); cursor: pointer; }
.chk input { appearance: none; -webkit-appearance: none; width: 20px; height: 20px; margin: 0; border: 1px solid #9a9a9a; border-radius: 50%; background: #fff; flex: none; display: grid; place-items: center; cursor: pointer; }
.chk input:checked { background: var(--gold); border-color: var(--gold); }
.chk input:checked::after { content: ""; width: 5px; height: 9px; border: solid #fff; border-width: 0 2px 2px 0; transform: translateY(-1px) rotate(45deg); }
.chk input:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }
.f.bad .chk input { border-color: var(--red); }
.form__go { height: 40px; border-radius: 20px; background: var(--gold); color: #fff; font-size: 14px; font-weight: 600; transition: filter .2s; }
.form__go:hover { filter: brightness(1.05); }
.form__go[disabled] { opacity: .7; cursor: progress; }
.hp { position: absolute !important; left: -10000px !important; top: auto; width: 1px; height: 1px; overflow: hidden; }
body.is-locked { overflow: hidden; }
@media (max-width: 809px) {
  .modal { padding: 20px 12px; }
  .modal__box { border-radius: 24px; }
  .modal__h { font-size: 20px; }
  .chk { font-size: 11px; }
  .form__go { height: 44px; border-radius: 22px; font-size: 15px; }
}

/* --- Mobile Sticky-CTA ------------------------------------------------------------------------------------ */
.dock { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: rgba(255, 255, 255, .92); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); border-top: 1px solid var(--line); transform: translateY(110%); transition: transform .25s ease; display: none; }
.dock .btn { width: 100%; min-width: 0; }
.dock.is-up { transform: none; }
@media (max-width: 809px) { .dock { display: block; } }
