/* Stanglmeier Heizung & Sanitär · Landingpage Anlagenmechaniker SHK
   Farben/Typo aus dem Stanglmeier Design System. Schriften lokal (kein Google-Server). */
@font-face{font-family:'Barlow';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/barlow-400.woff2) format('woff2');}
@font-face{font-family:'Barlow';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/barlow-600.woff2) format('woff2');}
@font-face{font-family:'Barlow';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/barlow-700.woff2) format('woff2');}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/barlow-condensed-700.woff2) format('woff2');}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:800;font-display:swap;src:url(../fonts/barlow-condensed-800.woff2) format('woff2');}

:root{
  --red:#E20613; --red-h:#C00511; --red-p:#91040C; --red-100:#F7E3E3;
  --black:#141517; --anth-900:#1F2226; --anth-800:#2B2F34; --anth-700:#3A3F45;
  --grey-500:#5F646B; --grey-300:#B9BCC0; --grey-200:#DCDDDF; --grey-100:#EEEEEF;
  --paper:#F6F5F3; --white:#fff; --green:#2E7D46; --amber:#D99A1E;
  --display:'Barlow Condensed','Arial Narrow',Arial,sans-serif;
  --body:'Barlow',Arial,sans-serif;
  --ease:cubic-bezier(.2,0,.2,1);
  --gutter:20px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:64px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
body{margin:0;font-family:var(--body);font-size:18px;line-height:1.5;color:var(--anth-800);background:var(--white);-webkit-font-smoothing:antialiased}
img,video{display:block;max-width:100%;height:auto}
a{color:var(--red-h);text-decoration-thickness:2px;text-underline-offset:3px}
a:hover{color:var(--red-p)}
h1,h2,h3,p,ul,ol,figure,blockquote{margin:0}
sup{font-size:.6em;line-height:0;vertical-align:.7em}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--red);outline-offset:3px}
.section--red :focus-visible,.hero :focus-visible,.footer :focus-visible,.consent :focus-visible{outline-color:var(--white)}
/* Breite je Kontext über --wrap-max steuerbar (gewinnt unabhängig von der Regelreihenfolge) */
.wrap{max-width:var(--wrap-max,640px);margin:0 auto;padding:0 var(--gutter)}

.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--white);color:var(--black);padding:12px 16px;font-weight:700}
.skip:focus{left:8px;top:8px}

/* Platzhalter sichtbar markieren */
.ph{background:#FFF4D6;color:#5A3D00;outline:2px dashed var(--amber);outline-offset:-2px;font-family:var(--body);font-weight:600;font-size:16px;padding:2px 6px}

/* Kopfleiste */
.topbar{position:sticky;top:0;z-index:30;background:var(--black);color:var(--white)}
.topbar__in{display:flex;align-items:center;justify-content:space-between;gap:12px;height:56px}
.topbar__logo{width:150px;height:auto}
.topbar__meta{font-family:var(--display);font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:16px;color:var(--grey-300);white-space:nowrap}
/* Die Zeile hat white-space:nowrap und sprengt sonst schmale Geräte (z. B. 360px) */
@media (max-width:400px){.topbar__meta{display:none}}

/* Typo */
.eyebrow{font-family:var(--display);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:17px;line-height:1.2;color:var(--red-h);margin-bottom:8px}
.eyebrow--light{color:var(--white)}
.h2{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:38px;line-height:.95;color:var(--black);margin-bottom:24px;text-wrap:balance}
.lead{font-size:18px;margin-bottom:16px;text-wrap:pretty}
.sub{font-size:18px;margin:-12px 0 24px}
.footnote{font-size:16px;line-height:1.4;color:var(--grey-500);margin:16px 0 24px}
.footnote--light{color:var(--grey-200);margin:16px 0 0}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 22px;border:2px solid transparent;border-radius:2px;font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:.03em;font-size:20px;line-height:1.1;text-decoration:none;cursor:pointer;transition:background-color .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease);text-align:center}
.btn--md{min-height:48px;font-size:19px}
.btn--lg{min-height:56px;font-size:21px}
.btn--xl{min-height:60px;font-size:23px;padding:0 24px}
.btn--block{display:flex;width:100%}
.btn--primary{background:var(--red);color:var(--white)}
.btn--primary:hover{background:var(--red-h);color:var(--white)}
.btn--primary:active{background:var(--red-p)}
.btn--dark{background:var(--black);color:var(--white)}
.btn--dark:hover{background:var(--anth-700);color:var(--white)}
.btn[disabled]{opacity:.6;cursor:wait}

/* Häkchen-Liste mit quadratischen Markern */
.ticks{list-style:none;padding:0;display:grid;gap:10px}
.ticks li{position:relative;padding-left:28px;font-weight:600;font-size:18px;line-height:1.35}
.ticks li::before{content:"";position:absolute;left:0;top:.38em;width:13px;height:13px;background:var(--red)}
.ticks--light li{color:var(--white);font-size:19px}

