/*
 * RICHTUNG 3 – „BETON & SIGNAL“
 * Idee: Rohe, selbstbewusste Typografie. Riesige, schmale Versalien (Archivo,
 * dieselbe Familie wie die bisherige „Archivo Narrow“), Sichtbeton-Grau, Schwarz
 * und ein einziges Signal: Neon-Limone. Vollbild-Menü, Bilder als harte Mosaikflächen.
 * Lesbarkeit: Große Schrift wechselt automatisch zwischen Weiß und Schwarz,
 * je nach Helligkeit des Motivs (Flag „ton“ in der Medienliste) und liegt auf
 * einem passenden Verlauf. Kleiner Text und alle Knöpfe stehen auf deckenden
 * Flächen (Schwarz oder Limone).
 * Schrift (lokal, OFL): Archivo variabel (Breite 62–125 %, Stärke 100–900).
 */

@font-face {
  font-family: "Archivo"; src: url("/assets/fonts/archivo-variable.woff2") format("woff2");
  font-weight: 100 900; font-stretch: 62% 125%; font-style: normal; font-display: swap;
}

:root {
  --beton: rgba(217, 215, 209, 1);
  --beton-hell: rgba(236, 235, 230, 1);
  --ink: rgba(14, 15, 14, 1);
  --lime: rgba(212, 255, 63, 1);              /* nur als Fläche, Text darauf immer schwarz (16:1) */
  --weiss: rgba(255, 255, 255, 1);
  --linie: rgba(14, 15, 14, .85);
  --bg-ersatz: rgba(43, 45, 43, 1);
  --skip-bg: var(--lime); --skip-fg: rgba(0, 0, 0, 1);
  --lb-bg: rgba(14, 15, 14, .97); --lb-fg: rgba(255, 255, 255, 1); --lb-knopf: rgba(0, 0, 0, 1); --lb-linie: rgba(255, 255, 255, 1); --lb-akzent: var(--lime); --lb-akzent-text: rgba(0, 0, 0, 1);

  --schrift: "Archivo", "Archivo Narrow", system-ui, sans-serif;
  --schrift-lb: var(--schrift);

  --s1: .5rem; --s2: 1rem; --s3: 1.5rem; --s4: 2.5rem; --s5: 4rem; --s6: 7rem;
  --rand: clamp(1rem, 2.6vw, 2.5rem);
  --kopf-h: 4rem;
  --inhalt-max: 96rem;

  /* Motiv-abhängig (gesetzt über <html data-ton>) */
  --fg: rgba(255, 255, 255, 1);
  --v0: rgba(0, 0, 0, .72);
  --v1: rgba(0, 0, 0, 0);
}
html[data-ton="hell"] { --fg: rgba(14, 15, 14, 1); --v0: rgba(255, 255, 255, .78); --v1: rgba(255, 255, 255, 0); }

/* Tastaturfokus: Limone + Schwarz, sichtbar auf jedem Untergrund */
:focus-visible { outline: 3px solid rgba(0, 0, 0, 1); outline-offset: 2px; box-shadow: 0 0 0 2px var(--lime); }

body { font-family: var(--schrift); font-size: 1.0625rem; line-height: 1.5; font-weight: 450; color: var(--ink); background: var(--beton); }
a:hover { text-decoration-color: currentColor; }

/* Riesen-Versalien */
.riesig, h1, h2, .menue__link, .wahl__titel, .fuss__wort {
  font-stretch: 62%; font-weight: 800; text-transform: uppercase; letter-spacing: -.012em; line-height: .86;
}

/* ---------- Knöpfe ---------- */
.knopf {
  display: inline-flex; align-items: center; gap: .6rem; min-height: 3.4rem; padding: .8rem 1.5rem; background: var(--ink); color: rgba(255, 255, 255, 1); text-decoration: none;
  font-stretch: 75%; font-weight: 700; font-size: 1.1rem; text-transform: uppercase; letter-spacing: .02em; border: 2px solid var(--ink); transition: background .2s, color .2s, border-color .2s;
}
.knopf:hover { background: var(--lime); color: rgba(0, 0, 0, 1); border-color: rgba(0, 0, 0, 1); }
.knopf--lime { background: var(--lime); color: rgba(0, 0, 0, 1); border-color: rgba(0, 0, 0, 1); }
.knopf--lime:hover { background: rgba(0, 0, 0, 1); color: var(--lime); }

