/* ==========================================================================
   brawur — ruhig und sachlich, ohne Leitbild

   Die Seite behauptet nichts ueber sich, sie ordnet nur, was belegt ist.
   Kompetenz zeigt sich ueber Rasterachse, Abstand und Typografie, nicht ueber
   ein Motiv. Drei Bildwelten wurden vorgelegt und am 22.08.2026 verworfen
   ("zu speziell, zu verspielt"). Handwerkliche Messlatte: Ingenieurbuero.

   Bordeaux nur an Entscheidungspunkten. Haarlinien statt Karten und Kaesten.
   Ein Radius (2px), kein Schatten, keine Eyebrows, keine Kennzahlenkacheln.
   ========================================================================== */

/* --- Schriften: selbst gehostet, kein Fremdrequest --------------------- */
@font-face{
  font-family:"Archivo";
  src:url("../Fonts/archivo-latin.woff2") format("woff2");
  font-weight:400 800; font-stretch:75% 125%; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Azeret Mono";
  src:url("../Fonts/azeretmono-latin.woff2") format("woff2");
  font-weight:400 600; font-style:normal; font-display:swap;
}

:root{
  /* Papier */
  --bw-paper:#F4F0EA;
  --bw-band:#EAE3D9;
  --bw-sheet:#FFFFFF;
  /* Dunkle Flaeche: nur hinter dem Unterseiten-Bildkopf */
  --bw-dark:#181110;
  --bw-dark-2:#221917;
  --bw-dark-line:rgba(244,240,234,.26);
  --bw-dark-ink:#F2EAE5;
  --bw-dark-muted:#A3908A;
  /* Tinte */
  --bw-ink:#1F1917;
  --bw-muted:#6B5F5B;
  /* Marke */
  --bw-brand:#551111;
  --bw-brand-2:#6E1A1A;
  --bw-brand-solid:#551111;
  --bw-on-brand:#FFFFFF;
  /* Linien */
  --bw-line:rgba(85,17,17,.16);
  --bw-line-2:rgba(85,17,17,.34);
  /* Zustand */
  --bw-error:#A32017;
  /* Schrift */
  --bw-sans:"Archivo","Helvetica Neue",Helvetica,Arial,system-ui,sans-serif;
  --bw-mono:"Azeret Mono",ui-monospace,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
  /* Mass */
  --bw-edge:clamp(1.15rem,4vw,3.5rem);
  --bw-block:clamp(4.5rem,9vw,8rem);
  --bw-r:2px;
  --bw-logo-filter:none;
}

