/* K-297 / K-305 — KAFELKI KATEGORII POD OKNEM ROZMOWY (portal D, `_mf_kategorie.html`).
   K-297 (Piotr 05.10 20:3x): „ładnie dopasowane, w nowoczesnej grafice kategorie […] pod każdym kafelkiem bedzie 1 wyjątkowa oferta”.
   K-305 (Piotr 05.10): „klocki są tylko z prostymi ikonkami a ja to chce mieć w zajebistej grafice przedstawiającej produkt […]
   oferty maja byc ladnie rozmieszczone na całym ekranie bez przewijania”.
   K-305 cz. 2 — projekt A ze Stitcha przepisany na nasz CSS (bez Tailwinda, bez CDN): JEDNA szklana karta na kategorię
   (`.mf-kat-poz`): etykieta WIELKIMI LITERAMI z zieloną kropką i ↗, packshot na świecącym podeście (snop światła z góry,
   zielony dysk pod produktem), blok oferty (K-316: „MARKA · parametr”, model, „od” + kwota w jednej linii, przycisk na całą
   szerokość; bez miniatury produktu i bez znaku).
   🔴 Zero nowych barw: wyłącznie tokeny `skin.css` i rgba już użyte w `makieta_firma.css` (#0B1F17 = rgba(11,31,23,…),
   #04150F/--bg = rgba(4,21,15,…), akcent #10B981 = rgba(16,185,129,…)).
   Strona D nie przewija się (K-279) — sekcja wypełnia resztę sceny pod nagłówkiem (wysokość karty = to, co zostało),
   a gdy się nie mieści (telefon, wypchnięta żaluzja), przewija się W SOBIE. Otwarte okno rozmowy (`.cz-okno`, z-index 50) leży NAD sekcją
   i jest półprzezroczyste (K-305, `makieta_firma.css`) — przez nie widać zarys kart. */
.mf-kat{position:relative;z-index:1;flex:1 1 auto;min-height:0;max-height:720px;align-self:center;
  width:min(1640px,calc(100vw - 40px));margin:clamp(10px,1.8vh,20px) 0 0;
  overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.12) transparent;
  padding:4px 4px 6px;text-align:left;display:flex;flex-direction:column}
.mf-kat-siatka{list-style:none;margin:0;padding:0;flex:1 1 auto;min-height:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));
  grid-auto-rows:minmax(0,1fr);gap:12px}

/* ── karta (A: bg surface-container-low/60 + blur, ramka white/.07, cień 0 8px 32px -4px) ── */
.mf-kat-poz{position:relative;display:flex;flex-direction:column;gap:8px;min-width:0;min-height:0;padding:10px;border-radius:14px;
  border:1px solid rgba(255,255,255,.07);
  background:
    radial-gradient(90% 46% at 50% 0%,rgba(16,185,129,.10),rgba(16,185,129,0) 70%),
    linear-gradient(180deg,rgba(11,31,23,.62) 0%,rgba(4,21,15,.70) 100%);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 8px 32px -4px rgba(4,21,15,.7);
  transition:border-color .25s var(--krzywa),background .25s var(--krzywa),box-shadow .25s var(--krzywa)}
.mf-kat-poz:hover,.mf-kat-poz:focus-within{border-color:rgba(16,185,129,.40);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 8px 32px -4px rgba(4,21,15,.7),0 0 40px -20px rgba(16,185,129,.5)}

/* ── górna część karty (link do kategorii): etykieta + packshot na podeście ── */
.mf-kat-kafel{position:relative;isolation:isolate;flex:1 1 auto;min-height:120px;display:flex;flex-direction:column;
  color:var(--ink);text-decoration:none;border-radius:10px;outline:none}
.mf-kat-nazwa{position:relative;z-index:3;display:flex;align-items:flex-start;gap:7px;padding:2px 2px 0 4px;
  font-size:.7rem;font-weight:700;line-height:1.3;letter-spacing:.07em;text-transform:uppercase;color:var(--ink)}
/* S38 (Piotr 08.10 17:1x/17:5x: „napisy w faleku kategorii na pasku [mają być] w białym kolorze”): etykieta kafelka = token jasnego
   tekstu `--ink` (#ECF5F0, ten sam co reszta jasnych napisów strony; kontrast na ciemnej karcie ≫ 4,5:1, WCAG AA). Kropka i ↗ bez zmian. */