/* ---------- Bildangabe + Bedienung ---------- */
.werkzeug { display: inline-flex; align-items: stretch; background: var(--ink); color: rgba(255, 255, 255, 1); font-stretch: 85%; font-weight: 600; font-size: .85rem; text-transform: uppercase; letter-spacing: .04em; max-width: 100%; }
.werkzeug__text { display: flex; gap: .45em; align-items: center; padding: .6rem .9rem; min-width: 0; }
.werkzeug__text span:first-child { color: var(--lime); white-space: nowrap; }
.werkzeug__text span:nth-child(2) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.werkzeug__platz { opacity: .7; white-space: nowrap; }
.werkzeug__knopf { padding: .6rem .9rem; border-left: 1px solid rgba(255, 255, 255, .35); text-transform: uppercase; white-space: nowrap; transition: background .2s, color .2s; }
.werkzeug__knopf:hover { background: var(--lime); color: rgba(0, 0, 0, 1); }

/* Schleier: Verlauf passend zum Motiv (hell/dunkel) */
.schleier { position: fixed; inset: 0; z-index: 0; pointer-events: none; background: linear-gradient(to top, var(--v0) 0%, var(--v0) 18%, var(--v1) 70%), linear-gradient(to bottom, var(--v0) 0%, var(--v1) 18%); transition: background .6s; }
.schleier--hero { position: absolute; }

/* ==========================================================================
   STARTSEITE
   ========================================================================== */
.start { position: relative; z-index: 2; min-height: 100svh; display: grid; grid-template-rows: auto 1fr auto; gap: var(--s3); padding: var(--rand); color: var(--fg); transition: color .5s; }
.start__oben { display: grid; grid-template-columns: auto 1fr auto; gap: var(--s3); align-items: start; }
.start__marke { background: var(--ink); color: rgba(255, 255, 255, 1); padding: .45rem .8rem .5rem; font-stretch: 62%; font-weight: 800; font-size: 1.6rem; text-transform: uppercase; line-height: 1; letter-spacing: -.005em; }
.start__zeile { align-self: center; font-stretch: 80%; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; font-size: .95rem; }
.start__titel { align-self: end; max-width: 100rem; }
.start h1 { font-size: clamp(3.6rem, min(12.4vw, 16svh), 15rem); text-wrap: balance; }
.start__sub { margin-top: 1.2rem; font-stretch: 85%; font-weight: 700; font-size: clamp(1rem, 1.5vw, 1.35rem); max-width: 60rem; }
.start__unten { display: grid; grid-template-columns: 2.7fr 1fr; gap: 0; align-items: stretch; }

.wahl { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; background: var(--ink); }
.wahl__link {
  position: relative; display: grid; grid-template-columns: auto 1fr auto; grid-template-rows: auto auto auto; gap: .2rem .8rem; align-content: start;
  padding: 1.1rem 1.3rem 1.3rem; background: var(--ink); color: rgba(255, 255, 255, 1); text-decoration: none; border-right: 1px solid rgba(255, 255, 255, .25); transition: background .2s, color .2s;
}
.wahl__nr { font-stretch: 75%; font-weight: 700; color: var(--lime); font-size: 1rem; transition: color .2s; }
.wahl__titel { grid-column: 1 / -1; font-size: clamp(2.4rem, 4vw, 4.4rem); margin-block: .5rem .6rem; hyphens: manual; overflow-wrap: anywhere; }
.wahl__text { grid-column: 1 / 3; font-size: .9rem; line-height: 1.35; max-width: 22rem; }
.wahl__pfeil { grid-column: 3; grid-row: 3; align-self: end; justify-self: end; font-size: 1.6rem; font-weight: 700; transition: transform .25s; }
.wahl__link:hover, .wahl__link:focus-visible { background: var(--lime); color: rgba(0, 0, 0, 1); }
.wahl__link:hover .wahl__nr { color: rgba(0, 0, 0, 1); }
.wahl__link:hover .wahl__pfeil { transform: translateX(.4rem); }

