/* =============================================================
   GERKENS HAUSTECHNIK — Recruiting-Landingpage
   Apple-inspiriert · ruhig · Mobile First · DSGVO-sauber
   Farben aus dem GHT-Designsystem. Keine externen Fonts/Requests.
   ============================================================= */

/* ---------- Schriften: Inter / Inter Tight, selbst gehostet (DSGVO-konform) ----------
   Die woff2-Dateien liegen im Ordner fonts/ (siehe fonts/LIESMICH.txt).
   Fehlen sie, greift automatisch die System-Schrift – die Seite bleibt also nutzbar. */
@font-face{
  font-family:"Inter";
  src:url("fonts/inter.woff2") format("woff2");
  font-weight:100 900;font-style:normal;font-display:swap;
}
@font-face{
  font-family:"Inter Tight";
  src:url("fonts/inter-tight.woff2") format("woff2");
  font-weight:100 900;font-style:normal;font-display:swap;
}

:root{
  --blue:#0062AE;
  --blue-700:#004E8C;
  --navy:#0B2A4A;
  --navy-900:#081E36;
  --red:#D8232A;

  --ink:#15233B;      /* Text */
  --ink-2:#37455C;
  --muted:#647184;
  --line:#E5EAF1;
  --line-2:#D3DBE6;
  --bg:#FFFFFF;
  --soft:#F7F8FA;     /* ruhiges Off-White */

  --maxw:1120px;
  --narrow:760px;
  --radius:18px;
  --radius-sm:12px;
  --radius-pill:999px;
  --pad:clamp(22px,5vw,40px);
  --head-h:104px;
  --sec:clamp(64px,10vw,120px);
  --shadow:0 18px 50px rgba(11,42,74,.10);
  --shadow-sm:0 2px 10px rgba(11,42,74,.06);

  --font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Helvetica,Arial,sans-serif;
  --display:"Inter Tight","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Helvetica,Arial,sans-serif;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;
  scroll-padding-top:calc(var(--head-h) + 8px); /* Anker-Links unter dem fixen Header */
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);
  font-size:clamp(17px,1.15vw,19px);line-height:1.6;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block}
a{color:var(--blue);text-decoration:none}

h1,h2,h3{font-family:var(--display);color:var(--ink);font-weight:700;line-height:1.08;letter-spacing:-.022em;margin:0}
h1{font-size:clamp(2.4rem,6vw,4.1rem);letter-spacing:-.035em}
h2{font-size:clamp(1.9rem,4.2vw,3rem);letter-spacing:-.03em}
h3{font-size:clamp(1.2rem,2vw,1.45rem);letter-spacing:-.02em}
p{margin:0 0 1em}
strong{font-weight:600;color:var(--ink)}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:8px}
::selection{background:rgba(0,98,174,.16)}

