/* ============================================================
   Kategorie-Landingpage — Komponenten-CSS (Paket P6)
   Ergänzt site.css. Wiederverwendet: .container .btn .eyebrow .trust
   .section .section-head .cat-grid .cat .catalog-head .pgrid .pcard .crumbs
   ============================================================ */

.cat-page{position:relative;z-index:1}

/* ---------- Hero ---------- */
.cat-hero{position:relative;padding:clamp(28px,5vw,64px) 0 clamp(20px,3vw,40px)}
.cat-hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(28px,5vw,64px);align-items:center}
.cat-hero-copy{min-width:0}/* Visual-Audit 2026-07-06: Copy-Spalte darf schrumpfen (kein Overflow bei langen Labels) */
.cat-hero-copy .crumbs{margin-bottom:1rem}
.cat-hero-copy .eyebrow{margin-bottom:1.1rem}
.cat-hero h1{font-size:var(--fs-h1);font-weight:var(--fw-black)}
.cat-hero .lead{color:var(--muted-2);font-size:clamp(1.02rem,1.5vw,1.18rem);max-width:50ch;margin:1.2rem 0 0}
.cat-hero .hero-cta{margin-top:1.8rem}
.cat-hero .trust{margin-top:2.2rem}
/* #12: Die drei Hero-Kennzahlen standen als schmucklose Textpaare in einer Reihe ohne
   Trennung — die Trust-Zahlen hoben sich nicht voneinander ab. Feine vertikale Divider
   zwischen den Stats geben jeder Kennzahl eine eigene „Spalte"; scoped auf .cat-hero,
   damit die globale .trust (Home/PDP) unberührt bleibt. Divider nur ab Breite, in der
   die drei Stats sicher in EINER Zeile stehen — beim mobilen Umbruch würde ein
   linksstehender Divider ohne Nachbar als Fremdstrich lesen. */
.cat-hero .trust{align-items:stretch;column-gap:clamp(18px,2.4vw,32px);row-gap:1.2rem}
@media (min-width:561px){
  .cat-hero .trust .t + .t{border-left:1px solid var(--line-2);padding-left:clamp(18px,2.4vw,32px)}
}
/* Traglast-Vorbehalt als Fußnote klar zurücknehmen, damit die Kennzahlen führen. */
.cat-load-note{margin-top:1.1rem;max-width:52ch;color:var(--muted);font-size:var(--fs-xs);line-height:var(--lh-title)}

/* hero visual — same orbital motif as home, category icon centred */
.cat-hero-visual{position:relative;aspect-ratio:1/1;max-width:420px;justify-self:end;width:100%;display:grid;place-items:center}
/* #5/#112/#126: echtes System-Render als Hero-Bild (wie Home-Kachel). Füllt den Ring
   ordentlich aus und liest als „echtes Produkt" statt Wireframe. */
.cat-hero-photo{width:100%;height:100%;max-width:100%;object-fit:contain;filter:drop-shadow(0 22px 40px rgba(16,24,40,.14))}
/* #5/#6/#15/#21/#35: Fallback-Glyph (Zubehör/Sonderlösungen ohne Flaggschiff-Render)
   verstärkt — dezente Medien-Kachel + größeres, kräftigeres Glyph, damit es als
   gewolltes Marken-Motiv statt als unfertiger Platzhalter liest. */
.cat-hero-visual:not(.has-photo){background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--sh-1) inset}
.cat-hero-ico{position:relative;width:56%;color:var(--steel);filter:drop-shadow(0 18px 34px rgba(16,24,40,.16))}/* Visual-Audit 2026-07-06 (#12): Glyph 34%->50%; #21/#35: ->56% + Backing-Kachel — kräftiger, kein leerer Ring */
.cat-hero-ico svg{width:100%;height:auto;stroke-width:1.9}/* #21/#35: kräftigere Linien im großen Hero-Glyph */