.adressen { display: grid; gap: 0; background: var(--ink); color: rgba(255, 255, 255, 1); font-size: .88rem; line-height: 1.45; align-content: stretch; }
.adressen address, .adressen .recht { padding: .8rem 1.1rem; font-style: normal; border-bottom: 1px solid rgba(255, 255, 255, .25); }
.adressen strong { display: block; color: var(--lime); font-stretch: 80%; text-transform: uppercase; letter-spacing: .05em; font-size: .85rem; }
.adressen a { color: rgba(255, 255, 255, 1); }
.adressen a:hover { color: var(--lime); }
.adressen .recht { display: flex; flex-wrap: wrap; gap: .2rem 1rem; border-bottom: 0; font-size: .8rem; opacity: .95; }

/* ==========================================================================
   HAUPTSEITE: Kopf + Vollbild-Menü
   ========================================================================== */
.kopf { position: fixed; inset: 0 0 auto 0; z-index: 60; height: var(--kopf-h); padding: .6rem var(--rand); display: flex; align-items: center; gap: var(--s2); pointer-events: none; }
.kopf > * { pointer-events: auto; }
.kopf__marke { background: var(--ink); color: rgba(255, 255, 255, 1); padding: .4rem .8rem .5rem; font-stretch: 62%; font-weight: 800; font-size: 1.6rem; line-height: 1; text-transform: uppercase; text-decoration: none; margin-right: auto; }
.kopf__marke:hover { background: var(--lime); color: rgba(0, 0, 0, 1); }
.kopf__start { background: var(--beton-hell); color: var(--ink); padding: .65rem 1rem; text-decoration: none; font-stretch: 80%; font-weight: 700; font-size: .9rem; text-transform: uppercase; letter-spacing: .04em; }
.kopf__start:hover { background: rgba(0, 0, 0, 1); color: var(--lime); }
.kopf__toggle { white-space: nowrap; background: var(--lime); color: rgba(0, 0, 0, 1); border: 2px solid rgba(0, 0, 0, 1); min-height: 2.9rem; padding: 0 1.3rem; font-stretch: 75%; font-weight: 800; font-size: 1.05rem; text-transform: uppercase; letter-spacing: .04em; }
.kopf__toggle:hover { background: rgba(0, 0, 0, 1); color: var(--lime); }
.kopf__toggle-zu { display: none; }
html.menue-offen .kopf__toggle-auf { display: none; }
html.menue-offen .kopf__toggle-zu { display: inline; }
html.menue-offen { overflow: hidden; }

.menue {
  position: fixed; inset: 0; z-index: 55; background: rgba(14, 15, 14, 1); color: rgba(255, 255, 255, 1); overflow-y: auto;
  padding: calc(var(--kopf-h) + 2rem) var(--rand) var(--rand); visibility: hidden; opacity: 0; transition: opacity .3s, visibility 0s .3s;
}
html.menue-offen .menue { visibility: visible; opacity: 1; transition: opacity .3s; }
.menue__liste { max-width: var(--inhalt-max); margin-inline: auto; display: grid; }
.menue__punkt { position: relative; display: flex; align-items: center; border-bottom: 1px solid rgba(255, 255, 255, .18); }
.menue__link { display: flex; align-items: baseline; gap: 1rem; padding: .12em 0 .08em; font-size: clamp(3rem, 8vw, 7.6rem); color: rgba(255, 255, 255, 1); text-decoration: none; transition: color .2s, padding-left .3s cubic-bezier(.2, .7, .2, 1); }
.menue__link::before { content: var(--nr); font-stretch: 100%; font-weight: 600; font-size: .9rem; letter-spacing: .06em; color: var(--lime); min-width: 2.2rem; }
.menue__punkt:hover > .menue__link, .menue__punkt:focus-within > .menue__link { color: var(--lime); padding-left: 1rem; }
.menue__toggle { position: absolute; left: 0; bottom: 0; width: 0; height: 0; overflow: hidden; }
.menue__toggle:focus-visible { width: 2rem; height: 2rem; overflow: visible; background: var(--lime); }
.menue__pfeil { display: none; }
/* Untermenü direkt neben dem Hauptpunkt, auf gleicher Höhe: Die Maus muss vom Hauptpunkt nur
   nach rechts, nicht quer über andere Punkte (sonst stellte sich das Menü beim Hochfahren um).
   Die unteren Punkte lassen ihr Untermenü nach oben wachsen, damit es nicht aus dem Bild ragt. */