/* ---------- Layout ---------- */
.container{width:100%;max-width:var(--maxw);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
.narrow{max-width:calc(var(--narrow) + 2*var(--pad))}
section{padding-top:var(--sec);padding-bottom:var(--sec)}
.soft{background:var(--soft)}
.navy{background:var(--navy);color:#D7E3F1}
.navy h1,.navy h2,.navy h3{color:#fff}
.lead{font-size:clamp(1.15rem,1.7vw,1.4rem);color:var(--ink-2);line-height:1.5}
.navy .lead{color:#B9CCE1}
.center{text-align:center}
/* Einheitlicher Abstand zwischen Abschnitts-Überschrift und Inhalt */
.container>.center{margin-bottom:clamp(34px,4.5vw,52px)}
.kicker{display:inline-flex;align-items:center;gap:10px;font-size:.8rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin:0 0 20px}
.kicker::before{content:"";width:26px;height:2px;background:var(--red);display:inline-block}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;font-family:var(--font);
  font-weight:600;font-size:1.08rem;line-height:1;padding:19px 34px;border-radius:14px;
  border:2px solid transparent;cursor:pointer;transition:background .15s ease,transform .12s ease}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--blue);color:#fff}
.btn-primary:hover{background:var(--blue-700);color:#fff}
.btn-block{width:100%}
.btn-lg{padding:22px 40px;font-size:1.15rem}
.navy .btn-primary{background:#fff;color:var(--navy)}
.navy .btn-primary:hover{background:#EAF1F8}

/* ---------- Header (schlicht) ---------- */
.site-head{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.92);
  -webkit-backdrop-filter:saturate(160%) blur(12px);backdrop-filter:saturate(160%) blur(12px);
  border-bottom:1px solid var(--line)}
.site-head .container{display:flex;align-items:center;justify-content:space-between;
  flex-wrap:nowrap;min-height:var(--head-h);gap:16px}
.logo img{height:72px;width:auto;display:block}
.logo{flex:0 0 auto;line-height:0}
@media(max-width:1024px){
  :root{--head-h:90px}
  .logo img{height:62px}
}
@media(max-width:640px){
  :root{--head-h:74px}
  .logo img{height:50px}
}
.head-tel{display:inline-flex;align-items:center;gap:9px;font-weight:600;color:var(--ink);white-space:nowrap;font-size:1.1rem}
.tel-ico{flex:0 0 auto}
.head-right{display:flex;align-items:center;gap:clamp(12px,2vw,18px)}
.head-social{display:flex;gap:8px}
.head-social a{display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;border-radius:10px;color:var(--navy);transition:.15s ease}
.head-social a:hover{color:var(--blue);background:rgba(0,98,174,.08)}
.head-social svg{width:23px;height:23px;fill:currentColor}
@media(max-width:640px){
  .head-right{gap:10px}
  .head-social a{width:36px;height:36px}
  .head-social svg{width:21px;height:21px}
}
/* Kleine Phones: Telefonnummer wird zum Anruf-Icon – so ist Platz für die Social-Icons */
@media(max-width:560px){
  .tel-num{display:none}
  .head-tel{padding:6px}
}

/* ---------- Hero ---------- */
.hero{padding-top:clamp(40px,7vw,72px);padding-bottom:clamp(48px,7vw,88px);
  display:flex;align-items:center;min-height:calc(100svh - var(--head-h))}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,4.5vw,64px);align-items:center;width:100%}
@media(max-width:860px){.hero-grid{grid-template-columns:1fr}}
.hero-sub{font-weight:600;color:var(--ink);font-size:clamp(1.15rem,1.9vw,1.45rem);margin:.4em 0 .2em}
.hero-copy .intro{max-width:560px;color:var(--ink-2)}
.hero-photo{margin:0}
.hero-photo img{width:100%;aspect-ratio:4/5;height:auto;max-height:660px;object-fit:cover;
  border-radius:var(--radius);box-shadow:var(--shadow)}
@media(max-width:860px){
  .hero-photo{max-width:440px;margin:8px auto 0}
  .hero-photo img{aspect-ratio:4/5}
}

/* ---------- Prose / einfache Textabschnitte ---------- */
.prose{max-width:var(--narrow);margin:0 auto}
.prose p{font-size:clamp(1.15rem,1.7vw,1.4rem);line-height:1.55;color:var(--ink-2)}
.prose p strong{color:var(--ink)}

/* ---------- Karten ---------- */
.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,2.5vw,28px)}
.cards-3{grid-template-columns:repeat(3,1fr)}
@media(max-width:860px){.cards-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.cards{grid-template-columns:1fr}}
@media(max-width:600px){.cards-3{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:clamp(26px,3vw,38px);box-shadow:var(--shadow-sm)}
.card h3{margin-bottom:10px}
.card p{color:var(--ink-2);margin:0}
.card .sub{color:var(--muted);font-size:.98rem;line-height:1.5;margin-top:8px}

/* ---------- Ehrlich verglichen (Tendenzen) ---------- */
.promise{display:grid;gap:clamp(16px,2.2vw,22px)}
.promise-item{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:clamp(22px,3vw,34px);box-shadow:var(--shadow-sm)}
.promise-item h3{font-size:clamp(1.15rem,1.9vw,1.4rem);margin-bottom:18px}
.promise-cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,2.5vw,32px)}
@media(max-width:680px){.promise-cols{grid-template-columns:1fr;gap:0}}
.promise-label{display:inline-block;font-size:.78rem;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;margin-bottom:8px}
.promise-many .promise-label{color:var(--muted)}
.promise-us .promise-label{color:var(--blue)}
.promise-cols p{margin:0;color:var(--ink-2);line-height:1.5}
.promise-us{border-left:3px solid rgba(0,98,174,.28);padding-left:clamp(16px,2vw,22px)}
@media(max-width:680px){
  .promise-us{border-left:none;padding-left:0;border-top:1px solid var(--line);margin-top:16px;padding-top:16px}
}
.pe{margin-right:12px;font-size:1.2em}
.promise-many p{font-style:italic}
.promise-many p::before{content:"✗ ";font-style:normal;font-weight:700;color:var(--red)}
.promise-quote{background:rgba(0,98,174,.05);border-color:rgba(0,98,174,.28)}
.promise-quote .pq{margin:2px 0 14px;padding:0;border:0;font-family:var(--display);font-weight:700;letter-spacing:-.02em;
  line-height:1.25;color:var(--ink);font-size:clamp(1.3rem,2.5vw,1.75rem)}
