/* ============================================================
   Factospace — Design System (współdzielony przez wtyczkę i motyw)
   • Tokeny na :root (jedno źródło prawdy)
   • Generyczne, reużywalne komponenty: fs-hero, fs-shell, fs-stat,
     fs-step, fs-feature, fs-band, fs-form, fs-modal, fs-product…
   • Motyw jasny/ciemny przełącza klasa .fs-dark (podmienia tokeny)
   Nazewnictwo: BEM z prefiksem fs- (bez nazw kontekstowych typu „about”).
   ============================================================ */

:root {
  /* Neutrals — blueprint slate */
  --slate-950:#0C1118; --slate-900:#11171F; --slate-850:#161D27; --slate-800:#1C2531;
  --slate-700:#28333F; --slate-600:#3A4654; --slate-500:#586575; --slate-400:#6B7685;
  --slate-300:#9AA4B2; --slate-200:#C6CDD6; --slate-100:#E2E6EB; --slate-50:#F1F3F6;
  --white:#FFFFFF;
  /* Signal yellow + optic blue */
  --signal-700:#B89E00; --signal-600:#D6B800; --signal-500:#EAD11A; --signal-400:#F2DE4E;
  --signal-300:#F8EA8C; --signal-100:#FBF4C9;
  --blue-600:#205C95; --blue-500:#2B6CB0; --blue-400:#5B8DBF;
  /* Mark palette (strefy) */
  --mark-yellow:#EAD11A; --mark-red:#D62828; --mark-green:#2E9E4F;
  --mark-blue:#2B6CB0; --mark-orange:#E8742C; --mark-white:#EDEFF2;
  --success:#2E9E4F; --info:#2B6CB0;
  /* Semantic (light) */
  --surface-page:var(--slate-50); --surface-card:var(--white); --surface-sunken:#ECEFF3;
  --border-subtle:var(--slate-100); --border-default:var(--slate-200);
  --text-strong:var(--slate-950); --text-body:var(--slate-800); --text-muted:var(--slate-500); --text-faint:var(--slate-300);
  --accent:var(--signal-500); --accent-hover:var(--signal-600); --on-accent:var(--slate-950);
  --focus-ring:var(--blue-500);
  /* Type */
  --font-display:'Space Grotesk','Hanken Grotesk',system-ui,sans-serif;
  --font-sans:'Hanken Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,Menlo,monospace;
  /* Radii / shadow / motion / layout */
  --radius-sm:2px; --radius-md:4px; --radius-lg:8px;
  --shadow-xs:0 1px 1px rgba(12,17,24,.06);
  --shadow-sm:0 1px 2px rgba(12,17,24,.10),0 1px 1px rgba(12,17,24,.04);
  --shadow-lg:0 12px 28px rgba(12,17,24,.14),0 4px 8px rgba(12,17,24,.06);
  --shadow-xl:0 24px 56px rgba(12,17,24,.20);
  --ring:0 0 0 3px rgba(43,108,176,.45);
  --dur-fast:140ms; --dur-base:220ms;
  --ease-standard:cubic-bezier(.40,0,.20,1); --ease-out:cubic-bezier(.16,1,.30,1);
  --container:1240px; --gutter:24px; --tracking-caps:.18em;
  --z-modal:1100;
}

/* Token flip — ciemny motyw (przełącznik na dowolnym wrapperze) */
.fs-dark {
  --surface-page:var(--slate-950); --surface-card:var(--slate-900);
  --border-subtle:var(--slate-800); --border-default:var(--slate-700);
  --text-strong:var(--white); --text-body:var(--slate-200); --text-muted:var(--slate-400); --text-faint:var(--slate-600);
}

/* ---- Baza / wrapper ---- */
.fs-root { font-family:var(--font-sans); color:var(--text-body); line-height:1.5; }
.fs-root *, .fs-root *::before, .fs-root *::after { box-sizing:border-box; }
.fs-root h1, .fs-root h2, .fs-root h3 { font-family:var(--font-display); font-weight:600; color:var(--text-strong); margin:0; line-height:1.2; letter-spacing:-.02em; }

