/* ==========================================================================
   RIEGER Tuning — Design System
   Alle Farben, Abstände und Radien stehen als Token hier. Nirgendwo sonst
   dürfen rohe Farbwerte stehen.
   ========================================================================== */

/* ---------- Fonts (selbst gehostet, latin subset) ---------- */
@font-face{font-family:"Barlow Condensed";src:url("../fonts/barlow-condensed-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Barlow Condensed";src:url("../fonts/barlow-condensed-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Barlow Condensed";src:url("../fonts/barlow-condensed-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Inter";src:url("../fonts/inter-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Inter";src:url("../fonts/inter-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Inter";src:url("../fonts/inter-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Inter";src:url("../fonts/inter-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}

/* ---------- Tokens ---------- */
:root{
  /* Flächen – von dunkel nach hell gestaffelt */
  --c-bg:         #0c0c0e;
  --c-bg-alt:     #111115;
  --c-surface:    #16161b;
  --c-surface-2:  #1e1e25;
  --c-surface-3:  #272730;
  --c-tile:       #f2f2f4;   /* heller Kachelgrund für freigestellte Produktfotos */

  /* Linien */
  --c-line:       #27272f;
  --c-line-2:     #3a3a46;

  /* Text – Kontrast gegen --c-bg: ink 18:1, ink-2 9,4:1, ink-3 5,5:1 */
  --c-ink:        #f6f6f8;
  --c-ink-2:      #b9b9c4;
  --c-ink-3:      #8e8e9b;
  --c-ink-on-tile:#16161b;

  /* Marke – Rieger-Rot. -brand nur als Fläche, -brand-ink nur als Text. */
  --c-brand:      #c8102e;
  --c-brand-2:    #e31837;
  --c-brand-deep: #8e0a20;
  --c-brand-ink:  #ff6170;
  --c-on-brand:   #ffffff;

  /* Status */
  --c-ok:         #3dd68c;
  --c-warn:       #ffb020;

  /* Abstände (4px-Raster) */
  --sp-1:.25rem; --sp-2:.5rem;  --sp-3:.75rem; --sp-4:1rem;
  --sp-5:1.5rem; --sp-6:2rem;   --sp-7:3rem;   --sp-8:4rem;  --sp-9:6rem;

  /* Radien */
  --r-sm:6px; --r-md:10px; --r-lg:16px; --r-xl:24px; --r-pill:999px;

  /* Maße */
  --container: 1280px;
  --gutter: clamp(1rem, 4.5vw, 2.5rem);
  --tap: 44px;                 /* Mindest-Berührfläche */
  --header-h: 60px;

  /* Schatten & Fokus */
  --shadow-1: 0 1px 2px rgb(0 0 0 / .4);
  --shadow-2: 0 8px 24px -8px rgb(0 0 0 / .65);
  --shadow-3: 0 24px 60px -20px rgb(0 0 0 / .8);
  --focus: 0 0 0 2px var(--c-bg), 0 0 0 4px var(--c-brand-ink);

  /* Typo */
  --f-display: "Barlow Condensed", "Arial Narrow", system-ui, sans-serif;
  --f-text: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  --ease: cubic-bezier(.2,.7,.3,1);
}
@media (min-width: 1024px){ :root{ --header-h: 72px; } }

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body,h1,h2,h3,h4,p,figure,blockquote,dl,dd,ul,ol{margin:0}
ul[class],ol[class]{list-style:none;padding:0}
html:focus-within{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){
  html:focus-within{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
}
img,picture,svg,video{display:block;max-width:100%}
input,button,textarea,select{font:inherit;color:inherit}
button{background:none;border:0}

body{
  min-height:100svh;
  background:var(--c-bg);
  color:var(--c-ink);
  font-family:var(--f-text);
  font-size:1rem;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body.is-locked{overflow:hidden}

/* ---------- Typo ---------- */
.h-display,.h1,.h2,.h3,.h4{
  font-family:var(--f-display);
  font-weight:700;
  line-height:1.02;
  letter-spacing:.005em;
  text-transform:uppercase;
  text-wrap:balance;
}
.h-display{font-size:clamp(2.5rem, 10vw, 5.5rem)}
.h1{font-size:clamp(2.1rem, 7vw, 3.75rem)}
.h2{font-size:clamp(1.75rem, 5.2vw, 2.75rem)}
.h3{font-size:clamp(1.3rem, 3.4vw, 1.75rem);line-height:1.1}
.h4{font-size:1.125rem;line-height:1.2;letter-spacing:.01em}

.eyebrow{
  font-family:var(--f-display);
  font-size:.875rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;
  color:var(--c-brand-ink);
  display:flex;align-items:center;gap:var(--sp-3);
  margin-bottom:var(--sp-3);
}
.eyebrow::before{content:"";width:28px;height:2px;background:var(--c-brand);flex:none}

.lead{font-size:clamp(1rem,2.4vw,1.1875rem);color:var(--c-ink-2);max-width:62ch;text-wrap:pretty}
.muted{color:var(--c-ink-2)}
.small{font-size:.875rem;line-height:1.55}
.prose p+p{margin-top:var(--sp-4)}
.prose{color:var(--c-ink-2);max-width:68ch}
.prose strong{color:var(--c-ink)}

a{color:inherit;text-decoration-color:color-mix(in srgb, currentColor 40%, transparent);text-underline-offset:3px}
a:hover{text-decoration-color:currentColor}

.ic{flex:none;width:20px;height:20px}
:where(.btn,.link-arrow,.topbar a,.footer__list a,.footer__contact a,.breadcrumb a,.product__cart) .ic{width:1.15em;height:1.15em}

:where(a,button,select,input,textarea,summary,[tabindex]):focus-visible{
  outline:none;box-shadow:var(--focus);border-radius:var(--r-sm);
}

/* ---------- Layout ---------- */
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.container--wide{max-width:1560px}
.section{padding-block:clamp(3rem, 9vw, 6rem)}
.section--tight{padding-block:clamp(2rem, 6vw, 3.5rem)}
.section--alt{background:var(--c-bg-alt)}
.section__head{margin-bottom:var(--sp-6)}
@media (min-width:768px){
  .section__head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-6);margin-bottom:var(--sp-7)}
  .section__head > :first-child{min-width:0}
}
.stack-4 > * + *{margin-top:var(--sp-4)}
.stack-5 > * + *{margin-top:var(--sp-5)}

.grid{display:grid;gap:var(--sp-4)}
@media (min-width:640px){ .grid{gap:var(--sp-5)} }
.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:768px){ .grid--md-3{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (min-width:768px){ .grid--md-2{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (min-width:1024px){ .grid--lg-4{grid-template-columns:repeat(4,minmax(0,1fr))} }
@media (min-width:1024px){ .grid--lg-3{grid-template-columns:repeat(3,minmax(0,1fr))} }

.skip-link{
  position:absolute;left:var(--sp-4);top:var(--sp-4);z-index:200;
  transform:translateY(-200%);
  background:var(--c-brand);color:var(--c-on-brand);
  padding:var(--sp-3) var(--sp-4);border-radius:var(--r-sm);font-weight:600;
  transition:transform .15s var(--ease);
}
.skip-link:focus{transform:none}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);
  min-height:var(--tap);padding:var(--sp-3) var(--sp-5);
  font-family:var(--f-display);font-size:1.0625rem;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;text-decoration:none;
  border-radius:var(--r-sm);cursor:pointer;
  border:1px solid transparent;
  text-align:center;text-wrap:balance;
  transition:background-color .18s var(--ease), border-color .18s var(--ease), color .18s var(--ease), transform .18s var(--ease);
}
.btn:active{transform:translateY(1px)}
.btn--primary{background:var(--c-brand);color:var(--c-on-brand)}
.btn--primary:hover{background:var(--c-brand-2)}
.btn--ghost{border-color:var(--c-line-2);color:var(--c-ink)}
.btn--ghost:hover{border-color:var(--c-ink-3);background:var(--c-surface-2)}
.btn--quiet{color:var(--c-ink-2);padding-inline:var(--sp-3)}
.btn--quiet:hover{color:var(--c-ink)}
.btn--block{width:100%}
.btn--sm{min-height:var(--tap);font-size:.9375rem;padding-inline:var(--sp-4)}
.btn-row{display:flex;flex-wrap:wrap;gap:var(--sp-3)}

.link-arrow{
  display:inline-flex;align-items:center;gap:var(--sp-2);
  min-height:var(--tap);
  font-family:var(--f-display);font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--c-ink);text-decoration:none;white-space:nowrap;
}
.link-arrow .ic{transition:transform .18s var(--ease);color:var(--c-brand-ink)}
.link-arrow:hover .ic{transform:translateX(4px)}

/* ---------- Badges / Chips ---------- */
.badge{
  display:inline-flex;align-items:center;gap:var(--sp-1);
  padding:.2rem var(--sp-2);border-radius:var(--r-sm);
  font-family:var(--f-display);font-size:.8125rem;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;line-height:1.5;
}
.badge--brand{background:var(--c-brand);color:var(--c-on-brand)}
.badge--outline{border:1px solid var(--c-line-2);color:var(--c-ink-2)}
.badge--ok{background:color-mix(in srgb, var(--c-ok) 18%, transparent);color:var(--c-ok)}

/* ==========================================================================
   Header
   ========================================================================== */
.topbar{
  display:none;
  background:var(--c-bg);
  border-bottom:1px solid var(--c-line);
  font-size:.8125rem;
}
@media (min-width:1024px){ .topbar{display:block} }
.topbar__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5);min-height:var(--tap)}
.topbar__list{display:flex;align-items:center;gap:var(--sp-5)}
.topbar a{color:var(--c-ink-2);text-decoration:none;display:inline-flex;align-items:center;gap:var(--sp-2);min-height:var(--tap)}
.topbar a:hover{color:var(--c-ink)}
.topbar strong{color:var(--c-ink);font-weight:600}

.site-header{position:sticky;top:0;z-index:100;background:var(--c-bg)}
.site-header::after{content:"";position:absolute;inset-inline:0;bottom:0;height:1px;background:var(--c-line)}
.site-header.is-stuck{background:color-mix(in srgb, var(--c-bg) 88%, transparent);backdrop-filter:blur(14px) saturate(140%);box-shadow:var(--shadow-2)}

.nav{display:flex;align-items:center;gap:var(--sp-3);min-height:var(--header-h)}
.brand{display:flex;align-items:center;flex:none;margin-inline-end:auto;min-height:var(--tap)}
.brand img{height:30px;width:auto}
@media (min-width:1024px){ .brand img{height:38px} }

.nav__links{display:none}
@media (min-width:1024px){
  .nav__links{display:flex;align-items:center;gap:var(--sp-1);margin-inline:var(--sp-5) auto}
}
.nav__link{
  position:relative;display:inline-flex;align-items:center;
  min-height:var(--tap);padding-inline:var(--sp-3);
  font-family:var(--f-display);font-size:1.0625rem;font-weight:600;
  letter-spacing:.09em;text-transform:uppercase;
  color:var(--c-ink-2);text-decoration:none;white-space:nowrap;
  transition:color .18s var(--ease);
}
.nav__link:hover{color:var(--c-ink)}
.nav__link::after{
  content:"";position:absolute;left:var(--sp-3);right:var(--sp-3);bottom:10px;height:2px;
  background:var(--c-brand);transform:scaleX(0);transform-origin:left;
  transition:transform .2s var(--ease);
}
.nav__link:hover::after,.nav__link[aria-current="page"]::after{transform:scaleX(1)}
.nav__link[aria-current="page"]{color:var(--c-ink)}
.nav__link--accent{color:var(--c-brand-ink)}

.nav__actions{display:flex;align-items:center;gap:var(--sp-1);flex:none}
.nav__actions .icon-btn--opt{display:none}
@media (min-width:480px){ .nav__actions .icon-btn--opt{display:inline-flex} }
.icon-btn{
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  width:var(--tap);height:var(--tap);border-radius:var(--r-sm);
  color:var(--c-ink-2);text-decoration:none;cursor:pointer;
  transition:background-color .18s var(--ease), color .18s var(--ease);
}
.icon-btn:hover{background:var(--c-surface-2);color:var(--c-ink)}
.icon-btn svg{width:21px;height:21px}
.icon-btn__count{
  position:absolute;top:4px;right:4px;
  min-width:17px;height:17px;padding-inline:4px;border-radius:var(--r-pill);
  background:var(--c-brand);color:var(--c-on-brand);
  font-size:.6875rem;font-weight:700;line-height:17px;text-align:center;
}
.nav__cart-total{display:none}
@media (min-width:1280px){
  .nav__cart-total{display:inline;font-size:.8125rem;color:var(--c-ink-2);margin-inline-start:var(--sp-1);white-space:nowrap}
}
@media (min-width:1024px){ .nav__burger{display:none} }

/* Sub-Leiste mit Shop-Direkteinstiegen */
.subnav{position:relative;background:var(--c-brand-deep);border-top:1px solid color-mix(in srgb, var(--c-on-brand) 10%, transparent)}
.subnav::after{content:"";position:absolute;inset-block:0;right:0;width:3rem;pointer-events:none;
  background:linear-gradient(to left, var(--c-brand-deep), transparent)}
@media (min-width:1024px){ .subnav::after{display:none} }
.subnav__inner{display:flex;align-items:center;gap:var(--sp-1);overflow-x:auto;overscroll-behavior-x:contain;
  scrollbar-width:none;-ms-overflow-style:none;scroll-padding-inline:var(--gutter)}
.subnav__inner::-webkit-scrollbar{display:none}
.subnav a{
  display:inline-flex;align-items:center;gap:var(--sp-2);
  min-height:var(--tap);padding-inline:var(--sp-3);
  font-family:var(--f-display);font-size:.9375rem;font-weight:600;
  letter-spacing:.09em;text-transform:uppercase;white-space:nowrap;
  color:color-mix(in srgb, var(--c-on-brand) 82%, transparent);text-decoration:none;
  transition:color .18s var(--ease);
}
.subnav a:hover,.subnav a[aria-current="page"]{color:var(--c-on-brand)}
.subnav .badge{background:color-mix(in srgb, var(--c-on-brand) 16%, transparent);color:var(--c-on-brand)}

/* ---------- Suche ---------- */
.search{
  display:none;
  border-bottom:1px solid var(--c-line);
  background:var(--c-bg-alt);
  padding-block:var(--sp-4);
}
.search.is-open{display:block}
.search__field{display:flex;align-items:center;gap:var(--sp-2);
  background:var(--c-surface);border:1px solid var(--c-line-2);border-radius:var(--r-sm);
  padding-inline:var(--sp-3);
}
.search__field:focus-within{border-color:var(--c-brand-ink);box-shadow:0 0 0 3px color-mix(in srgb, var(--c-brand-ink) 28%, transparent)}
.search__field input:focus-visible{box-shadow:none}
.search__field svg{width:20px;height:20px;color:var(--c-ink-3);flex:none}
.search__field input{
  flex:1;min-width:0;min-height:var(--tap);
  background:none;border:0;outline:none;color:var(--c-ink);
}
.search__field input::placeholder{color:var(--c-ink-3)}
.search__hint{margin-top:var(--sp-3);color:var(--c-ink-3);font-size:.8125rem}
.search__hint a{color:var(--c-ink-2)}

/* ---------- Mobile Drawer ---------- */
.drawer{position:fixed;inset:0;z-index:150;visibility:hidden}
.drawer.is-open{visibility:visible}
.drawer__scrim{position:absolute;inset:0;background:rgb(0 0 0 / .6);opacity:0;transition:opacity .25s var(--ease)}
.drawer.is-open .drawer__scrim{opacity:1}
.drawer__panel{
  position:absolute;inset-block:0;right:0;width:min(400px, 90vw);
  background:var(--c-bg-alt);border-left:1px solid var(--c-line);
  display:flex;flex-direction:column;
  transform:translateX(100%);transition:transform .28s var(--ease);
  overscroll-behavior:contain;
}
.drawer.is-open .drawer__panel{transform:none}
.drawer__head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);
  padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--c-line);flex:none}
.drawer__head img{height:28px;width:auto}
.drawer__body{flex:1;overflow-y:auto;padding:var(--sp-4) var(--sp-4) var(--sp-8)}
.drawer__group+.drawer__group{margin-top:var(--sp-5);padding-top:var(--sp-5);border-top:1px solid var(--c-line)}
.drawer__label{font-family:var(--f-display);font-size:.8125rem;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:var(--c-ink-3);margin-bottom:var(--sp-2)}
.drawer__link{
  display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);
  min-height:52px;padding-inline:var(--sp-2);border-radius:var(--r-sm);
  font-family:var(--f-display);font-size:1.25rem;font-weight:600;
  letter-spacing:.05em;text-transform:uppercase;
  color:var(--c-ink);text-decoration:none;
}
.drawer__link:hover,.drawer__link[aria-current="page"]{background:var(--c-surface-2)}
.drawer__link[aria-current="page"]{color:var(--c-brand-ink)}
.drawer__link--sub{font-family:var(--f-text);font-size:1rem;font-weight:500;
  letter-spacing:0;text-transform:none;min-height:var(--tap);color:var(--c-ink-2)}

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{position:relative;isolation:isolate;background:var(--c-bg)}

/* Handy zuerst: Bild als eigener Streifen, Text darunter auf fester Fläche.
   So ist der Wagen ganz zu sehen und der Text steht nie auf wechselndem Grund. */
.hero__slides{position:relative;aspect-ratio:4/3;overflow:hidden}
.hero__slide{position:absolute;inset:0;opacity:0;transition:opacity .7s var(--ease);pointer-events:none}
.hero__slide.is-active{opacity:1;pointer-events:auto}
.hero__slide img{width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.hero__slide::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top, var(--c-bg) 0, transparent 22%);
}
.hero__content{padding-block:var(--sp-5) var(--sp-6)}
.hero__title{color:var(--c-ink);max-width:16ch}
.hero__title em{font-style:normal;color:var(--c-brand-ink)}
.hero__sub{margin-top:var(--sp-4);max-width:46ch;color:var(--c-ink-2);font-size:clamp(1rem,2.4vw,1.1875rem)}
.hero__cta{margin-top:var(--sp-5)}
.hero__nav{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-5)}
.hero__dot{width:var(--tap);height:var(--tap);display:grid;place-items:center;cursor:pointer;border-radius:var(--r-sm)}
.hero__dot i{display:block;width:30px;height:3px;border-radius:var(--r-pill);
  background:color-mix(in srgb, var(--c-ink) 35%, transparent);transition:background-color .2s var(--ease)}
