/* ============================================================
   Fischer Technik im Haus — Karriereportal
   CI aus der LIVE-Seite gezogen, nicht erfunden: Rot #ad1f24,
   Schwarz/Weiss, Grau #b8b7b7 + #f3f3f3, Nunito Sans, Original-Logo.
   [Quelle: /themes/studio-r/dist/main.css + fischer-logo-color.svg, 10.08.2026]

   DESIGN-ENTSCHEIDUNG (10.08.2026)
   Signatur = die ZEITSCHIENE. Der Inhalt ist ein Arbeitstag mit echten
   Zeiten (06:30–16:30), also traegt die Seite Stundenzettel-Logik: eine
   durchlaufende Schiene, je Block ein DAUERBALKEN, dessen Breite die
   tatsaechliche Laenge abbildet. Drei Stunden Baustelle sehen anders aus
   als dreissig Minuten Aufmass. Struktur, die etwas Wahres kodiert —
   keine Nummerierung um der Nummerierung willen.

   Zweite Schrift: IBM Plex Mono fuer Zeiten, Zaehler, Etiketten.
   Gemessen und technisch gegen das runde Nunito Sans der Marke —
   die zwei Haelften des Berufs.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,wght@0,300;0,400;0,600;0,700;0,900&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root{
  --rot:#ad1f24;
  --rot-tief:#7d1418;
  --schwarz:#111111;
  --text:#1c1c1c;
  --grau:#b8b7b7;
  --grau-hell:#f3f3f3;
  --weiss:#ffffff;
  --linie:rgba(17,17,17,.12);

  --r1:8px; --r2:24px; --r3:64px; --r4:104px;
  --zeile:60ch;
  --kante:4px;          /* Handwerk, keine SaaS-Rundung */
  --schiene:2px;

  --mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth}
