.ff-thumb:hover,.ff-thumb.is-active{border-color:var(--accent)!important;}
#ff-zoom-box{ cursor:default; }
#ff-zoom-box.zoom-active{ cursor:crosshair; }
/* Zoom button — always visible */
#ff-zoom-btn{
  opacity:1;transition:transform .2s,background .15s;
  background:rgba(255,255,255,.92);
}
#ff-zoom-btn.zoom-active{
  background:var(--accent,#B8860B)!important;
  border-color:var(--accent,#B8860B)!important;
}
#ff-zoom-btn.zoom-active span{ color:#fff!important; }
#ff-zoom-btn:hover{ transform:scale(1.08); background:rgba(255,255,255,1)!important; }
/* Product tabs */
button.ff-sp-tab{background:none!important;border:none!important;border-bottom:2px solid transparent!important;border-radius:0!important;padding:14px 24px!important;font-size:14px!important;font-weight:600!important;color:var(--text3)!important;cursor:pointer;font-family:var(--font)!important;margin-bottom:-1.5px;transition:color .15s;box-shadow:none!important;}
button.ff-sp-tab.is-active{border-bottom-color:var(--accent)!important;color:var(--text)!important;font-weight:700!important;}
button.ff-sp-tab:hover{color:var(--text)!important;}
#ff-tab-nav{overflow-x:auto;scrollbar-width:none;}
#ff-tab-nav::-webkit-scrollbar{display:none;}
button.ff-sp-tab{white-space:nowrap;flex-shrink:0;}
@media (max-width:640px){
  button.ff-sp-tab{padding:12px 14px!important;font-size:13px!important;}
}
/* ── Beschreibungstext ──────────────────────────────────────────────────
   Der Text kommt als H3-gegliedertes HTML aus der Datenbank. Er braucht eine
   eigene Typografie, sonst erbt er die Browser-Standardwerte: H3 riesig und
   fett, Absaetze ohne Rhythmus, Zeilen ueber die ganze Breite.
   Zeilenlaenge auf 66 Zeichen begrenzt — darueber verliert man beim
   Zurueckspringen die Zeile. */
.ff-sp-desc{
  max-width:66ch;
  font-size:15px;
  line-height:1.75;
  color:var(--text2,var(--text3));
}
.ff-sp-desc > :first-child{margin-top:0;}
.ff-sp-desc > :last-child{margin-bottom:0;}
.ff-sp-desc p{margin:0 0 16px;}
/* Der erste Absatz fasst das Produkt zusammen und darf etwas lauter sein. */
.ff-sp-desc > p:first-of-type{
  font-size:16.5px;
  line-height:1.65;
  color:var(--text);
}
/* Abschnitte durch eine Haarlinie trennen statt durch groessere Schrift —
   das haelt die Ueberschriften ruhig und gliedert trotzdem sichtbar. */
.ff-sp-desc h3{
  font-size:15px;
  font-weight:700;
  letter-spacing:-0.01em;
  color:var(--text);
  margin:34px 0 10px;
  padding-top:22px;
  border-top:1px solid var(--border);
  line-height:1.35;
  text-wrap:balance;
}
.ff-sp-desc h3:first-child{margin-top:0;padding-top:0;border-top:none;}
.ff-sp-desc h4{font-size:14px;font-weight:700;color:var(--text);margin:22px 0 6px;}
.ff-sp-desc strong{font-weight:650;color:var(--text);}
.ff-sp-desc a{color:var(--accent);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px;}
.ff-sp-desc ul,.ff-sp-desc ol{margin:0 0 16px;padding-left:20px;}
.ff-sp-desc li{margin-bottom:6px;}
.ff-sp-desc li::marker{color:var(--accent);}
.ff-sp-desc table{width:100%;border-collapse:collapse;margin:0 0 18px;font-size:14px;}
.ff-sp-desc td,.ff-sp-desc th{padding:9px 0;border-bottom:1px solid var(--border);text-align:left;}
@media (max-width:768px){
  .ff-sp-desc{font-size:14.5px;}
  .ff-sp-desc > p:first-of-type{font-size:15.5px;}
  .ff-sp-desc h3{margin-top:26px;padding-top:18px;}
}
.ff-td-l{padding:14px 0;font-size:14px;font-weight:600;color:var(--text3);width:180px;}
.ff-td-r{padding:14px 0;font-size:14px;font-weight:600;color:var(--text);}
/* Compact swatches */
.ff-swatch{all:unset!important;display:inline-block!important;padding:5px 12px!important;border-radius:8px!important;border:1.5px solid var(--border)!important;background:var(--bg)!important;font-size:12px!important;font-weight:600!important;color:var(--text)!important;cursor:default!important;font-family:var(--font)!important;transition:all .15s!important;line-height:1.3!important;white-space:nowrap!important;box-sizing:border-box!important;}
.ff-swatch:hover{border-color:var(--accent)!important;background:rgba(184,134,11,.06)!important;}
.ff-swatch.is-active{border-color:var(--accent)!important;background:rgba(184,134,11,.06)!important;opacity:1!important;}
.ff-swatch.is-oos{opacity:.3!important;text-decoration:line-through!important;pointer-events:none!important;cursor:not-allowed!important;}
.ff-prod-grid{grid-template-columns:1fr 1fr;}
@media(max-width:768px){
  .ff-prod-grid{grid-template-columns:1fr!important;}
  #ff-variants{flex-direction:column!important;}
  #ff-variants > span[style*="width:1px"]{display:none!important;}
  /* Card padding kompakter */
  .kfg__card{padding:20px!important;}
  /* Preisblock und Kaufknoepfe: siehe assets/css/product.css */
  /* Swatch-Rows vertikaler Abstand */
  .ff-color-swatch-link .ff-attr-swatch{margin-bottom:0;}
  /* Tippflaeche >= 44 px fuer Groessen-/ET-/LK-Wahl */
  .ff-swatch{min-height:44px!important;min-width:44px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;}
  /* Technische Daten: 1 Spalte */
  .ff-specs-grid{grid-template-columns:1fr!important;}
  .ff-td-l{width:auto!important;}
}
.ff-color-swatch-link:hover{border-color:var(--border)!important;background:rgba(184,134,11,.04);}