.menue__sub { position: absolute; z-index: 2; left: 56%; right: 0; top: 0; display: none; }
.menue__punkt:nth-child(n+4) > .menue__sub { top: auto; bottom: 0; }
.menue__punkt:hover > .menue__sub, .menue__punkt:focus-within > .menue__sub, .menue__punkt.is-offen > .menue__sub,
.menue__liste:not(:hover):not(:focus-within) .menue__punkt:first-child > .menue__sub { display: block; animation: sub-ein .22s ease; }
@keyframes sub-ein { from { opacity: 0; transform: translateX(.6rem); } to { opacity: 1; transform: none; } }
.menue__sub-link { display: flex; gap: 1rem; align-items: baseline; padding: .45rem 0; border-bottom: 1px solid rgba(255, 255, 255, .18); color: rgba(255, 255, 255, 1); text-decoration: none; font-stretch: 80%; font-weight: 700; font-size: clamp(1.2rem, 1.9vw, 1.9rem); text-transform: uppercase; line-height: 1.1; transition: background .2s, color .2s, padding-left .25s; }
.menue__sub-link::before { content: var(--nr); font-stretch: 100%; font-weight: 500; font-size: .72rem; color: var(--lime); min-width: 2.4rem; }
.menue__sub-link:hover { background: var(--lime); color: rgba(0, 0, 0, 1); padding-left: .8rem; }
.menue__sub-link:hover::before { color: rgba(0, 0, 0, 1); }

@media (max-width: 62rem) {
  .menue__liste { max-width: none; }
  .menue__punkt { flex-wrap: wrap; }
  .menue__link { flex: 1; font-size: clamp(2.6rem, 11vw, 5rem); }
  .menue__toggle { position: static; width: 3.4rem; height: 3.4rem; overflow: visible; display: grid; place-items: center; }
  .menue__pfeil { display: block; width: .7rem; height: .7rem; border: solid var(--lime); border-width: 0 3px 3px 0; transform: rotate(45deg); transition: transform .25s; }
  .menue__punkt.is-offen .menue__pfeil { transform: rotate(225deg); }
  .menue__sub, .menue__punkt:hover > .menue__sub, .menue__punkt:focus-within > .menue__sub, .menue__liste:not(:hover):not(:focus-within) .menue__punkt:first-child > .menue__sub {
    position: static; display: none; visibility: visible; opacity: 1; width: 100%; max-height: none; overflow: visible; padding: 0 0 1rem 3.2rem; transition: none; }
  .menue__punkt.is-offen > .menue__sub { display: block; }
  .menue__sub-link { font-size: 1.2rem; }
}

/* ==========================================================================
   HAUPTSEITE: Hero
   ========================================================================== */
.hero { position: relative; min-height: 100svh; display: flex; align-items: flex-end; padding: calc(var(--kopf-h) + 1rem) var(--rand) var(--rand); color: var(--fg); }
.hero__inhalt { position: relative; z-index: 1; display: grid; gap: var(--s3); max-width: 100rem; }
.hero h1 { font-size: clamp(3.6rem, min(12.6vw, 17svh), 15.5rem); text-wrap: balance; }
.hero__zeile { max-width: 38rem; font-stretch: 85%; font-weight: 700; font-size: clamp(1.1rem, 1.5vw, 1.4rem); line-height: 1.3; }
.hero__aktionen { display: flex; flex-wrap: wrap; gap: .6rem; }
.hero .knopf:not(.knopf--lime) { background: var(--ink); }
.werkzeug--hero { position: absolute; z-index: 1; right: var(--rand); bottom: var(--rand); }

/* ==========================================================================
   Abschnitte
   ========================================================================== */
.abschnitt { position: relative; z-index: 1; background: var(--beton); padding: var(--s6) var(--rand) var(--s5); }
.abschnitt > * { max-width: var(--inhalt-max); margin-inline: auto; }
.abschnitt h2 { font-size: clamp(3rem, 8.5vw, 10rem); text-wrap: balance; }
.abschnitt__kopf { display: grid; grid-template-columns: auto 1fr; gap: var(--s2) var(--s4); align-items: end; margin-bottom: var(--s4); }
.abschnitt__kopf .filter { justify-self: end; }
.abschnitt__zahl { grid-column: 1 / -1; font-stretch: 85%; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; font-size: .85rem; border-top: 2px solid var(--ink); padding-top: .6rem; }

.filter { display: flex; flex-wrap: wrap; gap: .4rem; }
.filter__knopf { min-height: 2.9rem; padding: .5rem 1.1rem; border: 2px solid var(--ink); font-stretch: 80%; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; font-size: .95rem; transition: background .2s, color .2s; }
.filter__knopf:hover { background: rgba(255, 255, 255, 1); }
.filter__knopf[aria-pressed="true"] { background: var(--ink); color: var(--lime); }