/* ---------- Subkategorie-Kacheln ---------- */
/* uses global .cat-grid/.cat; cards here have no .count, keep them tidy */
.cat-subs .cat{min-height:184px}
/* #28/#34: Das globale .cat-grid (auto-fill, 4 Spalten am Desktop) ließ Teil-Reihen
   linksbündig mit leeren Slots stehen: zubehoer/fachboden (6 → 4+2, zwei leere Slots
   rechts) und sonderloesungen (5 → 4+1, Waisen-Kachel mit großer Leerfläche daneben).
   Ein hartes 3-Spalten-Raster hätte auf den 4-Kachel-Seiten (paletten/weitspann/kragarm/
   buero) einen NEUEN 3+1-Orphan erzeugt. Lösung, die alle Zählungen trägt: Flex-Wrap mit
   zentrierter letzter Reihe — volle Reihen bleiben bündig, Teil-Reihen zentrieren statt
   gegen leere Slots zu stehen. Kein Wachstum (flex-grow:0), damit die letzte Reihe nicht
   breiter wird als die vollen Reihen; Shrink bleibt für schmale Viewports. Eng auf die
   Subkategorie-Grids gescopt (.cat-subs), globales .cat-grid unberührt. */
.cat-subs .cat-grid{display:flex;flex-wrap:wrap;justify-content:center}
.cat-subs .cat-grid > .cat{flex:0 1 288px;min-width:0}
/* #7/#14: Deko-Glyph vergrößert, damit die Kachel weniger leer wirkt und die (nun
   unterscheidbaren) Familien-Icons als Motiv tragen. Rot bleibt Signal → steel-2. */
.cat-subs .cat .ico{width:56px;height:56px;color:var(--steel-2)}
.cat-subs .cat .ico svg{width:100%;height:100%}

/* ---------- Einstieg / Ratgeber-Text + USPs ---------- */
.cat-intro{padding-top:clamp(20px,3vw,40px)}
.cat-intro-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:clamp(28px,5vw,56px);align-items:start}
.cat-intro-copy h2{font-size:var(--fs-h2);margin-bottom:1.1rem}
.cat-intro-copy p{color:var(--muted-2);font-size:var(--fs-lg);margin-top:1rem;max-width:62ch}
.cat-usps{list-style:none;margin:0;padding:22px;display:grid;gap:1.1rem;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel)}/* P4: entkachelt (flat-panel) */
.cat-usps li{display:flex;gap:.8rem;align-items:flex-start}
.cat-usps .usp-ico{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:var(--r);background:var(--panel-2);border:1px solid var(--line-2);color:var(--steel-2);margin-top:2px}/* P4: Rot-Kachel entfärbt (Deko-Icon → steel-2, AA); Design-Refresh 2026-07-16 P6: Icon-Kachel-Radius tokenisiert */
.cat-usps b{display:block;font-family:'Sora';font-size:var(--fs-md)}
.cat-usps span{color:var(--muted);font-size:var(--fs-base)}

/* ---------- Top-Produkte ---------- */
.cat-top .catalog-head{margin-bottom:22px}
.cat-top .catalog-head .eyebrow{margin-bottom:.7rem}
.cat-top .catalog-head h2{font-size:var(--fs-h2-sm)}

/* #25: Lange META-Namen (z. B. „MR GR 2200 × 1400 … mit 3 Böden MINI-RACK") wurden vom
   2-Zeilen-Clamp mitten im Wort gekappt — der unterscheidende Modell-/Maß-Token (MINI-RACK/
   SPEED-RACK) fiel weg, sodass Karten fast identisch wirkten. `overflow-wrap:anywhere` bricht
   das Kompositum an einer Wortgrenze statt hart im Wort; 3-Zeilen-Clamp gibt dem Namens-
   Schwanz mehr Platz. Passende min-height hält die Kartenreihen trotzdem ausgerichtet.
   (Die Maße stehen zusätzlich in .pcard-spec, bleiben also ohnehin sichtbar.)
   Nur auf die Top-Rail gescopt — andere Karten-Renderer (Listing/Home/Merkliste) unberührt. */
.cat-top .pcard-name{-webkit-line-clamp:3;overflow-wrap:anywhere;min-height:4.05em}

/* #9: Der „In 3D konfigurieren"-Balken (.pcard-cfg, bereits neutral/ghost) saß dicht unter
   dem roten Warenkorb-Button und ließ die Fußzeile gedrängt wirken — die primäre Aktion war
   nicht eindeutig. Klar mehr Abstand + deutlichere Zurücknahme (gedämpfte Farbe, kompaktere
   Zeile), damit der Warenkorb-/Anfragen-Button die einzige Primär-Aktion bleibt und der
   Konfigurator-Deeplink erkennbar sekundär ist. Rot bleibt für den Hover reserviert. */
.cat-top .pcard-cfg{margin-top:16px;padding-top:12px;color:var(--muted-2);font-size:var(--fs-sm);font-weight:var(--fw-medium)}
.cat-top .pcard-cfg svg{opacity:.7}