.hero__dot[aria-current="true"] i{background:var(--c-brand)}
.hero__dot:hover i{background:var(--c-ink-2)}

/* Ab Tablet ist genug Breite da, um den Text ins Bild zu legen. */
@media (min-width:768px){
  .hero__slides{aspect-ratio:auto;min-height:clamp(520px, 78svh, 780px)}
  .hero__slide img{object-position:50% 55%}
  .hero__slide::after{
    background:
      linear-gradient(to top, var(--c-bg) 2%, color-mix(in srgb, var(--c-bg) 72%, transparent) 34%, transparent 78%),
      linear-gradient(to right, color-mix(in srgb, var(--c-bg) 80%, transparent), color-mix(in srgb, var(--c-bg) 20%, transparent) 55%, transparent 75%);
  }
  .hero__content{
    position:absolute;inset-inline:0;bottom:0;
    padding-block:clamp(3rem,8vw,5rem) clamp(2rem,5vw,3.5rem);
    background:linear-gradient(to top, var(--c-bg) 4%, color-mix(in srgb, var(--c-bg) 72%, transparent) 55%, transparent 100%);
  }
}

/* ---------- Trust-Leiste ---------- */
.trustbar{border-block:1px solid var(--c-line);background:var(--c-bg-alt)}
.trustbar__list{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--sp-4) var(--sp-5);padding-block:var(--sp-5);
}
@media (min-width:900px){ .trustbar__list{grid-template-columns:repeat(4,minmax(0,1fr))} }
.trustbar__item{display:flex;align-items:flex-start;gap:var(--sp-3);min-width:0}
.trustbar__item svg{width:22px;height:22px;flex:none;color:var(--c-brand-ink);margin-top:2px}
.trustbar__item b{display:block;font-size:.9375rem;line-height:1.35}
.trustbar__item span{display:block;font-size:.8125rem;color:var(--c-ink-3);line-height:1.4}

