/* ===== FEIFER — katalog + detail (navazuje na hala.css) ===== */

/* breadcrumb */
.A__crumb { border-bottom:1px solid var(--line); }
.A__crumb .wrap { display:flex; align-items:center; gap:9px; height:46px; font-family:var(--mono); font-size:12px; color:var(--faint); }
.A__crumb a:hover { color:#fff; }
body.light .A__crumb a:hover { color:var(--ink); }
.A__crumb .sep { opacity:.5; }
.A__crumb .cur { color:var(--red); }

/* page head */
.cat__head { padding:36px 0 26px; }
.wrap.cat__head { padding-left:var(--gutter); padding-right:var(--gutter); }
.cat__eyebrow { font-family:var(--mono); font-size:12px; letter-spacing:.08em; color:var(--red); text-transform:uppercase; }
.cat__head h1 { font-size:46px; font-weight:900; text-transform:uppercase; letter-spacing:-.02em; margin-top:8px; }
.cat__head p { color:var(--mut); font-size:15px; margin-top:12px; max-width:60ch; line-height:1.55; }
.cat__head .cnt { color:var(--mut); font-size:14px; margin-top:10px; font-family:var(--mono); }
.cat__head .cnt b { color:var(--red); }

/* layout */
.cat__layout { display:grid; grid-template-columns:264px 1fr; gap:30px; align-items:start; padding-bottom:60px; }

/* filters */
.cat__side { position:sticky; top:132px; border:1px solid var(--line); border-radius:var(--rad-lg); background:var(--char-2); max-height:calc(100vh - 150px); overflow-y:auto; scrollbar-width:thin; }
body.light .cat__side { background:#fff; }
.fgrp { border-bottom:1px solid var(--line); padding:18px 18px; }
.fgrp:last-child { border-bottom:none; }
.fgrp h4 { font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--faint); margin-bottom:14px; }
/* category nav v sidebaru */
.fgrp--cats { background:var(--char); }
body.light .fgrp--cats { background:#f7f8fa; }
.catnav2 { display:flex; flex-direction:column; gap:2px; }
.catnav2__grp { display:flex; flex-direction:column; }
.catnav2__h { width:100%; display:flex; align-items:center; gap:8px; padding:11px 12px; font-size:14px; font-weight:700; color:var(--mut); background:none; border:none; border-left:2px solid transparent; cursor:pointer; font-family:var(--exo); text-align:left; transition:.12s; }
.catnav2__h .catnav2__n { margin-left:auto; font-family:var(--mono); font-size:11px; color:var(--faint); font-weight:600; }
.catnav2__chev { color:var(--faint); transition:transform .2s; flex-shrink:0; }
.catnav2__h:hover { color:#fff; background:var(--char-3); border-left-color:var(--red); }
body.light .catnav2__h:hover { color:var(--ink); background:#fff; }
.catnav2__grp.open .catnav2__h, .catnav2__h.on { color:var(--red); border-left-color:var(--red); }
.catnav2__grp.open .catnav2__chev { transform:rotate(180deg); color:var(--red); }
.catnav2__body { display:none; flex-direction:column; padding-top:2px; }
.catnav2__grp.open .catnav2__body { display:flex; }
.catnav2__sub { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 12px 9px 24px; font-size:13.5px; font-weight:500; color:var(--mut); border-left:2px solid transparent; transition:.12s; }
.catnav2__sub span { font-family:var(--mono); font-size:10.5px; color:var(--faint); }
.catnav2__sub:hover { color:var(--red); background:var(--char-3); }
body.light .catnav2__sub:hover { background:#fff; }
.fopt { display:flex; align-items:center; gap:10px; padding:7px 0; font-size:14px; color:var(--mut); cursor:pointer; }
.fopt:hover { color:#fff; }
body.light .fopt:hover { color:var(--ink); }
.fopt input { accent-color:var(--red); width:16px; height:16px; }
.fopt .n { margin-left:auto; font-family:var(--mono); font-size:11px; color:var(--faint); }
.fchips { display:flex; flex-wrap:wrap; gap:8px; }
.fchip { padding:7px 12px; border:1px solid var(--line); font-size:12.5px; font-weight:600; color:var(--mut); cursor:pointer; transition:.12s; }
.fchip:hover { border-color:var(--red); color:#fff; }
.fchip.on { background:var(--red); border-color:var(--red); color:#fff; }
body.light .fchip:hover { color:var(--ink); }
body.light .fchip.on { color:#fff; }

/* toolbar */
.cat__bar { display:flex; align-items:center; gap:16px; flex-wrap:wrap; border:1px solid var(--line); border-radius:var(--rad-lg); background:var(--char-2); padding:12px 16px; margin-bottom:18px; position:sticky; top:132px; z-index:30; }
body.light .cat__bar { background:#fff; }
.cat__bar .res { font-size:13.5px; color:var(--mut); }
.cat__bar .res b { color:#fff; font-family:var(--mono); }
body.light .cat__bar .res b { color:var(--ink); }
.cat__bar .sp { flex:1; }
.cat__sort { display:flex; align-items:center; gap:9px; }
.cat__sort label { font-size:12px; color:var(--faint); font-family:var(--mono); text-transform:uppercase; letter-spacing:.04em; }
.cat__select { height:38px; border:1px solid var(--line); background:var(--char); color:#fff; padding:0 30px 0 12px; font-family:var(--exo); font-size:13.5px; font-weight:600; -webkit-appearance:none; appearance:none; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%239aa1ad' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 10px center; }
body.light .cat__select { background-color:#fff; color:var(--ink); }
.cat__view { display:flex; border:1px solid var(--line); }
.cat__view button { width:40px; height:38px; display:grid; place-items:center; color:var(--mut); background:transparent; transition:.12s; }
.cat__view button.on { background:var(--red); color:#fff; }
.cat__view button:not(.on):hover { color:#fff; }
body.light .cat__view button:not(.on):hover { color:var(--ink); }

/* grid / list */
.cat__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.cat__grid.is-list { grid-template-columns:1fr; gap:12px; }

/* list-view product card */
.cat__grid.is-list .pc { flex-direction:row; align-items:stretch; }
.cat__grid.is-list .pc__media { width:200px; aspect-ratio:auto; flex-shrink:0; }
.cat__grid.is-list .pc__body { flex-direction:row; align-items:center; gap:24px; padding:18px 22px; }
.cat__grid.is-list .pc__main { flex:1; min-width:0; }
.cat__grid.is-list .pc__name { font-size:17px; margin:4px 0 8px; min-height:0; -webkit-line-clamp:1; }
.cat__grid.is-list .pc__price { margin-top:0; width:230px; flex-shrink:0; }
.cat__grid.is-list .pc__foot { margin-top:0; width:210px; flex-shrink:0; }
.cat__grid.is-list .pc__badges { flex-direction:row; }
.cat__listonly { display:none; }
.cat__grid.is-list .cat__listonly { display:block; }
.cat__gridonly { display:block; }
.cat__grid.is-list .cat__gridonly { display:none; }

.loadmore { display:flex; justify-content:center; margin-top:30px; }

/* ===== DETAIL ===== */
.det { padding-block:30px 56px; }
.det__top { display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:start; }
.det__gallery { position:sticky; top:96px; }
.det__main { position:relative; aspect-ratio:4/3; background:radial-gradient(circle at 50% 42%, rgba(255,255,255,.07), transparent 70%); border:1px solid var(--line); overflow:hidden; }
.det__main img { position:absolute; inset:26px; width:calc(100% - 52px); height:calc(100% - 52px); object-fit:contain; z-index:1; filter:drop-shadow(0 18px 26px rgba(0,0,0,.5)); }
body.light .det__main { background:#fff; }
body.light .det__main img { filter:drop-shadow(0 18px 26px rgba(22,23,28,.14)); }
.det__main .badge { position:absolute; z-index:2; top:14px; left:14px; background:var(--red); color:#fff; font-family:var(--mono); font-size:11px; font-weight:600; padding:6px 11px; white-space:nowrap; }
.det__thumbs { display:flex; gap:10px; margin-top:12px; }
.det__thumb { width:84px; height:74px; border:1px solid var(--line); background:rgba(255,255,255,.05); cursor:pointer; transition:.12s; position:relative; overflow:hidden; }
body.light .det__thumb { background:#fff; }
.det__thumb.on, .det__thumb:hover { border-color:var(--red); }
.det__thumb img { position:absolute; inset:6px; width:calc(100% - 12px); height:calc(100% - 12px); object-fit:contain; }

.det__eyebrow { font-family:var(--mono); font-size:12px; letter-spacing:.06em; color:var(--red); text-transform:uppercase; }
.det__code { font-family:var(--mono); font-size:12px; color:var(--faint); margin-left:10px; }
.det h1 { font-size:34px; font-weight:800; text-transform:uppercase; line-height:1.08; margin-top:10px; }
.det__rating { display:flex; align-items:center; gap:8px; margin-top:12px; font-size:13px; color:var(--mut); }
.det__rating .stars { display:inline-flex; gap:2px; color:#f5a623; }
.det__lead { color:var(--mut); font-size:15.5px; line-height:1.65; margin-top:18px; }
.det__keyspecs { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); margin-top:22px; }
.det__ks { background:var(--char-2); padding:14px 16px; }
body.light .det__ks { background:#fff; }
.det__ks span { font-family:var(--mono); font-size:10.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--faint); }
.det__ks b { display:block; font-size:18px; font-weight:800; margin-top:4px; }
.det__ks b i { color:var(--red); font-style:normal; }

.det__buy { border:1px solid var(--line); background:var(--char-2); padding:22px; margin-top:24px; }
body.light .det__buy { background:#fff; }
.det__price { display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; }
.det__price .now { font-size:30px; font-weight:800; }
.det__price .now.sale { color:var(--red); }
.det__price .vat { font-family:var(--mono); font-size:12px; color:var(--faint); }
.det__gated { display:flex; align-items:center; gap:12px; }
.det__gated .pill { display:inline-flex; align-items:center; gap:9px; background:var(--char-3); border:1px dashed #4a4e58; color:var(--mut); font-size:14px; font-weight:600; padding:12px 16px; }
body.light .det__gated .pill { background:var(--char-2); }
.det__gated .pill svg { color:var(--red); }
.det__stock { display:inline-flex; align-items:center; gap:8px; font-size:13.5px; font-weight:600; color:var(--ok); margin-top:14px; }
.det__stock .d { width:8px; height:8px; border-radius:50%; background:currentColor; }
.det__cta { display:flex; gap:12px; margin-top:18px; }
.det__cta .stepper { height:54px; }
.det__cta .stepper button { height:52px; width:42px; }
.det__cta .stepper input { height:52px; width:42px; font-size:15px; }
.det__addbig { flex:1; height:54px; font-size:14px; }
.det__meta { display:flex; gap:22px; margin-top:18px; flex-wrap:wrap; font-size:13px; color:var(--mut); }
.det__meta span { display:inline-flex; align-items:center; gap:8px; }
.det__meta svg { color:var(--red); }

/* tabs / sections */
.det__sec { margin-top:46px; }
.det__sec h2 { font-size:22px; font-weight:800; text-transform:uppercase; margin-bottom:6px; }
.det__sec .A__eyebrow, .det__sec .eyebrow { font-family:var(--mono); font-size:12px; color:var(--red); letter-spacing:.08em; }
.det__rich { color:var(--mut); font-size:15px; line-height:1.7; margin-top:14px; max-width:80ch; }
.det__rich ul { margin:14px 0 0 0; padding:0; list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:10px 28px; }
.det__rich li { display:flex; align-items:flex-start; gap:10px; color:var(--mut); font-size:14.5px; }
.det__rich li svg { color:var(--red); flex-shrink:0; margin-top:3px; }
/* Sanitizovaný HTML popis nemá SVG fajfky — odrážka přes ::before (červený čtvereček) */
.det__rich li::before { content:''; width:7px; height:7px; margin-top:8px; background:var(--red); flex-shrink:0; border-radius:1px; }
.det__rich li svg:first-child + *::before, .det__rich li:has(> svg)::before { display:none; }

.spectable { width:100%; border-collapse:collapse; margin-top:16px; border:1px solid var(--line); }
.spectable tr { border-bottom:1px solid var(--line); }
.spectable tr:nth-child(even) { background:var(--char-2); }
body.light .spectable tr:nth-child(even) { background:#f7f8fa; }
.spectable th { text-align:left; font-family:var(--mono); font-size:12px; font-weight:600; color:var(--mut); text-transform:uppercase; letter-spacing:.03em; padding:14px 18px; width:42%; vertical-align:top; }
.spectable td { padding:14px 18px; font-size:14.5px; font-weight:600; color:#fff; }
body.light .spectable td { color:var(--ink); }
.spectable td i { color:var(--red); font-style:normal; }

/* ===== MOBILNÍ FILTR (bottom sheet) ===== */
.cat__filterbtn { display:none; }
.cat__backdrop { display:none; position:fixed; inset:0; background:rgba(8,9,12,.6); backdrop-filter:blur(2px); z-index:140; }
.cat__backdrop.on { display:block; }
.cat__sheethead, .cat__sheetfoot { display:none; }

/* responsive */
@media (max-width:1080px){
  .cat__layout { grid-template-columns:1fr; }
  .cat__bar { top:64px; }
  .cat__side { position:static; }
  .cat__grid { grid-template-columns:repeat(2,1fr); }
  .det__top { grid-template-columns:1fr; gap:26px; }
  .det__gallery { position:static; }
  .cat__head h1 { font-size:34px; }
}
@media (max-width:880px){
  /* sticky toolbar s tlačítkem Filtry — vždy dostupné při scrollu */
  .cat__bar { position:sticky; top:56px; z-index:60; gap:10px; padding:10px 12px; box-shadow:0 8px 20px -14px rgba(0,0,0,.5); }
  .cat__bar .res { order:5; width:100%; font-size:12.5px; }
  .cat__filterbtn { display:inline-flex; align-items:center; gap:8px; height:40px; padding:0 16px; background:var(--red); color:#fff; border:none; font-family:var(--exo); font-weight:700; font-size:13px; text-transform:uppercase; letter-spacing:.02em; cursor:pointer; flex-shrink:0; }
  .cat__filterbtn svg { stroke:#fff; }
  .cat__filterbtn .cnt2 { background:#fff; color:var(--red); min-width:18px; height:18px; border-radius:9px; font-size:11px; font-family:var(--mono); display:grid; place-items:center; padding:0 4px; }
  .cat__bar .sp { display:none; }
  .cat__sort { flex:1; min-width:0; }
  .cat__sort label { display:none; }
  .cat__select { width:100%; }

  /* filtr jako bottom sheet */
  .cat__side { position:fixed; left:0; right:0; bottom:0; top:auto; z-index:150; max-height:86vh; width:100%;
    border:none; border-top:3px solid var(--red); background:var(--char-2);
    transform:translateY(100%); transition:transform .28s cubic-bezier(.2,.8,.2,1);
    display:flex; flex-direction:column; overflow:hidden; }
  body.light .cat__side { background:#fff; }
  .cat__side.is-open { transform:none; }
  .cat__sheethead { display:flex; align-items:center; justify-content:space-between; padding:16px 18px; border-bottom:1px solid var(--line); flex-shrink:0; }
  .cat__sheethead b { font-size:17px; font-weight:800; text-transform:uppercase; }
  .cat__sheethead button { width:38px; height:38px; display:grid; place-items:center; color:var(--faint); border:1px solid var(--line); background:none; cursor:pointer; }
  .cat__sheethead button:hover { border-color:var(--red); color:var(--red); }
  .cat__side .fgrp:first-of-type { border-top:none; }
  .cat__sheetscroll { flex:1; overflow-y:auto; -webkit-overflow-scrolling:touch; }
  .cat__sheetfoot { display:flex; gap:10px; padding:14px 18px; border-top:1px solid var(--line); flex-shrink:0; }
  .cat__sheetfoot .clear { flex-shrink:0; height:48px; padding:0 18px; border:1px solid var(--line); background:none; color:var(--mut); font-family:var(--exo); font-weight:700; font-size:13px; text-transform:uppercase; cursor:pointer; }
  .cat__sheetfoot .apply { flex:1; height:48px; }

  /* grid 2 sloupce zůstává; list view zůstává kompaktní řádek (nemění se na grid) */
  .cat__grid { grid-template-columns:repeat(2,1fr); gap:12px; }
  .cat__grid.is-list { grid-template-columns:1fr; }
  .cat__grid.is-list .pc { flex-direction:row; align-items:stretch; }
  .cat__grid.is-list .pc__media { width:108px; aspect-ratio:auto; flex-shrink:0; }
  .cat__grid.is-list .pc__body { flex-direction:column; align-items:stretch; gap:0; padding:12px 14px; }
  .cat__grid.is-list .pc__price, .cat__grid.is-list .pc__foot { width:auto; }
  .cat__grid.is-list .pc__name { font-size:14.5px; -webkit-line-clamp:2; }
}
@media (max-width:680px){
  .cat__head h1 { font-size:30px; }
  .det h1 { font-size:26px; }
  .det__rich ul { grid-template-columns:1fr; }
  .det__keyspecs { grid-template-columns:1fr; }
  .det__cta { flex-wrap:wrap; }
  .det__sec h2 { font-size:19px; }
}
@media (max-width:460px){
  .cat__grid { grid-template-columns:1fr; }
  .det__thumbs { flex-wrap:wrap; }
}

/* Detail: tlačítko Oblíbené vedle „Do košíku" */
.det__favbtn { width:54px; height:54px; flex-shrink:0; display:grid; place-items:center; background:var(--char-2); border:1px solid var(--line); border-radius:var(--rad-sm); color:var(--mut); cursor:pointer; transition:.15s; }
body.light .det__favbtn { background:#fff; }
.det__favbtn:hover { color:var(--red); border-color:var(--red); }
.det__favbtn.on { background:var(--red); border-color:var(--red); color:#fff; }

/* Kompaktnější produktové karty v katalogu (media 1:1 → 4:3, těsnější tělo) */
.cat__grid .pc__media { aspect-ratio:4/3; }
.cat__grid .pc__body { padding:12px 14px 14px; }
.cat__grid .pc__name { min-height:0; }

/* Detail: sekce VIDEA — YouTube embedy (16:9, lazy iframes) */
.det__videos { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:18px; margin-top:18px; }
.det__videos--one { grid-template-columns:minmax(0, 720px); }
.det__video { position:relative; aspect-ratio:16/9; background:#0b0d10; border:1px solid var(--line); border-radius:var(--rad-lg); overflow:hidden; }
.det__video iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
@media (max-width:680px){ .det__videos, .det__videos--one { grid-template-columns:1fr; gap:12px; } }