/* 1 · Kopf */
.hero{background:var(--black);color:var(--white)}
/* Ausschnitt auf die Kopfzone des Fotos (Original y≈328–495 von 1331) abgestimmt.
   Streifen etwas höher, damit Köpfe und Schultern vollständig im Bild bleiben. */
.hero__img{width:100%;height:clamp(180px,26svh,250px);object-fit:cover;object-position:50% 26%;border-bottom:6px solid var(--red)}
.hero__in{position:relative;width:100%;padding-top:16px;padding-bottom:24px}
.hero__eyebrow{font-size:16px;margin-bottom:6px}
@media (min-width:640px){.hero__img{height:440px;object-position:50% 24%}.hero__in{padding-top:32px}}
@media (min-width:900px){
  .hero{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);min-height:calc(100svh - 56px)}
  .hero__img{height:100%;min-height:560px;max-height:none;object-position:50% 30%;border-bottom:0;border-right:6px solid var(--red)}
  .hero__in{align-self:center;margin:0;--wrap-max:680px;padding:48px 48px 48px 56px}
}
.hero__h1{font-family:var(--display);font-weight:800;text-transform:uppercase;line-height:.95;margin-bottom:14px}
.hero__job{display:block;font-size:26px;line-height:1;margin-bottom:8px;text-wrap:balance}
.hero__bonus{display:inline-block;background:var(--red);color:var(--white);font-size:clamp(28px,8.6vw,44px);white-space:nowrap;padding:7px 10px 5px;line-height:.95}
.hero .ticks{margin-bottom:16px;gap:8px}
.hero .ticks li{font-size:18px}
.cta__sub{margin-top:8px;font-size:17px;font-weight:600;text-align:center;color:var(--white)}
.hero .btn--xl{width:100%}
@media (min-width:640px){.hero__job{font-size:34px}.hero__bonus{font-size:64px}.hero__eyebrow{font-size:17px}}
@media (min-width:900px){.hero__job{font-size:30px}.hero__bonus{font-size:clamp(36px,3.8vw,58px)}}

/* Sektionen */
.section{padding:56px 0}
.section--alt{background:var(--paper)}
.section--red{background:var(--red);color:var(--white)}

/* 2 · Vorteile */
.benefits{list-style:none;padding:0;counter-reset:b;display:grid;gap:0;border-top:1px solid var(--grey-200)}
.benefit{counter-increment:b;position:relative;padding:18px 0 18px 48px;border-bottom:1px solid var(--grey-200)}
.benefit::before{content:counter(b,decimal-leading-zero);position:absolute;left:0;top:18px;font-family:var(--display);font-weight:800;font-size:22px;line-height:1;color:var(--red)}
.benefit__t{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:24px;line-height:1;color:var(--black);margin-bottom:6px;text-wrap:balance}
.benefit__d{font-size:17px;line-height:1.45;color:var(--anth-800);text-wrap:pretty}
.benefit__note{margin-top:8px;display:inline-block}
.benefit:nth-child(-n+3) .benefit__t{color:var(--red-h)}

/* 3 · Alltag */
.photo{width:100%;aspect-ratio:16/9;object-fit:cover;margin-bottom:28px}
.must{margin-top:28px;background:var(--white);border-top:6px solid var(--red);padding:20px}
.must__h{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:24px;line-height:1;color:var(--black);margin-bottom:14px}
.must__filter{margin-top:16px;padding-top:14px;border-top:1px solid var(--grey-200);font-size:17px}
.must__filter strong{color:var(--black)}

