/* ==========================================================
   raumrent.de – Gestaltung
   1 Schrift  2 Tokens  3 Basis  4 Layout  5 Kopf & Menü
   6 Bausteine  7 Startseite  8 Unterseiten  9 Kontakt
   10 Fuß  11 Rechtstexte  12 Bewegung  13 Druck
   ========================================================== */

/* 1 ─ Schrift: Noto Sans, variabel, lokal (keine Google-Server) */
@font-face{font-family:"Noto Sans";font-style:normal;font-weight:100 900;font-stretch:62.5% 100%;font-display:swap;src:url("../fonts/noto-sans-v42-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Noto Sans";font-style:normal;font-weight:100 900;font-stretch:62.5% 100%;font-display:swap;src:url("../fonts/noto-sans-v42-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* 2 ─ Tokens
   Typo-Skala: Perfect Fourth (1.333). Alle Größen fluide per clamp()
   zwischen 22.5rem (360 px) und 90rem (1440 px).
   Desktop-Werte = Vorgabe (h1 5.61 … p 1, small .75, xs .563 rem).
   Mobil staucht sich die Skala auf halbe Schritte (√1.333 ≈ 1.155):
   Überschriften werden kleiner, Klein- und Kleinsttext etwas größer,
   damit sie auf dem Telefon lesbar bleiben.

   Breakpoints (in em, damit sie mit der Schriftgröße mitwachsen):
   30em  480 px  große Telefone, Querformat
   48em  768 px  Tablets hochkant (768–834 px)
   64em 1024 px  Tablets quer, kleine Laptops (1024–1280 px)
   80em 1280 px  Laptops (1280–1366 px) – volle Navigation
   90em 1440 px  Desktop – Typo erreicht Maximalwerte, Inhalt max. 1344 px
   Grundlage: StatCounter Deutschland, Sept. 2026 (Telefone 360–414 px,
   Tablets 768–1280 px, Desktop 1366–2560 px). */
:root{
  /* Farben aus README_RAUMRENT */
  --blue:#005ca8;
  --blue-light:#668fca;
  --grey:#a6b3ba;
  /* abgeleitet */
  --blue-deep:#00477f;   /* Hover auf Blau */
  --blue-tint:#e8f0f8;   /* gewählte Optionen */
  --ink:#10263d;         /* Text, aus dem Blau abgeleitet (14:1 auf Weiß) */
  --ink-soft:#4b5b69;    /* Nebentext (7:1 auf Weiß) */
  --mist:#eef2f4;        /* helle Fläche, aus dem Grau abgeleitet */
  --line:#d5dce0;        /* Linien, Rahmen */
  --paper:#fff;

  /* Schrift */
  --font:"Noto Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --fs-h1:clamp(2.369rem, 1.2887rem + 4.8015vw, 5.61rem);
  --fs-h2:clamp(2.052rem, 1.3330rem + 3.1956vw, 4.209rem);
  --fs-h3:clamp(1.777rem, 1.3170rem + 2.0444vw, 3.157rem);
  --fs-h4:clamp(1.539rem, 1.2623rem + 1.2296vw, 2.369rem);
  --fs-h5:clamp(1.333rem, 1.1850rem + 0.6578vw, 1.777rem);
  --fs-h6:clamp(1.155rem, 1.0957rem + 0.2637vw, 1.333rem);
  --fs-p:clamp(0.938rem, 0.9173rem + 0.0919vw, 1rem);
  --fs-small:clamp(0.75rem, 0.8327rem - 0.0919vw, 0.8125rem);
  --fs-xs:clamp(0.563rem, 0.7297rem - 0.1852vw, 0.6875rem);
  /* Formularfelder: nie unter 16 px, sonst zoomt iOS beim Antippen */
  --fs-input:clamp(1rem, 0.9792rem + 0.0926vw, 1.0625rem);

  /* Raster & Abstände */
  --max:84rem;
  --gutter:clamp(1rem, 0.3333rem + 2.9630vw, 3rem);
  --space-3xs:clamp(0.25rem, 0.2083rem + 0.1852vw, 0.375rem);
  --space-2xs:clamp(0.5rem, 0.4167rem + 0.3704vw, 0.75rem);
  --space-xs:clamp(0.75rem, 0.6667rem + 0.3704vw, 1rem);
  --space-s:clamp(1rem, 0.8333rem + 0.7407vw, 1.5rem);
  --space-m:clamp(1.5rem, 1.2500rem + 1.1111vw, 2.25rem);
  --space-l:clamp(2rem, 1.5000rem + 2.2222vw, 3.5rem);
  --space-xl:clamp(3rem, 2.3333rem + 2.9630vw, 5rem);
  --space-2xl:clamp(4rem, 2.6667rem + 5.9259vw, 8rem);
  --header-h:clamp(4rem, 3.5833rem + 1.8519vw, 5.25rem);
  --logo-w:clamp(7.5rem, 6.5000rem + 4.4444vw, 10.5rem);
  --radius:.125rem;   /* wie die Ecken des Logo-Quadrats */
  --seam:3px;         /* Fuge zwischen Modulen */

  /* Logo-Farben (Kopf: blau, Fuß: weiß) */
  --logo-a:var(--blue);
  --logo-b:var(--blue-light);
  --logo-c:var(--grey);
}

/* 3 ─ Basis */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + var(--space-s))}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:var(--fs-p);line-height:1.6;font-kerning:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body.menu-open{overflow:hidden}
img,svg,picture{display:block;max-width:100%}
img{height:auto}
h1,h2,h3,h4,h5,h6{margin:0;font-weight:700;color:inherit;text-wrap:balance;overflow-wrap:break-word;hyphens:manual}
h1{font-size:var(--fs-h1);line-height:1.02;letter-spacing:-.025em}
h2{font-size:var(--fs-h2);line-height:1.06;letter-spacing:-.02em}
h3{font-size:var(--fs-h3);line-height:1.1;letter-spacing:-.015em}
h4{font-size:var(--fs-h4);line-height:1.18;letter-spacing:-.01em}
h5{font-size:var(--fs-h5);line-height:1.25;font-weight:600}
h6{font-size:var(--fs-h6);line-height:1.3;font-weight:600}
p,ul,ol,figure{margin:0}
small,.t-small{font-size:var(--fs-small);line-height:1.5}
.t-xs{font-size:var(--fs-xs);line-height:1.45}
strong,b{font-weight:700}
a{color:var(--blue);text-decoration-thickness:.08em;text-underline-offset:.22em}
a:hover{color:var(--blue-deep)}
:focus-visible{outline:3px solid var(--blue-light);outline-offset:3px}
.section--blue :focus-visible,.cta-panel :focus-visible,.site-footer :focus-visible,.sticker :focus-visible{outline-color:#fff}
.sr-only{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:var(--gutter);top:-4rem;z-index:100;background:var(--ink);color:#fff;padding:.75em 1em;font-weight:600;font-size:var(--fs-p)}
.skip-link:focus{top:var(--space-2xs);color:#fff}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.l-a{fill:var(--logo-a)}
.l-b{fill:var(--logo-b)}
.l-c{fill:var(--logo-c)}
.icon{width:1.15em;height:1.15em;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter}

/* 4 ─ Layout */
.wrap{width:min(100% - 2 * var(--gutter), var(--max));margin-inline:auto}
.section{padding-block:var(--space-2xl)}
.section--mist{background:var(--mist)}
.section--blue{background:var(--blue);color:#fff}
.section--blue a{color:#fff}
.section + .section--tight,.hero + .section,.page-hero + .section:not(.section--mist){padding-top:0}
.section-title{font-size:var(--fs-h3)}

/* 5 ─ Kopf & Menü */
.site-header{position:sticky;top:0;z-index:40;background:var(--paper);border-bottom:1px solid transparent;transition:border-color .2s ease}
.site-header[data-scrolled]{border-bottom-color:var(--line)}
.site-header .wrap{display:flex;align-items:center;gap:var(--space-s);min-height:var(--header-h)}
.brand{display:block;flex:none;width:var(--logo-w);margin-right:auto;line-height:0}
.brand svg{width:100%;height:auto}
.nav{display:none}
.nav ul{display:flex;align-items:center;gap:clamp(1rem, -1.6667rem + 3.3333vw, 2rem);list-style:none;margin:0;padding:0}
.nav a{display:block;padding-block:.5em;font-size:var(--fs-p);font-weight:600;line-height:1.2;color:var(--ink);text-decoration:none;white-space:nowrap;background:linear-gradient(var(--blue),var(--blue)) 0 100%/0 2px no-repeat;transition:background-size .2s ease,color .2s ease}
.nav a:hover,.nav a[aria-current="page"]{color:var(--blue);background-size:100% 2px}
.header-call{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;color:var(--blue);border:2px solid var(--line);border-radius:var(--radius)}
.header-call:hover{border-color:var(--blue)}
.menu-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;height:2.75rem;padding:0 .9em;font:inherit;font-size:var(--fs-p);font-weight:600;color:#fff;background:var(--blue);border:0;border-radius:var(--radius);cursor:pointer}
.menu-btn:hover{background:var(--blue-deep)}
.menu-btn .i-close,.menu-btn[aria-expanded="true"] .i-menu{display:none}
.menu-btn[aria-expanded="true"] .i-close{display:block}
.site-header .header-cta{display:none}
@media (min-width:80em){
  .nav{display:block}
  .menu-btn,.header-call{display:none}
  .site-header .header-cta{display:inline-flex}
}
.mnav{position:fixed;inset:var(--header-h) 0 0;z-index:39;overflow-y:auto;background:var(--paper);border-top:1px solid var(--line)}
.mnav[hidden]{display:none}
.mnav .wrap{display:grid;gap:var(--space-l);padding-block:var(--space-m) calc(var(--space-xl) + env(safe-area-inset-bottom,0px))}
.mnav ul{list-style:none;margin:0;padding:0;display:grid}
.mnav li + li{border-top:1px solid var(--line)}
.mnav li a{display:block;padding-block:.55em;font-size:var(--fs-h5);font-weight:600;color:var(--ink);text-decoration:none}
.mnav li a[aria-current="page"]{color:var(--blue)}
.mnav__contact .btn{justify-content:flex-start}
.mnav__contact{display:grid;gap:var(--space-2xs)}
@media (min-width:80em){.mnav{display:none!important}}

/* 6 ─ Bausteine */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;padding:.9em 1.3em;font:inherit;font-size:var(--fs-p);font-weight:600;line-height:1.2;text-align:center;text-decoration:none;color:#fff;background:var(--blue);border:2px solid var(--blue);border-radius:var(--radius);cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease}
.btn:hover{color:#fff;background:var(--blue-deep);border-color:var(--blue-deep)}
.btn--ghost{color:var(--blue);background:transparent;border-color:var(--line)}
.btn--ghost:hover{color:var(--blue);background:transparent;border-color:var(--blue)}
.btn--light{color:var(--blue);background:#fff;border-color:#fff}
.btn--light:hover{color:var(--blue-deep);background:var(--mist);border-color:var(--mist)}
.actions{display:flex;flex-wrap:wrap;gap:var(--space-2xs)}
@media (max-width:29.99em){.actions .btn{width:100%}}

.statement{font-size:var(--fs-h4);font-weight:600;line-height:1.22;letter-spacing:-.012em;max-width:28em;text-wrap:pretty}
.lead{font-size:var(--fs-h6);line-height:1.5;max-width:36em}
.prose{max-width:40em}
.prose > * + *{margin-top:1em}
.prose h2{font-size:var(--fs-h4);margin-top:var(--space-l)}
.prose h3{font-size:var(--fs-h6);margin-top:var(--space-m)}
.prose ul{padding-left:1.2em}

/* Quadrat-Marke aus dem Logo, als Aufzählungszeichen */
.squares{list-style:none;margin:0;padding:0}
.squares li{position:relative;padding-left:1.6em}
.squares li::before{content:"";position:absolute;left:0;top:.42em;width:.8em;height:.8em;border:.14em solid var(--blue);border-radius:.06em}

/* Bildkacheln mit Beschriftung */
.tiles{list-style:none;margin:var(--space-xl) 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-l) var(--space-s)}
@media (min-width:64em){.tiles{grid-template-columns:repeat(4,minmax(0,1fr))}}
.tile img{width:100%;aspect-ratio:1;object-fit:cover;background:var(--mist)}
.tile figcaption{margin-top:var(--space-xs);font-size:var(--fs-h6);font-weight:600;line-height:1.25}

/* Module: verlinkte Containerarten, Fuge wie zwischen Containern */
.modules{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--seam)}
.modules a{position:relative;display:block;color:#fff;text-decoration:none;background:var(--mist)}
.modules img{width:100%;aspect-ratio:1;object-fit:cover}
.tag{position:absolute;left:0;bottom:0;max-width:calc(100% - var(--space-xs));padding:.6em .85em;font-size:var(--fs-small);font-weight:600;line-height:1.25;color:#fff;background:var(--blue);transition:background-color .15s ease}
.modules a:hover .tag,.modules a:focus-visible .tag{background:var(--blue-deep)}
.modules a:focus-visible{outline-offset:-3px}
@media (min-width:48em){.tag{font-size:var(--fs-p)}}
.modules--3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:47.99em){.modules--3{grid-template-columns:minmax(0,1fr)}.modules--3 img{aspect-ratio:16/9}}

/* 7 ─ Startseite */
.hero{padding-bottom:var(--space-2xl)}
.hero__media{height:clamp(16rem, 9rem + 34vw, 44rem);overflow:hidden;background:var(--mist)}
.hero__media picture,.hero__media img{width:100%;height:100%}
.hero__media img{object-fit:cover;object-position:62% 55%}
.hero__body{display:grid;gap:var(--space-m)}
@media (min-width:64em){.hero__body{grid-template-columns:auto minmax(0,1fr);column-gap:var(--space-xl);align-items:start}}

/* Der blaue „Aufkleber“: Quadrat wie auf den Containern, Größe folgt der Schrift.
   min-width hält die Kante bei 6.86em (so breit wie früher „quadratisch,“), auch wenn der Claim kürzer ist */
.sticker{--overlap:2.1em;position:relative;z-index:1;display:flex;flex-direction:column;justify-content:space-between;gap:1em;width:max-content;min-width:6.86em;max-width:100%;aspect-ratio:1;margin-top:calc(-1 * var(--overlap));padding:.42em .5em .5em;font-size:var(--fs-h2);color:#fff;background:var(--blue);border-radius:.035em}
@media (min-width:48em){.sticker{--overlap:3.1em}}
.sticker__brand{font-size:var(--fs-h6);font-weight:600;line-height:1.2;letter-spacing:0}
.sticker__claim{font-size:var(--fs-h2);font-weight:700;line-height:1.02;letter-spacing:-.03em}
.sticker__claim span{display:block}
.hero__lead{display:grid;gap:var(--space-m);align-content:start}
@media (min-width:64em){.hero__lead{padding-top:var(--space-l)}}
.hero__lead h1{font-size:var(--fs-h4);font-weight:600;line-height:1.22;letter-spacing:-.012em;max-width:22em;text-wrap:pretty}

.zubehoer{list-style:none;margin:var(--space-xl) 0 0;padding:0;display:grid;gap:var(--space-s)}
.zubehoer li{display:grid;grid-template-columns:clamp(5.5rem, 4rem + 8vw, 7rem) minmax(0,1fr);align-items:center;gap:var(--space-s)}
.zubehoer img{width:100%;aspect-ratio:1;object-fit:cover;background:var(--mist)}
.zubehoer span{font-size:var(--fs-h6);font-weight:600;line-height:1.25}
@media (min-width:48em){
  .zubehoer{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-l) var(--space-s)}
  .zubehoer li{grid-template-columns:minmax(0,1fr);align-items:start;gap:var(--space-xs)}
}

.focus{display:grid;gap:var(--space-xl);align-items:center}
@media (min-width:48em){.focus{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}}
.focus .statement{font-size:var(--fs-h3);line-height:1.14;max-width:16em}
.focus__media img{width:100%;aspect-ratio:4/5;object-fit:cover}

.split{display:grid;gap:var(--space-xl)}
@media (min-width:64em){.split{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start}}

.options{display:grid;gap:var(--space-xl) var(--space-l);margin-top:var(--space-xl)}
@media (min-width:48em){.options{grid-template-columns:repeat(2,minmax(0,1fr))}}
.option{display:grid;gap:var(--space-xs);align-content:start}
.option img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--mist)}
.option h3{margin-top:var(--space-2xs);font-size:var(--fs-h5)}
.doc-link{display:inline-flex;align-items:flex-start;gap:.55em;font-size:var(--fs-p);font-weight:600;line-height:1.4}
.doc-link .icon{margin-top:.12em}

.contact-teaser .wrap{display:grid;gap:var(--space-l)}
@media (min-width:64em){.contact-teaser .wrap{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:end}}
.contact-teaser h2{font-size:var(--fs-h2)}
.contact-teaser__head{display:grid;gap:var(--space-s)}
.contact-teaser__reach{display:grid;gap:var(--space-m);justify-items:start}
.person{display:grid;gap:.15em;font-size:var(--fs-h6);line-height:1.4}
.person__name{font-weight:600}
.reach{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2xs)}
.reach a{display:inline-flex;align-items:center;gap:.5em;font-size:var(--fs-h4);font-weight:600;line-height:1.2;text-decoration:none;overflow-wrap:anywhere}
.reach a:hover{text-decoration:underline}
.reach .icon{width:.8em;height:.8em}

/* 8 ─ Unterseiten */
.crumbs{padding-block:var(--space-m) var(--space-xs)}
.crumbs ol{display:flex;flex-wrap:wrap;gap:.4em;list-style:none;margin:0;padding:0;font-size:var(--fs-small);color:var(--ink-soft)}
.crumbs li + li::before{content:"/";margin-right:.4em;color:var(--grey)}
.crumbs a{color:inherit}
.page-hero{padding-block:var(--space-l) var(--space-2xl)}
.page-hero h1{font-size:var(--fs-h2);max-width:16em;hyphens:auto;hyphenate-limit-chars:10 4 4}
.page-hero__grid{display:grid;gap:var(--space-l);margin-top:var(--space-l)}
@media (min-width:48em){.page-hero__grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start}}
.page-hero__text{display:grid;gap:var(--space-m);align-content:start}
.page-hero__media img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--mist)}

.feature{display:grid;gap:var(--space-l)}
@media (min-width:64em){.feature{grid-template-columns:minmax(0,6fr) minmax(0,6fr);align-items:center;column-gap:var(--space-xl)}}
.feature h2{font-size:var(--fs-h3)}
.feature__text{display:grid;gap:var(--space-s);align-content:start}
.feature__media img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--mist)}