/* Galerie als Mosaik */
.galerie { display: grid; grid-template-columns: repeat(6, 1fr); grid-auto-rows: clamp(11rem, 20vw, 21rem); grid-auto-flow: dense; gap: 6px; }
.galerie__item { grid-column: span 2; }
.galerie__item:nth-child(12n+1) { grid-column: span 4; grid-row: span 2; }
.galerie__item:nth-child(12n+7) { grid-row: span 2; }
.galerie__item:nth-child(12n+8) { grid-column: span 4; }
.galerie__item:nth-child(12n+11), .galerie__item:nth-child(12n+12) { grid-column: span 3; }
.galerie__link { position: relative; display: block; height: 100%; overflow: hidden; text-decoration: none; color: rgba(255, 255, 255, 1); background: var(--ink); }
.galerie__bild { display: block; width: 100%; height: 100%; }
.galerie__bild img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s cubic-bezier(.2, .7, .2, 1); }
.galerie__link:hover .galerie__bild img, .galerie__link:focus-visible .galerie__bild img { transform: scale(1.06); }
.galerie__text { position: absolute; left: 0; right: 0; bottom: 0; display: flex; gap: .8rem; align-items: baseline; padding: .55rem .8rem .6rem; background: var(--ink); color: rgba(255, 255, 255, 1); transition: background .2s, color .2s; }
.galerie__nr { font-stretch: 80%; font-weight: 800; color: var(--lime); font-size: .9rem; transition: color .2s; }
.galerie__titel { font-stretch: 80%; font-weight: 700; text-transform: uppercase; letter-spacing: .02em; font-size: 1rem; line-height: 1.15; margin-right: auto; }
.galerie__meta { font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; opacity: .8; white-space: nowrap; }
.galerie__link:hover .galerie__text, .galerie__link:focus-visible .galerie__text { background: var(--lime); color: rgba(0, 0, 0, 1); }
.galerie__link:hover .galerie__nr, .galerie__link:focus-visible .galerie__nr { color: rgba(0, 0, 0, 1); }

/* Textabschnitt */
.text-abschnitt { background: var(--beton-hell); }
.text-raster { display: grid; grid-template-columns: 1.6fr 1fr; gap: var(--s4) var(--s5); align-items: end; margin-bottom: var(--s5); }
.text-raster h2 { font-size: clamp(3rem, 7.6vw, 9rem); }
.text-rechts { display: grid; gap: var(--s2); max-width: 30rem; }
.lead { font-stretch: 90%; font-weight: 700; font-size: 1.3rem; line-height: 1.3; }
.leistungen { border-top: 2px solid var(--ink); counter-reset: x; }
.leistungen li { display: flex; align-items: baseline; gap: 1.3rem; padding: .55rem 0; border-bottom: 2px solid var(--ink); font-stretch: 62%; font-weight: 800; font-size: clamp(2rem, 4.6vw, 4.6rem); text-transform: uppercase; line-height: 1; transition: background .2s, padding-left .3s cubic-bezier(.2, .7, .2, 1); }
.leistungen li span { font-stretch: 100%; font-weight: 600; font-size: .9rem; letter-spacing: .05em; min-width: 2rem; }
.leistungen li:hover { background: var(--lime); padding-left: 1rem; }

.referenzen { background: var(--beton); padding-block: var(--s5); }
.klein-h2 { font-size: clamp(1.4rem, 2vw, 2rem) !important; margin-bottom: var(--s2); letter-spacing: .02em !important; line-height: 1 !important; }
.ref-raster { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.ref-raster li { background: var(--ink); color: rgba(255, 255, 255, 1); padding: 1.4rem 1.3rem 1.6rem; min-height: 11rem; display: flex; align-items: flex-end; font-stretch: 62%; font-weight: 800; text-transform: uppercase; font-size: clamp(1.8rem, 2.6vw, 2.8rem); line-height: .95; transition: background .2s, color .2s; }
.ref-raster li:hover { background: var(--lime); color: rgba(0, 0, 0, 1); }
.office { background: var(--beton-hell); display: grid; gap: var(--s4); }
.office h2 { font-size: clamp(3rem, 11vw, 13rem); }
.office__text { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s4); max-width: 54rem !important; margin-left: 0 !important; }
.office__text, .office h2 { max-width: var(--inhalt-max); }