.mf-kat-kropka{flex:none;width:8px;height:8px;margin-top:.22em;border-radius:50%;background:var(--accent-ink);box-shadow:0 0 6px var(--accent-ink)}
.mf-kat-etykieta{flex:1 1 auto;min-width:0}
.mf-kat-strz{flex:none;width:16px;height:16px;fill:none;stroke:var(--subtle);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;
  transition:stroke .25s var(--krzywa),transform .25s var(--krzywa)}
.mf-kat-kafel:hover .mf-kat-strz,.mf-kat-kafel:focus-visible .mf-kat-strz,.mf-kat-poz:hover .mf-kat-strz{stroke:var(--accent-ink);transform:translate(1px,-1px)}
.mf-kat-kafel:focus-visible{box-shadow:0 0 0 1px var(--accent)}

/* scena zdjęcia: snop światła z góry, poświata pod produktem, świecący dysk-podest */
.mf-kat-scena{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden;border-radius:10px}
.mf-kat-snop{position:absolute;left:8%;right:8%;top:6%;bottom:12%;
  background:radial-gradient(60% 75% at 50% 0%,rgba(255,255,255,.07),rgba(255,255,255,0) 70%),
             radial-gradient(70% 60% at 50% 60%,rgba(16,185,129,.10),rgba(16,185,129,0) 70%)}
.mf-kat-swiatlo{position:absolute;left:14%;right:14%;bottom:7%;height:13%;border-radius:50%;
  background:radial-gradient(closest-side,rgba(16,185,129,.45),rgba(16,185,129,.12) 60%,rgba(16,185,129,0));filter:blur(8px);
  transition:transform .3s var(--krzywa),opacity .3s var(--krzywa)}
.mf-kat-podest{position:absolute;left:22%;right:22%;bottom:10.5%;height:6.5%;min-height:12px;border-radius:50%;
  background:radial-gradient(closest-side,rgba(4,21,15,.95) 55%,rgba(16,185,129,.35) 88%,rgba(16,185,129,0));
  box-shadow:0 0 0 1px rgba(110,231,183,.55),0 0 14px rgba(16,185,129,.55),0 0 34px -4px rgba(16,185,129,.45),inset 0 -2px 8px rgba(16,185,129,.35)}
.mf-kat-foto{position:absolute;z-index:1;left:10%;right:10%;top:16%;bottom:13.5%;display:flex;align-items:flex-end;justify-content:center}
.mf-kat-foto img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;
  filter:drop-shadow(0 12px 18px rgba(0,0,0,.75)) drop-shadow(0 0 22px rgba(16,185,129,.14));
  transform-origin:50% 95%;transition:transform .4s var(--krzywa)}
/* Piotr 08.10 17:5x: klimatyzacja jako jedyna bez zielonej poświaty — szeroki packshot (640×229) zasłaniał podest;
   węższy i uniesiony nad dysk, żeby świecenie było widać jak w pozostałych kafelkach */
/* 14.10 18:5x (Piotr: „leży na ziemi”): 08.10 było za mało — dół packshotu wyraźnie nad górną krawędzią dysku */
#mf-kat .mf-kat-poz[data-kategoria="AIR_CONDITIONING"] .mf-kat-foto{left:21%;right:21%;bottom:25%}
.mf-kat-ikona{position:absolute;z-index:1;left:0;right:0;top:16%;bottom:16%;margin:auto;width:64px;height:64px;border-radius:50%;display:flex;
  align-items:center;justify-content:center;color:var(--accent-ink);border:1px solid rgba(16,185,129,.35);background:rgba(16,185,129,.06);
  box-shadow:0 0 26px -10px rgba(16,185,129,.55)}