/* ==========================================================================
   Fahrzeug-Finder
   ========================================================================== */
.finder{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-lg);
  padding:var(--sp-5);position:relative;overflow:hidden}
.finder::before{content:"";position:absolute;inset-inline:0;top:0;height:3px;background:var(--c-brand)}
@media (min-width:768px){ .finder{padding:var(--sp-6)} }
.finder__grid{display:grid;gap:var(--sp-4);margin-top:var(--sp-5)}
@media (min-width:640px){ .finder__grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (min-width:1100px){ .finder__grid{grid-template-columns:repeat(5,minmax(0,1fr));align-items:end} }
@media (min-width:1280px){ .finder__grid{grid-template-columns:repeat(5,minmax(0,1fr)) auto} }
.field{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}
.field__label{
  font-family:var(--f-display);font-size:.8125rem;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--c-ink-3);
}
.field__label b{color:var(--c-brand-ink);font-weight:700;margin-inline-end:.35em}
.select,.input,.textarea{
  width:100%;min-height:var(--tap);
  background:var(--c-surface-2);color:var(--c-ink);
  border:1px solid var(--c-line-2);border-radius:var(--r-sm);
  padding:var(--sp-2) var(--sp-3);
  transition:border-color .18s var(--ease), background-color .18s var(--ease);
}
.textarea{min-height:120px;resize:vertical;line-height:1.6}
.select:hover,.input:hover,.textarea:hover{border-color:var(--c-ink-3)}
.select:focus,.input:focus,.textarea:focus{outline:none;border-color:var(--c-brand-ink);box-shadow:var(--focus)}
.select:disabled{color:var(--c-ink-3);background-color:var(--c-bg-alt);border-style:dashed;cursor:not-allowed;opacity:1}
.select{
  appearance:none;padding-inline-end:var(--sp-7);
  background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);
  background-position:calc(100% - 20px) calc(50% + 2px), calc(100% - 14px) calc(50% + 2px);
  background-size:6px 6px,6px 6px;background-repeat:no-repeat;
}
.input::placeholder,.textarea::placeholder{color:var(--c-ink-3)}
.finder__submit{grid-column:1/-1}
@media (min-width:1100px){ .finder__submit{grid-column:auto} }