:root[data-theme="dark"]{
  --bw-paper:#100D0C;
  --bw-band:#181413;
  --bw-sheet:#1B1615;
  --bw-ink:#F0E9E5;
  --bw-muted:#A3948F;
  --bw-brand:#C9605A;
  --bw-brand-2:#DA746D;
  --bw-brand-solid:#7A1E1E;
  --bw-line:rgba(255,255,255,.14);
  --bw-line-2:rgba(255,255,255,.30);
  --bw-error:#E06055;
  --bw-logo-filter:brightness(0) invert(1);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0; background:var(--bw-paper); color:var(--bw-ink);
  font-family:var(--bw-sans); font-size:1.0625rem; line-height:1.7;
  font-variation-settings:"wdth" 100;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden;
  transition:background .35s ease,color .35s ease;
}
h1,h2,h3,h4{ margin:0; font-weight:700; line-height:1.02; letter-spacing:-.03em; text-wrap:balance; }
p{ margin:0; }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
::selection{ background:var(--bw-brand); color:#fff; }
:focus-visible{ outline:2px solid var(--bw-brand); outline-offset:3px; border-radius:var(--bw-r); }

.bw-container{ max-width:1280px; margin-inline:auto; padding-inline:var(--bw-edge); }
.visually-hidden{ position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.skip-link{ position:absolute; left:1rem; top:-4rem; background:var(--bw-brand-solid); color:#fff; padding:.7rem 1.1rem; border-radius:var(--bw-r); z-index:300; transition:top .18s ease; }
.skip-link:focus{ top:1rem; }
.bw-page-shell{ display:flex; flex-direction:column; min-height:100vh; }
.bw-site-main{ flex:1; }

/* Datenschrift: Jahre und Rubriken. Messwerte, kein Kostuem. */
.bw-data{ font-family:var(--bw-mono); font-weight:500; font-variant-numeric:tabular-nums; letter-spacing:.06em; }

/* --------------------------------------------------------------------------
   Icons: gezeichnet, eine Strichstaerke. Keine Unicode-Pfeile.
   -------------------------------------------------------------------------- */
.bw-ic{ width:1em; height:1em; flex:0 0 auto; stroke:currentColor; stroke-width:1.75; fill:none;
        stroke-linecap:square; stroke-linejoin:miter; transition:transform .22s ease; }

/* --------------------------------------------------------------------------
   Buttons — eckig, 2px, keine Pillen
   -------------------------------------------------------------------------- */
.bw-btn{ display:inline-flex; align-items:center; gap:.6rem; font:inherit; font-weight:600; font-size:1rem;
         padding:.85rem 1.35rem; border-radius:var(--bw-r); cursor:pointer; border:1px solid transparent;
         transition:background .2s ease,border-color .2s ease,color .2s ease; }
.bw-btn:hover .bw-ic{ transform:translateX(4px); }
.bw-btn-primary{ background:var(--bw-brand-solid); color:var(--bw-on-brand); }
.bw-btn-primary:hover{ background:var(--bw-brand-2); }
.bw-btn-ghost{ background:transparent; color:var(--bw-ink); border-color:var(--bw-line-2); }
.bw-btn-ghost:hover{ border-color:var(--bw-brand); color:var(--bw-brand); }
.bw-btn-outline{ background:transparent; color:var(--bw-brand); border-color:var(--bw-line-2); }
.bw-btn-outline:hover{ background:var(--bw-brand); color:#fff; border-color:var(--bw-brand); }

/* --------------------------------------------------------------------------
   Kopfzeile — Fensterleiste, keine Glasscheibe
   -------------------------------------------------------------------------- */
.bw-site-header{ position:sticky; top:0; z-index:100; background:var(--bw-paper); border-bottom:1px solid var(--bw-line); }
.bw-navbar-inner{ display:flex; align-items:center; justify-content:space-between; gap:1.25rem; height:68px; }
.bw-brand{ display:flex; align-items:center; gap:.7rem; flex:0 0 auto; }
.bw-logo{ height:32px; width:auto; filter:var(--bw-logo-filter); }
.bw-brand-word{ font-family:var(--bw-mono); font-weight:600; font-size:.78rem; letter-spacing:.22em; text-transform:uppercase; color:var(--bw-muted); }
@media (max-width:520px){ .bw-brand-word{ display:none; } }

.bw-nav-tools{ display:flex; align-items:center; gap:clamp(.7rem,2vw,1.5rem); }
.bw-main-nav{ list-style:none; display:flex; align-items:center; gap:clamp(.7rem,2vw,1.5rem); margin:0; padding:0; }
.bw-nav-item{ position:relative; display:flex; align-items:center; }
.bw-nav-link{ font-family:var(--bw-mono); font-size:.76rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase;
              color:var(--bw-muted); padding:.4rem 0; display:inline-block; position:relative; transition:color .2s ease; }
.bw-nav-link::after{ content:""; position:absolute; left:0; right:100%; bottom:0; height:2px; background:var(--bw-brand); transition:right .22s ease; }
.bw-nav-link:hover{ color:var(--bw-ink); }
.bw-nav-link:hover::after,
.bw-nav-item.is-active > .bw-nav-link::after{ right:0; }
.bw-nav-item.is-active > .bw-nav-link{ color:var(--bw-ink); }

.bw-subnav-toggle{ background:none; border:0; padding:.2rem .25rem; margin-left:.1rem; color:var(--bw-muted); cursor:pointer; display:inline-flex; }
.bw-subnav-toggle .bw-ic{ width:.7rem; height:.7rem; }
.bw-nav-item.is-open .bw-subnav-toggle .bw-ic{ transform:rotate(180deg); }
.bw-subnav{ position:absolute; top:100%; left:-.8rem; min-width:230px; background:var(--bw-sheet);
            border:1px solid var(--bw-line); border-radius:var(--bw-r); padding:.35rem; margin:0; list-style:none;
            display:none; z-index:20; }
.bw-nav-item:hover > .bw-subnav,
.bw-nav-item:focus-within > .bw-subnav,
.bw-nav-item.is-open > .bw-subnav{ display:block; }
.bw-subnav-link{ display:block; padding:.5rem .7rem; border-radius:var(--bw-r); font-size:.94rem; color:var(--bw-ink); }
.bw-subnav-link:hover{ background:var(--bw-band); color:var(--bw-brand); }

.bw-theme-toggle{ width:36px; height:36px; display:inline-flex; align-items:center; justify-content:center;
                  background:none; border:1px solid var(--bw-line-2); border-radius:var(--bw-r); color:var(--bw-ink);
                  cursor:pointer; transition:border-color .2s ease,color .2s ease; }
.bw-theme-toggle:hover{ border-color:var(--bw-brand); color:var(--bw-brand); }
.bw-theme-toggle .moon{ display:none; }
:root[data-theme="dark"] .bw-theme-toggle .sun{ display:none; }
:root[data-theme="dark"] .bw-theme-toggle .moon{ display:block; }

.bw-header-cta{ font-family:var(--bw-mono); font-size:.74rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
                background:var(--bw-brand-solid); color:var(--bw-on-brand); padding:.6rem 1rem; border-radius:var(--bw-r); }
.bw-header-cta:hover{ background:var(--bw-brand-2); }

.bw-nav-toggle{ display:none; align-items:center; gap:.5rem; background:none; border:1px solid var(--bw-line-2);
                border-radius:var(--bw-r); padding:.45rem .7rem; color:var(--bw-ink); cursor:pointer;
                font-family:var(--bw-mono); font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; }
.bw-nav-toggle-bars{ display:inline-flex; flex-direction:column; gap:3px; }
.bw-nav-toggle-bars span{ width:16px; height:1.5px; background:currentColor; display:block; }

@media (max-width:920px){
  .bw-nav-toggle{ display:inline-flex; }
  .bw-nav-collapse{ display:none; position:absolute; left:0; right:0; top:100%; flex-direction:column; gap:.9rem;
    background:var(--bw-paper); border-bottom:1px solid var(--bw-line); padding:1.2rem var(--bw-edge) 1.6rem; }
  .bw-nav-collapse.is-open{ display:flex; }
  .bw-main-nav{ flex-direction:column; align-items:stretch; gap:.1rem; }
  .bw-nav-item{ flex-wrap:wrap; }
  .bw-nav-link{ padding:.6rem 0; font-size:.94rem; }
  .bw-subnav{ position:static; border:0; padding:.1rem 0 .4rem 1rem; min-width:0; background:transparent; }
  .bw-nav-item:hover > .bw-subnav{ display:none; }
  .bw-nav-item.is-open > .bw-subnav{ display:block; }
  .bw-header-cta{ display:none; }
  .bw-nav-cta-mobile{ display:inline-flex; justify-content:center; }
  html:not(.js) .bw-nav-collapse{ display:flex; }
  html:not(.js) .bw-nav-toggle{ display:none; }
}
@media (min-width:921px){
  .bw-nav-collapse{ display:flex!important; align-items:center; gap:clamp(.7rem,2vw,1.5rem); }
  .bw-nav-cta-mobile{ display:none; }
}
.bw-nav-cta-mobile{ display:none; }
.bw-navbar{ position:relative; }

/* --------------------------------------------------------------------------
   Erster Viewport
   -------------------------------------------------------------------------- */
.bw-open{ padding-block:clamp(3rem,7vw,5.5rem) clamp(2rem,4vw,3rem); }
.bw-open h1{ font-size:clamp(2.6rem,7.2vw,5.5rem); font-variation-settings:"wdth" 112; max-width:15ch; }
.bw-open h1 em{ font-style:normal; color:var(--bw-brand); }
.bw-open-lead{ margin-top:1.5rem; max-width:52ch; font-size:clamp(1.05rem,1.4vw,1.2rem); color:var(--bw-muted); }
.bw-open-actions{ margin-top:2.2rem; display:flex; flex-wrap:wrap; gap:.7rem; }

/* --------------------------------------------------------------------------
   Leistungen — Zeilen mit Haarlinie, keine Karten
   -------------------------------------------------------------------------- */
.bw-section{ padding-block:var(--bw-block); }
.bw-section--band{ background:var(--bw-band); }
/* Direkt unter dem Kopfbereich: der Abstand nach oben steckt schon im Hero. */
.bw-section--tight{ padding-top:clamp(1rem,2vw,2rem); }
.bw-section h2{ font-size:clamp(1.8rem,3.8vw,2.8rem); font-variation-settings:"wdth" 108; max-width:22ch; }
.bw-section-intro{ margin-top:.9rem; max-width:56ch; color:var(--bw-muted); }
.bw-section-head{ margin-bottom:clamp(2rem,4vw,3rem); }

.bw-lanes{ border-top:1px solid var(--bw-line); }
.bw-lane{ display:grid; grid-template-columns:minmax(150px,1fr) minmax(0,2.4fr) auto; gap:clamp(1rem,3vw,2.5rem);
          align-items:baseline; padding-block:clamp(1.4rem,2.6vw,2rem); border-bottom:1px solid var(--bw-line);
          transition:background .2s ease; }
.bw-lane:hover{ background:color-mix(in srgb,var(--bw-brand) 5%,transparent); }
.bw-lane-name{ font-family:var(--bw-mono); font-size:.78rem; font-weight:600; letter-spacing:.16em;
               text-transform:uppercase; color:var(--bw-brand); }
.bw-lane-title{ font-size:1.35rem; font-weight:700; letter-spacing:-.02em; margin-bottom:.4rem; }
.bw-lane-text{ color:var(--bw-muted); }
.bw-lane-go{ display:inline-flex; align-items:center; gap:.45rem; color:var(--bw-brand); font-weight:600; font-size:.94rem; white-space:nowrap; }
.bw-lane:hover .bw-lane-go .bw-ic{ transform:translateX(4px); }
@media (max-width:760px){
  .bw-lane{ grid-template-columns:1fr; gap:.5rem; }
  .bw-lane-go{ margin-top:.4rem; }
}

/* --------------------------------------------------------------------------
   Angaben zum Unternehmen — geregelte Wertepaare
   -------------------------------------------------------------------------- */
.bw-facts{ margin:0; border-top:1px solid var(--bw-line); }
.bw-facts > div{ display:grid; grid-template-columns:minmax(140px,1fr) minmax(0,3fr);
                 gap:clamp(1rem,3vw,2.5rem); padding-block:clamp(.9rem,1.8vw,1.3rem);
                 border-bottom:1px solid var(--bw-line); }
.bw-facts dt{ font-family:var(--bw-mono); font-size:.7rem; font-weight:600; letter-spacing:.14em;
              text-transform:uppercase; color:var(--bw-muted); padding-top:.2rem; }
.bw-facts dd{ margin:0; }
.bw-facts dd b{ font-variant-numeric:tabular-nums; font-weight:700; }
@media (max-width:640px){ .bw-facts > div{ grid-template-columns:1fr; gap:.35rem; } }

/* --------------------------------------------------------------------------
   Kundenliste — echtes Material, dicht gesetzt
   -------------------------------------------------------------------------- */
/* Die Liste kommt aus dem Backend als Folge einzelner <p>. Sie wird hier in
   Spalten gebrochen statt in Karten gelegt: 51 Namen sind ein Register. */
.bw-clients-wrap .ce-bodytext,
.bw-clients-wrap > div > div{ columns:210px; column-gap:clamp(1.4rem,3vw,2.8rem); }
.bw-clients-wrap p{ break-inside:avoid; margin:0; padding-block:.42rem; font-size:.94rem;
                    line-height:1.35; color:var(--bw-ink); border-bottom:1px solid var(--bw-line); }
.bw-clients-wrap h2,.bw-clients-wrap h3{ display:none; }
.bw-clients-note{ margin-top:1.8rem; font-size:.94rem; }
.bw-clients-note a{ display:inline-flex; align-items:center; gap:.45rem; color:var(--bw-brand); font-weight:600; }
.bw-clients-note a:hover .bw-ic{ transform:translateX(4px); }

/* --------------------------------------------------------------------------
   Kontaktabschnitt
   -------------------------------------------------------------------------- */
.bw-close{ border-top:1px solid var(--bw-line); }
.bw-close > .bw-container{ padding-block:var(--bw-block); display:grid;
                           grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:clamp(2rem,5vw,4rem); align-items:end; }
.bw-close h2{ font-size:clamp(1.9rem,4.2vw,3.2rem); font-variation-settings:"wdth" 110; max-width:16ch; }
.bw-close p{ margin-top:1rem; color:var(--bw-muted); max-width:44ch; }
.bw-close-actions{ display:flex; flex-wrap:wrap; gap:.7rem; }
@media (max-width:820px){ .bw-close > .bw-container{ grid-template-columns:1fr; align-items:start; } }

/* --------------------------------------------------------------------------
   Unterseitenkopf
   -------------------------------------------------------------------------- */
.bw-page-hero{ background:var(--bw-band); padding-block:clamp(2.6rem,5vw,4.2rem); border-bottom:1px solid var(--bw-line); }
.bw-page-hero h1{ font-size:clamp(2rem,5vw,3.4rem); font-variation-settings:"wdth" 110; }
.bw-page-hero .bw-hero-lead{ margin-top:.9rem; color:var(--bw-muted); max-width:52ch; }
.bw-crumb{ font-family:var(--bw-mono); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase;
           color:var(--bw-muted); margin-bottom:1rem; display:flex; gap:.5rem; align-items:center; }
.bw-crumb a:hover{ color:var(--bw-brand); }

/* Das Motiv kommt als inline background-image aus dem Template, deshalb hier
   nur Farbe, Groesse und Position setzen und niemals die Kurzform. */
.bw-page-hero--image{ position:relative; border-bottom:0;
  background-color:var(--bw-dark); background-size:cover; background-position:center; background-repeat:no-repeat; }
.bw-page-hero--image::after{ content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(90deg,rgba(20,14,13,.95) 0%,rgba(20,14,13,.74) 45%,rgba(20,14,13,.38) 100%); }
.bw-page-hero--image > .bw-container{ position:relative; z-index:1; }
.bw-page-hero--image h1{ color:var(--bw-dark-ink); }
.bw-page-hero--image .bw-crumb{ color:var(--bw-dark-muted); }
.bw-page-hero--image .bw-crumb a:hover{ color:var(--bw-dark-ink); }
.bw-page-hero--image .bw-hero-lead{ color:rgba(255,255,255,.88); }

/* --------------------------------------------------------------------------
   Lesespalte und CMS-Inhalt
   -------------------------------------------------------------------------- */
.bw-reading{ max-width:70ch; }
.bw-cms-content h2{ font-size:clamp(1.5rem,3vw,2rem); margin:2.4rem 0 .7rem; letter-spacing:-.025em; }
.bw-cms-content h3{ font-size:1.35rem; margin:2rem 0 .5rem; letter-spacing:-.02em; }
.bw-cms-content h4{ font-size:1.15rem; margin:1.6rem 0 .45rem; letter-spacing:-.01em; }
.bw-cms-content h2:first-child,.bw-cms-content h3:first-child{ margin-top:0; }
.bw-cms-content h2::before{ content:""; display:block; width:42px; height:2px; background:var(--bw-brand); margin-bottom:.9rem; }
.bw-cms-content p{ margin-bottom:1.05rem; }
.bw-cms-content p.lead{ font-size:1.12rem; line-height:1.62; color:var(--bw-ink); margin-bottom:1.1rem; }
.bw-cms-content > div > p:first-of-type{ font-size:1.12rem; }
.bw-cms-content a{ color:var(--bw-brand); text-decoration:underline; text-underline-offset:2px; }
.bw-cms-content strong{ color:var(--bw-brand); }
.bw-cms-content ul,.bw-cms-content ol{ margin:0 0 1.05rem; padding-left:1.15rem; }
.bw-cms-content li{ margin-bottom:.35rem; }
.bw-cms-content img{ border-radius:var(--bw-r); margin-block:1.2rem; }
.bw-cms-content figure{ margin:1.4rem 0; }
.bw-cms-content table{ width:100%; border-collapse:collapse; margin-bottom:1.2rem; font-size:.94rem; }
.bw-cms-content th,.bw-cms-content td{ text-align:left; padding:.55rem .7rem; border-bottom:1px solid var(--bw-line); }

/* --------------------------------------------------------------------------
   Referenzen — Kachelraster

   Gepflegt im Backend als Text&Medien-Elemente in der Spalte „Zuletzt
   umgesetzt": Ueberschrift = Projektname (Link optional), Untertitel = Domain,
   Text = Beschreibung, Medien = Screenshot.

   ACHTUNG, teuer erkauft: FSC rendert <header> ZUERST, danach .ce-textpic mit
   Bild UND Text darin. Der Wrapper wird per display:contents aufgeloest und
   alle drei Teile bekommen ein order. Wer das order am <header> vergisst,
   bekommt Titel ueber dem Bild — genau das ist am 22.08. passiert.
   -------------------------------------------------------------------------- */
.bw-projects{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1rem,2.2vw,1.6rem); align-items:start; }
.bw-projects > .frame{ display:flex; flex-direction:column; margin:0; background:var(--bw-sheet);
  border:1px solid var(--bw-line); border-radius:var(--bw-r); overflow:hidden;
  transition:border-color .2s ease, background .2s ease; }
.bw-projects > .frame:hover{ border-color:var(--bw-line-2); }
.bw-section--band .bw-projects > .frame{ background:var(--bw-paper); }

.bw-projects .ce-textpic{ display:contents; }
.bw-projects .ce-gallery{ order:0; margin:0; }
.bw-projects > .frame > header{ order:1; }
.bw-projects .ce-bodytext{ order:2; }

.bw-projects .ce-gallery figure,
.bw-projects .ce-gallery .ce-outer,
.bw-projects .ce-gallery .ce-inner,
.bw-projects .ce-gallery .ce-row,
.bw-projects .ce-gallery .ce-column{ margin:0; padding:0; }
.bw-projects .ce-gallery img{ display:block; width:100%; height:auto; aspect-ratio:16/10;
  object-fit:cover; object-position:top center; border-radius:0; border-bottom:1px solid var(--bw-line); }

.bw-projects > .frame > header{ padding:clamp(1.1rem,2vw,1.4rem) clamp(1.1rem,2vw,1.4rem) 0; margin:0; }
.bw-projects > .frame > header h2{ font-size:1.15rem; margin:0; letter-spacing:-.01em; }
.bw-projects > .frame > header h2 a{ color:inherit; text-decoration:none; }
.bw-projects > .frame > header h2 a:hover{ color:var(--bw-brand); }
.bw-projects > .frame > header h3{ font-family:var(--bw-mono); font-size:.64rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--bw-brand); font-weight:600; margin:.3rem 0 0; }
.bw-projects .ce-bodytext{ padding:.6rem clamp(1.1rem,2vw,1.4rem) 1.3rem; color:var(--bw-muted); font-size:.94rem; }
.bw-projects .ce-bodytext p{ margin:0; }

@media (max-width:900px){ .bw-projects{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .bw-projects{ grid-template-columns:1fr; } }

/* --------------------------------------------------------------------------
   Nutzer-Sitemap (menu_sitemap_pages) — verschachtelte Liste, keine Punkte

   Das Element liefert <ul><li><a><span>Titel</span></a><ul>…</ul></li></ul>.
   Die zweite Ebene wird eingerueckt und kleiner gesetzt, damit der Aufbau der
   Seite ablesbar bleibt.
   -------------------------------------------------------------------------- */
.frame-type-menu_sitemap_pages ul{ list-style:none; margin:0; padding:0; }
.frame-type-menu_sitemap_pages > ul{ border-top:1px solid var(--bw-line); }
.frame-type-menu_sitemap_pages li{ margin:0; }
.frame-type-menu_sitemap_pages > ul > li{ border-bottom:1px solid var(--bw-line); }
.frame-type-menu_sitemap_pages a{ display:block; padding:.7rem 0; color:var(--bw-ink);
                                  text-decoration:none; transition:color .2s ease; }
.frame-type-menu_sitemap_pages a:hover{ color:var(--bw-brand); }
.frame-type-menu_sitemap_pages > ul > li > a{ font-size:1.12rem; font-weight:600; letter-spacing:-.01em; }
.frame-type-menu_sitemap_pages ul ul{ padding-left:1.4rem; padding-bottom:.5rem; }
.frame-type-menu_sitemap_pages ul ul li{ border-top:1px solid var(--bw-line); }
.frame-type-menu_sitemap_pages ul ul a{ padding:.45rem 0; font-size:.94rem; color:var(--bw-muted); }
.frame-type-menu_sitemap_pages ul ul a:hover{ color:var(--bw-brand); }

/* --------------------------------------------------------------------------
   Formulare
   -------------------------------------------------------------------------- */
.bw-cms-content form{ max-width:640px; }
.bw-cms-content form .form-element,
.bw-cms-content form .form-group{ margin-bottom:1.1rem; }
.bw-cms-content form label,
.bw-cms-content form .form-label{ display:block; font-weight:600; margin-bottom:.35rem; font-size:.94rem; }
.bw-cms-content form input[type="text"],
.bw-cms-content form input[type="email"],
.bw-cms-content form input[type="tel"],
.bw-cms-content form textarea,
.bw-cms-content form .form-control{ width:100%; font:inherit; color:var(--bw-ink); background:var(--bw-sheet);
  border:1px solid var(--bw-line-2); border-radius:var(--bw-r); padding:.7rem .9rem; }
.bw-cms-content form input:focus,
.bw-cms-content form textarea:focus{ outline:2px solid var(--bw-brand); outline-offset:1px; border-color:var(--bw-brand); }
.bw-cms-content form textarea{ min-height:170px; resize:vertical; }
.bw-cms-content form .actions{ margin-top:1.6rem; }
.bw-cms-content form button,
.bw-cms-content form input[type="submit"]{ font:inherit; font-weight:600; cursor:pointer;
  background:var(--bw-brand-solid); color:#fff; border:0; border-radius:var(--bw-r); padding:.85rem 1.35rem; }
.bw-cms-content form button:hover{ background:var(--bw-brand-2); }
.bw-cms-content form .required{ color:var(--bw-brand); margin-left:.15rem; }
.bw-cms-content form .is-invalid,
.bw-cms-content form .is-invalid:focus{ outline-color:var(--bw-error); border-color:var(--bw-error); }
.bw-cms-content form .help-block,
.bw-cms-content form .error{ color:var(--bw-error); font-size:.94rem; margin-top:.3rem; }

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.bw-site-footer{ background:var(--bw-band); border-top:1px solid var(--bw-line); }
.bw-footer-grid{ display:grid; grid-template-columns:1.7fr 1fr 1fr 1fr; gap:clamp(1.6rem,3vw,3rem);
                 padding-block:clamp(3rem,5vw,4.5rem); }
.bw-footer-logo{ height:30px; width:auto; filter:var(--bw-logo-filter); }
.bw-footer-claim{ margin-top:.9rem; color:var(--bw-muted); font-size:.94rem; max-width:34ch; }
.bw-site-footer h2{ font-family:var(--bw-mono); font-size:.66rem; font-weight:600; letter-spacing:.16em;
                    text-transform:uppercase; color:var(--bw-muted); margin-bottom:.9rem; }
.bw-site-footer ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.45rem; }
.bw-site-footer li a,.bw-footer-link-button{ font-size:.94rem; color:var(--bw-ink); }
.bw-site-footer li a:hover,.bw-footer-link-button:hover{ color:var(--bw-brand); }
.bw-footer-link-button{ background:none; border:0; padding:0; font:inherit; cursor:pointer; text-align:left; }
.bw-footer-base{ border-top:1px solid var(--bw-line); padding-block:1.2rem; display:flex; flex-wrap:wrap;
                 justify-content:space-between; gap:.6rem; font-family:var(--bw-mono); font-size:.64rem;
                 letter-spacing:.12em; text-transform:uppercase; color:var(--bw-muted); }
@media (max-width:820px){ .bw-footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .bw-footer-grid{ grid-template-columns:1fr; } }

/* --------------------------------------------------------------------------
   Seite nicht gefunden — Bildmarke gespiegelt, sonst nichts
   -------------------------------------------------------------------------- */
.bw-notfound-head{ display:flex; flex-wrap:wrap; align-items:center; gap:clamp(1.2rem,3vw,2.4rem); }
.bw-notfound-mark{ width:clamp(64px,9vw,104px); height:auto; flex:none; transform:scaleX(-1); border-radius:var(--bw-r); }
.bw-notfound-links{ margin-top:clamp(2rem,4vw,3rem); }
.bw-lanes--compact .bw-lane{ grid-template-columns:minmax(0,1fr) auto; padding-block:clamp(1rem,2vw,1.4rem); }

/* --------------------------------------------------------------------------
   Consent
   -------------------------------------------------------------------------- */
/* Sichtbarkeit haengt am hidden-Attribut, das main.js schaltet. */
.bw-consent{ position:fixed; inset:auto 0 0 0; z-index:200; padding:var(--bw-edge); }
.bw-consent[hidden]{ display:none; }
.bw-consent-panel{ max-width:640px; margin-inline:auto; background:var(--bw-sheet); border:1px solid var(--bw-line-2);
                   border-radius:var(--bw-r); padding:1.6rem 1.8rem; }
.bw-consent-panel h2{ font-size:1.35rem; margin-bottom:.7rem; }
.bw-consent-copy p{ margin-bottom:.7rem; color:var(--bw-muted); font-size:.94rem; }
.bw-consent-links{ margin-top:.4rem; }
.bw-consent-links a{ color:var(--bw-brand); text-decoration:underline; text-underline-offset:2px; font-size:.94rem; }
.bw-consent-actions{ display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.2rem; }

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