.benefits-head{font-size:var(--fs-h3)}
.benefits{list-style:none;margin:var(--space-l) 0 0;padding:0;display:grid;gap:var(--space-m) var(--space-l)}
@media (min-width:48em){.benefits{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:80em){.benefits{grid-template-columns:repeat(3,minmax(0,1fr))}}
.benefits li{position:relative;padding-top:calc(.8rem + var(--space-xs));font-size:var(--fs-p)}
.benefits li::before{content:"";position:absolute;left:0;top:0;width:.8rem;height:.8rem;border:2.5px solid var(--blue);border-radius:1px}
.benefits strong{display:block;font-size:var(--fs-h6);line-height:1.3;margin-bottom:.25em}

.choose{display:grid;gap:var(--space-s);max-width:44em}
.choose h2{font-size:var(--fs-h3)}

.cta-panel{display:grid;gap:var(--space-m);padding:var(--space-xl) clamp(1.25rem, 0.25rem + 4.4444vw, 4rem);background:var(--blue);color:#fff;border-radius:var(--radius)}
.cta-panel h2{font-size:var(--fs-h3);max-width:18em}
.cta-panel p{font-size:var(--fs-h6);line-height:1.5;max-width:40em}
.cta-panel .cta-link{justify-self:start;display:inline-flex;align-items:center;gap:.5em;font-size:var(--fs-h5);font-weight:700;line-height:1.3;color:#fff;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.25em}
.cta-panel .cta-link:hover{color:#fff;text-decoration-color:var(--blue-light)}

.more h2{font-size:var(--fs-h4);margin-bottom:var(--space-l)}

/* 9 ─ Kontakt */
.contact-page{padding-bottom:var(--space-2xl)}
.contact-page h1{font-size:var(--fs-h2)}
.contact-page__grid{display:grid;gap:var(--space-xl);margin-top:var(--space-l)}
@media (min-width:64em){.contact-page__grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start}}
.contact-card{display:grid;gap:var(--space-m);padding:var(--space-l);background:var(--mist);border-radius:var(--radius)}
@media (min-width:64em){.contact-card{position:sticky;top:calc(var(--header-h) + var(--space-m))}}
.contact-card .reach a{font-size:var(--fs-h6);overflow-wrap:normal}
.address{font-style:normal;font-size:var(--fs-p);line-height:1.6}
.address strong{display:block}

.form{display:grid;gap:var(--space-l)}
.form fieldset{margin:0;padding:0;border:0;min-width:0}
.form legend,.field label{display:block;margin-bottom:.6em;padding:0;font-size:var(--fs-p);font-weight:700;line-height:1.3}
.form legend .t-small,.field label .t-small{font-weight:400;color:var(--ink-soft)}
.choices{display:grid;gap:var(--space-2xs);grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr))}
.choice{display:flex;align-items:center;gap:.75em;padding:.85em 1em;font-size:var(--fs-p);font-weight:600;line-height:1.3;border:2px solid var(--line);border-radius:var(--radius);cursor:pointer;transition:border-color .15s ease,background-color .15s ease}
.choice:hover{border-color:var(--blue-light)}
.choice:has(input:checked){border-color:var(--blue);background:var(--blue-tint)}
.choice:has(input:focus-visible){outline:3px solid var(--blue-light);outline-offset:2px}
.choice input{flex:none;width:1.2em;height:1.2em;margin:0;accent-color:var(--blue)}
.fields{display:grid;gap:var(--space-s)}
@media (min-width:48em){.fields--2{grid-template-columns:repeat(2,minmax(0,1fr))}}
.field input,.field textarea{display:block;width:100%;padding:.8em .95em;font:inherit;font-size:var(--fs-input);line-height:1.4;color:var(--ink);background:#fff;border:2px solid var(--line);border-radius:var(--radius);transition:border-color .15s ease}
.field textarea{min-height:9rem;resize:vertical}
.field input:hover,.field textarea:hover{border-color:var(--grey)}
.field input:focus,.field textarea:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px var(--blue-tint)}
.field input:user-invalid,.field textarea:user-invalid{border-color:#b3261e}
.req{color:var(--blue)}
.form__foot{display:grid;gap:var(--space-s);justify-items:start}
.form__note{font-size:var(--fs-small);line-height:1.55;color:var(--ink-soft);max-width:40em}
.form__error{font-size:var(--fs-p);font-weight:600;color:#b3261e}
.form__error:empty{display:none}
.fallback{display:grid;gap:var(--space-s);padding:var(--space-m);border:2px solid var(--blue);border-radius:var(--radius)}
.fallback[hidden]{display:none}
.fallback p{font-size:var(--fs-p)}
.fallback pre{margin:0;padding:var(--space-s);font-family:var(--font);font-size:var(--fs-small);line-height:1.55;white-space:pre-wrap;background:var(--mist);max-height:16rem;overflow:auto}

/* 10 ─ Fuß */
.site-footer{--logo-a:#fff;padding-block:var(--space-xl) var(--space-m);color:#fff;background:var(--blue)}
.site-footer a{color:#fff;text-decoration-color:rgba(255,255,255,.45)}
.site-footer a:hover{color:#fff;text-decoration-color:#fff}
.footer__grid{display:grid;gap:var(--space-l)}
@media (min-width:48em){.footer__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:80em){.footer__grid{grid-template-columns:minmax(0,4fr) repeat(3,minmax(0,3fr))}}
.footer__brand{display:grid;gap:var(--space-s);align-content:start}
.footer__brand a{display:block;width:var(--logo-w);line-height:0}
.footer__claim{font-size:var(--fs-h6);font-weight:600;line-height:1.35;max-width:14em}
.footer__col h2{margin-bottom:var(--space-2xs);font-size:var(--fs-p);font-weight:700;letter-spacing:0;color:rgba(255,255,255,.75)}
.footer__col ul{list-style:none;margin:0;padding:0;display:grid;gap:.35em}
.footer__col li,.footer__col p{font-size:var(--fs-p);line-height:1.5}
.footer__bottom{display:flex;flex-wrap:wrap;gap:var(--space-3xs) var(--space-m);margin-top:var(--space-xl);padding-top:var(--space-s);border-top:1px solid rgba(255,255,255,.25);font-size:var(--fs-small);color:rgba(255,255,255,.85)}

/* 11 ─ Rechtstexte & 404 */
.legal{padding-bottom:var(--space-2xl)}
.legal h1{font-size:var(--fs-h2)}
.legal .prose{margin-top:var(--space-l)}
.legal{--gt-credit-space:var(--space-xl)} /* Grafitecture-Feld unter dem Text, siehe Abschnitt 14 */
.notfound{padding-block:var(--space-2xl)}
.notfound h1{font-size:var(--fs-h2)}
.notfound .actions{margin-top:var(--space-l)}

/* 12 ─ Bewegung: ein Moment – der Aufkleber wird aufgesetzt */
@media (prefers-reduced-motion:no-preference){
  .sticker{animation:stick .75s cubic-bezier(.2,.75,.25,1) .15s both;transform-origin:0 100%}
  @keyframes stick{from{opacity:0;transform:translateY(.3em) rotate(-2.5deg)}to{opacity:1;transform:none}}
}

/* 13 ─ Druck */
@media print{
  .site-header,.mnav,.skip-link,.form,.cta-panel .cta-link{display:none!important}
  .section,.page-hero{padding-block:1.5rem}
  .site-footer{color:#000;background:none}
  .site-footer a{color:#000}
  a{color:#000}
}

/* 14 ─ Grafitecture-Feld (ganz unten in Impressum und Datenschutz)
   Unverändert aus dem Kit grafitecture/lannee_webseite → kit/grafitecture-credit/ (README dort).
   Farben und Schriftgrößen der Agentur: bewusste Ausnahme von den Token-Regeln dieser Seite. */
/*
 * Grafitecture-Feld · Kit v1.2 (31.10.2026)
 * ------------------------------------------------------------------------
 * Ein Feld in Grafitecture-Lime #dafd55 mit Logo, Slogan „Marken mit KI.“ und
 * Link auf https://www.grafitecture.de/ (neues Fenster). Für jede Website, die
 * Grafitecture entworfen hat, technisch betreut und weiterentwickelt.
 * Platz: immer ganz unten in Impressum und Datenschutz.
 *
 * Farben nach den Regeln von grafitecture.de: Fläche Lime #dafd55 im vollen Ton,
 * Schrift und Logo #435960 (6,4 : 1), Linien auf der Fläche weiß, beim Darüber-
 * fahren werden Logo und Link weiß. Eckig, nichts unterlegt.
 *
 * Bewusst unabhängig von der Website, in der das Feld steht: eigene Farben, eigene
 * Abstände (Container-Einheiten, das Feld richtet sich nach seiner eigenen Breite),
 * Selektoren mit zwei Klassen, damit Regeln wie `.legal p + p` nicht durchschlagen.
 * Schrift: die Textschrift der Website (`--gt-credit-font` zum Überschreiben).
 * Kein Skript, kein Inline-Style, keine externen Requests (CSP `'self'` genügt).
 *
 * Stellschrauben (optional, auf .gt-credit oder einem Elternelement setzen):
 *   --gt-credit-font   Schrift            (Standard: geerbt)
 *   --gt-credit-space  Abstand nach oben  (Standard: 4rem)
 *   --gt-credit-max    größte Breite      (Standard: 25.2rem = 403 px; v1.2, vorher 36rem, davor volle Spaltenbreite)
 */

.gt-credit {
  --gt-lime: #dafd55;
  --gt-ink: #435960;
  --gt-white: #fff;
  container-type: inline-size;
  position: relative;
  display: block;
  box-sizing: border-box;
  max-width: var(--gt-credit-max, 25.2rem);
  margin: var(--gt-credit-space, 4rem) 0 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: var(--gt-lime);
  color: var(--gt-ink);
  font-family: var(--gt-credit-font, inherit);
  font-size: 1rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0;
  text-align: left;
  text-transform: none;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

.gt-credit .gt-credit__in {
  padding: 1.5rem;
  padding: clamp(1.25rem, 5.5cqi, 3rem);
}

.gt-credit .gt-credit__by,
.gt-credit .gt-credit__claim,
.gt-credit .gt-credit__go {
  max-width: none;
  margin: 0;
  padding: 0;
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  text-transform: none;
}

/* „Entworfen, technisch betreut und weiterentwickelt von“ + Logo: ein Satz */
.gt-credit .gt-credit__lead {
  display: block;
  font-size: 0.9375rem;
  font-size: clamp(0.8125rem, 2.1cqi, 1.0625rem);
  line-height: 1.35;
  text-wrap: balance;
}
.gt-credit .gt-credit__logo {
  display: block;
  margin-top: 0.875rem;
  margin-top: clamp(0.625rem, 2.4cqi, 1.25rem);
  color: var(--gt-ink);
}
.gt-credit .gt-credit__logo svg {
  display: block;
  width: auto;
  max-width: 100%;
  height: 2.75rem;
  height: clamp(1.75rem, 8cqi, 3.75rem);
  fill: currentColor;
}

/* Linie (weiß auf Lime), darunter Slogan und Link */
.gt-credit .gt-credit__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.75rem 2rem;
  margin-top: 2rem;
  margin-top: clamp(1.5rem, 6cqi, 3rem);
  padding-top: 0.875rem;
  padding-top: clamp(0.75rem, 2cqi, 1.125rem);
  border-top: 1px solid var(--gt-white);
}
.gt-credit .gt-credit__claim {
  font-size: 1.75rem;
  font-size: clamp(1.25rem, 4.6cqi, 2.618rem);
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: -0.015em;
}
.gt-credit .gt-credit__go {
  font-size: 0.9375rem;
  font-size: clamp(0.875rem, 2.1cqi, 1.0625rem);
  font-weight: 500;
  line-height: 1.2;
}

.gt-credit .gt-credit__link {
  display: inline-flex;
  align-items: center;
  gap: 0.6em;
  min-height: 44px;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  box-shadow: none;
  color: var(--gt-ink);
  font: inherit;
  text-decoration: none;
  outline: none;
}
/* das ganze Feld ist klickbar, ein einziger Link */
.gt-credit .gt-credit__link::after {
  content: "";
  position: absolute;
  inset: 0;
}
.gt-credit .gt-credit__link:focus-visible::after {
  outline: 2px solid var(--gt-ink);
  outline-offset: -6px;
}
.gt-credit .gt-credit__arrow {
  display: block;
  flex: none;
  width: 1.375em;
  height: auto;
  stroke: currentColor;
}

.gt-credit .gt-credit__sr {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* Mouse-over wie auf den Lime-Flächen von grafitecture.de: Logo und Link werden weiß */
@media (hover: hover) {
  .gt-credit .gt-credit__logo,
  .gt-credit .gt-credit__link {
    transition: color 0.2s ease;
  }
  .gt-credit .gt-credit__arrow {
    transition: transform 0.2s ease;
  }
  .gt-credit:hover .gt-credit__logo,
  .gt-credit:hover .gt-credit__link {
    color: var(--gt-white);
  }
  .gt-credit:hover .gt-credit__arrow {
    transform: translateX(4px);
  }
}
@media (prefers-reduced-motion: reduce) {
  .gt-credit .gt-credit__logo,
  .gt-credit .gt-credit__link,
  .gt-credit .gt-credit__arrow {
    transition: none;
  }
  .gt-credit:hover .gt-credit__arrow {
    transform: none;
  }
}

/* Hoher Kontrast (Windows): Rahmen statt Fläche */
@media (forced-colors: active) {
  .gt-credit {
    border: 1px solid CanvasText;
  }
  .gt-credit .gt-credit__foot {
    border-top-color: CanvasText;
  }
}
