
/* =============================================================
   KS THEME — ULTRA CLEAN SANS-SERIF OVERRIDES
   Load AFTER theme.css (or paste at the very end)
   ============================================================= */

/* --- Typography: force clean sans-serif everywhere --- */
:root{
  --font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  /* Override any heading serif usage */
  --font-family-base: var(--font-sans);
  --font-family-heading: var(--font-sans);

  /* Layout width (wider, consistent) */
  --max: 1360px;
}

/* Large screens can breathe a bit more */
@media (min-width: 1400px){
  :root{ --max: 1440px; }
}

/* Apply sans-serif universally */
html, body,
button, input, textarea, select{
  font-family: var(--font-sans) !important;
}

/* Headings also sans-serif (no serif anywhere) */
h1, h2, h3, h4, h5, h6,
.sectionHead h2,
.kicker,
.btn,
.tag,
.ks-weekMenu__kicker,
.ks-weekMenuVideo__title,
.ks-split__caption h2{
  font-family: var(--font-sans) !important;
  letter-spacing: -0.2px;
}

/* Weights tuned for clean premium */
body{ font-weight: 400; }
h1{ font-weight: 800; }
h2,h3{ font-weight: 700; }
.btn{ font-weight: 650; }

/* --- Layout consistency fixes --- */

/* Remove risky global max-width constraint */
*{ max-width: unset; }

/* Ensure container rhythm everywhere */
.wrap,
.sectionHead,
section > .panel,
section > .ks-weekMenu{
  margin-inline: auto;
}

/* Panels should never be viewport-based */
.panel{
  width: 100%;
  max-width: var(--max);
  margin-inline: auto;
}

/* Avoid accidental full-viewport traps */
#kolekcje,
#bestsellery,
#prezenty{
  width: 100%;
}

/* --- Performance-minded background tweak (CSS-only) --- */
/* Avoid costly fixed background repaint where possible */
body::before{
  position: fixed;
  background-image: image-set(
    url("https://ksiegarniasmakow.pl/wp-content/uploads/2026/01/background.webp") type("image/webp"),
    url("https://ksiegarniasmakow.pl/wp-content/uploads/2026/01/background.png") type("image/png")
  );
}

/* Reduce heavy blend cost of noise slightly */
.noise{ opacity: .08; }

/* --- De-duplicate section spacing (single source of truth) --- */
section{ margin-top: 64px; }

/* --- Buttons shimmer: keep subtle --- */
.btn.gold::before{
  opacity: .6;
  animation-duration: 5s;
}

/* --- Safety: ensure split layout stays aligned --- */
.ks-split{
  max-width: var(--max);
  margin-inline: auto;
}

/* Responsive guard */
@media (max-width: 980px){
  section{ margin-top: 48px; }
}

/* Same marble background, lighter encoding on phones/tablets. */
@media (max-width:980px){
  body::before{background-image:url('../img/background-mobile-v113.webp')}
}
/* The first screen must not wait for reveal JavaScript. */
.heroCard.reveal{opacity:1;transform:none;transition:none}
.skip-link:focus{position:fixed!important;top:12px;left:12px;width:auto!important;height:auto!important;clip:auto!important;clip-path:none!important;z-index:100000;background:#f4efe7;color:#071c15;padding:12px 18px}