.reveal-aktiv [data-reveal] { opacity: 0; transform: translateY(1.5rem); transition: opacity .6s ease, transform .6s cubic-bezier(.2, .7, .2, 1); }
.reveal-aktiv [data-reveal].is-sichtbar { opacity: 1; transform: none; }

/* ==========================================================================
   Footer
   ========================================================================== */
.fuss { position: relative; z-index: 1; background: var(--ink); color: rgba(255, 255, 255, 1); padding: var(--s5) var(--rand) var(--s3); overflow: hidden; }
.fuss__raster { max-width: var(--inhalt-max); margin: 0 auto var(--s5); display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s4); }
.fuss address, .fuss nav { font-style: normal; font-size: 1rem; line-height: 1.5; }
.fuss strong { display: block; margin-bottom: .6rem; color: var(--lime); font-stretch: 80%; text-transform: uppercase; letter-spacing: .05em; }
.fuss a { color: rgba(255, 255, 255, 1); }
.fuss a:hover { color: var(--lime); }
.fuss ul { display: grid; gap: .3rem; }
.fuss__wort { font-size: clamp(4rem, 20vw, 26rem); color: var(--lime); line-height: .76; margin: 0 -.02em -.08em; text-align: center; user-select: none; white-space: nowrap; }
.fuss__recht { max-width: var(--inhalt-max); margin: var(--s3) auto 0; display: flex; flex-wrap: wrap; gap: .4rem 1.6rem; font-size: .85rem; }
.fuss__recht span { margin-right: auto; }

/* ==========================================================================
   Responsiv
   ========================================================================== */
@media (max-width: 62rem) {
  .start__unten { grid-template-columns: 1fr; }
  .wahl { grid-template-columns: 1fr; }
  .wahl__link { border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, .25); grid-template-columns: auto 1fr auto; padding: 1rem 1.1rem; }
  .wahl__titel { grid-column: 2; grid-row: 1; margin: 0; font-size: 2.6rem; }
  .wahl__nr { grid-row: 1; align-self: center; }
  .wahl__text { grid-column: 2; grid-row: 2; }
  .wahl__pfeil { grid-column: 3; grid-row: 1 / span 2; align-self: center; }
  .adressen { grid-template-columns: 1fr 1fr; }
  .adressen .recht { grid-column: 1 / -1; border-top: 1px solid rgba(255, 255, 255, .25); }
  .galerie { grid-template-columns: repeat(4, 1fr); grid-auto-rows: clamp(10rem, 28vw, 18rem); }
  .galerie__item, .galerie__item:nth-child(n) { grid-column: span 2; grid-row: auto; }
  .galerie__item:nth-child(3n+1) { grid-column: 1 / -1; }
  .text-raster { grid-template-columns: 1fr; }
  .ref-raster { grid-template-columns: 1fr 1fr; }
  .office__text { grid-template-columns: 1fr; }
  .fuss__raster { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 40rem) {
  body { font-size: 1rem; }
  .start { padding-top: .8rem; }
  .kopf__start { display: none; }
  .start__oben { grid-template-columns: auto 1fr; }
  .start__zeile { display: none; }
  .start__oben .werkzeug { grid-column: 1 / -1; display: flex; }
  .start__titel { padding-top: 22svh; }
  .start h1 { font-size: 13.8vw; }
  .werkzeug__platz { display: none; }
  .werkzeug__text { flex: 1; }
  .adressen { grid-template-columns: 1fr; }
  .hero { padding-bottom: 1rem; flex-direction: column; justify-content: flex-end; align-items: stretch; gap: 1.2rem; }
  .hero h1 { font-size: 15vw; }
  .werkzeug--hero { position: static; display: flex; }
  .abschnitt__kopf { grid-template-columns: 1fr; }
  .abschnitt__kopf .filter { justify-self: start; }
  .filter__knopf { flex: 1 1 45%; }
  .galerie { grid-template-columns: 1fr; grid-auto-rows: 15rem; }
  .galerie__item, .galerie__item:nth-child(n) { grid-column: 1 / -1; }
  .ref-raster { grid-template-columns: 1fr; }
  .ref-raster li { min-height: 7rem; }
  .fuss__raster { grid-template-columns: 1fr; }
  .leistungen li { gap: .8rem; }
}