.mf-kat-ikona svg{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.mf-kat-poz:hover .mf-kat-foto img{transform:scale(1.05)}
.mf-kat-poz:hover .mf-kat-swiatlo{transform:scaleX(1.1)}

/* ── blok oferty (A: surface-container/90, ramka white/.05) ── */
.mf-kat-oferta{flex:none;position:relative;display:flex;flex-direction:column;gap:6px;padding:9px 10px 10px;border-radius:10px;
  border:1px solid rgba(255,255,255,.05);background:rgba(11,31,23,.90);color:var(--muted);text-decoration:none;
  transition:border-color .2s var(--krzywa)}
.mf-kat-oferta:hover,.mf-kat-oferta:focus-visible{border-color:rgba(16,185,129,.35)}
.mf-kat-oferta:focus-visible{outline:1px solid var(--accent);outline-offset:2px}
.mf-kat-produkt{font-size:.8rem;font-weight:700;line-height:1.25;min-height:2.5em;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;overflow-wrap:anywhere}
/* S46-b: znacznik S42 „model do potwierdzenia” na ciemnym bloku oferty — mała etykieta akcentu zamiast `.muted .small`
   (13,8 px szarości w dwóch liniach). `--accent-ink` #34D399 na rgba(11,31,23,.9): 8,9:1 (WCAG AA ≥ 4,5:1). Zero nowych barw. */
.mf-kat-oferta .model-niepotw{display:block;margin-top:-3px;font-size:.68rem;font-weight:600;line-height:1.3;letter-spacing:.02em;color:var(--accent-ink)}
/* K-316: „od” i kwota w JEDNEJ linii, bez „netto/szt.” */
.mf-kat-dol{display:flex;align-items:baseline;gap:6px;min-width:0;white-space:nowrap;overflow:hidden;
  margin-top:1px;padding-top:6px;border-top:1px solid rgba(255,255,255,.06)}
.mf-kat-od{flex:none;font-size:.72rem;color:var(--subtle)}
.mf-kat-cena{min-width:0;font-size:.92rem;font-weight:800;letter-spacing:-.01em;color:var(--ink);overflow:hidden;text-overflow:ellipsis}
/* przycisk na całą szerokość (A: bg primary, cień 0 0 12px primary/.3, rounded-lg) */
.mf-kat-cta{display:flex;align-items:center;justify-content:center;gap:5px;margin-top:3px;padding:8px 10px;border-radius:8px;background:var(--accent);
  color:var(--bg);font-size:.8rem;font-weight:700;white-space:nowrap;box-shadow:0 0 12px rgba(16,185,129,.30);
  transition:background .2s var(--krzywa),box-shadow .2s var(--krzywa)}
.mf-kat-cta svg{flex:none;width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.mf-kat-oferta:hover .mf-kat-cta{background:var(--accent-ink);box-shadow:0 0 18px rgba(16,185,129,.45)}

/* wejście jak menu D: po `sc-wstal`, karty kolejno */
html.ck-js:not(.sc-wstal) .mf-kat-poz{opacity:0;translate:0 10px}
body.pg-home .mf-kat-poz{transition:opacity .8s var(--sc-wolno,var(--krzywa)),translate .8s var(--sc-wolno,var(--krzywa)),border-color .25s var(--krzywa),box-shadow .25s var(--krzywa);
  transition-delay:calc(.45s + var(--i,0) * 60ms),calc(.45s + var(--i,0) * 60ms),0s,0s}
html.sc-gotowe .mf-kat-poz{transition-delay:0s}

/* niższe ekrany (np. 1366×768): ciaśniejszy blok oferty, żeby zdjęcie nie zjechało do zera */
@media (max-height:820px) and (min-width:701px){
  .mf-kat-siatka{gap:10px}
  .mf-kat-poz{padding:8px;gap:6px}
  .mf-kat-oferta{gap:5px;padding:8px 9px 9px}
  .mf-kat-cta{padding:6px 8px}
}
/* 1081–1300 px: sześć wąskich kart */
@media (max-width:1300px) and (min-width:1081px){
  .mf-kat-cta{font-size:.74rem}
}
@media (max-width:1080px){
  /* tablet/telefon: karty w kilku rzędach o wysokości z treści, sekcja przewija się w sobie (strona D stoi) */
  .mf-kat{max-height:none;display:block}
  .mf-kat-siatka{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:auto}
  .mf-kat-poz{min-height:auto}
  .mf-kat-kafel{flex:none;height:220px;min-height:0}
}
@media (max-width:700px){
  .mf-kat{width:100%;margin-top:10px;padding:2px 2px 6px}
  .mf-kat-siatka{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .mf-kat-poz{gap:6px;padding:7px;border-radius:12px}
  .mf-kat-kafel{height:150px}
  .mf-kat-nazwa{font-size:.62rem;gap:5px;letter-spacing:.05em}
  .mf-kat-kropka{width:6px;height:6px}
  .mf-kat-oferta{padding:7px 7px 8px;gap:5px;border-radius:8px}
  .mf-kat-produkt{font-size:.74rem}
  .mf-kat-cena{font-size:.84rem}
  .mf-kat-cta{padding:6px 6px;font-size:.72rem}
}
@media (prefers-reduced-motion:reduce){
  .mf-kat-poz,.mf-kat-foto img,.mf-kat-swiatlo,.mf-kat-strz,.mf-kat-oferta,.mf-kat-cta{transition:none!important}
}
