/* karriere.css — seiten-spezifisches Sektions-Layout.
   Tokens, Typografie, Buttons, Nav und Footer kommen zentral aus base.css (eine Wahrheit). */

    .deco-star { color: var(--blue); }  /* seiten-spezifisch: blau statt base-orange */

    /* ══════════════════════════════════════════
       PAGE HERO — Tall, immersive, inviting
       ══════════════════════════════════════════ */
    .page-hero {
      position: relative;
      min-height: 70vh;
      background: var(--warm-900);
      overflow: hidden;
    }
    .page-hero img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      opacity: 0.45;
    }
    .page-hero::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(180deg, rgba(26,25,23,0.1) 0%, rgba(26,25,23,0.7) 100%);
    }
    .page-hero-content {
      position: absolute;
      bottom: 72px;
      left: 0; right: 0;
      padding: 0 80px;
      z-index: 5;
    }
    .page-hero-content .label { color: var(--orange); margin-bottom: 16px; }
    .page-hero-title {
      font-family: var(--font-display);
      font-size: 80px;
      font-weight: 800;
      line-height: 0.95;
      letter-spacing: -3px;
      color: var(--white);
      text-transform: uppercase;
    }
    .page-hero-title span { color: var(--warm-400); font-weight: 600; }
    .page-hero-desc {
      font-size: 17px;
      line-height: 1.7;
      color: rgba(255,255,255,0.55);
      max-width: 500px;
      margin-top: 20px;
    }
    .page-hero-actions {
      display: flex;
      gap: 12px;
      margin-top: 32px;
    }


    /* ══════════════════════════════════════════
       WHY BURY — Benefits in a big grid
       ══════════════════════════════════════════ */
    .why-section {
      padding: 160px 80px;
    }
    .why-header {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 60px;
      margin-bottom: 80px;
    }
    .why-header .label { margin-bottom: 12px; }
    .why-header .t-xl { max-width: 500px; }
    .why-header-right {
      padding-top: 16px;
    }
    .why-header-right .t-editorial { max-width: 440px; }

    .why-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 24px;
    }
    .why-card {
      background: var(--sand);
      border-radius: var(--radius-lg);
      padding: 44px 36px;
      transition: transform 0.3s ease;
    }
    .why-card:hover { transform: translateY(-4px); }
    .why-card-icon {
      width: 52px;
      height: 52px;
      margin-bottom: 24px;
    }
    .why-card-icon img {
      width: 52px;
      height: 52px;
      object-fit: contain;
    }
    .why-card h4 {
      font-family: var(--font-display);
      font-size: 20px;
      font-weight: 700;
      color: var(--warm-900);
      margin-bottom: 12px;
    }
    .why-card p {
      font-size: 14px;
      line-height: 1.8;
      color: var(--warm-500);
    }


    /* ══════════════════════════════════════════
       AZUBI — Ausbildung section.
       Big image + content, atmospheric.
       ══════════════════════════════════════════ */
    .azubi-section {
      margin: 0 var(--pad);
      border-radius: var(--radius-xl);
      overflow: hidden;
      display: grid;
      grid-template-columns: 1fr 1fr;
      min-height: 480px;
    }
    .azubi-img {
      position: relative;
      overflow: hidden;
    }
    .azubi-body {
      background: var(--warm-900);
      padding: 56px 52px;
      display: flex;
      flex-direction: column;
      justify-content: center;
    }
    .azubi-body .label { color: var(--orange); margin-bottom: 16px; }
    .azubi-body h2 {
      font-family: var(--font-display);
      font-size: 38px;
      font-weight: 700;
      line-height: 1.1;
      letter-spacing: -1px;
      color: var(--white);
      margin-bottom: 16px;
    }
    .azubi-body p {
      font-size: 16px;
      line-height: 1.8;
      color: var(--warm-400);
      margin-bottom: 22px;
      max-width: 400px;
    }
    .azubi-highlights {
      display: flex;
      flex-direction: column;
      gap: 13px;
      margin-bottom: 28px;
    }
    .azubi-highlight {
      display: flex;
      align-items: center;
      gap: 12px;
      font-size: 15px;
      color: var(--warm-300);
    }
    .azubi-highlight-dot {
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: var(--orange);
      flex-shrink: 0;
    }
    /* Button nur so breit wie sein Inhalt (sonst streckt align-items:stretch ihn über die Spalte) */
    .azubi-body .btn { align-self: flex-start; }


    /* ══════════════════════════════════════════
       TEAM GALLERY — Azubi/Team impressions
       ══════════════════════════════════════════ */
    .team-gallery {
      padding: 120px var(--pad);
    }
    .team-gallery-header {
      text-align: center;
      margin-bottom: 60px;
    }
    .team-gallery-header .label { margin-bottom: 12px; }
    .team-gallery-grid {
      display: grid;
      grid-template-columns: 1fr 1.5fr 1fr;
      /* Statt fixer 280px: die Zeilenhoehe waechst mit der Fensterbreite mit.
         Sonst wird die Kachel auf breiten Schirmen immer flacher und der
         Ausschnitt immer knapper — genau der Effekt, den Benjamin gemeldet hat
         („mal ganz, mal nur ein Ausschnitt"). Bei 1440px sind es weiter 281px,
         das Figma-Layout bleibt also unveraendert. */
      grid-template-rows: repeat(2, clamp(240px, 19.5vw, 360px));
      gap: 16px;
    }
    .tg-item {
      border-radius: var(--radius-lg);
      overflow: hidden;
      min-width: 0;
    }
    .tg-item.tall {
      grid-row: span 2;
    }
    /* Bildausschnitt je Kachel (ACF-Feld „Bildausschnitt"). Die Kacheln sind
       quer, die Fotos hochkant — ohne Steuerung schneidet der mittige Standard-
       Crop die Koepfe ab. */
    .tg-item img { object-position: 50% 30%; }
    .tg-item.focus-oben img       { object-position: 50% 12%; }
    .tg-item.focus-mitte-oben img { object-position: 50% 30%; }
    .tg-item.focus-mitte img      { object-position: 50% 50%; }
    .tg-item.focus-unten img      { object-position: 50% 80%; }


    /* ══════════════════════════════════════════
       STELLEN — Open positions
       ══════════════════════════════════════════ */
    .stellen {
      padding: 120px 80px 160px;
    }
    .stellen-header {
      text-align: center;
      margin-bottom: 60px;
    }
    .stellen-header .label { margin-bottom: 12px; }
    .stellen-header .t-xl { margin-bottom: 16px; }
    .stellen-header .text-lg { max-width: 480px; margin: 0 auto; }

    .stellen-list {
      max-width: 900px;
      margin: 0 auto;
      display: flex;
      flex-direction: column;
      gap: 16px;
    }
    .stelle {
      border: 1.5px solid var(--warm-100);
      border-radius: var(--radius-lg);
      overflow: hidden;
      transition: border-color 0.3s ease, box-shadow 0.3s ease;
    }
    .stelle:hover { border-color: var(--warm-200); }
    .stelle.open {
      border-color: var(--orange);
      box-shadow: 0 8px 32px rgba(230,117,8,0.06);
    }
    .stelle-head {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 20px;
      padding: 28px 36px;
      cursor: pointer;
    }
    /* Info nimmt den Platz, das +-Icon bleibt fest rechts (sonst wandert es bei
       langen Titeln). */
    .stelle-info { flex: 1; min-width: 0; }
    .stelle-info h4 {
      font-family: var(--font-display);
      font-size: 20px;
      font-weight: 700;
      color: var(--warm-900);
      margin-bottom: 4px;
    }
    .stelle-meta {
      display: flex;
      gap: 16px;
      font-size: 13px;
      color: var(--warm-400);
    }
    .stelle-meta span {
      display: inline-flex;
      align-items: center;
      gap: 4px;
    }
    .stelle-icon {
      width: 34px;
      height: 34px;
      border-radius: 50%;
      background: var(--sand);
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      font-size: 20px;
      color: var(--warm-400);
      transition: all 0.3s;
    }
    .stelle.open .stelle-icon {
      background: var(--blue);
      color: var(--white);
      transform: rotate(45deg);
    }
    .stelle-body {
      max-height: 0;
      overflow: hidden;
      padding: 0 36px;
      transition: max-height 0.45s ease;
    }
    .stelle.open .stelle-body { max-height: 1400px; padding-bottom: 32px; }
    .stelle-profil {
      font-size: 15px;
      line-height: 1.8;
      color: var(--warm-500);
      border-top: 1px solid var(--warm-100);
      padding-top: 20px;
    }
    .stelle-profil h4 {
      font-family: var(--font-display);
      font-size: 16px;
      color: var(--warm-900);
      margin: 16px 0 8px;
    }
    .stelle-profil h4:first-child { margin-top: 0; }
    .stelle-profil ul { margin: 0 0 12px; padding-left: 20px; }
    .stelle-profil li { margin-bottom: 6px; }
    .stelle-profil p { margin-bottom: 12px; }
    .stelle-body .btn { margin-top: 24px; }

    /* Initiativ */
    .stellen-initiativ {
      text-align: center;
      margin-top: 48px;
      padding-top: 48px;
      border-top: 1px solid var(--warm-100);
      max-width: 900px;
      margin-left: auto;
      margin-right: auto;
    }
    .stellen-initiativ p {
      font-size: 15px;
      color: var(--warm-500);
      margin-bottom: 20px;
    }


    /* ══════════════════════════════════════════
       CTA
       ══════════════════════════════════════════ */
    .page-cta {
      padding: 0 var(--pad) 160px;
    }
    .page-cta-inner {
      background: var(--sand);
      border-radius: var(--radius-xl);
      padding: 100px 80px;
      text-align: center;
    }
    .page-cta-inner .deco-star { margin-bottom: 24px; }
    .page-cta-inner .t-xl { margin-bottom: 16px; }
    .page-cta-inner .text-lg { max-width: 480px; margin: 0 auto 40px; }
    .page-cta-actions {
      display: flex;
      gap: 12px;
      justify-content: center;
    }
    .page-cta-phone {
      margin-top: 20px;
      font-size: 15px;
      color: var(--warm-500);
    }
    .page-cta-phone a {
      color: var(--warm-900);
      font-weight: 600;
    }


    /* ══════════════════════════════════════════
       VIDEO-SLIDER — Mitarbeiter-Testimonials (consent-gated).
       Heller Block; Einbettungscodes trägt der Kunde via ACF nach.
       ══════════════════════════════════════════ */
    .video-section {
      padding: 120px var(--pad);
      background: var(--sand);
    }
    .video-header {
      text-align: center;
      max-width: 620px;
      margin: 0 auto 56px;
    }
    .video-header .label { margin-bottom: 12px; }
    .video-header .t-xl { margin-bottom: 16px; }
    .video-header .text-lg { max-width: 480px; margin: 0 auto; }
    .video-track {
      display: flex;
      gap: 24px;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      padding: 4px 0 20px;
      scrollbar-width: thin;
    }
    .video-item {
      flex: 0 0 min(440px, 82vw);
      scroll-snap-align: center;
    }
    .video-embed {
      position: relative;
      aspect-ratio: 16 / 9;
      border-radius: var(--radius-lg);
      overflow: hidden;
      background: var(--warm-900);
    }
    .video-embed iframe,
    .video-embed video {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      border: 0;
      object-fit: cover;
    }
    .video-name {
      margin-top: 16px;
      font-family: var(--font-display);
      font-size: 16px;
      font-weight: 700;
      color: var(--warm-900);
      text-align: center;
    }
    .video-placeholder {
      max-width: 620px;
      margin: 0 auto;
      border: 1.5px dashed var(--warm-200);
      border-radius: var(--radius-lg);
      background: var(--white);
      padding: 64px 32px;
      text-align: center;
      color: var(--warm-400);
      font-size: 15px;
      line-height: 1.7;
    }


    /* ══════════════════════════════════════════
       GF-VIDEO (Querformat, groß) + AZUBI-BENEFITS + AUSBILDUNGSBERUFE
       ══════════════════════════════════════════ */
    .gf-video-section { padding: 120px var(--pad) 40px; }
    .gf-video-header {
      text-align: center;
      max-width: 640px;
      margin: 0 auto 40px;
    }
    .gf-video-header .label { margin-bottom: 12px; }
    .gf-video-header .t-xl { margin-bottom: 16px; }
    .gf-video-header .text-lg { color: var(--warm-500); }
    .gf-video-embed {
      position: relative;
      max-width: 960px;
      margin: 0 auto;
      aspect-ratio: 16 / 9;
      border-radius: var(--radius-xl);
      overflow: hidden;
      background: var(--warm-900);
      box-shadow: 0 30px 80px rgba(0,0,0,0.12);
    }
    .gf-video-embed iframe,
    .gf-video-embed video {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      border: 0;
    }

    /* Ausbildung als EIN zusammenhängender Bereich (heller Grund umschließt Intro,
       Azubi-Benefits und Ausbildungsberufe → eine Einheit statt drei loser Sektionen) */
    .ausbildung {
      background: var(--sand);
      padding: 120px var(--pad);
    }
    .ausbildung .azubi-section { margin: 0; }   /* Intro-Split ohne eigenen Außenabstand */
    /* Unterabschnitte mit Zwischentitel (h3), kein zweiter/dritter Riesen-Header mehr */
    .azubi-part {
      max-width: 1100px;
      margin: 0 auto;
      padding-top: 80px;
    }
    .azubi-part-label {
      text-align: center;
      font-size: 11px;
      font-weight: 600;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: var(--orange);
      margin-bottom: 12px;
    }
    .azubi-subtitle {
      font-family: var(--font-display);
      font-size: 30px;
      font-weight: 700;
      letter-spacing: -0.5px;
      color: var(--warm-900);
      text-align: center;
      margin-bottom: 44px;
    }
    /* Azubi-Benefit-Karten: weiß (Kontrast zum sand-Grund), blaues Badge-Icon */
    .abenefits-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 20px;
    }
    .abenefit-card {
      background: var(--white);
      border-radius: var(--radius-lg);
      padding: 32px 28px;
    }
    .abenefit-icon { width: 46px; height: 46px; margin-bottom: 18px; }
    .abenefit-icon img { width: 46px; height: 46px; object-fit: contain; }
    .abenefit-card h4 {
      font-family: var(--font-display);
      font-size: 18px;
      font-weight: 700;
      color: var(--warm-900);
      margin-bottom: 10px;
    }
    .abenefit-card p {
      font-size: 14px;
      line-height: 1.7;
      color: var(--warm-500);
      margin: 0;
    }
    /* Ausbildungsberufe-Accordion im Sand-Block: weiße Karten + sichtbarer Toggle
       (sonst verschwinden Rahmen und Icon-Kreis auf dem gleichfarbigen Sand-Grund) */
    .ausbildung .stelle { background: var(--white); }
    .ausbildung .stelle-icon { background: var(--orange-soft); }

    @media (max-width: 900px) {
      .gf-video-section { padding: 80px var(--pad) 24px; }
      .ausbildung { padding: 72px var(--pad); }
      .azubi-part { padding-top: 56px; }
      .azubi-subtitle { font-size: 26px; margin-bottom: 32px; }
      .abenefits-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }
    @media (max-width: 640px) {
      .gf-video-section { padding: 64px var(--pad) 16px; }
      .ausbildung { padding: 56px var(--pad); }
      .azubi-part { padding-top: 44px; }
      .azubi-subtitle { font-size: 23px; }
      .abenefits-grid { grid-template-columns: 1fr; }
    }


    /* ══════════════════════════════════════════
       BEWERBUNGSSCHRITTE — nummeriert, Ziffern blau (accent, #36)
       ══════════════════════════════════════════ */
    .steps-section {
      padding: 140px var(--pad);
    }
    .steps-header {
      text-align: center;
      margin-bottom: 64px;
    }
    .steps-header .label { margin-bottom: 12px; }
    .steps-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 32px;
      max-width: 1100px;
      margin: 0 auto;
    }
    .step { min-width: 0; }
    .step-num {
      font-family: var(--font-display);
      font-size: 56px;
      font-weight: 800;
      line-height: 1;
      color: var(--blue);
      margin-bottom: 16px;
    }
    .step-title {
      font-family: var(--font-display);
      font-size: 20px;
      font-weight: 700;
      color: var(--warm-900);
      margin-bottom: 10px;
    }
    .step-text {
      font-size: 14px;
      line-height: 1.7;
      color: var(--warm-500);
    }


    /* ══════════════════════════════════════════
       BLITZBEWERBUNG — Formular-Sektion (nur mit gesetztem Shortcode)
       ══════════════════════════════════════════ */
    .blitz-section {
      padding: 0 var(--pad) 140px;
    }
    .blitz-header {
      text-align: center;
      max-width: 620px;
      margin: 0 auto 48px;
    }
    .blitz-header .label { margin-bottom: 12px; }
    .blitz-header .t-xl { margin-bottom: 16px; }
    .blitz-header .text-lg { max-width: 480px; margin: 0 auto; }
    .blitz-form {
      max-width: 720px;
      margin: 0 auto;
      background: var(--sand);
      border-radius: var(--radius-xl);
      padding: 56px;
    }
    .form-placeholder {
      text-align: center;
      color: var(--warm-500);
      font-size: 15px;
      line-height: 1.7;
    }
    .form-placeholder code {
      background: var(--white);
      padding: 2px 8px;
      border-radius: 6px;
      font-size: 13px;
      color: var(--warm-700);
    }

    /* ── Fluent Form (Blitzbewerbung) ans Design angleichen — wie das
       Kontaktformular, aber über .blitz-form gescopt statt über die
       Formular-ID: greift damit für jede dort eingesetzte Form-ID.
       Inputs weiß auf der Sand-Karte, Border warm-200 für Kontrast. ── */
    .blitz-form .ff-el-group { margin-bottom: 20px; }
    .blitz-form .ff-el-input--label label {
      display: inline-block;
      font-size: 12px;
      font-weight: 600;
      letter-spacing: 1.5px;
      text-transform: uppercase;
      color: var(--warm-400);
      margin-bottom: 8px;
    }
    /* :not(.ff-screen-reader-element): der versteckte Datei-Input der Dropzone
       darf die Eingabefeld-Optik (width/padding/border) nicht erben */
    .blitz-form .ff-el-form-control:not(.ff-screen-reader-element) {
      width: 100%;
      padding: 16px 20px;
      border: 1.5px solid var(--warm-200);
      border-radius: var(--radius-md);
      font-family: var(--font-body);
      font-size: 15px;
      line-height: 1.5;
      color: var(--warm-800);
      background: var(--white);
      transition: border-color 0.3s;
      outline: none;
      box-shadow: none;
    }
    .blitz-form .ff-el-form-control:focus { border-color: var(--orange); box-shadow: none; }
    .blitz-form textarea.ff-el-form-control { min-height: 140px; resize: vertical; }
    .blitz-form select.ff-el-form-control {
      appearance: none;
      -webkit-appearance: none;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239E978C' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right 16px center;
      padding-right: 44px;
      cursor: pointer;
    }
    /* Telefon-Feld (intl-tel-input): Flaggen-Dropdown links, Text nicht überlagern */
    .blitz-form .iti { width: 100%; display: block; }
    .blitz-form .iti input.ff-el-form-control { padding-left: 52px; }
    /* Datei-Upload (Lebenslauf): der Holder ist die Dropzone — gestrichelte
       weiße Fläche wie der Formular-Platzhalter, Button-Pill mittig darin */
    .blitz-form .ff-dropzone .ff_file_upload_holder {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 10px;
      padding: 36px 24px;
      background: var(--white);
      border: 1.5px dashed var(--warm-300);
      border-radius: var(--radius-md);
      text-align: center;
      cursor: pointer;
      transition: border-color 0.3s, background 0.3s;
    }
    .blitz-form .ff-dropzone .ff_file_upload_holder:hover,
    .blitz-form .ff-dropzone .ff_file_upload_holder:focus-within,
    .blitz-form .ff-dropzone .ff_file_upload_holder.ff_drag_over {
      border-color: var(--orange);
      background: var(--orange-soft);
    }
    .blitz-form .ff-dropzone .ff_file_upload_holder::after {
      content: "oder klicken und Datei auswählen";
      font-size: 13px;
      color: var(--warm-400);
    }
    /* Volle Selektor-Tiefe nötig: Fluent Forms stylt den Span selbst als
       blau-gestrichelte Fläche und gewinnt sonst über die Spezifität */
    .blitz-form .ff-dropzone .ff_file_upload_holder .ff_upload_btn.ff-btn {
      display: inline-flex;
      width: auto;
      align-items: center;
      gap: 8px;
      padding: 12px 28px;
      margin: 0;
      background: var(--white);
      color: var(--warm-800);
      font-size: 14px;
      font-weight: 600;
      border: 1.5px solid var(--warm-200);
      border-style: solid;
      border-radius: var(--radius-pill);
      cursor: pointer;
      transition: border-color 0.3s;
      box-shadow: none;
    }
    .blitz-form .ff-dropzone .ff_file_upload_holder .ff_upload_btn.ff-btn:hover { border-color: var(--warm-800); background: var(--white); color: var(--warm-800); }
    /* Hochgeladene Dateien (Vorschau-Liste unter der Dropzone) */
    .blitz-form .ff_upload_preview {
      background: var(--white);
      border: 1.5px solid var(--warm-100);
      border-radius: var(--radius-sm);
      font-size: 13px;
      color: var(--warm-600);
    }
    /* Checkbox (Datenschutz): Fließtext klein und NICHT versal */
    .blitz-form .ff-el-form-check label {
      font-size: 14px;
      font-weight: 400;
      letter-spacing: 0;
      text-transform: none;
      color: var(--warm-500);
      line-height: 1.6;
    }
    .blitz-form .ff-el-form-check label a { color: var(--orange); text-decoration: underline; text-underline-offset: 2px; }
    .blitz-form .ff-el-form-check-input { width: 16px; height: 16px; accent-color: var(--orange); }
    /* Submit-Button = btn-accent aus dem Design */
    .blitz-form .ff-btn-submit {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 18px 44px;
      background: var(--orange) !important;
      color: var(--white) !important;
      font-family: var(--font-body);
      font-size: 15px;
      font-weight: 600;
      border: none;
      border-radius: var(--radius-pill);
      cursor: pointer;
      transition: all 0.3s;
      box-shadow: none;
    }
    .blitz-form .ff-btn-submit:hover { background: var(--orange-hover) !important; }
    .blitz-form .ff_submit_btn_wrapper { margin-top: 12px; }


    /* ══════════════════════════════════════════
       RESPONSIVE
       ══════════════════════════════════════════ */
    @media (max-width: 900px) {
      body { width: 100%; }
      .page-hero-content { padding: 0 40px; bottom: 48px; }
      .page-hero-title { font-size: 56px; letter-spacing: -2px; }
      .page-hero-desc { font-size: 16px; max-width: 100%; }
      .page-hero-actions { flex-wrap: wrap; }
      .why-section { padding: 96px 40px; }
      .why-header { grid-template-columns: 1fr; gap: 24px; margin-bottom: 56px; }
      .why-header .t-xl { max-width: 100%; }
      .why-grid { grid-template-columns: 1fr 1fr; gap: 20px; }
      .azubi-section { grid-template-columns: 1fr; margin: 0 24px; min-height: 0; }
      .azubi-img { min-height: 320px; }
      .azubi-body { padding: 48px 40px; }
      .team-gallery { padding: 96px 24px; }
      .team-gallery-grid { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
      .tg-item { height: 260px; }
      .tg-item.tall { grid-row: auto; }
      .stellen { padding: 96px 40px 120px; }
      .video-section { padding: 96px 24px; }
      .steps-section { padding: 96px 40px; }
      .steps-grid { grid-template-columns: 1fr 1fr; gap: 40px 32px; }
      .blitz-section { padding: 0 24px 96px; }
      .blitz-form { padding: 40px 32px; }
      .page-cta { padding: 0 24px 96px; }
      .page-cta-inner { padding: 72px 40px; }
      .footer { margin: 0 24px; padding: 56px 40px 32px; }
      .footer-grid { grid-template-columns: 1fr 1fr; gap: 40px; margin-bottom: 56px; }
    }
    @media (max-width: 640px) {
      .page-hero-content { padding: 0 24px; }
      .page-hero-title { font-size: 40px; letter-spacing: -1px; }
      .page-hero-actions { flex-direction: column; align-items: stretch; }
      .page-hero-actions .btn { justify-content: center; }
      .why-section { padding: 72px 24px; }
      .why-grid { grid-template-columns: 1fr; }
      .t-xl { font-size: 44px; letter-spacing: -1px; }
      .azubi-section { margin: 0 16px; }
      .azubi-body { padding: 40px 24px; }
      .azubi-body h2 { font-size: 34px; }
      .team-gallery { padding: 72px 16px; }
      .team-gallery-grid { grid-template-columns: 1fr; }
      .tg-item { height: 240px; }
      .stellen { padding: 72px 24px 96px; }
      .video-section { padding: 72px 16px; }
      .video-item { flex-basis: 80vw; }
      .steps-section { padding: 72px 24px; }
      .steps-grid { grid-template-columns: 1fr; gap: 32px; }
      .blitz-section { padding: 0 16px 72px; }
      .blitz-form { padding: 32px 20px; border-radius: var(--radius-lg); }
      .stelle { flex-direction: row; padding: 24px; gap: 16px; }
      .stelle-info h4 { font-size: 17px; }
      .stelle-meta { flex-wrap: wrap; gap: 8px 12px; }
      .page-cta { padding: 0 16px 72px; }
      .page-cta-inner { padding: 48px 24px; border-radius: var(--radius-lg); }
      .page-cta-actions { flex-direction: column; align-items: stretch; }
      .page-cta-actions .btn { justify-content: center; }
      .footer { margin: 0 16px; padding: 48px 24px 28px; }
      .footer-grid { grid-template-columns: 1fr; gap: 32px; }
      .footer-bottom { flex-direction: column; gap: 12px; align-items: flex-start; }
    }