/* =========================================================
   Ingenieurbüro Hirschbeck — Handy-Fassung
   Eine Spalte, große Tippflächen, feste Aktionsleiste unten.
   Farben und Schrift wie in der Desktop-Fassung.
   ========================================================= */

/* Schrift lokal ausgeliefert — keine Verbindung zu Google, keine Besucher-IPs an Dritte.
   Nunito Sans, SIL Open Font License 1.1, Lizenztext in assets/fonts/ */
@font-face{font-family:"Nunito Sans";font-style:normal;font-weight:300;font-display:swap;
  src:url("../../assets/fonts/nunito-sans-latin-300-normal.woff2") format("woff2"),
      url("../../assets/fonts/nunito-sans-latin-300-normal.woff") format("woff");}
@font-face{font-family:"Nunito Sans";font-style:normal;font-weight:400;font-display:swap;
  src:url("../../assets/fonts/nunito-sans-latin-400-normal.woff2") format("woff2"),
      url("../../assets/fonts/nunito-sans-latin-400-normal.woff") format("woff");}
@font-face{font-family:"Nunito Sans";font-style:normal;font-weight:600;font-display:swap;
  src:url("../../assets/fonts/nunito-sans-latin-600-normal.woff2") format("woff2"),
      url("../../assets/fonts/nunito-sans-latin-600-normal.woff") format("woff");}
@font-face{font-family:"Nunito Sans";font-style:normal;font-weight:700;font-display:swap;
  src:url("../../assets/fonts/nunito-sans-latin-700-normal.woff2") format("woff2"),
      url("../../assets/fonts/nunito-sans-latin-700-normal.woff") format("woff");}

:root{
  --weiss:#ffffff;
  --salbei:#b5cac1;
  --salbei-hell:#dfeae5;
  --salbei-blass:#f2f7f5;
  --salbei-tief:#3f5f53;
  --salbei-dunkel:#2b423a;
  --tinte:#23302b;
  --grau:#66756f;
  --linie:#cfdfd8;
  --rot:#b3402f;
  --rund:14px;
  --rand:20px;
  --leiste:72px;          /* Höhe der festen Aktionsleiste */
  --schrift:"Nunito Sans","Avenir Next","Avenir","Segoe UI",system-ui,-apple-system,sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:78px}
body{
  margin:0;background:var(--weiss);color:var(--tinte);
  font-family:var(--schrift);font-size:17px;line-height:1.65;
  -webkit-font-smoothing:antialiased;
  padding-bottom:calc(var(--leiste) + env(safe-area-inset-bottom));
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--salbei-tief);outline-offset:3px}
.skip{position:absolute;left:-999px}
.skip:focus{left:12px;top:10px;background:var(--salbei-dunkel);color:#fff;padding:10px 14px;z-index:99;border-radius:8px}

h1,h2,h3{margin:0 0 .5em;line-height:1.2}
h1{font-size:1.85rem;font-weight:300;letter-spacing:-.01em}
h2{font-size:1.4rem;font-weight:300;letter-spacing:-.01em}
h3{font-size:1.02rem;font-weight:600}
p{margin:0 0 1em}
.lead{color:var(--grau);font-size:1.05rem}
.klein{font-size:.86rem;color:var(--grau);line-height:1.55}
.marke-zeile{font-size:.7rem;text-transform:uppercase;letter-spacing:.16em;font-weight:700;
  color:var(--salbei-tief);margin:0 0 .7rem}

/* ------------------------------------------------------ Kopf und Menü */
.kopf{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;
  gap:1rem;padding:.7rem var(--rand);background:rgba(255,255,255,.96);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--linie)}
.marke{display:flex;align-items:center;gap:.6rem;text-decoration:none}
.marke-zeichen{display:flex;color:var(--salbei-tief);background:var(--salbei-hell);padding:5px;border-radius:50%}
.marke-text{display:flex;flex-direction:column;line-height:1.1}
.marke-text strong{font-size:.58rem;text-transform:uppercase;letter-spacing:.16em;font-weight:700;color:var(--grau)}
.marke-text em{font-style:normal;font-size:1.05rem;font-weight:600}

.nav-schalter{width:46px;height:46px;flex:none;border:0;border-radius:12px;background:var(--salbei-blass);
  display:grid;place-items:center;cursor:pointer;padding:0}
.balken,.balken::before,.balken::after{display:block;width:20px;height:2px;border-radius:2px;
  background:var(--salbei-dunkel);transition:transform .22s ease,opacity .18s ease}