/* ==========================================================================
   Kategorie-Kacheln
   ========================================================================== */
.cats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3)}
@media (min-width:640px){ .cats{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-4)} }
@media (min-width:1100px){ .cats{grid-template-columns:repeat(6,minmax(0,1fr))} }
.cat{
  position:relative;display:flex;flex-direction:column;gap:var(--sp-3);
  min-height:var(--tap);padding:var(--sp-4);
  background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-md);
  text-decoration:none;color:var(--c-ink);
  transition:border-color .2s var(--ease), background-color .2s var(--ease), transform .2s var(--ease);
}
.cat:hover{border-color:var(--c-line-2);background:var(--c-surface-2);transform:translateY(-2px)}
.cat__media{
  aspect-ratio:4/3;border-radius:var(--r-sm);overflow:hidden;
  background:var(--c-tile);display:grid;place-items:center;
}
.cat__media img{width:100%;height:100%;object-fit:contain;padding:var(--sp-2)}
.cat__name{font-family:var(--f-display);font-size:1.0625rem;font-weight:600;
  letter-spacing:.07em;text-transform:uppercase;line-height:1.15}
.cat__meta{font-size:.8125rem;color:var(--c-ink-3);line-height:1.35}
.cat .badge{position:absolute;top:var(--sp-3);right:var(--sp-3)}