.promise-quote .pq-sub{margin:0;color:var(--ink-2);line-height:1.5;max-width:680px}

/* ---------- Zitat ---------- */
.quote{margin:0 auto;max-width:840px;text-align:center}
.quote p{font-family:var(--display);font-size:clamp(1.4rem,2.7vw,2.05rem);line-height:1.3;font-weight:600;color:#fff;letter-spacing:-.02em;margin:0}
.quote footer{margin-top:22px;color:#9FBEE0;font-weight:500;font-size:1.05rem}

/* ---------- Unsere Werte ---------- */
.values{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(22px,3vw,40px)}
@media(max-width:720px){.values{grid-template-columns:1fr}}
.value{display:flex;gap:18px;align-items:flex-start}
.value .vnum{flex:0 0 auto;width:46px;height:46px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:1.05rem;color:var(--blue);background:rgba(0,98,174,.09)}
.value h3{margin-bottom:6px}
.value p{margin:0;color:var(--ink-2);line-height:1.5}

/* ---------- Marken / Hersteller ---------- */
.brands{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:clamp(14px,2vw,22px)}
@media(max-width:520px){.brands{grid-template-columns:repeat(2,1fr)}}
.brand{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:clamp(22px,3vw,34px) 18px;text-align:center;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:6px;min-height:150px;box-shadow:var(--shadow-sm)}
.brand-logo{max-height:52px;max-width:80%;width:auto;object-fit:contain;margin-bottom:6px}
.brand-name{font-weight:700;font-size:clamp(1.2rem,1.7vw,1.4rem);letter-spacing:-.02em;color:var(--navy)}
.brand-cat{font-size:.92rem;color:var(--muted)}
.brand .brand-name{display:none}
.brand.no-logo .brand-logo{display:none}
.brand.no-logo .brand-name{display:block}

/* ---------- Team-Galerie ---------- */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,22px)}
@media(max-width:820px){.gallery{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.gallery{grid-template-columns:1fr}}
.gallery figure{margin:0;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}
.gallery img{width:100%;height:clamp(200px,22vw,280px);object-fit:cover;display:block}

/* ---------- Statement (großer Ein-Satz-Moment) ---------- */
.statement-band{background:rgba(0,98,174,.05)}
.statement{max-width:940px;margin:0 auto;text-align:center;font-weight:700;font-family:var(--display);
  line-height:1.14;letter-spacing:-.03em;color:var(--ink);
  font-size:clamp(1.85rem,4.6vw,3.4rem)}
.statement span{color:var(--blue)}

/* ---------- Formular ---------- */
.form-wrap{max-width:760px;margin:0 auto;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:clamp(26px,4vw,44px);box-shadow:var(--shadow)}
.field{margin-bottom:24px}
.field > label{display:block;font-weight:600;color:var(--ink);margin-bottom:10px;font-size:1.02rem}
.req{color:var(--red)}
.field input[type=text],.field input[type=tel],.field input[type=email],.field textarea{
  width:100%;font-family:var(--font);font-size:1.08rem;line-height:1.4;color:var(--ink);
  padding:16px 18px;border:1.5px solid var(--line-2);border-radius:var(--radius-sm);
  background:#fff;transition:border-color .15s ease;-webkit-appearance:none;appearance:none}
.field input:focus,.field textarea:focus{border-color:var(--blue);outline:none}
.field textarea{min-height:110px;resize:vertical}
.choices{display:flex;flex-wrap:wrap;gap:10px}
.choice{position:relative}
.choice input{position:absolute;opacity:0;width:0;height:0}
.choice label{display:inline-flex;align-items:center;min-height:44px;padding:8px 18px;
  border:1.5px solid var(--line-2);border-radius:var(--radius-pill,999px);cursor:pointer;
  font-weight:500;font-size:.98rem;color:var(--ink-2);transition:.15s ease;user-select:none}
.choice input:checked + label{border-color:var(--blue);background:var(--blue);color:#fff}
.choice input:focus-visible + label{outline:3px solid var(--blue);outline-offset:2px}
.form-note{display:flex;align-items:center;gap:8px;justify-content:center;
  color:var(--muted);font-size:.95rem;margin-top:16px}
.hp{position:absolute;left:-9999px;top:-9999px;height:0;width:0;overflow:hidden}
.form-status{margin-top:18px;padding:16px 18px;border-radius:var(--radius-sm);font-size:1rem;display:none}
.form-status.ok{display:block;background:#E9F5EC;color:#1B6B36;border:1px solid #BFE3C9}
.form-status.err{display:block;background:#FCE9EA;color:#9A1B21;border:1px solid #F3C2C5}
.form-wrap.sent{max-width:560px;text-align:center}
.form-success{text-align:center;padding:clamp(8px,2vw,20px) 0}
.form-success h3{color:var(--blue);margin-bottom:12px;font-size:clamp(1.5rem,3vw,2rem)}
.form-success p{margin:0 auto;max-width:420px}

/* ---------- Ablauf / Schritte ---------- */
.steps{max-width:var(--narrow);margin:0 auto}
.step{display:flex;gap:22px;align-items:flex-start;padding:22px 0}
.step + .step{border-top:1px solid var(--line)}
.step .num{flex:0 0 auto;width:46px;height:46px;border-radius:50%;
  background:var(--navy);color:#fff;font-weight:700;font-size:1.2rem;
  display:flex;align-items:center;justify-content:center}
.step .txt{font-size:clamp(1.1rem,1.6vw,1.3rem);color:var(--ink-2);line-height:1.45;padding-top:6px}
.steps-note{text-align:center;color:var(--muted);margin-top:32px;font-size:1.05rem;line-height:1.7}

/* ---------- Abschluss ---------- */
.closing-photo{max-width:var(--maxw);margin:0 auto;padding:clamp(40px,6vw,72px) var(--pad) 0}
.closing-photo img{width:100%;height:clamp(280px,40vw,480px);object-fit:cover;border-radius:var(--radius)}
.closing-text{max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;
  gap:clamp(28px,4vw,56px);justify-content:space-between}
.closing-copy{flex:1 1 auto;max-width:660px;min-width:0}
.closing-cta{flex:0 0 auto}
.closing-text p{font-size:clamp(1.2rem,1.9vw,1.5rem);line-height:1.5;color:#fff}
.sign{font-weight:600;color:#fff;margin-top:24px;font-size:1.15rem;margin-bottom:0}
@media(max-width:620px){
  .closing-text{flex-direction:column;align-items:flex-start;gap:28px}
}

/* ---------- Footer ---------- */
.site-foot{background:var(--navy-900);color:#9FB3C8;padding:clamp(44px,6vw,64px) 0;font-size:1rem}
.foot-links{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center}
.foot-links a{color:#DCE7F2;font-weight:500}
.foot-links a:hover{color:#fff}
.foot-legal{margin-top:24px;color:#67809A;font-size:.9rem;line-height:1.7}
.foot-legal a{color:#9FB3C8;text-decoration:underline}

/* ---------- Cookie-Consent-Banner (Meta-Pixel) ---------- */
.cc{position:fixed;left:0;right:0;bottom:0;z-index:60;background:#fff;
  border-top:1px solid var(--line);box-shadow:0 -10px 34px rgba(11,42,74,.12)}
.cc[hidden]{display:none}
.cc-inner{max-width:var(--maxw);margin:0 auto;padding:16px var(--pad);
  display:flex;align-items:center;gap:20px;flex-wrap:wrap;justify-content:center}
.cc-text{margin:0;font-size:.95rem;line-height:1.5;color:var(--ink-2);max-width:760px}
.cc-btns{display:flex;gap:10px;flex-shrink:0}
.cc .btn{padding:12px 24px;font-size:1rem}
.cc-decline{background:#fff;color:var(--ink);border-color:var(--line-2)}
.cc-decline:hover{border-color:var(--blue);color:var(--blue)}