.balken{position:relative}
.balken::before,.balken::after{content:"";position:absolute;left:0}
.balken::before{top:-6px}
.balken::after{top:6px}
.nav-schalter[aria-expanded="true"] .balken{background:transparent}
.nav-schalter[aria-expanded="true"] .balken::before{transform:translateY(6px) rotate(45deg)}
.nav-schalter[aria-expanded="true"] .balken::after{transform:translateY(-6px) rotate(-45deg)}

.nav{position:fixed;top:63px;left:0;right:0;z-index:49;background:#fff;border-bottom:1px solid var(--linie);
  display:grid;padding:.3rem var(--rand) 1.1rem;box-shadow:0 14px 28px rgba(35,48,43,.1);
  transform:translateY(-120%);transition:transform .25s ease;max-height:calc(100vh - 63px);overflow-y:auto}
.nav.offen{transform:translateY(0)}
.nav a{text-decoration:none;font-size:1.05rem;padding:.85rem .2rem;border-bottom:1px solid var(--salbei-blass)}
.nav a.aktiv{color:var(--salbei-tief);font-weight:600}
.nav a:last-child{border-bottom:0}
.nav-trenner{height:.6rem}

/* ------------------------------------------------------ Abschnitte */
.abschnitt{padding:2.6rem var(--rand)}
.hell{background:var(--salbei-blass)}
.salbei{background:var(--salbei);color:var(--salbei-dunkel)}
.salbei .marke-zeile{color:var(--salbei-dunkel);opacity:.8}
.kopf-abschnitt{background:var(--salbei-blass);padding-top:2.2rem}
.mehr{margin:1.6rem 0 0}
.pfeil{text-decoration:none;font-weight:600;color:var(--salbei-tief)}
.pfeil::after{content:" →"}

/* ------------------------------------------------------ Knöpfe */
.btn{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:52px;
  padding:.9rem 1.4rem;margin:0 0 .7rem;border-radius:999px;text-decoration:none;
  font-size:1rem;font-weight:600;border:1px solid transparent;cursor:pointer;width:100%;
  font-family:inherit}
