/* ---- PRODUCT DETAIL PAGE (PDP) ---- */
/* layered on index.css */

/* Breadcrumb (.pdp-crumb) now lives in index.css — it's site-wide chrome
   under the global nav, not PDP-specific. */

/* HERO */
.pdp-hero{background:#f5f5f3;padding:60px 0 80px;position:relative;overflow:hidden}
.pdp-hero-inner{display:grid;grid-template-columns:1.25fr 1fr;gap:60px;align-items:start;position:relative;z-index:1}
.pdp-hero-inner > .pdp-details{order:2}
.pdp-hero-inner > .pdp-gallery{order:1}

/* Gallery */
.pdp-gallery{display:flex;flex-direction:column;gap:14px}
.pdp-gallery-thumbs{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.pdp-gallery-thumbs .thumb{
  width:100%;aspect-ratio:16/9;border:1px solid #e2e2de;background:#fff;cursor:pointer;
  padding:0;overflow:hidden;transition:all .15s ease;position:relative;
}
.pdp-gallery-thumbs .thumb img{width:100%;height:100%;object-fit:cover;filter:grayscale(.3)}
.pdp-gallery-thumbs .thumb:hover{border-color:#0b0b0c}
.pdp-gallery-thumbs .thumb.active{border-color:var(--rok-orange);box-shadow:0 0 0 2px rgba(234,91,10,.18)}
.pdp-gallery-thumbs .thumb.active img{filter:none}
.pdp-stage{
  background:#fff;aspect-ratio:16/9;overflow:hidden;position:relative;
  border:1px solid #e2e2de;width:100%;
}
.pdp-stage img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}
.pdp-stage:hover img{transform:scale(1.05)}
.pdp-badge{
  position:absolute;top:12px;left:12px;z-index:2;background:#0b0b0c;color:#fff;
  padding:8px 14px;display:flex;align-items:center;gap:10px;
}
.pdp-badge .num{
  font-family:'Roboto',sans-serif;font-weight:900;font-style:italic;font-size:14px;color:var(--rok-orange);
}
.pdp-badge .lab{font-size:10px;letter-spacing:.18em;font-weight:700}
.pdp-gallery-meta{
  display:flex;gap:14px;align-items:center;
  font-size:11px;color:var(--rok-text-muted-accessible);letter-spacing:.1em;text-transform:uppercase;font-weight:600;
}
.pdp-gallery-meta .g-arrow{
  width:30px;height:30px;border:1px solid #ccc;background:#fff;cursor:pointer;font-size:14px;
}
.pdp-gallery-meta .g-arrow:hover{border-color:#0b0b0c;color:var(--rok-orange)}
.pdp-gallery-meta .sp{flex:1}

/* Details */
.pdp-details{padding-top:8px}
.pdp-eyebrow{
  display:flex;gap:10px;align-items:center;font-size:12px;color:var(--rok-text-muted-accessible);
  letter-spacing:.06em;font-weight:600;margin-bottom:18px;flex-wrap:wrap;
}
.pdp-eyebrow .dot{color:var(--rok-text-muted-accessible)}
.pdp-eyebrow .new{
  background:var(--rok-orange);color:var(--rok-text-on-orange);padding:3px 8px;font-size:10px;
  letter-spacing:.18em;text-transform:uppercase;font-weight:700;
}
.pdp-title{
  font-family:'Roboto',sans-serif;font-weight:900;font-style:italic;text-transform:uppercase;
  font-size:clamp(51px,6.4vw,96px);line-height:.88;letter-spacing:-.025em;
  margin:0 0 24px;color:#0b0b0c;
}
.pdp-title .thin{font-weight:200;font-style:normal;color:var(--rok-text-muted-accessible)}
.pdp-tagline{
  font-size:17px;line-height:1.55;color:#444;max-width:520px;margin:0 0 32px;
}

.pdp-bullets{list-style:none;padding:0;margin:0 0 36px}
.pdp-bullets li{
  display:grid;grid-template-columns:36px 1fr;gap:14px;
  padding:12px 0;border-bottom:1px solid #e2e2de;align-items:start;
  font-size:14.5px;line-height:1.5;color:#333;
}
.pdp-bullets li:last-child{border-bottom:0}
.pdp-bullets .b-num{
  font-family:'Roboto',sans-serif;font-weight:900;font-style:italic;font-size:13px;
  color:var(--rok-orange-text);letter-spacing:.05em;padding-top:1px;
}
.pdp-bullets b{color:#0b0b0c;font-weight:700}

.pdp-order{list-style:none;padding:0;margin:-18px 0 28px;border-top:1px solid #e2e2de}
.pdp-order li{
  display:flex;gap:10px 14px;align-items:baseline;flex-wrap:wrap;
  padding:10px 0;border-bottom:1px solid #e2e2de;font-size:13.5px;line-height:1.45;color:#333;
}
.pdp-order .art{
  font-family:'Roboto',sans-serif;font-weight:900;font-style:italic;color:#0b0b0c;
}
.pdp-order .variant{color:var(--rok-text-muted-accessible)}
.pdp-order .price{color:#444}

.pdp-cta-row{display:flex;gap:10px;align-items:center;margin-bottom:24px;flex-wrap:wrap}
.pdp-icon{
  width:48px;height:48px;border:1px solid #ccc;background:#fff;cursor:pointer;
  font-size:18px;transition:all .15s ease;
}
.pdp-icon:hover{border-color:var(--rok-orange);color:var(--rok-orange)}

.pdp-availability{
  display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;
  background:#fff;border:1px solid #e2e2de;padding:16px 18px;margin-bottom:24px;
}
.pdp-availability .ind{
  width:10px;height:10px;border-radius:50%;background:#3aaa5e;
  box-shadow:0 0 0 4px rgba(58,170,94,.18);
}
.pdp-availability strong{display:block;font-size:14px;color:#0b0b0c;margin-bottom:2px}
.pdp-availability span{font-size:12px;color:var(--rok-text-muted-accessible)}

.pdp-quick-meta{
  display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:#e2e2de;
  border:1px solid #e2e2de;
}
.pdp-quick-meta > div{background:#fff;padding:14px 16px}
.pdp-quick-meta .k{font-size:11px;color:var(--rok-text-muted-accessible);letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px}
.pdp-quick-meta .v{
  font-family:'Roboto',sans-serif;font-weight:900;font-style:italic;font-size:18px;color:#0b0b0c;
}

/* STICKY SUB-NAV */
.pdp-subnav{
  position:sticky;top:var(--nav-h, 99px);z-index:30;background:#0b0b0c;color:#fff;
  border-bottom:1px solid rgba(255,255,255,.1);
}
/* offset anchor jumps so section tops aren't hidden behind nav + subnav */
#overview, #features, #tech, #downloads, #accessories{scroll-margin-top:160px}
.pdp-subnav-inner{display:flex;align-items:center;gap:32px;padding:14px 0}
.pdp-subnav-prod{display:flex;align-items:center;gap:10px}
.pdp-subnav-prod .num{
  font-family:'Roboto',sans-serif;font-weight:900;font-style:italic;color:var(--rok-orange);font-size:13px;
}
.pdp-subnav-prod .name{
  font-family:'Roboto',sans-serif;font-weight:900;font-style:italic;text-transform:uppercase;font-size:16px;
}
.pdp-subnav-prod .name em{font-style:italic;font-weight:200;color:rgba(255,255,255,.7)}
.pdp-subnav-links{display:flex;gap:24px;flex:1}
.pdp-subnav-links a{
  color:rgba(255,255,255,.6);text-decoration:none;font-size:13px;font-weight:600;
  letter-spacing:.04em;padding:8px 0;position:relative;transition:color .15s ease;
}
.pdp-subnav-links a:hover,.pdp-subnav-links a.active{color:#fff}
.pdp-subnav-links a.active::after{
  content:"";position:absolute;left:0;right:0;bottom:-15px;height:2px;background:var(--rok-orange);
}
.v2-btn.small{padding:10px 18px;font-size:11px}

/* GENERIC SECTIONS */
.pdp-section{padding:120px 0;background:#fff}
.pdp-section.pdp-overview{background:#fff}
.pdp-description{max-width:66.6667%}
/* A11y-Audit 31.08.2026: Links im Beschreibungstext erben --rok-link, also das
   Marken-Orange. Bei 12pt ergab das 3.5:1 — AA verlangt 4.5:1.
   colors_and_type.css:40-43 regelt genau diesen Fall: die Marke gilt fuer
   Flaechen, Logos und grosse Display-Texte, kleiner Orange-Text nimmt
   --rok-orange-text (5.6:1 auf Weiss). Die Marke wird also nicht veraendert,
   nur an der richtigen Stelle angewandt.
   BEWUSST ENG auf .pdp-description begrenzt: die globale Link-Farbe zu drehen
   waere ein sichtbarer Eingriff ins Erscheinungsbild der ganzen Site und
   gehoert dem Owner vorgelegt, nicht nebenbei erledigt. */
.pdp-description a{color:var(--rok-orange-text)}
.pdp-section.pdp-tech{background:#f5f5f3}
.pdp-section.pdp-acc{background:#f5f5f3}
.pdp-section.pdp-related{background:#fff}
.pdp-section.pdp-video{background:#fff}

/* Video-Sektion nutzt das identische cat-card-Layout wie OtherCategoriesGrid.
   Im .img-Slot sitzt vor dem Klick eine lokale Facade (.video-facade,
   2-Klick-Lösung); erst der Klick injiziert das youtube-nocookie-iframe
   (s. video-play.js). Sequenz-Nummer steht im Body-Kicker ("Video · YouTube
   · 02"), nicht als Overlay im Player. */
.cat-card.video-card{cursor:default}
.cat-card.video-card:hover{background:#fff}
.cat-card.video-card .img{background:#000;position:relative}
.cat-card.video-card .img iframe{
  position:absolute;inset:0;width:100%;height:100%;border:0;display:block;
}
/* Lokale Facade (2-Klick-Lösung, DSGVO): vor dem Klick lädt NICHTS von
   Google/YouTube. Cubic/scharfkantig gemäß Design-System (kein border-radius). */
.video-facade{
  position:absolute;inset:0;width:100%;height:100%;border:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:14px;padding:24px;text-align:center;cursor:pointer;
  background:#0b0b0c;color:#fff;transition:background .15s;
}
.video-facade:hover{background:#161618}
/* Mit lokalem Standbild: Bild als Hintergrund + dunkler Scrim für Kontrast. */
.video-facade.has-poster{background-size:cover;background-position:center;background-repeat:no-repeat}
.video-facade.has-poster::before{
  content:"";position:absolute;inset:0;background:rgba(11,11,12,.5);transition:background .15s;
}
.video-facade.has-poster:hover{background-color:#0b0b0c}
.video-facade.has-poster:hover::before{background:rgba(11,11,12,.32)}
.video-facade-play{
  position:relative;z-index:1;
  display:flex;align-items:center;justify-content:center;
  width:56px;height:56px;background:var(--rok-orange);color:#fff;flex:0 0 auto;
}
.video-facade:hover .video-facade-play{background:#000}
.video-facade-hint{
  position:relative;z-index:1;
  font-size:13px;line-height:1.4;max-width:34ch;color:#e0e0e0;
}
.video-facade.has-poster .video-facade-hint{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.6)}
.video-facade:focus-visible{outline:3px solid var(--rok-orange);outline-offset:-3px}
/* Hinweis "YouTube ist aktiviert · deaktivieren" im Section-Head — nur sichtbar,
   wenn video-play.js bei bestehender Einwilligung das [hidden] entfernt. */
.pdp-yt-consent-note{
  margin:14px 0 0;font-size:13px;color:var(--rok-text-muted-accessible);
}
.pdp-yt-consent-note .link{
  background:none;border:0;padding:0;font:inherit;cursor:pointer;
  color:var(--rok-orange);text-decoration:underline;text-underline-offset:3px;
}
.pdp-yt-consent-note .link:hover{color:#000}
/* Foot-Link verhält sich wie eine Action-Link-Zeile (Hover → orange, Pfeil
   rückt nach rechts) — analog zur cat-card auf Kategorie-Seiten. */
/* Foot-Button (Video starten) ist ein <button>, nicht ein <a> — Reset der
   Browser-Defaults, damit er wie die normale .foot .link-Zeile der cat-card
   aussieht. Klick triggert postMessage an das iframe (s. video-play.js). */
.cat-card.video-card .foot .link{
  background:none;border:0;padding:0;font:inherit;color:#0b0b0c;
  cursor:pointer;text-align:left;
}
.cat-card.video-card:hover .foot .link{color:var(--rok-orange)}
.cat-card.video-card .foot .arr{color:var(--rok-text-muted-accessible);transition:all .15s}
.cat-card.video-card:hover .foot .arr{color:var(--rok-orange);transform:translateX(4px)}

.pdp-section-head{margin-bottom:64px}
.pdp-section-head h2{
  font-family:'Roboto',sans-serif;font-weight:900;font-style:italic;text-transform:uppercase;
  font-size:clamp(48px,6vw,84px);line-height:.92;letter-spacing:-.02em;
  margin:14px 0 0;color:#0b0b0c;
}
.pdp-section-head h2 .thin{font-weight:200;font-style:normal;color:var(--rok-text-muted-accessible)}

/* OVERVIEW */
.pdp-overview-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#e2e2de;border:1px solid #e2e2de}
.pdp-overview-grid .card{background:#fff;padding:32px 28px;position:relative}
.pdp-overview-grid .num{
  position:absolute;top:24px;right:24px;
  font-family:'Roboto',sans-serif;font-weight:900;font-style:italic;color:#8f8f8f;font-size:36px;
}
.pdp-overview-grid h4{
  font-family:'Roboto',sans-serif;font-weight:700;font-size:17px;margin:32px 0 12px;color:#0b0b0c;line-height:1.3;
}
.pdp-overview-grid p{font-size:14px;line-height:1.6;color:var(--rok-text-muted-accessible);margin:0}
.pdp-overview-grid .card:hover{background:#fafaf7}
.pdp-overview-grid .card:hover .num{color:var(--rok-orange)}

/* STORY */
.pdp-story-row{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;margin-bottom:80px}
.pdp-story-row:last-child{margin-bottom:0}
.pdp-story-row.reverse .img{order:2}
.pdp-story-row .img{aspect-ratio:16/9;overflow:hidden;background:#0b0b0c}
.pdp-story-row .img img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(.2)}
.pdp-story-row .txt h2{
  font-family:'Roboto',sans-serif;font-weight:900;font-style:italic;text-transform:uppercase;
  font-size:clamp(40px,5vw,72px);line-height:.92;letter-spacing:-.02em;
  margin:14px 0 20px;color:#0b0b0c;
}
.pdp-story-row .txt h2 .thin{font-weight:200;font-style:normal;color:var(--rok-text-muted-accessible)}
.pdp-story-row .txt p{font-size:16px;line-height:1.6;color:#444;margin:0 0 24px;max-width:480px}
.pdp-list{list-style:none;padding:0;margin:0}
.pdp-list li{
  position:relative;padding:10px 0 10px 22px;border-bottom:1px solid #e2e2de;
  font-size:14px;line-height:1.5;color:#444;
}
.pdp-list li::before{
  content:"";position:absolute;left:0;top:18px;width:10px;height:1px;background:var(--rok-orange);
}
.pdp-list b{color:#0b0b0c;font-weight:700}

/* TECH SPECS */
.pdp-tech-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px}
.pdp-tech-grid .col h3{
  font-family:'Roboto',sans-serif;font-weight:900;font-style:italic;text-transform:uppercase;
  font-size:14px;letter-spacing:.06em;color:var(--rok-orange-text);margin:0 0 16px;
}
.pdp-tech-grid table{width:100%;border-collapse:collapse;font-size:13.5px}
.pdp-tech-grid table tr{border-bottom:1px solid #e2e2de}
.pdp-tech-grid table th{
  text-align:left;padding:10px 0;color:var(--rok-text-muted-accessible);font-weight:500;width:50%;
}
.pdp-tech-grid table td{
  text-align:left;padding:10px 0;color:#0b0b0c;font-weight:600;
}
/* ARTIKEL-INFO — einzeilige Zeilen statt Umbruch.
   Die 50/50-Teilung oben ist für die Technische-Daten-Tabelle gemacht (lange
   Labels wie „Akkuspannung/-kapazität"). Hier sind die Labels kurz („Art.-Nr.",
   „Preis"), die 50 % schoben den Wert unnötig weit nach rechts und erzwangen
   dadurch den Umbruch. Deshalb NUR für diese Spalte: Label auf Inhaltsbreite,
   Wertzelle als flex-Zeile — Primärwert (Art.-Nr. bzw. Betrag) links, Zusatz
   (Variante bzw. „UVP … exkl. MwSt.") rechts.
   Gleiche Spezifität wie die Regeln oben ⇒ die Position NACH ihnen ist tragend. */
.pdp-product-info table th{width:1%;white-space:nowrap;padding-right:16px}
.pdp-product-info table td{
  display:flex;justify-content:space-between;align-items:baseline;gap:12px;white-space:nowrap;
}
.pdp-product-info .variant,.pdp-product-info .price-markers{
  color:var(--rok-text-muted-accessible);font-weight:500;text-align:right;white-space:normal;
}
.pdp-incl{list-style:none;padding:0;margin:0;font-size:13.5px}
.pdp-incl li{padding:8px 0;border-bottom:1px solid #e2e2de;color:#0b0b0c;position:relative;padding-left:18px}
.pdp-incl li::before{content:"+";position:absolute;left:0;color:var(--rok-orange-text);font-weight:900}
.pdp-incl li.muted{color:var(--rok-text-muted-accessible)}
.pdp-incl li.muted::before{content:"○";color:var(--rok-text-muted-accessible)}
.pdp-incl.pdp-areas li{
  padding-left:0;display:flex;justify-content:space-between;gap:12px;align-items:center;
}
.pdp-incl.pdp-areas li::before{content:none}
.pdp-incl.pdp-areas .rating{
  color:var(--rok-orange-text);letter-spacing:1px;font-size:14px;white-space:nowrap;
}
.pdp-incl.pdp-areas .rating .muted{color:var(--rok-text-muted-accessible)}

/* DOWNLOADS
   Das Grid zeichnet seine Hairlines als Hintergrund durch die 1px-Gaps —
   unbesetzte Zellen der letzten Reihe bleiben darum als graue Fläche stehen.
   Bei zwei Downloads sah das aus wie "eine leere dritte Spalte" (conv418).
   Die Spalten-/Span-Logik steht in den drei Breakpoint-Blöcken direkt darunter. */
.pdp-dl-grid{
  display:grid;gap:1px;
  background:var(--rok-gray-200-warm);border:1px solid var(--rok-gray-200-warm);
}
.pdp-dl-grid .dl{
  background:#fff;padding:24px 28px;display:grid;grid-template-columns:auto 1fr auto;gap:18px;
  align-items:center;cursor:pointer;text-decoration:none;color:inherit;transition:all .15s ease;
}
/* Auffüllung der letzten Reihe. Bewusst in EXKLUSIVEN Breakpoint-Bereichen —
   gleiche Bauform wie die .nl-fill-card-Regeln in index_category.css; so muss
   kein Bereich die Spannen eines anderen zurücknehmen. Die Basis-Spaltenzahl
   ist verdoppelt, damit eine Karte auch eine halbe Reihe spannen kann. */
@media (min-width:1101px){                        /* 3 pro Reihe */
  .pdp-dl-grid{grid-template-columns:repeat(6,1fr)}
  .pdp-dl-grid .dl{grid-column:span 2}
  /* Rest 2 → die letzten zwei Karten teilen sich die Reihe */
  .pdp-dl-grid:has(.dl:nth-last-child(2):nth-child(3n+1)) .dl:nth-last-child(-n+2){grid-column:span 3}
  /* Rest 1 → die letzte Karte nimmt die ganze Reihe */
  .pdp-dl-grid:has(.dl:last-child:nth-child(3n+1)) .dl:last-child{grid-column:span 6}
  /* Sonderfall genau 4: 2×2 statt 3+1 — eine verwaiste vierte Karte ist
     optisch ein Fehler, kein Layout (Owner-Regel 29.07.). Steht nach der
     Rest-1-Regel und ist gleich spezifisch, nimmt sie also zurück. */
  .pdp-dl-grid:has(.dl:last-child:nth-child(4)) .dl:nth-child(-n+4){grid-column:span 3}
}
@media (min-width:701px) and (max-width:1100px){  /* 2 pro Reihe, 4 Karten = 2×2 */
  .pdp-dl-grid{grid-template-columns:repeat(4,1fr)}
  .pdp-dl-grid .dl{grid-column:span 2}
  .pdp-dl-grid:has(.dl:last-child:nth-child(odd)) .dl:last-child{grid-column:span 4}
}
@media (max-width:700px){                         /* 1 pro Reihe */
  .pdp-dl-grid{grid-template-columns:1fr}
  .pdp-dl-grid .dl{grid-column:auto}
}
.pdp-dl-grid .dl:hover{background:#0b0b0c;color:#fff}
.pdp-dl-grid .dl-ic{
  width:48px;height:48px;background:#0b0b0c;color:#fff;display:flex;align-items:center;justify-content:center;
  font-family:'Roboto',sans-serif;font-weight:900;font-size:11px;letter-spacing:.05em;
}
.pdp-dl-grid .dl:hover .dl-ic{background:var(--rok-orange)}
.pdp-dl-grid .dl-body h3{
  font-family:'Roboto',sans-serif;font-weight:700;font-size:14px;margin:0 0 4px;line-height:1.3;
}
.pdp-dl-grid .dl:hover .dl-body h3{color:#fff}
.pdp-dl-grid .dl-body span{font-size:11px;color:var(--rok-text-muted-accessible);letter-spacing:.04em}
.pdp-dl-grid .dl:hover .dl-body span{color:rgba(255,255,255,.5)}
.pdp-dl-grid .dl-arr{font-size:20px;color:var(--rok-text-muted-accessible)}
.pdp-dl-grid .dl:hover .dl-arr{color:var(--rok-orange)}
/* Leeres Grid unsichtbar: ohne Kinder bliebe sonst der 1px-Border-Streifen
   stehen (0-Downloads-Fall und Certificate-only-Fall). */
.pdp-dl-grid:empty{display:none}
/* Konformitätserklärung — Unterbereich unter dem Haupt-Grid, gleiche
   Kachel-Optik, Kopf im Stil der Technik-Spalten-Überschriften. */
.pdp-dl-conformity{margin-top:40px}
.pdp-dl-conformity .pdp-dl-subhead{
  font-family:'Roboto',sans-serif;font-weight:900;font-style:italic;text-transform:uppercase;
  font-size:14px;letter-spacing:.06em;color:var(--rok-orange-text);margin:0 0 16px;
}

/* ACCESSORIES */
.pdp-acc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#e2e2de;border:1px solid #e2e2de}
.pdp-acc-grid .acc{
  background:#fff;padding:32px 28px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;
  text-decoration:none;color:inherit;cursor:pointer;transition:all .15s ease;position:relative;
}
.pdp-acc-grid .acc:hover{background:#fff;box-shadow:inset 0 -3px 0 var(--rok-orange)}
.pdp-acc-grid .acc-img{
  width:100%;aspect-ratio:1.2/1;background:#fafafa;display:flex;align-items:center;justify-content:center;
  margin-bottom:14px;
}
.pdp-acc-grid .acc-img img{width:55%;height:55%;object-fit:contain;filter:grayscale(.5);transition:filter .2s}
.pdp-acc-grid .acc:hover .acc-img img{filter:none}
.pdp-acc-grid .acc-img svg{width:55%;height:55%;color:#666;transition:color .2s}
.pdp-acc-grid .acc:hover .acc-img svg{color:var(--rok-orange)}
.pdp-acc-grid .acc-num{
  font-family:'Roboto',sans-serif;font-weight:900;font-style:italic;font-size:13px;color:var(--rok-orange-text);
}
.pdp-acc-grid h5{
  font-family:'Roboto',sans-serif;font-weight:700;font-size:15px;margin:0;color:#0b0b0c;line-height:1.3;
}
.pdp-acc-grid span{font-size:12px;color:var(--rok-text-muted-accessible)}
.pdp-acc-grid .acc-arr{
  position:absolute;top:24px;right:24px;font-size:18px;color:var(--rok-text-muted-accessible);transition:color .15s;
}
.pdp-acc-grid .acc:hover .acc-arr{color:var(--rok-orange)}

/* RELATED — uses the shared .cat-grid / .cat-card layout from index_category.css
   so the "passend dazu" grid is visually identical to a category overview. */

/* DEALER STRIPE */
.pdp-dealer-stripe{background:#0b0b0c;color:#fff;padding:56px 0}
.pdp-dealer-inner{display:flex;align-items:center;justify-content:space-between;gap:48px}
.pdp-dealer-stripe .v2-eyebrow{color:rgba(255,255,255,.5)}
.pdp-dealer-stripe h3{
  font-family:'Roboto',sans-serif;font-weight:900;font-style:italic;text-transform:uppercase;
  font-size:clamp(28px,3.5vw,44px);line-height:1.05;letter-spacing:-.01em;margin:8px 0 0;color:#fff;
}
.pdp-dealer-stripe h3 .thin{font-weight:300;font-style:normal;color:rgba(255,255,255,.65)}
.pdp-dealer-stripe .orange{color:var(--rok-orange)}
.v2-btn.light{background:#fff;color:#0b0b0c;border-color:#fff}
.v2-btn.light:hover{background:var(--rok-orange);border-color:var(--rok-orange);color:#fff}

/* PDP HERO SLIDESHOW
   Lives inside the existing .pdp-stage frame (16:9 aspect-ratio is preserved).
   Slides are absolute-positioned and crossfade on .active. Each <img> runs a
   Ken Burns zoom, mirroring the homepage hero pattern. */
.pdp-stage--slideshow:hover img{transform:none} /* defeat the base hover-scale */
.pdp-slide{
  position:absolute;inset:0;opacity:0;pointer-events:none;
  transition:opacity .7s cubic-bezier(.22,1,.36,1);
}
.pdp-slide.active{opacity:1;pointer-events:auto}
.pdp-slide img{
  width:100%;height:100%;object-fit:cover;display:block;
  animation:pdp-kenburn 18s ease-in-out infinite alternate;
}
@keyframes pdp-kenburn{
  from{transform:scale(1.04) translate(0,0)}
  to{transform:scale(1.12) translate(-1.5%,-1.5%)}
}
.pdp-stage-arrow{
  position:absolute;top:50%;transform:translateY(-50%);z-index:3;
  width:38px;height:38px;border:none;background:rgba(11,11,12,.45);
  color:#fff;display:flex;align-items:center;justify-content:center;
  cursor:pointer;backdrop-filter:blur(4px);
  opacity:0;pointer-events:none;
  transition:opacity .2s ease, background .15s ease;
}
.pdp-stage-arrow:hover{background:var(--rok-orange)}
.pdp-stage-arrow.prev{left:10px}
.pdp-stage-arrow.next{right:10px}
/* Reveal arrows on hover or keyboard focus; touch devices have no hover
   capability so we keep them visible there. */
.pdp-stage--slideshow:hover .pdp-stage-arrow,
.pdp-stage--slideshow:focus-within .pdp-stage-arrow{
  opacity:1;pointer-events:auto;
}
@media (hover:none){
  .pdp-stage-arrow{opacity:1;pointer-events:auto}
}
.pdp-stage-dots{
  position:absolute;left:50%;bottom:12px;transform:translateX(-50%);
  /* gap 6px -> 0: die Trefferflaechen sind jetzt 24px breit (s.u.) und tragen
     den Abstand selbst. Mit zusaetzlichem gap stuenden die Punkte doppelt so
     weit auseinander wie vorher. */
  display:flex;gap:0;z-index:3;
}
/* A11y-Audit 31.08.2026, Maschinen-PDP: die Punkte waren 8x8 px (aktiv 18x8).
   WCAG 2.5.8 AA verlangt 24x24 — Lighthouse meldete target-size auf allen 519
   Produktseiten. Die Spacing-Ausnahme der Regel griff nicht: bei 8px Punkt und
   6px Abstand lagen die Mittelpunkte 14px auseinander, ein 24px-Kreis schnitt
   also immer den Nachbarn.
   Geloest ueber die Trennung von Trefferflaeche und Anzeige: der <button> wird
   24x24 und unsichtbar, der sichtbare Punkt kommt aus ::before und behaelt
   seine 8px bzw. 18px im aktiven Zustand. Das Erscheinungsbild bleibt damit
   bis auf den Abstand gleich — der waechst von 6 auf 16px, weil eine korrekte
   Trefferflaeche nicht kleiner sein kann als die Regel verlangt. */
.pdp-stage-dots button{
  width:24px;height:24px;border:none;background:none;padding:0;
  display:grid;place-items:center;cursor:pointer;
}
.pdp-stage-dots button::before{
  content:"";display:block;
  width:8px;height:8px;background:var(--rok-white-a50);
  transition:background .15s ease, width .15s ease;
}
.pdp-stage-dots button.active::before{background:var(--rok-orange);width:18px}
.pdp-stage-counter{
  position:absolute;top:12px;right:12px;z-index:3;color:#fff;
  font-size:11px;letter-spacing:.16em;font-weight:700;
  background:rgba(11,11,12,.45);padding:6px 10px;backdrop-filter:blur(4px);
}
.pdp-stage-counter .sep{margin:0 4px;color:rgba(255,255,255,.5)}
@media (max-width:700px){
  .pdp-stage-arrow{width:32px;height:32px}
  .pdp-stage-counter{font-size:10px;padding:4px 8px}
}

/* RESPONSIVE */
@media (max-width:1100px){
  .pdp-hero-inner{grid-template-columns:1fr;gap:48px}
  .pdp-overview-grid{grid-template-columns:repeat(2,1fr)}
  .pdp-tech-grid{grid-template-columns:repeat(2,1fr)}
  /* .pdp-dl-grid: eigener Breakpoint-Block oben (exklusive Bereiche) */
  .pdp-acc-grid{grid-template-columns:repeat(2,1fr)}
  .pdp-story-row{grid-template-columns:1fr;gap:24px}
  .pdp-story-row.reverse .img{order:0}
  .pdp-subnav-links{display:none}
}
@media (max-width:700px){
  .pdp-gallery-thumbs{grid-template-columns:repeat(5,1fr);gap:6px}
  /* .pdp-dl-grid: eigener Breakpoint-Block oben (exklusive Bereiche) */
  .pdp-overview-grid,.pdp-tech-grid,.pdp-acc-grid{grid-template-columns:1fr}
  .pdp-quick-meta{grid-template-columns:repeat(2,1fr)}
  .pdp-dealer-inner{flex-direction:column;align-items:flex-start;text-align:left}
  .pdp-description{max-width:100%}
}