body{
  margin:0; background:var(--weiss); color:var(--text);
  font-family:'Nunito Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-size:18px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3{line-height:1.1; letter-spacing:-.025em; margin:0 0 var(--r2); color:var(--schwarz)}
h1{font-size:clamp(2.2rem,5.6vw,3.7rem); font-weight:900}
h2{font-size:clamp(1.55rem,3.2vw,2.25rem); font-weight:800}
h3{font-size:1.18rem; font-weight:700; letter-spacing:-.012em}
p{margin:0 0 var(--r2); max-width:var(--zeile)}
.gross{font-size:clamp(1.08rem,2.1vw,1.3rem); font-weight:300; color:#3d3d3d}
.klein{font-size:.9rem; color:#6b6b6b}
strong{font-weight:700; color:var(--schwarz)}

/* Etikett — die Utility-Schrift. Ueberall, wo etwas GEMESSEN oder benannt wird. */
.etikett,.marke{
  font-family:var(--mono); font-size:.72rem; font-weight:500;
  letter-spacing:.16em; text-transform:uppercase; color:var(--rot);
}

.wrap{width:min(1120px,92vw); margin-inline:auto}
.schmal{width:min(760px,92vw); margin-inline:auto}
section{padding-block:var(--r3)}
section.luft{padding-block:var(--r4)}

/* ---------- Kopf ---------- */
header.kopf{
  position:sticky; top:0; z-index:50; background:rgba(255,255,255,.93);
  backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--linie);
}
header.kopf .wrap{display:flex; align-items:center; justify-content:space-between; height:64px; gap:var(--r2)}
header.kopf img{height:32px; width:auto; display:block}
header.kopf .zusatz{font-family:var(--mono); font-size:.72rem; font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:var(--rot)}

/* ---------- Knopf ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  background:var(--rot); color:#fff; text-decoration:none;
  font-weight:800; font-size:1.02rem; letter-spacing:-.01em;
  padding:16px 32px; border:0; border-radius:var(--kante); cursor:pointer;
  transition:background .16s, transform .16s;
}
.btn:hover{background:var(--rot-tief); transform:translateY(-1px)}
.btn:disabled{background:var(--grau); cursor:not-allowed; transform:none}
.btn--stumm{background:transparent; color:var(--schwarz); border:1px solid var(--linie); font-weight:700}
.btn--stumm:hover{background:var(--grau-hell); color:var(--schwarz); transform:none}
a:focus-visible,button:focus-visible{outline:3px solid var(--rot); outline-offset:3px}

/* ---------- Hero ---------- */
.hero{padding-block:var(--r3) var(--r2); position:relative}
.hero .marke{display:block; margin-bottom:14px}
.hero h1{margin-bottom:14px}
.hero .gross{margin-bottom:var(--r2)}

/* ---------- Stellen-Raster ---------- */
.raster{display:grid; grid-template-columns:repeat(auto-fit,minmax(400px,1fr)); gap:18px}
@media (max-width:900px){.raster{grid-template-columns:1fr}}
.karte{
  position:relative; display:flex; flex-direction:column;
  background:var(--weiss); border:1px solid var(--linie); border-radius:var(--kante);
  padding:26px 26px 24px; text-decoration:none; color:inherit;
  transition:border-color .18s, transform .18s;
}
/* Die Schiene taucht an der Kante auf, statt eines Schlagschattens. */
.karte::before{
  content:''; position:absolute; left:-1px; top:-1px; bottom:-1px; width:var(--schiene);
  background:var(--rot); border-radius:var(--kante) 0 0 var(--kante);
  transform:scaleY(0); transform-origin:top; transition:transform .22s cubic-bezier(.2,.8,.2,1);
}
.karte:hover{border-color:rgba(17,17,17,.24); transform:translateY(-2px)}
.karte:hover::before{transform:scaleY(1)}
.karte .rolle{font-family:var(--mono); font-size:.68rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--rot); margin-bottom:12px}
.karte h3{margin-bottom:12px}
.karte p{font-size:.96rem; color:#4a4a4a; margin-bottom:20px; flex:1}
.karte .fuss{display:flex; align-items:center; gap:8px; font-weight:800; font-size:.92rem; color:var(--schwarz)}
.karte .fuss::after{content:'→'; color:var(--rot); transition:transform .2s}
.karte:hover .fuss::after{transform:translateX(5px)}
.karte--initiativ{border-style:dashed; border-color:rgba(173,31,36,.4); background:#fdf8f8}
.karte--initiativ .rolle{color:#8a8a8a}

.merkmale{display:flex; flex-wrap:wrap; gap:6px; margin-bottom:18px}
.merkmal{
  font-family:var(--mono); font-size:.7rem; font-weight:400; letter-spacing:.04em;
  background:var(--grau-hell); color:#5a5a5a; padding:5px 10px; border-radius:2px;
}

/* ---------- Filter: Schaltleiste, keine Pillen ---------- */
.filter{display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:20px}
.filter .titel{font-family:var(--mono); font-size:.68rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:#9a9a9a; margin-right:6px}
.filter button{
  font:inherit; font-size:.92rem; font-weight:700; cursor:pointer;
  background:var(--weiss); color:#3d3d3d; border:1px solid var(--linie);
  border-radius:var(--kante); padding:9px 15px; transition:border-color .15s, color .15s;
}
.filter button:hover{border-color:var(--rot); color:var(--schwarz)}
.filter button.an{background:var(--rot); border-color:var(--rot); color:#fff}
.filter button .n{font-family:var(--mono); font-size:.8em; opacity:.7; margin-left:7px}
.treffer{font-family:var(--mono); font-size:.8rem; color:#7a7a7a; margin:0 0 20px}

/* ---------- Der Film ---------- */
.film{
  position:relative; aspect-ratio:16/9; width:100%; border-radius:var(--kante);
  overflow:hidden; background:#0d0d0d; display:grid; place-items:center;
}
.film video,.film iframe{width:100%; height:100%; object-fit:cover; border:0; display:block}
.film::after{
  content:''; position:absolute; inset:auto 0 0 0; height:40%;
  background:linear-gradient(to bottom,rgba(0,0,0,0),rgba(0,0,0,.5)); pointer-events:none;
}
.film .platzhalter{position:relative; z-index:2; text-align:center; color:#fff; padding:var(--r2)}
.film .play{
  width:72px; height:72px; border-radius:50%; background:var(--rot);
  display:grid; place-items:center; margin:0 auto;
}
.film .play::before{content:''; border-left:21px solid #fff; border-block:12px solid transparent; margin-left:6px}
.videozeile{
  display:flex; align-items:flex-start; gap:10px; margin-top:14px;
  font-family:var(--mono); font-size:.78rem; color:#7a7a7a; letter-spacing:.02em;
}
.videozeile .punkt{width:6px; height:6px; background:var(--rot); flex:none; margin-top:.6em}

/* ============================================================
   SIGNATUR — DIE ZEITSCHIENE
   Eine durchlaufende Linie, an der die Bloecke haengen. Der
   Dauerbalken unter jeder Uhrzeit ist BREITENGETREU: --dauer ist
   die Laenge des Blocks in Minuten, 180 min = volle Breite.
   ============================================================ */
.schiene{position:relative; padding-left:34px}
.schiene::before{
  content:''; position:absolute; left:5px; top:6px; bottom:6px; width:var(--schiene);
  background:linear-gradient(to bottom,var(--rot) 0 68%,var(--grau) 100%);
}
.block{position:relative; padding-bottom:34px}
.block:last-child{padding-bottom:0}
.block::before{
  content:''; position:absolute; left:-34px; top:7px;
  width:12px; height:12px; background:var(--weiss);
  border:var(--schiene) solid var(--rot); border-radius:50%;
}
.block .zeit{
  display:block; font-family:var(--mono); font-size:.82rem; font-weight:600;
  letter-spacing:.04em; color:var(--schwarz);
}
.block .dauer{
  display:flex; align-items:center; gap:9px; margin:7px 0 12px;
  font-family:var(--mono); font-size:.68rem; color:#9a9a9a; letter-spacing:.06em;
}
.block .dauer i{
  display:block; height:3px; background:var(--rot); border-radius:2px;
  width:calc(var(--dauer) / 180 * 190px); max-width:190px; opacity:.85;
}
.block h3{margin:0 0 10px}
.block ul{margin:0 0 10px; padding-left:1.05rem}
.block li{margin-bottom:5px; color:#3f3f3f}
.block .ziel{font-size:.93rem; color:#6b6b6b; margin:0; max-width:56ch}

.liste-haken{list-style:none; padding:0; margin:0}
.liste-haken li{padding-left:30px; position:relative; margin-bottom:13px}
.liste-haken li::before{content:'✓'; position:absolute; left:0; top:-1px; color:var(--rot); font-weight:900}
.block-grau{background:var(--grau-hell); border-radius:var(--kante); padding:var(--r3) var(--r2)}

/* ---------- Quiz ---------- */
.quiz{background:#0d0d0d; color:#fff; border-radius:var(--kante); padding:clamp(24px,4vw,48px)}
.quiz h2,.quiz h3{color:#fff}
.quiz p{color:rgba(255,255,255,.72)}
.balken{height:2px; background:rgba(255,255,255,.15); margin-bottom:26px; overflow:hidden}
.balken i{display:block; height:100%; background:var(--rot); width:0; transition:width .35s cubic-bezier(.2,.8,.2,1)}
.schritt{display:none}
.schritt.an{display:block; animation:auf .3s cubic-bezier(.2,.8,.2,1)}
@keyframes auf{from{opacity:0; transform:translateY(8px)}to{opacity:1; transform:none}}
.zaehler{font-family:var(--mono); font-size:.7rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:var(--rot); margin-bottom:12px}
.wahl{display:grid; gap:9px; margin-bottom:var(--r2)}
.wahl button{
  text-align:left; background:rgba(255,255,255,.05); color:#fff;
  border:1px solid rgba(255,255,255,.14); border-radius:var(--kante);
  padding:15px 18px; font:inherit; font-weight:600; cursor:pointer;
  transition:background .15s, border-color .15s, padding-left .15s;
}
.wahl button:hover{background:rgba(255,255,255,.1); border-color:var(--rot); padding-left:24px}
.feld{margin-bottom:15px}
.feld label{display:block; font-family:var(--mono); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; margin-bottom:8px; color:rgba(255,255,255,.7)}
.feld input{
  width:100%; padding:14px 16px; font:inherit;
  background:rgba(255,255,255,.06); color:#fff;
  border:1px solid rgba(255,255,255,.16); border-radius:var(--kante);
}
.feld input:focus{outline:0; border-color:var(--rot); background:rgba(255,255,255,.09)}
.feld input::placeholder{color:rgba(255,255,255,.32)}
.feld select{
  width:100%; padding:14px 16px; font:inherit;
  background:rgba(255,255,255,.06); color:#fff;
  border:1px solid rgba(255,255,255,.16); border-radius:var(--kante);
  appearance:none; cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,#fff 50%),linear-gradient(135deg,#fff 50%,transparent 50%);
  background-position:calc(100% - 20px) calc(50% + 1px),calc(100% - 14px) calc(50% + 1px);
  background-size:6px 6px,6px 6px; background-repeat:no-repeat;
}
.feld select:focus{outline:0; border-color:var(--rot)}
.feld select option{background:#0d0d0d; color:#fff}

/* ---------- Ergebnis ---------- */
.siegel{
  width:64px; height:64px; border-radius:var(--kante); display:grid; place-items:center;
  margin-bottom:var(--r2); font-size:1.9rem; font-family:var(--mono);
}
.siegel--ja{background:var(--rot); color:#fff}
.siegel--nein{background:var(--grau-hell); color:#8a8a8a}
.schritte{list-style:none; padding:0; margin:0; counter-reset:s}
.schritte li{padding-left:52px; position:relative; margin-bottom:var(--r2); counter-increment:s}
.schritte li::before{
  content:counter(s,decimal-leading-zero); position:absolute; left:0; top:0;
  font-family:var(--mono); font-size:.9rem; font-weight:600; color:var(--rot);
  border-left:var(--schiene) solid var(--rot); padding-left:12px;
}

footer{border-top:1px solid var(--linie); padding-block:var(--r3); font-family:var(--mono); font-size:.76rem; color:#8a8a8a; letter-spacing:.02em}
footer a{color:#8a8a8a}

@media (max-width:640px){
  body{font-size:17px}
  :root{--r3:44px; --r4:60px}
  header.kopf .zusatz{display:none}
  .btn{width:100%}
  .schiene{padding-left:26px}
  .schiene::before{left:3px}
  .block::before{left:-26px; width:10px; height:10px}
  .block .dauer i{width:calc(var(--dauer) / 180 * 130px); max-width:130px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important; transition:none!important}}


/* ============================================================
   ARBEITGEBER-MARKE — die Fotos tragen sie, nicht ein Claim.
   "#Teamfischer" steht auf der Arbeitskleidung; das ist gewachsen,
   also wird es zitiert statt neu erfunden.
   Ein grosses Bild fuehrt, drei kleine belegen. Keine gleich
   grossen Kacheln — eine Galerie ohne Hierarchie ist eine Tapete.
   ============================================================ */
/* 4 Spalten x 2 Reihen fester Hoehe. Der Aufmacher belegt 2x2, die vier
   kleinen fuellen den Rest exakt auf — kein Loch mehr rechts daneben,
   wie es das 3-Spalten-Raster erzeugt hat. [am Bild gesehen, 10.08.2026] */
.galerie{display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:212px; gap:12px; margin:var(--r2) 0 var(--r2)}
.galerie figure{margin:0; position:relative; overflow:hidden; border-radius:var(--kante); background:var(--grau-hell); height:100%}
.galerie img{width:100%; height:100%; object-fit:cover; object-position:center; display:block; transition:transform .5s cubic-bezier(.2,.8,.2,1)}
/* Der Aufdruck sitzt auf dem RUECKEN, also unterhalb der Bildmitte. Mit dem
   Standard-Ausschnitt schnitt das 4:5-Format genau ihn weg — das Bild zeigte
   Hinterkopf statt Marke. [am Bild gesehen, 10.08.2026] */
.galerie .gross-bild img{object-position:center 52%}
.galerie figure:hover img{transform:scale(1.03)}
/* Quer ueber zwei Spalten statt hochkant: der Aufdruck sass vorher im
   4:5-Beschnitt und wurde seitlich abgeschnitten — "#Teamfisc…". */
.galerie .gross-bild{grid-column:span 2; grid-row:span 2}

.galerie figcaption{
  position:absolute; left:0; right:0; bottom:0; padding:26px 16px 13px;
  font-family:var(--mono); font-size:.7rem; letter-spacing:.05em; color:#fff;
  /* weicher Uebergang, nie eine harte Kante ueber dem Bild */
  background:linear-gradient(to top,rgba(0,0,0,.72),rgba(0,0,0,0));
}
@media (max-width:900px){
  .galerie{grid-template-columns:repeat(2,1fr); grid-auto-rows:150px}
  .galerie .gross-bild{grid-column:span 2; grid-row:span 2}
}
@media (max-width:560px){ .galerie{grid-template-columns:repeat(2,1fr); grid-auto-rows:118px} }


/* ============================================================
   DIE MANNSCHAFT — freigestellte Portraits als Band.
   Kein Gruppenfoto, das nie zustande kommt: die Leute stehen
   nebeneinander, wie sie auch auf der Baustelle stehen.
   🔴 KEIN Beschnitt oben. Die Bilder sind auf EINE Hoehe skaliert
   und stehen auf einer gemeinsamen Grundlinie — sonst schneidet
   das Raster Koepfe ab, und genau das darf hier nicht passieren.
   ============================================================ */
.mannschaft{
  background:var(--grau-hell); border-radius:var(--kante);
  padding:var(--r3) 0 0; overflow:hidden; margin-top:var(--r2);
}
.mannschaft .reihe{
  display:flex; align-items:flex-end; justify-content:center;
  gap:0; padding-inline:12px;
}
.mannschaft img{
  height:230px; width:auto; display:block; margin-inline:-14px;
  filter:drop-shadow(0 6px 14px rgba(0,0,0,.10));
}
.mannschaft .fuss{
  text-align:center; padding:18px 20px 22px; background:var(--weiss);
  font-family:var(--mono); font-size:.72rem; letter-spacing:.1em;
  text-transform:uppercase; color:#8a8a8a; border-top:1px solid var(--linie);
}
@media (max-width:900px){ .mannschaft img{height:170px; margin-inline:-12px} }
@media (max-width:560px){ .mannschaft img{height:130px; margin-inline:-10px} }

/* Die zwei, die man wirklich erreicht — mit Namen und belegter Rolle. */
.kontakte{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:var(--r2)}
@media (max-width:640px){ .kontakte{grid-template-columns:1fr} }
.kontakt{
  display:flex; align-items:flex-end; gap:16px;
  border:1px solid var(--linie); border-radius:var(--kante);
  padding:20px 22px 0; background:var(--weiss); overflow:hidden;
}
.kontakt img{height:150px; width:auto; display:block; flex:none}
.kontakt div{padding-bottom:22px}
.kontakt .name{font-weight:800; font-size:1.05rem; color:var(--schwarz); display:block}
.kontakt .rolle{font-family:var(--mono); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--rot); display:block; margin:4px 0 8px}
.kontakt a{font-size:.9rem; color:#5a5a5a; text-decoration:none; display:block}
.kontakt a:hover{color:var(--rot)}