.btn-haupt{background:var(--salbei-dunkel);color:#fff}
.btn-leise{background:#fff;border-color:var(--linie);color:var(--tinte)}
.btn-voll{margin-top:.5rem}

/* ------------------------------------------------------ Hero */
.hero{padding:2.4rem var(--rand) 2.6rem;background:
  linear-gradient(rgba(181,202,193,.94),rgba(181,202,193,.9)),
  url("../../assets/img/fotos/gewerk1-foto1-klein.jpg");
  background-size:cover;background-position:center 60%}
.hero h1{color:var(--salbei-dunkel);font-size:2rem}
.hero .marke-zeile{color:var(--salbei-dunkel);opacity:.75}
.hero .lead{color:var(--salbei-dunkel);opacity:.92;margin-bottom:1.6rem}
.fakten{margin:1.6rem 0 0;display:grid;gap:.9rem;background:rgba(255,255,255,.75);
  border-radius:var(--rund);padding:1.2rem}
.fakten div{display:grid;gap:.1rem}
.fakten dt{font-size:.68rem;text-transform:uppercase;letter-spacing:.14em;color:var(--salbei-tief);font-weight:700}
.fakten dd{margin:0;font-size:.95rem}

/* ------------------------------------------------------ Karten */
.karten{display:grid;gap:1rem}
.karte{background:#fff;border-radius:var(--rund);padding:1.4rem 1.3rem;
  box-shadow:0 2px 14px rgba(35,48,43,.06)}
.karte h3{margin-bottom:.4rem}
.karte p{margin:0;font-size:.94rem;color:var(--grau)}
.hell .karte{box-shadow:0 2px 14px rgba(35,48,43,.05)}

/* ------------------------------------------------------ Themenschwerpunkt */
.sp-raster{display:grid;gap:.8rem;margin:1.6rem 0 0}
.sp-punkt{background:var(--salbei-blass);border-radius:var(--rund);padding:1.1rem 1.2rem}
.sp-punkt h3{font-size:.98rem;color:var(--salbei-tief);margin-bottom:.3rem}
.sp-punkt p{margin:0;font-size:.9rem;color:var(--grau)}
.nach-raster{margin-top:1.4rem}

/* ------------------------------------------------------ Ablauf */
.ablauf{list-style:none;margin:1.8rem 0 0;padding:0;display:grid;gap:1.3rem}
.schritt{display:grid;grid-template-columns:42px 1fr;gap:.9rem;align-items:start}
.schritt-punkt{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;
  background:#fff;color:var(--salbei-tief);font-weight:700}
.schritt h3{font-size:1rem;margin-bottom:.2rem;color:var(--salbei-dunkel)}
.schritt p{margin:0;font-size:.92rem;color:var(--salbei-dunkel);opacity:.85}

/* ------------------------------------------------------ Projekt-Teaser (Start) */
.pteaser-liste{display:grid;gap:.9rem}
.pteaser{display:grid;gap:.3rem;text-decoration:none;background:#fff;border:1px solid var(--linie);
  border-radius:var(--rund);padding:1.2rem 1.3rem}
.pt-kopf{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--salbei-tief);font-weight:700}
.pteaser strong{font-size:1.02rem;font-weight:600}
.pt-lead{font-size:.92rem;color:var(--grau)}

/* ------------------------------------------------------ Projekte */
.projekte{padding-top:2rem}
.projekt{padding-bottom:2.4rem;margin-bottom:2.4rem;border-bottom:1px solid var(--linie)}
.projekt:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
.projekt h2{font-size:1.3rem}
.projekt h3{margin-top:1.6rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.14em;
  color:var(--salbei-tief)}
.pfoto{margin:1.4rem 0}
.pfoto img{border-radius:var(--rund);width:100%;height:auto}
.pfoto figcaption{font-size:.84rem;color:var(--grau);padding-top:.6rem}
.haken{list-style:none;margin:0;padding:0;display:grid;gap:.65rem}
.haken li{position:relative;padding-left:1.5rem;font-size:.94rem;color:var(--grau)}
.haken li::before{content:"";position:absolute;left:0;top:.55em;width:9px;height:9px;border-radius:50%;
  background:var(--salbei);box-shadow:0 0 0 3px var(--salbei-hell)}
.zahlen{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin:1.6rem 0 0}
.zahlen div{background:var(--salbei-blass);border-radius:12px;padding:.9rem 1rem}
.zahlen dt{font-size:.64rem;text-transform:uppercase;letter-spacing:.1em;color:var(--grau);margin-bottom:.15rem}
.zahlen dd{margin:0;font-size:1rem;font-weight:600;color:var(--salbei-tief)}
.plan-hinweis{margin-top:1.8rem;padding:1.3rem;background:var(--salbei-blass);border-radius:var(--rund)}
.plan-hinweis p{font-size:.92rem;color:var(--grau);margin-bottom:1rem}
.plan-hinweis .btn{margin:0}

/* ------------------------------------------------------ Referenzen */
.referenzen{display:grid;gap:1rem}
.referenz{background:#fff;border-radius:var(--rund);padding:1.3rem;box-shadow:0 2px 14px rgba(35,48,43,.05)}
.ref-nr{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--salbei-tief);
  font-weight:700;margin:0 0 .35rem}
.referenz h3{margin-bottom:.7rem}
.referenz dl{display:flex;flex-wrap:wrap;gap:.3rem 1.4rem;margin:0 0 .8rem}
.referenz dt{font-size:.66rem;text-transform:uppercase;letter-spacing:.1em;color:var(--grau)}
.referenz dd{margin:0;font-size:.9rem}
.ref-leistung{font-size:.9rem;color:var(--grau);margin:0 0 .5rem}

/* ------------------------------------------------------ Team, Hinweis */
.team{display:grid;gap:1rem}
.person{background:var(--salbei-blass);border-radius:var(--rund);padding:1.3rem}
.person h3{margin-bottom:.1rem}
.rolle{font-size:.76rem;text-transform:uppercase;letter-spacing:.12em;color:var(--salbei-tief);margin-bottom:.5rem}
.person p:last-child{margin:0;font-size:.93rem;color:var(--grau)}
.hinweis{background:var(--salbei-blass);border-radius:var(--rund);padding:1.4rem}
.hinweis h2{font-size:1.1rem;font-weight:600}
.hinweis p{margin:0;font-size:.94rem;color:var(--grau)}
.hinweis.platzhalter{background:#fff;border:1px solid var(--rot);color:var(--rot);margin-bottom:1.6rem;font-size:.9rem}

/* ------------------------------------------------------ CTA */
.cta{background:var(--salbei-dunkel);color:#eef4f1}
.cta h2{color:#fff}
.cta p{color:rgba(238,244,241,.82);font-size:.96rem}
.cta .marke-zeile{color:var(--salbei)}
.cta .btn-haupt{background:var(--salbei);color:var(--salbei-dunkel)}
.cta .btn-leise{background:transparent;border-color:rgba(255,255,255,.4);color:#eef4f1}

/* ------------------------------------------------------ Formular */
.direkt{margin-top:1.4rem}
.formular{display:grid;gap:1.1rem}
.feld{display:grid;gap:.35rem}
.feld label{font-size:.88rem;font-weight:600}
.optional{font-weight:400;color:var(--grau)}
.feld input,.feld select,.feld textarea{
  font:inherit;font-size:16px;              /* 16px verhindert das Zoomen in iOS */
  padding:.85rem 1rem;border:1px solid var(--linie);border-radius:12px;
  background:#fff;color:var(--tinte);width:100%;min-height:52px}
.feld textarea{resize:vertical;min-height:120px}
.feld input:focus,.feld select:focus,.feld textarea:focus{border-color:var(--salbei-tief);outline:none;
  box-shadow:0 0 0 4px var(--salbei-hell)}
.feld-check{grid-template-columns:auto 1fr;align-items:start;gap:.7rem}
.feld-check input{width:24px;height:24px;min-height:0;margin-top:.15rem}
.feld-check label{font-weight:400;font-size:.9rem;color:var(--grau)}
.feld-check .fehler{grid-column:1/-1}
.fehler{font-size:.84rem;color:var(--rot)}
.honigtopf{position:absolute;left:-9999px}
.status{font-size:.95rem;margin:.3rem 0 0}
.status-ok{color:var(--salbei-tief);font-weight:600}
.status-fehler{color:var(--rot)}

/* ------------------------------------------------------ Rechtstexte */
.recht h2{font-size:1.1rem;font-weight:600;margin-top:1.8rem}
.recht p{font-size:.94rem;color:var(--grau)}
.recht .fliesstext>h2:first-child{margin-top:1.2rem}

/* ------------------------------------------------------ Fuß */
.fuss{padding:2.4rem var(--rand) 2rem;border-top:1px solid var(--linie);background:#fff}
.fuss-marke{font-weight:600;margin-bottom:.6rem}
.fuss a{text-decoration:none}
.fuss-nav{display:grid;gap:.6rem;margin:1.6rem 0;font-size:.95rem}
.umschalter{margin:1.6rem 0 1.2rem;padding-top:1.3rem;border-top:1px solid var(--linie);display:grid;gap:.2rem}
.umschalter a{font-weight:600;color:var(--salbei-tief)}
.copy{margin:0}

/* ------------------------------------------------------ Aktionsleiste unten */
.aktionsleiste{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:1fr 1.4fr;
  gap:.6rem;padding:.7rem var(--rand);padding-bottom:calc(.7rem + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.97);backdrop-filter:blur(10px);border-top:1px solid var(--linie)}
.al-knopf{display:flex;align-items:center;justify-content:center;gap:.45rem;min-height:50px;
  border-radius:999px;text-decoration:none;font-size:.96rem;font-weight:600}
.al-haupt{background:var(--salbei-dunkel);color:#fff}
.al-leise{background:var(--salbei-blass);color:var(--salbei-dunkel)}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition-duration:.001ms !important;animation-duration:.001ms !important}
}
@media print{.kopf,.nav,.aktionsleiste,.cta{display:none}body{padding-bottom:0}}


/* ------------------------------------------- Kontaktseite: Formular zuerst sichtbar */
.kontakt-kopf{padding-bottom:2rem}
.kontakt-kopf h1{font-size:1.7rem;margin-bottom:.4rem}
.kontakt-kopf .lead{margin-bottom:1.6rem}
.kontakt-kopf .formular{background:#fff;border-radius:var(--rund);padding:1.3rem;
  box-shadow:0 2px 14px rgba(35,48,43,.06)}


/* ---------------------------------------------- Bestätigung nach dem Absenden */
.status:empty{display:none}
.status{display:block;margin:.5rem 0 0;padding:1rem 1.1rem;border-radius:12px;font-size:.95rem;
  background:var(--salbei-blass);border-left:3px solid var(--linie)}
.status-ok{border-left-color:var(--salbei-tief);background:var(--salbei-hell);color:var(--tinte);font-weight:400}
.status-fehler{border-left-color:var(--rot);background:#fff;color:var(--rot)}
.status-zusatz{display:block;margin-top:.45rem;font-size:.85rem;color:var(--grau)}
.status-fehler .status-zusatz{color:var(--rot);opacity:.85}