/* ==========================================================================
   Produktkarten
   ========================================================================== */
.products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3)}
@media (min-width:700px){ .products{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-4)} }
@media (min-width:1100px){ .products{grid-template-columns:repeat(4,minmax(0,1fr))} }

.product{
  position:relative;display:flex;flex-direction:column;
  background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-md);
  overflow:hidden;
  transition:border-color .2s var(--ease), transform .2s var(--ease), box-shadow .2s var(--ease);
}
.product:hover{border-color:var(--c-line-2);transform:translateY(-2px);box-shadow:var(--shadow-2)}
.product__media{position:relative;aspect-ratio:4/3;background:var(--c-tile);overflow:hidden}
.product__media img{width:100%;height:100%;object-fit:cover;transition:transform .35s var(--ease)}
.product:hover .product__media img{transform:scale(1.04)}
.product__flag{position:absolute;top:var(--sp-2);left:var(--sp-2);z-index:1}
.product__body{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-4);flex:1}
.product__eyebrow{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--c-ink-3)}
.product__title{font-size:.9375rem;font-weight:600;line-height:1.35;color:var(--c-ink);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media (min-width:700px){ .product__title{font-size:1rem} }
.product__title a{text-decoration:none}
.product__title a::after{content:"";position:absolute;inset:0;border-radius:inherit}
.product__fit{font-size:.8125rem;line-height:1.4;color:var(--c-ink-3);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.product__price{margin-top:auto;padding-top:var(--sp-2);display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--sp-2)}
.product__now{font-family:var(--f-display);font-size:1.5rem;font-weight:700;line-height:1;color:var(--c-ink)}
.product__was{font-size:.875rem;color:var(--c-ink-3);text-decoration:line-through}
.product__foot{padding:var(--sp-3) var(--sp-4) var(--sp-4);background:var(--c-bg-alt);border-top:1px solid var(--c-line)}
.product__sku{display:block;font-size:.75rem;color:var(--c-ink-3);font-variant-numeric:tabular-nums;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:var(--sp-2)}
.product__cart{
  position:relative;z-index:1;width:100%;
  display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);
  min-height:var(--tap);padding-inline:var(--sp-3);
  border-radius:var(--r-sm);background:var(--c-surface-3);color:var(--c-ink);
  font-size:.875rem;font-weight:600;line-height:1.2;cursor:pointer;white-space:nowrap;
  transition:background-color .18s var(--ease), color .18s var(--ease);
}
.product__cart:hover{background:var(--c-brand);color:var(--c-on-brand)}