/* #19: In gemischten Rails (kragarm: 2 konfigurierbare MULTISTRONG-Karten mit .pcard-cfg-Zeile
   neben 6 Zubehör-Karten ohne) saßen die Preis-/CTA-Fußzeilen auf unterschiedlicher Höhe —
   die Kartenboxen streckt das Grid zwar auf gleiche Höhe, doch Karten OHNE Konfigurator-Zeile
   drückten ihre Fußzeile ganz nach unten, während sie bei Karten MIT Zeile über dem Deeplink
   steht. Ergebnis: unausgerichtete Reihen. Fix: auf Karten ohne .pcard-cfg einen Platzhalter
   in Höhe der Konfigurator-Zeile reservieren, sodass alle Fußzeilen einer Reihe fluchten.
   Höhe = margin-top(16) + border-box min-height(40, inkl. padding-top 12 + Trennlinie 1)
   der .pcard-cfg = 56px. */
.cat-top .pcard:not(:has(.pcard-cfg)) .pcard-body::after{content:"";display:block;height:56px;flex:0 0 auto}

/* ---------- Ratgeber-Teaser ---------- */
.cat-guide{display:grid;grid-template-columns:1.1fr .9fr;gap:0;border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden;background:var(--panel);box-shadow:var(--sh-2)}/* Visual-Audit 2026-07-06 (#13): Schatten -> Ratgeber-Block liest klar als Card, die 48px-Einrückung wirkt gewollt; P4: entkachelt (flat-panel) */
.cat-guide-body{padding:clamp(26px,3.4vw,48px);display:flex;flex-direction:column;justify-content:center}
.cat-guide-body .eyebrow{margin-bottom:1rem}
.cat-guide-body h2{font-size:var(--fs-title)}
.cat-guide-body p{color:var(--muted-2);margin:1rem 0 1.8rem;max-width:54ch}
.cat-guide-body .btn{align-self:flex-start}
.cat-guide-art{position:relative;min-height:240px;display:grid;place-items:center;border-left:1px solid var(--line);background:var(--panel-2)}/* P4: rotes Radial + Linienraster raus (Deko), ruhige Medien-Kachel */
.cat-guide-art svg{width:64%}

/* ---------- Cross-Kategorie-Navigation ---------- */
.cat-more-grid{display:flex;flex-wrap:wrap;gap:12px}
.cat-chip{display:inline-flex;align-items:center;gap:.7rem;padding:.7rem 1.1rem .7rem .8rem;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--muted-2);font-weight:var(--fw-semibold);font-size:var(--fs-sm);transition:.25s var(--ease)}/* P4: entkachelt (flat-panel); rund BLEIBT (Chip, kein Aktions-Control) */
.cat-chip:hover{color:var(--text);border-color:var(--line-2);transform:translateY(-2px);box-shadow:var(--sh-2)}
.cat-chip-ico{display:grid;place-items:center;width:30px;height:30px;border-radius:var(--r);background:var(--panel-2);border:1px solid var(--line-2);color:var(--steel-2)}/* Design-Refresh 2026-07-16 P6: Icon-Kachel-Radius tokenisiert */
.cat-chip-ico svg{width:17px;height:17px}
.cat-chip:hover .cat-chip-ico{color:var(--red)}
/* .cat-chip.is-current entfällt (#11/#33/#38/#124): die aktuelle Kategorie wird im
   „Weitere Bereiche"-Rail nicht mehr als roter Self-Link-Chip gerendert — der rote
   „aktiver Filter"-Look war irreführend, und der Chip erzeugte einen Umbruch-Orphan. */

/* ---------- responsive ---------- */
@media (max-width:980px){
  .cat-hero-grid{grid-template-columns:1fr}
  /* #6/#15: Visual bleibt sichtbar (order:-1, oben) — mit echtem Render bzw. verstärktem
     Glyph trägt es den Seitenkopf statt eines reinen Textblocks/leeren Grau-Klotzes. */
  .cat-hero-visual{order:-1;max-width:320px;margin-inline:auto;justify-self:center}
  .cat-hero-visual:not(.has-photo){padding:clamp(14px,4vw,22px)}
  .cat-intro-grid{grid-template-columns:1fr}
  .cat-guide{grid-template-columns:1fr}
  .cat-guide-art{border-left:none;border-top:1px solid var(--line);min-height:180px}
}
@media (max-width:560px){
  .cat-hero-visual{max-width:250px}
  .cat-top .catalog-head{flex-direction:column;align-items:flex-start;gap:14px}
}