/* ---- Utilities ---- */
.fs-shell { max-width:var(--container); margin:0 auto; padding:0 var(--gutter); }
.fs-bleed { margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); overflow-x:clip; }
.fs-kicker { font-family:var(--font-mono); font-size:12px; font-weight:500; letter-spacing:var(--tracking-caps); text-transform:uppercase; color:var(--text-muted); }
.fs-section-title { font-family:var(--font-display); font-weight:600; font-size:26px; letter-spacing:-.02em; color:var(--text-strong); margin:48px 0 22px; }

/* ---- Hero (intro band — katalog / O nas / kontakt) ---- */
.fs-hero { position:relative; overflow:hidden; background:var(--surface-page); padding:56px 0 48px; }
.fs-hero--sm { padding:44px 0 36px; }
.fs-hero__grid { position:absolute; inset:0; background-image:
  linear-gradient(var(--slate-800) 1px,transparent 1px),linear-gradient(90deg,var(--slate-800) 1px,transparent 1px);
  background-size:32px 32px; opacity:.5; -webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 92%); mask-image:linear-gradient(180deg,#000 0%,transparent 92%); }
.fs-hero__glow { position:absolute; top:-120px; left:18%; width:380px; height:380px;
  background:radial-gradient(circle,rgba(234,209,26,.18),transparent 62%); filter:blur(10px); }
.fs-hero__inner { position:relative; }
.fs-hero__title { color:var(--text-strong); font-size:44px; letter-spacing:-.03em; line-height:1.05; margin:14px 0 0; max-width:780px; }
.fs-hero__lead { color:var(--slate-300); font-size:17px; line-height:1.55; max-width:660px; margin:16px 0 0; }
.fs-hero__body { color:var(--slate-400); font-size:15px; line-height:1.7; max-width:660px; margin:16px 0 0; }

/* ---- Badge ---- */
.fs-badge { display:inline-flex; align-items:center; font-family:var(--font-mono); font-size:10px; font-weight:600;
  letter-spacing:.04em; text-transform:uppercase; padding:3px 8px; border-radius:var(--radius-sm); }
.fs-badge--signal { background:var(--signal-500); color:var(--slate-950); }
.fs-badge--info { background:var(--info); color:#fff; }
.fs-badge--success { background:var(--success); color:#fff; }
.fs-badge--danger { background:var(--mark-red); color:#fff; }

/* ---- Buttons ---- */
.fs-btn { display:inline-flex; align-items:center; gap:8px; font-family:var(--font-sans); font-size:14px; font-weight:600;
  text-decoration:none; border:1px solid transparent; border-radius:var(--radius-md); padding:11px 18px; cursor:pointer; transition:var(--dur-fast); }
.fs-btn--primary { background:var(--accent); color:var(--on-accent); }
.fs-btn--primary:hover { background:var(--accent-hover); }
.fs-btn--dark { background:var(--slate-950); color:#fff; }
.fs-btn--dark:hover { background:#000; }
.fs-btn--ghost { background:var(--surface-card); border-color:var(--border-default); color:var(--text-strong); }
.fs-btn--ghost:hover { border-color:var(--slate-400); }
.fs-btn[disabled] { opacity:.55; cursor:default; }
.fs-btn__count { background:rgba(255,255,255,.18); color:#fff; font-family:var(--font-mono); font-size:11px; font-weight:600;
  min-width:18px; height:18px; border-radius:9px; display:inline-flex; align-items:center; justify-content:center; padding:0 5px; }
.fs-btn--primary .fs-btn__count, .fs-btn--dark .fs-btn__count { background:rgba(12,17,24,.16); color:var(--slate-950); }
.fs-btn--dark .fs-btn__count { background:rgba(255,255,255,.18); color:#fff; }
/* Potwierdzenie dodania do zapytania */
.fs-btn.is-added { background:var(--success); color:#fff; border-color:var(--success); }
.fs-btn.is-added:hover { background:var(--success); }
/* Licznik sztuk tego produktu na przycisku „Dodaj do zapytania” */
.fs-add-count { display:inline-flex; align-items:center; justify-content:center; min-width:20px; height:20px; margin-left:8px;
  padding:0 6px; border-radius:10px; background:var(--slate-950); color:#fff; font-family:var(--font-mono); font-size:11px; font-weight:600; line-height:1; }
.fs-btn--primary .fs-add-count { background:rgba(12,17,24,.22); color:var(--slate-950); }
.fs-btn.is-added .fs-add-count { display:none; }
@keyframes fsBump { 0%{transform:scale(1);} 35%{transform:scale(1.45);} 100%{transform:scale(1);} }
.fs-btn__count.is-bump { animation:fsBump .34s var(--ease-out); }

/* ---- Stat grid ---- */
.fs-stats { display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--border-subtle);
  border:1px solid var(--border-subtle); border-radius:var(--radius-lg); overflow:hidden; margin-top:36px; }
.fs-stat { background:var(--surface-card); padding:22px 18px; display:flex; flex-direction:column; gap:6px; }
.fs-stat--accent { background:var(--signal-500); }
.fs-stat__label { font-family:var(--font-mono); font-size:10px; letter-spacing:var(--tracking-caps); text-transform:uppercase; color:var(--text-muted); }
.fs-stat--accent .fs-stat__label { color:rgba(12,17,24,.6); }
.fs-stat__value { font-family:var(--font-display); font-weight:600; font-size:30px; letter-spacing:-.02em; color:var(--text-strong); line-height:1; }
.fs-stat__unit { font-size:15px; font-weight:500; color:var(--text-muted); margin-left:3px; }
.fs-stat--accent .fs-stat__value, .fs-stat--accent .fs-stat__unit { color:var(--slate-950); }
.fs-stat__cap { font-family:var(--font-mono); font-size:11px; color:var(--text-faint); }

/* ---- Steps (numerowany proces) ---- */
.fs-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.fs-step { border-top:2px solid var(--signal-500); padding-top:16px; }
.fs-step__n { font-family:var(--font-mono); font-size:13px; color:var(--text-faint); }
.fs-step__title { font-family:var(--font-display); font-weight:600; font-size:18px; color:var(--text-strong); margin:8px 0 6px; }
.fs-step__desc { font-size:14px; line-height:1.55; color:var(--text-muted); margin:0; }

/* ---- Feature cards (ikona + tytuł + opis) ---- */
.fs-features { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; padding-bottom:8px; }
.fs-feature { background:var(--surface-card); border:1px solid var(--border-subtle); border-radius:var(--radius-lg); padding:22px; }
.fs-feature__icon { display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; border-radius:var(--radius-md);
  background:var(--slate-950); color:var(--signal-500); margin-bottom:14px; }
.fs-dark .fs-feature__icon { background:var(--slate-950); }
.fs-feature__icon svg { width:22px; height:22px; }
.fs-feature__title { font-family:var(--font-display); font-weight:600; font-size:17px; color:var(--text-strong); margin:0 0 6px; }
.fs-feature__desc { font-size:14px; line-height:1.55; color:var(--text-muted); margin:0; }

/* ---- CTA band ---- */
.fs-band { background:var(--signal-500); margin-top:40px; }
.fs-band__inner { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:40px var(--gutter); flex-wrap:wrap; }
.fs-band__title { font-size:28px; letter-spacing:-.02em; color:var(--slate-950); }
.fs-band__text { color:rgba(12,17,24,.72); font-size:15px; margin:6px 0 0; max-width:520px; }

/* ---- Forms ---- */
.fs-input, .fs-textarea { font-family:var(--font-sans); font-size:14px; color:var(--text-strong); width:100%;
  background:var(--surface-card); border:1px solid var(--border-default); border-radius:var(--radius-md); padding:11px 13px;
  outline:none; transition:border-color var(--dur-fast),box-shadow var(--dur-fast); }
.fs-textarea { resize:vertical; }
.fs-input:focus, .fs-textarea:focus { border-color:var(--focus-ring); box-shadow:var(--ring); }
.fs-input::placeholder, .fs-textarea::placeholder { color:var(--text-faint); }
.fs-hp { position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }
.fs-form-msg { font-size:14px; padding:12px 14px; border-radius:var(--radius-md); margin:4px 0 0; }
.fs-form-msg.is-ok { background:#E7F4EC; color:#1f7a3d; }
.fs-form-msg.is-err { background:#FBE9E9; color:#b32d2e; }
/* Zgoda RODO */
.fs-consent { display:flex; align-items:flex-start; gap:10px; cursor:pointer; }
.fs-consent input { width:16px; height:16px; margin-top:2px; flex:none; accent-color:var(--slate-950); cursor:pointer; }
.fs-consent__text { font-size:12.5px; line-height:1.5; color:var(--text-muted); }
.fs-consent__text a { color:var(--blue-600); text-decoration:underline; }
.fs-consent__req { color:var(--mark-red); }
.fs-form { display:flex; flex-direction:column; gap:16px; }
.fs-form__row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.fs-field { display:flex; flex-direction:column; gap:8px; }
.fs-label { font-size:14px; font-weight:500; color:var(--text-strong); }

/* ---- Contact (formularz + dane) ---- */
.fs-contact { display:grid; grid-template-columns:1.4fr 1fr; gap:36px; margin:32px 0 8px; align-items:start; }
.fs-info { background:var(--surface-card); border:1px solid var(--border-subtle); border-radius:var(--radius-lg); padding:24px; display:flex; flex-direction:column; gap:18px; }
.fs-info__block { display:flex; flex-direction:column; gap:10px; }
.fs-info__title { font-family:var(--font-mono); font-size:10px; letter-spacing:var(--tracking-caps); text-transform:uppercase; color:var(--text-muted); }
.fs-info__line { display:block; font-size:14px; color:var(--text-body); text-decoration:none; }
a.fs-info__line:hover { color:var(--text-strong); }
.fs-info__line--addr { white-space:pre-line; }

/* ---- Toolbar / filters (katalog) ---- */
.fs-toolbar { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-top:30px; flex-wrap:wrap; }
.fs-filters { display:flex; flex-wrap:wrap; gap:8px; }
.fs-chip { font-family:var(--font-sans); font-size:13px; font-weight:600; color:var(--text-muted);
  background:var(--surface-card); border:1px solid var(--border-default); border-radius:var(--radius-md);
  padding:8px 14px; cursor:pointer; transition:var(--dur-fast); }
.fs-chip:hover { border-color:var(--slate-400); color:var(--text-strong); }
.fs-chip.is-active { background:var(--slate-950); border-color:var(--slate-950); color:#fff; }
.fs-sort { display:inline-flex; align-items:center; gap:10px; font-size:13px; color:var(--text-muted); padding-bottom:6px; }
.fs-sort select { font-family:var(--font-sans); font-size:13px; color:var(--text-strong); background:var(--surface-card);
  border:1px solid var(--border-default); border-radius:var(--radius-md); padding:8px 10px; cursor:pointer; }
.fs-count { font-family:var(--font-mono); font-size:12px; color:var(--text-muted); letter-spacing:.04em; margin:18px 0 16px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.fs-facets-toggle { display:none; font-family:var(--font-sans); font-size:13px; font-weight:600; color:var(--text-strong); background:var(--surface-card);
  border:1px solid var(--border-default); border-radius:var(--radius-md); padding:8px 14px; cursor:pointer; }

/* ---- Filtry (panel boczny, dynamiczny) ---- */
.fs-catalog-layout { display:grid; grid-template-columns:240px 1fr; gap:28px; align-items:start; }
.fs-catalog-main { min-width:0; }
.fs-facets { position:sticky; top:84px; display:flex; flex-direction:column; gap:6px;
  background:var(--surface-card); border:1px solid var(--border-subtle); border-radius:var(--radius-lg); padding:8px 18px 18px; }
.fs-facet { padding:16px 0; border-bottom:1px solid var(--border-subtle); }
.fs-facet:last-of-type { border-bottom:none; }
.fs-facet__title { font-family:var(--font-mono); font-size:10px; letter-spacing:var(--tracking-caps); text-transform:uppercase; color:var(--text-muted); margin-bottom:12px; }
.fs-facet__row { display:flex; align-items:center; gap:9px; padding:5px 0; font-size:13.5px; color:var(--text-body); cursor:pointer; line-height:1.4; }
.fs-facet__row input { width:16px; height:16px; accent-color:var(--slate-950); cursor:pointer; flex:none; }
.fs-facet__row:hover { color:var(--text-strong); }
.fs-facet__price { display:flex; align-items:center; gap:8px; }
.fs-facet__price-in { padding:8px 10px; font-family:var(--font-mono); font-size:13px; }
.fs-facet__dash { color:var(--text-faint); }
.fs-facet__clear { margin-top:14px; font-family:var(--font-sans); font-size:13px; font-weight:600; color:var(--text-muted);
  background:none; border:none; padding:6px 0; cursor:pointer; text-align:left; }
.fs-facet__clear:hover { color:var(--mark-red); }

/* ---- Product grid + card ---- */
.fs-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:20px; padding-bottom:16px; }
.fs-empty { padding:60px 0; text-align:center; color:var(--text-muted); font-size:15px; }
.fs-product { display:flex; flex-direction:column; background:var(--surface-card); border:1px solid var(--border-subtle);
  border-radius:var(--radius-lg); overflow:hidden; cursor:pointer; text-decoration:none; color:inherit;
  transition:border-color var(--dur-fast) var(--ease-standard),box-shadow var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out); }
.fs-product:hover { border-color:var(--border-default); box-shadow:var(--shadow-lg); transform:translateY(-2px); }
.fs-product:focus-visible { outline:none; box-shadow:var(--ring); }
.fs-product.is-hidden { display:none; }
.fs-product__media { position:relative; aspect-ratio:1/1; background:var(--slate-100); border-bottom:1px solid var(--border-subtle); overflow:hidden; }
.fs-product__media img { width:100%; height:100%; object-fit:cover; display:block; }
.fs-product__ph { position:absolute; inset:0; background-image:repeating-linear-gradient(-45deg,#E2E6EB 0 14px,#ECEFF3 14px 28px); }
.fs-product__badge { position:absolute; top:10px; left:10px; z-index:2; }
.fs-badges { display:flex; flex-direction:column; align-items:flex-start; gap:5px; }
.fs-product__range { position:absolute; top:10px; right:10px; z-index:2; font-family:var(--font-mono); font-size:10px; font-weight:600;
  letter-spacing:.06em; color:var(--slate-950); background:rgba(255,255,255,.85); padding:3px 6px; border-radius:3px; }
.fs-product__body { padding:16px 16px 4px; display:flex; flex-direction:column; gap:8px; flex:1; }
.fs-product__name { font-family:var(--font-display); font-weight:600; font-size:17px; letter-spacing:-.01em; color:var(--text-strong); }
.fs-product__desc { font-size:13px; line-height:1.5; color:var(--text-muted); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.fs-product__foot { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:14px 16px; margin-top:12px; border-top:1px solid var(--border-subtle); }
.fs-product__price { font-family:var(--font-mono); font-size:12px; font-weight:500; color:var(--text-strong); }
.fs-product__cta { font-size:13px; font-weight:600; color:var(--text-muted); }
.fs-product:hover .fs-product__cta { color:var(--text-strong); }

/* ---- PDP: pełna strona produktu ---- */
.fs-shell.fs-pdp { padding-top:32px; padding-bottom:64px; }
.fs-pdp__back { display:inline-block; font-size:13px; color:var(--text-muted); text-decoration:none; margin-bottom:20px; }
.fs-pdp__back:hover { color:var(--text-strong); }
.fs-pdp__grid { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start; }
.fs-pdp__media { position:relative; aspect-ratio:1/1; background:var(--slate-100); border:1px solid var(--border-subtle);
  border-radius:var(--radius-lg); overflow:hidden; }
.fs-pdp__media img { width:100%; height:100%; object-fit:cover; display:block; }
.fs-pdp__media .fs-product__ph { position:absolute; inset:0; }
.fs-pdp__title { font-family:var(--font-display); font-weight:600; font-size:34px; letter-spacing:-.02em; color:var(--text-strong); margin:0; line-height:1.1; }
.fs-pdp__price { font-family:var(--font-mono); font-size:18px; font-weight:500; color:var(--text-strong); margin:20px 0; }
.fs-swatches { margin:0 0 22px; }
.fs-swatches__label { font-family:var(--font-mono); font-size:11px; letter-spacing:var(--tracking-caps); text-transform:uppercase; color:var(--text-muted); margin-bottom:10px; }
.fs-swatches__current { color:var(--text-strong); }
.fs-swatches__row { display:flex; flex-wrap:wrap; gap:10px; }
.fs-swatch { width:34px; height:34px; border-radius:50%; cursor:pointer; padding:0; position:relative;
  background:var(--sw,#EAD11A); border:1px solid rgba(12,17,24,.18); transition:transform var(--dur-fast) var(--ease-standard); }
.fs-swatch:hover { transform:scale(1.08); }
.fs-swatch.is-active { box-shadow:0 0 0 2px var(--surface-card), 0 0 0 4px var(--slate-950); }
.fs-dark .fs-swatch.is-active { box-shadow:0 0 0 2px var(--surface-page), 0 0 0 4px var(--signal-500); }
.fs-swatch:focus-visible { outline:none; box-shadow:0 0 0 2px var(--surface-card), 0 0 0 4px var(--focus-ring); }
.fs-pdp__cta { display:flex; gap:10px; flex-wrap:wrap; }
.fs-pdp__section { margin-top:36px; padding-top:28px; border-top:1px solid var(--border-subtle); }
.fs-pdp__section .fs-modal__cols { margin-top:0; gap:48px; }
.fs-pdp__related { margin-top:40px; padding-top:28px; border-top:1px solid var(--border-subtle); }
.fs-pdp__related .fs-section-title { margin:0 0 22px; }
@media (max-width:860px) {
  .fs-pdp__grid { grid-template-columns:1fr; gap:24px; }
  .fs-pdp__title { font-size:28px; }
}

/* ---- Modal ---- */
.fs-modal { position:fixed; inset:0; z-index:var(--z-modal); background:rgba(5,8,12,.62);
  backdrop-filter:blur(3px); display:flex; align-items:center; justify-content:center; padding:24px; overflow:auto; }
.fs-modal[hidden] { display:none; }
.fs-modal__card { position:relative; display:grid; grid-template-columns:.92fr 1.08fr; width:100%; max-width:940px;
  max-height:90vh; background:var(--surface-card); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-xl); }
.fs-modal__card--narrow { grid-template-columns:1fr; max-width:560px; }
.fs-modal__close { position:absolute; top:12px; right:12px; z-index:3; width:34px; height:34px; border-radius:var(--radius-md);
  border:none; background:rgba(255,255,255,.86); cursor:pointer; color:var(--text-strong); font-size:22px; line-height:1; }
.fs-modal__close:hover { background:#fff; }
.fs-modal__media { position:relative; background:var(--slate-100); min-height:340px; }
.fs-modal__media img { width:100%; height:100%; object-fit:cover; }
.fs-modal__media .fs-product__ph { position:absolute; inset:0; }
.fs-modal__body { padding:28px; overflow-y:auto; min-height:0; max-height:90vh; -webkit-overflow-scrolling:touch; }
.fs-modal__title { font-family:var(--font-display); font-weight:600; font-size:26px; letter-spacing:-.02em; color:var(--text-strong); margin:0; }
.fs-modal__lead { font-size:14px; line-height:1.55; color:var(--text-muted); margin:8px 0 0; }
.fs-modal__rich { font-size:14px; line-height:1.6; color:var(--text-muted); margin:8px 0 0; }
.fs-modal__rich p { margin:0 0 10px; }
.fs-modal__rich p:last-child { margin-bottom:0; }
.fs-modal__rich ul, .fs-modal__rich ol { margin:0 0 10px; padding-left:20px; }
.fs-modal__rich li { margin:3px 0; }
.fs-modal__rich strong, .fs-modal__rich b { color:var(--text-strong); font-weight:600; }
.fs-modal__rich em { font-style:italic; }
.fs-modal__rich a { color:var(--blue-600); text-decoration:underline; }
.fs-modal__rich h2, .fs-modal__rich h3, .fs-modal__rich h4 { font-family:var(--font-display); color:var(--text-strong); margin:14px 0 6px; font-size:16px; letter-spacing:-.01em; }
.fs-modal__cols { display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-top:24px; }
.fs-modal__label { font-family:var(--font-mono); font-size:10px; letter-spacing:var(--tracking-caps); text-transform:uppercase; color:var(--text-muted); margin-bottom:10px; }
.fs-modal__cta { display:flex; gap:10px; margin-top:24px; flex-wrap:wrap; }

/* ---- Spec table + zone chips ---- */
.fs-spec { width:100%; border-collapse:collapse; font-family:var(--font-mono); font-size:13px; }
.fs-spec td { padding:9px 0; border-bottom:1px solid var(--border-subtle); vertical-align:top; }
.fs-spec td:first-child { color:var(--text-muted); padding-right:20px; white-space:nowrap; }
.fs-spec td:last-child { color:var(--text-strong); text-align:right; font-weight:500; width:100%; }
.fs-zones { display:flex; flex-wrap:wrap; gap:8px; }
.fs-zone { display:inline-flex; align-items:flex-start; gap:8px; font-size:13px; line-height:1.45; color:var(--text-body); background:var(--surface-sunken);
  border:1px solid var(--border-subtle); border-radius:var(--radius-md); padding:8px 12px; max-width:100%; }
.fs-zone__dot { width:9px; height:9px; border-radius:50%; flex:none; margin-top:5px; }

/* ---- Cart (lista zapytania) ---- */
.fs-cart { margin:18px 0; display:flex; flex-direction:column; gap:8px; }
.fs-cart__empty { font-size:14px; color:var(--text-muted); padding:14px 0; }
.fs-cart__item { display:flex; align-items:center; gap:12px; padding:10px 12px; border:1px solid var(--border-subtle); border-radius:var(--radius-md); }
.fs-cart__name { flex:1; font-size:13px; font-weight:600; color:var(--text-strong); }
.fs-cart__qty { display:flex; align-items:center; gap:6px; }
.fs-cart__qty button { width:26px; height:26px; border:1px solid var(--border-default); background:var(--surface-card); border-radius:var(--radius-sm); cursor:pointer; font-size:15px; line-height:1; color:var(--text-strong); }
.fs-cart__qty span { font-family:var(--font-mono); font-size:13px; min-width:18px; text-align:center; }
.fs-cart__del { border:none; background:none; cursor:pointer; color:var(--text-faint); font-size:18px; line-height:1; }
.fs-cart__del:hover { color:var(--mark-red); }

/* ---- Responsywność ---- */
@media (max-width:860px) {
  .fs-stats { grid-template-columns:repeat(2,1fr); }
  .fs-steps { grid-template-columns:1fr 1fr; }
  .fs-features { grid-template-columns:1fr 1fr; }
  .fs-modal__card { grid-template-columns:1fr; max-height:94vh; overflow-y:auto; }
  .fs-modal__media { min-height:200px; }
  .fs-modal__body { max-height:none; overflow:visible; }
  .fs-modal__cols { grid-template-columns:1fr; gap:22px; }
  .fs-hero__title { font-size:32px; }
  .fs-contact { grid-template-columns:1fr; }
  .fs-catalog-layout { grid-template-columns:1fr; }
  .fs-facets { position:static; top:auto; display:none; margin-bottom:18px; }
  .fs-facets.is-open { display:flex; }
  .fs-facets-toggle { display:inline-block; }
}
@media (max-width:560px) {
  .fs-form__row { grid-template-columns:1fr; }
  .fs-steps { grid-template-columns:1fr; }
  .fs-features { grid-template-columns:1fr; }
}
