/* =========================================================================
   Mr. Bike Lichtenfels – Design-System
   Statisches HTML/CSS/Vanilla-JS · kein Framework · keine externen Requests
   ========================================================================= */

/* ---------------------------------------------------------------- Fonts */
@font-face{font-family:'Sora';src:url('/assets/fonts/sora-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap;font-style:normal}
@font-face{font-family:'Sora';src:url('/assets/fonts/sora-latin-600-normal.woff2') format('woff2');font-weight:600;font-display:swap;font-style:normal}
@font-face{font-family:'Sora';src:url('/assets/fonts/sora-latin-700-normal.woff2') format('woff2');font-weight:700;font-display:swap;font-style:normal}
@font-face{font-family:'Sora';src:url('/assets/fonts/sora-latin-800-normal.woff2') format('woff2');font-weight:800;font-display:swap;font-style:normal}
@font-face{font-family:'Inter';src:url('/assets/fonts/inter-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap;font-style:normal}
@font-face{font-family:'Inter';src:url('/assets/fonts/inter-latin-500-normal.woff2') format('woff2');font-weight:500;font-display:swap;font-style:normal}
@font-face{font-family:'Inter';src:url('/assets/fonts/inter-latin-600-normal.woff2') format('woff2');font-weight:600;font-display:swap;font-style:normal}
@font-face{font-family:'Inter';src:url('/assets/fonts/inter-latin-700-normal.woff2') format('woff2');font-weight:700;font-display:swap;font-style:normal}

/* ---------------------------------------------------------------- Tokens */
:root{
  --ink:#0d0e11;
  --ink-2:#171a1f;
  --ink-3:#2a2f37;
  --paper:#fff;
  --sand:#f5f4f1;
  --sand-2:#ecebe6;
  --line:#e2e0da;
  --line-2:#cfccc4;
  --muted:#63676e;
  --accent:#009ef3;
  --marke:#1b9dd9;      /* Markenblau aus der Corporate-Design-Toolbox */
  --marke-tief:#0b5f85;
  --accent-deep:#0077c2;
  --accent-ink:#00405f;
  --sale:#e02b20;
  --ok:#127c4a;

  --shell:min(1280px,100% - 2.5rem);
  --shell-narrow:min(940px,100% - 2.5rem);
  --r:14px;
  --r-lg:22px;
  --shadow:0 1px 2px rgba(13,14,17,.05),0 12px 34px -18px rgba(13,14,17,.28);
  --shadow-lg:0 2px 6px rgba(13,14,17,.06),0 34px 70px -32px rgba(13,14,17,.4);
  --head:'Sora',system-ui,-apple-system,'Segoe UI',sans-serif;
  --body:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --nav-h:76px;
  --topbar-h:36px;
  --ease:cubic-bezier(.2,.7,.25,1);
}

/* ---------------------------------------------------------------- Reset */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
body{margin:0;font-family:var(--body);font-size:17px;line-height:1.65;color:var(--ink);background:var(--paper);
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
body.noscroll{overflow:hidden}
img{max-width:100%;height:auto;display:block}
/* Harte Bild-Deckel – Bilder nie größer als der Bildschirm (Playbook 5.25) */
.prose img,.rich img,figure img.cap{width:auto;max-width:100%;max-height:80vh;height:auto;margin-inline:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
h1,h2,h3,h4,h5{font-family:var(--head);font-weight:700;line-height:1.1;letter-spacing:-.02em;margin:0 0 .6em}
h1{font-size:clamp(2.3rem,5.4vw,4.1rem);font-weight:800;letter-spacing:-.035em}
h2{font-size:clamp(1.85rem,3.6vw,2.9rem);font-weight:700;letter-spacing:-.03em}
h3{font-size:clamp(1.25rem,2vw,1.6rem)}
h4{font-size:1.1rem}
p{margin:0 0 1.1em}
ul,ol{margin:0 0 1.2em;padding-left:1.25em}
li{margin:.3em 0}
hr{border:0;border-top:1px solid var(--line);margin:2.5rem 0}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:4px}
table{border-collapse:collapse;width:100%}
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;padding:.8rem 1.2rem;z-index:200}
.skip:focus{left:.6rem;top:.6rem}

/* ---------------------------------------------------------------- Layout */
.shell{width:var(--shell);margin-inline:auto}
.shell-narrow{width:var(--shell-narrow);margin-inline:auto}
.sec{padding:clamp(3.5rem,7vw,6.5rem) 0}
.sec--tight{padding:clamp(2.5rem,4vw,4rem) 0}
.sec--sand{background:var(--sand)}
.sec--ink{background:var(--ink);color:#fff}
.sec--ink h1,.sec--ink h2,.sec--ink h3{color:#fff}
.sec--ink .muted{color:#a9b0ba}
.center{text-align:center}
.muted{color:var(--muted)}
.grid{display:grid;gap:clamp(1rem,2vw,1.75rem)}
.g2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.g3{grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}
.g4{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}

/* Kicker / Eyebrow */
.kicker{font-family:var(--head);font-size:.72rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
  color:var(--accent-deep);margin:0 0 .9rem;display:block}
.sec--ink .kicker{color:var(--accent)}
.lede{font-size:clamp(1.1rem,1.7vw,1.35rem);line-height:1.55;color:var(--ink-3);max-width:60ch}
.sec--ink .lede{color:#c9cfd8}

/* ---------------------------------------------------------------- Buttons */
.btn{display:inline-flex;align-items:center;gap:.6rem;padding:.9rem 1.6rem;border-radius:999px;
  font-family:var(--head);font-weight:600;font-size:.95rem;letter-spacing:-.01em;border:1.5px solid transparent;
  cursor:pointer;transition:transform .18s var(--ease),background .18s var(--ease),color .18s var(--ease),box-shadow .18s var(--ease);
  background:var(--ink);color:#fff;text-align:center}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 26px -14px rgba(13,14,17,.7)}
.btn svg{width:1em;height:1em;flex:none}
.btn--accent{background:var(--accent);color:#04222f}
.btn--accent:hover{background:var(--accent-deep);color:#fff}
.btn--ghost{background:transparent;border-color:var(--line-2);color:var(--ink)}
.btn--ghost:hover{border-color:var(--ink);background:var(--ink);color:#fff}
.btn--light{background:#fff;color:var(--ink)}
.btn--light:hover{background:var(--accent);color:#04222f}
.btn--sm{padding:.6rem 1.1rem;font-size:.85rem}
.btn--block{width:100%;justify-content:center}
.arrow{transition:transform .18s var(--ease)}
.btn:hover .arrow{transform:translateX(3px)}

/* ---------------------------------------------------------------- Header */
.hdr{position:sticky;top:0;z-index:90;background:var(--paper);border-bottom:1px solid var(--line);
  transition:background .25s var(--ease),border-color .25s var(--ease)}
body.has-tophero .hdr{position:fixed;left:0;right:0;background:transparent;border-color:transparent}
body.has-tophero .hdr.is-solid{background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-color:var(--line)}
.hdr__in{width:var(--shell);margin-inline:auto;min-height:var(--nav-h);display:flex;align-items:center;gap:1.5rem}
.brand{display:flex;align-items:center;gap:.7rem;flex:none;padding:.5rem 0}
.brand__d,.brand__w{height:50px;width:auto}
.brand__w{display:none}
body.has-tophero .hdr:not(.is-solid) .brand__d{display:none}
body.has-tophero .hdr:not(.is-solid) .brand__w{display:block}
.nav{margin-left:auto;display:flex;align-items:center;gap:.05rem}
.nav a,.nav button.navtop{font-family:var(--head);font-size:.86rem;font-weight:600;padding:.55rem .6rem;border-radius:10px;
  background:none;border:0;cursor:pointer;color:var(--ink);white-space:nowrap;letter-spacing:-.01em}
@media (min-width:1500px){.nav a,.nav button.navtop{font-size:.92rem;padding:.55rem .78rem}}
body.has-tophero .hdr:not(.is-solid) .nav>a,
body.has-tophero .hdr:not(.is-solid) .nav button.navtop,
body.has-tophero .hdr:not(.is-solid) .burger{color:#fff}
/* Das Dropdown-Panel ist immer weiß – seine Links dürfen die helle
   Overlay-Nav-Farbe NICHT erben (sonst weiß auf weiß, unsichtbar). */
body.has-tophero .hdr .drop a{color:var(--ink)}
body.has-tophero .hdr .drop a.sub-indent{color:var(--ink-3)}
body.has-tophero .hdr .drop a.current{color:var(--accent-deep)}
.nav a:hover,.nav button.navtop:hover{background:rgba(0,0,0,.06)}
body.has-tophero .hdr:not(.is-solid) .nav>a:hover,
body.has-tophero .hdr:not(.is-solid) .nav button.navtop:hover{background:rgba(255,255,255,.16)}
body.has-tophero .hdr .drop a:hover{background:var(--sand);color:var(--ink)}
.nav a.current{color:var(--accent-deep)}
body.has-tophero .hdr:not(.is-solid) .nav>a.current{color:#8fd6ff}
.nav .btn{margin-left:.6rem;padding:.6rem 1.15rem}
.nav a.btn--accent{background:var(--accent);color:#04222f}
.nav a.btn--accent:hover{background:var(--accent-deep);color:#fff}
body.has-tophero .hdr:not(.is-solid) .nav>a.btn--accent{color:#04222f}
.has-drop{position:relative}
.has-drop::after{content:'';position:absolute;left:0;right:0;top:100%;height:.5rem}
.drop{position:absolute;top:calc(100% + .3rem);left:0;min-width:264px;background:#fff;border:1px solid var(--line);
  border-radius:var(--r);box-shadow:var(--shadow-lg);padding:.5rem;display:none;z-index:95}
.has-drop.open .drop{display:block}

/* Megamenue: das Panel geht in die Breite statt in die Tiefe */
.drop--mega{display:none;gap:.4rem 1.6rem;padding:1.1rem 1.3rem 1.2rem;
  grid-auto-flow:column;grid-auto-columns:minmax(190px,max-content)}
.has-drop.open .drop--mega{display:grid}
.drop__col{display:flex;flex-direction:column}
.drop--mega .grouphead{padding:.1rem .6rem .45rem;border-bottom:1px solid var(--line);margin-bottom:.35rem}
.drop--mega a{padding:.42rem .6rem}
.drop a.drop__sub{padding-left:1.7rem;font-size:.86rem;color:var(--ink-3)}
.drop a.drop__sub::before{content:'';position:absolute;margin-left:-.9rem;margin-top:.62em;
  width:6px;height:1px;background:var(--line-2)}
.mnav a.msub--tief{padding-left:2.4rem;font-size:.92rem;opacity:.85}
/* Panels am rechten Rand nach innen klappen */
.nav .has-drop:nth-last-child(-n+3) .drop--mega{left:auto;right:0}
.drop a{display:block;padding:.5rem .75rem;border-radius:9px;font-size:.9rem;color:var(--ink)}
.drop a:hover{background:var(--sand)}
.drop .grouphead{font-family:var(--head);font-weight:700;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);padding:.75rem .75rem .3rem}
.drop a.sub-indent{padding-left:1.6rem;color:var(--ink-3)}
.burger{display:none;margin-left:auto;background:none;border:0;padding:.5rem;cursor:pointer;color:var(--ink)}
.burger svg{width:26px;height:26px}
.mnav{position:fixed;inset:0;background:var(--ink);color:#fff;z-index:99;transform:translateY(-100%);
  transition:transform .3s var(--ease);overflow-y:auto;padding:5.5rem 0 3rem}
.mnav.open{transform:none}
.mnav a{display:block;font-family:var(--head);font-weight:600;font-size:1.15rem;padding:.6rem 0;border-bottom:1px solid rgba(255,255,255,.1)}
.mnav a.sub-indent{font-size:.98rem;padding-left:1.1rem;color:#b9c0ca;font-weight:500}
.mnav .grouphead{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin:1.4rem 0 .3rem;font-family:var(--head);font-weight:700}
.mclose{position:absolute;top:1.1rem;right:1.25rem;background:none;border:0;color:#fff;cursor:pointer;padding:.5rem}
.mclose svg{width:28px;height:28px}

/* Topbar */
.topbar{background:var(--ink);color:#e7eaee;font-size:.82rem}
.topbar__in{width:var(--shell);margin-inline:auto;display:flex;flex-wrap:wrap;gap:.4rem 1.6rem;padding:.55rem 0;align-items:center}
.topbar a:hover{color:var(--accent)}
.topbar .sep{margin-left:auto}
body.has-tophero .topbar{position:fixed;left:0;right:0;top:0;z-index:91;background:rgba(13,14,17,.62);backdrop-filter:blur(8px)}
body.has-tophero .hdr{top:var(--topbar-h)}

/* ---------------------------------------------------------------- Hero */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;
  color:#fff;overflow:hidden;isolation:isolate}
.hero--page{min-height:74vh;min-height:74svh}
.hero__bg{position:absolute;inset:0;z-index:-2}
.hero__bg img,.hero__bg video{width:100%;height:100%;object-fit:cover;max-height:none}
.hero::after{content:'';position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(13,14,17,.72) 0%,rgba(13,14,17,.38) 34%,rgba(13,14,17,.6) 68%,rgba(13,14,17,.94) 100%)}
.hero__in{width:var(--shell);margin-inline:auto;padding:calc(var(--nav-h) + var(--topbar-h) + 4rem) 0 clamp(3rem,6vw,5.5rem);position:relative}
.hero h1{margin:0 0 1rem;text-shadow:0 2px 30px rgba(0,0,0,.35);max-width:17ch}
.hero .kicker{color:#8fd6ff}
.hero__sub{font-size:clamp(1.05rem,1.7vw,1.35rem);max-width:52ch;color:#e6eaef;margin:0 0 2rem}
.hero__pills{display:flex;flex-wrap:wrap;gap:.75rem}
.pill{display:inline-flex;align-items:center;gap:.55rem;background:#fff;color:var(--ink);border-radius:999px;
  padding:.85rem 1.5rem;font-family:var(--head);font-weight:600;font-size:.95rem;
  box-shadow:0 10px 30px -14px rgba(0,0,0,.6);transition:transform .2s var(--ease),background .2s var(--ease)}
.pill:hover{transform:translateY(-3px);background:var(--accent);color:#04222f}
.pill .arrow{transition:transform .2s var(--ease)}
.pill:hover .arrow{transform:translateX(4px)}
.scrollcue{position:absolute;left:50%;bottom:1.4rem;translate:-50% 0;width:26px;height:42px;border:2px solid rgba(255,255,255,.55);
  border-radius:14px;z-index:2}
.scrollcue::after{content:'';position:absolute;left:50%;top:8px;translate:-50% 0;width:3px;height:8px;border-radius:2px;
  background:#fff;animation:cue 1.9s infinite}
@keyframes cue{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(14px)}}
.crumbs{font-size:.82rem;color:#c6ccd4;margin:0 0 1rem}
.crumbs a:hover{color:#fff}
.crumbs span{opacity:.6;padding:0 .35rem}

/* Flacher Seiten-Header ohne Bild */
.phead{background:var(--ink);color:#fff;padding:calc(var(--nav-h) + 3.5rem) 0 3.5rem}
.phead h1{margin:0 0 .6rem}

/* ---------------------------------------------------------------- Content-Blöcke */
.prose{max-width:74ch}
.prose h2{margin-top:2.4rem}
.prose h3{margin-top:1.8rem}
.prose a{color:var(--accent-deep);text-decoration:underline;text-underline-offset:3px}
.prose a:hover{color:var(--ink)}
.prose ul{list-style:none;padding-left:0}
.prose ul li{position:relative;padding-left:1.6rem}
.prose ul li::before{content:'';position:absolute;left:.15rem;top:.72em;width:7px;height:7px;border-radius:50%;background:var(--accent)}
.prose ol{padding-left:1.3em}
.prose--fine{font-size:.92rem;color:var(--muted);max-width:88ch}
.prose--fine h2{font-size:1.3rem}
.prose--fine h3{font-size:1.05rem}

.split{display:grid;gap:clamp(1.6rem,4vw,3.5rem);align-items:center;grid-template-columns:1fr}
@media(min-width:900px){.split{grid-template-columns:1fr 1fr}
  .split--flip .split__media{order:2}}
.split__media img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-lg);max-height:none}
.split__media.is-portrait img{aspect-ratio:auto;max-height:70vh;width:auto;margin-inline:auto;object-fit:contain}

.cards{display:grid;gap:1.4rem;grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column;
  transition:transform .2s var(--ease),box-shadow .2s var(--ease),border-color .2s var(--ease)}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--line-2)}
.card__img{aspect-ratio:4/3;overflow:hidden;background:var(--sand)}
.card__img img{width:100%;height:100%;object-fit:cover;max-height:none;transition:transform .5s var(--ease)}
.card:hover .card__img img{transform:scale(1.04)}
/* Kacheln mit freigestellten Produktfotos: ganz zeigen statt beschneiden */
.card--produkt .card__img{background:#fff;padding:.9rem}
.card--produkt .card__img img{object-fit:contain}

.card__body{padding:1.35rem 1.4rem 1.5rem;display:flex;flex-direction:column;gap:.55rem;flex:1}
.card__body h3{margin:0;font-size:1.18rem}
.card__price{font-family:var(--head);font-weight:700;color:var(--accent-deep)}
.card__body ul{margin:.2rem 0 0;padding-left:0;list-style:none;font-size:.93rem;color:var(--ink-3)}
.card__body ul li{position:relative;padding-left:1.35rem}
.card__body ul li::before{content:'';position:absolute;left:.1rem;top:.68em;width:6px;height:6px;border-radius:50%;background:var(--accent)}
.card__cta{margin-top:auto;padding-top:1rem}

.steps{counter-reset:s;display:grid;gap:1.3rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.step{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:1.7rem 1.5rem;position:relative}
.step::before{counter-increment:s;content:counter(s,decimal-leading-zero);font-family:var(--head);font-weight:800;
  font-size:2.1rem;color:var(--accent);opacity:.35;display:block;line-height:1;margin-bottom:.7rem}
.step h3{font-size:1.12rem;margin-bottom:.45rem}
.step p{margin:0;font-size:.96rem;color:var(--ink-3)}

.features{display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.feat{background:#fff;border:1px solid var(--line);border-top:3px solid var(--accent);border-radius:var(--r);padding:1.5rem 1.4rem}
.feat h3{font-size:1.05rem;margin-bottom:.4rem}
.feat p{margin:0;font-size:.95rem;color:var(--ink-3)}

.checks{display:grid;gap:.55rem 2rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));list-style:none;padding:0}
.checks li{position:relative;padding-left:2rem;font-size:.98rem}
.checks li::before{content:'';position:absolute;left:0;top:.35em;width:1.15rem;height:1.15rem;background:var(--accent);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat}

.tbl{width:100%;font-size:.95rem;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.tbl th,.tbl td{text-align:left;padding:.85rem 1.1rem;border-bottom:1px solid var(--line);vertical-align:top}
.tbl th{font-family:var(--head);font-weight:600;width:34%;color:var(--muted);background:var(--sand)}
.tbl tr:last-child th,.tbl tr:last-child td{border-bottom:0}

.stats{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));text-align:center}
.stat__n{font-family:var(--head);font-weight:800;font-size:clamp(2.4rem,5vw,3.6rem);line-height:1;color:var(--accent);letter-spacing:-.04em}
.stat__l{font-size:.9rem;color:#a9b0ba;margin-top:.4rem}

.quote{font-family:var(--head);font-size:clamp(1.35rem,3vw,2.1rem);font-weight:600;line-height:1.35;letter-spacing:-.025em;max-width:22ch}
.quote__who{font-family:var(--body);font-size:.95rem;font-weight:500;color:var(--muted);margin-top:1.2rem}

.note{background:#fff;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:var(--r);
  padding:1.25rem 1.4rem;font-size:.97rem}
.note--warn{border-left-color:var(--sale)}
.note strong{font-family:var(--head)}

/* Team */
.team{display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.member{text-align:center}
.member img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--r-lg);max-height:none;background:var(--sand-2)}
.member .ph{width:100%;aspect-ratio:1;border-radius:var(--r-lg);background:var(--sand-2);display:grid;place-items:center;
  font-family:var(--head);font-weight:700;font-size:1.8rem;color:var(--line-2)}
.member h4{margin:.75rem 0 .1rem;font-size:1rem}
.member p{margin:0;font-size:.86rem;color:var(--muted)}

/* Logo-Wand (Marken in Farbe – Fallstrick 60) */
.logos{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));align-items:center}
.logos img{width:100%;height:74px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:.9rem;transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.logos a:hover img{transform:translateY(-3px);box-shadow:var(--shadow)}

/* Foto-Galerie + Lightbox */
.fotogrid{display:flex;flex-wrap:wrap;justify-content:center;gap:.85rem}
.fotogrid a{display:block;border-radius:var(--r);overflow:hidden;background:var(--sand)}
.fotogrid img{width:100%;aspect-ratio:4/3;object-fit:cover;max-height:none;transition:transform .4s var(--ease)}
.fotogrid a:hover img{transform:scale(1.05)}
.lb{position:fixed;inset:0;background:rgba(8,9,11,.94);z-index:120;display:none;place-items:center}
.lb.open{display:grid}
.lb img{max-width:92vw;max-height:82vh;width:auto;object-fit:contain;border-radius:8px}
.lb__x,.lb__p,.lb__n{position:absolute;background:rgba(255,255,255,.1);border:0;color:#fff;width:48px;height:48px;
  border-radius:50%;cursor:pointer;display:grid;place-items:center;transition:background .18s}
.lb__x:hover,.lb__p:hover,.lb__n:hover{background:rgba(255,255,255,.25)}
.lb__x{top:1.2rem;right:1.2rem}
.lb__p{left:1.2rem;top:50%;translate:0 -50%}
.lb__n{right:1.2rem;top:50%;translate:0 -50%}
.lb__c{position:absolute;bottom:1.4rem;left:50%;translate:-50% 0;color:#cfd5dd;font-size:.88rem}
.lb svg{width:22px;height:22px}

/* CTA-Band */
.band{position:relative;color:#fff;isolation:isolate;overflow:hidden}
.band__bg{position:absolute;inset:0;z-index:-2}
.band__bg img{width:100%;height:100%;object-fit:cover;max-height:none}
.band::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(13,14,17,.9),rgba(13,14,17,.55))}
.band__in{width:var(--shell);margin-inline:auto;padding:clamp(3.5rem,7vw,6rem) 0}
.band h2{max-width:20ch}
.band p{max-width:52ch;color:#d4dae1}

/* FAQ */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;padding:1.15rem 2.5rem 1.15rem 0;font-family:var(--head);font-weight:600;font-size:1.03rem;
  list-style:none;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'';position:absolute;right:.4rem;top:1.55rem;width:12px;height:12px;
  border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);rotate:45deg;transition:rotate .2s var(--ease)}
.faq details[open] summary::after{rotate:-135deg}
.faq details>div{padding:0 0 1.3rem;color:var(--ink-3);font-size:.98rem;max-width:80ch}

/* Blog */
.postcard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;
  transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.postcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.postcard__img{display:block;overflow:hidden;background:var(--sand)}
/* Seitenverhältnis auf das Bild selbst, sonst bestimmt bei Hochformaten die
   Eigenhöhe des Bildes die Kachel und die Reihe verrutscht. */
.postcard__img img{display:block;width:100%;height:auto;aspect-ratio:16/10;
  object-fit:cover;max-height:none}
.postcard__b{padding:1.3rem 1.4rem 1.5rem;flex:1}
.postcard h3{font-size:1.12rem;margin-bottom:.4rem}
.postcard time{font-size:.82rem;color:var(--muted)}

/* ---------------------------------------------------------------- Footer */
.ftr{background:var(--ink);color:#b6bdc7;padding:clamp(3rem,5vw,4.5rem) 0 2rem;font-size:.93rem}
.ftr__top{display:grid;gap:2.5rem;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.ftr h4{font-family:var(--head);color:#fff;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;margin:0 0 1rem}
.ftr ul{list-style:none;padding:0;margin:0}
.ftr li{margin:.4rem 0}
.ftr a:hover{color:var(--accent)}
.ftr__brand img{height:64px;width:auto;margin-bottom:1rem}
.ftr__bottom{margin-top:3rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.12);display:flex;flex-wrap:wrap;
  gap:.6rem 1.5rem;font-size:.84rem;color:#8b939e}
.ftr__bottom .sep{margin-left:auto}
.ftr dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.25rem .9rem}
.ftr dt{color:#8b939e}
.ftr dd{margin:0}

/* ---------------------------------------------------------------- Consent */
.consent{position:fixed;right:1rem;left:auto;bottom:1rem;z-index:130;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:1.2rem 1.3rem;width:min(400px,calc(100% - 2rem));display:none}
.consent.show{display:block}
.consent h4{margin:0 0 .5rem;font-size:1rem}
.consent p{font-size:.88rem;color:var(--ink-3);margin:0 0 1rem}
.consent__btns{display:flex;gap:.6rem;flex-wrap:wrap}

/* ---------------------------------------------------------------- Utilities */
.mt0{margin-top:0}.mb0{margin-bottom:0}
.stack>*+*{margin-top:1.2rem}
.badge{display:inline-block;font-family:var(--head);font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  background:var(--accent);color:#04222f;padding:.32rem .7rem;border-radius:999px}
.badge--sale{background:var(--sale);color:#fff}
.badge--soft{background:var(--sand-2);color:var(--ink-3)}
.tag{display:inline-block;font-size:.78rem;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:.2rem .65rem}

@media(max-width:1240px){
  .nav{display:none}
  .burger{display:block}
  .hdr__in{gap:.6rem}
}
@media(max-width:640px){
  :root{--shell:min(1280px,100% - 1.75rem);--shell-narrow:min(940px,100% - 1.75rem)}
  body{font-size:16px}
  .hero__in{padding-top:7.5rem}
  .hero__pills{flex-direction:column;align-items:stretch}
  .pill{justify-content:center}
  .topbar__in{font-size:.76rem;gap:.2rem .9rem}
}

/* --- Sekundär-Buttons auf dunklem Grund (Bild-Bänder, Hero, Footer) ------ */
.band .btn--ghost,
.hero .btn--ghost,
.ftr .btn--ghost,
.karte__box .btn--ghost{
  border-color:rgba(255,255,255,.5);
  color:#fff;
  background:rgba(255,255,255,.06);
  backdrop-filter:blur(2px);
}
.band .btn--ghost:hover,
.hero .btn--ghost:hover,
.ftr .btn--ghost:hover,
.karte__box .btn--ghost:hover{
  background:#fff;
  border-color:#fff;
  color:var(--ink);
}
.band .btn--ghost:focus-visible,
.hero .btn--ghost:focus-visible,
.ftr .btn--ghost:focus-visible,
.karte__box .btn--ghost:focus-visible{
  outline:2px solid #fff;
  outline-offset:2px;
}

/* --- Mr. Bike Welt: kompakte Karten, ganze Karte klickbar ---------------- */
.cards--welt{grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:1.1rem}
.card--welt{text-decoration:none;color:inherit}
.card--welt .card__img{aspect-ratio:16/9}
.card--welt .card__body{padding:1rem 1.1rem 1.15rem;gap:.35rem}
.card--welt .card__body h3{font-size:1.05rem}
.card--welt .card__body p{font-size:.88rem;line-height:1.45}

/* letzte Reihe mittig statt links, damit kein Einzelstück hängt */
.cards--welt{display:flex;flex-wrap:wrap;justify-content:center}
.cards--welt > .card--welt{flex:1 1 250px;max-width:calc(50% - .55rem)}
@media (min-width:760px){ .cards--welt > .card--welt{max-width:calc(33.333% - .74rem)} }
@media (min-width:1100px){ .cards--welt > .card--welt{max-width:calc(25% - .825rem)} }

/* Einstiegs-Buttons zu den Formularen */
.fs-formleiste{display:flex;flex-wrap:wrap;gap:.7rem;margin:1.6rem 0 2rem}

/* Adresse als Maps-Link */
.ftr__adr{color:inherit;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.25)}
.ftr__adr:hover{border-bottom-color:currentColor}

/* ---- Brotkrumen lesbar: dunkel auf hellem Grund, hell nur im Hero ---- */
.crumbs{color:#4b5058}
.crumbs a{color:#33383f;text-decoration:underline;
  text-decoration-color:rgba(0,0,0,.28);text-underline-offset:2px}
.crumbs a:hover,.crumbs a:focus-visible{color:var(--ink);text-decoration-color:currentColor}
.crumbs span{opacity:1;color:inherit}
.hero .crumbs{color:#e2e7ec}
.hero .crumbs a{color:#fff;text-decoration-color:rgba(255,255,255,.5)}
.hero .crumbs a:hover,.hero .crumbs a:focus-visible{color:#fff;text-decoration-color:#fff}
.hero .crumbs span{color:inherit}

/* ---- Google-Bewertungen ---------------------------------------------- */
.gr__head{display:flex;flex-wrap:wrap;gap:1.2rem 2rem;align-items:flex-end;
  justify-content:space-between;margin-bottom:1.8rem}
.gr__head h2{margin:.35rem 0 .5rem}
.gr__meta{display:flex;align-items:center;gap:.6rem;margin:0;font-size:.95rem;color:var(--muted)}
.gr__rate{position:relative;display:inline-block;white-space:nowrap;letter-spacing:.06em;
  color:#d9d5cc;line-height:1}
.gr__rate>span:last-child{position:absolute;left:0;top:0;width:var(--w);overflow:hidden;
  color:#f0a500}
.gr__list{list-style:none;margin:0;padding:0;display:grid;gap:.9rem;
  grid-template-columns:repeat(auto-fit,minmax(270px,1fr))}
.gr__item{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);
  padding:1.1rem 1.2rem}
.gr__top{display:flex;gap:.7rem;align-items:center;margin-bottom:.65rem}
.gr__av{width:2.15rem;height:2.15rem;border-radius:50%;display:grid;place-items:center;
  background:var(--ink-3);color:#fff;font-weight:700;font-size:.92rem;flex:0 0 auto}
.gr__item strong{display:block;font-size:.95rem;line-height:1.3}
.gr__sub{display:flex;align-items:center;gap:.4rem;font-size:.76rem;color:var(--muted)}
.gr__item p{margin:0;font-size:.92rem;line-height:1.62}
.gr__note{margin:1.1rem 0 0;font-size:.78rem;color:var(--muted)}

/* ---- Newsletter im Footer -------------------------------------------- */
.ftr__news{margin-top:2.6rem;padding:1.35rem 1.6rem;border:1px solid rgba(255,255,255,.16);
  border-radius:var(--r-lg);background:rgba(255,255,255,.045);
  display:flex;flex-wrap:wrap;gap:1rem 2rem;align-items:center;justify-content:space-between}
.ftr__news h4{margin:0 0 .55rem}
.ftr__news p{margin:0 0 .3rem;max-width:64ch}
.ftr__news div>p:last-child{margin-bottom:0}
.ftr__news strong{color:#fff}
.ftr__news-cta{flex:0 0 auto;margin:0!important}

/* ---- Karte mit Zwei-Klick-Lösung (lädt Google erst nach Zustimmung) ------ */
.karte{position:relative;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;
  background:var(--sand)}
.karte__platz{position:relative;aspect-ratio:3/1;min-height:290px}
.karte__platz>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:saturate(.75) brightness(.9);max-height:none}
.karte__platz::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(100deg,rgba(9,11,15,.9) 0%,rgba(9,11,15,.78) 34%,rgba(9,11,15,.35) 62%,rgba(9,11,15,.08) 100%)}
.karte__box{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;justify-content:center;
  gap:.4rem;max-width:46ch;margin:0;padding:clamp(1.2rem,3vw,2.2rem);color:#fff}
.karte__adr{margin:0;font-size:1.05rem;line-height:1.5;text-shadow:0 2px 18px rgba(0,0,0,.5)}
.karte__hinweis{margin:.2rem 0 .5rem;font-size:.84rem;line-height:1.5;color:#e6eaef}
.karte__hinweis a{color:#fff;text-decoration:underline}
.karte__btns{display:flex;flex-wrap:wrap;gap:.6rem;margin:0}
.karte iframe{display:block;width:100%;height:100%;aspect-ratio:3/1;min-height:290px;border:0}

/* ---- Häufige Fragen zweispaltig, damit die Liste nicht so lang wirkt ----- */
.faq__sp{min-width:0}
@media (min-width:900px){
  .faq--2sp{display:grid;grid-template-columns:1fr 1fr;
    column-gap:clamp(2rem,4vw,3.4rem);align-items:start}
  .faq--2sp details>div{max-width:none}
}

/* ---- Werkstatt: zwei Inspektionspakete nebeneinander, gleich hoch -------- */
.cards--2{grid-template-columns:1fr}
@media (min-width:900px){ .cards--2{grid-template-columns:1fr 1fr} }
.cards--2 .card__img{aspect-ratio:12/5}
.cards__t{margin:2.6rem 0 1.1rem;font-size:1.15rem}

/* Lange Leistungslisten: ein Drittel offen, der Rest auf Klick */
.card__body .mehr{margin-top:auto;padding-top:.4rem}  /* rutscht ans Kartenende, dann sitzt der Schalter in beiden Karten auf einer Höhe */
.card__body .mehr>summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;
  gap:.4rem;padding:.35rem 0;font-family:var(--head);font-weight:600;font-size:.9rem;
  color:var(--accent-deep)}
.card__body .mehr>summary::-webkit-details-marker{display:none}
.card__body .mehr>summary::after{content:'';width:8px;height:8px;border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;rotate:45deg;translate:0 -2px;transition:rotate .2s var(--ease)}
.card__body .mehr[open]>summary::after{rotate:-135deg;translate:0 1px}
.card__body .mehr>summary:hover{text-decoration:underline}
.card__body .mehr ul{margin-top:.35rem}
.card__body .mehr>p{margin:.7rem 0 0}

.card__cta .btn{width:100%;justify-content:center}

/* ---- Über uns: Teampanorama und Fotostrecke ---------------------------- */
.team-pano{margin:0}
.team-pano img{width:100%;height:auto;max-height:none;border-radius:var(--r-lg);display:block}
.team-pano figcaption{margin-top:.75rem;font-size:.85rem;color:var(--muted);text-align:center}
.fotos{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem}
.fotos figure{margin:0}
.fotos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-lg);
  max-height:none;display:block}

/* ---- Werkstatt: Icon-Karten und Shimano-Nachweis ----------------------- */
.feat__i{display:block;margin:0 0 .9rem;color:var(--accent-deep)}
.shimano{margin-top:1.6rem;display:flex;flex-wrap:wrap;gap:1.4rem 2rem;align-items:center;
  background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:1.4rem 1.6rem}
.shimano img{width:230px;height:auto;max-height:none;border-radius:var(--r);flex:0 0 auto}
.shimano h3{margin:0 0 .4rem;font-size:1.05rem}
.shimano p{margin:0;font-size:.95rem;color:var(--ink-3);max-width:70ch}
.note__t{margin:0 0 .5rem}

/* ---- Datenschutz-Dialog ------------------------------------------------- */
.cc{position:fixed;inset:0;z-index:120;display:none;align-items:center;
  justify-content:center;padding:1.2rem;background:rgba(9,11,15,.62);
  backdrop-filter:blur(3px)}
.cc.is-offen{display:flex}
html.cc-offen{overflow:hidden}
.cc__box{background:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow-lg);
  width:min(640px,100%);max-height:min(86vh,900px);overflow-y:auto;
  padding:clamp(1.4rem,3vw,2.1rem)}
.cc__box h2{margin:0 0 .7rem;font-size:1.35rem}
.cc__text{margin:0 0 1.2rem;font-size:.95rem;line-height:1.6;color:var(--ink-3)}
.cc [hidden]{display:none}   /* sonst schlaegt display:flex das hidden-Attribut */
.cc__btns{display:flex;flex-wrap:wrap;gap:.6rem}
.cc__btns .btn{flex:1 1 auto;justify-content:center}
.cc__links{margin:1rem 0 0;font-size:.85rem;color:var(--muted)}
.cc__links a{text-decoration:underline}
.cc__kats{margin:0 0 1.3rem;border-top:1px solid var(--line)}

.cc-kat{border-bottom:1px solid var(--line);padding:1rem 0}
.cc-kat__h{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.cc-kat__h h3{margin:0;font-size:1.02rem}
.cc-kat__d{margin:.45rem 0 .6rem;font-size:.9rem;line-height:1.55;color:var(--ink-3)}
.cc-fix{font-size:.8rem;color:var(--muted);white-space:nowrap}

.cc-sw{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;
  font-size:.82rem;color:var(--muted);white-space:nowrap}
.cc-sw input{position:absolute;opacity:0;width:1px;height:1px}
.cc-sw__t{width:42px;height:24px;border-radius:999px;background:var(--line-2);
  position:relative;transition:background .2s var(--ease);flex:0 0 auto}
.cc-sw__t::after{content:'';position:absolute;top:3px;left:3px;width:18px;height:18px;
  border-radius:50%;background:#fff;transition:translate .2s var(--ease);
  box-shadow:0 1px 3px rgba(0,0,0,.3)}
.cc-sw input:checked + .cc-sw__t{background:var(--accent)}
.cc-sw input:checked + .cc-sw__t::after{translate:18px 0}
.cc-sw input:focus-visible + .cc-sw__t{outline:2px solid var(--accent);outline-offset:3px}

.cc-serv{border-top:1px dashed var(--line);margin-top:.5rem}
.cc-serv > summary{cursor:pointer;padding:.5rem 0;font-size:.88rem;font-weight:600;
  list-style:none;display:flex;align-items:center;gap:.4rem}
.cc-serv > summary::-webkit-details-marker{display:none}
.cc-serv > summary::after{content:'';width:7px;height:7px;border-right:2px solid var(--muted);
  border-bottom:2px solid var(--muted);rotate:45deg;translate:0 -2px}
.cc-serv[open] > summary::after{rotate:-135deg;translate:0 1px}
.cc-rows{margin:0 0 .8rem;font-size:.82rem;line-height:1.5}
.cc-row{display:grid;grid-template-columns:9.5rem 1fr;gap:.2rem .8rem;padding:.2rem 0}
.cc-row dt{color:var(--muted)}
.cc-row dd{margin:0;color:var(--ink-3)}
@media (max-width:560px){ .cc-row{grid-template-columns:1fr} .cc-row dt{font-weight:600} }

/* Platzhalter für den JobRad-Rechner, solange keine Einwilligung vorliegt */
.jr-block{margin:1.1rem 0 0;padding:1rem 1.1rem;border:1px dashed var(--line-2);
  border-radius:var(--r-md);background:var(--sand)}
.jr-block__t{margin:0 0 .3rem;font-size:.95rem}
.jr-block__i{margin:0 0 .8rem;font-size:.84rem;line-height:1.55;color:var(--ink-3)}
.jr-block__i a{text-decoration:underline}

/* zwei Fotos übereinander in einer Split-Spalte */
.split__media--2{display:grid;gap:1rem}

/* Bilder im Fliesstext der Ratgeberbeitraege */
.prose figure{margin:2.2rem 0}
.prose figure img{display:block;width:100%;height:auto;border-radius:14px}
.prose figcaption{margin-top:.7rem;font-size:.86rem;line-height:1.5;color:var(--muted)}

/* Buttons im Fliesstext: die Link-Regeln von .prose duerfen sie nicht ueberschreiben */
.prose a.btn{text-decoration:none;color:#fff}
.prose a.btn:hover{color:#fff}
.prose a.btn--accent{color:#04222f}
.prose a.btn--accent:hover{color:#fff}
.prose a.btn--ghost{color:var(--ink)}
.prose a.btn--ghost:hover{color:#fff}
.prose a.btn--light{color:var(--ink)}
.prose a.btn--light:hover{color:#04222f}
/* kleine Einordnung ueber der Kartenueberschrift */
.card__kat{font-family:var(--head);font-size:.7rem;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:var(--accent-deep);margin:0}

/* Drei Karten pro Reihe, damit sechs Leistungen als 3 + 3 stehen */
.cards--3{grid-template-columns:1fr}
@media (min-width:700px){ .cards--3{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (min-width:1000px){ .cards--3{grid-template-columns:repeat(3,minmax(0,1fr))} }

/* Fotoraster mittig: die letzte Reihe soll nicht linksbuendig haengen bleiben */
.fotos figure{flex:0 1 100%}
.fotogrid a{flex:0 1 100%}
@media (min-width:600px){
  .fotos figure{flex:0 1 calc(50% - .5rem)}
  .fotogrid a{flex:0 1 calc(50% - .43rem)}
}
@media (min-width:1000px){
  .fotos figure{flex:0 1 calc(25% - .75rem)}
  .fotogrid a{flex:0 1 calc(25% - .64rem)}
}
/* Bilder lassen sich gross anschauen */
.fotos figure,.fotogrid a{cursor:zoom-in}
.lb{touch-action:pan-y}

.fotos figure{overflow:hidden;border-radius:var(--r-lg)}
.fotos img{transition:transform .4s var(--ease)}
.fotos figure:hover img{transform:scale(1.05)}

/* ---- Pinselstrich-Kanten aus dem Corporate Design ----------------------- */
/* .kante setzt den gepinselten Rand oberhalb des Elements ab, ohne Platz im
   Layout zu belegen. Elternelemente duerfen kein overflow:hidden haben.     */
.kante{position:relative}
.kante::before{content:'';position:absolute;left:0;right:0;bottom:100%;
  height:clamp(18px,2.4vw,34px);pointer-events:none;
  background:var(--kante-farbe,var(--marke));
  -webkit-mask:url(/assets/img/brand/kante-1.png) 50% 100%/100% 100% no-repeat;
          mask:url(/assets/img/brand/kante-1.png) 50% 100%/100% 100% no-repeat}
.kante--2::before{-webkit-mask-image:url(/assets/img/brand/kante-2.png);
                          mask-image:url(/assets/img/brand/kante-2.png)}
.kante--3::before{-webkit-mask-image:url(/assets/img/brand/kante-3.png);
                          mask-image:url(/assets/img/brand/kante-3.png)}
@supports not ((-webkit-mask-image:url(#a)) or (mask-image:url(#a))){
  .kante::before{display:none}
}

/* Markenblauer Abschnitt, das Pendant zu den blauen Flaechen im Newsletter */
.sec--marke{background:var(--marke);color:#fff}
.sec--marke h1,.sec--marke h2,.sec--marke h3,.sec--marke h4,.sec--marke strong{color:#fff}
.sec--marke .kicker{color:#cdeeff}
.sec--marke .lede,.sec--marke p{color:#eaf7ff}
.sec--marke a:not(.btn){color:#fff;text-decoration:underline;text-underline-offset:3px}
.sec--marke .btn--light{background:#fff;color:var(--marke-tief)}
.sec--marke .btn--light:hover{background:var(--ink);color:#fff}
.sec--marke .btn--ghost{border-color:rgba(255,255,255,.55);color:#fff}
.sec--marke .btn--ghost:hover{background:rgba(255,255,255,.14);color:#fff}

/* Rubriken-Kacheln im Markenabschnitt */
.rub{display:grid;gap:1.1rem;grid-template-columns:1fr;margin:0;padding:0;list-style:none}
@media (min-width:820px){.rub{grid-template-columns:repeat(3,minmax(0,1fr))}}
.rub li{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.24);
  border-radius:var(--r-lg);padding:1.25rem 1.35rem}
.rub h3{font-size:1.02rem;margin:0 0 .45rem}
.rub p{margin:0;font-size:.95rem;line-height:1.55}

/* Der Footer traegt die Pinselkante auf jeder Seite. Sie hat die Footer-Farbe,
   nicht Markenblau: blau bleibt den blauen Flaechen vorbehalten. */
.ftr{position:relative}
.ftr::before{content:'';position:absolute;left:0;right:0;bottom:100%;
  height:clamp(18px,2.4vw,34px);pointer-events:none;background:var(--ink);
  -webkit-mask:url(/assets/img/brand/kante-2.png) 50% 100%/100% 100% no-repeat;
          mask:url(/assets/img/brand/kante-2.png) 50% 100%/100% 100% no-repeat}
@supports not ((-webkit-mask-image:url(#a)) or (mask-image:url(#a))){
  .ftr::before{display:none}
}

/* ---- Stellenanzeigen ---------------------------------------------------- */
.jobmeta{list-style:none;margin:0;display:grid;gap:1rem 2rem;align-items:start;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1.4rem 0}
.jobmeta strong{overflow-wrap:anywhere}
.jobmeta li{display:flex;flex-direction:column;gap:.2rem}
.jobmeta span{font-family:var(--head);font-size:.68rem;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:var(--muted)}
.jobmeta strong{font-family:var(--head);font-size:.98rem;font-weight:600;line-height:1.3}

.stellen{display:grid;gap:1rem;grid-template-columns:1fr;margin:0;padding:0;list-style:none}
@media (min-width:820px){.stellen{grid-template-columns:repeat(2,minmax(0,1fr))}}
.stelle{display:flex;gap:0;background:#fff;border:1px solid var(--line);
  border-left:4px solid var(--accent);border-radius:var(--r);overflow:hidden;
  transition:box-shadow .18s var(--ease),transform .18s var(--ease)}
.stelle__bild{flex:0 0 34%;align-self:stretch;background:var(--sand)}
.stelle__bild img{width:100%;height:100%;min-height:150px;object-fit:cover;max-height:none;
  transition:transform .4s var(--ease)}
.stelle:hover .stelle__bild img{transform:scale(1.05)}
.stelle__txt{flex:1 1 auto;display:flex;flex-direction:column;gap:.55rem;padding:1.3rem 1.4rem}
@media (max-width:479px){.stelle{flex-direction:column}.stelle__bild{flex:0 0 auto}
  .stelle__bild img{min-height:0;aspect-ratio:16/9}}
.stelle:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.stelle h3{margin:0;font-size:1.12rem}
.stelle h3 a{color:inherit;text-decoration:none}
.stelle h3 a::after{content:'';position:absolute;inset:0}
.stelle{position:relative}
.stelle p{margin:0;font-size:.95rem;color:var(--ink-3)}
.stelle__tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.25rem}
.stelle__tag{font-family:var(--head);font-size:.7rem;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;background:var(--sand-2);color:var(--ink-3);
  border-radius:999px;padding:.3rem .7rem}
.stelle__mehr{font-family:var(--head);font-size:.88rem;font-weight:600;color:var(--accent-deep);margin-top:.35rem}
.feat h3 a{color:inherit;text-decoration:none}
.feat h3 a:hover{color:var(--accent-deep)}

/* Zwei gleichfarbige Abschnitte direkt hintereinander sollen nicht die doppelte
   Innenabstand-Summe erzeugen. */
.sec:not(.sec--sand):not(.sec--ink) + .sec--tight:not(.sec--sand):not(.sec--ink){padding-top:0}
.sec--sand + .sec--tight.sec--sand{padding-top:0}

/* ---- Markenübersicht ---------------------------------------------------- */
.marken{display:grid;gap:1.2rem;grid-template-columns:1fr;margin:0;padding:0;list-style:none}
@media (min-width:760px){.marken{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.marken{grid-template-columns:repeat(3,minmax(0,1fr))}}
.marken > li{background:#fff;border:1px solid var(--line);border-top:3px solid var(--accent);
  border-radius:var(--r);padding:1.3rem 1.4rem}
.marken h3{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-deep);
  margin:0 0 .9rem}
.marken > li > p{margin:0;font-size:.96rem;line-height:1.6;color:var(--ink-3)}
.marken > li > p strong{color:var(--ink);font-weight:600}
.logos img[src$=".svg"]{padding:1.1rem}

/* ---- Leasingpartner kompakt ---------------------------------------------- */
.lpgrid{display:grid;gap:.9rem;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.lp{display:flex;flex-direction:column;gap:.5rem;background:#fff;border:1px solid var(--line);
  border-radius:var(--r);padding:1rem 1.1rem 1.1rem;text-decoration:none;color:inherit;
  transition:box-shadow .18s var(--ease),transform .18s var(--ease),border-color .18s var(--ease)}
.lp:hover{box-shadow:var(--shadow);transform:translateY(-2px);border-color:var(--line-2)}
.lp__logo{display:flex;align-items:center;height:46px}
.lp__logo img{max-width:100%;max-height:46px;width:auto;height:auto;object-fit:contain}
.lp__txt{font-family:var(--head);font-weight:700;font-size:1rem}
.lp__name{font-family:var(--head);font-weight:600;font-size:.98rem;line-height:1.25}
.lp__d{font-size:.86rem;line-height:1.45;color:var(--muted)}

/* ---- Mobiles Menü: Gruppen erst auf Tipp öffnen -------------------------- */
.mgroup{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;
  background:none;border:0;border-bottom:1px solid rgba(255,255,255,.1);color:#fff;cursor:pointer;
  font-family:var(--head);font-weight:600;font-size:1.15rem;padding:.6rem 0;text-align:left}
.mgroup svg{width:18px;height:18px;flex:0 0 auto;transition:transform .2s var(--ease)}
.mgroup[aria-expanded="true"] svg{transform:rotate(180deg)}
.msub{display:none;padding-bottom:.4rem}
.msub.open{display:block}
.mnav{padding-bottom:7rem}

/* ---- Bilder-Slider (Peru) ------------------------------------------------ */
.slider{position:relative}
.slider__spur{display:flex;gap:.85rem;overflow-x:auto;scroll-snap-type:x mandatory;
  scroll-behavior:smooth;padding-bottom:.4rem;
  scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}
.slider__spur::-webkit-scrollbar{height:8px}
.slider__spur::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:99px}
.slider__spur > a{flex:0 0 78%;scroll-snap-align:start;display:block;border-radius:var(--r);
  overflow:hidden;background:var(--sand)}
@media (min-width:640px){.slider__spur > a{flex:0 0 42%}}
@media (min-width:1000px){.slider__spur > a{flex:0 0 26%}}
.slider__spur img{width:100%;aspect-ratio:4/3;object-fit:cover;max-height:none;display:block;
  transition:transform .4s var(--ease)}
.slider__spur > a:hover img{transform:scale(1.05)}
.slider__nav{position:absolute;top:50%;translate:0 -50%;z-index:2;width:44px;height:44px;
  border-radius:99px;border:1px solid var(--line);background:#fff;cursor:pointer;
  display:none;align-items:center;justify-content:center;box-shadow:var(--shadow)}
.slider__nav:hover{background:var(--sand)}
.slider__nav[data-dir="-1"]{left:-14px}
.slider__nav[data-dir="1"]{right:-14px}
@media (min-width:1000px){.slider__nav{display:flex}}
.slider__nav svg{width:18px;height:18px}
.slider__zahl{font-size:.86rem;color:var(--muted);margin-top:.9rem}