/* 4 · Zitat */
.quote__q{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:34px;line-height:1;text-wrap:balance}
.quote__by{margin-top:18px;font-weight:600;font-size:17px}
.quote__by .ph{color:#5A3D00}

/* 5 · Ablauf */
.steps{list-style:none;padding:0;display:grid;gap:12px}
.steps__i{display:grid;grid-template-columns:56px 1fr;align-items:center;gap:16px;background:var(--paper);padding:14px 16px}
.steps__n{display:flex;align-items:center;justify-content:center;width:56px;height:56px;background:var(--red);color:var(--white);font-family:var(--display);font-weight:800;font-size:32px}
.steps__t{font-weight:700;font-size:18px;color:var(--black);line-height:1.3}

/* 6 · Formular */
.form-card{background:var(--white);border-top:6px solid var(--red);padding:20px 18px 24px;box-shadow:0 1px 0 var(--grey-200)}
.progress{margin-bottom:20px}
.progress__row{display:flex;justify-content:space-between;font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:17px;letter-spacing:.04em;color:var(--anth-800);margin-bottom:6px}
.progress__bar{height:8px;background:var(--grey-100)}
.progress__bar span{display:block;height:100%;background:var(--red);transition:width .2s var(--ease)}
fieldset{border:0;margin:0;padding:0;min-width:0}
.step__q{display:block;padding:0;font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:28px;line-height:1;color:var(--black);margin-bottom:18px;text-wrap:balance}
.choices{display:grid;gap:10px}
.choices--row{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.choice{position:relative;display:block;cursor:pointer}
.choice input{position:absolute;opacity:0;width:1px;height:1px}
.choice span{display:flex;align-items:center;min-height:60px;padding:12px 18px;border:2px solid var(--anth-800);border-radius:2px;font-weight:700;font-size:19px;color:var(--black);background:var(--white);transition:background-color .12s var(--ease),color .12s var(--ease),border-color .12s var(--ease)}
.choice--sm span{min-height:52px;padding:8px 6px;justify-content:center;font-size:17px;text-align:center}
.choice:hover span{border-color:var(--red)}
.choice input:checked+span{background:var(--red);border-color:var(--red);color:var(--white)}
.choice input:focus-visible+span{outline:3px solid var(--red);outline-offset:3px}
.back{display:inline-flex;align-items:center;min-height:48px;margin-top:12px;padding:0 4px;border:0;background:none;font:600 17px/1 var(--body);color:var(--anth-800);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.stop__t{margin-bottom:18px}

.field{margin-bottom:18px}
.field__l{display:block;padding:0;font-weight:700;font-size:17px;color:var(--black);margin-bottom:6px}
.opt{font-weight:400;color:var(--grey-500)}
.field__i{display:block;width:100%;min-height:54px;padding:12px 14px;border:2px solid var(--anth-800);border-radius:2px;background:var(--white);font:400 18px/1.3 var(--body);color:var(--black);appearance:none}
.field__i::placeholder{color:var(--grey-500)}
.field__i:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px var(--red-100)}
.field__i[aria-invalid="true"]{border-color:var(--red-h);background:#FFF7F7}
.field__err{min-height:0;font-size:16px;font-weight:600;color:var(--red-p);margin-top:6px}
.field__err:empty{display:none}
.check{display:grid;grid-template-columns:28px 1fr;gap:12px;align-items:start;cursor:pointer;font-size:16px;line-height:1.45}
.check input{position:absolute;opacity:0;width:1px;height:1px}
.check__box{width:28px;height:28px;border:2px solid var(--anth-800);border-radius:2px;background:var(--white);display:flex;align-items:center;justify-content:center}
.check input:checked+.check__box{background:var(--red);border-color:var(--red)}
.check input:checked+.check__box::after{content:"✓";color:var(--white);font-weight:700;font-size:18px;line-height:1}
.check input:focus-visible+.check__box{outline:3px solid var(--red);outline-offset:3px}
.check input[aria-invalid="true"]+.check__box{border-color:var(--red-h)}
.form-err{background:var(--red-100);color:var(--red-p);font-weight:600;font-size:17px;padding:12px 14px;margin-bottom:14px}
.hp{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}

.thanks__h{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:40px;line-height:.95;color:var(--black);margin-bottom:14px}
.thanks__t{font-size:19px;margin-bottom:12px}
.link-strong{font-weight:700}
.demo-flag{margin-top:16px;padding:10px 12px;background:#FFF4D6;color:#5A3D00;font-weight:700;font-size:16px;outline:2px dashed var(--amber)}

/* 7 · Ansprechpartner */
.person{display:grid;grid-template-columns:120px 1fr;gap:18px;align-items:center}
.person__img{position:relative;width:120px;aspect-ratio:1;background:var(--grey-100);overflow:hidden}
.person__img img{width:100%;height:100%;object-fit:cover}
.person__name{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:26px;line-height:1;color:var(--black);margin-bottom:4px}
.person__role{font-size:17px;margin-bottom:14px}
@media (max-width:420px){.person{grid-template-columns:1fr}.person__img{width:140px}}

/* 8 · Fußzeile */
.footer{background:var(--black);color:var(--grey-200);padding:40px 0 120px;border-top:6px solid var(--red)}
.footer__logo{width:170px;margin-bottom:18px}
.footer__addr{font-size:16px;line-height:1.5;margin-bottom:14px}
.footer__note{font-size:16px;color:var(--grey-300);margin-bottom:18px}
.footer__links{display:flex;flex-wrap:wrap;gap:4px 20px}
.footer__links a,.footer__btn{display:inline-flex;align-items:center;min-height:48px;color:var(--white);font:600 17px/1 var(--body);text-decoration:underline;text-underline-offset:3px;background:none;border:0;padding:0;cursor:pointer}
.footer__links a:hover,.footer__btn:hover{color:var(--grey-300)}

/* Fixierter Button unten (Handy) */
.sticky{position:fixed;left:0;right:0;bottom:0;z-index:40;padding:10px var(--gutter) calc(10px + env(safe-area-inset-bottom));background:var(--white);border-top:1px solid var(--grey-200);transform:translateY(110%);transition:transform .2s var(--ease)}
.sticky.is-on{transform:none}
@media (min-width:900px){.sticky{display:none}}

/* Einwilligung */
.consent{position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--anth-900);color:var(--white);padding:16px 0 calc(16px + env(safe-area-inset-bottom));border-top:6px solid var(--red)}
.consent__t{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:22px;line-height:1;margin-bottom:6px}
.consent__d{font-size:16px;line-height:1.4;margin-bottom:12px;color:var(--grey-200)}
.consent__d a{color:var(--white)}
.consent__btns{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.consent__d a.ph,.footer__links a.ph{color:#5A3D00}
.consent .btn--dark{background:var(--white);color:var(--black)}
.consent .btn--dark:hover{background:var(--grey-200);color:var(--black)}

/* =====================================================================
   TABLET ab 640px
   ===================================================================== */
@media (min-width:640px){
  /* --wrap-max gehört auf :root, nicht auf .wrap – sonst gewinnt der am
     Element gesetzte Wert später gegen den breiteren Desktop-Wert. */
  :root{--gutter:28px;--wrap-max:680px}
  .section{padding:72px 0}
  .h2{font-size:46px}
  .steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
  .steps__i{grid-template-columns:1fr;align-items:start;gap:12px;padding:20px}
  .person{grid-template-columns:160px 1fr;gap:24px}
  .person__img{width:160px}
}

/* =====================================================================
   DESKTOP ab 900px · hier wird aus der Handy-Spalte ein Flächenlayout
   ===================================================================== */
@media (min-width:900px){
  :root{--gutter:40px;--wrap-max:1120px}
  .section{padding:88px 0}
  .h2{font-size:52px}
  .topbar__logo{width:180px}
  .topbar__meta{font-size:17px}

  /* Fließtext bleibt lesbar schmal, auch wenn der Wrap breit ist */
  .lead,.sub{max-width:62ch}

  /* CTA unter den Vorteilen nicht über die volle Breite ziehen */
  .wrap > .btn--block{max-width:420px;margin-left:auto;margin-right:auto}

  /* 2 · Vorteile – zwei Spalten */
  .benefits{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:56px}
  .benefit{padding-top:20px;padding-bottom:20px}
  .benefit::before{top:20px}
  .benefit__t{font-size:26px}
  .benefit__d{font-size:18px}

  /* 3 · Alltag – Bild als Band, darunter Text links / Anforderungen rechts */
  .alltag .wrap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:56px}
  .alltag .photo{grid-column:1/-1;aspect-ratio:21/9;margin-bottom:36px}
  .alltag .eyebrow,.alltag .h2{grid-column:1/-1}
  .alltag__txt{grid-column:1}
  .alltag .must{grid-column:2;grid-row:4;margin-top:0;padding:28px}
  .alltag .lead:last-child{margin-bottom:0}

  /* 4 · Zitat – größer, aber nicht über die ganze Breite */
  .quote{max-width:860px;margin:0 auto}
  .quote__q{font-size:44px}

  /* 5 · Ablauf – drei Karten nebeneinander */
  .steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
  .steps__i{grid-template-columns:1fr;align-items:start;gap:16px;padding:28px}
  .steps__t{font-size:19px}

  /* 6 · Formular – bewusst schmal, Formulare lesen sich breit schlecht */
  #bewerben .wrap{--wrap-max:720px}
  .form-card{padding:32px 32px 36px}

  /* 7 · Ansprechpartner */
  .person{grid-template-columns:200px 1fr;gap:32px;max-width:720px}
  .person__img{width:200px}
  .person__name{font-size:30px}
  .person__txt .btn--block{max-width:360px}

  /* 8 · Fußzeile – ohne fixierten Button unten kein Platzhalter nötig */
  .footer{padding:56px 0 48px}
  .footer__links{gap:4px 32px}

  /* Einwilligung – Buttons rechts statt über die volle Breite */
  .consent .wrap{display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:40px}
  .consent__t{grid-column:1;grid-row:1}
  .consent__d{grid-column:1;grid-row:2;margin-bottom:0}
  .consent__btns{grid-column:2;grid-row:1/3;grid-template-columns:auto auto}
  .consent__btns .btn{padding:0 28px}
}

/* =====================================================================
   GROSSE SCHIRME ab 1280px
   ===================================================================== */
@media (min-width:1280px){
  :root{--wrap-max:1200px}
  .section{padding:104px 0}
  .h2{font-size:58px}
  .benefits{column-gap:72px}
  .alltag .wrap{column-gap:72px}
}