/* horizontaler Scroller für Produkte auf schmalen Geräten */
.rail{display:flex;gap:var(--sp-3);overflow-x:auto;scroll-snap-type:x mandatory;
  padding-bottom:var(--sp-3);margin-inline:calc(var(--gutter) * -1);padding-inline:var(--gutter);
  scrollbar-width:thin;scrollbar-color:var(--c-line-2) transparent}
.rail > *{flex:0 0 min(78vw, 300px);scroll-snap-align:start}
@media (min-width:900px){
  .rail{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible;
    margin-inline:0;padding-inline:0;gap:var(--sp-4)}
  .rail > *{flex:initial}
}

/* ==========================================================================
   Inhaltskarten, Galerie, Akkordeon, Formulare
   ========================================================================== */
.card{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-md);padding:var(--sp-5)}
.card--link{text-decoration:none;color:inherit;display:block;transition:border-color .2s var(--ease),background-color .2s var(--ease)}
.card--link:hover{border-color:var(--c-line-2);background:var(--c-surface-2)}
.card__icon{width:40px;height:40px;border-radius:var(--r-sm);display:grid;place-items:center;
  background:color-mix(in srgb, var(--c-brand) 18%, transparent);color:var(--c-brand-ink);margin-bottom:var(--sp-4)}
.card__icon svg{width:21px;height:21px}
.card h3{margin-bottom:var(--sp-2)}

/* Themenkacheln (Service). Bei 320px schob „Veranstaltungen" die Seite auf –
   die Beschriftung darf jetzt umbrechen. */
.topic{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4);min-height:var(--tap)}
.topic .ic{color:var(--c-brand-ink)}
.topic span{min-width:0;font-size:.9375rem;line-height:1.35;color:var(--c-ink);overflow-wrap:anywhere}

/* Kennzahlen */
.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-4)}
@media (min-width:900px){ .stats{grid-template-columns:repeat(4,minmax(0,1fr))} }
.stat{border-top:2px solid var(--c-brand);padding-top:var(--sp-4)}
.stat__value{font-family:var(--f-display);font-size:clamp(2.25rem,6vw,3.25rem);font-weight:700;line-height:1}
.stat__label{margin-top:var(--sp-2);font-size:.875rem;color:var(--c-ink-2);line-height:1.4}

/* Galerie */
.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2)}
@media (min-width:768px){ .gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-3)} }
@media (min-width:1200px){ .gallery{grid-template-columns:repeat(4,minmax(0,1fr))} }
.shot{position:relative;display:block;border-radius:var(--r-md);overflow:hidden;
  background:var(--c-surface);border:1px solid var(--c-line);text-decoration:none}
.shot img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .4s var(--ease)}
.shot:hover img{transform:scale(1.05)}
.shot__cap{
  position:absolute;inset-inline:0;bottom:0;padding:var(--sp-5) var(--sp-3) var(--sp-3);
  background:linear-gradient(to top, color-mix(in srgb, var(--c-bg) 92%, transparent), transparent);
  font-family:var(--f-display);font-size:.9375rem;font-weight:600;
  letter-spacing:.07em;text-transform:uppercase;color:var(--c-ink);
}
.shot--tall{grid-row:span 2}
.shot--tall img{aspect-ratio:2/3;height:100%}
@media (max-width:767px){ .shot--tall{grid-row:span 1} .shot--tall img{aspect-ratio:4/3} }

