
/* ============================================================
   FULL-WIDTH & NO-BOXED RESET (Astra Child Fix)
   Likwidacja białych obwódek, marginesów i układu boxed.
   ============================================================ */
html,
body,
body.ast-desktop,
body.ast-plain-container,
body.ast-separate-container,
body.ast-boxed-container,
#page,
.site,
.site-content,
.ast-container,
.entry-content,
#primary,
#main {
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  background: #08091E !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
  overflow-x: hidden !important;
}

.fs24 {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #08091E !important;
  color: #FFFFFF !important;
  border: none !important;
  box-shadow: none !important;
}

/* ============================================================
   foliesamoprzylepne24.pl — Strona Główna (custom template)
   Paleta: Granat #0D0E35 / Navy deep #00001B / Royal #294592 /
   Royal Light #3B58A8 / Koral CTA #F05139 / Magenta #D52362 / Gold #F9B731
   ============================================================ */

:root {
  --fs24-navy: #0D0E35;
  --fs24-navy-deep: #00001B;
  --fs24-royal: #294592;
  --fs24-royal-light: #38BDF8;
  --fs24-coral: #F05139;
  --fs24-coral-dark: #D8412C;
  --fs24-magenta: #D52362;
  --fs24-magenta-dark: #A81A4E;
  --fs24-gold: #F9B731;
  --fs24-gold-dark: #D89A1F;
  --fs24-ink: #14163A;
  --fs24-bg-gray: #F8F9FA;
  --fs24-bg-gray2: #F0F4F8;
  --fs24-border: #E2E8F0;
  --fs24-text-muted: #4A5568;
  --fs24-text-mute2: #718096;
  --fs24-text-mute3: #A0AEC0;
}

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.fs24, .fs24 * { box-sizing: border-box; }
.fs24 { font-family: 'Inter', sans-serif; background: #fff; color: var(--fs24-ink); overflow-x: hidden; -webkit-font-smoothing: antialiased; }
.fs24 ::selection { background: var(--fs24-royal); color: #fff; }
.fs24 a { text-decoration: none; }
.fs24 button { font-family: inherit; }

/* ---------- Utility ---------- */
.fs24-eyebrow { font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: var(--fs24-royal); margin-bottom: 14px; }
.fs24-eyebrow--on-dark { color: #38BDF8; }
.fs24-h2 { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(28px, 4vw, 42px); color: var(--fs24-ink); margin: 0; }
.fs24-h2--on-dark { color: #FFFFFF !important; }
.fs24-section { padding: 96px 24px; }
.fs24-section--dark { background: var(--fs24-navy); }
.fs24-container { max-width: 1240px; margin: 0 auto; }
.fs24-btn { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; font-size: 14px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; padding: 16px 30px; border-radius: 6px; border: none; cursor: pointer; font-family: 'Inter', sans-serif; min-height: 44px; }
.fs24-btn--cta { background: var(--fs24-coral-dark); color: #fff; }
.fs24-btn--cta:hover { background: var(--fs24-coral); }
.fs24-btn--outline { background: transparent; color: #fff; border: 1.5px solid rgba(255,255,255,0.35); }
.fs24-btn--outline:hover { border-color: #fff; }
.fs24-btn--royal { background: var(--fs24-royal); color: #fff; }
.fs24-btn--sm { padding: 11px 22px; font-size: 13px; }
.fs24-link-muted { color: #CBD5E1; text-decoration: underline; font-size: 13px; }
.fs24-link-muted:hover { color: #fff; }

/* .fs24-wipe: dawny wrapper pod motion-reveal, celowo bez animacji JS (perf) — treść zawsze w pełni widoczna. */
.fs24-wipe { clip-path: inset(0 0 0 0); }

/* ROZ-FOL-05: CTA "od pojazdów" nad foldem, sygnatura wipe (rakla) przeniesiona na przycisk usług --
   ten sam ceiling co .fs24-glass-card__blade: statyczny clip-path, ruch tylko transform, PRM wyłącza. */
.fs24-btn--wipe { position: relative; overflow: hidden; isolation: isolate; }
.fs24-btn--wipe span:not(.fs24-btn--wipe__blade) { position: relative; z-index: 1; }
.fs24-btn--wipe__blade { position: absolute; top: -60%; bottom: -60%; left: -30%; width: 26%; background: linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.5) 45%, rgba(249,183,49,0.55) 55%, rgba(255,255,255,0) 100%); clip-path: polygon(35% 0, 100% 0, 65% 100%, 0 100%); transform: translate3d(0,0,0); transition: transform 0.55s cubic-bezier(0.65,0,0.35,1); pointer-events: none; z-index: 0; will-change: transform; }
.fs24-btn--wipe:hover .fs24-btn--wipe__blade, .fs24-btn--wipe:focus-visible .fs24-btn--wipe__blade { transform: translate3d(560%,0,0); }
@media (prefers-reduced-motion: reduce) { .fs24-btn--wipe__blade { display: none; } }

@keyframes fs24Shimmer { 0% { background-position: 0% 50%; } 100% { background-position: 200% 50%; } }
.fs24-film-stripes { background-image: repeating-linear-gradient(115deg, #3B58A8 0%, #294592 8%, #D52362 16%, #F9B731 24%, #294592 32%, #3B58A8 40%); background-size: 260% 260%; animation: fs24Shimmer 22s linear infinite; }
@media (prefers-reduced-motion: reduce) { .fs24-film-stripes { animation: none; } }

/* ---------- Header ---------- */
.fs24-header { position: sticky; top: 0; z-index: 50; background: rgba(13,14,53,0.92); backdrop-filter: blur(10px); border-bottom: 1px solid rgba(255,255,255,0.08); }
.fs24-header__inner { max-width: 1240px; margin: 0 auto; padding: 18px 24px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.fs24-logo { display: flex; align-items: center; gap: 10px; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 20px; color: #fff; letter-spacing: -0.01em; }
.fs24-logo__accent1 { color: #38BDF8; }
.fs24-logo__accent2 { color: var(--fs24-coral); }
.fs24-nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 12px 28px; row-gap: 10px; }
.fs24-nav a { color: rgba(255,255,255,0.75); font-size: 14px; font-weight: 500; }
.fs24-nav a:hover { color: #38BDF8; }
.fs24-nav__phone { color: #fff !important; font-weight: 600; font-family: 'JetBrains Mono', monospace; white-space: nowrap; }

/* P0-2 fix (postdeploy audit 2026-07-04): .fs24-header__inner nigdy się nie
   zawijał na ≤414px, .fs24-nav (6 linków + CTA) wychodził 30-84px poza
   ekran, nieosiągalny. CSS-only hamburger (checkbox-hack, zero JS). */
.fs24-hamburger { display: none; }
.fs24-nav-toggle { position: absolute; opacity: 0; pointer-events: none; }

@media (max-width: 860px) {
  .fs24-hamburger {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 32px;
    height: 32px;
    cursor: pointer;
    z-index: 60;
  }
  .fs24-hamburger span {
    display: block;
    width: 100%;
    height: 2px;
    background: #fff;
    border-radius: 2px;
  }
  .fs24-nav {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    flex-direction: column;
    align-items: stretch;
    background: var(--fs24-navy);
    padding: 12px 24px 20px;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    row-gap: 4px;
  }
  .fs24-nav a { padding: 10px 0; }
  .fs24-nav-toggle:checked ~ .fs24-nav { display: flex; }
}

/* ---------- Breadcrumb (P2 fix 2026-07: <p> -> <nav><ol>, wygląd bez zmian) ---------- */
.fs24-breadcrumb { margin: 0 0 16px; }
.fs24-breadcrumb ol { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0; padding: 0; list-style: none; font-family: 'JetBrains Mono', monospace; font-size: 12px; color: #94A3B8; }
.fs24-breadcrumb li:not(:last-child)::after { content: '/'; margin-left: 6px; color: #94A3B8; }
.fs24-breadcrumb a { color: #94A3B8; text-decoration: none; }

/* ---------- Hero ---------- */
.fs24-hero { position: relative; background: linear-gradient(180deg,#0D0E35 0%,#00001B 65%,#00001B 100%); overflow: hidden; padding: 0 24px 96px; }
.fs24-hero__gridline { position: absolute; top: 0; bottom: 0; width: 1px; background: rgba(255,255,255,0.08); pointer-events: none; }
.fs24-hero__gridline--1 { left: 25%; } .fs24-hero__gridline--2 { left: 50%; } .fs24-hero__gridline--3 { left: 75%; }

.fs24-hero__layer { position: absolute; pointer-events: none; }
.fs24-hero__glow-top { top: -320px; left: 50%; transform: translateX(-50%); width: 1000px; height: 420px; background: radial-gradient(ellipse at center, rgba(59,88,168,0.4) 0%, rgba(41,69,146,0.14) 45%, transparent 72%); filter: blur(40px); }
.fs24-hero__glow-a { top: -40%; left: -20%; width: 70%; height: 180%; background: radial-gradient(circle, rgba(213,35,98,0.22) 0%, transparent 65%); filter: blur(50px); }
.fs24-hero__glow-b { bottom: -30%; right: -15%; width: 60%; height: 150%; background: radial-gradient(circle, rgba(249,183,49,0.16) 0%, transparent 65%); filter: blur(55px); }
.fs24-hero__stripes { inset: -10%; opacity: 0.18; }

@keyframes fs24DriftA { 0%,100% { transform: translate3d(0,0,0) scale(1); } 50% { transform: translate3d(3%,-4%,0) scale(1.05); } }
@keyframes fs24DriftB { 0%,100% { transform: translate3d(0,0,0) scale(1); } 50% { transform: translate3d(-4%,3%,0) scale(1.06); } }
@keyframes fs24DriftSlow { 0% { transform: translate3d(0,0,0) rotate(0deg); } 100% { transform: translate3d(-2%,-2%,0) rotate(1.2deg); } }
.fs24-drift-a { animation: fs24DriftA 16s ease-in-out infinite; }
.fs24-drift-b { animation: fs24DriftB 19s ease-in-out infinite; }
.fs24-drift-slow { animation: fs24DriftSlow 30s ease-in-out infinite alternate; }

.fs24-hero__light-sweep { position: absolute; inset: 0; pointer-events: none; mix-blend-mode: screen; }
@keyframes fs24LightSweep { 0% { transform: translate3d(-120%,-40%,0) rotate(18deg); opacity: 0; } 8% { opacity: .55; } 45% { opacity: .35; } 60% { opacity: 0; } 100% { transform: translate3d(120%,40%,0) rotate(18deg); opacity: 0; } }
.fs24-hero__light-sweep::before { content: ''; position: absolute; top: -20%; left: 0; width: 45%; height: 140%; background: linear-gradient(100deg, transparent 10%, rgba(255,255,255,0.35) 45%, rgba(143,167,227,0.25) 55%, transparent 90%); filter: blur(6px); animation: fs24LightSweep 9s ease-in-out infinite; }

.fs24-hero__beam-pos { pointer-events: none; }
.fs24-beam { border-radius: 8px; box-shadow: 0 18px 40px rgba(0,0,0,0.35), inset 0 1px 1px rgba(255,255,255,0.3); }
.fs24-beam--1 { width: 230px; height: 32px; background: linear-gradient(100deg, transparent 15%, rgba(255,255,255,0.4) 30%, transparent 45%), linear-gradient(135deg,#3B58A8,#294592); opacity: 0.85; }
.fs24-beam--2 { width: 170px; height: 26px; border-radius: 7px; background: linear-gradient(100deg, transparent 15%, rgba(255,255,255,0.4) 30%, transparent 45%), linear-gradient(135deg,#F05139,#D8412C); opacity: 0.8; }
.fs24-beam--3 { width: 200px; height: 28px; background: linear-gradient(100deg, transparent 15%, rgba(255,255,255,0.4) 30%, transparent 45%), linear-gradient(135deg,#D52362,#A81A4E); opacity: 0.8; }
.fs24-beam--4 { width: 210px; height: 30px; background: linear-gradient(100deg, transparent 15%, rgba(255,255,255,0.4) 30%, transparent 45%), linear-gradient(135deg,#F9B731,#D89A1F); opacity: 0.75; }
.fs24-beam--5 { width: 150px; height: 22px; border-radius: 6px; background: linear-gradient(100deg, transparent 15%, rgba(255,255,255,0.4) 30%, transparent 45%), linear-gradient(135deg,#8FA7E3,#3B58A8); opacity: 0.7; }
@keyframes fs24BeamFloat1 { 0%,100% { transform: translate3d(0,0,0) rotate(-16deg); } 50% { transform: translate3d(18px,-34px,0) rotate(-4deg); } }
@keyframes fs24BeamFloat2 { 0%,100% { transform: translate3d(0,0,0) rotate(12deg); } 50% { transform: translate3d(-22px,-26px,0) rotate(22deg); } }
@keyframes fs24BeamFloat3 { 0%,100% { transform: translate3d(0,0,0) rotate(-10deg); } 50% { transform: translate3d(-16px,28px,0) rotate(-24deg); } }
.fs24-beam--1 { animation: fs24BeamFloat1 7s ease-in-out infinite; }
.fs24-beam--2 { animation: fs24BeamFloat2 8.5s ease-in-out infinite; }
.fs24-beam--3 { animation: fs24BeamFloat3 7.5s ease-in-out infinite; }
.fs24-beam--4 { animation: fs24BeamFloat1 9.5s ease-in-out infinite reverse; }
.fs24-beam--5 { animation: fs24BeamFloat2 6.5s ease-in-out infinite reverse; }
@media (max-width: 720px) { .fs24-hero__beam-pos { display: none; } }
@media (prefers-reduced-motion: reduce) {
  .fs24-drift-a, .fs24-drift-b, .fs24-drift-slow, .fs24-hero__light-sweep::before, .fs24-beam { animation: none !important; }
  .fs24-hero__layer, .fs24-hero__beam-pos { transform: none !important; }
}

.fs24-hero__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, #0D0E35 0%, transparent 30%, transparent 55%, #00001B 92%); pointer-events: none; }
.fs24-hero__inner { position: relative; max-width: 1240px; margin: 0 auto; padding-top: 64px; }

.fs24-glass-card { position: relative; width: 236px; min-height: 200px; margin: 0 auto 36px; border-radius: 16px; background: rgba(41,69,146,0.16); isolation: isolate; overflow: hidden; box-shadow: inset 0 1px 1px rgba(255,255,255,0.15), 0 20px 60px rgba(0,0,0,0.35); padding: 20px; display: flex; flex-direction: column; gap: 10px; }
/* ROZ-FOL-04: sygnatura wizualna domeny — "rakla" (squeegee) przesuwa się przez kartę na hover,
   symulując aplikację folii bez pęcherzy. Kształt ostrza wycięty przez clip-path (statyczny),
   ruch wyłącznie przez transform (zgodnie z budżetem CWV) — zero nowych nasłuchiwaczy JS/scroll. */
.fs24-glass-card__blade { position: absolute; top: -20%; bottom: -20%; left: -25%; width: 22%; background: linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.55) 45%, rgba(249,183,49,0.5) 55%, rgba(255,255,255,0) 100%); clip-path: polygon(35% 0, 100% 0, 65% 100%, 0 100%); transform: translate3d(0,0,0); transition: transform 0.65s cubic-bezier(0.65,0,0.35,1); pointer-events: none; z-index: 2; will-change: transform; }
.fs24-glass-card:hover .fs24-glass-card__blade, .fs24-glass-card:focus-within .fs24-glass-card__blade { transform: translate3d(660%,0,0); }
@media (prefers-reduced-motion: reduce) { .fs24-glass-card__blade { display: none; } }
.fs24-glass-card::before { content: ''; position: absolute; inset: 0; border-radius: 16px; padding: 1.4px; background: linear-gradient(180deg, rgba(255,255,255,0.55), rgba(255,255,255,0.03)); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; pointer-events: none; }
.fs24-glass-card__tag { font-family: 'JetBrains Mono', monospace; font-size: 12px; color: #38BDF8; letter-spacing: 0.05em; }
.fs24-glass-card__title { font-family: 'Space Grotesk', sans-serif; font-size: 18px; line-height: 1.3; color: #fff; font-weight: 600; }
.fs24-glass-card__title em { font-style: italic; font-weight: 500; color: #38BDF8; }
.fs24-glass-card__desc { font-size: 11px; line-height: 1.5; color: #CBD5E1; }

.fs24-hero__kicker { text-align: center; font-family: 'JetBrains Mono', monospace; font-size: 13px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: #38BDF8; margin-bottom: 20px; }
.fs24-hero__title { text-align: center; font-family: 'Space Grotesk', sans-serif; font-weight: 700; text-transform: uppercase; letter-spacing: -0.01em; font-size: clamp(34px,6vw,72px); line-height: 1.05; color: #fff; margin: 0 auto 24px; max-width: 920px; }
.fs24-hero__title .c-royal { color: #38BDF8; }
.fs24-hero__title .c-coral { color: var(--fs24-coral); }
.fs24-hero__desc { text-align: center; font-size: 16px; line-height: 1.6; color: #E2E8F0; max-width: 560px; margin: 0 auto 28px; }
.fs24-hero__compare-label { text-align: center; font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: #94A3B8; margin: 0 0 10px; }
.fs24-hero__cta-row { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-bottom: 28px; }
.fs24-hero__sample { text-align: center; margin: 0 0 28px; }
.fs24-hero__footnote { text-align: center; font-family: 'JetBrains Mono', monospace; font-size: 12px; color: #94A3B8; margin: 0; }

/* ---------- Compare slider (hero + gallery reuse) ---------- */
.fs24-compare { position: relative; overflow: hidden; }
.fs24-compare__before, .fs24-compare__after { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background-image: repeating-linear-gradient(45deg, #212D5E 0px, #212D5E 10px, #1a1f47 10px, #1a1f47 20px); }
.fs24-compare__before span, .fs24-compare__after span { font-family: 'JetBrains Mono', monospace; font-size: 12px; color: #94A3B8; }
.fs24-compare__after span { color: rgba(255,255,255,0.85); }
.fs24-compare__divider { position: absolute; top: 0; bottom: 0; width: 2px; background: #fff; pointer-events: none; }
.fs24-compare__handle { position: absolute; top: 50%; transform: translate(-50%,-50%); width: 40px; height: 40px; border-radius: 50%; background: #fff; display: flex; align-items: center; justify-content: center; font-size: 14px; color: var(--fs24-ink); pointer-events: none; box-shadow: 0 4px 14px rgba(0,0,0,0.3); }
.fs24-compare__range { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: ew-resize; margin: 0; }

.fs24-hero__compare { max-width: 760px; margin: 0 auto 32px; aspect-ratio: 16/8; border-radius: 14px; border: 1px solid rgba(255,255,255,0.15); box-shadow: 0 24px 60px rgba(0,0,0,0.4); }
.fs24-hero__compare .fs24-compare__handle { font-size: 14px; }

/* ---------- Trust bar ---------- */
.fs24-trust { background: var(--fs24-bg-gray); border-bottom: 1px solid var(--fs24-border); }
.fs24-trust__inner { max-width: 1240px; margin: 0 auto; padding: 28px 24px; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 40px; }
.fs24-trust__item { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--fs24-text-muted); }

/* ---------- Kreator ---------- */
.fs24-creator-head { text-align: center; margin-bottom: 48px; max-width: 900px; margin-left: auto; margin-right: auto; }
.fs24-creator-head p { font-size: 15px; color: var(--fs24-text-muted); max-width: 520px; margin: 0 auto; }
.fs24-creator-card { max-width: 900px; margin: 0 auto; background: var(--fs24-bg-gray); border: 1px solid var(--fs24-border); border-radius: 20px; padding: clamp(24px,4vw,48px); }
.fs24-creator-dots { display: flex; gap: 8px; margin-bottom: 32px; }
.fs24-creator-dot { height: 4px; flex: 1; border-radius: 2px; background: var(--fs24-border); transition: background .3s; }
.fs24-creator-dot.is-active { background: var(--fs24-royal); }
.fs24-creator-step { display: none; }
.fs24-creator-step.is-active { display: block; }
.fs24-step-label { font-size: 13px; font-weight: 600; color: var(--fs24-text-muted); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 4px; }
.fs24-step-hint { font-size: 13px; color: var(--fs24-text-muted); margin: 0 0 16px; }
.fs24-back-btn { background: none; border: none; color: var(--fs24-text-mute2); font-size: 13px; cursor: pointer; padding: 0; margin-bottom: 16px; font-family: inherit; }
.fs24-chip-row { display: flex; flex-wrap: wrap; gap: 10px; }
.fs24-chip { padding: 12px 18px; border-radius: 100px; border: 1.5px solid var(--fs24-border); background: #fff; color: var(--fs24-ink); font-size: 14px; font-weight: 500; cursor: pointer; min-height: 44px; display: inline-flex; align-items: center; }
.fs24-chip:hover { border-color: var(--fs24-royal); }

.fs24-result-label { font-size: 13px; font-weight: 600; color: var(--fs24-text-muted); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 8px; }
.fs24-result-title { font-family: 'Space Grotesk', sans-serif; font-size: clamp(22px,3vw,30px); font-weight: 700; color: var(--fs24-ink); margin-bottom: 10px; }
.fs24-result-desc { font-size: 15px; color: var(--fs24-text-muted); margin: 0 0 6px; }
.fs24-result-context { font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--fs24-text-muted); margin: 0 0 24px; }

.fs24-vehicle-block { display: none; background: #fff; border: 1px solid var(--fs24-border); border-radius: 14px; padding: 24px; margin-bottom: 24px; }
.fs24-vehicle-block.is-active { display: block; }
.fs24-vehicle-block__label { font-size: 13px; font-weight: 600; color: var(--fs24-text-mute2); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 16px; }
.fs24-vehicle-preview { position: relative; width: 260px; height: 110px; margin: 0 auto 20px; }
.fs24-vehicle-svg { width: 100%; height: 100%; display: block; }
.fs24-vehicle-svg .fs24-vehicle-paint { fill: var(--vehicle-color, #294592); transition: fill 0.2s ease; }
.fs24-vehicle-svg .fs24-vehicle-window { fill: var(--fs24-ink); opacity: 0.85; }
.fs24-vehicle-swatches { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }

/* ROZ-FOL-01: optyczne próbki wykończenia (mat/połysk/transparent), zero fotografii —
   sygnatura koloru budowana z gradientów/box-shadow (transform/opacity-safe, brak JS-animacji). */
.fs24-vehicle-swatch {
  position: relative;
  width: 34px; height: 34px;
  border-radius: 50%;
  border: 2.5px solid var(--fs24-border);
  cursor: pointer; padding: 0;
  background-color: var(--sw);
}
.fs24-vehicle-swatch--mat {
  box-shadow: inset 0 0 5px rgba(0,0,0,0.18);
  filter: saturate(0.9);
}
.fs24-vehicle-swatch--polysk {
  background-image: linear-gradient(135deg, rgba(255,255,255,0.65) 0%, rgba(255,255,255,0) 28%, rgba(255,255,255,0) 68%, rgba(255,255,255,0.3) 100%);
  box-shadow: inset 0 -3px 4px rgba(0,0,0,0.15);
}
.fs24-vehicle-swatch--transparent {
  background-image: repeating-conic-gradient(#e2e8f0 0% 25%, #fff 0% 50%);
  background-size: 10px 10px;
  background-color: transparent;
}
.fs24-vehicle-swatch--transparent::before {
  content: ''; position: absolute; inset: 0; border-radius: 50%;
  background: var(--sw); opacity: 0.4;
}
.fs24-vehicle-swatch.is-active { border-color: var(--fs24-coral); box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--fs24-coral); }
.fs24-vehicle-swatch.is-active::after {
  content: '\2713'; position: absolute; bottom: -3px; right: -3px;
  width: 15px; height: 15px; border-radius: 50%;
  background: var(--fs24-coral); color: #fff; border: 2px solid #fff;
  font-size: 10px; line-height: 11px; text-align: center;
}
.fs24-vehicle-swatch:focus-visible { outline: 2px solid var(--fs24-royal); outline-offset: 3px; }
.fs24-vehicle-swatch-current { text-align: center; font-size: 13px; color: var(--fs24-text-muted); margin: 12px 0 0; }
@media (prefers-reduced-motion: reduce) { .fs24-vehicle-swatch { transition: none; } }

.fs24-usage-calc { background: #fff; border: 1px solid var(--fs24-border); border-radius: 14px; padding: 20px 24px; margin-bottom: 24px; }
.fs24-usage-calc__label { font-size: 13px; font-weight: 600; color: var(--fs24-text-mute2); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 6px; }
.fs24-usage-calc__hint { font-size: 13px; color: var(--fs24-text-muted); margin: 0 0 14px; }
.fs24-usage-calc__row { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.fs24-usage-calc__row .fs24-field { max-width: 200px; }
.fs24-usage-calc__result { font-family: JetBrains Mono, monospace; font-size: 14px; color: var(--fs24-ink); margin: 0; min-height: 20px; }

/* ROZ-FOL-13: kalkulator kosztu montażu -- wzorzec pól 1:1 z .fs24-usage-calc (ROZ-FOL-06). */
.fs24-montaz-calc__label { display: block; font-size: 13px; font-weight: 600; color: var(--fs24-text-mute2); text-transform: uppercase; letter-spacing: 0.05em; margin: 18px 0 6px; }
.fs24-montaz-calc__label:first-of-type { margin-top: 0; }
.fs24-montaz-calc__result { font-family: JetBrains Mono, monospace; font-size: 15px; color: var(--fs24-ink); background: #fff; border: 1px solid var(--fs24-border); border-radius: 10px; padding: 14px 16px; margin: 18px 0 10px; min-height: 20px; }

.fs24-result-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.fs24-brief-wrap { display: none; border-top: 1px solid var(--fs24-border); margin-top: 24px; padding-top: 24px; }
.fs24-brief-wrap.is-active { display: block; }
.fs24-brief-title { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 18px; color: var(--fs24-ink); margin-bottom: 16px; }
.fs24-brief-form { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 14px; }
.fs24-field { padding: 13px 16px; border-radius: 8px; border: 1.5px solid var(--fs24-border); font-size: 14px; font-family: 'Inter', sans-serif; color: var(--fs24-ink); background: #fff; width: 100%; }
.fs24-field-full { grid-column: 1 / -1; }
.fs24-upload-label { display: flex; flex-direction: column; gap: 6px; }
.fs24-upload-label span.fs24-upload-caption { font-size: 13px; color: var(--fs24-text-muted); }
.fs24-upload-filename { font-size: 12px; color: var(--fs24-royal); display: none; }
.fs24-rodo-row { display: flex; align-items: center; gap: 10px; padding: 6px 2px; cursor: pointer; }
.fs24-rodo-row input { width: 18px; height: 18px; flex: none; }
.fs24-rodo-row span { font-size: 13px; color: var(--fs24-text-muted); }
.fs24-form-error { display: none; color: var(--fs24-coral-dark); font-size: 13px; margin-top: 10px; }

.fs24-thanks-wrap { display: none; border-top: 1px solid var(--fs24-border); margin-top: 24px; padding-top: 24px; }
.fs24-thanks-wrap.is-active { display: block; }
.fs24-thanks-title { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 18px; color: var(--fs24-ink); margin-bottom: 8px; }
.fs24-thanks-wrap p { font-size: 14px; color: var(--fs24-text-muted); margin: 0 0 6px; }
.fs24-thanks-wrap p.fs24-small { font-size: 13px; color: var(--fs24-text-mute2); margin-bottom: 16px; }
.fs24-thanks-wrap a { color: var(--fs24-royal); }
.fs24-btn-ghost { background: none; border: 1.5px solid var(--fs24-border); color: var(--fs24-ink); font-size: 13px; font-weight: 600; padding: 10px 20px; border-radius: 6px; cursor: pointer; min-height: auto; text-transform: none; letter-spacing: normal; }
.fs24-creator-footnote { text-align: center; font-size: 13px; color: var(--fs24-text-mute2); margin-top: 20px; }
.fs24-creator-footnote a { color: var(--fs24-royal); }

/* ---------- Co oklejamy ---------- */
.fs24-section--gray { background: var(--fs24-bg-gray2); }
.fs24-services-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(260px,1fr)); gap: 24px; }
.fs24-service-card { position: relative; display: block; background: #fff; border: 1px solid var(--fs24-border); border-radius: 10px; padding: 28px; overflow: hidden; color: inherit; }
.fs24-service-card::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; border-radius: 0 0 10px 10px; background: linear-gradient(90deg,#3B58A8,#294592,#D52362,#F9B731); opacity: 0; transition: opacity .3s; }
.fs24-service-card:hover::after { opacity: 1; }
.fs24-icon-box { width: 44px; height: 44px; border-radius: 10px; background: var(--fs24-bg-gray2); display: flex; align-items: center; justify-content: center; margin-bottom: 20px; }
.fs24-service-card__title { font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 19px; color: var(--fs24-ink); margin-bottom: 10px; }
.fs24-service-card__desc { font-size: 14px; line-height: 1.55; color: var(--fs24-text-muted); margin: 0; }

.fs24-service-card__photo { display: block; width: calc(100% + 56px); height: 140px; margin: -28px -28px 20px; object-fit: cover; }

/* ---------- Realizacje/gallery card photo strip ---------- */
.fs24-gallery-card__photo { display: block; width: 100%; height: 170px; object-fit: cover; }

/* ---------- Promo banner (rodzaje folii) ---------- */
.fs24-promo-wrap { padding: 0 24px 96px; background: #fff; }
.fs24-promo-banner { max-width: 1240px; margin: 0 auto; background: var(--fs24-navy); border-radius: 20px; padding: clamp(28px,5vw,56px); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 28px; }
.fs24-promo-banner__text { max-width: 560px; }
.fs24-promo-banner__text h2 { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(24px,3.4vw,34px); color: #fff; margin: 0 0 12px; }
.fs24-promo-banner__text p { font-size: 14px; line-height: 1.6; color: #CBD5E1; margin: 0; }
.fs24-promo-banner .fs24-btn { flex: none; }

/* ---------- Jak to działa ---------- */
.fs24-steps-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 32px; }
.fs24-step__icon { margin-bottom: 16px; }
.fs24-step__title { font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 17px; color: var(--fs24-ink); margin-bottom: 8px; }
.fs24-step__desc { font-size: 14px; line-height: 1.5; color: var(--fs24-text-muted); margin: 0; }

/* ---------- Realizacje ---------- */
.fs24-gallery-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 36px; }
.fs24-filter-row { display: flex; flex-wrap: wrap; gap: 8px; }
.fs24-filter-chip { padding: 9px 16px; border-radius: 100px; border: 1px solid rgba(255,255,255,0.2); background: transparent; color: #CBD5E1; font-size: 13px; font-weight: 500; cursor: pointer; min-height: 44px; display: inline-flex; align-items: center; }
.fs24-filter-chip.is-active { background: var(--fs24-royal-light); color: #fff; border-color: #38BDF8; }
.fs24-gallery-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(320px,1fr)); gap: 24px; }
.fs24-gallery-card { background: var(--fs24-ink); border-radius: 12px; overflow: hidden; }
.fs24-gallery-card[hidden] { display: none; }
.fs24-gallery-card .fs24-compare { aspect-ratio: 4/3; }
.fs24-gallery-card__meta { padding: 16px 18px; display: flex; justify-content: space-between; align-items: center; }
.fs24-gallery-card__label { color: #fff; font-size: 14px; font-weight: 500; }
.fs24-gallery-card__cat { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--fs24-text-mute2); text-transform: uppercase; }

/* ---------- FAQ ---------- */
.fs24-faq-list { display: flex; flex-direction: column; gap: 12px; }
.fs24-faq-item { background: #fff; border: 1px solid var(--fs24-border); border-radius: 10px; overflow: hidden; }
.fs24-faq-question { width: 100%; text-align: left; background: none; border: none; padding: 20px 24px; display: flex; justify-content: space-between; align-items: center; gap: 16px; cursor: pointer; font-size: 15px; font-weight: 600; color: var(--fs24-ink); font-family: 'Inter', sans-serif; }
.fs24-faq-icon { flex: none; font-size: 18px; color: var(--fs24-royal); }
.fs24-faq-answer { margin: 0; padding: 0 24px 22px; font-size: 14px; line-height: 1.6; color: var(--fs24-text-muted); }
.fs24-faq-answer[hidden] { display: none; }

/* ---------- CTA końcowe ---------- */
.fs24-cta-final { position: relative; background: linear-gradient(180deg,#00001B 0%,#0D0E35 100%); padding: 96px 24px; overflow: hidden; }
.fs24-cta-final__glow { position: absolute; top: -100px; left: 50%; transform: translateX(-50%); width: 700px; height: 340px; background: radial-gradient(ellipse at center, rgba(240,81,57,0.25) 0%, transparent 70%); filter: blur(40px); pointer-events: none; }
.fs24-cta-final__inner { position: relative; max-width: 720px; margin: 0 auto; text-align: center; }
.fs24-cta-final__inner h2 { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(26px,4vw,40px); color: #fff; margin: 0 0 28px; line-height: 1.25; }
.fs24-cta-final__phone { margin-top: 24px; font-family: 'JetBrains Mono', monospace; font-size: 14px; color: #CBD5E1; }

/* ---------- Footer ---------- */
.fs24-footer { background: var(--fs24-navy-deep); padding: 64px 24px 32px; }
.fs24-footer__grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(200px,1fr)); gap: 40px; padding-bottom: 40px; border-bottom: 1px solid rgba(255,255,255,0.1); }
.fs24-footer__logo { display: flex; align-items: center; gap: 9px; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 18px; color: #fff; margin-bottom: 14px; }
.fs24-footer__col p { font-size: 13px; line-height: 1.7; color: #CBD5E1; margin: 0; }
.fs24-footer__heading { font-size: 13px; font-weight: 600; color: #fff; margin-bottom: 14px; text-transform: uppercase; letter-spacing: 0.05em; }
.fs24-footer__links { display: flex; flex-direction: column; gap: 10px; }
.fs24-footer__links a { color: #CBD5E1; font-size: 14px; }
.fs24-footer__contact { display: flex; flex-direction: column; gap: 8px; font-size: 14px; color: #CBD5E1; }
.fs24-footer__contact div { display: flex; align-items: center; gap: 8px; }
.fs24-footer__contact svg { flex: none; opacity: 0.6; }
.fs24-footer__map { margin-top: 16px; border-radius: 8px; overflow: hidden; border: 1px solid rgba(255,255,255,0.12); aspect-ratio: 16/9; background: repeating-linear-gradient(45deg, #14163A 0px, #14163A 8px, #10122f 8px, #10122f 16px); display: flex; align-items: center; justify-content: center; gap: 6px; }
.fs24-footer__map span { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: #94A3B8; }
.fs24-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding-top: 24px; }
.fs24-footer__bottom p { font-size: 12px; color: #CBD5E1; margin: 0; }
.fs24-footer__bottom a { font-size: 12px; color: #CBD5E1; }

/* ---------- Podstrony: sub-hero, prose, karty, kontakt ---------- */
.fs24-devnote { background: var(--fs24-gold); color: var(--fs24-ink); text-align: center; padding: 8px 16px; font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 600; }
.fs24-subhero { background: linear-gradient(180deg,#0D0E35 0%,#00001B 100%); padding: 56px 24px 64px; }
.fs24-subhero--tall { padding-bottom: 96px; }
.fs24-subhero__inner { max-width: 820px; margin: 0 auto; }
.fs24-subhero__inner--wide { max-width: 1000px; }
.fs24-subhero h1 { font-family: 'Space Grotesk', sans-serif; font-weight: 700; text-transform: uppercase; font-size: clamp(28px,4.5vw,48px); line-height: 1.1; color: #fff; margin: 0 0 16px; }
.fs24-subhero__lead { font-size: 16px; line-height: 1.6; color: #E2E8F0; margin: 0; max-width: 640px; }
.fs24-subhero__icon { width: 52px; height: 52px; border-radius: 12px; background: rgba(59,88,168,0.18); display: flex; align-items: center; justify-content: center; margin-bottom: 20px; }

.fs24-prose h2 { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 24px; color: var(--fs24-ink); margin: 0 0 20px; }
.fs24-prose p { font-size: 15px; line-height: 1.7; color: var(--fs24-text-muted); margin: 0 0 12px; }
.fs24-prose p:last-child { margin-bottom: 0; }
.fs24-prose ul { margin: 0; padding-left: 20px; font-size: 15px; line-height: 1.9; color: var(--fs24-text-muted); }
.fs24-note { font-size: 13px; color: var(--fs24-text-mute2); margin-top: 20px; }

.fs24-cards-3 { display: grid; grid-template-columns: repeat(auto-fit,minmax(240px,1fr)); gap: 20px; }
.fs24-card-plain { background: #fff; border: 1px solid var(--fs24-border); border-radius: 10px; padding: 22px; }
.fs24-card-plain__title { font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 16px; color: var(--fs24-ink); margin-bottom: 8px; }
.fs24-card-plain__desc { font-size: 14px; line-height: 1.5; color: var(--fs24-text-muted); margin: 0; }

.fs24-why-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 20px; }
.fs24-why-card { padding: 20px; border: 1px solid var(--fs24-border); border-radius: 10px; font-size: 14px; line-height: 1.5; color: var(--fs24-text-muted); }

.fs24-cta-mini { position: relative; background: linear-gradient(180deg,#00001B 0%,#0D0E35 100%); padding: 72px 24px; text-align: center; overflow: hidden; }
.fs24-cta-mini--lg { padding: 80px 24px; }
.fs24-cta-mini__inner { max-width: 640px; margin: 0 auto; position: relative; }
.fs24-cta-mini h2 { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(22px,3vw,30px); color: #fff; margin: 0 0 24px; }
.fs24-cta-mini--lg h2 { font-size: clamp(24px,3.5vw,36px); }

.fs24-footer-mini { background: var(--fs24-navy-deep); padding: 48px 24px 32px; }
.fs24-footer-mini__inner { max-width: 1240px; margin: 0 auto; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; }
.fs24-footer-mini p { font-size: 12px; color: #94A3B8; margin: 0; }
.fs24-footer-mini a { font-size: 12px; color: #94A3B8; }

.fs24-param-table { border: 1px solid var(--fs24-border); border-radius: 10px; overflow: hidden; }
.fs24-param-row { display: flex; justify-content: space-between; padding: 14px 20px; border-bottom: 1px solid var(--fs24-border); font-size: 14px; }
.fs24-param-row:last-child { border-bottom: none; }
.fs24-param-row span:first-child { color: var(--fs24-text-mute2); }
.fs24-param-row span:last-child { color: var(--fs24-ink); font-weight: 600; }

.fs24-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
@media (max-width: 760px) { .fs24-contact-grid { grid-template-columns: 1fr; } }
.fs24-contact-info { display: flex; flex-direction: column; gap: 16px; font-size: 15px; color: rgba(255,255,255,0.75); margin-bottom: 28px; }
.fs24-contact-info div { display: flex; align-items: center; gap: 10px; }
.fs24-map-block { border-radius: 12px; overflow: hidden; border: 1px solid rgba(255,255,255,0.12); aspect-ratio: 4/3; background: repeating-linear-gradient(45deg, #14163A 0px, #14163A 8px, #10122f 8px, #10122f 16px); display: flex; align-items: center; justify-content: center; }
.fs24-map-block span { font-family: 'JetBrains Mono', monospace; font-size: 12px; color: #94A3B8; }
.fs24-contact-card { background: #fff; border-radius: 16px; padding: 28px; }
.fs24-contact-card__title { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 18px; color: var(--fs24-ink); margin-bottom: 16px; }
.fs24-contact-form { display: flex; flex-direction: column; gap: 14px; }
.fs24-textarea { padding: 13px 16px; border-radius: 8px; border: 1.5px solid var(--fs24-border); font-size: 14px; font-family: 'Inter', sans-serif; resize: vertical; width: 100%; }
.fs24-form-note { margin-top: 14px; font-size: 12px; color: var(--fs24-text-muted); }
.fs24-form-note a { color: var(--fs24-royal); }
.fs24-form-success { display: none; background: var(--fs24-bg-gray2); border-radius: 10px; padding: 16px; font-size: 14px; color: var(--fs24-ink); margin-top: 10px; }
.fs24-form-success.is-active { display: block; }
.fs24-contact-form.is-hidden { display: none; }

.fs24-silo-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(280px,1fr)); gap: 20px; }
.fs24-silo-card { display: block; background: #fff; border: 1px solid var(--fs24-border); border-radius: 12px; padding: 26px; color: inherit; }
.fs24-silo-card__num { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--fs24-royal); text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 10px; }
.fs24-silo-card__title { font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 18px; color: var(--fs24-ink); margin-bottom: 8px; }
.fs24-silo-card__desc { font-size: 13px; line-height: 1.5; color: var(--fs24-text-muted); margin: 0; }

.fs24-folia-list-card { display: block; background: #fff; border: 1px solid var(--fs24-border); border-radius: 10px; padding: 26px; color: inherit; }
.fs24-folia-list-card__icon { width: 40px; height: 40px; border-radius: 9px; background: var(--fs24-bg-gray2); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.fs24-folia-list-card__title { font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 17px; color: var(--fs24-ink); margin-bottom: 6px; }
.fs24-folia-list-card__desc { font-size: 13px; line-height: 1.5; color: var(--fs24-text-muted); margin: 0; }

/* ---------- Cookie banner ---------- */
.fs24-cookie { display: none !important; position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 80; max-width: 520px; margin: 0 auto; background: var(--fs24-ink); border-radius: 12px; padding: 20px 22px; box-shadow: 0 20px 50px rgba(0,0,0,0.35); flex-wrap: wrap; align-items: center; gap: 16px; }
.fs24-cookie.is-visible { display: none !important; }
.fs24-cookie p { flex: 1; min-width: 200px; font-size: 13px; line-height: 1.5; color: rgba(255,255,255,0.75); margin: 0; }
.fs24-cookie__actions { display: flex; gap: 10px; flex: none; }
.fs24-cookie__accept { background: var(--fs24-coral); color: #fff; border: none; font-size: 13px; font-weight: 700; text-transform: uppercase; padding: 10px 18px; border-radius: 6px; cursor: pointer; }
.fs24-cookie__accept:hover { background: var(--fs24-coral-dark); }
.fs24-cookie__dismiss { background: none; border: 1px solid rgba(255,255,255,0.25); color: #fff; font-size: 13px; font-weight: 600; padding: 10px 16px; border-radius: 6px; cursor: pointer; }

/* ---------- Focus visibility (BL-F14) ---------- */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
  outline: 2px solid var(--fs24-coral, #F05139);
  outline-offset: 2px;
}
.fs24-header a:focus-visible, .fs24-footer a:focus-visible, .fs24-footer-mini a:focus-visible {
  outline-color: #fff;
}

/* ---------- Powiązane usługi (BL-F09/F12) ---------- */
.fs24-related-services { margin-top: 40px; padding-top: 32px; border-top: 1px solid var(--fs24-border); }
.fs24-related-services__title { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 18px; color: var(--fs24-ink); margin: 0 0 16px; }
.fs24-related-services__grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(200px,1fr)); gap: 12px; }
.fs24-related-services__grid a { display: block; padding: 14px 18px; background: var(--fs24-bg-gray2); border-radius: 8px; color: var(--fs24-royal); font-size: 14px; font-weight: 600; }
.fs24-related-services__grid a:hover { background: var(--fs24-border); }

/* ---------- Elementor Kit CSS specificity fix (2026-07-11) ----------
   Root cause: Elementor + Elementor Pro stay active site-wide (legacy
   /polityka-prywatnosci/), and its "Default Kit" CSS ships
   `.elementor-kit-XXXXX a/button/h1..h6 { color:#000 }` (buttons: neon
   green). That compound selector (class+tag = 2 selector components)
   outranks every single-class fs24 rule below (1 component) and loads
   after home.css, so it silently won every tie/outrank — every link,
   button and heading on the site rendered black (or green for
   <button>), including on navy backgrounds where it's unreadable.
   Existing wp_dequeue in functions.php can't fully unload Elementor's
   CSS here (guarded off by a stale _elementor_edit_mode=builder
   postmeta from before this theme existed — separate DB-level cleanup,
   not done here). Fix: re-declare the same colors nested one level
   under the page wrapper (.fs24 ...) to add one class of specificity,
   which beats the kit rule regardless of load order or future kit
   changes. Values match the rules above 1:1 — no color decisions here,
   only specificity. */
.fs24 .fs24-hero__title { color: #fff; }
.fs24 .fs24-subhero h1 { color: #fff; }
.fs24 .fs24-h2 { color: var(--fs24-ink); }
.fs24 .fs24-h2--on-dark { color: #FFFFFF !important; }
.fs24 .fs24-promo-banner__text h2 { color: #fff; }
.fs24 .fs24-cta-final__inner h2 { color: #fff; }
.fs24 .fs24-cta-mini h2 { color: #fff; }
.fs24 .fs24-btn--cta { color: #fff; }
.fs24 .fs24-btn--outline { color: #fff; }
.fs24 .fs24-btn--royal { color: #fff; }
.fs24 .fs24-link-muted { color: #CBD5E1; }
.fs24 .fs24-link-muted:hover { color: #fff; }
.fs24 .fs24-logo { color: #fff; }
.fs24 .fs24-nav a { color: rgba(255,255,255,0.75); }
.fs24 .fs24-nav a:hover { color: #38BDF8; }
.fs24 .fs24-nav a.fs24-btn--cta { color: #fff; }
.fs24 .fs24-breadcrumb a { color: #94A3B8; }
.fs24 .fs24-footer__links a { color: #CBD5E1; }
.fs24 .fs24-footer__bottom a { color: #CBD5E1; }
.fs24 .fs24-form-note a { color: var(--fs24-royal); }
.fs24 .fs24-related-services__grid a { color: var(--fs24-royal); }
.fs24 .fs24-chip { color: var(--fs24-ink); }
.fs24 .fs24-back-btn { color: var(--fs24-text-mute2); }
.fs24 .fs24-btn-ghost { color: var(--fs24-ink); }
.fs24 .fs24-cookie__accept { color: #fff; }
.fs24 .fs24-cookie__dismiss { color: #fff; }

/* ROZ-FOL-19: "Zamów próbnik folii" -- CSS-mockup swatches (brak realnego zdjęcia w bibliotece mediów) */
.fs24-probnik-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 40px; align-items: start; }
.fs24-probnik-swatches { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin: 20px 0; }
.fs24-probnik-swatch { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid var(--fs24-border); border-radius: 12px; color: var(--fs24-ink); background: #fff; transition: border-color .15s ease, transform .15s ease; }
.fs24-probnik-swatch:hover { border-color: var(--fs24-royal); transform: translateY(-1px); }
.fs24-probnik-swatch__chip { display: block; width: 32px; height: 32px; border-radius: 8px; flex: none; border: 1px solid rgba(0,0,0,.08); }
.fs24-probnik-swatch__chip--frost { background: linear-gradient(135deg, #E7EDF5, #C7D3E3); }
.fs24-probnik-swatch__chip--sun { background: linear-gradient(135deg, var(--fs24-navy), var(--fs24-royal)); }
.fs24-probnik-swatch__chip--deco { background: linear-gradient(135deg, var(--fs24-magenta), var(--fs24-gold)); }
.fs24-probnik-swatch__chip--mirror { background: linear-gradient(135deg, #C7D3E3, #8FA7E3); }
.fs24-probnik-swatch__label { font-size: 14px; font-weight: 500; }
.fs24-probnik-note { font-size: 14px; color: var(--fs24-text-muted); }
@media (max-width: 780px) {
  .fs24-probnik-grid { grid-template-columns: 1fr; }
  .fs24-probnik-swatches { grid-template-columns: 1fr; }
}


/* ============================================================
   HIGH-CONTRAST MASTER OVERRIDES (WCAG 2.2 AAA Compliance)
   ============================================================ */
.fs24-eyebrow--on-dark { color: #F9B731 !important; font-weight: 600 !important; }
.fs24-subhero h1, .fs24-h2--on-dark, .fs24-hero__title { color: #FFFFFF !important; font-weight: 800 !important; }
.fs24-subhero__lead, .fs24-hero__desc { color: #E2E8F0 !important; font-size: 16px !important; line-height: 1.65 !important; }
.fs24-glass-card__tag { color: #38BDF8 !important; font-weight: 700 !important; }
.fs24-glass-card__title { color: #FFFFFF !important; font-weight: 700 !important; }
.fs24-glass-card__desc { color: #CBD5E1 !important; font-size: 12.5px !important; line-height: 1.5 !important; }
.fs24-breadcrumb ol { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0 0 16px; font-size: 13.5px; }
.fs24-breadcrumb ol li a { color: #93C5FD !important; text-decoration: underline !important; }
.fs24-breadcrumb ol li[aria-current="page"] { color: #FFFFFF !important; font-weight: 600 !important; }
.fs24-breadcrumb ol li::after { content: '/'; margin-left: 8px; color: #94A3B8; }
.fs24-breadcrumb ol li:last-child::after { content: ''; }
.fs24-footer__heading { color: #FFFFFF !important; font-weight: 700 !important; }
.fs24-footer__links a { color: #CBD5E1 !important; }
.fs24-footer__links a:hover { color: #F9B731 !important; text-decoration: underline !important; }
.fs24-footer__col p { color: #94A3B8 !important; }
.fs24-section--gray { background: #F1F5F9 !important; }
.fs24-section--gray h2, .fs24-section--gray h3 { color: #0F172A !important; }
.fs24-card-plain { background: #FFFFFF !important; border: 1px solid #CBD5E1 !important; border-radius: 12px !important; padding: 24px !important; box-shadow: 0 4px 16px rgba(0,0,0,0.04) !important; }
.fs24-card-plain__title { color: #0F172A !important; font-weight: 700 !important; font-size: 17.5px !important; margin-bottom: 10px !important; }
.fs24-card-plain__desc { color: #334155 !important; font-size: 14.5px !important; line-height: 1.6 !important; margin: 0 !important; }
.fs24-prose h2, .fs24-prose h3 { color: #0F172A !important; font-weight: 700 !important; }
.fs24-prose p, .fs24-prose ul { color: #334155 !important; font-size: 15px !important; line-height: 1.7 !important; }
.fs24-filter-chip { color: #E2E8F0 !important; border: 1px solid rgba(255,255,255,0.3) !important; font-weight: 600 !important; }
.fs24-filter-chip.is-active { background: #F05139 !important; color: #FFFFFF !important; border-color: #F05139 !important; font-weight: 700 !important; }
.fs24-gallery-card__label { color: #FFFFFF !important; font-weight: 600 !important; }
.fs24-gallery-card__cat { color: #F9B731 !important; font-weight: 600 !important; }