/* Banner-Streifen (Original-Werbebanner, bewusst auf heller Kachel) */
.banner-rail{display:flex;gap:var(--sp-3);overflow-x:auto;scroll-snap-type:x mandatory;
  margin-inline:calc(var(--gutter) * -1);padding:0 var(--gutter) var(--sp-3);
  scrollbar-width:thin;scrollbar-color:var(--c-line-2) transparent}
.banner-rail > *{flex:0 0 min(88vw, 900px);scroll-snap-align:center}
@media (min-width:900px){
  .banner-rail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;
    margin-inline:0;padding:0;gap:var(--sp-4)}
  .banner-rail > *{flex:initial}
}
.banner{display:block;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--c-line);
  background:var(--c-tile);text-decoration:none}
.banner img{width:100%;height:auto}

/* Akkordeon (FAQ) */
.accordion{border-top:1px solid var(--c-line)}
.accordion details{border-bottom:1px solid var(--c-line)}
.accordion summary{
  display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);
  min-height:var(--tap);padding-block:var(--sp-4);cursor:pointer;list-style:none;
  font-family:var(--f-display);font-size:1.125rem;font-weight:600;
  letter-spacing:.03em;text-transform:uppercase;color:var(--c-ink);
}
.accordion summary::-webkit-details-marker{display:none}
.accordion summary::after{
  content:"";flex:none;width:12px;height:12px;margin-right:2px;
  border-right:2px solid var(--c-brand-ink);border-bottom:2px solid var(--c-brand-ink);
  transform:rotate(45deg) translateY(-25%);transition:transform .2s var(--ease);
}
.accordion details[open] summary::after{transform:rotate(-135deg) translateY(-25%)}
.accordion summary:hover{color:var(--c-brand-ink)}
.accordion__body{padding-bottom:var(--sp-5);color:var(--c-ink-2);max-width:72ch}
.accordion__body p+p,.accordion__body ul{margin-top:var(--sp-3)}
.accordion__body ul{list-style:disc;padding-left:1.25em}
.accordion__body li+li{margin-top:var(--sp-1)}

/* Definitionsliste / Tabellen-Ersatz (Öffnungszeiten, Kontakt) */
.rows{border-top:1px solid var(--c-line)}
.rows__item{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-4);
  padding-block:var(--sp-3);border-bottom:1px solid var(--c-line)}
.rows__item dt{flex:1 1 11rem;font-weight:600;color:var(--c-ink);min-width:0}
.rows__item dd{flex:1 1 11rem;margin:0;color:var(--c-ink-2);min-width:0}

/* Download-Liste */
.dl-item{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3);
  padding:var(--sp-4);border:1px solid var(--c-line);border-radius:var(--r-md);background:var(--c-surface)}
.dl-item__icon{width:40px;height:40px;flex:none;border-radius:var(--r-sm);display:grid;place-items:center;
  background:var(--c-surface-3);color:var(--c-brand-ink)}
.dl-item__icon svg{width:20px;height:20px}
.dl-item__text{flex:1 1 12rem;min-width:0}
.dl-item__text b{display:block;line-height:1.3}
.dl-item__text span{font-size:.8125rem;color:var(--c-ink-3)}
.dl-item .btn{flex:none}
@media (max-width:519px){ .dl-item .btn{width:100%} }

/* Formulare */
.form{display:grid;gap:var(--sp-4)}
@media (min-width:700px){ .form--2col{grid-template-columns:repeat(2,minmax(0,1fr))} .form__full{grid-column:1/-1} }
.field__req{color:var(--c-brand-ink)}
.form__note{font-size:.8125rem;color:var(--c-ink-3)}
.checkline{display:flex;gap:var(--sp-3);align-items:flex-start;min-height:var(--tap);padding-block:var(--sp-1)}
.checkline input{width:24px;height:24px;flex:none;margin-top:1px;accent-color:var(--c-brand);cursor:pointer}
.checkline label{cursor:pointer}
.checkline label{font-size:.875rem;color:var(--c-ink-2);line-height:1.5}

/* Kontaktseite: Formular bekommt den Großteil der Breite, Infospalte daneben.
   Vorher stand das Formular in einer von drei Spalten und war unnötig schmal. */
.contact-split{display:grid;gap:var(--sp-6)}
@media (min-width:1024px){ .contact-split{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:var(--sp-7);align-items:start} }

/* Newsletter */
.newsletter{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-lg);
  padding:var(--sp-5);position:relative;overflow:hidden}
@media (min-width:768px){ .newsletter{padding:var(--sp-7)} }
.newsletter__form{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-5)}
.newsletter__form .input{flex:1 1 16rem}
.newsletter__form .btn{flex:0 0 auto}
@media (max-width:519px){ .newsletter__form .btn{width:100%} }

/* Seitenkopf für Unterseiten */
.pagehead{position:relative;border-bottom:1px solid var(--c-line);background:var(--c-bg-alt);
  padding-block:clamp(2rem,7vw,4rem)}
.pagehead::before{content:"";position:absolute;inset-inline:0;top:0;height:3px;background:var(--c-brand)}
.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);
  font-size:.8125rem;color:var(--c-ink-3);margin-bottom:var(--sp-3)}
.breadcrumb a{color:var(--c-ink-3);text-decoration:none;min-height:var(--tap);display:inline-flex;align-items:center}
.breadcrumb a:hover{color:var(--c-ink)}
.breadcrumb li{display:flex;align-items:center;gap:var(--sp-2)}
.breadcrumb li+li::before{content:"/";color:var(--c-line-2)}

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer{border-top:1px solid var(--c-line);background:var(--c-bg-alt)}
.footer__grid{display:grid;gap:var(--sp-6);padding-block:clamp(2.5rem,7vw,4rem)}
@media (min-width:640px){ .footer__grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (min-width:1024px){ .footer__grid{grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--sp-7)} }
.footer__brand img{height:34px;width:auto;margin-bottom:var(--sp-4)}
.footer__title{font-family:var(--f-display);font-size:.875rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--c-ink);margin-bottom:var(--sp-3)}
.footer__list a,.footer__contact a{
  display:inline-flex;align-items:center;gap:var(--sp-2);
  min-height:var(--tap);color:var(--c-ink-2);text-decoration:none;font-size:.9375rem;
}
.footer__list a:hover,.footer__contact a:hover{color:var(--c-ink)}
.footer__contact address{font-style:normal;color:var(--c-ink-2);font-size:.9375rem;line-height:1.6}
.socials{display:flex;gap:var(--sp-2);margin-top:var(--sp-3)}
.socials a{width:var(--tap);height:var(--tap);display:grid;place-items:center;border-radius:var(--r-sm);
  border:1px solid var(--c-line-2);color:var(--c-ink-2);transition:all .18s var(--ease)}
.socials a:hover{border-color:var(--c-brand);background:var(--c-brand);color:var(--c-on-brand)}
.socials svg{width:19px;height:19px}

.footer__badges{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-4);
  padding-block:var(--sp-5);border-top:1px solid var(--c-line)}
.footer__badges img{height:46px;width:auto;opacity:.85;transition:opacity .18s var(--ease)}
.footer__badges img:hover{opacity:1}
.footer__pay{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3);margin-left:auto}
.footer__pay img{height:26px}
.footer__pay .chip{display:inline-flex;align-items:center;min-height:30px;padding-inline:var(--sp-3);
  border:1px solid var(--c-line-2);border-radius:var(--r-sm);font-size:.8125rem;color:var(--c-ink-2)}

.footer__legal{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1) var(--sp-4);
  padding-block:var(--sp-4) var(--sp-6);border-top:1px solid var(--c-line);
  font-size:.8125rem;color:var(--c-ink-3)}
.footer__legal nav{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-4)}
.footer__legal a{color:var(--c-ink-3);text-decoration:none;min-height:var(--tap);display:inline-flex;align-items:center}
.footer__legal a:hover{color:var(--c-ink-2)}
.footer__legal p{margin-right:auto}

/* ==========================================================================
   Hilfsklassen & Motion
   ========================================================================== */
.vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}
.link-block{display:inline-flex;align-items:center;gap:var(--sp-2);min-height:var(--tap);
  color:var(--c-ink-2);text-decoration-color:color-mix(in srgb, currentColor 45%, transparent)}
.link-block:hover{color:var(--c-ink)}
.link-block--row{display:flex;width:100%;padding-inline:var(--sp-2);border-radius:var(--r-sm)}
.link-block--row:hover{background:var(--c-surface-2);color:var(--c-ink)}
.hr{border:0;border-top:1px solid var(--c-line);margin-block:var(--sp-6)}
.checker{height:8px;background-image:
  linear-gradient(45deg, var(--c-line) 25%, transparent 25%, transparent 75%, var(--c-line) 75%),
  linear-gradient(45deg, var(--c-line) 25%, transparent 25%, transparent 75%, var(--c-line) 75%);
  background-size:8px 8px;background-position:0 0, 4px 4px}

.reveal{opacity:0;transform:translateY(16px);transition:opacity .55s var(--ease), transform .55s var(--ease)}
.reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){ .reveal{opacity:1;transform:none} }

/* Toast für "In den Warenkorb" */
.toast{
  position:fixed;left:50%;bottom:var(--sp-5);transform:translate(-50%, 140%);
  z-index:200;width:max-content;max-width:min(92vw, 420px);
  display:flex;align-items:center;gap:var(--sp-3);
  padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);
  background:var(--c-surface-2);border:1px solid var(--c-line-2);box-shadow:var(--shadow-3);
  font-size:.9375rem;transition:transform .3s var(--ease);
}
.toast.is-show{transform:translate(-50%,0)}
.toast svg{width:20px;height:20px;color:var(--c-ok);flex:none}

@media print{
  .site-header,.subnav,.site-footer,.drawer,.hero__nav{display:none}
  body{background:#fff;color:#000}
}
