/* Self-hosted variable Montserrat. One file per subset covers 400–800, so the page does not download the same woff2 twice. Faces stay out of critical.css so they do not queue ahead of the hero image. */

@font-face {
  font-family: "Montserrat Fallback";
  src: local("Arial"), local("Liberation Sans"), local("Nimbus Sans");
  font-weight: 400;
  font-style: normal;
  size-adjust: 111.6%;
  ascent-override: 86.74%;
  descent-override: 22.49%;
  line-gap-override: 0%;
}

@font-face {
  font-family: "Montserrat Fallback";
  src: local("Arial Bold"), local("Liberation Sans Bold"), local("Arial"), local("Liberation Sans");
  font-weight: 700;
  font-style: normal;
  size-adjust: 110.6%;
  ascent-override: 87.52%;
  descent-override: 22.69%;
  line-gap-override: 0%;
}

@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(../fonts/montserrat-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(../fonts/montserrat-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --kamp-red: #c8102e;
  --kamp-dark: #0f1113;
  --kamp-ink: #1a1d21;
  --kamp-muted: #6b7280;
  --kamp-soft: #f7f7f7;
  --kamp-content-bg: #ffffff;
  /* Main content shell: home + subpages (header/footer bg full-bleed, inner rows align) */
  --kamp-max: 1200px;
  --kamp-gutter: 24px;
  --kamp-section-y: clamp(64px, 8vw, 104px);
  --kamp-section-gap: 28px;
  --kamp-font: "Montserrat", "Montserrat Fallback", system-ui, sans-serif;
  --kamp-body: "Montserrat", "Montserrat Fallback", system-ui, sans-serif;
  /* Content cards / glass: unified 3% (screens DNA) */
  --kamp-hero-card-radius: 3%;
  --kamp-card-radius: 3%;
  --kamp-box-radius: 3%;
  --kamp-rail-outer-radius: 3%;
  --kamp-rail-side: hsla(0, 98%, 43%, 0.64);
  /* Pills / segment filters: 3% (klocek DNA) */
  --kamp-pill-radius: 3%;
  --kamp-btn-radius: 3%;
  --kamp-btn-space: 1rem;
  --kamp-btn-pad-block: 0.625rem;
  --kamp-btn-pad-inline: 1rem;
  /* Sticky chrome: identical height on every page (hero tuck baseline) */
  --kamp-header-height: 52px;
  --kamp-header-offset: calc(var(--kamp-header-height) + env(safe-area-inset-top, 0px));
  --kamp-chrome-link-size: 13px;
  --kamp-chrome-lang-size: 11px;
  --kamp-chrome-stack: 1080px;
  /* Page-hero: glass box 5px under chrome; scroll cue lifted from bottom edge */
  --kamp-hero-box-gap: 5px;
  --kamp-hero-pad-top: calc(var(--kamp-header-offset) + var(--kamp-hero-box-gap));
  --kamp-hero-pad-x: var(--kamp-gutter);
  --kamp-hero-pad-bottom: clamp(16px, 2.5vh, 28px);
  --kamp-hero-scroll-cue-gap: 28px;
  --kamp-hero-min-height: 100vh;
  --kamp-hero-min-height: 100svh;
  --kamp-hero-card-max: 900px;
  --kamp-hero-card-width: 62%;
  --kamp-hero-card-radius: 3%;
  --kamp-hero-card-pad: clamp(20px, 2.6vw, 32px);
  --kamp-hero-gap: 18px;
  --kamp-hero-text-scale: 0.9;
  --kamp-hero-lead-scale: 0.9;
  --kamp-hero-title-base: clamp(1.05rem, 2.1vw, 1.55rem);
  --kamp-hero-lead-base: clamp(0.875rem, 1.15vw, 1.05rem);
  --kamp-hero-title-size: calc(var(--kamp-hero-title-base) * var(--kamp-hero-text-scale));
  --kamp-hero-lead-size: calc(var(--kamp-hero-lead-base) * var(--kamp-hero-lead-scale));
  --kamp-company-contact-text-scale: 0.9;
  --kamp-company-contact-text-size: calc(var(--kamp-hero-lead-base) * var(--kamp-company-contact-text-scale));
  --kamp-hero-title-size-mobile: clamp(1rem, 4.2vw, 1.35rem);
  /* One icon scale for all page heroes (home DNA) — no home-vs-subpage fork */
  --kamp-hero-icon-size: 56px;
  --kamp-hero-media-col: minmax(120px, 0.34fr);
  /* Contact form white card DNA (Bricks / Forminator 1142) */
  --kamp-form-max: 800px;
  --kamp-klocek-title: 1.75rem;
  --kamp-klocek-lead: 15px;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--kamp-dark); }
body.kamp-studio {
  margin: 0;
  font-family: var(--kamp-body);
  color: var(--kamp-ink);
  background: #fff;
  line-height: 1.55;
}
html {
  background: var(--kamp-dark, #0f1113);
}
body.kamp-host {
  /* Dark under header so no white seam above hero. */
  background: var(--kamp-dark);
  margin: 0;
  overflow-x: clip;
  color: #fff;
  font-family: var(--kamp-font);
  -webkit-font-smoothing: antialiased;
  /* Global copy: left, no mid-word breaks / hyphenation */
  text-align: left;
  hyphens: none;
  -webkit-hyphens: none;
  -ms-hyphens: none;
  overflow-wrap: normal;
  word-break: normal;
  word-wrap: normal;
}
body.kamp-host .kamp-section:not(.kamp-cta-band) {
  max-width: none;
  width: 100%;
  margin: 0;
  background: var(--kamp-content-bg, #fff);
  color: var(--kamp-ink);
  padding: var(--kamp-section-y) var(--kamp-gutter);
  box-shadow: none;
  border: 0;
}
/* Size scale must win over host section padding */
body.kamp-host .kamp-section.kamp-klocek:not(.kamp-cta-band) {
  padding-block: var(--kamp-klocek-pad, var(--kamp-section-y));
}
body.kamp-host .kamp-section.kamp-klocek .kamp-section__title {
  font-family: var(--kamp-font);
  font-size: calc(var(--kamp-klocek-title, clamp(1.65rem, 2.4vw, 2.15rem)) * var(--kamp-klocek-text-scale, 1));
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--kamp-ink);
  line-height: 1.2;
}
body.kamp-host .kamp-section__title {
  font-family: var(--kamp-font);
  font-size: calc(var(--kamp-klocek-title, clamp(1.65rem, 2.4vw, 2.15rem)) * var(--kamp-klocek-text-scale, 1));
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--kamp-ink);
  line-height: 1.2;
}
body.kamp-host .kamp-section > * {
  max-width: var(--kamp-max);
  margin-left: auto;
  margin-right: auto;
}
body.kamp-host .kamp-section--soft {
  background: var(--kamp-soft);
  padding-left: var(--kamp-gutter);
  padding-right: var(--kamp-gutter);
  box-shadow: none;
}
body.kamp-host .kamp-section--soft > * {
  max-width: var(--kamp-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: 0;
  padding-right: 0;
}
/* White content band under Hero — flat, no paper-stack smoke */
body.kamp-host .kamp-page__blocks,
body.kamp-host #kamp-content {
  background: var(--kamp-content-bg, #fff);
  color: var(--kamp-ink);
  overflow-x: clip;
  width: 100%;
  max-width: 100%;
}
.kamp-skip {
  position: fixed;
  left: 12px;
  top: 12px;
  z-index: 100;
  min-height: 44px;
  min-width: 44px;
  padding: 12px 16px;
  display: inline-flex;
  align-items: center;
  background: #fff;
  color: var(--kamp-ink);
  border-radius: var(--kamp-pill-radius);
  box-shadow: 0 4px 16px rgba(15, 17, 19, 0.12);
  transform: translateY(-160%);
  transition: transform 0.15s ease;
}
.kamp-skip:focus {
  transform: translateY(0);
  outline: 2px solid var(--kamp-red);
  outline-offset: 2px;
}
.kamp-header {
  position: relative;
  top: auto;
  left: auto;
  right: auto;
  z-index: 1;
  width: 100%;
  background: rgba(15, 17, 19, 0.78);
  backdrop-filter: blur(18px) saturate(1.25);
  -webkit-backdrop-filter: blur(18px) saturate(1.25);
  color: #fff;
  margin: 0;
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  box-shadow: none;
  /* Safe-area inside bar */
  padding-top: env(safe-area-inset-top, 0px);
  height: calc(var(--kamp-header-height) + env(safe-area-inset-top, 0px));
  min-height: calc(var(--kamp-header-height) + env(safe-area-inset-top, 0px));
  box-sizing: border-box;
}
/* Static chrome — sits at page top, scrolls away (no sticky/fixed chase) */
.kamp-chrome {
  position: relative;
  top: auto;
  left: auto;
  right: auto;
  z-index: 40;
  width: 100%;
}
/* Personalizacja → Menu: przyklejona belka nad Hero (PC + mobile) */
body.kamp-nav-sticky .kamp-chrome {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 60;
  width: 100%;
}
body.admin-bar.kamp-nav-sticky .kamp-chrome {
  top: var(--wp-admin--admin-bar--height, 32px);
}
@media screen and (max-width: 782px) {
  body.admin-bar.kamp-nav-sticky .kamp-chrome {
    top: var(--wp-admin--admin-bar--height, 46px);
  }
}
/* Spacer tylko gdy pierwszy blok ≠ Hero (fixed chrome nie zajmuje miejsca w flow) */
body.kamp-nav-sticky .kamp-main {
  padding-top: var(--kamp-header-offset);
}
body.kamp-nav-sticky.kamp-host .kamp-main:has(> .kamp-page-hero:first-child),
body.kamp-nav-sticky.kamp-host .kamp-main:has(> .kamp-hero:first-child) {
  padding-top: 0;
}
body.kamp-nav-sticky.kamp-host .kamp-main > .kamp-page-hero:first-child,
body.kamp-nav-sticky.kamp-host .kamp-main > .kamp-hero:first-child {
  margin-top: 0;
}
/* Scroll-cue stays in hero flow above the box (no sticky reposition). */
/* Pin chrome only while mobile menu is open (toggle stays reachable) */
body.kamp-nav-open .kamp-chrome {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 60;
  pointer-events: none;
}
body.kamp-nav-open .kamp-header {
  pointer-events: auto;
}
body.admin-bar.kamp-nav-open .kamp-chrome {
  top: var(--wp-admin--admin-bar--height, 32px);
}
@media screen and (max-width: 782px) {
  body.admin-bar.kamp-nav-open .kamp-chrome {
    top: var(--wp-admin--admin-bar--height, 46px);
  }
}
body.admin-bar .kamp-header {
  top: auto;
}
@media screen and (max-width: 782px) {
  body.admin-bar .kamp-header {
    top: auto;
  }
}
.kamp-header__bar {
  max-width: var(--kamp-max);
  margin: 0 auto;
  height: var(--kamp-header-height);
  min-height: var(--kamp-header-height);
  padding: 0 var(--kamp-gutter);
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  column-gap: clamp(12px, 2vw, 24px);
  position: relative;
  z-index: 2;
  box-sizing: border-box;
}
.kamp-header__inner {
  max-width: var(--kamp-max);
  margin: 0 auto;
  height: var(--kamp-header-height);
  min-height: var(--kamp-header-height);
  padding: 0 var(--kamp-gutter);
  display: flex; align-items: center; gap: 16px 20px; flex-wrap: nowrap;
  position: relative;
  box-sizing: border-box;
}
.kamp-header__actions {
  display: flex;
  align-items: center;
  gap: 10px;
  justify-self: end;
  flex-shrink: 0;
  grid-column: 3;
}
.kamp-logo {
  color: #fff;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  line-height: 0;
  flex-shrink: 0;
  position: relative;
  z-index: 2;
  justify-self: start;
  grid-column: 1;
  min-height: var(--kamp-chrome-link-size);
  min-width: 0;
  padding: 0;
  box-sizing: border-box;
}
.kamp-logo img,
.kamp-logo__img {
  height: var(--kamp-chrome-link-size);
  width: auto;
  max-height: var(--kamp-chrome-link-size);
  object-fit: contain;
  display: block;
  flex-shrink: 0;
}
/* Desktop nav top aligns with bar (no safe-area padding on chrome itself) */
.kamp-nav {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: var(--kamp-header-height);
  width: 100%;
  max-width: none;
  min-width: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  pointer-events: none;
  z-index: 1;
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  transform: none;
  opacity: 1;
  visibility: visible;
  overflow: visible;
}
.kamp-nav__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: clamp(8px, 1.4vw, 22px);
  flex-wrap: nowrap;
  justify-content: center;
  max-width: 100%;
  pointer-events: auto;
}
.kamp-nav__item { margin: 0; padding: 0; }

/* Chrome nav — header menu (13px Montserrat, title case) */
.kamp-nav__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 6px 4px;
  color: rgba(255, 255, 255, 0.88);
  text-decoration: none;
  font-size: var(--kamp-chrome-link-size);
  font-weight: 600;
  font-family: var(--kamp-font);
  letter-spacing: 0.01em;
  text-transform: none;
  white-space: nowrap;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  transition: color 0.2s ease;
}
.kamp-nav__link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -4px;
  height: 2px;
  background: var(--kamp-red);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.22s ease;
}
.kamp-nav__link:hover {
  color: #fff;
  background: transparent;
}
.kamp-nav__link:hover::after {
  transform: scaleX(1);
}
.kamp-nav__link.is-active {
  color: #fff;
  font-weight: 700;
  background: transparent;
  text-shadow: none;
}
.kamp-nav__link.is-active::after {
  transform: scaleX(1);
  box-shadow: none;
}

/* Chrome nav — footer links (ten sam rytm typografii) */
.kamp-footer__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 0;
  padding: 2px 0;
  color: rgba(255, 255, 255, 0.88);
  text-decoration: none;
  font-size: var(--kamp-chrome-link-size);
  font-weight: 600;
  font-family: var(--kamp-font);
  letter-spacing: 0.01em;
  text-transform: none;
  white-space: nowrap;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  transition: color 0.2s ease;
}
.kamp-footer__link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -4px;
  height: 2px;
  background: var(--kamp-red);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.22s ease;
}
.kamp-footer__link:hover {
  color: #fff;
  background: transparent;
}
.kamp-footer__link:hover::after {
  transform: scaleX(1);
}
.kamp-footer__link.is-active {
  color: #fff;
  font-weight: 700;
  background: transparent;
  text-shadow: none;
}
.kamp-footer__link.is-active::after {
  transform: scaleX(1);
  box-shadow: none;
}

.kamp-lang { display: flex; gap: 2px; flex-shrink: 0; align-items: center; position: relative; z-index: 2; }
/* After PL↔EN navigate: no motion / no scroll restore jump on hero */
html.kamp-lang-switching {
  scroll-behavior: auto;
}
html.kamp-lang-switching .kamp-page-hero,
html.kamp-lang-switching .kamp-page-hero__card,
html.kamp-lang-switching .kamp-page-leave {
  transition: none !important;
  animation: none !important;
}
.kamp-lang__item {
  color: #9aa1a8;
  text-decoration: none;
  font-size: var(--kamp-chrome-lang-size);
  font-weight: 600;
  letter-spacing: 0.06em;
  border: 0;
  padding: 6px 8px;
  min-width: 28px;
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0;
  line-height: 1;
  box-sizing: border-box;
  background: transparent;
  box-shadow: none;
  transition: color 0.2s ease, opacity 0.2s ease;
}
.kamp-lang__item:hover {
  color: #e4e7ea;
}
.kamp-lang__item.is-active {
  color: #fff;
  background: transparent;
  border: 0;
  font-weight: 700;
  box-shadow: inset 0 -2px 0 var(--kamp-red);
}
.kamp-main { min-height: 60vh; margin: 0; padding: 0; }
/* Shared page hero (Bricks DNA) - .kamp-hero kept as alias */
.kamp-page-hero,
.kamp-hero {
  --kamp-hero-side: hsla(0, 98%, 43%, 0.64);
  --kamp-hero-shade: linear-gradient(180deg, rgba(15,17,19,.35), rgba(15,17,19,.62));
  /* Full browser viewport: cue → box → menu pinned to bottom */
  min-height: var(--kamp-hero-min-height);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: var(--kamp-hero-gap);
  margin: 0;
  position: relative;
  box-sizing: border-box;
  background: var(--kamp-dark);
  padding: var(--kamp-hero-pad-top) var(--kamp-hero-pad-x) var(--kamp-hero-pad-bottom);
}
.kamp-page-hero__picture {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  margin: 0;
  pointer-events: none;
}
.kamp-page-hero__photo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.kamp-page-hero__shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: var(--kamp-hero-shade);
}
/* First hero under chrome: photo full-bleed when tuck works (desktop default below). */
body.kamp-host .kamp-main > .kamp-page-hero:first-child,
body.kamp-host .kamp-main > .kamp-hero:first-child {
  margin-top: calc(-1 * var(--kamp-header-offset));
}
/* Belka w flow (nie sticky): menu + hero = dokładnie 1× viewport. */
body.kamp-host:not(.kamp-nav-sticky) .kamp-main > .kamp-page-hero:first-child,
body.kamp-host:not(.kamp-nav-sticky) .kamp-main > .kamp-hero:first-child {
  margin-top: 0;
  /* Flat calc — nested calc(100svh - var(--header-offset)) was computing to min-height:0 when offset calc broke. */
  --kamp-hero-min-height: calc(100svh - var(--kamp-header-height) - env(safe-area-inset-top, 0px));
  min-height: calc(100svh - var(--kamp-header-height) - env(safe-area-inset-top, 0px));
  --kamp-hero-pad-top: var(--kamp-hero-box-gap);
}
/* Unified glass DNA (Hero + Dane kontaktowe firmy) — radius 3% */
.kamp-page-hero__card,
.kamp-glass-card {
  background: rgba(12, 14, 16, 0.72);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-radius: var(--kamp-hero-card-radius);
  border: 0;
  border-left: 5px solid var(--kamp-hero-side);
  border-right: 5px solid var(--kamp-hero-side);
  box-shadow:
    0 0 18px rgba(200, 16, 46, 0.18),
    0 24px 60px rgba(0, 0, 0, 0.4);
  color: #fff;
}
.kamp-glass-card--surface {
  background: #fff;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  color: var(--kamp-ink);
  box-shadow:
    -4px 0 10px rgba(200, 16, 46, 0.05),
    4px 0 10px rgba(200, 16, 46, 0.05),
    0 10px 28px rgba(26, 29, 33, 0.06);
}
.kamp-page-hero__card {
  width: min(calc(100% - 0px), var(--kamp-hero-card-max));
  max-width: var(--kamp-max);
  margin-inline: auto;
  display: grid;
  grid-template-columns: var(--kamp-hero-media-col) minmax(0, 1fr);
  gap: 22px 28px;
  align-items: center;
  padding: var(--kamp-hero-card-pad) clamp(20px, 3vw, 32px);
}
@media (min-width: 901px) {
  .kamp-page-hero__card {
    width: min(var(--kamp-hero-card-width), var(--kamp-hero-card-max));
  }
}
.kamp-page-hero__media {
  text-align: center;
  display: grid;
  gap: 14px;
  justify-items: center;
}
.kamp-page-hero__media h1,
.kamp-page-hero__media h2,
.kamp-page-hero__title {
  margin: 0;
  font-family: var(--kamp-font);
  font-size: var(--kamp-hero-title-size);
  font-weight: 700;
  line-height: 1.15;
  color: #fff;
  text-align: left;
  text-wrap: balance;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  -webkit-hyphens: none;
  -ms-hyphens: none;
}
.kamp-page-hero__lead,
.kamp-page-hero__prose {
  color: rgba(255, 255, 255, 0.9);
  line-height: 1.55;
  text-align: left;
  text-justify: auto;
  text-wrap: pretty;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  -webkit-hyphens: none;
  -ms-hyphens: none;
}
.kamp-page-hero__lead > p,
.kamp-page-hero__prose p {
  text-align: left;
  text-justify: auto;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  -webkit-hyphens: none;
  -ms-hyphens: none;
}
.kamp-page-hero__icon {
  width: var(--kamp-hero-icon-size);
  height: var(--kamp-hero-icon-size);
  display: grid;
  place-items: center;
}
.kamp-page-hero__icon img {
  width: var(--kamp-hero-icon-size);
  height: var(--kamp-hero-icon-size);
  object-fit: contain;
  filter: brightness(0) invert(1);
}
/* Keep glass card in home proportion — hero copy stays short (1–2 short paras) */
.kamp-page-hero__lead > p,
.kamp-page-hero__prose p {
  margin: 0 0 0.7em;
}
.kamp-page-hero__lead > p:last-child,
.kamp-page-hero__prose p:last-child { margin-bottom: 0; }
.kamp-page-hero__prose strong { color: #fff; font-weight: 700; }
.kamp-page-hero__contact-head {
  display: flex;
  gap: 14px;
  align-items: center;
  margin: 0 0 12px;
}
.kamp-page-hero__contact-head img,
.kamp-page-hero__mini-ico {
  width: 22px;
  height: 22px;
  color: #fff;
  opacity: .92;
}
.kamp-page-hero--contact .kamp-page-hero__contact-head img,
.kamp-page-hero--contact .kamp-page-hero__mini-ico {
  width: 15px;
  height: 15px;
}
.kamp-page-hero--contact .kamp-page-hero__contact-mark img {
  width: 50px;
  height: 50px;
}
.kamp-page-hero__contact-head img {
  object-fit: contain;
  filter: brightness(0) invert(1);
}
.kamp-page-hero__contact-title {
  margin: 0 0 10px;
  font-family: var(--kamp-font);
  font-weight: 800;
  font-size: calc(var(--kamp-hero-lead-size) * 1.05);
  color: #fff;
}
.kamp-page-hero__contact-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 4px;
  color: rgba(255,255,255,.92);
}
.kamp-page-hero__contact-list a {
  color: #fff;
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.35);
}
.kamp-page-hero__contact-list a:hover { border-bottom-color: #fff; }
.kamp-page-hero__contact-mark {
  margin-top: 18px;
  display: flex;
  justify-content: flex-start;
}
.kamp-page-hero__contact-mark img {
  width: 72px;
  height: 72px;
  object-fit: contain;
  border-radius: 50%;
}
.kamp-page-hero__cta,
.kamp-hero__cta {
  display: flex;
  gap: var(--kamp-btn-space);
  flex-wrap: wrap;
  margin-top: var(--kamp-btn-space);
  padding: var(--kamp-btn-space) 0;
}
.kamp-page-hero__after {
  width: min(100%, var(--kamp-hero-card-max));
  max-width: var(--kamp-max);
  margin-inline: auto;
}
@media (min-width: 901px) {
  .kamp-page-hero__after {
    width: min(var(--kamp-hero-card-width), var(--kamp-hero-card-max));
  }
}
.kamp-page-hero__after:has(.kamp-segment-pills--hero) {
  width: min(100%, var(--kamp-max));
  max-width: 100%;
}
@media (min-width: 901px) {
  .kamp-page-hero__after:has(.kamp-segment-pills--hero) {
    width: min(100%, var(--kamp-max));
  }
}
.kamp-page-hero__after .kamp-segment-pills--hero {
  justify-content: center;
  margin-top: 0;
  flex-wrap: nowrap;
  gap: 6px;
  max-width: 100%;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  -webkit-overflow-scrolling: touch;
}
.kamp-page-hero__after .kamp-segment-pills--hero::-webkit-scrollbar {
  display: none;
}
.kamp-segment-pills--hero > li {
  flex: 0 0 auto;
}
.kamp-segment-pills--hero .kamp-segment-pills__link,
.kamp-segment-pills--hero .kamp-segment-pills__link.kamp-btn {
  min-height: 32px;
  padding: 0 11px;
  border-radius: var(--kamp-btn-radius, 3%);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
  line-height: 1;
  backdrop-filter: blur(16px) saturate(1.35);
  -webkit-backdrop-filter: blur(16px) saturate(1.35);
}
@media (max-width: 900px) {
  .kamp-page-hero__after .kamp-segment-pills--hero,
  .kamp-page-hero__after .kamp-segment-pills--hero.kamp-segment-pills--nowrap,
  .kamp-segment-pills--hero.kamp-segment-pills--nowrap {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    flex-wrap: wrap;
    overflow-x: visible;
    gap: 6px;
    width: 100%;
    max-width: 100%;
    justify-content: stretch;
  }
  .kamp-page-hero__after .kamp-segment-pills--hero > li,
  .kamp-segment-pills--hero > li {
    flex: none;
    min-width: 0;
    width: auto;
  }
  .kamp-segment-pills--hero .kamp-segment-pills__link,
  .kamp-segment-pills--hero .kamp-segment-pills__link.kamp-btn {
    width: 100%;
    box-sizing: border-box;
  }
}

.kamp-projects-empty {
  grid-column: 1 / -1;
  display: flex;
  justify-content: center;
  padding: clamp(24px, 4vw, 48px) var(--kamp-gutter);
}
.kamp-projects-empty--compact {
  padding: 20px 0;
}
.kamp-projects-empty__card {
  max-width: 52ch;
  width: 100%;
  padding: clamp(20px, 3vw, 28px) clamp(22px, 3.5vw, 32px);
  background: var(--kamp-soft, #f8f9fa);
  border: 1px solid var(--kamp-border, #e5e8eb);
  border-left: 4px solid var(--kamp-red, #c8102e);
  border-radius: var(--kamp-card-radius, 3%);
  box-shadow: 0 8px 24px rgba(15, 17, 19, 0.06);
}
.kamp-projects-empty__kicker {
  margin: 0 0 8px;
  font-family: var(--kamp-font);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--kamp-red, #c8102e);
}
.kamp-projects-empty__title {
  margin: 0 0 10px;
  font-family: var(--kamp-font);
  font-size: clamp(1.15rem, 2.2vw, 1.45rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: var(--kamp-ink, #1a1d21);
}
.kamp-projects-empty__lead {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--kamp-muted, #555d61);
}
.kamp-projects-empty__cta {
  margin: var(--kamp-btn-space) 0 0;
  padding: var(--kamp-btn-space) 0;
}

.kamp-btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 2.625rem;
  padding: var(--kamp-btn-pad-block) var(--kamp-btn-pad-inline);
  border-radius: var(--kamp-btn-radius, 3%);
  background: #111; color: #fff; text-decoration: none; border: 1px solid transparent;
  font-family: var(--kamp-font); font-weight: 700; font-size: 13px; letter-spacing: 0.02em; cursor: pointer;
  transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
/* CTA / button wrap — ~1rem gap and padding on front */
.kamp-cta-band__actions,
.kamp-company-contact__cta,
.kamp-section__more,
.kamp-google-reviews__cta,
.kamp-spotlight__cta,
.kamp-single__meta-cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--kamp-btn-space);
  padding: var(--kamp-btn-space) 0;
  margin: 0;
}
.kamp-section__more {
  margin-top: var(--kamp-btn-space);
}
.kamp-contact-form__submit,
.kamp-contact-form .kamp-btn[type="submit"] {
  margin-top: var(--kamp-btn-space);
}
.kamp-page-hero__after .kamp-segment-pills--hero {
  padding: var(--kamp-btn-space) 0;
}
.kamp-btn:hover { background: #000; }
.kamp-btn--ghost {
  background: transparent;
  border-color: rgba(255,255,255,.45);
  color: #fff;
}
.kamp-btn--outline {
  background: #fff;
  color: var(--kamp-ink);
  border: 1px solid #d1d5db;
}
.kamp-btn--outline:hover {
  border-color: var(--kamp-ink);
  background: #fff;
}
.kamp-section { max-width: var(--kamp-max); margin: 0 auto; padding: var(--kamp-section-y) var(--kamp-gutter); }
.kamp-section__title {
  font-family: var(--kamp-font);
  font-size: clamp(1.4rem, 2.4vw, 1.75rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.2;
  margin: 0 0 24px;
  text-wrap: balance;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  -webkit-hyphens: none;
  -ms-hyphens: none;
}
.kamp-section__lead { max-width: var(--kamp-max); width: 100%; color: var(--kamp-muted); margin: 0 0 var(--kamp-section-gap); text-wrap: pretty; }
.kamp-section__head {
  margin: 0 0 var(--kamp-section-gap);
}
.kamp-section__head .kamp-section__title { margin: 0 0 10px; }
.kamp-section__head .kamp-section__lead { margin: 0; max-width: none; width: 100%; }
.kamp-section__head--split {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.15fr);
  gap: 14px 40px;
  align-items: start;
}
.kamp-section__head--split .kamp-section__title { margin: 0; }
.kamp-section__head--split .kamp-section__lead {
  margin: 0;
  max-width: none;
  color: var(--kamp-muted);
  font-size: var(--kamp-klocek-lead, 15px);
  line-height: 1.6;
}
.kamp-section--soft {
  background: var(--kamp-soft);
  max-width: none;
  padding-left: 0;
  padding-right: 0;
  box-shadow: none;
}
/* No extra horizontal pad on soft children — section gutter + title-inset own the edge */
.kamp-section--soft > * { max-width: var(--kamp-max); margin-left: auto; margin-right: auto; padding-left: 0; padding-right: 0; }
.kamp-section--soft .kamp-journal { padding-bottom: 8px; }
.kamp-nav-toggle {
  display: none;
  width: 36px;
  height: 36px;
  min-width: 36px;
  min-height: 36px;
  border: 0;
  background: transparent;
  border-radius: 0;
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
  z-index: 2;
  padding: 0;
  align-items: center;
  justify-content: center;
  box-shadow: none;
  transition: background 0.2s ease, opacity 0.2s ease;
}
.kamp-nav-toggle:hover,
.kamp-nav-toggle.is-active {
  border: 0;
  background: rgba(255, 255, 255, 0.06);
  box-shadow: none;
}
.kamp-nav-toggle__box {
  display: block;
  width: 16px;
  height: 12px;
  margin: 0 auto;
  position: relative;
}
.kamp-nav-toggle__line {
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  height: 2px;
  background: #fff;
  border-radius: 1px;
  transition: transform 0.22s ease, opacity 0.18s ease, top 0.22s ease;
}
.kamp-nav-toggle__line:nth-child(1) { top: 0; }
.kamp-nav-toggle__line:nth-child(2) { top: 5px; }
.kamp-nav-toggle__line:nth-child(3) { top: 10px; }
.kamp-nav-toggle.is-active .kamp-nav-toggle__line:nth-child(1) {
  top: 5px;
  transform: rotate(45deg);
}
.kamp-nav-toggle.is-active .kamp-nav-toggle__line:nth-child(2) {
  opacity: 0;
}
.kamp-nav-toggle.is-active .kamp-nav-toggle__line:nth-child(3) {
  top: 5px;
  transform: rotate(-45deg);
}
.kamp-nav-backdrop {
  display: none;
}
.screen-reader-text {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0;
}
.kamp-journal {
  display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px;
}
.kamp-journal__card {
  display: flex; flex-direction: column; text-decoration: none; color: inherit;
  background: #fff; border-radius: var(--kamp-card-radius); overflow: hidden; border: 1px solid #e6e8eb;
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.kamp-journal__card:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 32px rgba(15, 17, 19, 0.08);
  border-color: rgba(200, 16, 46, 0.22);
}
.kamp-journal__img { width: 100%; aspect-ratio: 16/10; object-fit: cover; display: block; }
.kamp-journal__body { padding: 14px; }
.kamp-journal__eyebrow { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--kamp-red); }
.kamp-journal__body h3 { margin: 6px 0 8px; font-family: var(--kamp-font); font-size: 15px; }
.kamp-journal__body p { margin: 0; color: var(--kamp-muted); font-size: 13px; line-height: 1.55; }

/* Journal archive — card grid (KAMP rail + glass DNA) */
.kamp-journal-archive,
.kamp-journal-strip,
.kamp-archive-teaser,
.kamp-journal-related,
.kamp-section.kamp-section--journal {
  padding-top: clamp(12px, 2vw, 20px);
  padding-bottom: clamp(36px, 5vw, 48px);
}
body.kamp-host .kamp-section.kamp-journal-archive:not(.kamp-cta-band),
body.kamp-host .kamp-section.kamp-journal-strip:not(.kamp-cta-band),
body.kamp-host .kamp-section.kamp-archive-teaser:not(.kamp-cta-band),
body.kamp-host .kamp-section.kamp-journal-related:not(.kamp-cta-band),
body.kamp-host .kamp-section.kamp-section--journal:not(.kamp-cta-band) {
  padding: 12px 0 36px;
}
.kamp-journal-archive > .kamp-projects-context,
.kamp-journal-strip > .kamp-projects-context,
.kamp-archive-teaser > .kamp-projects-context,
.kamp-journal-related > .kamp-projects-context,
.kamp-journal-archive > .kamp-grid,
.kamp-journal-strip > .kamp-grid,
.kamp-archive-teaser > .kamp-grid,
.kamp-journal-related > .kamp-grid {
  max-width: var(--kamp-max, 1200px);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--kamp-gutter, 20px);
  padding-right: var(--kamp-gutter, 20px);
}
.kamp-journal-strip__more,
.kamp-archive-teaser__cta {
  max-width: var(--kamp-max, 1200px);
  margin: 20px auto 0;
  padding: 0 var(--kamp-gutter, 20px);
}
.kamp-single--post .kamp-single__hero {
  position: relative;
  background: var(--kamp-soft, #f3f4f5);
}
.kamp-single--post .kamp-single__cover-wrap {
  max-height: min(52vh, 520px);
}
.kamp-single--post .kamp-journal-related {
  max-width: none;
  width: 100%;
  margin: 0;
  padding: 28px 0 40px;
  border-top: 1px solid rgba(15, 17, 19, 0.1);
  background: #fff;
}
.kamp-single--post .kamp-single__meta a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.kamp-single--post .kamp-single__meta a:hover {
  color: var(--kamp-red, #c8102e);
}
.kamp-journal-archive__count {
  margin: 0 0 20px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--kamp-muted);
}
.kamp-journal--archive {
  gap: clamp(16px, 2.4vw, 24px);
  align-items: stretch;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.kamp-journal__card--archive {
  height: 100%;
  min-height: 0;
  border: 0;
  border-left: 3px solid var(--kamp-rail-side);
  border-right: 3px solid var(--kamp-rail-side);
  border-radius: var(--kamp-card-radius);
  overflow: hidden;
  box-shadow:
    0 1px 0 rgba(15, 17, 19, 0.04),
    0 8px 24px rgba(15, 17, 19, 0.04);
  transition:
    transform 0.28s ease,
    box-shadow 0.28s ease,
    border-color 0.28s ease;
}
.kamp-journal__card--archive:hover {
  border-left-color: var(--kamp-red);
  border-right-color: var(--kamp-red);
  transform: translateY(-3px);
  box-shadow: 0 14px 32px rgba(15, 17, 19, 0.08);
}
.kamp-journal__card--archive h3 {
  font-size: clamp(0.95rem, 1.6vw, 1.05rem);
  font-weight: 700;
  line-height: 1.35;
  text-transform: none;
  letter-spacing: 0;
  margin: 6px 0 0;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  min-height: calc(1.35em * 2);
}
.kamp-journal__media {
  display: block;
  overflow: hidden;
  background: var(--kamp-dark);
}
.kamp-journal__card--archive .kamp-journal__media {
  flex-shrink: 0;
  aspect-ratio: 16 / 10;
  width: 100%;
  border-bottom: 2px solid var(--kamp-rail-side);
  border-radius: var(--kamp-card-radius) var(--kamp-card-radius) 0 0;
}
.kamp-journal__card--archive .kamp-journal__img {
  width: 100%;
  height: 100%;
  aspect-ratio: unset;
  object-fit: cover;
  transition: transform 0.35s ease;
}
.kamp-journal__card--archive:hover .kamp-journal__img {
  transform: scale(1.03);
}
.kamp-journal__placeholder {
  display: grid;
  place-items: center;
  aspect-ratio: 16 / 10;
  width: 100%;
  background:
    linear-gradient(145deg, rgba(200, 16, 46, 0.22), rgba(15, 17, 19, 0.92)),
    var(--kamp-dark);
  color: rgba(255, 255, 255, 0.72);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.kamp-journal__card--archive .kamp-journal__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: clamp(14px, 2vw, 18px) clamp(14px, 2vw, 18px) clamp(12px, 1.8vw, 16px);
}
.kamp-journal__card--archive .kamp-journal__body p {
  margin-top: 8px;
  flex: 1;
  font-size: 14px;
  line-height: 1.55;
  color: #4a5158;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  min-height: calc(1.55em * 3);
}
.kamp-journal__card--archive .kamp-journal__foot {
  margin-top: auto;
}
.kamp-journal__foot {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid #eef0f2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.kamp-journal__meta {
  font-size: 11px;
  font-weight: 600;
  color: #4a5158;
  line-height: 1.4;
}
.kamp-journal__link {
  flex-shrink: 0;
  min-height: 2rem;
  padding: 0.35rem 0.75rem;
  font-size: 11px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  pointer-events: none;
}
.kamp-journal__card--archive:hover .kamp-journal__link {
  border-color: var(--kamp-red);
  color: var(--kamp-red);
}
.kamp-journal-archive__pagination,
.kamp-archive-pagination {
  margin-top: clamp(28px, 4vw, 40px);
}
.kamp-journal-archive__pagination .nav-links,
.kamp-archive-pagination .nav-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.kamp-journal-archive__pagination .nav-links > li,
.kamp-archive-pagination .nav-links > li {
  margin: 0;
  padding: 0;
  list-style: none;
}
.kamp-journal-archive__pagination a.page-numbers,
.kamp-journal-archive__pagination span.page-numbers,
.kamp-archive-pagination a.page-numbers,
.kamp-archive-pagination span.page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 12px;
  border-radius: var(--kamp-pill-radius);
  border: 1px solid #e6e8eb;
  background: #fff;
  color: var(--kamp-ink);
  text-decoration: none;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}
.kamp-journal-archive__pagination a.page-numbers.prev,
.kamp-journal-archive__pagination a.page-numbers.next,
.kamp-archive-pagination a.page-numbers.prev,
.kamp-archive-pagination a.page-numbers.next {
  min-width: 0;
  padding: 0 14px;
}
.kamp-journal-archive__pagination a.page-numbers:hover,
.kamp-archive-pagination a.page-numbers:hover {
  border-color: rgba(200, 16, 46, 0.35);
  color: var(--kamp-red);
}
.kamp-journal-archive__pagination span.page-numbers.current,
.kamp-archive-pagination span.page-numbers.current {
  background: var(--kamp-red);
  border-color: var(--kamp-red);
  color: #fff;
}
.kamp-journal-archive__pagination span.page-numbers.dots,
.kamp-archive-pagination span.page-numbers.dots {
  border-color: transparent;
  background: transparent;
  min-width: 0;
  padding: 0 4px;
  color: var(--kamp-muted);
}

.kamp-process__lead {
  margin: 0 0 var(--kamp-section-gap);
  max-width: var(--kamp-max);
  width: 100%;
  color: var(--kamp-muted);
  font-size: var(--kamp-klocek-lead, 15px);
  line-height: 1.6;
  box-sizing: border-box;
  padding-inline: var(--kamp-klocek-text-inset, 3.5rem);
}
.kamp-section__lead.kamp-process__lead {
  margin: 0 0 var(--kamp-section-gap);
}
.kamp-process__head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 10px;
  flex-wrap: wrap;
}
.kamp-process__head .kamp-section__title { margin: 0; }
/* Alias legacy process icon → shared title-icon DNA */
.kamp-process__head-icon {
  width: 32px;
  height: 32px;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  flex-shrink: 0;
  display: block;
  border-radius: var(--kamp-card-radius);
}
.kamp-process {
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  align-items: stretch;
  min-width: 0;
}
.kamp-process__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  flex: 0 0 28px;
  width: 28px;
  height: 36px;
  color: var(--kamp-red);
  opacity: 0.82;
  pointer-events: none;
}
.kamp-process__arrow svg {
  display: block;
  width: 20px;
  height: 20px;
}
.kamp-process__step {
  flex: 1 1 0;
  min-width: 0;
  padding: 18px; border-radius: var(--kamp-card-radius); background: #fff; border: 1px solid #e6e8eb;
  display: grid;
  gap: 10px;
  align-content: start;
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.kamp-process__step:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(15, 17, 19, 0.07);
  border-color: rgba(200, 16, 46, 0.2);
}
.kamp-section:not(.kamp-section--soft) .kamp-process__step {
  background: var(--kamp-soft);
}
.kamp-process__icon {
  width: 28px;
  height: 28px;
  object-fit: contain;
  display: block;
  margin-bottom: 2px;
  opacity: 0.92;
}
.kamp-process__step:has(.kamp-process__icon) .kamp-process__num {
  font-size: 11px;
  letter-spacing: 0.04em;
}
.kamp-process__step h3 { margin: 0; font-family: var(--kamp-font); font-size: 15px; }
.kamp-process__step p { margin: 0; color: var(--kamp-muted); font-size: 13px; line-height: 1.5; }
.kamp-think {
  display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px;
}
.kamp-think__card {
  padding: 22px 20px; border-radius: var(--kamp-card-radius); background: #fff; border: 1px solid #e6e8eb;
  display: grid;
  gap: 8px;
  align-content: start;
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.kamp-think__card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(15, 17, 19, 0.07);
  border-color: rgba(200, 16, 46, 0.2);
}
.kamp-section:not(.kamp-section--soft) .kamp-think__card {
  background: var(--kamp-soft);
  border-color: #e6e8eb;
}
.kamp-think__icon {
  width: 36px;
  height: 36px;
  object-fit: contain;
  display: block;
  margin-bottom: 4px;
}
.kamp-think__card h3 {
  margin: 0 0 var(--kamp-klocek-head-gap, 1rem);
  font-family: var(--kamp-font);
  font-size: 1.05rem;
  font-weight: 800;
}
.kamp-think__lead {
  margin: 0 0 0.35em;
  font-family: var(--kamp-font);
  font-weight: 600;
  font-size: 14px;
  color: var(--kamp-ink);
}
.kamp-think__card > p,
.kamp-think__card .kamp-think__text {
  margin: 0;
  color: var(--kamp-muted);
  font-size: 13px;
}
.kamp-think__card > p:last-child { margin: 0; color: var(--kamp-muted); font-size: 13px; }

/* —— Portfolio pack (1.0.40) —— */
.kamp-capabilities__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.kamp-capabilities__card {
  padding: 20px 18px;
  border-radius: var(--kamp-card-radius);
  background: #fff;
  border: 1px solid #e6e8eb;
  display: grid;
  gap: 8px;
  align-content: start;
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.kamp-capabilities__card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(15, 17, 19, 0.07);
  border-color: rgba(200, 16, 46, 0.2);
}
.kamp-section:not(.kamp-section--soft) .kamp-capabilities__card {
  background: var(--kamp-soft);
}
.kamp-capabilities__icon {
  width: 40px;
  height: 40px;
  object-fit: contain;
  display: block;
}
.kamp-capabilities__card h3 {
  margin: 0;
  font-family: var(--kamp-font);
  font-size: 15px;
}
.kamp-capabilities__card p {
  margin: 0;
  color: var(--kamp-muted);
  font-size: 13px;
  line-height: 1.5;
}

.kamp-spotlight__card {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: 0;
  align-items: stretch;
  border: 1px solid #e6e8eb;
  border-radius: var(--kamp-card-radius);
  overflow: hidden;
  background: #fff;
}
.kamp-section:not(.kamp-section--soft) .kamp-spotlight__card {
  background: var(--kamp-soft);
}
.kamp-spotlight__media {
  margin: 0;
  min-height: 240px;
  background: #111;
}
.kamp-spotlight__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.kamp-spotlight__body {
  padding: 28px 24px;
  display: grid;
  gap: 10px;
  align-content: center;
}
.kamp-spotlight__segment {
  margin: 0;
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--kamp-red, #c8102e);
  font-weight: 700;
}
.kamp-spotlight__title {
  margin: 0;
  font-family: var(--kamp-font);
  font-size: calc(1.25rem * var(--kamp-klocek-text-scale, 1));
  line-height: 1.25;
}
.kamp-spotlight__lead {
  margin: 0;
  color: var(--kamp-muted);
  font-size: var(--kamp-klocek-lead, 15px);
  line-height: 1.55;
}

.kamp-stats-band {
  padding: var(--kamp-klocek-pad, 36px) 0;
  background: #111;
  color: #fff;
}
.kamp-stats-band--soft {
  background: var(--kamp-soft, #f3f4f5);
  color: var(--kamp-ink, #111);
}
.kamp-stats-band--default {
  background: transparent;
  color: var(--kamp-ink, #111);
  border-top: 1px solid #e6e8eb;
  border-bottom: 1px solid #e6e8eb;
}
.kamp-stats-band__inner {
  max-width: var(--kamp-max, 1300px);
  width: 100%;
  margin: 0 auto;
  padding: 0;
  display: grid;
  gap: 20px;
  box-sizing: border-box;
}
.kamp-stats-band__title {
  margin: 0;
  font-family: var(--kamp-font);
}
.kamp-stats-band__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  width: 100%;
  box-sizing: border-box;
}
.kamp-stats-band__item {
  display: grid;
  gap: 6px;
  align-content: start;
}
.kamp-stats-band__icon {
  width: 28px;
  height: 28px;
  object-fit: contain;
  display: block;
  margin-bottom: 2px;
  opacity: 0.92;
}
.kamp-stats-band--dark .kamp-stats-band__icon {
  filter: brightness(0) invert(1);
}
.kamp-stats-band__value {
  font-family: var(--kamp-font);
  font-size: 32px;
  font-weight: 800;
  line-height: 1.1;
  color: var(--kamp-red, #c8102e);
}
.kamp-stats-band--dark .kamp-stats-band__value { color: #fff; }
.kamp-stats-band__label {
  font-size: 13px;
  opacity: 0.85;
}

.kamp-logo-strip__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 28px 36px;
  align-items: center;
  justify-content: center;
}
.kamp-logo-strip__item img {
  display: block;
  max-height: 40px;
  width: auto;
  max-width: 140px;
  object-fit: contain;
  filter: grayscale(1);
  opacity: 0.75;
  transition: opacity .2s ease, filter .2s ease;
}
.kamp-logo-strip__item img:hover {
  filter: none;
  opacity: 1;
}

.kamp-testimonials__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.kamp-testimonials__card {
  margin: 0;
  padding: 22px 20px;
  border-radius: var(--kamp-card-radius);
  background: #fff;
  border: 1px solid #e6e8eb;
  display: grid;
  gap: 14px;
}
.kamp-section:not(.kamp-section--soft) .kamp-testimonials__card {
  background: var(--kamp-soft);
}
.kamp-testimonials__quote {
  margin: 0;
  font-size: 15px;
  line-height: 1.55;
  font-style: italic;
}
.kamp-testimonials__meta {
  display: grid;
  gap: 2px;
  font-size: 13px;
}
.kamp-testimonials__meta span {
  color: var(--kamp-muted);
}

@media (max-width: 900px) {
  .kamp-capabilities__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kamp-spotlight__card { grid-template-columns: 1fr; }
  .kamp-spotlight__card--media-right .kamp-spotlight__media { order: 0; }
  .kamp-spotlight__card--scale-text .kamp-spotlight__media,
  .kamp-spotlight__card--scale-text .kamp-spotlight__media img {
    position: static;
    height: auto;
    min-height: 0;
  }
  .kamp-spotlight__card--scale-text .kamp-spotlight__media img {
    aspect-ratio: 16 / 10;
    max-height: min(52vh, 420px);
  }
  .kamp-stats-band__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .kamp-capabilities__grid,
  .kamp-testimonials__grid { grid-template-columns: 1fr; }
  .kamp-spotlight__body { padding: 20px 16px; }
}

.kamp-social { max-width: var(--kamp-max); }
.kamp-social__embed { overflow: hidden; }
.kamp-social__fallback {
  display: grid; gap: 14px; justify-items: center; text-align: center;
  padding: clamp(36px, 5vw, 56px) 28px;
  border-radius: var(--kamp-card-radius);
  background: #fff;
  border: 1px solid #e6e8eb;
  box-shadow: 0 1px 0 rgba(15, 17, 19, 0.04);
}
.kamp-social__fallback p { margin: 0; max-width: 520px; color: var(--kamp-muted); }
.kamp-social__mark { display: inline-flex; line-height: 0; }
.kamp-social__ico {
  width: 28px;
  height: 28px;
  object-fit: contain;
  display: block;
}
.kamp-faq {
  display: grid;
  gap: 0;
  max-width: 860px;
  border-top: 1px solid #e2e5e8;
}
.kamp-faq__lead {
  max-width: var(--kamp-max);
  width: 100%;
  margin: 0 0 var(--kamp-section-gap);
  color: var(--kamp-muted);
  font-size: var(--kamp-klocek-lead, 15px);
  line-height: 1.6;
  box-sizing: border-box;
  padding-inline: var(--kamp-klocek-text-inset, 3.5rem);
}
.kamp-faq__lead p { margin: 0; }
.kamp-faq__lead strong { font-weight: 700; color: var(--kamp-ink); }
.kamp-faq__item {
  border: 0;
  border-bottom: 1px solid #e2e5e8;
  border-radius: 0;
  background: transparent;
  padding: 0;
  transition: background-color .25s ease, box-shadow .25s ease;
}
.kamp-faq__item[open] {
  background: #fff;
  box-shadow: inset 3px 0 0 var(--kamp-red);
}
.kamp-faq__summary {
  display: flex;
  align-items: center;
  gap: 14px;
  cursor: pointer;
  list-style: none;
  font-family: var(--kamp-font);
  font-weight: 700;
  font-size: calc(15px * var(--kamp-klocek-text-scale, 1));
  line-height: 1.35;
  color: var(--kamp-ink);
  padding: 16px 14px 16px 12px;
  position: relative;
  transition: color .2s ease;
}
.kamp-faq__summary::-webkit-details-marker { display: none; }
.kamp-faq__summary:hover { color: var(--kamp-red); }
.kamp-faq__summary:focus-visible {
  outline: 2px solid var(--kamp-red);
  outline-offset: 2px;
}
.kamp-faq__icon {
  width: 22px;
  height: 22px;
  object-fit: contain;
  display: block;
  flex-shrink: 0;
  opacity: .92;
}
.kamp-faq__title {
  flex: 1 1 auto;
  min-width: 0;
}
.kamp-faq__chev {
  width: 10px;
  height: 10px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  transition: transform .28s ease;
  flex-shrink: 0;
  opacity: .7;
  margin-top: -4px;
  margin-left: auto;
}
.kamp-faq__item[open] .kamp-faq__chev {
  transform: rotate(225deg);
  margin-top: 4px;
  opacity: 1;
  color: var(--kamp-red);
}
.kamp-faq__body {
  padding: 0 14px 18px 48px;
  color: var(--kamp-muted);
  font-size: calc(14px * var(--kamp-klocek-text-scale, 1));
  line-height: 1.65;
  overflow: hidden;
}
.kamp-faq__body p { margin: 0 0 .85rem; }
.kamp-faq__body p:last-child { margin-bottom: 0; }
.kamp-faq__body strong { color: var(--kamp-ink); font-weight: 700; }
.kamp-faq__body em { font-style: italic; }
@media (max-width: 640px) {
  .kamp-faq__summary {
    gap: 10px;
    padding: 14px 8px 14px 6px;
    font-size: 14px;
  }
  .kamp-faq__body { padding: 0 8px 16px 36px; font-size: 13.5px; }
}
.kamp-cta-band {
  background: var(--kamp-dark, #0f1113);
  color: #fff;
  padding: var(--kamp-klocek-pad, clamp(28px, 4vw, 40px)) var(--kamp-gutter);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  box-sizing: border-box;
  max-width: none;
  width: 100%;
  margin: 0;
}
.kamp-cta-band__copy > :is(h1, h2, h3, p) {
  color: inherit;
}
.kamp-cta-band__inner {
  max-width: var(--kamp-max);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px 24px;
  flex-wrap: wrap;
}
.kamp-cta-band__copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  flex: 1 1 auto;
  min-width: 0;
}
.kamp-cta-band__copy .kamp-cta-band__icon {
  margin-bottom: 8px;
}
.kamp-cta-band h2,
.kamp-cta-band__copy > :is(h1, h2, h3) {
  margin: 0;
  font-family: var(--kamp-font);
  font-size: clamp(1.15rem, 2.2vw, 1.55rem);
  font-weight: 700;
  letter-spacing: 0.01em;
  line-height: 1.2;
}
.kamp-cta-band .kamp-btn {
  min-height: 2.625rem;
  padding: var(--kamp-btn-pad-block) var(--kamp-btn-pad-inline);
  font-size: 13px;
  border-radius: var(--kamp-btn-radius, 3%);
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.45);
  color: #fff;
}
.kamp-cta-band .kamp-btn--ghost,
.kamp-cta-band .kamp-btn:hover {
  border-color: var(--kamp-red);
  color: #fff;
  background: transparent;
}
.kamp-cta-band--red {
  background: var(--kamp-red);
  border-top-color: transparent;
}
.kamp-cta-band--red .kamp-btn {
  border-color: rgba(255, 255, 255, 0.55);
  background: rgba(0, 0, 0, 0.12);
}
.kamp-cta-band--red .kamp-btn:hover {
  background: #0f1113;
  border-color: #0f1113;
}
.kamp-cta-band__icon {
  width: 28px;
  height: 28px;
  object-fit: contain;
  flex: 0 0 auto;
  filter: brightness(0) invert(1);
}
.kamp-areas {
  display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px;
}
/* Rail card DNA: photo | vertical label — 7% outer only, middle fused (no gap) */
.kamp-area {
  position: relative;
  min-height: 360px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 72px;
  gap: 0;
  align-items: stretch;
  overflow: visible;
  background: transparent;
  color: #fff;
}
.kamp-area__media {
  display: block;
  min-height: 360px;
  min-width: 0;
  background: #1a1d21;
  border-radius: var(--kamp-rail-outer-radius) 0 0 var(--kamp-rail-outer-radius);
  overflow: hidden;
}
.kamp-area__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  min-height: 360px;
  border-radius: 0;
}
.kamp-area__rail {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 10px;
  padding: 14px 8px;
  background: #0f1113;
  border: 2px solid var(--kamp-rail-side);
  border-left: 0;
  border-radius: 0 var(--kamp-rail-outer-radius) var(--kamp-rail-outer-radius) 0;
  box-shadow: 0 0 12px rgba(200, 16, 46, 0.14);
}
.kamp-area__title,
.kamp-area__text {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  margin: 0 auto;
  font-family: var(--kamp-font);
  font-weight: 700;
  color: #fff;
}
.kamp-area__text { font-weight: 500; font-size: 12px; opacity: .88; max-height: 70%; }
.kamp-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 18px;
}
.kamp-grid--projects {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  align-items: stretch;
}
@media (min-width: 901px) {
  /* Equal tiles per row: stretch grid cells; photo column sets height (3:4); rail cannot grow row (Safari). */
  .kamp-grid--projects {
    align-items: stretch;
  }
  .kamp-card--project {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 56px;
    grid-template-rows: auto;
    align-items: stretch;
    width: 100%;
    height: 100%;
    min-height: 0;
    position: relative;
    contain: layout style;
  }
  .kamp-card__media {
    grid-column: 1;
    grid-row: 1;
    display: block;
    position: relative;
    width: 100%;
    max-width: 100%;
    aspect-ratio: 3 / 4;
    min-height: 220px;
    height: auto;
    align-self: start;
    contain: layout style paint;
  }
  .kamp-card__rail {
    grid-column: 2;
    grid-row: 1;
    position: relative;
    top: auto;
    right: auto;
    bottom: auto;
    width: 56px;
    max-width: 56px;
    min-width: 0;
    height: 0;
    min-height: 100%;
    align-self: stretch;
    overflow: hidden;
    box-sizing: border-box;
  }
  .kamp-card__rail-title,
  .kamp-card__rail-tag {
    max-height: 92%;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
  }
}
.kamp-grid--projects.kamp-grid--cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kamp-grid--projects.kamp-grid--cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.kamp-grid--projects-list { grid-template-columns: 1fr; gap: 14px; }
.kamp-grid--projects-list .kamp-card--project { min-height: 160px; }
.kamp-journal--list { grid-template-columns: 1fr; gap: 12px; }
.kamp-journal--list .kamp-journal__card { flex-direction: row; align-items: stretch; }
.kamp-journal--featured-side {
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  grid-template-rows: auto auto;
  gap: 16px;
}
.kamp-journal--featured-side .kamp-journal__card--featured { grid-row: span 2; }
.kamp-journal__meta { display: block; font-size: 12px; opacity: .72; margin-top: 4px; }
/* Archive teaser (np. „Ostatnie w dzienniku”) — równe karty PC + tytuły w jednej linii */
.kamp-archive-teaser__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  align-items: stretch;
}
.kamp-archive-teaser__item {
  min-width: 0;
  height: 100%;
  margin: 0;
}
.kamp-archive-teaser__item > a {
  display: flex;
  flex-direction: column;
  gap: 10px;
  height: 100%;
  min-height: 100%;
  text-decoration: none;
  color: var(--kamp-ink, #1a1d21);
  background: #fff;
  border: 1px solid #e6e8eb;
  border-radius: var(--kamp-card-radius, 8px);
  overflow: hidden;
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}
.kamp-archive-teaser__item > a:hover,
.kamp-archive-teaser__item > a:focus-visible {
  color: var(--kamp-ink, #1a1d21);
  text-decoration: none;
  border-color: rgba(200, 16, 46, 0.28);
  box-shadow: 0 12px 28px rgba(15, 17, 19, 0.08);
  transform: translateY(-2px);
}
.kamp-archive-teaser__item > a:visited {
  color: var(--kamp-ink, #1a1d21);
}
.kamp-archive-teaser__media {
  display: block;
  overflow: hidden;
  background: var(--kamp-dark, #0f1113);
  aspect-ratio: 16 / 10;
  flex: 0 0 auto;
}
.kamp-archive-teaser__img {
  width: 100%;
  height: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  object-position: center;
  display: block;
  border-radius: 0;
}
.kamp-archive-teaser__title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  margin: 0;
  padding: 0 14px 14px;
  font-family: var(--kamp-font);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.35;
  min-height: calc(1.35em * 2);
  color: inherit;
  text-decoration: none;
}
.kamp-archive-teaser--minimal .kamp-archive-teaser__item > a {
  border: 0;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
}
.kamp-archive-teaser--minimal .kamp-archive-teaser__item > a:hover {
  transform: none;
  box-shadow: none;
}
.kamp-archive-teaser--minimal .kamp-archive-teaser__title {
  padding: 0;
  font-weight: 600;
}
.kamp-archive-teaser--dense {
  gap: 6px;
}
.kamp-archive-teaser--dense .kamp-archive-teaser__item > a {
  font-size: 13px;
}
.kamp-archive-teaser--list .kamp-archive-teaser__list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  grid-template-columns: none;
}
.kamp-archive-teaser--hero-teaser .kamp-archive-teaser__list > :first-child {
  grid-column: 1 / -1;
}
.kamp-archive-teaser--hero-teaser .kamp-archive-teaser__list > :first-child .kamp-archive-teaser__media,
.kamp-archive-teaser--hero-teaser .kamp-archive-teaser__list > :first-child .kamp-archive-teaser__img {
  min-height: 220px;
  aspect-ratio: 21 / 9;
}
@media (max-width: 900px) {
  .kamp-archive-teaser__list {
    grid-template-columns: 1fr;
  }
}
.kamp-project-related--strip .kamp-projects-grid {
  display: flex;
  flex-wrap: nowrap;
  gap: 16px;
  overflow-x: auto;
  padding-bottom: 8px;
}
.kamp-project-related--strip .kamp-card--project { flex: 0 0 min(280px, 85vw); }
.kamp-project-related--list .kamp-projects-grid { display: grid; grid-template-columns: 1fr; gap: 12px; }
/* Faza 3 — layout contract + DNA block options */
.kamp-think--cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kamp-think--equal .kamp-think__card { height: 100%; }
.kamp-think--stagger .kamp-think__card:nth-child(2) { transform: translateY(8px); }
.kamp-think--stagger .kamp-think__card:nth-child(3) { transform: translateY(16px); }
.kamp-think-block--layout-row .kamp-think { display: flex; flex-wrap: wrap; gap: 20px; }
.kamp-think-block--layout-row .kamp-think__card { flex: 1 1 220px; }
.kamp-think-block--layout-stacked .kamp-think { display: grid; grid-template-columns: 1fr; gap: 16px; }
.kamp-faq-block--compact .kamp-faq__item { padding: 8px 0; }
.kamp-faq__num { font-weight: 700; opacity: .55; flex-shrink: 0; min-width: 1.2em; }
.kamp-faq-block--layout-two-col .kamp-faq { columns: 2; gap: 24px; }
.kamp-faq-block--layout-compact .kamp-faq__item { padding: 6px 0; }
.kamp-process-block--layout-expanded .kamp-process__step {
  border: 1px solid rgba(0,0,0,.08); border-radius: var(--kamp-box-radius); padding: 16px;
}
.kamp-process-block--layout-compact .kamp-process__step { padding: 8px 12px; }
.kamp-faq-block--list-only .kamp-faq__item--plain {
  display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid rgba(0,0,0,.06);
}
.kamp-faq-block--list-only .kamp-faq__chev { display: none; }
.kamp-cta-band--layout-compact .kamp-cta-band__inner {
  display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; gap: 12px; min-height: 56px;
}
.kamp-cta-band--layout-compact .kamp-cta-band__copy { flex: 1 1 auto; min-width: 0; }
.kamp-cta-band--layout-compact h2,
.kamp-cta-band--layout-compact h3 {
  font-size: calc(min(1.15rem, var(--kamp-klocek-title, 1.25rem)) * var(--kamp-klocek-text-scale, 1));
  margin: 0;
  white-space: normal;
  overflow: visible;
  text-overflow: unset;
}
.kamp-process-block--layout-vertical .kamp-process,
.kamp-process--vertical {
  flex-direction: column;
  flex-wrap: nowrap;
  display: flex;
}
.kamp-process-block--layout-vertical .kamp-process__arrow,
.kamp-process--vertical .kamp-process__arrow {
  transform: rotate(90deg);
  flex: 0 0 auto;
  width: 36px;
  height: 28px;
  align-self: center;
}
.kamp-process-block--layout-vertical .kamp-process__step,
.kamp-process--vertical .kamp-process__step {
  flex: 1 1 auto;
  width: 100%;
}
.kamp-process-block--layout-numbered-cards .kamp-process__step {
  border: 1px solid rgba(0,0,0,.08); border-radius: var(--kamp-box-radius); padding: 16px;
}
.kamp-process--connector-none .kamp-process__arrow { display: none; }
.kamp-process__num { font-weight: 700; font-size: 12px; opacity: .65; }
.kamp-process__dot { width: 8px; height: 8px; border-radius: 50%; background: currentColor; display: block; margin: auto; }
.kamp-capabilities__grid--cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kamp-capabilities__grid--cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.kamp-capabilities__grid--border-none .kamp-capabilities__card { border: 0; }
.kamp-capabilities__card--link { text-decoration: none; color: inherit; }
.kamp-stats-band--cols-2 .kamp-stats-band__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kamp-stats-band--cols-3 .kamp-stats-band__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.kamp-stats-band--no-divider .kamp-stats-band__item { border: 0; }
.kamp-logo-strip__list--gray img { filter: grayscale(1); opacity: .82; }
.kamp-logo-strip__list--marquee { display: flex; flex-wrap: nowrap; overflow-x: auto; gap: 24px; }
.kamp-logo-strip__list--density-tight { gap: 12px; }
.kamp-social__handle { font-size: 13px; opacity: .75; }
.kamp-wcag__principles--accordion .kamp-wcag__principle-item { border-bottom: 1px solid rgba(0,0,0,.08); padding: 8px 0; }
.kamp-testimonials__grid--minimal .kamp-testimonials__card { border: 0; box-shadow: none; padding: 0; }
.kamp-testimonials__avatar { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; margin-bottom: 8px; }
.kamp-testimonials--layout-quote-stack .kamp-testimonials__grid { display: grid; grid-template-columns: 1fr; gap: 20px; }
.kamp-testimonials--layout-minimal-row .kamp-testimonials__grid {
  display: flex; flex-wrap: wrap; gap: 24px;
}
.kamp-testimonials--layout-minimal-row .kamp-testimonials__card { flex: 1 1 200px; border: 0; box-shadow: none; padding: 0; }

/* Widget tier contract (S / M / L via dataLayout) */
.kamp-faq-block--layout-compact .kamp-section__lead,
.kamp-process-block--layout-compact .kamp-process__lead,
.kamp-think-block--layout-compact .kamp-section__lead,
.kamp-testimonials--layout-compact .kamp-section__lead {
  margin-bottom: 0.5rem;
}
.kamp-think-block--layout-compact .kamp-think { gap: 12px; }
.kamp-think-block--layout-expanded .kamp-think { gap: 24px; }
.kamp-think-block--layout-expanded .kamp-think__card {
  padding: 22px 20px;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: var(--kamp-card-radius);
  background: #fff;
}
.kamp-think-block.kamp-section--soft.kamp-think-block--layout-expanded .kamp-think__card {
  background: var(--kamp-content-bg);
}
.kamp-process-block--layout-expanded .kamp-process__step,
.kamp-process-block--layout-numbered-cards .kamp-process__step {
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: var(--kamp-box-radius);
  padding: 16px;
  background: #fff;
}
.kamp-process-block.kamp-section--soft.kamp-process-block--layout-expanded .kamp-process__step {
  background: var(--kamp-content-bg);
}
.kamp-testimonials--layout-compact .kamp-testimonials__card {
  border: 0;
  box-shadow: none;
  padding: 0;
}
.kamp-testimonials--layout-expanded .kamp-testimonials__card {
  padding: 20px;
  border: 1px solid #e6e8eb;
  border-radius: var(--kamp-card-radius);
  background: #fff;
}
.kamp-cta-band--layout-expanded .kamp-cta-band__inner {
  max-width: 52rem;
  margin-inline: auto;
}

.kamp-cta-band--layout-split-row .kamp-cta-band__inner {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; text-align: left;
}
.kamp-cta-band--layout-stacked .kamp-cta-band__inner {
  display: flex; flex-direction: column; align-items: center; gap: 16px; text-align: center;
}
@media (max-width: 768px) {
  .kamp-faq-block--layout-two-col .kamp-faq { columns: 1; }
  .kamp-think--cols-2 { grid-template-columns: 1fr; }
  .kamp-capabilities__grid--cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.kamp-card {
  display: flex; flex-direction: column; text-decoration: none; color: inherit;
  border-radius: var(--kamp-card-radius); overflow: hidden; background: #fff; border: 1px solid #e6e8eb;
  box-shadow: 0 1px 0 rgba(15, 17, 19, 0.04);
}
.kamp-card--project {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 56px;
  gap: 0;
  align-items: stretch;
  border-radius: 0;
  overflow: visible;
  border: 0;
  background: transparent;
  min-height: 220px;
  transition: transform .22s ease, opacity .22s ease;
}
.kamp-card--project:hover {
  transform: translateY(-3px);
}
.kamp-card--project:focus-visible {
  outline: 2px solid var(--kamp-red);
  outline-offset: 4px;
}
.kamp-card--project .kamp-card__img {
  transition: transform .55s cubic-bezier(.22, 1, .36, 1);
  will-change: transform;
}
.kamp-card--project:hover .kamp-card__img,
.kamp-card--project:focus-visible .kamp-card__img {
  transform: scale(1.045);
}
.kamp-card__foot {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  padding: 28px 12px 12px;
  background: linear-gradient(180deg, rgba(15, 17, 19, 0) 0%, rgba(15, 17, 19, 0.88) 58%);
  color: #fff;
  pointer-events: none;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .28s ease, transform .28s ease;
}
.kamp-card--project:hover .kamp-card__foot,
.kamp-card--project:focus-visible .kamp-card__foot {
  opacity: 1;
  transform: translateY(0);
}
.kamp-card__foot-copy {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}
.kamp-card__foot-signal {
  font-family: var(--kamp-font);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.25;
  color: #fff;
}
.kamp-card__foot-meta {
  font-family: var(--kamp-font);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.03em;
  color: rgba(255, 255, 255, 0.72);
}
.kamp-card__foot-idx {
  flex: 0 0 auto;
  font-family: var(--kamp-font);
  font-size: 18px;
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1;
  color: var(--kamp-red, #c8102e);
  text-shadow: 0 0 18px rgba(200, 16, 46, 0.35);
}
.kamp-projects-board {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px 24px;
  margin: 0 0 18px;
  padding: 12px 0 14px;
  border-top: 1px solid rgba(15, 17, 19, 0.12);
  border-bottom: 1px solid rgba(15, 17, 19, 0.12);
}
.kamp-projects-board__count {
  margin: 0;
  display: flex;
  align-items: baseline;
  gap: 10px;
  font-family: var(--kamp-font);
}
.kamp-projects-board__count strong,
.kamp-projects-board__all strong {
  font-size: clamp(2.1rem, 4.8vw, 3rem);
  font-weight: 800;
  letter-spacing: -0.05em;
  line-height: 0.95;
  color: var(--kamp-red, #c8102e);
}
.kamp-projects-board__count span,
.kamp-projects-board__all span {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--kamp-muted, #667);
}
.kamp-projects-board__all {
  display: inline-flex;
  align-items: baseline;
  gap: 10px;
  text-decoration: none;
  color: inherit;
}
.kamp-projects-board__all:hover span,
.kamp-projects-board__all.is-active span {
  color: var(--kamp-ink, #0f1113);
}
.kamp-projects-board__mix {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  list-style: none;
  margin: 0;
  padding: 0;
  max-width: 42rem;
}
.kamp-projects-board__mix li {
  margin: 0;
  font-family: var(--kamp-font);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--kamp-muted, #667);
  white-space: nowrap;
}
.kamp-projects-board__mix b {
  color: var(--kamp-ink, #0f1113);
  font-weight: 800;
  letter-spacing: -0.02em;
  margin-right: 4px;
}
.kamp-projects-board__mix-link {
  text-decoration: none;
  color: inherit;
  border-bottom: 1px solid transparent;
  transition: color 0.18s ease, border-color 0.18s ease;
}
.kamp-projects-board__mix-link:hover,
.kamp-projects-board__mix-link.is-active {
  color: var(--kamp-ink, #0f1113);
  border-bottom-color: var(--kamp-red, #c8102e);
}
.kamp-projects-board__mix-link.is-active b {
  color: var(--kamp-red, #c8102e);
}
@media (prefers-reduced-motion: reduce) {
  .kamp-card--project,
  .kamp-card--project .kamp-card__img,
  .kamp-card__foot {
    transition: none !important;
  }
  .kamp-card--project:hover {
    transform: none;
  }
  .kamp-card--project:hover .kamp-card__img,
  .kamp-card--project:focus-visible .kamp-card__img {
    transform: none;
  }
  .kamp-gallery__item a,
  .kamp-gallery__idx,
  .kamp-gallery img,
  .kamp-single__nav-link {
    transition: none !important;
  }
  .kamp-gallery__item a:hover,
  .kamp-single__nav-link:hover {
    transform: none;
  }
  .kamp-gallery__item a:hover img {
    transform: none;
  }
}
.kamp-card__media {
  display: block;
  position: relative;
  min-height: 220px;
  min-width: 0;
  width: 100%;
  aspect-ratio: 3 / 4;
  align-self: start;
  background: #1a1d21;
  border-radius: var(--kamp-rail-outer-radius) 0 0 var(--kamp-rail-outer-radius);
  overflow: hidden;
}
.kamp-card__label {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 2;
  max-width: calc(100% - 20px);
  padding: 5px 10px;
  border-radius: 4px;
  background: rgba(15, 17, 19, 0.82);
  color: #fff;
  font-family: var(--kamp-font);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  pointer-events: none;
}
.kamp-card--project .kamp-card__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  min-height: 0;
  aspect-ratio: unset;
  object-fit: cover;
  object-position: center;
  display: block;
  border-radius: 0;
  border: 0;
}
.kamp-card__img--empty {
  position: absolute;
  inset: 0;
  display: block;
  min-height: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(145deg, #1a1d21, #2a2f36);
  border-radius: 0;
}
.kamp-card__rail {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 10px;
  padding: 12px 6px;
  background: #0f1113;
  color: #fff;
  border: 2px solid var(--kamp-rail-side);
  border-left: 0;
  border-radius: 0 var(--kamp-rail-outer-radius) var(--kamp-rail-outer-radius) 0;
  box-shadow: 0 0 12px rgba(200, 16, 46, 0.14);
  align-self: stretch;
  min-width: 0;
  overflow: hidden;
  box-sizing: border-box;
}
.kamp-card__rail-title,
.kamp-card__rail-tag {
  margin: 0;
  font-family: var(--kamp-font);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: .02em;
  overflow: hidden;
}
@media (min-width: 901px) {
  .kamp-card__rail-title,
  .kamp-card__rail-tag {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    margin: 0 auto;
    max-height: 92%;
  }
}
.kamp-card__rail-tag { font-weight: 500; font-size: 11px; opacity: .8; color: rgba(255,255,255,.85); }
.kamp-card__img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.kamp-card__body { padding: 14px; }
.kamp-card__body h3 { margin: 0 0 6px; font-family: var(--kamp-font); font-size: 15px; }
.kamp-card__tag { font-size: 12px; color: var(--kamp-muted); font-weight: 600; }
.kamp-card--journal .kamp-card__body p { margin: 8px 0 0; color: var(--kamp-muted); font-size: 13px; }
.kamp-journal-list { display: grid; gap: 18px; }
.kamp-journal-row {
  display: grid;
  grid-template-columns: minmax(160px, 280px) minmax(0, 1fr);
  gap: 20px;
  text-decoration: none;
  color: inherit;
  align-items: stretch;
}
.kamp-journal-row__thumb {
  display: block;
  border-radius: var(--kamp-box-radius);
  overflow: hidden;
  border: 2px solid hsla(0, 98%, 43%, 0.64);
  box-shadow: 0 0 12px rgba(200, 16, 46, 0.16);
}
.kamp-journal-row__img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  display: block;
}
.kamp-journal-row__body {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 4px 0;
}
.kamp-journal-row__body h3 {
  margin: 0;
  font-family: var(--kamp-font);
  font-size: 1.05rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .02em;
}
.kamp-journal-row__body p { margin: 0; color: var(--kamp-muted); font-size: 14px; }
.kamp-journal-row__more {
  font-weight: 700;
  font-size: 13px;
  color: var(--kamp-ink);
}
.kamp-journal-row__meta {
  margin-top: auto;
  display: flex;
  flex-wrap: wrap;
  gap: 12px 18px;
  justify-content: flex-end;
  font-size: 12px;
  color: var(--kamp-muted);
}
.kamp-about .kamp-page {
  max-width: var(--kamp-max);
  padding-top: var(--kamp-section-y);
  padding-bottom: 24px;
  padding-left: var(--kamp-gutter);
  padding-right: var(--kamp-gutter);
}
.kamp-about__block {
  margin: 0 0 var(--kamp-section-y);
}
.kamp-about__block:last-child { margin-bottom: 0; }
.kamp-about-grid {
  display: grid;
  grid-template-columns: minmax(200px, 280px) minmax(0, 1fr);
  gap: 28px 48px;
  align-items: start;
}
.kamp-about-grid__side {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.kamp-about-grid__side h2,
.kamp-about__head h2 {
  margin: 0;
  font-family: var(--kamp-font);
  font-size: clamp(1.15rem, 2vw, 1.45rem);
  font-weight: 800;
  color: var(--kamp-ink);
  line-height: 1.25;
}
.kamp-about__ico {
  width: 48px;
  height: 48px;
  object-fit: contain;
  flex: 0 0 auto;
  display: block;
}
.kamp-about-grid__body.kamp-prose {
  font-size: 15px;
  color: var(--kamp-ink);
}
.kamp-about-grid__body.kamp-prose p { margin: 0 0 1rem; }
.kamp-about-grid__body.kamp-prose p:last-child { margin-bottom: 0; }
.kamp-about-grid__body.kamp-prose strong { font-weight: 700; color: var(--kamp-ink); }
.kamp-about__frames {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin-top: 28px;
}
.kamp-about__frame {
  margin: 0;
  border-radius: var(--kamp-box-radius);
  overflow: hidden;
  border: 2px solid hsla(0, 98%, 43%, 0.64);
  box-shadow: 0 0 12px rgba(200, 16, 46, 0.14);
  background: #111;
}
.kamp-about__frame-img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.kamp-about__head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 28px;
  flex-wrap: wrap;
}
.kamp-about-process {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px 32px;
}
.kamp-about-process__item {
  display: grid;
  grid-template-columns: minmax(120px, 42%) minmax(0, 1fr);
  gap: 16px 18px;
  align-items: start;
}
.kamp-about-process__item .kamp-about__frame-img {
  aspect-ratio: 3 / 4;
}
.kamp-about-process__body h3 {
  margin: 0 0 8px;
  font-family: var(--kamp-font);
  font-size: 1.05rem;
  font-weight: 800;
}
.kamp-about-process__lead {
  margin: 0 0 10px;
  font-family: var(--kamp-font);
  font-weight: 600;
  font-size: 14px;
  color: var(--kamp-ink);
}
.kamp-about-process__body .kamp-prose {
  font-size: 14px;
}
.kamp-about-process__body .kamp-prose p { margin: 0; color: var(--kamp-ink); }
.kamp-about__direction {
  margin: 0 0 22px;
  text-align: center;
  font-family: var(--kamp-font);
  font-size: clamp(1.05rem, 2vw, 1.35rem);
  font-weight: 700;
  color: var(--kamp-ink);
}
.kamp-about-dirs {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}
.kamp-about-dirs__btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: 132px;
  justify-content: center;
  padding: 12px 18px;
  border-radius: var(--kamp-pill-radius);
  background: var(--kamp-dark);
  color: #fff;
  text-decoration: none;
  font-family: var(--kamp-font);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: .02em;
  border: 2px solid hsla(0, 98%, 43%, 0.72);
  box-shadow: 0 0 10px rgba(200, 16, 46, 0.18);
  transition: background .15s ease, border-color .15s ease;
}
.kamp-about-dirs__btn:hover {
  background: var(--kamp-red);
  border-color: var(--kamp-red);
  color: #fff;
}
.kamp-about-dirs__ico {
  width: 20px;
  height: 20px;
  object-fit: contain;
  display: block;
  filter: brightness(0) invert(1);
}
.kamp-cta-band__lead {
  margin: 6px 0 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: clamp(14px, 1.4vw, 15px);
  max-width: 42ch;
  line-height: 1.45;
}
.kamp-segment-pills--ink { justify-content: flex-start; margin-top: 8px; }
.kamp-empty { color: var(--kamp-muted); margin: 0; }
.kamp-segment-pills { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 18px; }
.kamp-projects-teaser__pills {
  margin-top: 12px;
  margin-bottom: 22px;
  justify-content: flex-start;
}
.kamp-projects-teaser__grid {
  margin-top: 0;
}
.kamp-segment-pills a,
.kamp-segment-pills__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 0 14px;
  color: rgba(255, 255, 255, 0.92);
  text-decoration: none;
  font-family: var(--kamp-font);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border-radius: 0;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background:
    linear-gradient(
      165deg,
      rgba(255, 255, 255, 0.14) 0%,
      rgba(22, 24, 28, 0.42) 45%,
      rgba(10, 12, 14, 0.72) 100%
    );
  backdrop-filter: blur(16px) saturate(1.35);
  -webkit-backdrop-filter: blur(16px) saturate(1.35);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.12),
    0 8px 22px rgba(0, 0, 0, 0.22);
  transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}
.kamp-segment-pills a[aria-current="page"],
.kamp-segment-pills a:hover,
.kamp-segment-pills__link.is-active,
.kamp-segment-pills__link:hover {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.42);
  background:
    linear-gradient(
      165deg,
      rgba(255, 255, 255, 0.22) 0%,
      rgba(30, 34, 40, 0.55) 48%,
      rgba(12, 14, 16, 0.82) 100%
    );
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.18),
    0 10px 28px rgba(0, 0, 0, 0.28);
}
/* Pills in light sections — same glass language, darker ink */
.kamp-section .kamp-segment-pills a,
.kamp-section .kamp-segment-pills__link {
  color: var(--kamp-ink);
  border-color: rgba(26, 29, 33, 0.16);
  background:
    linear-gradient(
      165deg,
      rgba(255, 255, 255, 0.72) 0%,
      rgba(245, 246, 247, 0.55) 50%,
      rgba(230, 232, 234, 0.8) 100%
    );
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.7),
    0 6px 16px rgba(15, 17, 19, 0.06);
}
.kamp-section .kamp-segment-pills a[aria-current="page"],
.kamp-section .kamp-segment-pills a:hover,
.kamp-section .kamp-segment-pills__link.is-active,
.kamp-section .kamp-segment-pills__link:hover {
  color: #fff;
  border-color: rgba(15, 17, 19, 0.55);
  background:
    linear-gradient(
      165deg,
      rgba(40, 44, 48, 0.92) 0%,
      rgba(15, 17, 19, 0.95) 100%
    );
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.1),
    0 8px 20px rgba(15, 17, 19, 0.18);
}
.kamp-single__hero {
  position: relative;
  background: var(--kamp-dark);
  color: #fff;
  border-left: 3px outset var(--kamp-rail-side);
  border-right: 3px outset var(--kamp-rail-side);
}
.kamp-single__hero--plain {
  background: var(--kamp-dark);
  padding: clamp(28px, 4vw, 40px) 0 0;
  border-left: 0;
  border-right: 0;
}
.kamp-single__cover-wrap {
  margin: 0;
  line-height: 0;
  position: relative;
}
.kamp-single__cover-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(
    to top,
    rgba(15, 17, 19, 0.92) 0%,
    rgba(15, 17, 19, 0.45) 38%,
    transparent 72%
  );
}
.kamp-single__cover { width: 100%; max-height: min(68vh, 640px); object-fit: cover; display: block; }
.kamp-single__intro {
  max-width: var(--kamp-max);
  margin: 0 auto;
  padding: 0 var(--kamp-gutter) clamp(24px, 4vw, 32px);
  position: relative;
  z-index: 2;
}
.kamp-single__hero:not(.kamp-single__hero--plain) .kamp-single__intro {
  margin-top: clamp(-96px, -10vw, -72px);
}
.kamp-single__intro-card.kamp-glass-card {
  max-width: min(100%, 920px);
  padding: clamp(18px, 2.5vw, 24px) clamp(20px, 3vw, 28px);
  display: block;
}
.kamp-single__hero--plain .kamp-single__intro-card.kamp-glass-card {
  box-shadow:
    0 0 14px rgba(200, 16, 46, 0.14),
    0 16px 40px rgba(0, 0, 0, 0.28);
}
.kamp-single__title {
  margin: 0;
  font-family: var(--kamp-font);
  font-size: clamp(1.55rem, 3.2vw, 2.35rem);
  font-weight: 800;
  line-height: 1.15;
  color: #fff;
}
.kamp-single__lead {
  margin: 12px 0 0;
  max-width: 62ch;
  font-size: clamp(0.95rem, 1.5vw, 1.05rem);
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.88);
}
.kamp-single__tag {
  display: inline-block;
  margin: 0 0 10px;
  padding: 5px 10px;
  background: rgba(200, 16, 46, 0.16);
  border: 1px solid rgba(200, 16, 46, 0.45);
  border-radius: var(--kamp-pill-radius);
  color: #fff;
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.kamp-single__bar {
  background: var(--kamp-soft);
  border-bottom: 1px solid #eef0f2;
}
.kamp-single__bar-inner {
  max-width: var(--kamp-max);
  margin: 0 auto;
  padding: 12px var(--kamp-gutter);
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 18px;
}
.kamp-single__back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 700;
  font-family: var(--kamp-font);
  letter-spacing: 0.02em;
  color: var(--kamp-ink);
  text-decoration: none;
  transition: color 0.2s ease;
}
.kamp-single__back:hover { color: var(--kamp-red); }
.kamp-single__back--muted {
  font-weight: 600;
  color: var(--kamp-muted);
}
.kamp-single__back--muted:hover { color: var(--kamp-red); }
.kamp-single__bar-signal {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  padding: 5px 10px;
  border-left: 2px solid var(--kamp-red, #c8102e);
  font-family: var(--kamp-font);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--kamp-ink);
  background: #fff;
}
.kamp-single__dossier {
  background: var(--kamp-soft, #f3f4f5);
  border-bottom: 1px solid rgba(15, 17, 19, 0.1);
}
.kamp-single__dossier-inner {
  max-width: var(--kamp-max);
  margin: 0 auto;
  padding: 18px var(--kamp-gutter) 20px;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px 28px;
  border-top: 1px solid rgba(15, 17, 19, 0.12);
}
.kamp-single__dossier-signal {
  margin: 0;
  font-family: var(--kamp-font);
}
.kamp-single__dossier-signal strong {
  display: block;
  font-size: clamp(1.35rem, 3.2vw, 1.85rem);
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1.05;
  color: var(--kamp-red, #c8102e);
}
.kamp-single__dossier-mix {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  list-style: none;
  margin: 0;
  padding: 0;
  max-width: 44rem;
}
.kamp-single__dossier-mix li {
  margin: 0;
  font-family: var(--kamp-font);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--kamp-muted, #667);
  white-space: nowrap;
}
.kamp-single__dossier-mix li.is-segment {
  color: var(--kamp-ink);
  font-weight: 800;
  letter-spacing: 0.08em;
}
.kamp-single__dossier-mix b {
  color: var(--kamp-ink, #0f1113);
  font-weight: 800;
  letter-spacing: -0.02em;
  margin-right: 4px;
}
.kamp-single__body {
  background: #fff;
  color: var(--kamp-ink);
  padding: 0 0 clamp(40px, 6vw, 56px);
}
.kamp-single__klocki {
  background: var(--kamp-soft);
  padding: clamp(40px, 5vw, 56px) 0 clamp(48px, 6vw, 72px);
}
.kamp-single__klocki.kamp-page__blocks > .kamp-section:first-child {
  padding-top: 0;
}
.kamp-single__grid {
  max-width: var(--kamp-max);
  margin: 0 auto;
  padding: clamp(24px, 4vw, 36px) var(--kamp-gutter) 0;
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(240px, 0.55fr);
  gap: clamp(24px, 4vw, 36px);
  align-items: start;
}
.kamp-single__main { min-width: 0; }
.kamp-single__content {
  color: var(--kamp-ink);
  max-width: 68ch;
  font-size: 1.02rem;
  line-height: 1.7;
}
.kamp-single__content :where(p) {
  margin: 0 0 1.15rem;
}
.kamp-single__content :where(p):last-child {
  margin-bottom: 0;
}
.kamp-single__content :where(strong, b) {
  font-weight: 700;
  color: var(--kamp-ink);
}
.kamp-single__content :where(ul, ol) {
  margin: 0 0 1.25rem;
  padding-left: 1.15rem;
  display: grid;
  gap: 0.55rem;
}
.kamp-single__content li { margin: 0; }
.kamp-single__content :where(h2, h3, h4) {
  font-family: var(--kamp-font);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.2;
  text-align: left;
  margin: 1.6rem 0 0.7rem;
  color: var(--kamp-ink);
}
.kamp-single__content :where(h2, h3, h4):first-child { margin-top: 0; }
.kamp-single__scope {
  margin-top: clamp(20px, 3vw, 28px);
  padding-top: clamp(16px, 2.5vw, 22px);
  border-top: 1px solid rgba(26, 29, 33, 0.08);
}
.kamp-single__scope-title {
  margin: 0 0 10px;
  font-family: var(--kamp-font);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--kamp-muted, #6b7280);
}
.kamp-single__scope-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0;
  font-size: 1rem;
  line-height: 1.65;
  color: var(--kamp-ink);
}
.kamp-single__scope-list li {
  margin: 0;
  padding: 0.9rem 0;
  border-top: 1px solid rgba(26, 29, 33, 0.08);
}
.kamp-single__scope-list li:first-child {
  border-top: 0;
  padding-top: 0;
}
.kamp-single__scope-list li:last-child {
  padding-bottom: 0;
}
.kamp-single__scope-list strong {
  display: block;
  margin: 0 0 0.25rem;
  font-weight: 700;
  color: var(--kamp-ink);
}
.kamp-single__scope-list span {
  display: block;
}
.kamp-single__meta {
  position: sticky;
  top: 16px;
  padding: clamp(18px, 2.4vw, 22px) clamp(16px, 2vw, 20px);
  background: #111315;
  color: #fff;
  border-left: 3px solid var(--kamp-red, #c8102e);
  border-right: 2px solid rgba(255, 255, 255, 0.08);
}
.kamp-single__meta-kicker {
  margin: 0 0 8px;
  font-family: var(--kamp-font);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--kamp-red, #c8102e);
}
.kamp-single__meta-title {
  margin: 0 0 10px;
  font-family: var(--kamp-font);
  font-size: clamp(1.35rem, 2.4vw, 1.65rem);
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1.1;
  color: #fff;
}
.kamp-single__meta-segment {
  margin: 0 0 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  font-family: var(--kamp-font);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.62);
}
.kamp-single__facts { margin: 0; }
.kamp-single__fact {
  margin: 0;
  padding: 12px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  display: grid;
  gap: 4px;
}
.kamp-single__fact:first-child { border-top: 0; padding-top: 0; }
.kamp-single__fact:last-child { padding-bottom: 0; }
.kamp-single__fact dt {
  margin: 0;
  font-family: var(--kamp-font);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
}
.kamp-single__fact dd {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
  color: #fff;
}
.kamp-single__metrics {
  list-style: none;
  margin: 18px 0 0;
  padding: 16px 0 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.kamp-single__metrics li {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.kamp-single__metrics b {
  font-family: var(--kamp-font);
  font-size: 1.55rem;
  font-weight: 800;
  letter-spacing: -0.05em;
  line-height: 1;
  color: var(--kamp-red, #c8102e);
}
.kamp-single__metrics span {
  font-family: var(--kamp-font);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
}
.kamp-single__meta-cta {
  margin: 18px 0 0;
  padding: 16px 0 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}
.kamp-single__meta-cta .kamp-btn { width: 100%; justify-content: center; }
.kamp-single__meta .kamp-share-bar {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}
.kamp-single__meta .kamp-share-bar__label {
  margin: 0 0 10px;
  font-family: var(--kamp-font);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
}
.kamp-single__meta .kamp-share-bar__links { gap: 8px; justify-content: flex-start; }
.kamp-single__meta .kamp-share-bar__links a,
.kamp-single__meta .kamp-share-bar__links button {
  min-height: 34px;
  padding: 0 12px;
  font-size: 12px;
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.18);
  color: #fff;
}
.kamp-single__meta .kamp-share-bar__links a:hover,
.kamp-single__meta .kamp-share-bar__links button:hover {
  border-color: var(--kamp-red, #c8102e);
  color: #fff;
}
.kamp-single__gallery { margin-top: clamp(28px, 4vw, 40px); }
.kamp-single__gallery-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 14px;
}
.kamp-single__gallery-title {
  margin: 0;
  font-family: var(--kamp-font);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.kamp-single__gallery-count {
  font-family: var(--kamp-font);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--kamp-muted, #667);
}
.kamp-gallery {
  max-width: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 12px;
}
.kamp-gallery--project { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kamp-gallery__item { margin: 0; }
.kamp-gallery__item a {
  display: block;
  position: relative;
  overflow: hidden;
  border-radius: 0;
  background: #111;
  border-left: 2px solid var(--kamp-rail-side);
  border-right: 2px solid var(--kamp-rail-side);
  transition: border-color 0.2s ease, transform 0.2s ease;
}
.kamp-gallery__item a:hover {
  border-left-color: var(--kamp-red);
  border-right-color: var(--kamp-red);
  transform: translateY(-2px);
}
.kamp-gallery__item a:hover .kamp-gallery__idx,
.kamp-gallery__item a:focus-visible .kamp-gallery__idx {
  opacity: 1;
  transform: translateY(0);
}
.kamp-gallery__idx {
  position: absolute;
  right: 10px;
  bottom: 10px;
  z-index: 2;
  font-family: var(--kamp-font);
  font-size: 18px;
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1;
  color: var(--kamp-red, #c8102e);
  text-shadow: 0 0 18px rgba(200, 16, 46, 0.35);
  opacity: 0;
  transform: translateY(6px);
  transition: opacity 0.25s ease, transform 0.25s ease;
  pointer-events: none;
}
.kamp-gallery img {
  width: 100%;
  height: 100%;
  min-height: 180px;
  object-fit: cover;
  display: block;
  border-radius: 0;
  transition: transform 0.55s cubic-bezier(.22, 1, .36, 1);
}
.kamp-gallery__item a:hover img {
  transform: scale(1.04);
}
.kamp-gallery figcaption { display: none; }
.kamp-single__nav {
  background: #fff;
  border-top: 1px solid #eef0f2;
  max-width: none;
  margin: 0;
  padding: clamp(28px, 4vw, 36px) var(--kamp-gutter) clamp(40px, 6vw, 56px);
}
.kamp-single__nav-inner {
  max-width: var(--kamp-max);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  border-top: 0;
  padding-top: 0;
}
.kamp-single__nav-link {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  min-height: 104px;
  padding: 18px 20px;
  border: 0;
  border-left: 3px solid var(--kamp-rail-side);
  border-right: 3px solid var(--kamp-rail-side);
  border-radius: 0;
  background: #111315;
  text-decoration: none;
  color: #fff;
  transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease;
}
.kamp-single__nav-link:hover {
  background: #16191c;
  border-left-color: var(--kamp-red);
  border-right-color: var(--kamp-red);
  transform: translateY(-2px);
}
.kamp-single__nav-link--next { text-align: right; align-items: flex-end; }
.kamp-single__nav-link.is-empty { visibility: hidden; pointer-events: none; border: 0; background: transparent; min-height: 0; padding: 0; }
.kamp-single__nav-dir {
  font-family: var(--kamp-font);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--kamp-red);
}
.kamp-single__nav-link--prev .kamp-single__nav-dir::before {
  content: "← ";
}
.kamp-single__nav-link--next .kamp-single__nav-dir::after {
  content: " →";
}
.kamp-single__nav-title {
  font-family: var(--kamp-font);
  font-size: clamp(0.95rem, 1.4vw, 1.05rem);
  font-weight: 700;
  line-height: 1.35;
  color: #fff;
}
.kamp-single__nav-link:hover .kamp-single__nav-title { color: #fff; }

.kamp-embed-wrap {
  position: relative;
  width: 100%;
  margin: 24px 0;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: var(--kamp-box-radius);
  background: #111;
}

.kamp-embed-wrap iframe,
.kamp-embed-wrap embed,
.kamp-embed-wrap object {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.kamp-single__video {
  margin-top: clamp(24px, 3vw, 32px);
  max-width: none;
  padding: 0;
}

.kamp-page-shell {
  background: #fff;
  color: var(--kamp-ink);
  padding: 0 0 var(--kamp-section-y);
}
.kamp-page {
  max-width: 920px;
  margin: 0 auto;
  padding: var(--kamp-section-y) var(--kamp-gutter) 24px;
  color: var(--kamp-ink);
}
.kamp-page--blocks {
  max-width: none;
  width: 100%;
  margin: 0;
  padding: 0;
  color: inherit;
}
.kamp-page__blocks {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.kamp-page__blocks > .kamp-page-hero,
.kamp-page__blocks > .kamp-cta-band,
.kamp-page__blocks > .wp-block-kamp-studio-hero-glass,
.kamp-page__blocks > .wp-block-kamp-studio-cta-band {
  width: 100%;
}
.kamp-page__blocks > .kamp-area,
.kamp-page__blocks > .wp-block-kamp-studio-rail-card {
  max-width: var(--kamp-max);
  width: calc(100% - 2 * var(--kamp-gutter));
  margin: 28px auto;
}
.kamp-page__blocks > .wp-block-kamp-studio-rail-card .kamp-area {
  width: 100%;
  margin: 0;
}

/* M6 home-blocks: Obszary as group (heading + rail grid) */
.kamp-page__blocks .kamp-home-areas,
.kamp-page--home-blocks .kamp-home-areas {
  max-width: var(--kamp-max);
  width: calc(100% - 2 * var(--kamp-gutter));
  margin: 0 auto;
  padding: var(--kamp-section-y) 0;
}
.kamp-page__blocks .kamp-home-areas > .kamp-section__title,
.kamp-page__blocks .kamp-home-areas > h2.kamp-section__title {
  margin: 0 0 12px;
  font-family: var(--kamp-font);
  font-size: clamp(1.45rem, 2.4vw, 1.85rem);
  font-weight: 800;
  color: var(--kamp-ink);
}
.kamp-page__blocks .kamp-home-areas .kamp-section__lead {
  margin: 0 0 28px;
  max-width: 52rem;
  color: var(--kamp-muted);
  line-height: 1.55;
}
.kamp-page__blocks .kamp-home-areas .kamp-areas,
.kamp-page--home-blocks .kamp-areas {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin: 0;
  max-width: none;
  width: 100%;
}
.kamp-page__blocks .kamp-home-areas .wp-block-kamp-studio-rail-card,
.kamp-page__blocks .kamp-areas > .wp-block-kamp-studio-rail-card {
  max-width: none;
  width: 100%;
  margin: 0;
}
.kamp-area--link {
  text-decoration: none;
  color: inherit;
  transition: transform .22s ease;
}
.kamp-area--link:hover {
  transform: translateY(-3px);
}
.kamp-page h1 {
  margin: 0 0 12px;
  font-family: var(--kamp-font);
  font-size: clamp(1.6rem, 3vw, 2.1rem);
  font-weight: 800;
  color: var(--kamp-ink);
}
.kamp-legal {
  max-width: none;
  margin: 0;
  padding: 0;
  color: inherit;
}
.kamp-legal__intro {
  max-width: var(--kamp-max);
  margin: 0 auto;
  padding: calc(var(--kamp-header-offset) + 36px) var(--kamp-gutter) 40px;
}
.kamp-legal__kicker,
.kamp-legal__date {
  margin: 0;
  font-family: var(--kamp-font);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--kamp-red);
}
.kamp-legal__intro h1 {
  margin: 10px 0 12px;
  font-family: var(--kamp-font);
  font-size: clamp(1.7rem, 3.2vw, 2.4rem);
  font-weight: 800;
  line-height: 1.15;
  color: #fff;
}
.kamp-legal__lead {
  margin: 0;
  max-width: 40rem;
  color: rgba(255, 255, 255, 0.78);
  font-size: 15px;
  line-height: 1.55;
}
.kamp-legal__date {
  margin-top: 16px;
  color: rgba(255, 255, 255, 0.45);
}
.kamp-legal__sheet {
  padding: clamp(36px, 6vw, 72px) var(--kamp-gutter) 64px;
}
.kamp-legal__section {
  max-width: var(--kamp-max);
  margin: 0 auto;
}
.kamp-legal__section + .kamp-legal__section {
  margin-top: 28px;
  padding-top: 28px;
  border-top: 1px solid rgba(15, 17, 19, 0.08);
}
.kamp-legal__sheet .kamp-prose ul {
  margin: 0;
  padding-left: 1.15rem;
}
.kamp-legal__sheet .kamp-prose li {
  margin: 0 0 0.55rem;
}
.kamp-legal__sheet .kamp-prose li:last-child {
  margin-bottom: 0;
}
.kamp-legal__sheet .kamp-prose a {
  color: var(--kamp-red);
  text-underline-offset: 2px;
}
.kamp-page__hero { width: 100%; border-radius: var(--kamp-box-radius); margin-bottom: 24px; }
.kamp-prose :where(p, ul, ol) { margin: 0 0 1rem; }
.kamp-post__meta { color: var(--kamp-muted); font-size: 13px; margin: 0 0 20px; }

/* Dziennik single - Bricks Post / article-hero-04 DNA */
.kamp-journal-single { background: var(--kamp-dark); }
.kamp-post-hero {
  --kamp-post-hero-side: hsla(0, 98%, 43%, 0.64);
  position: relative;
  min-height: 50vh;
  color: #f5f5f5;
  overflow: hidden;
  border-left: 3px outset var(--kamp-post-hero-side);
  border-right: 3px outset var(--kamp-post-hero-side);
  border-radius: 0 0 var(--kamp-box-radius) var(--kamp-box-radius);
  margin: 0 12px;
}
.kamp-post-hero__media {
  position: absolute;
  inset: 0;
  margin: 0;
  z-index: 0;
}
.kamp-post-hero__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(15, 17, 19, 0.55) 0%, rgba(15, 17, 19, 0.78) 100%);
}
.kamp-post-hero__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.kamp-post-hero__inner {
  position: relative;
  z-index: 1;
  max-width: var(--kamp-max);
  margin: 0 auto;
  min-height: 50vh;
  padding: 36px 28px 40px;
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  gap: 28px 40px;
  align-items: stretch;
}
.kamp-post-hero__main {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 20px;
  min-width: 0;
}
.kamp-post-hero__crumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-family: var(--kamp-font);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.85;
}
.kamp-post-hero__crumbs a {
  color: #f5f5f5;
  text-decoration: none;
  border-bottom: 1px solid transparent;
}
.kamp-post-hero__crumbs a:hover { border-bottom-color: rgba(255, 255, 255, 0.55); }
.kamp-post-hero__title {
  margin: 0;
  font-family: var(--kamp-font);
  font-size: clamp(1.55rem, 3.2vw, 2.35rem);
  font-weight: 800;
  line-height: 1.15;
  color: #f5f5f5;
  text-wrap: balance;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  -webkit-hyphens: none;
  -ms-hyphens: none;
}
.kamp-post-hero__aside {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-end;
  gap: 24px;
  text-align: right;
  min-width: 0;
}
.kamp-post-hero__facts {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
  justify-items: end;
}
.kamp-post-hero__fact {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #f5f5f5;
  text-decoration: none;
  font-family: var(--kamp-font);
  font-size: 13px;
  font-weight: 500;
}
.kamp-post-hero__fact strong { font-weight: 700; }
.kamp-post-hero__fact img {
  width: 22px;
  height: 22px;
  object-fit: contain;
  filter: brightness(0) invert(1);
  flex-shrink: 0;
  opacity: 0.92;
}
a.kamp-post-hero__fact:hover { color: #fff; }
.kamp-post-hero__share {
  display: grid;
  gap: 8px;
  justify-items: center;
}
.kamp-post-hero__share-label {
  margin: 0;
  font-family: var(--kamp-font);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.8;
}
.kamp-post-hero__share-links {
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: center;
}
.kamp-post-hero__share-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  min-height: 36px;
  padding: 6px 10px;
  color: #f5f5f5;
  text-decoration: none;
  font-family: var(--kamp-font);
  font-size: 12px;
  font-weight: 700;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: var(--kamp-pill-radius);
}
.kamp-post-hero__share-links a:hover {
  border-color: var(--kamp-red);
  color: #fff;
}
.kamp-post-hero__share-links img {
  width: 18px;
  height: 18px;
  object-fit: contain;
  filter: brightness(0) invert(1);
}
.kamp-share-bar {
  margin: 1rem 0 0;
  text-align: center;
}
.kamp-share-bar__label {
  margin: 0 0 0.5rem;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--kamp-muted, #555d61);
}
.kamp-share-bar__links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  justify-content: center;
}
.kamp-share-bar__links a,
.kamp-share-bar__links button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2rem;
  padding: 0.35rem 0.7rem;
  border: 1px solid var(--kamp-border, #e5e8eb);
  border-radius: var(--kamp-pill-radius);
  background: var(--kamp-surface, #f8f9fa);
  color: var(--kamp-text, #2b2f33);
  font: inherit;
  font-size: 0.85rem;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
}
.kamp-share-bar__links a:hover,
.kamp-share-bar__links button:hover {
  border-color: var(--kamp-accent, #c8102e);
  color: var(--kamp-accent, #c8102e);
}
.kamp-share-wrap {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 20px 1.5rem;
}
.kamp-post-body {
  background: #fff;
  color: var(--kamp-ink);
  padding: 8px 0 48px;
}
.kamp-post-body__content {
  max-width: 900px;
  margin: 0 auto;
  padding: 2rem var(--kamp-gutter);
  font-family: var(--kamp-font);
  font-size: 16px;
  font-weight: 400;
  text-align: left;
  text-wrap: pretty;
  hyphens: none;
  -webkit-hyphens: none;
  -ms-hyphens: none;
  overflow-wrap: normal;
  word-break: normal;
  color: var(--kamp-ink);
}
/* Klocki w poście: jeden gutter jak na landingach (sekcja), bez podwójnego pad z post-body */
.kamp-post-body__content:has(.kamp-section),
.kamp-post-body__content:has(.kamp-klocek) {
  padding-inline: 0;
  max-width: none;
}
.kamp-post-body__content :where(h1, h2, h3, h4) {
  font-family: var(--kamp-font);
  color: var(--kamp-ink);
  text-align: left;
  line-height: 1.2;
}
.kamp-post-body__content :where(img, figure, video, iframe) {
  max-width: 100%;
  height: auto;
}
.kamp-post-body__content .kamp-diary-template {
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.kamp-post-nav {
  background: #fff;
  border-top: 1px solid rgba(26, 29, 33, 0.08);
  padding: 0 var(--kamp-gutter) 48px;
}
.kamp-post-nav__inner {
  max-width: var(--kamp-max);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.kamp-post-nav__link {
  display: grid;
  gap: 6px;
  padding: 18px 16px;
  text-decoration: none;
  color: var(--kamp-ink);
  background: var(--kamp-soft);
  border-radius: var(--kamp-pill-radius);
  border: 1px solid transparent;
  min-width: 0;
}
.kamp-post-nav__link:hover {
  border-color: rgba(200, 16, 46, 0.35);
}
.kamp-post-nav__link.is-empty {
  visibility: hidden;
  pointer-events: none;
}
.kamp-post-nav__link--next { text-align: right; justify-items: end; }
.kamp-post-nav__dir {
  font-family: var(--kamp-font);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--kamp-red);
}
.kamp-post-nav__title {
  font-family: var(--kamp-font);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
  color: var(--kamp-ink);
}

/* Company contact klocek — light content DNA (jak Opinie / FAQ); glass = opcjonalnie */
body.kamp-host .kamp-section.kamp-company-contact {
  padding-block: var(--kamp-klocek-pad, var(--kamp-section-y));
}
.kamp-company-contact .kamp-wrap {
  max-width: var(--kamp-max);
  margin: 0 auto;
}
.kamp-company-contact .kamp-section__title {
  margin: 0 0 16px;
}
.kamp-company-contact__card {
  width: 100%;
  margin-inline: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 20px 28px;
  align-items: center;
  padding: 22px 24px;
  background: #fff;
  border: 1px solid #e6e8eb;
  border-radius: var(--kamp-card-radius);
  box-shadow: 0 8px 22px rgba(26, 29, 33, 0.06);
}
.kamp-company-contact__media {
  display: grid;
  gap: 10px;
  justify-items: start;
  text-align: left;
}
.kamp-company-contact__title {
  margin: 0;
  font-family: var(--kamp-font);
  font-size: calc(var(--kamp-klocek-title, 1.75rem) * var(--kamp-klocek-text-scale, 1));
  font-weight: 800;
  line-height: 1.15;
  color: var(--kamp-ink);
}
.kamp-company-contact__icon {
  width: 56px;
  height: 56px;
  display: grid;
  place-items: center;
}
.kamp-company-contact__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  filter: none;
}
.kamp-company-contact__body {
  display: grid;
  gap: 14px;
  align-content: center;
  min-width: 0;
}
.kamp-company-contact__text {
  font-family: var(--kamp-body);
  font-size: calc(var(--kamp-company-contact-text-size, 0.95rem) * var(--kamp-klocek-text-scale, 1));
  line-height: 1.55;
  color: var(--kamp-ink);
}
.kamp-company-contact__text p {
  margin: 0 0 0.55em;
  color: var(--kamp-muted);
}
.kamp-company-contact__text p:last-child {
  margin-bottom: 0;
}
.kamp-company-contact__text strong {
  color: var(--kamp-ink);
  font-weight: 800;
}
.kamp-company-contact__text a {
  color: var(--kamp-ink);
  text-decoration: none;
  text-underline-offset: 2px;
  border-bottom: 0;
  box-shadow: none;
}
.kamp-company-contact__text a:hover,
.kamp-company-contact__text a:focus-visible {
  color: var(--kamp-red);
  text-decoration: underline;
}
.kamp-company-contact__cta {
  display: flex;
  justify-content: flex-start;
  width: 100%;
}
.kamp-company-contact--icon-sm .kamp-company-contact__icon {
  width: 40px;
  height: 40px;
}
.kamp-company-contact--icon-lg .kamp-company-contact__icon {
  width: 72px;
  height: 72px;
}
.kamp-company-contact--compact .kamp-company-contact__card {
  padding: 16px 18px;
  gap: 14px 18px;
}
.kamp-company-contact--stacked .kamp-company-contact__card,
.kamp-company-contact--media-below .kamp-company-contact__card {
  grid-template-columns: 1fr;
  justify-items: start;
  text-align: left;
}
.kamp-company-contact--stacked .kamp-company-contact__body,
.kamp-company-contact--media-below .kamp-company-contact__body {
  justify-items: start;
}
.kamp-company-contact--media-right .kamp-company-contact__card {
  grid-template-columns: minmax(0, 1fr) auto;
}
@media (max-width: 900px) {
  .kamp-company-contact__card,
  .kamp-company-contact--media-right .kamp-company-contact__card {
    grid-template-columns: 1fr;
    justify-items: start;
    text-align: left;
  }
  .kamp-company-contact__body {
    order: 1;
    justify-items: start;
  }
  .kamp-company-contact__media {
    order: 2;
  }
}

/* Contact: form stack only — hero is a direct .kamp-main child (same tuck as other pages) */
.kamp-contact {
  display: block;
  background: #fff;
}
/* Contact hero = same split rhythm as home/about (left lead, vertically centered columns) */
.kamp-page-hero--contact .kamp-page-hero__card {
  position: relative;
  align-items: center;
}
  .kamp-page-hero--contact .kamp-page-hero__lead {
  justify-self: stretch;
  text-align: left;
  text-justify: auto;
  }
  .kamp-page-hero--contact .kamp-page-hero__contact-head {
  justify-content: flex-start;
  }
  .kamp-page-hero--contact .kamp-page-hero__contact-mark {
  position: static;
  margin-top: 18px;
  justify-content: flex-start;
}
.kamp-contact-panel {
  position: relative;
  z-index: 1;
  margin: 0;
  background: var(--kamp-soft);
  color: var(--kamp-ink);
  padding: var(--kamp-section-y) 0 calc(var(--kamp-section-y) + 8px);
  scroll-margin-top: calc(var(--kamp-header-height) + 16px);
}
.kamp-contact-panel__shell {
  max-width: var(--kamp-max);
  margin: 0 auto;
  padding: 0 var(--kamp-gutter);
}
.kamp-contact-panel__inner {
  max-width: var(--kamp-form-max);
  width: 100%;
  margin: 0 auto;
  display: grid;
  gap: 1rem;
  align-items: stretch;
  justify-items: stretch;
  box-sizing: border-box;
}
/* White form shell — same side rails + radius + pad as hero glass boxes */
.kamp-contact-panel__form {
  background: #fff;
  border: 0;
  border-left: 5px solid var(--kamp-hero-side, var(--kamp-red));
  border-right: 5px solid var(--kamp-hero-side, var(--kamp-red));
  border-radius: var(--kamp-hero-card-radius, var(--kamp-pill-radius));
  padding: var(--kamp-hero-card-pad) clamp(20px, 3vw, 32px);
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  overflow: hidden;
  box-shadow:
    -4px 0 10px rgba(200, 16, 46, 0.05),
    4px 0 10px rgba(200, 16, 46, 0.05),
    0 10px 28px rgba(26, 29, 33, 0.06);
}
.kamp-contact-panel__trust {
  text-align: center;
  margin: 0;
  padding: 0.65rem 1rem 0;
  color: #141414;
  font-family: var(--kamp-font);
  font-size: 13px;
  line-height: 1.5;
  max-width: var(--kamp-form-max);
  justify-self: center;
  width: 100%;
}
.kamp-contact-panel__trust strong { color: #141414; font-weight: 700; }
.kamp-contact-panel__recaptcha-note {
  text-align: center;
  margin: 0.35rem 0 0;
  padding: 0 1rem;
  color: rgba(20, 20, 20, 0.55);
  font-family: var(--kamp-font);
  font-size: 11px;
  line-height: 1.45;
  max-width: var(--kamp-form-max);
  justify-self: center;
  width: 100%;
}
.kamp-contact-panel__recaptcha-note a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.kamp-contact-panel__ok {
  background: #e8f6ec; color: #0f5132; padding: 12px 14px; border-radius: var(--kamp-box-radius); margin: 0 0 16px;
}
.kamp-req {
  color: var(--kamp-red);
  text-decoration: none;
  font-weight: 700;
}

/* Native fallback - same field order / underline DNA as Forminator 1142 */
.kamp-contact-form { display: grid; gap: 18px; }
.kamp-contact-form__hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}
.kamp-contact-panel__err {
  background: #fdecec;
  color: #8a1111;
  padding: 12px 14px;
  border-radius: var(--kamp-box-radius);
  margin: 0 0 16px;
}
.kamp-contact-form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px 20px;
}
.kamp-contact-form label { display: grid; gap: 6px; font-weight: 500; font-size: 13px; color: #565656; }
.kamp-contact-form label > span { font-family: var(--kamp-font); color: #565656; font-weight: 500; }
.kamp-contact-form input[type="text"],
.kamp-contact-form input[type="email"],
.kamp-contact-form input[type="tel"],
.kamp-contact-form textarea {
  border: 0;
  border-bottom: 1px solid rgba(15, 15, 15, 0.35);
  border-radius: 0;
  padding: 10px 2px;
  font: inherit;
  color: var(--kamp-ink);
  background: transparent;
  width: 100%;
  box-sizing: border-box;
  vertical-align: top;
}
.kamp-contact-form textarea {
  /* Same field DNA as inputs — only taller; no separate “card” box */
  border: 0;
  border-bottom: 1px solid rgba(15, 15, 15, 0.35);
  border-radius: 0;
  padding: 10px 2px;
  min-height: 140px;
  resize: vertical;
  display: block;
  line-height: 1.5;
}
.kamp-contact-form input:focus,
.kamp-contact-form textarea:focus {
  outline: none;
  border-bottom-color: #000;
}
.kamp-contact-form textarea:focus {
  outline: none;
  border-bottom-color: #000;
  box-shadow: none;
}
.kamp-contact-form__kinds {
  border: 0;
  margin: 4px 0 0;
  padding: 0;
  display: grid;
  gap: 12px;
}
.kamp-contact-form__kinds legend {
  font-family: var(--kamp-font);
  font-weight: 500;
  font-size: 13px;
  color: #565656;
  margin-bottom: 4px;
  padding: 0;
}
.kamp-contact-form__kinds label {
  display: flex;
  align-items: center;
  gap: 12px;
  font-weight: 500;
  color: var(--kamp-ink);
}
.kamp-contact-form__kinds input[type="checkbox"] {
  width: 18px;
  height: 18px;
  accent-color: #db0a0a;
  flex: 0 0 auto;
}
.kamp-contact-form__message { position: relative; }
.kamp-contact-form__limit {
  display: block;
  margin-top: 6px;
  font-size: 12px;
  color: var(--kamp-muted);
  text-align: right;
}
.kamp-contact-form__submit,
.kamp-contact-form .kamp-btn {
  justify-self: start;
  background: #000;
  border-color: #000;
  color: #fff;
  min-width: 140px;
  padding: var(--kamp-btn-pad-block) var(--kamp-btn-pad-inline);
  border-radius: var(--kamp-btn-radius, 3%);
  transition: background .2s ease;
}
.kamp-contact-form__submit:hover,
.kamp-contact-form .kamp-btn:hover {
  background: rgba(186, 0, 0, 0.92);
  border-color: rgba(186, 0, 0, 0.92);
}

/* Forminator (live) + WPForms - sit inside white card only */
.kamp-contact-panel .forminator-ui,
.kamp-contact-panel .forminator-custom-form,
.kamp-contact-panel .wpforms-container,
.kamp-contact-panel .forminator-pagination,
.kamp-contact-panel form {
  margin: 0;
  max-width: 100% !important;
  width: 100% !important;
  box-sizing: border-box;
}
.kamp-contact-panel .forminator-ui.forminator-custom-form,
.kamp-contact-panel .forminator-custom-form {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}
.kamp-contact-panel .forminator-row {
  margin-bottom: 4px;
  max-width: 100%;
  width: 100%;
  box-sizing: border-box;
}
.kamp-contact-panel .forminator-row:last-child {
  margin-bottom: 0;
}
.kamp-contact-panel .forminator-col,
.kamp-contact-panel .forminator-field,
.kamp-contact-panel .forminator-field-type-name,
.kamp-contact-panel .wpforms-field {
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.kamp-contact-panel .forminator-field {
  margin-bottom: 0.85rem;
}
.kamp-contact-panel .forminator-field-type-checkbox,
.kamp-contact-panel .forminator-field-type-checkboxes {
  margin-top: 0.25rem;
}
.kamp-contact-panel .forminator-checkbox,
.kamp-contact-panel .forminator-field-checkbox {
  margin-bottom: 0.35rem;
}
.kamp-contact-panel .forminator-checkbox label,
.kamp-contact-panel .forminator-field-checkbox label {
  align-items: center;
  gap: 12px;
}
.kamp-contact-panel .forminator-input,
.kamp-contact-panel .forminator-textarea,
.kamp-contact-panel .wpforms-field input,
.kamp-contact-panel .wpforms-field textarea {
  max-width: 100% !important;
  width: 100% !important;
  box-sizing: border-box !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(15, 15, 15, 0.35) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 10px 2px !important;
}
.kamp-contact-panel .forminator-textarea,
.kamp-contact-panel .wpforms-field textarea {
  border: 1px solid rgba(15, 15, 15, 0.2) !important;
  border-radius: var(--kamp-box-radius) !important;
  padding: 12px 14px !important;
  min-height: 140px;
}
.kamp-contact-panel .forminator-input:focus,
.kamp-contact-panel .forminator-textarea:focus,
.kamp-contact-panel .wpforms-field input:focus,
.kamp-contact-panel .wpforms-field textarea:focus {
  outline: none !important;
  border-bottom-color: #000 !important;
}
.kamp-contact-panel .forminator-textarea:focus,
.kamp-contact-panel .wpforms-field textarea:focus {
  border-color: #000 !important;
  outline: 2px solid rgba(0, 0, 0, 0.12) !important;
}
.kamp-contact-panel .forminator-label,
.kamp-contact-panel .wpforms-field-label {
  color: #565656 !important;
  font-family: var(--kamp-font);
  font-weight: 500;
}
.kamp-contact-panel .forminator-required,
.kamp-contact-panel .wpforms-required-label {
  color: var(--kamp-red) !important;
}
.kamp-contact-panel .forminator-input,
.kamp-contact-panel .forminator-textarea,
.kamp-contact-panel .wpforms-field input[type="text"],
.kamp-contact-panel .wpforms-field input[type="email"],
.kamp-contact-panel .wpforms-field input[type="tel"],
.kamp-contact-panel .wpforms-field textarea {
  font-family: var(--kamp-body) !important;
  color: var(--kamp-ink) !important;
}
.kamp-contact-panel .forminator-checkbox-box,
.kamp-contact-panel .forminator-checkbox .forminator-checkbox-box {
  border-color: #db0a0a !important;
}
.kamp-contact-panel .forminator-checkbox.forminator-is_checked .forminator-checkbox-box,
.kamp-contact-panel .forminator-checkbox input:checked + .forminator-checkbox-box {
  background-color: rgba(219, 10, 10, 0.41) !important;
  border-color: #db0a0a !important;
}
.kamp-contact-panel .forminator-button-submit,
.kamp-contact-panel .wpforms-submit {
  background: #000 !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: var(--kamp-btn-radius, 7%) !important;
  min-width: 140px;
  font-family: var(--kamp-font) !important;
  font-weight: 700 !important;
  transition: background .2s ease;
}
.kamp-contact-panel .forminator-button-submit:hover,
.kamp-contact-panel .wpforms-submit:hover {
  background: rgba(186, 0, 0, 0.92) !important;
}
.kamp-contact-panel .forminator-description {
  color: var(--kamp-muted);
  font-size: 12px;
}

/* Lightbox (native dialog) */
.kamp-lightbox {
  border: none;
  padding: 0;
  margin: auto;
  max-width: min(96vw, 1200px);
  width: auto;
  background: transparent;
  overflow: visible;
}
.kamp-lightbox::backdrop {
  background: rgba(8, 10, 12, 0.9);
}
.kamp-lightbox__frame {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 40vh;
}
.kamp-lightbox__stage {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: min(72vw, 640px);
  min-height: min(52vh, 420px);
}
.kamp-lightbox__loader {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.28s ease, visibility 0.28s ease;
}
.kamp-lightbox.is-loading .kamp-lightbox__loader {
  opacity: 1;
  visibility: visible;
}
.kamp-lightbox__loader-bars {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 5px;
  height: 28px;
}
.kamp-lightbox__loader-bars span {
  display: block;
  width: 3px;
  height: 100%;
  border-radius: 2px;
  background: var(--kamp-red, #c8102e);
  transform-origin: bottom center;
  transform: scaleY(0.35);
  opacity: 0.5;
  animation: kamp-lightbox-bar 0.85s cubic-bezier(0.45, 0, 0.55, 1) infinite;
}
.kamp-lightbox__loader-bars span:nth-child(1) { animation-delay: 0s; }
.kamp-lightbox__loader-bars span:nth-child(2) { animation-delay: 0.12s; }
.kamp-lightbox__loader-bars span:nth-child(3) { animation-delay: 0.24s; }
.kamp-lightbox__loader-bars span:nth-child(4) { animation-delay: 0.36s; }
.kamp-lightbox__loader-bars span:nth-child(5) { animation-delay: 0.48s; }
@keyframes kamp-lightbox-bar {
  0%, 100% {
    transform: scaleY(0.35);
    opacity: 0.45;
  }
  50% {
    transform: scaleY(1);
    opacity: 1;
  }
}
.kamp-lightbox__loader-label {
  margin: 0;
  font-family: var(--kamp-font);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.72);
}
.kamp-lightbox__img {
  display: block;
  max-width: min(92vw, 1200px);
  max-height: 88vh;
  width: auto;
  height: auto;
  margin: 0 auto;
  border-radius: var(--kamp-card-radius, 3%);
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.45);
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
.kamp-lightbox__img.is-loaded {
  opacity: 1;
}
@media (prefers-reduced-motion: reduce) {
  .kamp-lightbox__loader-bars span {
    animation: none;
    transform: scaleY(0.65);
    opacity: 0.85;
  }
  .kamp-lightbox__loader,
  .kamp-lightbox__img {
    transition: none;
  }
}
.kamp-lightbox__close,
.kamp-lightbox__nav {
  appearance: none;
  border: 0;
  background: rgba(15, 17, 19, 0.82);
  color: #fff;
  cursor: pointer;
  font-family: var(--kamp-font);
  line-height: 1;
  z-index: 2;
}
.kamp-lightbox__close {
  position: absolute;
  top: -44px;
  right: 0;
  width: 40px;
  height: 40px;
  border-radius: var(--kamp-pill-radius, 3%);
  font-size: 28px;
}
.kamp-lightbox__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: var(--kamp-pill-radius, 3%);
  font-size: 28px;
  font-weight: 700;
}
.kamp-lightbox__nav--prev { left: -52px; }
.kamp-lightbox__nav--next { right: -52px; }
.kamp-lightbox__close:hover,
.kamp-lightbox__nav:hover {
  background: var(--kamp-red, #c8102e);
}
@media (max-width: 900px) {
  .kamp-lightbox__nav--prev { left: 4px; }
  .kamp-lightbox__nav--next { right: 4px; }
  .kamp-lightbox__close { top: 8px; right: 8px; }
}
.kamp-gallery__item a,
.kamp-media-band__lightbox {
  cursor: zoom-in;
}

/* YouTube player (DNA glass + agent fill) */
.kamp-youtube {
  margin: 0 0 var(--kamp-section-gap, 24px);
}
.kamp-youtube.is-minimized .kamp-youtube__shell {
  display: none;
}
.kamp-youtube__shell.kamp-glass-card {
  padding: 0;
  overflow: hidden;
  color: #fff;
}
.kamp-youtube__controls {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 12px 14px;
  background: rgba(15, 17, 19, 0.55);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  justify-content: center;
}
.kamp-youtube__controls .kamp-youtube__btn {
  font-size: 11px;
  padding: 8px 12px;
  min-height: 0;
}
.kamp-youtube__player-area {
  padding: 0;
  background: #000;
}
.kamp-youtube__player-wrap {
  position: relative;
  background: #000;
  overflow: hidden;
  margin: 0 auto;
}
.kamp-youtube--horizontal .kamp-youtube__player-wrap {
  width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
  max-height: min(72vh, 540px);
}
.kamp-youtube--vertical .kamp-youtube__player-area {
  display: flex;
  justify-content: center;
  align-items: stretch;
}
.kamp-youtube--vertical .kamp-youtube__player-wrap {
  width: auto;
  height: clamp(380px, 72vh, 680px);
  max-width: 100%;
  aspect-ratio: 9 / 16;
}
.kamp-youtube--project.kamp-youtube--vertical .kamp-youtube__player-wrap {
  height: clamp(420px, 75vh, 720px);
  max-width: min(100%, 480px);
}
.kamp-youtube--project.kamp-youtube--horizontal .kamp-youtube__player-wrap {
  max-height: min(68vh, 520px);
}
.kamp-youtube__player-wrap iframe,
.kamp-youtube__player-wrap > div {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
}
.kamp-youtube__lazy-trigger {
  appearance: none;
  border: none;
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background-color: #0f1113;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: #fff;
  cursor: pointer;
  font: inherit;
  position: relative;
}
.kamp-youtube__lazy-trigger::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(8, 10, 12, 0.35) 0%, rgba(8, 10, 12, 0.72) 100%);
  pointer-events: none;
}
.kamp-youtube__lazy-icon,
.kamp-youtube__lazy-label {
  position: relative;
  z-index: 1;
}
.kamp-youtube__lazy-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--kamp-red, #c8102e);
  font-size: 22px;
  line-height: 1;
  padding-left: 3px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
}
.kamp-youtube__lazy-label {
  font-size: 12px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.92);
  text-align: center;
  padding: 0 16px;
  max-width: 28ch;
}
.kamp-youtube__footer {
  padding: 10px 14px 14px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(12, 14, 16, 0.45);
}
.kamp-youtube__channel {
  font-size: 12px;
  font-weight: 700;
  color: var(--kamp-red, #c8102e);
  text-decoration: none;
}
.kamp-youtube__channel:hover {
  text-decoration: underline;
}
.kamp-single__video .kamp-youtube {
  margin-bottom: 0;
}
@media (max-width: 900px) {
  .kamp-youtube--vertical .kamp-youtube__player-wrap,
  .kamp-youtube--project.kamp-youtube--vertical .kamp-youtube__player-wrap {
    width: 100%;
    height: auto;
    aspect-ratio: 9 / 16;
    max-height: min(78vh, 640px);
  }
  .kamp-youtube__controls {
    gap: 6px;
    padding: 10px 12px;
  }
  .kamp-youtube__controls .kamp-youtube__btn {
    font-size: 10px;
    padding: 7px 10px;
  }
}

.kamp-hint { color: var(--kamp-muted); font-size: 12px; }
/* Footer — chrome bar + meta (nav links = .kamp-footer__link shared with header) */
.kamp-footer {
  background: #0f1113;
  color: #fff;
  padding: 0;
  margin: 0;
  border: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  box-shadow: none;
}
.kamp-footer a:not(.kamp-footer__link) {
  color: #fff;
  text-decoration: none;
}
.kamp-footer__bar {
  max-width: var(--kamp-max);
  margin: 0 auto;
  padding: 12px var(--kamp-gutter);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  column-gap: clamp(12px, 2vw, 24px);
  box-sizing: border-box;
}
.kamp-footer__logo {
  display: inline-flex;
  align-items: center;
  line-height: 0;
  flex-shrink: 0;
  color: #fff;
  justify-self: start;
  grid-column: 1;
}
.kamp-footer__logo img {
  height: var(--kamp-chrome-link-size);
  width: calc(var(--kamp-chrome-link-size) * 200 / 13);
  aspect-ratio: 200 / 13;
  max-width: min(100%, 52vw);
  object-fit: contain;
  display: block;
}
.kamp-footer__nav {
  grid-column: 2;
  justify-self: center;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  display: flex;
  justify-content: center;
}
.kamp-footer__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: nowrap;
  gap: clamp(8px, 1.4vw, 20px);
  max-width: 100%;
}
.kamp-footer__item {
  margin: 0;
  padding: 0;
  list-style: none;
}
.kamp-footer__social {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 14px;
  flex-shrink: 0;
  justify-self: end;
  grid-column: 3;
}
.kamp-footer__social a {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  color: #fff;
  line-height: 0;
  border: 0;
  border-radius: 0;
  opacity: 0.78;
  overflow: visible;
  transition: opacity 0.15s ease;
}
.kamp-footer__social a::before,
.kamp-footer__social a::after {
  content: none;
}
.kamp-footer__social a:hover,
.kamp-footer__social a:focus-visible {
  opacity: 1;
}
.kamp-footer__social a:focus-visible {
  outline: 2px solid var(--kamp-red);
  outline-offset: 3px;
}
.kamp-footer__social img {
  width: 18px;
  height: 18px;
  object-fit: contain;
  display: block;
  filter: brightness(0) invert(1);
}
.kamp-footer__meta {
  max-width: var(--kamp-max);
  margin: 0 auto;
  padding: 10px var(--kamp-gutter) 18px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px 20px;
  text-align: left;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.kamp-footer__slogan {
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  font-family: var(--kamp-font);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: lowercase;
  line-height: 1.4;
  min-width: 0;
}
.kamp-footer__legal {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  gap: 6px;
  min-width: 0;
  max-width: 100%;
}
.kamp-footer__legal-row {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px 12px;
  max-width: 100%;
}
.kamp-footer__panel {
  flex: 0 0 auto;
  font-family: var(--kamp-font);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(150, 156, 162, 0.9);
  padding: 2px 8px;
  border: 1px solid rgba(150, 156, 162, 0.35);
  background: rgba(255, 255, 255, 0.04);
  line-height: 1.3;
  white-space: nowrap;
  text-decoration: none;
}
.kamp-footer a.kamp-footer__panel:hover {
  color: rgba(190, 196, 202, 0.95);
  border-color: rgba(190, 196, 202, 0.5);
}
.kamp-footer__wcag {
  flex: 0 0 auto;
  font-family: var(--kamp-font);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(170, 176, 182, 0.92);
  padding: 3px 9px;
  border: 1px solid rgba(170, 176, 182, 0.32);
  border-radius: 0;
  background: rgba(255, 255, 255, 0.04);
  line-height: 1.3;
  white-space: nowrap;
}
.kamp-footer__privacy {
  margin: 0;
  color: rgba(255, 255, 255, 0.45);
  font-family: var(--kamp-font);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.02em;
  text-decoration: none;
  line-height: 1.35;
  position: relative;
  padding-bottom: 2px;
  transition: color 0.2s ease;
}
.kamp-footer__privacy::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: var(--kamp-red);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.2s ease;
}
.kamp-footer__privacy:hover {
  color: #fff;
}
.kamp-footer__privacy:hover::after {
  transform: scaleX(1);
}
.kamp-footer__copy {
  margin: 0;
  color: rgba(255, 255, 255, 0.45);
  font-family: var(--kamp-font);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1.35;
  text-align: right;
  white-space: nowrap;
}
.kamp-scroll-top {
  position: fixed !important;
  right: max(16px, env(safe-area-inset-right, 0px)) !important;
  left: auto !important;
  bottom: max(20px, calc(env(safe-area-inset-bottom, 0px) + 16px)) !important;
  top: auto !important;
  z-index: 9998 !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  margin: 0;
  box-sizing: border-box;
  background: rgba(12, 14, 16, 0.72);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-left: 3px solid var(--kamp-red, #c8102e);
  border-right: 3px solid var(--kamp-red, #c8102e);
  border-radius: var(--kamp-btn-radius, 3%);
  backdrop-filter: blur(16px) saturate(1.25);
  -webkit-backdrop-filter: blur(16px) saturate(1.25);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
  text-decoration: none;
  opacity: 0;
  pointer-events: none;
  transform: translateY(10px);
  transition: opacity 0.22s ease, transform 0.22s ease, background 0.2s ease, border-color 0.2s ease;
  color: #fff;
}
body.kamp-popup-open .kamp-scroll-top,
body.kamp-nav-open .kamp-scroll-top {
  opacity: 0 !important;
  pointer-events: none !important;
}
.kamp-scroll-top--left {
  left: max(16px, env(safe-area-inset-left, 0px)) !important;
  right: auto !important;
}
.kamp-scroll-top--right {
  right: max(16px, env(safe-area-inset-right, 0px)) !important;
  left: auto !important;
}
.kamp-scroll-top--glass:hover,
.kamp-scroll-top--glass:focus-visible {
  background: rgba(18, 20, 22, 0.9);
  color: #fff;
  outline: none;
}
.kamp-scroll-top--solid {
  background: var(--kamp-dark, #0f1113);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-left: 3px solid var(--kamp-red, #c8102e);
  border-right: 3px solid var(--kamp-red, #c8102e);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.28);
}
.kamp-scroll-top--solid:hover,
.kamp-scroll-top--solid:focus-visible {
  background: #16191c;
  outline: none;
}
.kamp-scroll-top--minimal {
  background: transparent;
  border: 0;
  border-left: 0;
  border-right: 0;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  width: 40px;
  height: 40px;
}
.kamp-scroll-top--minimal:hover,
.kamp-scroll-top--minimal:focus-visible {
  color: var(--kamp-red, #c8102e);
  outline: none;
}
.kamp-scroll-top--minimal img {
  opacity: 0.88;
}
.kamp-scroll-top.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: none;
}
.kamp-scroll-top:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}
.kamp-scroll-top img,
.kamp-scroll-top__icon {
  width: 18px;
  height: 18px;
  object-fit: contain;
  display: block;
}
.kamp-scroll-top img {
  filter: brightness(0) invert(1);
}
.kamp-scroll-top__icon {
  color: inherit;
  line-height: 0;
}
.kamp-scroll-top__icon svg {
  width: 100%;
  height: 100%;
  display: block;
}
/* Clear the WCAG rail on the right edge */
@media (min-width: 641px) {
  .kamp-scroll-top--right {
    right: max(20px, calc(env(safe-area-inset-right, 0px) + 8px)) !important;
    bottom: max(24px, calc(env(safe-area-inset-bottom, 0px) + 20px)) !important;
  }
}
@media (max-width: 640px) {
  .kamp-scroll-top--right {
    right: max(14px, env(safe-area-inset-right, 0px)) !important;
    bottom: max(20px, calc(env(safe-area-inset-bottom, 0px) + 14px)) !important;
  }
}
@media (max-width: 1100px) {
  .kamp-process:not(.kamp-process--vertical) {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    justify-items: stretch;
  }
  .kamp-process:not(.kamp-process--vertical) .kamp-process__step {
    width: 100%;
    max-width: none;
    flex: none;
  }
  .kamp-process:not(.kamp-process--vertical) .kamp-process__arrow {
    display: flex;
    justify-self: center;
    transform: rotate(90deg);
    height: 28px;
    margin: 2px 0;
    flex: none;
  }
  .kamp-section__head--split {
    grid-template-columns: 1fr;
    gap: 10px;
  }
}
@media (max-width: 1080px) {
  .kamp-page-hero__fx--fluorescent,
  .kamp-sfx--fluorescent.kamp-sfx--surface-hero,
  .kamp-page-hero__fx--storm-flash,
  .kamp-sfx--storm-flash.kamp-sfx--surface-hero {
    animation: none !important;
    opacity: 0.28;
    filter: none !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .kamp-nav,
  .kamp-nav-backdrop {
    transition: none !important;
  }
}
@media (max-width: 1080px) {
  /* Static chrome globally — no fixed chase; pin only via body.kamp-nav-open */
  .kamp-chrome {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    z-index: 40;
    width: 100%;
    height: auto;
    overflow: visible;
    pointer-events: auto;
  }
  body.kamp-nav-open .kamp-chrome {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 60;
    pointer-events: none;
  }
  body.admin-bar.kamp-nav-open .kamp-chrome {
    top: var(--wp-admin--admin-bar--height, 46px);
  }
  @media screen and (min-width: 783px) {
    body.admin-bar.kamp-nav-open .kamp-chrome {
      top: var(--wp-admin--admin-bar--height, 32px);
    }
  }
  .kamp-header {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    z-index: 2;
    width: 100%;
    pointer-events: auto;
    /* No safe-area padding band — avoids “dziwne paski” under Safari chrome */
    padding-top: 0;
    height: var(--kamp-header-height);
    min-height: var(--kamp-header-height);
    background: rgba(15, 17, 19, 0.94);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border-bottom-color: rgba(255, 255, 255, 0.08);
    box-shadow: none;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
  }
  body.admin-bar .kamp-header {
    top: auto;
  }
  /* Static header is in flow — don’t tuck; height already subtracts header (see host:not-sticky). */
  body.kamp-host .kamp-main > .kamp-page-hero:first-child,
  body.kamp-host .kamp-main > .kamp-hero:first-child {
    margin-top: 0;
    --kamp-hero-min-height: calc(100svh - var(--kamp-header-height) - env(safe-area-inset-top, 0px));
    min-height: calc(100svh - var(--kamp-header-height) - env(safe-area-inset-top, 0px));
    --kamp-hero-pad-top: var(--kamp-hero-box-gap);
  }
  body.kamp-nav-sticky .kamp-main {
    padding-top: var(--kamp-header-offset);
  }
  body.kamp-nav-sticky.kamp-host .kamp-main:has(> .kamp-page-hero:first-child),
  body.kamp-nav-sticky.kamp-host .kamp-main:has(> .kamp-hero:first-child) {
    padding-top: 0;
  }
  body.kamp-nav-sticky.kamp-host .kamp-main > .kamp-page-hero:first-child,
  body.kamp-nav-sticky.kamp-host .kamp-main > .kamp-hero:first-child {
    margin-top: 0;
  }
  body.kamp-nav-sticky .kamp-chrome {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 60;
  }
  body.kamp-nav-sticky .kamp-header {
    padding-top: env(safe-area-inset-top, 0px);
    height: calc(var(--kamp-header-height) + env(safe-area-inset-top, 0px));
    min-height: calc(var(--kamp-header-height) + env(safe-area-inset-top, 0px));
  }
  body.kamp-nav-sticky {
    --kamp-header-offset: calc(var(--kamp-header-height) + env(safe-area-inset-top, 0px));
  }
  body.kamp-nav-sticky .kamp-nav {
    --kamp-nav-top: var(--kamp-header-offset);
  }
  body.kamp-nav-sticky .kamp-nav-backdrop {
    top: var(--kamp-header-offset);
  }
  body.admin-bar.kamp-nav-sticky .kamp-chrome {
    top: var(--wp-admin--admin-bar--height, 46px);
  }
  @media screen and (min-width: 783px) {
    body.admin-bar.kamp-nav-sticky .kamp-chrome {
      top: var(--wp-admin--admin-bar--height, 32px);
    }
  }
  .kamp-page-hero,
  .kamp-hero {
    --kamp-hero-pad-top: var(--kamp-hero-box-gap);
  }
  body.kamp-nav-sticky .kamp-page-hero,
  body.kamp-nav-sticky .kamp-hero {
    --kamp-hero-pad-top: calc(var(--kamp-header-offset) + var(--kamp-hero-box-gap));
    min-height: var(--kamp-hero-min-height);
  }
  .kamp-sfx--glass-rim::before {
    display: none !important;
  }
  .kamp-header__bar {
    grid-template-columns: auto 1fr;
    padding: 0 var(--kamp-gutter);
  }
  .kamp-header__actions {
    grid-column: 2;
    gap: 4px;
    justify-self: end;
  }
  .kamp-lang {
    width: auto;
    justify-content: flex-end;
    margin-left: 0;
  }
  .kamp-nav-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  /*
   * Mobile sheet: content-height under belka (not full-bleed void).
   * CRITICAL: display:none when closed — opacity/visibility alone leaves a
   * full-screen layer that traps touch on iOS (page “frozen” on hero).
   */
  .kamp-nav {
    --kamp-nav-top: var(--kamp-header-height);
    display: none;
    position: fixed;
    top: var(--kamp-nav-top);
    right: 0;
    bottom: auto;
    left: 0;
    width: 100%;
    max-width: none;
    height: auto;
    max-height: min(72dvh, calc(100dvh - var(--kamp-nav-top) - 12px));
    flex: none;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    margin: 0;
    padding: 4px var(--kamp-gutter) calc(12px + env(safe-area-inset-bottom, 0px));
    background: rgba(12, 14, 16, 0.9);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border: 0;
    border-radius: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.45);
    z-index: 55;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    pointer-events: auto;
    touch-action: pan-y;
  }
  body.admin-bar .kamp-nav {
    --kamp-nav-top: calc(var(--kamp-header-height) + var(--wp-admin--admin-bar--height, 46px));
  }
  @media screen and (min-width: 783px) {
    body.admin-bar .kamp-nav {
      --kamp-nav-top: calc(var(--kamp-header-height) + var(--wp-admin--admin-bar--height, 32px));
    }
  }
  .kamp-nav.is-open {
    display: flex;
  }
  .kamp-nav__list {
    flex-direction: column;
    align-items: stretch;
    flex-wrap: nowrap;
    gap: 0;
    width: 100%;
    max-width: var(--kamp-max);
    margin: 0 auto;
    pointer-events: auto;
  }
  .kamp-nav__item {
    width: 100%;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  }
  .kamp-nav__item:last-child {
    border-bottom: 0;
  }
  .kamp-nav__link {
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    text-transform: none;
    padding: 14px 0;
    justify-content: flex-start;
    min-height: 48px;
    color: #fff;
    opacity: 1;
    transform: none;
    width: 100%;
    max-width: 100%;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }
  .kamp-nav__link:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.04);
  }
  .kamp-nav__link::after {
    display: none;
  }
  .kamp-nav__link.is-active {
    font-weight: 700;
    color: #fff;
    opacity: 1;
    background: transparent;
    text-shadow: none;
    box-shadow: inset 3px 0 0 var(--kamp-red, #c8102e);
    padding-left: 12px;
  }
  .kamp-nav__link.is-active::after {
    display: none;
  }
  .kamp-lang__item,
  .kamp-nav-toggle {
    border-radius: 0;
  }
  .kamp-lang__item.is-active {
    background: transparent;
    border: 0;
    box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.55);
    color: #fff;
  }
  .kamp-nav-backdrop {
    display: none;
    position: fixed;
    top: var(--kamp-header-height);
    right: 0;
    bottom: 0;
    left: 0;
    background: rgba(6, 8, 10, 0.62);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    z-index: 50;
    cursor: pointer;
    touch-action: manipulation;
  }
  body.admin-bar .kamp-nav-backdrop {
    top: calc(var(--kamp-header-height) + var(--wp-admin--admin-bar--height, 46px));
  }
  @media screen and (min-width: 783px) {
    body.admin-bar .kamp-nav-backdrop {
      top: calc(var(--kamp-header-height) + var(--wp-admin--admin-bar--height, 32px));
    }
  }
  .kamp-nav-backdrop.is-open {
    display: block;
  }
  body.kamp-nav-open {
    overflow: hidden;
    /* Prefer overflow lock over position:fixed — less conflict with fixed chrome on iOS */
    overscroll-behavior: none;
    touch-action: none;
  }
  html.kamp-nav-lock {
    overflow: hidden;
    overscroll-behavior: none;
  }
  .kamp-footer__bar {
    grid-template-columns: 1fr auto;
    grid-template-areas:
      "logo social"
      "nav nav";
    align-items: center;
    gap: 14px 12px;
    padding: 16px var(--kamp-gutter) 10px;
  }
  .kamp-footer__logo {
    grid-area: logo;
  }
  .kamp-footer__social {
    grid-area: social;
    justify-self: end;
  }
  .kamp-footer__nav {
    grid-area: nav;
    width: 100%;
    justify-self: stretch;
    justify-content: flex-start;
  }
  .kamp-footer__list {
    width: 100%;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    flex-wrap: nowrap;
    gap: 0;
  }
  .kamp-footer__item {
    width: 100%;
    list-style: none;
  }
  .kamp-footer__link {
    width: 100%;
    justify-content: flex-start;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.01em;
    text-transform: none;
    padding: 11px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  }
  .kamp-footer__link::after {
    display: none;
  }
  .kamp-footer__link:hover::after,
  .kamp-footer__link.is-active::after {
    display: none;
  }
  .kamp-footer__meta {
    grid-template-columns: 1fr;
    padding: 12px var(--kamp-gutter) 18px;
    gap: 12px;
    text-align: center;
  }
  .kamp-footer__slogan {
    font-size: 11px;
    letter-spacing: 0.1em;
  }
  .kamp-footer__legal {
    align-items: center;
    width: 100%;
    gap: 8px;
  }
  .kamp-footer__legal-row {
    justify-content: center;
    gap: 10px 14px;
  }
  .kamp-footer__copy {
    text-align: center;
    white-space: normal;
  }
}
@media (max-width: 900px) {
  :root {
    --kamp-gutter: 16px;
    --kamp-section-y: 40px;
    --kamp-section-gap: 16px;
    --kamp-hero-title-size-mobile: 1.45rem;
    --kamp-hero-text-scale: 1;
    --kamp-hero-lead-size: 0.9375rem;
  }
  .kamp-klocek {
    --kamp-klocek-title-inset: 0;
    --kamp-klocek-text-inset: 0;
    --kamp-klocek-title: 1.375rem;
    --kamp-klocek-lead: 14px;
    --kamp-klocek-head-gap: 0.7rem;
  }
  .kamp-section__title-icon,
  .kamp-process__head-icon {
    width: 28px;
    height: 28px;
  }
  .kamp-page-hero__media {
    justify-items: center;
    text-align: center;
    gap: 10px;
  }
  .kamp-page-hero__media h1,
  .kamp-page-hero__media h2,
  .kamp-page-hero__title {
    text-align: center;
  }
  .kamp-page-hero__lead,
  .kamp-page-hero__prose {
    font-size: var(--kamp-hero-lead-size);
    line-height: 1.5;
  }
  .kamp-areas,
  .kamp-page__blocks .kamp-home-areas .kamp-areas,
  .kamp-page--home-blocks .kamp-areas { grid-template-columns: 1fr; }
  .kamp-area {
    min-height: 0;
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    gap: 0;
  }
  .kamp-area__media {
    min-height: 200px;
    border-radius: var(--kamp-rail-outer-radius) var(--kamp-rail-outer-radius) 0 0;
  }
  .kamp-area__img { min-height: 200px; }
  .kamp-area__rail {
    border-left: 2px solid var(--kamp-rail-side);
    border-top: 0;
    border-radius: 0 0 var(--kamp-rail-outer-radius) var(--kamp-rail-outer-radius);
    flex-direction: row;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
  }
  .kamp-area__title,
  .kamp-area__text {
    writing-mode: horizontal-tb;
    transform: none;
    margin: 0;
    max-height: none;
  }
  .kamp-grid--projects { grid-template-columns: 1fr; gap: 16px; }
  .kamp-card--project {
    display: flex;
    flex-direction: column;
    gap: 0;
    min-height: 0;
    width: 100%;
    border-radius: var(--kamp-card-radius, 12px);
    overflow: hidden;
    background: #0f1113;
    box-shadow: 0 8px 24px rgba(15, 17, 19, 0.1);
  }
  .kamp-card__media {
    width: 100%;
    min-height: 0;
    aspect-ratio: 16 / 10;
    align-self: stretch;
    border-radius: 0;
  }
  .kamp-card--project .kamp-card__img,
  .kamp-card__img--empty {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    max-height: none;
    min-height: 0;
    aspect-ratio: unset;
    object-fit: cover;
    object-position: center;
  }
  .kamp-card__rail {
    width: 100%;
    max-width: none;
    border: 0;
    border-left: 0;
    border-bottom: 3px solid var(--kamp-red, #c8102e);
    border-radius: 0;
    box-shadow: none;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    padding: 14px 16px 16px;
    min-height: 0;
    height: auto;
    align-self: stretch;
    box-sizing: border-box;
  }
  .kamp-card__rail-title,
  .kamp-card__rail-tag {
    writing-mode: horizontal-tb;
    transform: none;
    margin: 0;
    max-height: none;
    width: 100%;
    max-width: none;
    align-self: stretch;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.45;
    color: #fff;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    box-sizing: border-box;
  }
  .kamp-card__foot {
    opacity: 1;
    transform: none;
    padding: 22px 14px 12px;
  }
  .kamp-card--project:hover .kamp-card__img,
  .kamp-card--project:focus-visible .kamp-card__img {
    transform: none;
  }
  .kamp-single__grid { grid-template-columns: 1fr; }
  .kamp-single__meta { position: static; }
  .kamp-single__bar-signal { margin-left: 0; width: 100%; }
  .kamp-single__dossier-inner { flex-direction: column; align-items: flex-start; }
  .kamp-gallery--project { grid-template-columns: 1fr; }
  .kamp-gallery__idx {
    opacity: 1;
    transform: none;
  }
  .kamp-gallery__item a:hover img {
    transform: none;
  }
  .kamp-single__nav-inner { grid-template-columns: 1fr; }
  .kamp-single__nav-link--next { text-align: left; align-items: flex-start; }
  /* Same language as desktop: scale columns, don’t reinvent cards */
  .kamp-journal { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kamp-journal--archive { gap: 16px; }
  .kamp-journal__card--archive h3 { min-height: calc(1.35em * 2); }
  .kamp-journal__card--archive .kamp-journal__body p { min-height: calc(1.55em * 3); }
  .kamp-think { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kamp-journal-row { grid-template-columns: 1fr; }
  .kamp-about-grid { grid-template-columns: 1fr; gap: 14px; }
  .kamp-about__frames,
  .kamp-about-process { grid-template-columns: 1fr; gap: 18px; }
  .kamp-about-process__item { grid-template-columns: 1fr; }
  .kamp-about-process__item .kamp-about__frame { max-width: 220px; }
  .kamp-about-dirs__btn { flex: 1 1 calc(50% - 12px); }
  .kamp-scroll-top { right: max(12px, env(safe-area-inset-right, 0px)); bottom: max(14px, calc(env(safe-area-inset-bottom, 0px) + 10px)); }
  .kamp-scroll-top--left { left: max(12px, env(safe-area-inset-left, 0px)); right: auto; }
  .kamp-scroll-top--right { right: max(12px, env(safe-area-inset-right, 0px)); left: auto; }
  .kamp-cta-band__inner { flex-direction: column; align-items: flex-start; }
  .kamp-post-hero { margin: 0; border-radius: 0 0 var(--kamp-box-radius) var(--kamp-box-radius); min-height: 0; }
  .kamp-post-hero__inner {
    grid-template-columns: 1fr;
    min-height: 0;
    padding: 28px 18px 32px;
    gap: 22px;
  }
  .kamp-post-hero__aside {
    align-items: flex-start;
    text-align: left;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 16px;
  }
  .kamp-post-hero__facts { justify-items: start; }
  .kamp-post-hero__share { justify-items: center; }
  .kamp-post-hero__title { font-size: clamp(1.35rem, 6vw, 1.85rem); }
  .kamp-post-body__content { padding: 1.5rem var(--kamp-gutter) 2rem; text-align: left; }
  .kamp-post-body__content:has(.kamp-section),
  .kamp-post-body__content:has(.kamp-klocek) {
    padding-inline: 0;
  }
  .kamp-post-nav__inner { grid-template-columns: 1fr; }
  .kamp-post-nav__link--next { text-align: left; justify-items: start; }
  .kamp-page-hero,
  .kamp-hero {
    --kamp-hero-pad-top: calc(var(--kamp-header-offset) + var(--kamp-hero-box-gap));
    --kamp-hero-pad-x: 16px;
    --kamp-hero-pad-bottom: 40px;
    min-height: var(--kamp-hero-min-height);
  }
  .kamp-page-hero__card {
    width: 100%;
    grid-template-columns: 1fr;
    padding: 20px 16px;
    gap: 14px;
    /* iOS: backdrop-filter on large hero card causes paint lock / freeze */
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    background: rgba(12, 14, 16, 0.88);
  }
  .kamp-page-hero__media h1,
  .kamp-page-hero__title { font-size: calc(var(--kamp-hero-title-size-mobile) * var(--kamp-hero-text-scale)); }
  .kamp-page-hero__icon,
  .kamp-page-hero__icon img { width: 40px; height: 40px; }
  .kamp-page-hero__after { width: 100%; }
  .kamp-contact-panel {
    margin: 0;
    padding: 40px 0 48px;
  }
  .kamp-contact-panel__form { padding: var(--kamp-hero-card-pad) clamp(16px, 4vw, 24px); }
  .kamp-contact-form__row { grid-template-columns: 1fr; gap: 18px; }
}
@media (max-width: 640px) {
  .kamp-journal { grid-template-columns: 1fr; }
  .kamp-journal--archive { gap: 14px; }
  .kamp-grid--projects { grid-template-columns: 1fr; gap: 14px; }
  .kamp-journal-archive__pagination .nav-links,
  .kamp-archive-pagination .nav-links { gap: 6px; }
  .kamp-journal-archive__pagination a.page-numbers,
  .kamp-journal-archive__pagination span.page-numbers,
  .kamp-archive-pagination a.page-numbers,
  .kamp-archive-pagination span.page-numbers {
    min-width: 34px;
    height: 34px;
    padding: 0 10px;
    font-size: 12px;
  }
  .kamp-think { grid-template-columns: 1fr; }
  .kamp-process:not(.kamp-process--vertical) {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    justify-items: stretch;
  }
  .kamp-process:not(.kamp-process--vertical) .kamp-process__step {
    width: 100%;
    max-width: none;
    flex: none;
  }
  .kamp-process:not(.kamp-process--vertical) .kamp-process__arrow {
    display: flex;
    justify-self: center;
    transform: rotate(90deg);
    height: 28px;
    margin: 2px 0;
    flex: none;
  }
}
@media (max-width: 480px) {
  .kamp-about-process__item { grid-template-columns: 1fr; }
  .kamp-about-process__item .kamp-about__frame { max-width: 220px; }
  .kamp-process__step { padding: 16px; }
  .kamp-card--project { min-height: 0; }
  .kamp-card__media,
  .kamp-card--project .kamp-card__img,
  .kamp-card__img--empty { min-height: 160px; }
  .kamp-page-hero,
  .kamp-hero {
    --kamp-hero-pad-top: calc(var(--kamp-header-offset) + var(--kamp-hero-box-gap));
    min-height: var(--kamp-hero-min-height);
  }
}

/* Motion: section reveal via K4 kamp-anim--* (hero card stays visible — no opacity:0 CLS/LCP delay). */
@media (prefers-reduced-motion: reduce) {
  .kamp-journal__card,
  .kamp-think__card,
  .kamp-process__step {
    transition: none;
  }
  .kamp-journal__card:hover,
  .kamp-think__card:hover,
  .kamp-process__step:hover {
    transform: none;
    box-shadow: none;
  }
}

/* —— Klocki: WCAG 2.2 + social feed (1.0.33) —— */
.kamp-section.kamp-wcag {
  max-width: var(--kamp-max);
}
.kamp-wcag__head {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: var(--kamp-section-gap, 1.25rem);
}
.kamp-wcag__mark {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  object-fit: contain;
  color: var(--kamp-red, #c8102e);
}
.kamp-wcag__mark--svg {
  display: inline-grid;
  place-items: center;
}
.kamp-wcag__mark--svg svg {
  display: block;
  width: 40px;
  height: 40px;
}
.kamp-wcag__titles { min-width: 0; flex: 1; }
.kamp-wcag__titles .kamp-section__title { margin-bottom: 0.35rem; }
.kamp-wcag__titles .kamp-section__lead { margin: 0; max-width: 640px; }
.kamp-wcag__body {
  max-width: 760px;
  margin: 0 0 1.75rem;
  font-size: 15px;
  line-height: 1.65;
  color: var(--kamp-ink);
}
.kamp-wcag__body p { margin: 0 0 0.9rem; }
.kamp-wcag__body p:last-child { margin-bottom: 0; }
.kamp-wcag__body strong { font-weight: 700; }
.kamp-wcag__principles {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 860px;
}
.kamp-wcag__principle {
  margin: 0;
  padding: 18px 20px;
  border: 1px solid #e2e5e8;
  border-radius: var(--kamp-pill-radius, 3%);
  background: #fff;
}
.kamp-section--soft .kamp-wcag__principle {
  background: rgba(255, 255, 255, 0.72);
}
.kamp-wcag__principle-title {
  margin: 0 0 6px;
  font-family: var(--kamp-font);
  font-size: 14px;
  font-weight: 700;
  color: var(--kamp-ink);
}
.kamp-wcag__principle-text {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--kamp-muted);
}
.kamp-wcag__principle:focus-within {
  outline: 2px solid var(--kamp-red, #c8102e);
  outline-offset: 2px;
}
.kamp-social-block .kamp-social__fallback--after {
  margin-top: 16px;
}
.kamp-social__embed--oembed {
  max-width: 540px;
}
.kamp-social__embed--oembed iframe {
  max-width: 100%;
}
@media (max-width: 767px) {
  .kamp-wcag__principles {
    grid-template-columns: 1fr;
  }
  .kamp-wcag__head {
    gap: 12px;
  }
}

/* —— Tor K+: variants + hero FX + page anims (1.0.34) —— */

/* Hero layout variants */
.kamp-page-hero {
  position: relative;
  overflow: hidden;
}
.kamp-page-hero--split .kamp-page-hero__card {
  grid-template-columns: var(--kamp-hero-media-col) minmax(0, 1fr);
}
.kamp-page-hero--center .kamp-page-hero__card {
  grid-template-columns: 1fr;
  text-align: center;
  justify-items: center;
}
.kamp-page-hero--center .kamp-page-hero__media,
.kamp-page-hero--center .kamp-page-hero__lead {
  justify-items: center;
}
.kamp-page-hero--center .kamp-page-hero__media {
  text-align: center;
}
.kamp-page-hero--center .kamp-page-hero__lead,
.kamp-page-hero--center .kamp-page-hero__lead > p {
  text-align: left;
  text-justify: auto;
  width: 100%;
  max-width: 100%;
}
.kamp-page-hero--center .kamp-page-hero__cta {
  justify-content: center;
}
.kamp-page-hero--stack .kamp-page-hero__card {
  grid-template-columns: 1fr;
  gap: 20px;
}
.kamp-page-hero--stack .kamp-page-hero__media {
  order: 0;
}
.kamp-page-hero--stack .kamp-page-hero__lead {
  order: 1;
}
@media (max-width: 900px) {
  .kamp-page-hero--split .kamp-page-hero__card {
    grid-template-columns: 1fr;
  }
}

/* Hero FX: base overlay layer (dust / storm); fluorescent tube styles further below */
.kamp-page-hero__fx {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
}
.kamp-page-hero__card,
.kamp-page-hero__after {
  position: relative;
  z-index: 2;
}
.kamp-page-hero__fx--dust {
  width: 100%;
  height: 100%;
  display: block;
  opacity: 0.52;
}
@media (prefers-reduced-motion: reduce) {
  .kamp-page-hero__fx--dust {
    display: none;
  }
}

/* Rail: left-rail (default DNA) | right-rail (mirrored) */
.kamp-area--right-rail {
  grid-template-columns: 72px minmax(0, 1fr);
}
.kamp-area--right-rail .kamp-area__media {
  order: 2;
  border-radius: 0 var(--kamp-rail-outer-radius) var(--kamp-rail-outer-radius) 0;
}
.kamp-area--right-rail .kamp-area__rail {
  order: 1;
  border-left: 2px solid var(--kamp-rail-side);
  border-right: 0;
  border-radius: var(--kamp-rail-outer-radius) 0 0 var(--kamp-rail-outer-radius);
}
.kamp-area__icon {
  position: absolute;
  left: 12px;
  bottom: 12px;
  width: 28px;
  height: 28px;
  z-index: 2;
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.45));
}
.kamp-area__icon img {
  width: 28px;
  height: 28px;
  object-fit: contain;
  filter: brightness(0) invert(1);
}
.kamp-area__media {
  position: relative;
}

/* K4 page animations — body.kamp-anim--{key} */
.kamp-js .kamp-reveal {
  opacity: 0;
  transition: opacity 0.55s ease, transform 0.55s ease, filter 0.55s ease;
}
.kamp-js .kamp-reveal.is-inview {
  opacity: 1;
  transform: none;
  filter: none;
}

/* Default / fade_up — anim class lives on body, kamp-js on html */
body.kamp-anim--fade_up .kamp-reveal {
  transform: translateY(16px);
}

/* soft_slide */
body.kamp-anim--soft_slide .kamp-reveal {
  transform: translateX(-18px);
}
body.kamp-anim--soft_slide .kamp-reveal.is-inview {
  transform: none;
}

/* stagger_cards — delay via --kamp-stagger */
body.kamp-anim--stagger_cards .kamp-reveal {
  transform: translateY(20px);
  transition-delay: calc(var(--kamp-stagger, 0) * 70ms);
}

/* line_reveal — red accent bar */
body.kamp-anim--line_reveal .kamp-reveal {
  transform: translateY(12px);
  box-shadow: inset 0 0 0 0 transparent;
}
body.kamp-anim--line_reveal .kamp-reveal.is-inview {
  animation: kamp-line-reveal 0.65s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes kamp-line-reveal {
  from {
    opacity: 0;
    transform: translateY(12px);
    box-shadow: inset 4px 0 0 0 transparent;
  }
  to {
    opacity: 1;
    transform: none;
    box-shadow: inset 4px 0 0 0 var(--kamp-red, #c8102e);
  }
}

/* scale_in */
body.kamp-anim--scale_in .kamp-reveal {
  transform: scale(0.96);
  filter: blur(2px);
}
body.kamp-anim--scale_in .kamp-reveal.is-inview {
  transform: none;
  filter: none;
}

/* minimal — only hero card motion (or none under reduced) */
body.kamp-anim--minimal .kamp-reveal {
  opacity: 1;
  transform: none;
  transition: none;
}

@media (prefers-reduced-motion: reduce) {
  .kamp-js .kamp-reveal,
  body.kamp-anim--fade_up .kamp-reveal,
  body.kamp-anim--soft_slide .kamp-reveal,
  body.kamp-anim--stagger_cards .kamp-reveal,
  body.kamp-anim--line_reveal .kamp-reveal,
  body.kamp-anim--scale_in .kamp-reveal {
    opacity: 1;
    transform: none;
    filter: none;
    transition: none;
    animation: none;
    box-shadow: none;
  }
}

@media (max-width: 899px) {
  .kamp-js .kamp-reveal,
  body.kamp-anim--fade_up .kamp-reveal,
  body.kamp-anim--soft_slide .kamp-reveal,
  body.kamp-anim--stagger_cards .kamp-reveal,
  body.kamp-anim--line_reveal .kamp-reveal,
  body.kamp-anim--scale_in .kamp-reveal,
  .kamp-reveal,
  .kamp-anim--line_reveal .kamp-reveal,
  .kamp-anim--line_reveal .kamp-reveal.is-inview {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    box-shadow: none !important;
    animation: none !important;
    transition: none !important;
  }
}


/* —— K+ Hero FX + page anims (1.0.34) —— */
.kamp-page-hero { position: relative; }
.kamp-page-hero__fx {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
}
.kamp-page-hero__fx--dust {
  width: 100%;
  height: 100%;
  display: block;
}
.kamp-page-hero__card,
.kamp-page-hero__inner { position: relative; z-index: 2; }

.kamp-cta-band--dark { background: var(--kamp-dark, #0f1113); }
.kamp-cta-band--red { background: var(--kamp-red, #c8102e); }
.kamp-rail-card--right-rail { flex-direction: row-reverse; }
.kamp-page-hero--center .kamp-page-hero__card { text-align: center; }
.kamp-page-hero--center .kamp-page-hero__card .kamp-page-hero__lead,
.kamp-page-hero--center .kamp-page-hero__card .kamp-page-hero__lead > p,
.kamp-page-hero--center .kamp-page-hero__card .kamp-page-hero__prose,
.kamp-page-hero--center .kamp-page-hero__card .kamp-page-hero__prose p {
  text-align: left;
  text-justify: auto;
}
.kamp-page-hero--center .kamp-page-hero__grid { grid-template-columns: 1fr; justify-items: center; }
.kamp-page-hero--stack .kamp-page-hero__grid { grid-template-columns: 1fr; }

.kamp-reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.55s ease, transform 0.55s ease;
}
.kamp-reveal.is-inview {
  opacity: 1;
  transform: none;
}
.kamp-anim--soft_slide .kamp-reveal { transform: translateX(-16px); }
.kamp-anim--soft_slide .kamp-reveal.is-inview { transform: none; }
.kamp-anim--stagger_cards .kamp-reveal {
  transition-delay: calc(var(--kamp-reveal-i, 0) * 0.06s);
}
.kamp-anim--line_reveal .kamp-reveal {
  transform: none;
  box-shadow: inset 0 0 0 0 var(--kamp-red, #c8102e);
}
.kamp-anim--line_reveal .kamp-reveal.is-inview {
  box-shadow: inset 3px 0 0 0 var(--kamp-red, #c8102e);
}
.kamp-anim--scale_in .kamp-reveal { transform: scale(0.97); }
.kamp-anim--scale_in .kamp-reveal.is-inview { transform: none; }
.kamp-anim--minimal .kamp-reveal {
  opacity: 1;
  transform: none;
  transition: none;
}
@media (prefers-reduced-motion: reduce) {
  .kamp-page-hero__fx--fluorescent { animation: none; opacity: 0.35; }
  .kamp-reveal { opacity: 1; transform: none; transition: none; }
}

/* ===== Builder K0–K40: size / layout / SFX ===== */
/* Density = padding + title only. Lead typography is shared (see --kamp-klocek-lead). */
.kamp-klocek--compact { --kamp-klocek-pad: 20px; --kamp-klocek-title: 1.5rem; }
.kamp-klocek--minimal { --kamp-klocek-pad: 28px; --kamp-klocek-title: 1.55rem; }
.kamp-klocek--normal { --kamp-klocek-pad: 48px; --kamp-klocek-title: 1.75rem; }
.kamp-klocek--comfortable { --kamp-klocek-pad: 60px; --kamp-klocek-title: 1.85rem; }
.kamp-klocek--large { --kamp-klocek-pad: 72px; --kamp-klocek-title: 2rem; }
.kamp-klocek--hero { --kamp-klocek-pad: 96px; --kamp-klocek-title: 2.15rem; }
.kamp-klocek--viewport {
  --kamp-klocek-pad: clamp(32px, 6vh, 72px);
  --kamp-klocek-title: clamp(1.5rem, 3vw, 2.15rem);
  box-sizing: border-box;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* Global klocek type: one lead size for all blocks; text S/M/L scales titles only */
.kamp-klocek {
  --kamp-klocek-text-scale: 1;
  --kamp-klocek-lead: 15px;
  --kamp-klocek-title: 1.75rem;
  /* Mobile-first: zero DNA inset — section gutter alone. PC adds tab/text inset below. */
  --kamp-klocek-tab: clamp(0.75rem, 1.2vw, 1.25rem);
  --kamp-klocek-title-inset: 0;
  --kamp-klocek-text-inset: 0;
  /* Odstęp nagłówek → następne pole tekstu (DNA „Jak myślę?”) */
  --kamp-klocek-head-gap: 1rem;
}
@media (min-width: 901px) {
  .kamp-klocek {
    /* Tab DNA: „Jak myślę?” — lekki offset nagłówka; lead z równym L/R */
    --kamp-klocek-title-inset: var(--kamp-klocek-tab);
    --kamp-klocek-text-inset: calc(var(--kamp-klocek-title-inset) + 32px + 12px);
  }
}
.kamp-klocek--text-sm { --kamp-klocek-text-scale: 0.85; }
.kamp-klocek--text-lg { --kamp-klocek-text-scale: 1.15; }
.kamp-klocek .kamp-section__title,
.kamp-section.kamp-klocek .kamp-section__title {
  font-size: calc(var(--kamp-klocek-title, 1.75rem) * var(--kamp-klocek-text-scale, 1));
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  -webkit-hyphens: none;
  -ms-hyphens: none;
}
body.kamp-host .kamp-klocek .kamp-section__lead,
body.kamp-host .kamp-klocek .kamp-process__lead,
body.kamp-host .kamp-klocek .kamp-faq__lead,
.kamp-klocek .kamp-section__lead,
.kamp-klocek .kamp-process__lead,
.kamp-klocek .kamp-cta-band__lead,
.kamp-klocek .kamp-spotlight__lead {
  font-size: var(--kamp-klocek-lead, 15px);
  line-height: 1.6;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  -webkit-hyphens: none;
  -ms-hyphens: none;
}
.kamp-klocek .kamp-cta-band__copy :is(h1, h2, h3) {
  font-size: calc(var(--kamp-klocek-title, 1.75rem) * var(--kamp-klocek-text-scale, 1));
}
.kamp-klocek .kamp-company-contact__title {
  font-size: calc(var(--kamp-klocek-title, 1.75rem) * var(--kamp-klocek-text-scale, 1));
}
.kamp-klocek .kamp-company-contact__text {
  font-size: var(--kamp-klocek-lead, 15px);
}

.kamp-klocek--minimal.kamp-klocek--faq-accordion,
.kamp-klocek--compact.kamp-klocek--faq-accordion { --kamp-klocek-pad: 24px; }
.kamp-klocek--minimal.kamp-klocek--process-steps,
.kamp-klocek--compact.kamp-klocek--process-steps { --kamp-klocek-pad: 28px; }
.kamp-klocek--minimal.kamp-klocek--cta-band,
.kamp-klocek--compact.kamp-klocek--cta-band { --kamp-klocek-pad: 20px; }
.kamp-klocek--minimal.kamp-klocek--think-cards { --kamp-klocek-pad: 32px; }
.kamp-klocek--minimal.kamp-klocek--capabilities-grid { --kamp-klocek-pad: 32px; }
.kamp-klocek--minimal.kamp-klocek--testimonials { --kamp-klocek-pad: 32px; }
.kamp-section.kamp-klocek:not(.kamp-cta-band) {
  padding-top: var(--kamp-klocek-pad, 48px);
  padding-bottom: var(--kamp-klocek-pad, 48px);
}

/* Viewport snap (PC storytelling) — SFX → Motion → Przewijanie co ekran */
:root {
  --kamp-slide-gutter: clamp(20px, 5.5vw, 72px);
  --kamp-slide-pad-y: clamp(20px, 3.5vh, 40px);
}
html:has(body.kamp-snap--all),
html:has(body.kamp-snap--desktop) {
  scroll-behavior: smooth;
}
/*
 * Pierwszy snap = MENU (chrome), nie sam hero.
 * Chrome + hero = 1× vh — align start na chrome pokazuje belkę + hero.
 */
body.kamp-snap .kamp-chrome {
  scroll-snap-align: start;
  scroll-snap-stop: always;
}
body.kamp-snap .kamp-page-hero,
body.kamp-snap .kamp-hero,
body.kamp-snap .kamp-single__hero,
body.kamp-snap .kamp-post-hero,
body.kamp-snap .kamp-page__blocks > .kamp-klocek,
body.kamp-snap .kamp-page__blocks > .kamp-section,
body.kamp-snap .kamp-page--blocks > .kamp-klocek,
body.kamp-snap article.kamp-page > .kamp-klocek {
  scroll-snap-align: start;
  scroll-snap-stop: always;
}
/* Hero tuż pod belką — bez własnego snap (inaczej menu znika przy „powrocie”) */
body.kamp-snap .kamp-main > .kamp-page-hero:first-child,
body.kamp-snap .kamp-main > .kamp-hero:first-child,
body.kamp-snap.kamp-hero-story .kamp-main > .kamp-page-hero:first-child,
body.kamp-snap.kamp-hero-story .kamp-main > .kamp-hero:first-child,
body.kamp-snap.kamp-story .kamp-main > .kamp-page-hero:first-child,
body.kamp-snap.kamp-story .kamp-main > .kamp-hero:first-child,
body.kamp-snap.kamp-portfolio-story .kamp-main > .kamp-page-hero:first-child,
body.kamp-snap.kamp-portfolio-story .kamp-main > .kamp-hero:first-child,
body.kamp-slides .kamp-main > .kamp-page-hero:first-child,
body.kamp-slides .kamp-main > .kamp-hero:first-child {
  scroll-snap-align: none;
  scroll-snap-stop: normal;
}
body.kamp-snap-fill--all .kamp-page__blocks > .kamp-klocek:not(.kamp-cta-band),
body.kamp-snap-fill--all .kamp-page__blocks > .kamp-section:not(.kamp-cta-band),
body.kamp-snap-fill--all .kamp-page--blocks > .kamp-klocek:not(.kamp-cta-band) {
  box-sizing: border-box;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-left: var(--kamp-slide-gutter);
  padding-right: var(--kamp-slide-gutter);
}
body.kamp-snap-fill--selected .kamp-klocek--viewport,
body.kamp-snap-fill--selected .kamp-klocek--hero {
  scroll-snap-align: start;
  scroll-snap-stop: always;
}

/* Slajdy: pack + spill — pełna strona, wycentrowane, marginesy jak slajd */
body.kamp-slides .kamp-page__blocks {
  display: block;
}
body.kamp-slides .kamp-slide {
  box-sizing: border-box;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: var(--kamp-slide-pad-y) var(--kamp-slide-gutter);
  scroll-snap-align: start;
  scroll-snap-stop: always;
}
body.kamp-slides .kamp-slide__inner {
  width: 100%;
  max-width: var(--kamp-max, 1300px);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: clamp(16px, 2.4vh, 32px);
}
body.kamp-slides .kamp-slide .kamp-klocek,
body.kamp-slides .kamp-slide .kamp-section {
  min-height: 0;
  scroll-snap-align: none;
  scroll-snap-stop: normal;
  width: 100%;
}
body.kamp-slides .kamp-page-hero {
  scroll-snap-align: start;
  scroll-snap-stop: always;
}
body.kamp-slides .kamp-main > .kamp-page-hero:first-child,
body.kamp-slides .kamp-main > .kamp-hero:first-child {
  scroll-snap-align: none;
  scroll-snap-stop: normal;
}
/* Stopka = escape zone (snap end, bez always — da się dojść i zostać) */
body.kamp-snap .kamp-footer,
body.kamp-slides .kamp-footer,
.kamp-footer {
  scroll-snap-align: end !important;
  scroll-snap-stop: normal !important;
}
body.kamp-slides .kamp-footer {
  box-sizing: border-box;
  min-height: 0;
  display: block;
  padding-top: var(--kamp-slide-pad-y);
  padding-bottom: var(--kamp-slide-pad-y);
  padding-left: 0;
  padding-right: 0;
}
body.kamp-slides .kamp-footer__bar,
body.kamp-slides .kamp-footer__meta {
  max-width: var(--kamp-max, 1300px);
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--kamp-gutter);
  padding-right: var(--kamp-gutter);
}
/* Ostatni slajd: łatwiej wyjechać do stopki */
body.kamp-slides .kamp-slide.kamp-slide--last {
  scroll-snap-stop: normal;
}
@media (min-width: 900px) {
  html:has(body.kamp-snap--desktop) {
    scroll-snap-type: y proximity;
  }
  html:has(body.kamp-snap--all) {
    scroll-snap-type: y proximity;
  }
  html:has(body.kamp-slides.kamp-snap--desktop),
  html:has(body.kamp-slides.kamp-snap--all) {
    scroll-snap-type: y mandatory;
  }
}
@media (max-width: 899px) {
  html:has(body.kamp-snap--desktop) {
    scroll-snap-type: none;
  }
  body.kamp-snap--desktop.kamp-snap-fill--all .kamp-page__blocks > .kamp-klocek,
  body.kamp-snap--desktop.kamp-snap-fill--all .kamp-page__blocks > .kamp-section {
    min-height: 0;
    display: block;
    padding-left: 0;
    padding-right: 0;
  }
  body.kamp-snap--desktop.kamp-slides .kamp-slide {
    min-height: 0;
    display: block;
    padding: 0;
    scroll-snap-align: none;
  }
  body.kamp-snap--desktop.kamp-slides .kamp-slide__inner {
    gap: var(--kamp-section-gap, 32px);
  }
  body.kamp-snap--desktop.kamp-slides .kamp-footer {
    min-height: 0;
    display: block;
    padding-left: 0;
    padding-right: 0;
    scroll-snap-align: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  html:has(body.kamp-snap) {
    scroll-snap-type: none !important;
    scroll-behavior: auto !important;
  }
}

/* Portfolio story: Hero (per kategoria) ↔ siatka projektów — tylko gdy snap włączony */
body.kamp-snap.kamp-portfolio-story .kamp-chrome {
  scroll-snap-align: start;
  scroll-snap-stop: always;
}
body.kamp-snap.kamp-portfolio-story .kamp-page-hero {
  scroll-snap-align: start;
  scroll-snap-stop: always;
}
body.kamp-snap.kamp-portfolio-story .kamp-main > .kamp-page-hero:first-child {
  scroll-snap-align: none;
  scroll-snap-stop: normal;
}
body.kamp-snap.kamp-portfolio-story #kamp-projects.kamp-section--viewport,
body.kamp-snap #kamp-projects {
  box-sizing: border-box;
  min-height: 100vh;
  min-height: 100dvh;
  scroll-snap-align: start;
  scroll-snap-stop: always;
  padding-top: 28px;
}
body.kamp-snap.kamp-snap-fill--hero #kamp-projects,
body.kamp-snap.kamp-snap-fill--hero #kamp-projects.kamp-section--viewport {
  scroll-snap-stop: normal;
  min-height: 0;
}
@media (min-width: 900px) {
  html:has(body.kamp-snap--desktop.kamp-portfolio-story),
  html:has(body.kamp-snap--all.kamp-portfolio-story) {
    scroll-snap-type: y proximity;
    scroll-behavior: smooth;
  }
}

/* Hero-first (global): pierwszy ekran = MENU+Hero, potem treść */
body.kamp-hero-story .kamp-chrome,
body.kamp-story .kamp-chrome {
  scroll-snap-align: start;
  scroll-snap-stop: always;
}
body.kamp-hero-story .kamp-page-hero,
body.kamp-hero-story .kamp-hero,
body.kamp-hero-story .kamp-single__hero,
body.kamp-hero-story .kamp-post-hero,
body.kamp-story .kamp-page-hero,
body.kamp-story .kamp-hero,
body.kamp-story .kamp-single__hero,
body.kamp-story .kamp-post-hero {
  scroll-snap-align: start;
  scroll-snap-stop: always;
}
body.kamp-hero-story .kamp-main > .kamp-page-hero:first-child,
body.kamp-hero-story .kamp-main > .kamp-hero:first-child,
body.kamp-story .kamp-main > .kamp-page-hero:first-child,
body.kamp-story .kamp-main > .kamp-hero:first-child {
  scroll-snap-align: none;
  scroll-snap-stop: normal;
}
body.kamp-hero-story #kamp-content,
body.kamp-hero-story #kamp-projects,
body.kamp-hero-story .kamp-single__body,
body.kamp-hero-story .kamp-post-body,
body.kamp-hero-story .kamp-journal-archive,
body.kamp-story.kamp-snap-fill--hero #kamp-content,
body.kamp-story.kamp-snap-fill--hero #kamp-projects,
body.kamp-story.kamp-snap-fill--hero .kamp-single__body,
body.kamp-story.kamp-snap-fill--hero .kamp-post-body,
body.kamp-story.kamp-snap-fill--hero .kamp-journal-archive {
  scroll-snap-align: start;
  scroll-snap-stop: normal;
}
body.kamp-snap-fill--hero .kamp-page__blocks > .kamp-klocek,
body.kamp-snap-fill--hero .kamp-page__blocks > .kamp-section {
  scroll-snap-align: none;
  scroll-snap-stop: normal;
  min-height: 0;
}
@media (min-width: 900px) {
  html:has(body.kamp-snap--desktop.kamp-snap-fill--hero),
  html:has(body.kamp-snap--all.kamp-snap-fill--hero) {
    scroll-snap-type: y proximity;
    scroll-behavior: smooth;
  }
}
@media (max-width: 899px) {
  html:has(body.kamp-snap--all.kamp-snap-fill--hero) {
    scroll-snap-type: y proximity;
    scroll-behavior: smooth;
  }
}

/* Snap: belka + Hero = 1 ekran; glass box 5px pod menu — wszystkie typy Hero */
body.kamp-snap {
  --kamp-hero-box-gap: 5px;
}
body.kamp-snap .kamp-page-hero,
body.kamp-snap .kamp-hero,
body.kamp-snap .kamp-single__hero,
body.kamp-snap .kamp-post-hero {
  --kamp-hero-min-height: calc(100svh - var(--kamp-header-height) - env(safe-area-inset-top, 0px));
  min-height: calc(100svh - var(--kamp-header-height) - env(safe-area-inset-top, 0px));
  box-sizing: border-box;
}
body.kamp-snap:not(.kamp-nav-sticky) .kamp-main > .kamp-page-hero:first-child,
body.kamp-snap:not(.kamp-nav-sticky) .kamp-main > .kamp-hero:first-child {
  margin-top: 0;
  --kamp-hero-pad-top: var(--kamp-hero-box-gap);
}
body.kamp-snap.kamp-nav-sticky .kamp-page-hero,
body.kamp-snap.kamp-nav-sticky .kamp-hero {
  --kamp-hero-min-height: 100svh;
  min-height: 100svh;
  --kamp-hero-pad-top: calc(var(--kamp-header-offset) + var(--kamp-hero-box-gap));
}
body.kamp-snap.kamp-nav-sticky.kamp-host .kamp-main:has(> .kamp-page-hero:first-child),
body.kamp-snap.kamp-nav-sticky.kamp-host .kamp-main:has(> .kamp-hero:first-child) {
  padding-top: 0;
}
body.kamp-snap.kamp-nav-sticky.kamp-host .kamp-main > .kamp-page-hero:first-child,
body.kamp-snap.kamp-nav-sticky.kamp-host .kamp-main > .kamp-hero:first-child {
  margin-top: 0;
}
@media (max-width: 1080px) {
  body.kamp-snap:not(.kamp-nav-sticky) .kamp-main > .kamp-page-hero:first-child,
  body.kamp-snap:not(.kamp-nav-sticky) .kamp-main > .kamp-hero:first-child {
    --kamp-hero-pad-top: var(--kamp-hero-box-gap);
    margin-top: 0;
  }
}

.kamp-portfolio-nav {
  position: static;
  z-index: auto;
  background: #fff;
  border-bottom: 1px solid rgba(15, 17, 19, 0.12);
  box-shadow: none;
}
.kamp-portfolio-nav__inner {
  max-width: var(--kamp-max, 1200px);
  margin: 0 auto;
  padding: 12px var(--kamp-gutter, 20px);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
}
.kamp-portfolio-nav__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 0 16px;
  border: 1px solid rgba(15, 17, 19, 0.16);
  border-radius: 0;
  background: #fff;
  color: #0f1113 !important;
  font-family: var(--kamp-font);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none !important;
  transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}
.kamp-portfolio-nav__link:hover {
  border-color: var(--kamp-red, #c8102e);
  color: var(--kamp-red, #c8102e) !important;
  background: #fff;
}
/* Beat host .kamp-section + klocek padding so category swaps keep one gap */
body.kamp-host .kamp-section.kamp-section--projects:not(.kamp-cta-band),
body.kamp-host .kamp-section.kamp-projects-grid:not(.kamp-cta-band),
body.kamp-host .kamp-section.kamp-klocek.kamp-projects-grid:not(.kamp-cta-band),
.kamp-section.kamp-section--projects,
.kamp-section.kamp-projects-grid {
  max-width: none;
  width: 100%;
  margin: 0;
  padding: 10px 0 32px;
}
.kamp-projects-context {
  max-width: var(--kamp-max, 1200px);
  margin: 0 auto 2px;
  padding: 2px var(--kamp-gutter, 20px) 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 14px;
}
.kamp-projects-context__title {
  margin: 0;
  font-family: var(--kamp-font);
  font-size: clamp(1.35rem, 2.6vw, 1.75rem);
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1.15;
  color: var(--kamp-ink, #0f1113);
}
.kamp-projects-context__meta {
  margin: 0;
  font-family: var(--kamp-font);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--kamp-red, #c8102e);
}
.kamp-projects-grid > .kamp-section__title,
.kamp-projects-grid > .kamp-section__title-row {
  max-width: var(--kamp-max, 1200px);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--kamp-gutter, 20px);
  padding-right: var(--kamp-gutter, 20px);
  margin-bottom: 2px;
}
.kamp-projects-grid > .kamp-section__lead {
  max-width: var(--kamp-max, 1200px);
  margin: 0 auto 2px;
  padding-left: var(--kamp-gutter, 20px);
  padding-right: var(--kamp-gutter, 20px);
  font-family: var(--kamp-font);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--kamp-red, #c8102e);
}
.kamp-section--projects > .kamp-projects-board,
.kamp-projects-grid > .kamp-projects-board {
  max-width: var(--kamp-max, 1200px);
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 16px;
  padding-left: var(--kamp-gutter, 20px);
  padding-right: var(--kamp-gutter, 20px);
}
.kamp-section--projects > .kamp-grid,
.kamp-projects-grid > .kamp-grid {
  max-width: var(--kamp-max, 1200px);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--kamp-gutter, 20px);
  padding-right: var(--kamp-gutter, 20px);
}
.kamp-portfolio-nav__link.is-active,
.kamp-portfolio-nav__link[aria-current="page"] {
  background: var(--kamp-red, #c8102e);
  border-color: var(--kamp-red, #c8102e);
  color: #fff !important;
  box-shadow: inset 0 -3px 0 rgba(0, 0, 0, 0.18);
}
.kamp-portfolio-nav__link.is-active:hover,
.kamp-portfolio-nav__link[aria-current="page"]:hover {
  color: #fff !important;
  background: #a50d25;
  border-color: #a50d25;
}
.kamp-projects-slot {
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.kamp-projects-slot > .kamp-card--project {
  flex: 1 1 auto;
  width: 100%;
}
.kamp-projects-slot[hidden] {
  display: none !important;
}
.kamp-projects-more {
  display: flex;
  justify-content: center;
  margin: 28px 0 8px;
  padding: 0 var(--kamp-gutter, 20px);
}
.kamp-projects-more__btn {
  min-width: min(100%, 240px);
  justify-content: center;
}
.kamp-projects-toolbar {
  display: none;
}
body.kamp-host #kamp-projects.kamp-section,
body.kamp-host article#kamp-projects {
  background: var(--kamp-content-bg, #fff);
}
html.kamp-portfolio-loading [data-kamp-projects-panel] {
  opacity: 0.45;
  pointer-events: none;
  transition: opacity 0.18s ease;
}
@media (max-width: 900px) {
  .kamp-portfolio-nav__inner {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .kamp-portfolio-nav__inner::-webkit-scrollbar { display: none; }
  .kamp-portfolio-nav__link {
    flex: 0 0 auto;
    min-height: 36px;
    padding: 0 12px;
    font-size: 11px;
  }
}
.kamp-page-hero__scroll-cue {
  text-decoration: none;
  color: inherit;
}
.kamp-section.kamp-klocek { padding-block: var(--kamp-klocek-pad, 48px); }

/* List limits: hide overflow items on mobile when countMobile < desktop */
@media (max-width: 900px) {
  .kamp-item--beyond-mobile {
    display: none !important;
  }
}

/* Projects grid layouts */
.kamp-grid--projects-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.kamp-grid--projects-list .kamp-area,
.kamp-grid--projects-list .kamp-rail-card {
  width: 100%;
  max-width: none;
}
.kamp-grid--projects-masonry {
  display: block;
  column-count: 3;
  column-gap: 20px;
}
.kamp-grid--projects-masonry.kamp-grid--cols-2 { column-count: 2; }
.kamp-grid--projects-masonry.kamp-grid--cols-4 { column-count: 4; }
.kamp-grid--projects-masonry > * {
  break-inside: avoid;
  margin-bottom: 20px;
  display: block;
  width: 100%;
}
@media (max-width: 900px) {
  .kamp-grid--projects-masonry,
  .kamp-grid--projects-masonry.kamp-grid--cols-2,
  .kamp-grid--projects-masonry.kamp-grid--cols-4 {
    column-count: 1;
  }
}

/* Project related layouts */
.kamp-project-related--strip .kamp-project-related__list,
.kamp-project-related--strip .kamp-projects-grid {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: 8px;
}
.kamp-project-related--strip .kamp-card--project,
.kamp-project-related--strip .kamp-area {
  flex: 0 0 min(280px, 80vw);
  scroll-snap-align: start;
}
.kamp-project-related--list .kamp-project-related__list,
.kamp-project-related--list .kamp-projects-grid {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.kamp-project-related--grid .kamp-project-related__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
@media (max-width: 900px) {
  .kamp-project-related--grid .kamp-project-related__list {
    grid-template-columns: 1fr;
  }
}

/* Segment pills layouts */
.kamp-segment-pills--row {
  justify-content: flex-start;
}
.kamp-segment-pills--wrap-center {
  justify-content: center;
}
.kamp-segment-pills--compact {
  gap: 6px;
}
.kamp-segment-pills--compact a,
.kamp-segment-pills--compact .kamp-segment-pills__link {
  padding: 6px 10px;
  font-size: 0.85rem;
}

/* Archive teaser layouts — see equal-height card rules near .kamp-journal */

/* Spotlight stacked */
.kamp-spotlight__card--stacked,
.kamp-spotlight--stacked .kamp-spotlight__card,
.kamp-section.kamp-spotlight--layout-stacked .kamp-spotlight__card {
  display: flex;
  flex-direction: column;
  gap: 0;
  grid-template-columns: none;
}
.kamp-spotlight__card--stacked .kamp-spotlight__media {
  min-height: 280px;
}
.kamp-klocek .kamp-section__title {
  font-size: calc(var(--kamp-klocek-title, 1.75rem) * var(--kamp-klocek-text-scale, 1));
}
.kamp-section.kamp-klocek { padding-block: var(--kamp-klocek-pad, 48px); }

/* Fluorescent tube under bottom edge of hero card / boxes */
.kamp-page-hero {
  position: relative;
  isolation: isolate;
  --kamp-sfx-i: 0.68;
}
.kamp-page-hero__atmosphere {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  overflow: hidden;
}
.kamp-page-hero__card {
  position: relative;
  z-index: 2;
  overflow: visible;
  --kamp-sfx-i: 0.68;
}
.kamp-page-hero__after {
  position: relative;
  z-index: 3;
}
.kamp-page-hero__atmosphere .kamp-page-hero__fx,
.kamp-page-hero__atmosphere .kamp-sfx {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
/* Hero atmosphere: fog floor — low edge, drift right → left */
.kamp-sfx--fog-floor.kamp-sfx--surface-hero::before,
.kamp-page-hero.kamp-sfx--fog-floor::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 200%;
  height: calc(min(18vh, 168px) * (0.55 + 0.9 * var(--kamp-sfx-p2, 0.5)));
  z-index: 0;
  pointer-events: none;
  background:
    linear-gradient(180deg, transparent 0%, rgba(235, 240, 248, calc(0.12 * var(--kamp-sfx-i, 0.68))) 35%, rgba(220, 228, 240, calc(0.42 * var(--kamp-sfx-i, 0.68))) 100%),
    radial-gradient(ellipse 40% 90% at 15% 90%, rgba(255, 255, 255, calc(0.28 * var(--kamp-sfx-i, 0.68))), transparent 70%),
    radial-gradient(ellipse 35% 85% at 55% 95%, rgba(210, 220, 235, calc(0.22 * var(--kamp-sfx-i, 0.68))), transparent 68%),
    radial-gradient(ellipse 40% 90% at 90% 88%, rgba(255, 255, 255, calc(0.24 * var(--kamp-sfx-i, 0.68))), transparent 70%),
    radial-gradient(ellipse 40% 90% at 115% 90%, rgba(255, 255, 255, calc(0.28 * var(--kamp-sfx-i, 0.68))), transparent 70%),
    radial-gradient(ellipse 35% 85% at 155% 95%, rgba(210, 220, 235, calc(0.22 * var(--kamp-sfx-i, 0.68))), transparent 68%),
    radial-gradient(ellipse 40% 90% at 190% 88%, rgba(255, 255, 255, calc(0.24 * var(--kamp-sfx-i, 0.68))), transparent 70%);
  filter: blur(calc(10px + 8px * var(--kamp-sfx-i, 0.68)));
  opacity: calc((0.5 + 0.4 * var(--kamp-sfx-i, 0.68)) * (0.45 + 0.9 * var(--kamp-sfx-p1, 0.5)));
  animation: kamp-fog-drift-rtl 32s linear infinite;
}
.kamp-sfx--fog-floor.kamp-sfx--surface-hero::after,
.kamp-page-hero.kamp-sfx--fog-floor::after {
  content: "";
  position: absolute;
  left: -10%;
  bottom: 0;
  width: 220%;
  height: calc(min(12vh, 110px) * (0.55 + 0.9 * var(--kamp-sfx-p2, 0.5)));
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 28% 100% at 20% 100%, rgba(255, 255, 255, calc(0.18 * var(--kamp-sfx-i, 0.68))), transparent 72%),
    radial-gradient(ellipse 32% 100% at 48% 100%, rgba(200, 210, 230, calc(0.16 * var(--kamp-sfx-i, 0.68))), transparent 70%),
    radial-gradient(ellipse 28% 100% at 75% 100%, rgba(255, 255, 255, calc(0.14 * var(--kamp-sfx-i, 0.68))), transparent 72%),
    radial-gradient(ellipse 28% 100% at 120% 100%, rgba(255, 255, 255, calc(0.18 * var(--kamp-sfx-i, 0.68))), transparent 72%),
    radial-gradient(ellipse 32% 100% at 148% 100%, rgba(200, 210, 230, calc(0.16 * var(--kamp-sfx-i, 0.68))), transparent 70%),
    radial-gradient(ellipse 28% 100% at 175% 100%, rgba(255, 255, 255, calc(0.14 * var(--kamp-sfx-i, 0.68))), transparent 72%);
  filter: blur(14px);
  opacity: calc((0.35 + 0.4 * var(--kamp-sfx-i, 0.68)) * (0.45 + 0.9 * var(--kamp-sfx-p1, 0.5)));
  animation: kamp-fog-drift-rtl 48s linear infinite;
  animation-direction: reverse;
}
@keyframes kamp-fog-drift-rtl {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* Tube on bottom edge of glass — 80% szerokości boxa, wyśrodkowana */
.kamp-page-hero__fx--fluorescent,
.kamp-sfx--fluorescent.kamp-sfx--surface-box > .kamp-page-hero__fx--fluorescent,
.kamp-sfx--fluorescent.kamp-sfx--surface-box.kamp-page-hero__fx--fluorescent,
span.kamp-page-hero__fx--fluorescent,
.kamp-sfx--fluorescent.kamp-sfx--surface-section {
  position: absolute;
  left: var(--kamp-tube-left, 10%);
  width: var(--kamp-tube-width, 80%);
  right: auto;
  top: auto;
  bottom: -1px;
  inset: unset;
  height: 3px;
  border-radius: 2px;
  pointer-events: none;
  z-index: 5;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(255, 255, 255, 0.38) 10%,
    rgba(255, 255, 255, calc(0.72 * var(--kamp-sfx-i, 0.68))) 50%,
    rgba(255, 255, 255, 0.38) 90%,
    transparent 100%);
  box-shadow: none;
  mix-blend-mode: screen;
  opacity: calc((0.55 + 0.45 * var(--kamp-fluoro-glow, 0.72)) * (0.85 + 0.15 * var(--kamp-sfx-i, 0.68)));
  animation: kamp-fluoro-flicker var(--kamp-fluoro-flicker-dur, 5.4s) steps(1, end) infinite;
  transition: opacity 0.45s ease, box-shadow 0.55s ease;
}
.kamp-page-hero__card > .kamp-page-hero__fx--fluorescent,
.kamp-sfx--fluorescent.kamp-sfx--surface-box.kamp-page-hero__fx--fluorescent {
  height: 1px;
  bottom: 0;
  border-radius: 1px;
  animation: kamp-fluoro-flicker-tube var(--kamp-fluoro-flicker-dur, 5.4s) steps(1, end) infinite;
  filter: none;
}

/* Cast-down: bez belki/tuby — zostaje snop (wash + penumbra) poniżej karty */
.kamp-sfx--cast-down.kamp-sfx--surface-box::before,
.kamp-sfx--cast-down.kamp-sfx--surface-box::after {
  content: none;
  display: none;
}
.kamp-page-hero--box-cast-down .kamp-page-hero__card > .kamp-page-hero__fx--cast-down {
  display: none !important;
}

/*
 * Cast wash — snop od dolnych rogów boxa w dół (bez twardego clip-path).
 * Miękkie boki: radial ellipse + blur + warstwa penumbra.
 */
.kamp-page-hero__cast-penumbra,
.kamp-page-hero__cast-wash {
  position: absolute;
  left: 0;
  right: 0;
  top: var(--kamp-beam-card-bottom, calc(var(--kamp-card-top, 18%) + var(--kamp-card-height, 40%)));
  bottom: 0;
  width: 100%;
  height: auto;
  pointer-events: none;
  clip-path: none;
  -webkit-mask-image: none;
  mask-image: none;
}
.kamp-page-hero__cast-penumbra {
  --fluoro-g: var(--kamp-fluoro-glow, 0.72);
  --fluoro-s: var(--kamp-fluoro-soft, 0.6);
  --lr: var(--kamp-sfx-light-rgb, 255, 246, 230);
  z-index: 1;
  background:
    radial-gradient(
      ellipse
        calc(var(--kamp-beam-narrow-w, var(--kamp-card-width, 62%)) * 0.52 + var(--kamp-beam-flare, 22vw) * (0.95 + 0.55 * var(--fluoro-s)))
        calc(100% + 48px)
      at
        var(--kamp-beam-origin-x, calc(var(--kamp-card-left, 19%) + var(--kamp-card-width, 62%) * 0.5))
        0px,
      rgba(var(--lr), calc(0.26 * var(--fluoro-g) * var(--kamp-sfx-i, 0.68))) 0%,
      rgba(var(--lr), calc(0.11 * var(--fluoro-g) * var(--kamp-sfx-i, 0.68))) 32%,
      rgba(var(--lr), calc(0.035 * var(--fluoro-g) * var(--kamp-sfx-i, 0.68))) 54%,
      transparent 72%
    );
  filter: blur(calc(24px + 58px * var(--fluoro-s)));
  mix-blend-mode: screen;
  opacity: calc(0.38 + 0.42 * var(--fluoro-s));
  animation: kamp-fluoro-flicker-soft var(--kamp-fluoro-flicker-dur, 5.4s) steps(1, end) infinite;
  transition: opacity 0.55s ease, filter 0.55s ease;
}
.kamp-page-hero__cast-wash {
  --fluoro-g: var(--kamp-fluoro-glow, 0.72);
  --fluoro-s: var(--kamp-fluoro-soft, 0.6);
  --lr: var(--kamp-sfx-light-rgb, 255, 246, 230);
  z-index: 2;
  background:
    radial-gradient(
      ellipse
        calc(var(--kamp-beam-narrow-w, var(--kamp-card-width, 62%)) * 0.5 + var(--kamp-beam-flare, 18vw) * (0.65 + 0.35 * var(--fluoro-s)))
        calc(100% + 24px)
      at
        var(--kamp-beam-origin-x, calc(var(--kamp-card-left, 19%) + var(--kamp-card-width, 62%) * 0.5))
        0px,
      rgba(var(--lr), calc(0.58 * var(--fluoro-g) * var(--kamp-sfx-i, 0.68))) 0%,
      rgba(var(--lr), calc(0.34 * var(--fluoro-g) * var(--kamp-sfx-i, 0.68))) 20%,
      rgba(var(--lr), calc(0.14 * var(--fluoro-g) * var(--kamp-sfx-i, 0.68))) 42%,
      rgba(var(--lr), calc(0.04 * var(--fluoro-g) * var(--kamp-sfx-i, 0.68))) 58%,
      transparent 74%
    ),
    linear-gradient(
      180deg,
      rgba(var(--lr), calc(0.32 * var(--fluoro-g) * var(--kamp-sfx-i, 0.68))) 0%,
      rgba(var(--lr), calc(0.1 * var(--fluoro-g) * var(--kamp-sfx-i, 0.68))) 44%,
      transparent 78%
    );
  filter: blur(calc(8px + 22px * var(--fluoro-s)));
  mix-blend-mode: screen;
  opacity: calc(0.58 + 0.42 * var(--fluoro-g));
  animation: kamp-fluoro-flicker-soft var(--kamp-fluoro-flicker-dur, 5.4s) steps(1, end) infinite;
  transition: opacity 0.55s ease, filter 0.55s ease;
}
.kamp-page-hero__cast-wash::before {
  content: "";
  position: absolute;
  left: calc(var(--kamp-beam-origin-x, 50%) - var(--kamp-beam-narrow-w, 200px) * 0.34);
  top: 0;
  width: calc(var(--kamp-beam-narrow-w, 200px) * 0.68);
  height: min(22%, 96px);
  pointer-events: none;
  background: radial-gradient(
    ellipse 100% 100% at 50% 0%,
    rgba(var(--kamp-sfx-light-rgb, 255, 246, 230), calc(0.88 * var(--fluoro-g) * var(--kamp-sfx-i, 0.68))) 0%,
    rgba(var(--kamp-sfx-light-rgb, 255, 246, 230), calc(0.35 * var(--fluoro-g) * var(--kamp-sfx-i, 0.68))) 55%,
    transparent 78%
  );
  filter: blur(calc(3px + 8px * var(--fluoro-s)));
  mix-blend-mode: screen;
  opacity: calc(0.55 + 0.35 * var(--fluoro-g));
}
.kamp-page-hero--box-light .kamp-page-hero__card {
  position: relative;
  z-index: 4;
  border-left: 5px solid var(--kamp-hero-side);
  border-right: 5px solid var(--kamp-hero-side);
  box-shadow:
    0 0 18px rgba(200, 16, 46, 0.18),
    0 24px 60px rgba(0, 0, 0, 0.4);
}
/* Świetlówka (fluorescent) — usunięta z produktu */
.kamp-page-hero__fx--fluorescent,
.kamp-sfx--fluorescent,
.kamp-sfx--fluorescent.kamp-sfx--surface-box,
.kamp-sfx--fluorescent.kamp-sfx--surface-hero,
.kamp-sfx--fluorescent.kamp-sfx--surface-section {
  display: none !important;
}
.kamp-page-hero--box-cast-down .kamp-page-hero__card {
  isolation: isolate;
}
.kamp-page-hero--box-light .kamp-page-hero__media,
.kamp-page-hero--box-light .kamp-page-hero__lead {
  position: relative;
  z-index: 2;
}
.kamp-page-hero__card > .kamp-page-hero__box-fx--internal {
  inset: 0;
  width: auto;
  height: auto;
}

/* Cast-down: snop od dolnej krawędzi boxa — radial bez masek (jak ~15:25) */
.kamp-page-hero--box-cast-down .kamp-page-hero__atmosphere {
  overflow: hidden;
}
@keyframes kamp-fluoro-flicker-tube {
  0%, 100% { opacity: calc((0.55 + 0.45 * var(--kamp-fluoro-glow, 0.72)) * (0.85 + 0.15 * var(--kamp-sfx-i, 0.68))); }
  4% { opacity: calc((0.55 + 0.45 * var(--kamp-fluoro-glow, 0.72)) * (0.85 + 0.15 * var(--kamp-sfx-i, 0.68)) - 0.28 * var(--kamp-fluoro-flicker, 0.62)); }
  5.5% { opacity: calc((0.55 + 0.45 * var(--kamp-fluoro-glow, 0.72)) * (0.85 + 0.15 * var(--kamp-sfx-i, 0.68)) + 0.12 * var(--kamp-fluoro-flicker, 0.62)); }
  7% { opacity: calc((0.55 + 0.45 * var(--kamp-fluoro-glow, 0.72)) * (0.85 + 0.15 * var(--kamp-sfx-i, 0.68)) - 0.2 * var(--kamp-fluoro-flicker, 0.62)); }
  8% { opacity: calc((0.55 + 0.45 * var(--kamp-fluoro-glow, 0.72)) * (0.85 + 0.15 * var(--kamp-sfx-i, 0.68)) + 0.1 * var(--kamp-fluoro-flicker, 0.62)); }
  41% { opacity: calc((0.55 + 0.45 * var(--kamp-fluoro-glow, 0.72)) * (0.85 + 0.15 * var(--kamp-sfx-i, 0.68)) - 0.24 * var(--kamp-fluoro-flicker, 0.62)); }
  42.5% { opacity: calc((0.55 + 0.45 * var(--kamp-fluoro-glow, 0.72)) * (0.85 + 0.15 * var(--kamp-sfx-i, 0.68)) + 0.14 * var(--kamp-fluoro-flicker, 0.62)); }
  71% { opacity: calc((0.55 + 0.45 * var(--kamp-fluoro-glow, 0.72)) * (0.85 + 0.15 * var(--kamp-sfx-i, 0.68)) - 0.3 * var(--kamp-fluoro-flicker, 0.62)); }
  72% { opacity: calc((0.55 + 0.45 * var(--kamp-fluoro-glow, 0.72)) * (0.85 + 0.15 * var(--kamp-sfx-i, 0.68)) + 0.08 * var(--kamp-fluoro-flicker, 0.62)); }
}
/* Outside the beam: dim aligned to cone from card bottom corners */
.kamp-page-hero__light-dim {
  --fluoro-g: var(--kamp-fluoro-glow, 0.72);
  --fluoro-s: var(--kamp-fluoro-soft, 0.6);
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(
      ellipse
        calc(var(--kamp-beam-narrow-w, var(--kamp-card-width, 62%)) * 0.54 + var(--kamp-beam-flare, 22vw) * (0.88 + 0.48 * var(--fluoro-s)))
        calc((100% - var(--kamp-beam-card-bottom, 40%)) * (0.92 + 0.22 * var(--fluoro-s)) + 32px)
      at
        var(--kamp-beam-origin-x, calc(var(--kamp-card-left, 19%) + var(--kamp-card-width, 62%) * 0.5))
        var(--kamp-beam-card-bottom, calc(var(--kamp-card-top, 18%) + var(--kamp-card-height, 40%))),
      transparent 0%,
      transparent calc(34% + 16% * var(--fluoro-s)),
      rgba(0, 0, 0, calc((0.12 + 0.12 * var(--fluoro-g)) * (1 - 0.38 * var(--fluoro-s)))) calc(46% + 12% * var(--fluoro-s)),
      rgba(0, 0, 0, calc((0.26 + 0.24 * var(--fluoro-g)) * (1 - 0.24 * var(--fluoro-s)))) calc(62% + 10% * var(--fluoro-s)),
      rgba(0, 0, 0, calc((0.36 + 0.28 * var(--fluoro-g)) * (1 - 0.1 * var(--fluoro-s)))) 100%
    );
  animation: kamp-fluoro-dim-flicker var(--kamp-fluoro-flicker-dur, 5.4s) steps(1, end) infinite;
  transition: opacity 0.55s ease;
}

/* Box-light: no atmosphere bleed above card (fixes top-left glow artifact) */
.kamp-page-hero--box-light .kamp-page-hero__light-dim {
  clip-path: polygon(
    0 var(--kamp-beam-card-bottom, 40%),
    100% var(--kamp-beam-card-bottom, 40%),
    100% 100%,
    0 100%
  );
}
.kamp-page-hero--box-light .kamp-sfx--fog-floor.kamp-sfx--surface-hero::before,
.kamp-page-hero--box-light .kamp-sfx--fog-floor.kamp-sfx--surface-hero::after {
  clip-path: polygon(0 52%, 100% 52%, 100% 100%, 0 100%);
}
.kamp-page-hero--box-light .kamp-page-hero__atmosphere > canvas.kamp-page-hero__fx:not(.kamp-page-hero__fx--moths) {
  clip-path: polygon(
    0 var(--kamp-beam-card-bottom, 40%),
    100% var(--kamp-beam-card-bottom, 40%),
    100% 100%,
    0 100%
  );
}

.kamp-sfx--temp-warm { --kamp-sfx-light-rgb: 255, 208, 160; }
.kamp-sfx--temp-neutral { --kamp-sfx-light-rgb: 255, 246, 230; }
.kamp-sfx--temp-cold { --kamp-sfx-light-rgb: 170, 210, 255; }

/* Flicker regulation / off */
.kamp-page-hero--fluoro-flicker-off .kamp-page-hero__fx--fluorescent,
.kamp-page-hero--fluoro-flicker-off .kamp-page-hero__fx--cast-down,
.kamp-page-hero--fluoro-flicker-off .kamp-sfx--cast-down.kamp-sfx--surface-box::before,
.kamp-page-hero--fluoro-flicker-off .kamp-page-hero__cast-wash,
.kamp-page-hero--fluoro-flicker-off .kamp-page-hero__cast-penumbra,
.kamp-page-hero--fluoro-flicker-off.kamp-page-hero--box-cast-down .kamp-page-hero__cast-wash::before,
.kamp-page-hero--fluoro-flicker-off.kamp-page-hero--box-cast-down .kamp-page-hero__cast-wash::after,
.kamp-page-hero--fluoro-flicker-off .kamp-page-hero__light-dim {
  animation: none !important;
}
.kamp-page-hero--fluoro-flicker-off.kamp-page-hero--box-cast-down .kamp-page-hero__cast-penumbra,
.kamp-page-hero--fluoro-flicker-off.kamp-page-hero--box-cast-down .kamp-page-hero__cast-wash {
  animation: none !important;
  opacity: calc(0.44 + 0.22 * var(--fluoro-g, 0.72));
  filter: blur(calc(11px + 14px * var(--fluoro-s, 0.6)));
}
.kamp-page-hero--fluoro-flicker-off .kamp-page-hero__fx--fluorescent,
.kamp-page-hero--fluoro-flicker-off .kamp-page-hero__fx--cast-down,
.kamp-page-hero--fluoro-flicker-off .kamp-sfx--cast-down.kamp-sfx--surface-box::before {
  opacity: calc(0.72 + 0.28 * var(--kamp-sfx-i, 0.68));
  filter: brightness(1);
}
.kamp-page-hero--fluoro-flicker-low .kamp-page-hero__fx--fluorescent,
.kamp-page-hero--fluoro-flicker-low .kamp-page-hero__fx--cast-down,
.kamp-page-hero--fluoro-flicker-low .kamp-sfx--cast-down.kamp-sfx--surface-box::before,
.kamp-page-hero--fluoro-flicker-low .kamp-page-hero__cast-wash,
.kamp-page-hero--fluoro-flicker-low .kamp-page-hero__cast-penumbra,
.kamp-page-hero--fluoro-flicker-low .kamp-page-hero__light-dim {
  animation-duration: 8.2s;
}
.kamp-page-hero--fluoro-flicker-high .kamp-page-hero__fx--fluorescent,
.kamp-page-hero--fluoro-flicker-high .kamp-page-hero__fx--cast-down,
.kamp-page-hero--fluoro-flicker-high .kamp-sfx--cast-down.kamp-sfx--surface-box::before,
.kamp-page-hero--fluoro-flicker-high .kamp-page-hero__cast-wash,
.kamp-page-hero--fluoro-flicker-high .kamp-page-hero__cast-penumbra,
.kamp-page-hero--fluoro-flicker-high .kamp-page-hero__light-dim {
  animation-duration: 3.2s;
}

@keyframes kamp-fluoro-flicker {
  0%, 100% { opacity: calc(0.7 + 0.3 * var(--kamp-sfx-i, 0.68)); filter: brightness(1); }
  4% { opacity: calc(0.7 + 0.3 * var(--kamp-sfx-i, 0.68) - 0.4 * var(--kamp-fluoro-flicker, 0.62)); filter: brightness(calc(1 - 0.28 * var(--kamp-fluoro-flicker, 0.62))); }
  5.5% { opacity: calc(0.7 + 0.3 * var(--kamp-sfx-i, 0.68) + 0.15 * var(--kamp-fluoro-flicker, 0.62)); filter: brightness(calc(1 + 0.2 * var(--kamp-fluoro-flicker, 0.62))); }
  7% { opacity: calc(0.7 + 0.3 * var(--kamp-sfx-i, 0.68) - 0.28 * var(--kamp-fluoro-flicker, 0.62)); filter: brightness(calc(1 - 0.12 * var(--kamp-fluoro-flicker, 0.62))); }
  8% { opacity: calc(0.7 + 0.3 * var(--kamp-sfx-i, 0.68) + 0.12 * var(--kamp-fluoro-flicker, 0.62)); filter: brightness(calc(1 + 0.14 * var(--kamp-fluoro-flicker, 0.62))); }
  22% { opacity: calc(0.72 + 0.25 * var(--kamp-sfx-i, 0.68)); filter: brightness(1.02); }
  41% { opacity: calc(0.7 + 0.3 * var(--kamp-sfx-i, 0.68) - 0.35 * var(--kamp-fluoro-flicker, 0.62)); filter: brightness(calc(1 - 0.22 * var(--kamp-fluoro-flicker, 0.62))); }
  42.5% { opacity: calc(0.7 + 0.3 * var(--kamp-sfx-i, 0.68) + 0.18 * var(--kamp-fluoro-flicker, 0.62)); filter: brightness(calc(1 + 0.22 * var(--kamp-fluoro-flicker, 0.62))); }
  58% { opacity: calc(0.7 + 0.25 * var(--kamp-sfx-i, 0.68)); }
  71% { opacity: calc(0.7 + 0.3 * var(--kamp-sfx-i, 0.68) - 0.42 * var(--kamp-fluoro-flicker, 0.62)); filter: brightness(calc(1 - 0.35 * var(--kamp-fluoro-flicker, 0.62))); }
  72% { opacity: calc(0.7 + 0.3 * var(--kamp-sfx-i, 0.68) + 0.1 * var(--kamp-fluoro-flicker, 0.62)); filter: brightness(calc(1 + 0.12 * var(--kamp-fluoro-flicker, 0.62))); }
  73.5% { opacity: calc(0.7 + 0.3 * var(--kamp-sfx-i, 0.68) - 0.22 * var(--kamp-fluoro-flicker, 0.62)); }
  74.5% { opacity: calc(0.7 + 0.3 * var(--kamp-sfx-i, 0.68) + 0.08 * var(--kamp-fluoro-flicker, 0.62)); }
}
@keyframes kamp-fluoro-flicker-soft {
  0%, 100% { opacity: calc(0.55 + 0.45 * var(--kamp-fluoro-glow, 0.72)); }
  4% { opacity: calc(0.55 + 0.45 * var(--kamp-fluoro-glow, 0.72) - 0.32 * var(--kamp-fluoro-flicker, 0.62)); }
  5.5% { opacity: calc(0.55 + 0.45 * var(--kamp-fluoro-glow, 0.72) + 0.12 * var(--kamp-fluoro-flicker, 0.62)); }
  7% { opacity: calc(0.55 + 0.45 * var(--kamp-fluoro-glow, 0.72) - 0.22 * var(--kamp-fluoro-flicker, 0.62)); }
  8% { opacity: calc(0.55 + 0.45 * var(--kamp-fluoro-glow, 0.72) + 0.1 * var(--kamp-fluoro-flicker, 0.62)); }
  41% { opacity: calc(0.55 + 0.45 * var(--kamp-fluoro-glow, 0.72) - 0.28 * var(--kamp-fluoro-flicker, 0.62)); }
  42.5% { opacity: calc(0.55 + 0.45 * var(--kamp-fluoro-glow, 0.72) + 0.14 * var(--kamp-fluoro-flicker, 0.62)); }
  71% { opacity: calc(0.55 + 0.45 * var(--kamp-fluoro-glow, 0.72) - 0.3 * var(--kamp-fluoro-flicker, 0.62)); }
  72% { opacity: calc(0.55 + 0.45 * var(--kamp-fluoro-glow, 0.72) + 0.1 * var(--kamp-fluoro-flicker, 0.62)); }
}
@keyframes kamp-fluoro-dim-flicker {
  0%, 100% { opacity: 1; }
  4% { opacity: calc(1 - 0.18 * var(--kamp-fluoro-flicker, 0.62)); }
  5.5% { opacity: 1; }
  41% { opacity: calc(1 - 0.12 * var(--kamp-fluoro-flicker, 0.62)); }
  42.5% { opacity: 1; }
  71% { opacity: calc(1 - 0.2 * var(--kamp-fluoro-flicker, 0.62)); }
  72% { opacity: 1; }
}
.kamp-sfx--edge-glow {
  box-shadow:
    0 0 0 1px rgba(255,255,255, calc(0.06 + 0.06 * var(--kamp-sfx-i, 0.68))),
    -5px 0 calc(14px + 12px * var(--kamp-sfx-i, 0.68)) rgba(200,16,46, calc(0.1 + 0.14 * var(--kamp-sfx-i, 0.68))),
    5px 0 calc(14px + 12px * var(--kamp-sfx-i, 0.68)) rgba(200,16,46, calc(0.1 + 0.14 * var(--kamp-sfx-i, 0.68)));
}
.kamp-sfx--box-breathe {
  animation: kamp-box-breathe calc(5.2s - 1.2s * var(--kamp-sfx-i, 0.68)) ease-in-out infinite;
}
.kamp-page-hero__card.kamp-sfx--box-breathe {
  animation: kamp-box-breathe-shadow calc(5.2s - 1.2s * var(--kamp-sfx-i, 0.68)) ease-in-out infinite;
}
@keyframes kamp-box-breathe {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.008); }
}
@keyframes kamp-box-breathe-shadow {
  0%, 100% {
    box-shadow:
      0 0 18px rgba(200, 16, 46, 0.18),
      0 24px 60px rgba(0, 0, 0, 0.4);
  }
  50% {
    box-shadow:
      0 0 24px rgba(200, 16, 46, 0.24),
      0 28px 66px rgba(0, 0, 0, 0.43);
  }
}
.kamp-sfx--scanline-soft {
  position: relative;
}
.kamp-sfx--scanline-soft::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: repeating-linear-gradient(0deg, transparent, transparent 3px, rgba(255,255,255,0.02) 4px);
  opacity: 0.5;
  z-index: 2;
}
.kamp-sfx--corner-spark {
  position: relative;
}
.kamp-sfx--corner-spark::before {
  content: "";
  position: absolute;
  top: 10px;
  right: 10px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  pointer-events: none;
  z-index: 3;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.95) 0%, rgba(200, 16, 46, 0.55) 45%, transparent 72%);
  box-shadow: 0 0 10px rgba(255, 255, 255, 0.35), 0 0 18px rgba(200, 16, 46, 0.28);
  animation: kamp-corner-spark 3.4s ease-in-out infinite;
}
@keyframes kamp-corner-spark {
  0%, 100% { opacity: 0.45; transform: scale(0.92); }
  50% { opacity: 1; transform: scale(1.08); }
}
.kamp-sfx--btn-sheen {
  position: relative;
  overflow: hidden;
}
.kamp-sfx--btn-sheen::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 30%, rgba(255,255,255,0.25) 50%, transparent 70%);
  transform: translateX(-120%);
  animation: kamp-btn-sheen 3.2s ease-in-out infinite;
}
@keyframes kamp-btn-sheen {
  0%, 60% { transform: translateX(-120%); }
  100% { transform: translateX(120%); }
}
.kamp-sfx--btn-pulse-soft {
  animation: kamp-btn-pulse 2.4s ease-in-out infinite;
}
@keyframes kamp-btn-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(200,16,46,0.25); }
  50% { box-shadow: 0 0 0 6px rgba(200,16,46,0); }
}
.kamp-sfx--btn-underline-flicker {
  position: relative;
  box-shadow: none !important;
}
.kamp-sfx--btn-underline-flicker::after {
  content: "";
  position: absolute;
  left: 12%;
  right: 12%;
  bottom: 6px;
  height: 1px;
  background: rgba(255, 255, 255, 0.75);
  pointer-events: none;
  animation: kamp-btn-underline 2.1s ease-in-out infinite;
}
@keyframes kamp-btn-underline {
  0%, 100% { opacity: 0.35; transform: scaleX(0.92); }
  40% { opacity: 1; transform: scaleX(1); }
  55% { opacity: 0.2; }
  70% { opacity: 0.9; }
}
.kamp-sfx--glass-rim {
  position: relative;
  isolation: isolate;
}
.kamp-sfx--glass-rim::before {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  padding: 1px;
  pointer-events: none;
  z-index: 3;
  background: conic-gradient(
    from var(--kamp-rim-angle, 0deg),
    transparent 0%,
    rgba(255, 255, 255, 0.55) 8%,
    rgba(200, 16, 46, 0.45) 14%,
    transparent 22%,
    transparent 100%
  );
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  animation: kamp-glass-rim 9s linear infinite;
}
@property --kamp-rim-angle {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}
@keyframes kamp-glass-rim {
  to { --kamp-rim-angle: 360deg; }
}
.kamp-sfx--liquid-sheen {
  position: relative;
  overflow: hidden;
}
.kamp-sfx--liquid-sheen::after {
  content: "";
  position: absolute;
  top: -40%;
  bottom: -40%;
  left: -35%;
  width: 42%;
  pointer-events: none;
  background: linear-gradient(
    105deg,
    transparent 0%,
    rgba(255, 255, 255, 0.04) 35%,
    rgba(255, 255, 255, 0.28) 50%,
    rgba(255, 255, 255, 0.04) 65%,
    transparent 100%
  );
  transform: translateX(-140%) skewX(-18deg);
  animation: kamp-liquid-sheen 5.8s ease-in-out infinite;
}
@keyframes kamp-liquid-sheen {
  0%, 55% { transform: translateX(-140%) skewX(-18deg); opacity: 0; }
  60% { opacity: 1; }
  100% { transform: translateX(320%) skewX(-18deg); opacity: 0; }
}
.kamp-sfx--ink-bleed {
  position: relative;
}
.kamp-sfx--ink-bleed::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  background:
    radial-gradient(ellipse 80% 60% at 50% 110%, rgba(0, 0, 0, 0.42), transparent 70%),
    radial-gradient(ellipse 50% 40% at 10% 0%, rgba(0, 0, 0, 0.18), transparent 60%);
  opacity: 0.72;
  animation: kamp-ink-bleed 7s ease-in-out infinite;
}
@keyframes kamp-ink-bleed {
  0%, 100% { opacity: 0.55; }
  50% { opacity: 0.85; }
}
.kamp-sfx--veil-drift {
  position: relative;
  overflow: hidden;
}
.kamp-sfx--veil-drift::before,
.kamp-sfx--veil-drift::after {
  content: "";
  position: absolute;
  pointer-events: none;
  z-index: 1;
  border-radius: 50%;
  filter: blur(28px);
}
.kamp-sfx--veil-drift::before {
  width: min(52%, 420px);
  height: min(52%, 420px);
  top: -12%;
  left: -8%;
  background: radial-gradient(circle, rgba(180, 220, 210, calc(0.08 + 0.16 * var(--kamp-sfx-p1, 0.5))), transparent 68%);
  opacity: calc(0.55 + 0.7 * var(--kamp-sfx-p1, 0.5));
  animation: kamp-veil-a calc(18s - 8s * var(--kamp-sfx-p2, 0.5)) ease-in-out infinite alternate;
}
.kamp-sfx--veil-drift::after {
  width: min(48%, 380px);
  height: min(48%, 380px);
  right: -10%;
  bottom: -14%;
  background: radial-gradient(circle, rgba(40, 48, 56, calc(0.35 + 0.4 * var(--kamp-sfx-p1, 0.5))), transparent 70%);
  opacity: calc(0.55 + 0.7 * var(--kamp-sfx-p1, 0.5));
  animation: kamp-veil-b calc(20s - 8s * var(--kamp-sfx-p2, 0.5)) ease-in-out infinite alternate;
}
@keyframes kamp-veil-a {
  from { transform: translate(0, 0); }
  to { transform: translate(28px, 18px); }
}
@keyframes kamp-veil-b {
  from { transform: translate(0, 0); }
  to { transform: translate(-22px, -16px); }
}

/* —— Storm / electric set (brand red + graphite) —— */
.kamp-page-hero__fx--storm-flash,
.kamp-sfx--storm-flash {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  background:
    radial-gradient(ellipse 70% 50% at 70% 18%, rgba(255, 255, 255, 0.22), transparent 55%),
    radial-gradient(ellipse 40% 30% at 20% 80%, rgba(200, 16, 46, 0.28), transparent 60%);
  mix-blend-mode: screen;
  opacity: calc(0.08 + 0.22 * var(--kamp-sfx-p1, 0.55));
  animation: kamp-storm-flash calc(3.2s + 3.6s * var(--kamp-sfx-p2, 0.5)) ease-in-out infinite;
}
@keyframes kamp-storm-flash {
  0%, 72%, 100% { opacity: 0.12; filter: brightness(1); }
  74% { opacity: 0.85; filter: brightness(1.55); }
  76% { opacity: 0.18; filter: brightness(0.95); }
  78% { opacity: 0.95; filter: brightness(1.7); }
  81% { opacity: 0.2; filter: brightness(1); }
  88% { opacity: 0.45; filter: brightness(1.2); }
  90% { opacity: 0.14; filter: brightness(1); }
}
.kamp-sfx--volt-edge {
  position: relative;
  isolation: isolate;
}
.kamp-sfx--volt-edge::before {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  pointer-events: none;
  z-index: 3;
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.18),
    0 0 0 1px rgba(200, 16, 46, 0.35);
  animation: kamp-volt-edge 2.4s steps(2, end) infinite;
}
.kamp-sfx--volt-edge::after {
  content: "";
  position: absolute;
  top: 8%;
  right: 0;
  width: 2px;
  height: 28%;
  pointer-events: none;
  z-index: 4;
  background: linear-gradient(
    180deg,
    transparent,
    rgba(255, 255, 255, 0.9),
    rgba(200, 16, 46, 0.85),
    transparent
  );
  opacity: 0;
  animation: kamp-volt-arc 2.4s ease-in-out infinite;
}
@keyframes kamp-volt-edge {
  0%, 100% {
    box-shadow:
      inset 0 0 0 1px rgba(255, 255, 255, 0.14),
      0 0 0 1px rgba(200, 16, 46, 0.28);
  }
  40% {
    box-shadow:
      inset 0 0 0 1px rgba(255, 255, 255, 0.45),
      0 0 12px rgba(200, 16, 46, 0.35);
  }
  55% {
    box-shadow:
      inset 0 0 0 1px rgba(255, 255, 255, 0.1),
      0 0 0 1px rgba(200, 16, 46, 0.15);
  }
}
@keyframes kamp-volt-arc {
  0%, 35%, 100% { opacity: 0; transform: translateY(0); }
  40% { opacity: 1; transform: translateY(4px); }
  48% { opacity: 0.2; }
  52% { opacity: 1; transform: translateY(18px); }
  60% { opacity: 0; }
}
.kamp-sfx--btn-volt {
  position: relative;
  overflow: hidden;
  box-shadow: 0 0 0 1px rgba(200, 16, 46, 0.35) !important;
  animation: kamp-btn-volt 2.8s ease-in-out infinite;
}
.kamp-sfx--btn-volt::after {
  content: "";
  position: absolute;
  left: -20%;
  top: 0;
  bottom: 0;
  width: 40%;
  pointer-events: none;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.35),
    rgba(200, 16, 46, 0.45),
    transparent
  );
  transform: translateX(-120%) skewX(-20deg);
  animation: kamp-btn-volt-slash 2.8s ease-in-out infinite;
}
@keyframes kamp-btn-volt {
  0%, 100% { box-shadow: 0 0 0 1px rgba(200, 16, 46, 0.28); }
  45% { box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.35), 0 0 18px rgba(200, 16, 46, 0.4); }
  55% { box-shadow: 0 0 0 1px rgba(200, 16, 46, 0.15); }
}
@keyframes kamp-btn-volt-slash {
  0%, 50% { transform: translateX(-120%) skewX(-20deg); opacity: 0; }
  55% { opacity: 1; }
  100% { transform: translateX(280%) skewX(-20deg); opacity: 0; }
}
.kamp-sfx--thunder-haze {
  position: relative;
  overflow: hidden;
}
.kamp-sfx--thunder-haze::before {
  content: "";
  position: absolute;
  inset: -10%;
  pointer-events: none;
  z-index: 1;
  background:
    radial-gradient(ellipse 60% 45% at 30% 20%, rgba(40, 48, 58, 0.55), transparent 65%),
    radial-gradient(ellipse 50% 40% at 80% 70%, rgba(200, 16, 46, 0.12), transparent 60%),
    linear-gradient(180deg, rgba(8, 10, 12, 0.15), transparent 40%, rgba(8, 10, 12, 0.35));
  opacity: calc(0.4 + 0.6 * var(--kamp-sfx-p1, 0.55));
  animation: kamp-thunder-haze calc(8.5s - 4s * var(--kamp-sfx-p2, 0.5)) ease-in-out infinite;
}
@keyframes kamp-thunder-haze {
  0%, 100% { opacity: 0.55; transform: translateY(0) scale(1); filter: brightness(1); }
  40% { opacity: 0.85; transform: translateY(-2%) scale(1.03); filter: brightness(1.05); }
  62% { opacity: 0.95; filter: brightness(1.25); }
  66% { opacity: 0.5; filter: brightness(0.92); }
  70% { opacity: 0.8; filter: brightness(1.15); }
}

.kamp-sfx--shimmer.kamp-sfx--surface-hero,
.kamp-sfx--shimmer.kamp-sfx--surface-box,
.kamp-sfx--shimmer.kamp-sfx--surface-section {
  position: relative;
  overflow: hidden;
}
.kamp-sfx--shimmer.kamp-sfx--surface-hero::after,
.kamp-sfx--shimmer.kamp-sfx--surface-box::after,
.kamp-sfx--shimmer.kamp-sfx--surface-section::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(105deg, transparent 35%, rgba(255,255,255, calc(0.06 + 0.16 * var(--kamp-sfx-p1, 0.5))) 50%, transparent 65%);
  transform: translateX(-120%);
  opacity: calc(0.55 + 0.7 * var(--kamp-sfx-p1, 0.5));
  animation: kamp-sfx-shimmer calc(5.2s - 2.8s * var(--kamp-sfx-p2, 0.5)) ease-in-out infinite;
}
@keyframes kamp-sfx-shimmer {
  0%, 55% { transform: translateX(-120%); }
  100% { transform: translateX(120%); }
}
.kamp-sfx--parallax-soft.kamp-sfx--surface-hero,
.kamp-sfx--parallax-soft.kamp-sfx--surface-section {
  background-attachment: fixed;
  background-size: cover;
  will-change: transform;
  animation: kamp-parallax-soft calc(8s + 8s * var(--kamp-sfx-p2, 0.55)) ease-in-out infinite alternate;
}
@keyframes kamp-parallax-soft {
  0% { transform: translateY(0); }
  100% { transform: translateY(calc(-4px - 8px * var(--kamp-sfx-p1, 0.45))); }
}
/* Hero CTA — solid black klocek (3% radius); pills keep glass compact style */
.kamp-page-hero .kamp-btn:not(.kamp-segment-pills__link),
.kamp-page-hero__cta .kamp-btn,
.kamp-page-hero .kamp-btn--ghost:not(.kamp-segment-pills__link),
.kamp-page-hero__cta .kamp-btn--ghost {
  border-radius: var(--kamp-btn-radius, 3%);
  background: #111;
  border: 1px solid #111;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: none;
  color: #fff;
  font-size: calc(13px * var(--kamp-hero-text-scale, 0.9));
}
.kamp-page-hero .kamp-btn:not(.kamp-segment-pills__link):hover,
.kamp-page-hero__cta .kamp-btn:hover,
.kamp-page-hero .kamp-btn--ghost:not(.kamp-segment-pills__link):hover,
.kamp-page-hero__cta .kamp-btn--ghost:hover {
  background: #000;
  border-color: #000;
  color: #fff;
}
/* Drugi CTA na dark Hero może zostać outline */
.kamp-page-hero__cta .kamp-btn--ghost:nth-child(n+2),
.kamp-page-hero__cta .kamp-btn.kamp-btn--outline {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.45);
  color: #fff;
}
.kamp-page-hero__cta .kamp-btn--ghost:nth-child(n+2):hover,
.kamp-page-hero__cta .kamp-btn.kamp-btn--outline:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.7);
  color: #fff;
}
.kamp-google-reviews__list {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  list-style: none;
  margin: 16px 0 0;
  padding: 0;
}
.kamp-google-reviews__item {
  position: relative;
  padding: 16px;
  border: 1px solid #e6e8eb;
  background: #fff;
  border-radius: var(--kamp-card-radius);
  color: var(--kamp-ink);
}
.kamp-segment-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  margin: 12px 0 0;
  padding: 0;
}
@media (prefers-reduced-motion: reduce) {
  .kamp-sfx--fog-floor.kamp-sfx--surface-hero::before,
  .kamp-page-hero.kamp-sfx--fog-floor::before,
  .kamp-sfx--fog-floor.kamp-sfx--surface-hero::after,
  .kamp-page-hero.kamp-sfx--fog-floor::after {
    animation: none;
    filter: blur(12px);
    opacity: 0.42;
    width: 100%;
    left: 0;
    transform: none;
  }
	.kamp-sfx--cast-down.kamp-sfx--surface-box::after {
    animation: none;
    opacity: 0.4;
  }
  .kamp-page-hero__fx--fluorescent,
  .kamp-sfx--fluorescent.kamp-sfx--surface-box::after,
  .kamp-sfx--fluorescent,
  .kamp-page-hero__cast-wash,
  .kamp-page-hero__light-dim {
    animation: none !important;
  }
  .kamp-page-hero--box-cast-down .kamp-page-hero__cast-penumbra,
  .kamp-page-hero--box-cast-down .kamp-page-hero__cast-wash {
    animation: none !important;
    opacity: 0.55;
  }
  .kamp-page-hero__cast-wash {
    opacity: 0.55;
  }
  .kamp-page-hero__fx--fluorescent,
  .kamp-sfx--cast-down.kamp-sfx--surface-box::before {
    opacity: 0.7;
  }
  .kamp-sfx--cast-down.kamp-sfx--surface-box::before {
    animation: none !important;
  }
  .kamp-page-hero__fx--storm-flash,
  .kamp-sfx--storm-flash {
    animation: none !important;
    opacity: 0.28;
    filter: none;
  }
  .kamp-sfx--box-breathe,
  .kamp-page-hero__card.kamp-sfx--box-breathe,
  .kamp-sfx--btn-sheen::after,
  .kamp-sfx--btn-pulse-soft,
  .kamp-sfx--btn-underline-flicker::after,
  .kamp-sfx--corner-spark::before,
  .kamp-sfx--glass-rim::before,
  .kamp-sfx--liquid-sheen::after,
  .kamp-sfx--ink-bleed::before,
  .kamp-sfx--veil-drift::before,
  .kamp-sfx--veil-drift::after,
  .kamp-sfx--shimmer::after,
  .kamp-sfx--parallax-soft,
  .kamp-sfx--volt-edge::before,
  .kamp-sfx--volt-edge::after,
  .kamp-sfx--btn-volt,
  .kamp-sfx--btn-volt::after,
  .kamp-sfx--thunder-haze::before {
    animation: none !important;
  }
  .kamp-sfx--shimmer::after {
    opacity: 0.35;
    transform: none;
  }
  .kamp-sfx--parallax-soft {
    transform: none;
    background-attachment: scroll;
  }
  .kamp-sfx--corner-spark::before,
  .kamp-sfx--btn-underline-flicker::after {
    opacity: 0.7;
  }
  .kamp-sfx--ink-bleed::before {
    opacity: 0.7;
  }
  .kamp-sfx--glass-rim::before {
    background: linear-gradient(135deg, rgba(255,255,255,0.35), rgba(200,16,46,0.25), transparent 60%);
  }
  .kamp-sfx--volt-edge::before {
    box-shadow:
      inset 0 0 0 1px rgba(255, 255, 255, 0.2),
      0 0 0 1px rgba(200, 16, 46, 0.3);
  }
  .kamp-sfx--volt-edge::after {
    opacity: 0;
  }
  .kamp-sfx--btn-volt {
    box-shadow: 0 0 0 1px rgba(200, 16, 46, 0.35) !important;
  }
  .kamp-sfx--thunder-haze::before {
    opacity: 0.65;
    filter: none;
    transform: none;
  }
}

/* Page transitions (leave + enter) */
@keyframes kamp-page-leave-fade {
  to { opacity: 0; }
}
@keyframes kamp-page-enter-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes kamp-page-leave-slide-up {
  to { opacity: 0; transform: translateY(14px); }
}
@keyframes kamp-page-enter-slide-up {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: none; }
}
@keyframes kamp-page-leave-scale {
  to { opacity: 0; transform: scale(0.98); }
}
@keyframes kamp-page-enter-scale {
  from { opacity: 0; transform: scale(0.98); }
  to { opacity: 1; transform: none; }
}
body.kamp-page-leave {
  pointer-events: none;
}
body.kamp-page-leave--fade {
  animation: kamp-page-leave-fade 0.35s ease forwards;
}
body.kamp-page-leave--slide_up {
  animation: kamp-page-leave-slide-up 0.38s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
body.kamp-page-leave--scale {
  animation: kamp-page-leave-scale 0.35s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
body.kamp-page-transition--fade {
  animation: kamp-page-enter-fade 0.4s ease both;
}
body.kamp-page-transition--slide_up {
  animation: kamp-page-enter-slide-up 0.42s cubic-bezier(0.22, 1, 0.36, 1) both;
}
body.kamp-page-transition--scale {
  animation: kamp-page-enter-scale 0.4s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@supports (view-transition-name: none) {
  ::view-transition-old(root) {
    animation-duration: 0.35s;
    animation-timing-function: ease;
  }
  ::view-transition-new(root) {
    animation-duration: 0.4s;
    animation-timing-function: ease;
  }
  html:has(body.kamp-page-transition--fade) ::view-transition-old(root) {
    animation-name: kamp-page-leave-fade;
  }
  html:has(body.kamp-page-transition--fade) ::view-transition-new(root) {
    animation-name: kamp-page-enter-fade;
  }
  html:has(body.kamp-page-transition--slide_up) ::view-transition-old(root) {
    animation-name: kamp-page-leave-slide-up;
  }
  html:has(body.kamp-page-transition--slide_up) ::view-transition-new(root) {
    animation-name: kamp-page-enter-slide-up;
  }
  html:has(body.kamp-page-transition--scale) ::view-transition-old(root) {
    animation-name: kamp-page-leave-scale;
  }
  html:has(body.kamp-page-transition--scale) ::view-transition-new(root) {
    animation-name: kamp-page-enter-scale;
  }
}
@media (prefers-reduced-motion: reduce) {
  body.kamp-page-leave,
  body.kamp-page-leave--fade,
  body.kamp-page-leave--slide_up,
  body.kamp-page-leave--scale,
  body.kamp-page-transition--fade,
  body.kamp-page-transition--slide_up,
  body.kamp-page-transition--scale {
    animation: none !important;
  }
}

/* Promo popup — opaque panel (no backdrop-filter: invisible panel + dim trap on Chrome/iOS) */
body.kamp-popup-open {
  overflow: hidden;
  overscroll-behavior: none;
}
html.kamp-popup-lock {
  overflow: hidden;
  overscroll-behavior: none;
}
.kamp-promo-popup {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px var(--kamp-gutter);
  box-sizing: border-box;
  overscroll-behavior: contain;
  touch-action: manipulation;
}
.kamp-promo-popup[hidden] {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
.kamp-promo-popup.is-open {
  display: flex !important;
  visibility: visible !important;
  pointer-events: auto !important;
}
.kamp-promo-popup__overlay {
  position: absolute;
  inset: 0;
  background: rgba(6, 8, 10, 0.72);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  cursor: pointer;
  touch-action: manipulation;
}
.kamp-promo-popup__panel {
  position: relative;
  z-index: 1;
  width: min(92vw, 420px);
  max-height: min(88vh, 720px);
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  color: #fff;
  font-family: var(--kamp-body);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 0;
  background: #121416;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: 0 28px 64px rgba(0, 0, 0, 0.55);
  opacity: 1;
}
.kamp-promo-popup__panel--wide { width: min(94vw, 620px); }
.kamp-promo-popup__panel--image_side .kamp-promo-popup__split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  gap: 0;
  min-height: 280px;
}
.kamp-promo-popup__chrome {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 52px;
  padding: 12px 12px 0 16px;
  box-sizing: border-box;
}
.kamp-promo-popup__chrome-spacer {
  display: block;
  width: 1px;
  height: 1px;
}
.kamp-promo-popup__close {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  margin-left: auto;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 0;
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}
.kamp-promo-popup__close:hover {
  border-color: rgba(255, 255, 255, 0.4);
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
}
.kamp-promo-popup__logo {
  flex: 0 0 auto;
  display: block;
  width: 32px;
  height: auto;
  max-height: 32px;
  object-fit: contain;
  opacity: 0.95;
}
.kamp-promo-popup__image img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 200px;
  object-fit: cover;
  border-radius: 0;
}
.kamp-promo-popup__panel--image_side .kamp-promo-popup__image img {
  height: 100%;
  max-height: none;
  min-height: 100%;
  border-radius: 0;
}
.kamp-promo-popup__body {
  padding: 12px 24px 24px;
}
.kamp-promo-popup__panel--text_only .kamp-promo-popup__body {
  padding-top: 8px;
}
.kamp-promo-popup__panel--image_side .kamp-promo-popup__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.kamp-promo-popup__title {
  margin: 0 0 6px;
  font-family: var(--kamp-font);
  font-size: clamp(1.05rem, 2.6vw, 1.25rem);
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.25;
  color: #fff;
}
.kamp-promo-popup__subtitle {
  margin: 0 0 14px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
}
.kamp-promo-popup__content {
  margin: 0 0 20px;
  font-size: 13px;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.86);
}
.kamp-promo-popup__content a,
.kamp-promo-popup__content a:link,
.kamp-promo-popup__content a:visited {
  color: #fff !important;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.kamp-promo-popup__content a:hover,
.kamp-promo-popup__content a:focus-visible {
  color: #fff !important;
  opacity: 0.85;
}
.kamp-promo-popup__content p:last-child { margin-bottom: 0; }
.kamp-promo-popup__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: stretch;
}
.kamp-promo-popup__panel--text_only .kamp-promo-popup__actions {
  display: grid;
}
.kamp-promo-popup__panel--text_only .kamp-promo-popup__cta {
  width: 100%;
}
.kamp-promo-popup__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 18px;
  background: #fff;
  color: var(--kamp-dark, #0f1113);
  text-decoration: none;
  font-family: var(--kamp-font);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-radius: 0;
  border: 1px solid #fff;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.kamp-promo-popup__cta:hover {
  background: transparent;
  color: #fff;
  border-color: rgba(255, 255, 255, 0.65);
  box-shadow: none;
}
.kamp-promo-popup__cta--ghost {
  background: transparent;
  color: #fff;
  border-color: rgba(255, 255, 255, 0.35);
}
.kamp-promo-popup__cta--ghost:hover {
  border-color: rgba(255, 255, 255, 0.7);
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
}

/* === Klocki Faza 4: hero / CTA / rail / content === */
.kamp-page-hero--media-gradient {
  background:
    linear-gradient(135deg, rgba(200, 16, 46, 0.35), rgba(15, 17, 19, 0.92)),
    var(--kamp-dark);
}
.kamp-page-hero--height-viewport {
  min-height: var(--kamp-hero-min-height);
}
.kamp-page-hero--height-compact {
  min-height: min(58vh, 520px);
}
.kamp-page-hero--height-compact.kamp-page-hero--contact {
  min-height: min(52vh, 520px);
}
.kamp-page-hero--overlay-soft {
  --kamp-hero-shade: linear-gradient(180deg, rgba(15,17,19,.18), rgba(15,17,19,.42));
}
.kamp-page-hero--overlay-hard {
  --kamp-hero-shade: linear-gradient(180deg, rgba(15,17,19,.55), rgba(15,17,19,.82));
}
.kamp-page-hero__scroll-cue {
  position: absolute;
  left: 50%;
  bottom: var(--kamp-hero-scroll-cue-gap);
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  width: auto;
  height: auto;
  margin: 0;
  transform: translateX(-50%);
  flex-shrink: 0;
  border: 0;
  border-radius: 0;
  pointer-events: auto;
  cursor: pointer;
  text-decoration: none;
  color: inherit;
  background: transparent;
}
.kamp-page-hero__scroll-cue--left {
  left: max(16px, var(--kamp-gutter, 16px));
  right: auto;
  transform: none;
  align-items: flex-start;
}
.kamp-page-hero__scroll-cue--right {
  left: auto;
  right: max(16px, var(--kamp-gutter, 16px));
  transform: none;
  align-items: flex-end;
}
.kamp-page-hero__scroll-cue--center {
  left: 50%;
  right: auto;
  transform: translateX(-50%);
  align-items: center;
}
.kamp-page-hero__scroll-cue-label {
  font-family: var(--kamp-font);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.2;
  color: rgba(255, 255, 255, 0.72);
  white-space: nowrap;
  text-align: center;
}
.kamp-page-hero__scroll-cue-icon {
  position: relative;
  display: block;
  width: 22px;
  height: 36px;
  border: 2px solid rgba(255, 255, 255, 0.45);
  border-radius: 14px;
  box-sizing: border-box;
}
.kamp-page-hero__scroll-cue-icon::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 7px;
  width: 4px;
  height: 8px;
  margin-left: -2px;
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.75);
  animation: kamp-scroll-cue 1.6s ease-in-out infinite;
}
@keyframes kamp-scroll-cue {
  0%, 100% { transform: translateY(0); opacity: 0.55; }
  50% { transform: translateY(8px); opacity: 1; }
}
.kamp-page-hero { position: relative; }

.kamp-cta-band--align-split .kamp-cta-band__inner {
  justify-content: space-between;
  text-align: left;
}
.kamp-cta-band--align-center .kamp-cta-band__inner {
  justify-content: center;
  text-align: center;
  flex-direction: column;
}
.kamp-cta-band--full-bleed {
  /* Already full-bleed inside #kamp-content — avoid 100vw + overflow-x clip */
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}
.kamp-cta-band--urgency-soft { border-top: 3px solid var(--kamp-red); }
.kamp-cta-band--urgency-strong {
  background: var(--kamp-red);
  border-top-color: transparent;
}
.kamp-cta-band__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--kamp-btn-space);
  align-items: center;
  padding: var(--kamp-btn-space);
}

.kamp-area--ratio-square .kamp-area__media { aspect-ratio: 1 / 1; }
.kamp-area--ratio-landscape .kamp-area__media { aspect-ratio: 16 / 10; }
.kamp-area--ratio-portrait .kamp-area__media { aspect-ratio: 3 / 4; }
.kamp-area--text-horizontal .kamp-area__rail {
  writing-mode: horizontal-tb;
  transform: none;
}
.kamp-area--hover-lift { transition: transform .2s ease, box-shadow .2s ease; }
.kamp-area--hover-lift:hover { transform: translateY(-4px); box-shadow: 0 12px 28px rgba(0,0,0,.12); }
.kamp-area--hover-none:hover { transform: none; box-shadow: none; }

.kamp-spotlight__card--media-right { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); }
.kamp-spotlight__card--media-right .kamp-spotlight__media { order: 2; }
.kamp-spotlight__card--scale-text {
  align-items: stretch;
}
.kamp-spotlight__card--scale-text .kamp-spotlight__media {
  position: relative;
  min-height: 0;
  align-self: stretch;
  overflow: hidden;
}
.kamp-spotlight__card--scale-text .kamp-spotlight__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.kamp-spotlight__meta {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  font-size: 12px;
  color: var(--kamp-muted);
  text-transform: uppercase;
  letter-spacing: .04em;
}

.kamp-segment-pills--nowrap {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  gap: 8px;
  padding-bottom: 4px;
}
.kamp-segment-pills--nowrap li { flex: 0 0 auto; }
.kamp-segment-pills--compact .kamp-segment-pills__link { font-size: 10px; min-height: 32px; padding: 0 12px; }
.kamp-segment-pills--large .kamp-segment-pills__link { font-size: 12px; min-height: 40px; padding: 0 18px; }

.kamp-about-story__grid,
.kamp-split-media__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.15fr);
  grid-template-areas: "media content";
  gap: 28px;
  align-items: center;
}
.kamp-about-story--media-right .kamp-about-story__grid,
.kamp-split-media--media-right .kamp-split-media__grid {
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.95fr);
  grid-template-areas: "content media";
}
.kamp-about-story--text-only .kamp-about-story__grid,
.kamp-about-story--media-below .kamp-about-story__grid,
.kamp-split-media--text-only .kamp-split-media__grid,
.kamp-split-media--media-below .kamp-split-media__grid {
  grid-template-columns: 1fr;
  grid-template-areas: "content" "media";
  max-width: 72ch;
}
.kamp-about-story--media-below .kamp-about-story__grid,
.kamp-split-media--media-below .kamp-split-media__grid {
  max-width: none;
  grid-template-areas: "content" "media";
}
.kamp-about-story--media-below .kamp-about-story__media,
.kamp-split-media--media-below .kamp-split-media__media {
  max-width: min(100%, 520px);
  margin-inline: 0;
}
.kamp-about-story__media,
.kamp-split-media__media {
  grid-area: media;
  margin: 0;
  border-radius: var(--kamp-card-radius, 12px);
  overflow: hidden;
  background: #111;
  box-shadow: 0 12px 32px rgba(15, 17, 19, 0.12);
  min-width: 0;
}
.kamp-about-story__media img,
.kamp-split-media__media img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center;
}
/* Skaluj zdjęcie do wysokości bloku tekstu (opcja panelu) — tylko PC */
.kamp-about-story--scale-text .kamp-about-story__grid,
.kamp-split-media--scale-text .kamp-split-media__grid {
  align-items: stretch;
}
.kamp-about-story--scale-text .kamp-about-story__media,
.kamp-split-media--scale-text .kamp-split-media__media {
  position: relative;
  align-self: stretch;
  min-height: 0;
  height: 100%;
  overflow: hidden;
}
.kamp-about-story--scale-text .kamp-about-story__media img,
.kamp-split-media--scale-text .kamp-split-media__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  aspect-ratio: unset;
  max-height: none;
  object-fit: cover;
  object-position: center;
}
.kamp-about-story__content,
.kamp-split-media__content {
  grid-area: content;
  min-width: 0;
}
.kamp-about-story__content .kamp-section__title {
  letter-spacing: -0.01em;
}
@media (max-width: 900px) {
  .kamp-about-story__grid,
  .kamp-about-story--media-right .kamp-about-story__grid,
  .kamp-about-story--media-left .kamp-about-story__grid,
  .kamp-about-story--media-below .kamp-about-story__grid,
  .kamp-about-story--scale-text .kamp-about-story__grid,
  .kamp-split-media__grid,
  .kamp-split-media--media-right .kamp-split-media__grid,
  .kamp-split-media--media-left .kamp-split-media__grid,
  .kamp-split-media--media-below .kamp-split-media__grid,
  .kamp-split-media--scale-text .kamp-split-media__grid {
    grid-template-columns: 1fr;
    /* Mobile: tekst, potem zdjęcie */
    grid-template-areas: "content" "media";
    gap: 20px;
    max-width: none;
    align-items: start;
  }
  .kamp-about-story--text-only .kamp-about-story__grid,
  .kamp-split-media--text-only .kamp-split-media__grid {
    grid-template-areas: "content";
  }
  .kamp-about-story__media,
  .kamp-split-media__media {
    max-width: 100%;
    margin-inline: 0;
    height: auto;
    min-height: 0;
  }
  .kamp-about-story__media img,
  .kamp-split-media__media img {
    position: static;
    inset: auto;
    aspect-ratio: 16 / 10;
    max-height: min(52vh, 420px);
    width: 100%;
    height: auto;
    object-fit: cover;
  }
  .kamp-about-story--scale-text .kamp-about-story__media,
  .kamp-split-media--scale-text .kamp-split-media__media {
    position: static;
    height: auto;
    min-height: 0;
  }
  .kamp-about-story--scale-text .kamp-about-story__media img,
  .kamp-split-media--scale-text .kamp-split-media__media img {
    position: static;
    inset: auto;
    height: auto;
    max-height: min(52vh, 420px);
    aspect-ratio: 16 / 10;
  }
}
.kamp-media-band__figure {
  margin: 0;
  border-radius: var(--kamp-card-radius, 12px);
  overflow: hidden;
}
.kamp-media-band__figure img {
  display: block;
  width: 100%;
  height: auto;
}
.kamp-spotlight__card {
  border-radius: var(--kamp-card-radius, 12px);
  overflow: hidden;
}
.kamp-hint {
  margin: 0;
  font-size: 0.95rem;
  color: var(--kamp-muted);
}
.kamp-hint--on-dark {
  color: rgba(255, 255, 255, 0.72);
}
.kamp-klocek--empty {
  outline: 1px dashed rgba(200, 16, 46, 0.28);
  outline-offset: -8px;
}
.kamp-btn--solid {
  background: #111;
  color: #fff;
  border: 1px solid transparent;
}
.kamp-btn--solid:hover {
  background: #000;
  color: #fff;
}
.kamp-page-hero .kamp-btn--solid,
.kamp-cta-band .kamp-btn--solid {
  background: #111;
  color: #fff;
  border-color: #111;
}
.kamp-page-hero .kamp-btn--solid:hover,
.kamp-cta-band .kamp-btn--solid:hover {
  background: #000;
  color: #fff;
  border-color: #000;
}
.kamp-area__img--empty {
  display: block;
  width: 100%;
  min-height: 180px;
  background:
    linear-gradient(135deg, rgba(200, 16, 46, 0.18), transparent 55%),
    #1a1d21;
}
.kamp-projects-teaser__empty {
  max-width: var(--kamp-max);
  margin: 12px auto 0;
  padding: 0 var(--kamp-gutter);
}
.kamp-cta-band {
  outline: none;
}
.kamp-cta-band__lead {
  margin: 6px 0 0;
  max-width: 42ch;
  color: rgba(255, 255, 255, 0.72);
  font-size: clamp(14px, 1.4vw, 15px);
}
.kamp-about-story__body--narrow { max-width: 52ch; }
.kamp-about-story__body--wide { max-width: none; width: 100%; }
.kamp-prose--dropcap > p:first-of-type::first-letter {
  float: left;
  font-size: 3.2em;
  line-height: .85;
  margin: .05em .12em 0 0;
  font-weight: 800;
  color: var(--kamp-red);
}
.kamp-prose--pullquote blockquote {
  margin: 1.2em 0;
  padding: 12px 18px;
  border-left: 4px solid var(--kamp-red);
  font-size: 1.15em;
  font-style: italic;
}

.kamp-about-skills--cols-3 { columns: 3; gap: 16px; }
.kamp-about-skills--cols-4 { columns: 4; gap: 16px; }
.kamp-about-skills--list { list-style: disc; padding-left: 1.2em; }
.kamp-about-skills--compact li { padding: 4px 0; font-size: 13px; }

.kamp-contact-band__grid--split {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 16px 24px;
}
.kamp-contact-band__grid--stacked {
  display: grid;
  gap: 12px;
}
.kamp-contact-band__grid--compact {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  align-items: center;
}
.kamp-contact-form__body--narrow { max-width: 640px; margin-inline: auto; }

.kamp-rich-text__body--narrow { max-width: 52ch; margin-inline: auto; }
.kamp-rich-text__body--wide { max-width: 72ch; margin-inline: auto; }
.kamp-rich-text__body--sm { font-size: .92rem; }
.kamp-rich-text__body--lg { font-size: 1.08rem; }

.kamp-media-band__lightbox { display: block; cursor: zoom-in; }
.kamp-media-band__figure figcaption {
  margin-top: 8px;
  font-size: 13px;
  color: var(--kamp-muted);
}

@media (max-width: 640px) {
  .kamp-promo-popup__panel--image_side .kamp-promo-popup__split {
    grid-template-columns: 1fr;
  }
  .kamp-promo-popup__panel--image_side .kamp-promo-popup__image img {
    border-radius: 0;
    min-height: 160px;
  }
}

/* Mobile popup: same centered opaque card */
@media (max-width: 720px) {
  .kamp-promo-popup {
    align-items: center;
    justify-content: center;
    padding: 16px 14px max(16px, env(safe-area-inset-bottom, 0px));
  }
  .kamp-promo-popup__panel {
    width: min(100%, 420px);
    max-width: 100%;
    max-height: min(70dvh, 520px);
    background: #121416;
  }
  .kamp-promo-popup__chrome {
    min-height: 48px;
    padding: 10px 12px 0 16px;
  }
  .kamp-promo-popup__close {
    width: 44px;
    height: 44px;
    font-size: 26px;
  }
  .kamp-promo-popup__body {
    padding: 10px 18px 18px;
  }
}

/* === Radius DNA: CTA 3%; cards 3%; pills/segment 3% === */
.kamp-btn,
.kamp-contact-form__submit,
.kamp-contact-form .kamp-btn,
.kamp-contact-panel .forminator-button-submit,
.kamp-contact-panel .wpforms-submit,
.kamp-post-nav__link,
.kamp-share-bar__links a,
.kamp-share-bar__links button,
.kamp-post-hero__share-links a {
  border-radius: var(--kamp-btn-radius, var(--kamp-card-radius));
}
.kamp-scroll-top,
.kamp-lang__item,
.kamp-journal-archive__pagination a.page-numbers:not(.dots),
.kamp-journal-archive__pagination span.page-numbers:not(.dots),
.kamp-archive-pagination a.page-numbers:not(.dots),
.kamp-archive-pagination span.page-numbers:not(.dots),
.kamp-segment-pills a,
.kamp-segment-pills__link {
  border-radius: var(--kamp-pill-radius);
}
.kamp-promo-popup,
.kamp-promo-popup__panel,
.kamp-promo-popup__close,
.kamp-promo-popup__cta {
  border-radius: 0 !important;
}

/* === Lekkie UX (CSS-first, reduced-motion safe) === */
@media (prefers-reduced-motion: no-preference) {
  .kamp-area,
  .kamp-rail-card,
  article.kamp-area {
    transition: transform 0.35s ease, box-shadow 0.35s ease;
  }
  .kamp-area:hover,
  .kamp-rail-card:hover,
  article.kamp-area:hover {
    transform: translateY(-3px);
  }
  .kamp-btn {
    transition: transform 0.15s ease, background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
  }
  .kamp-btn:active {
    transform: scale(0.98);
  }
  .kamp-page-hero__card:focus-within {
    box-shadow:
      0 0 22px rgba(200, 16, 46, 0.28),
      0 24px 60px rgba(0, 0, 0, 0.4);
  }
  .kamp-page-hero__scroll-cue.is-faded {
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.45s ease;
  }
}
.kamp-btn:focus-visible,
.kamp-nav__link:focus-visible,
.kamp-lang__item:focus-visible,
.kamp-segment-pills a:focus-visible {
  outline: 2px solid rgba(200, 16, 46, 0.85);
  outline-offset: 3px;
}

/* ==========================================================================
   DNA 1.7.0 — content band, shared primitives, klocek families
   ========================================================================== */

.kamp-card {
  background: #fff;
  border: 1px solid #e6e8eb;
  border-radius: var(--kamp-card-radius);
  box-shadow: 0 1px 0 rgba(15, 17, 19, 0.04);
}

/* Global lead DNA — pełna szerokość pasma (NIGDY 52ch); równe wcięcie L/R */
body.kamp-host .kamp-section__lead,
body.kamp-host .kamp-process__lead,
body.kamp-host .kamp-faq__lead,
body.kamp-host .kamp-google-reviews__summary,
body.kamp-host .kamp-google-reviews__badge {
  color: var(--kamp-muted);
  font-size: var(--kamp-klocek-lead, 15px);
  line-height: 1.6;
  max-width: var(--kamp-max) !important;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  margin-top: 0;
  margin-bottom: var(--kamp-section-gap);
  box-sizing: border-box;
  padding-inline: var(--kamp-klocek-text-inset, 3.5rem);
}
body.kamp-host .kamp-google-reviews__summary {
  color: var(--kamp-ink);
  margin-bottom: 8px;
}
body.kamp-host .kamp-google-reviews__badge {
  margin-bottom: 8px;
}

/* Nagłówek + ikona: globalny DNA jak „Jak myślę?” (wszystkie klocki, także stats) */
body.kamp-host .kamp-klocek:not(.kamp-cta-band) .kamp-section__title-row,
body.kamp-host .kamp-klocek:not(.kamp-cta-band) > .kamp-section__title,
body.kamp-host .kamp-klocek:not(.kamp-cta-band) > .kamp-process__head {
  box-sizing: border-box;
  padding-inline-start: var(--kamp-klocek-title-inset, 1.25rem);
}

/* Wrap / stats inner — bez dodatkowego guttera (unikaj podwójnego wcięcia) */
body.kamp-host .kamp-klocek .kamp-wrap,
body.kamp-host .kamp-stats-band > .kamp-stats-band__inner {
  padding-inline: 0;
  box-sizing: border-box;
  max-width: var(--kamp-max);
  width: 100%;
  margin-inline: auto;
}

/* Lead globalnie (w tym FAQ / stats / Jak pracuję) — równe wcięcie L/R */
body.kamp-host .kamp-klocek > .kamp-section__lead,
body.kamp-host .kamp-klocek > .kamp-process__lead,
body.kamp-host .kamp-faq-block > .kamp-section__lead,
body.kamp-host .kamp-faq-block > .kamp-faq__lead,
body.kamp-host .kamp-stats-band > .kamp-section__lead,
body.kamp-host .kamp-google-reviews > .kamp-google-reviews__summary,
body.kamp-host .kamp-google-reviews > .kamp-google-reviews__badge {
  padding-inline: var(--kamp-klocek-text-inset, 3.5rem);
  max-width: var(--kamp-max) !important;
  width: 100%;
}

/* Pola tekstu (prose) = wcięcie leadu — nie boxy / karty / siatki */
body.kamp-host .kamp-rich-text__body,
body.kamp-host .kamp-about-story--text-only .kamp-about-story__body,
body.kamp-host .kamp-wcag .kamp-prose {
  box-sizing: border-box;
  padding-inline: var(--kamp-klocek-text-inset, 3.5rem);
}

/* O mnie z mediów: tekst w kolumnie — bez podwójnego wcięcia */
body.kamp-host .kamp-about-story:not(.kamp-about-story--text-only) .kamp-about-story__body {
  padding-inline-start: 0;
}

/* Inline images in leads / body (panel rich → img) — bez dodatkowego wcięcia */
body.kamp-host .kamp-section__lead img,
body.kamp-host .kamp-process__lead img,
body.kamp-host .kamp-about-story__body img,
body.kamp-host .kamp-rich-text__body img,
body.kamp-host .kamp-prose img,
body.kamp-host .kamp-faq__lead img,
body.kamp-host .kamp-faq__body img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 0.75em 0;
  margin-inline-start: 0;
  border-radius: var(--kamp-card-radius, 12px);
}

/* Think DNA: muted body + bold emphasis (ink) inside leads / prose klocki */
body.kamp-host .kamp-section__lead :is(strong, b),
body.kamp-host .kamp-process__lead :is(strong, b),
body.kamp-host .kamp-faq__lead :is(strong, b),
body.kamp-host .kamp-about-story__body :is(strong, b),
body.kamp-host .kamp-rich-text__body :is(strong, b),
body.kamp-host .kamp-think__card > p :is(strong, b),
body.kamp-host .kamp-about-grid__body :is(strong, b) {
  font-weight: 700;
  color: var(--kamp-ink);
}

/* Global copy: left + no mid-word breaks (overrides older justify / hyphen DNA) */
body.kamp-host .kamp-section__lead,
body.kamp-host .kamp-section__lead p,
body.kamp-host .kamp-process__lead,
body.kamp-host .kamp-process__lead p,
body.kamp-host .kamp-faq__lead,
body.kamp-host .kamp-faq__body,
body.kamp-host .kamp-prose,
body.kamp-host .kamp-prose p,
body.kamp-host .kamp-about-grid__body,
body.kamp-host .kamp-about-process__body .kamp-prose,
body.kamp-host .kamp-about-story__body,
body.kamp-host .kamp-about-story__body p,
body.kamp-host .kamp-rich-text__body,
body.kamp-host .kamp-rich-text__body p,
body.kamp-host .kamp-think__card > p,
body.kamp-host .kamp-think__card .kamp-think__text,
body.kamp-host .kamp-think__card .kamp-think__lead,
body.kamp-host .kamp-process__step p,
body.kamp-host .kamp-process__step .kamp-process__text,
body.kamp-host .kamp-capabilities__card p,
body.kamp-host .kamp-google-reviews__item blockquote,
body.kamp-host .kamp-testimonials__quote,
body.kamp-host .kamp-post-body__content,
body.kamp-host .kamp-page-hero__lead,
body.kamp-host .kamp-page-hero__prose,
body.kamp-host .kamp-page-hero__lead > p,
body.kamp-host .kamp-page-hero__prose p,
body.kamp-host .kamp-page-hero__title,
body.kamp-host .kamp-section__title,
body.kamp-host .kamp-single__content,
body.kamp-host .kamp-single__content p {
  text-align: left;
  text-justify: auto;
  hyphens: none;
  -webkit-hyphens: none;
  -ms-hyphens: none;
  overflow-wrap: normal;
  word-break: normal;
  word-wrap: normal;
}

/* Panel textAlign: keep left only (right/justify forced left globally) */
body.kamp-host .kamp-klocek--text-align-left :is(
  .kamp-section__title,
  .kamp-section__lead,
  .kamp-section__lead p,
  .kamp-process__lead,
  .kamp-process__lead p,
  .kamp-faq__lead,
  .kamp-faq__body,
  .kamp-think__lead,
  .kamp-spotlight__lead,
  .kamp-about-story__title,
  .kamp-about-story__lead,
  .kamp-about-story__body,
  .kamp-about-story__body p,
  .kamp-rich-text__title,
  .kamp-rich-text__lead,
  .kamp-rich-text__body,
  .kamp-rich-text__body p,
  .kamp-prose,
  .kamp-prose p,
  .kamp-cta-band__title,
  .kamp-cta-band__lead,
  .kamp-stats__title,
  .kamp-stats__lead,
  .kamp-contact-band__title,
  .kamp-contact-band__lead,
  .kamp-media-band__title,
  .kamp-media-band__lead
),
body.kamp-host .kamp-page-hero--text-align-left :is(
  .kamp-page-hero__lead,
  .kamp-page-hero__lead > p,
  .kamp-page-hero__prose,
  .kamp-page-hero__prose p
),
body.kamp-host .kamp-klocek--text-align-right :is(
  .kamp-section__title,
  .kamp-section__lead,
  .kamp-section__lead p,
  .kamp-process__lead,
  .kamp-process__lead p,
  .kamp-faq__lead,
  .kamp-faq__body,
  .kamp-think__lead,
  .kamp-spotlight__lead,
  .kamp-about-story__title,
  .kamp-about-story__lead,
  .kamp-about-story__body,
  .kamp-about-story__body p,
  .kamp-rich-text__title,
  .kamp-rich-text__lead,
  .kamp-rich-text__body,
  .kamp-rich-text__body p,
  .kamp-prose,
  .kamp-prose p,
  .kamp-cta-band__title,
  .kamp-cta-band__lead,
  .kamp-stats__title,
  .kamp-stats__lead,
  .kamp-contact-band__title,
  .kamp-contact-band__lead,
  .kamp-media-band__title,
  .kamp-media-band__lead
),
body.kamp-host .kamp-page-hero--text-align-right :is(
  .kamp-page-hero__lead,
  .kamp-page-hero__lead > p,
  .kamp-page-hero__prose,
  .kamp-page-hero__prose p
),
body.kamp-host .kamp-klocek--text-align-justify :is(
  .kamp-section__title,
  .kamp-section__lead,
  .kamp-section__lead p,
  .kamp-process__lead,
  .kamp-process__lead p,
  .kamp-faq__lead,
  .kamp-faq__body,
  .kamp-think__lead,
  .kamp-spotlight__lead,
  .kamp-about-story__title,
  .kamp-about-story__lead,
  .kamp-about-story__body,
  .kamp-about-story__body p,
  .kamp-rich-text__title,
  .kamp-rich-text__lead,
  .kamp-rich-text__body,
  .kamp-rich-text__body p,
  .kamp-prose,
  .kamp-prose p,
  .kamp-cta-band__title,
  .kamp-cta-band__lead,
  .kamp-stats__title,
  .kamp-stats__lead,
  .kamp-contact-band__title,
  .kamp-contact-band__lead,
  .kamp-media-band__title,
  .kamp-media-band__lead
),
body.kamp-host .kamp-page-hero--text-align-justify :is(
  .kamp-page-hero__lead,
  .kamp-page-hero__lead > p,
  .kamp-page-hero__prose,
  .kamp-page-hero__prose p
) {
  text-align: left;
  text-justify: auto;
  hyphens: none;
  -webkit-hyphens: none;
  -ms-hyphens: none;
  overflow-wrap: normal;
  word-break: normal;
}

@media (max-width: 900px) {
  body.kamp-host .kamp-klocek--text-align-left :is(
    .kamp-section__lead,
    .kamp-section__lead p,
    .kamp-process__lead,
    .kamp-faq__lead,
    .kamp-faq__body,
    .kamp-prose,
    .kamp-prose p,
    .kamp-about-story__body,
    .kamp-about-story__body p,
    .kamp-rich-text__body,
    .kamp-rich-text__body p,
    .kamp-about-story__lead,
    .kamp-section__title,
    .kamp-about-story__title
  ),
  body.kamp-host .kamp-page-hero--text-align-left :is(
    .kamp-page-hero__title,
    .kamp-page-hero__media h1,
    .kamp-page-hero__lead,
    .kamp-page-hero__lead > p,
    .kamp-page-hero__prose,
    .kamp-page-hero__prose p
  ),
  body.kamp-host .kamp-klocek--text-align-right :is(
    .kamp-section__lead,
    .kamp-section__lead p,
    .kamp-process__lead,
    .kamp-faq__lead,
    .kamp-faq__body,
    .kamp-prose,
    .kamp-prose p,
    .kamp-about-story__body,
    .kamp-about-story__body p,
    .kamp-rich-text__body,
    .kamp-rich-text__body p,
    .kamp-about-story__lead,
    .kamp-section__title,
    .kamp-about-story__title
  ),
  body.kamp-host .kamp-page-hero--text-align-right :is(
    .kamp-page-hero__title,
    .kamp-page-hero__media h1,
    .kamp-page-hero__lead,
    .kamp-page-hero__lead > p,
    .kamp-page-hero__prose,
    .kamp-page-hero__prose p
  ),
  body.kamp-host .kamp-klocek--text-align-justify :is(
    .kamp-section__lead,
    .kamp-section__lead p,
    .kamp-process__lead,
    .kamp-faq__lead,
    .kamp-faq__body,
    .kamp-prose,
    .kamp-prose p,
    .kamp-about-story__body,
    .kamp-about-story__body p,
    .kamp-rich-text__body,
    .kamp-rich-text__body p,
    .kamp-about-story__lead,
    .kamp-section__title,
    .kamp-about-story__title
  ),
  body.kamp-host .kamp-page-hero--text-align-justify :is(
    .kamp-page-hero__lead,
    .kamp-page-hero__lead > p,
    .kamp-page-hero__prose,
    .kamp-page-hero__prose p
  ) {
    text-align: left;
    text-justify: auto;
    hyphens: none;
    -webkit-hyphens: none;
    -ms-hyphens: none;
    overflow-wrap: normal;
    word-break: normal;
  }
}

/* Rozciągnij do granic — jak mobile DNA: zero wcięć tytułu/leadu/body */
body.kamp-host .kamp-klocek--text-stretch {
  --kamp-klocek-title-inset: 0;
  --kamp-klocek-text-inset: 0;
}
body.kamp-host .kamp-klocek--text-stretch :is(
  .kamp-section__title,
  .kamp-section__title-row,
  .kamp-process__head,
  .kamp-section__lead,
  .kamp-process__lead,
  .kamp-faq__lead,
  .kamp-faq__body,
  .kamp-about-story__lead,
  .kamp-about-story__body,
  .kamp-rich-text__lead,
  .kamp-rich-text__body,
  .kamp-prose,
  .kamp-cta-band__lead,
  .kamp-spotlight__lead,
  .kamp-google-reviews__summary,
  .kamp-google-reviews__badge
) {
  padding-inline: 0;
  padding-inline-start: 0;
  max-width: none !important;
  width: 100%;
}
body.kamp-host .kamp-page-hero--text-stretch .kamp-page-hero__media,
body.kamp-host .kamp-page-hero--text-stretch .kamp-page-hero__copy,
body.kamp-host .kamp-page-hero--text-stretch .kamp-page-hero__title,
body.kamp-host .kamp-page-hero--text-stretch .kamp-page-hero__lead,
body.kamp-host .kamp-page-hero--text-stretch .kamp-page-hero__prose {
  max-width: none;
  width: 100%;
  padding-inline: 0;
}

/* Titles: never hyphenate / mid-word break (line wrap only at spaces). */
body.kamp-host :is(
  .kamp-section__title,
  .kamp-page-hero__title,
  .kamp-page-hero__media h1,
  .kamp-post-hero__title,
  .kamp-about-story__title,
  .kamp-rich-text__title,
  .kamp-cta-band__title,
  .kamp-stats__title,
  .kamp-stats-band__title,
  .kamp-contact-band__title,
  .kamp-media-band__title,
  .kamp-spotlight__title,
  .kamp-faq__title,
  .kamp-company-contact__title,
  .kamp-archive-teaser__title,
  .kamp-single__title,
  .kamp-area__title,
  .kamp-projects-empty__title,
  .kamp-promo-popup__title
),
body.kamp-host [class*="--text-align-"] :is(
  .kamp-section__title,
  .kamp-page-hero__title,
  .kamp-page-hero__media h1,
  .kamp-about-story__title,
  .kamp-rich-text__title,
  .kamp-cta-band__title,
  .kamp-stats__title,
  .kamp-stats-band__title,
  .kamp-contact-band__title,
  .kamp-media-band__title,
  .kamp-spotlight__title,
  .kamp-faq__title,
  .kamp-company-contact__title
) {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  -webkit-hyphens: none;
  -ms-hyphens: none;
}

.kamp-hint {
  margin: 0;
  color: var(--kamp-muted);
  font-size: 13px;
  line-height: 1.5;
}
.kamp-hint--on-dark {
  color: rgba(255, 255, 255, 0.72);
}
.kamp-empty {
  /* retired — keep as alias of hint */
  color: var(--kamp-muted);
  margin: 0;
  font-size: 13px;
}

/* Process: soft band + red + connectors */
.kamp-process__plus {
  display: block;
  font-family: var(--kamp-font);
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1;
  color: var(--kamp-red);
}
.kamp-process__num {
  font-family: var(--kamp-font);
  font-weight: 800;
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--kamp-muted);
}
body.kamp-host .kamp-process-block.kamp-section--soft .kamp-process__step,
body.kamp-host .kamp-think-block.kamp-section--soft .kamp-think__card {
  background: #fff;
}

/* Journal DNA */
body.kamp-host .kamp-journal__card {
  border-radius: var(--kamp-card-radius);
  background: #fff;
}
body.kamp-host .kamp-journal__eyebrow {
  color: var(--kamp-red);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
body.kamp-host .kamp-journal__card--archive h3,
body.kamp-host .kamp-journal__body h3 {
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  font-size: clamp(0.9rem, 1.5vw, 1.05rem);
}
body.kamp-host .kamp-journal__link.kamp-btn {
  color: var(--kamp-ink);
}
body.kamp-host .kamp-journal__card--archive:hover .kamp-journal__link.kamp-btn {
  color: var(--kamp-red);
  border-color: var(--kamp-red);
}

/* Social empty centered card */
body.kamp-host .kamp-social__fallback {
  justify-items: center;
  text-align: center;
  background: #fff;
  border-radius: var(--kamp-card-radius);
}
body.kamp-host .kamp-social__fallback .kamp-btn {
  background: #111;
  color: #fff;
  border-color: transparent;
}
body.kamp-host .kamp-youtube-embed .kamp-hint,
body.kamp-host .kamp-social-block .kamp-hint {
  text-align: center;
}

/* Segment pills — outline uppercase */
body.kamp-host .kamp-section .kamp-segment-pills a,
body.kamp-host .kamp-section .kamp-segment-pills__link {
  border: 1px solid #cfd3d8;
  background: transparent;
  color: var(--kamp-ink);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
  font-size: 11px;
  border-radius: var(--kamp-pill-radius);
}
body.kamp-host .kamp-section .kamp-segment-pills a[aria-current="page"],
body.kamp-host .kamp-section .kamp-segment-pills a:hover,
body.kamp-host .kamp-section .kamp-segment-pills__link.is-active,
body.kamp-host .kamp-section .kamp-segment-pills__link:hover {
  border-color: var(--kamp-ink);
  background: #fff;
  color: var(--kamp-ink);
}

/* Text / about */
body.kamp-host .kamp-about-story,
body.kamp-host .kamp-rich-text,
body.kamp-host .kamp-about-skills,
body.kamp-host .kamp-section.kamp-wcag {
  background: var(--kamp-content-bg);
  color: var(--kamp-ink);
}
body.kamp-host .kamp-rich-text__body p strong:first-child,
body.kamp-host .kamp-about-story__body p strong:first-child,
body.kamp-host .kamp-rich-text__body p b:first-child,
body.kamp-host .kamp-about-story__body p b:first-child {
  font-weight: 700;
  color: var(--kamp-ink);
}

/* Portfolio cards */
body.kamp-host .kamp-projects-grid__card,
body.kamp-host .kamp-projects-teaser__card,
body.kamp-host .kamp-project-spotlight,
body.kamp-host .kamp-archive-teaser__card {
  border-radius: var(--kamp-card-radius);
  background: #fff;
  border: 1px solid #e6e8eb;
  overflow: hidden;
}

/* Trust / content blocks — respect soft variant */
body.kamp-host .kamp-stats-band:not(.kamp-section--soft),
body.kamp-host .kamp-logo-strip:not(.kamp-section--soft),
body.kamp-host .kamp-testimonials:not(.kamp-section--soft),
body.kamp-host .kamp-google-reviews:not(.kamp-section--soft),
body.kamp-host .kamp-faq-block:not(.kamp-section--soft),
body.kamp-host .kamp-process-block:not(.kamp-section--soft),
body.kamp-host .kamp-think-block:not(.kamp-section--soft) {
  background: var(--kamp-content-bg);
  color: var(--kamp-ink);
}
body.kamp-host .kamp-stats-band.kamp-section--soft,
body.kamp-host .kamp-logo-strip.kamp-section--soft,
body.kamp-host .kamp-testimonials.kamp-section--soft,
body.kamp-host .kamp-google-reviews.kamp-section--soft,
body.kamp-host .kamp-faq-block.kamp-section--soft,
body.kamp-host .kamp-process-block.kamp-section--soft,
body.kamp-host .kamp-think-block.kamp-section--soft {
  background: var(--kamp-soft);
  color: var(--kamp-ink);
}
body.kamp-host .kamp-testimonials__card,
body.kamp-host .kamp-google-reviews__card {
  background: #fff;
  border: 1px solid #e6e8eb;
  border-radius: var(--kamp-card-radius);
}
body.kamp-host .kamp-faq-block:not(.kamp-faq-block--list-only) .kamp-faq__item {
  background: #fff;
  border: 1px solid #e6e8eb;
  border-radius: var(--kamp-card-radius);
}

/* CTA band — never inherit white content DNA; dark | red stay solid */
body.kamp-host .kamp-cta-band,
body.kamp-host .kamp-section.kamp-cta-band,
body.kamp-host .kamp-cta-band--dark,
body.kamp-host .kamp-section.kamp-cta-band--dark,
body.kamp-host .kamp-cta-band:not(.kamp-cta-band--red),
body.kamp-host .kamp-section.kamp-cta-band:not(.kamp-cta-band--red) {
  background: var(--kamp-dark, #0f1113);
  color: #fff;
  padding: var(--kamp-klocek-pad, clamp(28px, 4vw, 40px)) var(--kamp-gutter);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  box-shadow: none;
  max-width: none;
  width: 100%;
  margin: 0;
}
body.kamp-host .kamp-cta-band--red,
body.kamp-host .kamp-section.kamp-cta-band--red {
  background: var(--kamp-red, #c8102e);
  color: #fff;
  padding: var(--kamp-klocek-pad, clamp(28px, 4vw, 40px)) var(--kamp-gutter);
  border-top-color: transparent;
}
body.kamp-host .kamp-cta-band :is(h1, h2, h3),
body.kamp-host .kamp-cta-band .kamp-section__title,
body.kamp-host .kamp-cta-band__copy > :is(h1, h2, h3),
body.kamp-host .kamp-cta-band__lead,
body.kamp-host .kamp-cta-band p {
  color: #fff;
}
body.kamp-host .kamp-cta-band__lead {
  color: rgba(255, 255, 255, 0.78);
}
body.kamp-host .kamp-cta-band .kamp-btn {
  background: transparent;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.45);
  border-radius: var(--kamp-btn-radius, 3%);
}
body.kamp-host .kamp-cta-band .kamp-btn:hover,
body.kamp-host .kamp-cta-band .kamp-btn--ghost {
  background: transparent;
  color: #fff;
  border-color: var(--kamp-red);
}
body.kamp-host .kamp-cta-band--red .kamp-btn {
  border-color: rgba(255, 255, 255, 0.55);
  background: rgba(0, 0, 0, 0.12);
}
body.kamp-host .kamp-cta-band--red .kamp-btn:hover,
body.kamp-host .kamp-cta-band--red .kamp-btn--ghost:hover {
  background: var(--kamp-dark, #0f1113);
  border-color: var(--kamp-dark, #0f1113);
  color: #fff;
}
body.kamp-host .kamp-cta-band .kamp-btn--muted {
  background: transparent;
  color: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(255, 255, 255, 0.28);
}
body.kamp-host .kamp-cta-band__inner {
  max-width: var(--kamp-max);
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

/* Contact light DNA */
body.kamp-host .kamp-contact-band,
body.kamp-host .kamp-company-contact:not(.kamp-company-contact--glass) {
  background: var(--kamp-content-bg);
  color: var(--kamp-ink);
}
body.kamp-host .kamp-contact-form-block {
  background: var(--kamp-soft);
  color: var(--kamp-ink);
}

/* Media band */
body.kamp-host .kamp-media-band {
  background: var(--kamp-content-bg);
}

/* Kill dark-glass inheritance on white content band */
body.kamp-host #kamp-content .kamp-section:not(.kamp-cta-band):not(.kamp-section--soft) {
  background: var(--kamp-content-bg);
}
body.kamp-host #kamp-content .kamp-section.kamp-section--soft {
  background: var(--kamp-soft);
}

/* Capabilities list DNA (bold title + muted desc) */
body.kamp-host .kamp-capabilities__card h3 {
  font-weight: 800;
  font-size: 1rem;
}
body.kamp-host .kamp-capabilities__card p {
  color: var(--kamp-muted);
  font-size: 14px;
  line-height: 1.55;
}

/* Skills */
body.kamp-host .kamp-about-skills__item,
body.kamp-host .kamp-skills__item {
  border-radius: var(--kamp-card-radius);
}

/* Home areas / rail keep fused radius token */
body.kamp-host .kamp-area,
body.kamp-host .kamp-rail-card {
  border-radius: var(--kamp-rail-outer-radius, var(--kamp-card-radius));
}

/* Stats on content band: prefer light DNA even if variant=dark legacy */
body.kamp-host .kamp-stats-band.kamp-stats-band--dark {
  background: var(--kamp-soft);
  color: var(--kamp-ink);
}
body.kamp-host .kamp-stats-band--dark .kamp-stats-band__value {
  color: var(--kamp-ink);
}
body.kamp-host .kamp-stats-band--dark .kamp-stats-band__label {
  color: var(--kamp-muted);
}
body.kamp-host .kamp-faq-block:not(.kamp-faq-block--list-only) .kamp-faq__item {
  border-radius: var(--kamp-card-radius);
  background: #fff;
  border: 1px solid #e6e8eb;
  padding: 4px 16px;
  margin: 0 0 10px;
}
body.kamp-host .kamp-faq-block--list-only .kamp-faq__item,
body.kamp-host .kamp-faq-block--list-only .kamp-faq__item--plain {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 8px 0;
  margin: 0;
  box-shadow: none;
}
body.kamp-host .kamp-about-skills ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px 28px;
}
body.kamp-host .kamp-about-skills li {
  font-weight: 700;
  font-size: 15px;
  color: var(--kamp-ink);
  display: flex;
  align-items: center;
  gap: 10px;
}
body.kamp-host .kamp-youtube-embed__empty {
  display: grid;
  gap: 14px;
  justify-items: center;
  text-align: center;
  padding: clamp(36px, 5vw, 56px) 28px;
  border-radius: var(--kamp-card-radius);
  background: #fff;
  border: 1px solid #e6e8eb;
}
body.kamp-host .kamp-rich-text__body,
body.kamp-host .kamp-about-story__body {
  font-size: var(--kamp-klocek-lead, 15px);
  line-height: 1.6;
  color: var(--kamp-muted);
  max-width: none;
  width: 100%;
  text-wrap: pretty;
}
body.kamp-host .kamp-rich-text__body strong,
body.kamp-host .kamp-about-story__body strong,
body.kamp-host .kamp-rich-text__body b,
body.kamp-host .kamp-about-story__body b {
  font-weight: 700;
  color: var(--kamp-ink);
}

/* Portfolio grid / teaser — rail DNA (photo | label), nie surowy WP link */
body.kamp-host .kamp-grid--projects .kamp-card:not(.kamp-card--project),
body.kamp-host .kamp-projects-teaser .kamp-card:not(.kamp-card--project),
body.kamp-host .kamp-spotlight__card {
  border-radius: var(--kamp-card-radius);
  overflow: hidden;
}
/* Project cards: always edge-to-edge cover (mobile + desktop). */
body.kamp-host .kamp-card--project .kamp-card__media {
  width: 100%;
  overflow: hidden;
}
body.kamp-host .kamp-card--project .kamp-card__img,
body.kamp-host .kamp-card--project .kamp-card__img--empty {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  min-width: 0;
  min-height: 0;
  aspect-ratio: unset;
  object-fit: cover;
  object-position: center;
}

body.kamp-host .kamp-card--project,
body.kamp-host .kamp-card--project:link,
body.kamp-host .kamp-card--project:visited,
body.kamp-host .kamp-card--project:hover,
body.kamp-host .kamp-card--project:active {
  color: inherit;
  text-decoration: none;
  border-radius: 0;
  overflow: visible;
  background: transparent;
  border: 0;
  box-shadow: none;
}
@media (max-width: 900px) {
  body.kamp-host .kamp-card--project,
  body.kamp-host .kamp-card--project:link,
  body.kamp-host .kamp-card--project:visited,
  body.kamp-host .kamp-card--project:hover,
  body.kamp-host .kamp-card--project:active {
    border-radius: var(--kamp-card-radius, 12px);
    overflow: hidden;
    background: #0f1113;
    box-shadow: 0 8px 24px rgba(15, 17, 19, 0.1);
  }
  body.kamp-host .kamp-projects-teaser .kamp-card--project,
  body.kamp-host .kamp-grid--projects .kamp-card--project,
  body.kamp-host .kamp-project-related .kamp-card--project {
    width: 100%;
    max-width: 100%;
  }
}
body.kamp-host .kamp-page__blocks a:not(.kamp-btn):not(.kamp-segment-pills__link):not(.kamp-portfolio-nav__link):not(.kamp-projects-board__all):not(.kamp-projects-board__mix-link),
body.kamp-host #kamp-content a:not(.kamp-btn):not(.kamp-segment-pills__link):not(.kamp-portfolio-nav__link):not(.kamp-projects-board__all):not(.kamp-projects-board__mix-link) {
  color: inherit;
  text-decoration: none;
}
body.kamp-host .kamp-section__more .kamp-btn {
  background: #111;
  color: #fff;
  border-radius: var(--kamp-btn-radius, 3%);
}


/* ==========================================================================
   SFX 1.8.0 — seasonal atoms (outside / edge of box only)
   ========================================================================== */

.kamp-page-hero__atmosphere {
  position: absolute;
  inset: 0;
  z-index: 2;
  overflow: hidden;
  pointer-events: none;
}
.kamp-page-hero__atmosphere canvas,
.kamp-page-hero__atmosphere .kamp-page-hero__fx {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 2;
}
.kamp-page-hero__atmosphere .kamp-page-hero__fx--moths {
  z-index: 3;
}
.kamp-page-hero__atmosphere .kamp-page-hero__cast-wash,
.kamp-page-hero__atmosphere .kamp-page-hero__cast-penumbra {
  z-index: 2;
}
.kamp-page-hero__atmosphere .kamp-page-hero__cast-penumbra {
  z-index: 1;
}
.kamp-page-hero__atmosphere .kamp-page-hero__light-dim {
  z-index: 0;
}

.kamp-cta-band--layout-centered .kamp-cta-band__inner,
.kamp-cta-band--layout-centered .kamp-cta-band__inner {
  justify-content: center;
  flex-direction: column;
  text-align: center;
}
.kamp-cta-band--layout-centered .kamp-cta-band__copy {
  align-items: center;
}

/* Section title + icon */
.kamp-section__title-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 var(--kamp-klocek-head-gap, 1rem);
}
.kamp-section__title-row .kamp-section__title {
  margin: 0;
}
.kamp-section__title-icon,
.kamp-process__head-icon {
  width: 32px;
  height: 32px;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  flex: 0 0 auto;
  border-radius: var(--kamp-card-radius);
}

/* Global: odstęp nagłówek → lead/tekst jak „Jak myślę?” */
body.kamp-host .kamp-klocek:not(.kamp-cta-band) > .kamp-section__title {
  margin-bottom: var(--kamp-klocek-head-gap, 1rem);
}
body.kamp-host .kamp-klocek .kamp-section__lead,
body.kamp-host .kamp-klocek .kamp-process__lead,
body.kamp-host .kamp-klocek .kamp-faq__lead {
  margin-top: 0;
}
body.kamp-host .kamp-process__head {
  margin: 0 0 var(--kamp-klocek-head-gap, 1rem);
}
body.kamp-host .kamp-process__step h3 {
  margin: 0 0 var(--kamp-klocek-head-gap, 1rem);
}
body.kamp-host .kamp-process__step p,
body.kamp-host .kamp-process__step .kamp-process__text {
  margin-top: 0;
}

/* Company contact — light card (default) aligns with google-reviews / FAQ cards */
.kamp-company-contact:not(.kamp-company-contact--glass) .kamp-company-contact__card {
  background: #fff;
  border: 1px solid #e6e8eb;
  border-radius: var(--kamp-card-radius);
  box-shadow: 0 8px 22px rgba(26, 29, 33, 0.06);
}
.kamp-company-contact:not(.kamp-company-contact--glass) .kamp-company-contact__title,
.kamp-company-contact:not(.kamp-company-contact--glass) .kamp-section__title {
  color: var(--kamp-ink);
}
.kamp-company-contact:not(.kamp-company-contact--glass) .kamp-company-contact__text {
  color: var(--kamp-ink);
}
.kamp-company-contact:not(.kamp-company-contact--glass) .kamp-company-contact__text p {
  color: var(--kamp-muted);
}
.kamp-company-contact:not(.kamp-company-contact--glass) .kamp-company-contact__text a {
  color: var(--kamp-ink);
  text-decoration: none;
}
.kamp-company-contact:not(.kamp-company-contact--glass) .kamp-company-contact__text a:hover,
.kamp-company-contact:not(.kamp-company-contact--glass) .kamp-company-contact__text a:focus-visible {
  color: var(--kamp-red);
  text-decoration: underline;
}
.kamp-company-contact:not(.kamp-company-contact--glass) .kamp-company-contact__icon img {
  filter: none;
}
/* Optional glass twin (panel: wariant Szkło) — hero DNA */
.kamp-company-contact--glass .kamp-company-contact__card {
  width: min(100%, var(--kamp-hero-card-max));
  margin-inline: auto;
  grid-template-columns: var(--kamp-hero-media-col) minmax(0, 1fr);
  padding: var(--kamp-hero-card-pad) clamp(20px, 3vw, 32px);
  background: var(--kamp-glass-card-bg, rgba(12, 14, 16, 0.72));
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 0;
  border-left: 5px solid var(--kamp-hero-side, var(--kamp-red));
  border-right: 5px solid var(--kamp-hero-side, var(--kamp-red));
  border-radius: var(--kamp-hero-card-radius, 3%);
  box-shadow:
    0 0 18px rgba(200, 16, 46, 0.18),
    0 24px 60px rgba(0, 0, 0, 0.4);
  color: #fff;
}
@media (min-width: 901px) {
  .kamp-company-contact--glass .kamp-company-contact__card {
    width: min(var(--kamp-hero-card-width), var(--kamp-hero-card-max));
  }
}
.kamp-company-contact--glass .kamp-company-contact__media {
  justify-items: center;
  text-align: center;
}
.kamp-company-contact--glass .kamp-company-contact__title {
  color: #fff;
  font-size: var(--kamp-hero-title-size);
}
.kamp-company-contact--glass .kamp-company-contact__text,
.kamp-company-contact--glass .kamp-company-contact__text p {
  color: rgba(255, 255, 255, 0.92);
}
.kamp-company-contact--glass .kamp-company-contact__text a {
  color: #fff;
  text-decoration: none;
}
.kamp-company-contact--glass .kamp-company-contact__text a:hover,
.kamp-company-contact--glass .kamp-company-contact__text a:focus-visible {
  text-decoration: underline;
}
.kamp-company-contact--glass .kamp-company-contact__icon {
  width: var(--kamp-hero-icon-size);
  height: var(--kamp-hero-icon-size);
}
.kamp-company-contact--glass .kamp-company-contact__icon img {
  filter: brightness(0) invert(1);
}
.kamp-company-contact--glass .kamp-company-contact__cta {
  justify-content: center;
}

/* Google review cards — equal-height row; author pinned to bottom (PC) */
.kamp-google-reviews__summary a,
.kamp-google-reviews__badge a {
  color: inherit;
  text-decoration: none;
}
.kamp-google-reviews__item {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #fff;
  border: 1px solid #e6e8eb;
  border-radius: var(--kamp-card-radius);
  padding: 18px 16px;
  box-shadow: 0 8px 22px rgba(26, 29, 33, 0.06);
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
  color: var(--kamp-ink);
  text-decoration: none;
}
.kamp-google-reviews__item,
.kamp-google-reviews__item * {
  text-decoration: none;
}
.kamp-google-reviews__item blockquote {
  margin: 0 0 12px;
  flex: 1 1 auto;
  color: var(--kamp-ink);
  text-decoration: none;
  text-align: start;
}
.kamp-google-reviews__author {
  margin: 0;
  margin-top: auto;
  padding-top: 12px;
  font-weight: 600;
  color: var(--kamp-ink);
  text-decoration: none;
}
.kamp-google-reviews__item:hover {
  border-color: rgba(200, 16, 46, 0.35);
  box-shadow: 0 10px 28px rgba(200, 16, 46, 0.12);
}

/* Hero box SFX layers */
.kamp-page-hero__box-fx {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 4;
}
.kamp-page-hero__box-fx--external {
  z-index: 5;
  overflow: visible;
}
.kamp-page-hero__box-fx--internal {
  z-index: 1;
  inset: var(--kamp-card-top, 0) var(--kamp-card-right, auto) auto var(--kamp-card-left, 0);
  width: var(--kamp-card-width, 100%);
  height: var(--kamp-card-height, 100%);
}
.kamp-page-hero__box-fx--external .kamp-sfx--layer-external {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: visible;
}
/* Hide frost/edge addons until JS sets --kamp-card-* (avoids TL ghost at 0,0). */
.kamp-page-hero:not([data-kamp-card-ready="1"]) .kamp-page-hero__box-fx--external .kamp-sfx--snow-cap,
.kamp-page-hero:not([data-kamp-card-ready="1"]) .kamp-page-hero__box-fx--external .kamp-sfx--dew-sparkle,
.kamp-page-hero:not([data-kamp-card-ready="1"]) .kamp-page-hero__box-fx--external .kamp-sfx--leaf-catch,
.kamp-page-hero:not([data-kamp-card-ready="1"]) .kamp-page-hero__box-fx--external .kamp-sfx--blossom-petals,
.kamp-page-hero:not([data-kamp-card-ready="1"]) .kamp-page-hero__box-fx--external .kamp-sfx--rain-drip,
.kamp-page-hero:not([data-kamp-card-ready="1"]) .kamp-page-hero__box-fx--external .kamp-sfx--wind-chime,
.kamp-page-hero:not([data-kamp-card-ready="1"]) .kamp-page-hero__box-fx--external .kamp-sfx--fog-box {
  opacity: 0 !important;
  visibility: hidden;
}
.kamp-page-hero__box-fx--external .kamp-sfx--snow-cap.kamp-sfx--layer-external,
.kamp-page-hero__box-fx--external .kamp-sfx--dew-sparkle.kamp-sfx--layer-external {
  /* Do NOT use inset shorthand here — it overrides left/top in the same rule. */
  top: var(--kamp-card-top, 0px);
  right: auto;
  bottom: auto;
  left: var(--kamp-card-left, 0px);
  width: var(--kamp-card-width, 0px);
  height: var(--kamp-card-height, 0px);
  overflow: hidden;
  border-radius: var(--kamp-hero-card-radius);
  z-index: 6;
}
.kamp-page-hero__box-fx--external .kamp-sfx--leaf-catch.kamp-sfx--layer-external,
.kamp-page-hero__box-fx--external .kamp-sfx--blossom-petals.kamp-sfx--layer-external,
.kamp-page-hero__box-fx--external .kamp-sfx--rain-drip.kamp-sfx--layer-external {
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: auto;
  height: auto;
}
.kamp-page-hero__box-fx--external .kamp-sfx--leaf-catch::before,
.kamp-sfx--leaf-catch.kamp-sfx--layer-external::before {
  left: calc(var(--kamp-card-left) + var(--kamp-card-width) * 0.06);
  width: calc(var(--kamp-card-width) * 0.84);
  right: auto;
  top: calc(var(--kamp-card-top) - var(--kamp-sfx-edge-gap, 2px) - 10px);
}
.kamp-page-hero__box-fx--external .kamp-sfx--rain-drip::after,
.kamp-sfx--rain-drip.kamp-sfx--layer-external::after {
  content: "";
  display: block;
  left: calc(var(--kamp-card-left) + var(--kamp-card-width) * 0.04);
  width: calc(var(--kamp-card-width) * 0.92);
  right: auto;
  top: calc(var(--kamp-card-top) + var(--kamp-card-height) + var(--kamp-sfx-edge-gap, 2px));
  height: calc(min(22vh, 148px) * (0.55 + 0.9 * var(--kamp-addon-rain-drip-pathLength, 0.55)));
  z-index: 7;
}
.kamp-page-hero__box-fx--external .kamp-sfx--blossom-petals::before,
.kamp-sfx--blossom-petals.kamp-sfx--layer-external::before {
  left: calc(var(--kamp-card-left) + var(--kamp-card-width) * 0.04);
  width: calc(var(--kamp-card-width) * 0.88);
  right: auto;
  top: calc(var(--kamp-card-top) - var(--kamp-sfx-edge-gap, 2px) - 10px);
}
.kamp-page-hero__box-fx--external .kamp-sfx--snow-cap::before,
.kamp-page-hero__box-fx--external .kamp-sfx--snow-cap::after {
  left: 0;
  right: 0;
  top: 0;
  width: 100%;
  height: 100%;
}
.kamp-page-hero__box-fx--external .kamp-sfx--wind-chime,
.kamp-sfx--wind-chime.kamp-sfx--layer-external {
  left: calc(var(--kamp-card-left) - 10px + (var(--kamp-card-width) - 52px) * var(--kamp-addon-wind-chime-posX, 0.5));
  top: calc(var(--kamp-card-top) + var(--kamp-card-height) - 6px);
  width: 52px;
  height: 96px;
  transform-origin: 50% 0;
  animation: kamp-wind-chime-sway calc(7.2s - 4s * var(--kamp-addon-wind-chime-tempo, 0.5)) ease-in-out infinite;
  --kamp-wind-amp: calc(2deg + 4deg * var(--kamp-addon-wind-chime-amplitude, 0.5));
}
.kamp-sfx--fog-box.kamp-sfx--layer-external::before {
  content: "";
  position: absolute;
  left: var(--kamp-card-left);
  width: var(--kamp-card-width);
  top: calc(var(--kamp-card-top) + var(--kamp-card-height) - 8px);
  height: min(14vh, 120px);
  background: linear-gradient(180deg, rgba(235, 240, 248, 0.35), transparent 85%);
  filter: blur(16px);
  opacity: calc(0.35 + 0.35 * var(--kamp-sfx-i, 0.68));
  pointer-events: none;
}

/* Vanilla lightning layer */
.kamp-lightning-layer {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.08s ease;
}
.kamp-lightning-layer.is-flash {
  opacity: calc(0.35 + 0.55 * var(--kamp-sfx-i, 0.68));
}
.kamp-lightning-svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.kamp-lightning-core {
  fill: none;
  stroke: #fff;
  stroke-width: 2.2;
  stroke-linecap: round;
  filter: drop-shadow(0 0 8px #fff);
}
.kamp-lightning-glow {
  fill: none;
  stroke: rgba(180, 210, 255, 0.85);
  stroke-width: 6;
  stroke-linecap: round;
  opacity: 0.55;
}
.kamp-page-hero__light-dim.is-flash {
  opacity: calc(0.12 + 0.28 * var(--kamp-sfx-i, 0.68)) !important;
  transition: opacity 0.06s ease;
}
.kamp-page-hero__fx--lightning,
.kamp-page-hero[data-kamp-hero-fx="lightning"] .kamp-page-hero__fx--lightning {
  display: none !important;
}

/* Szron — zamarznięcie krawędzi i narożników boxa (środek czysty) */
.kamp-sfx--snow-cap.kamp-sfx--surface-box::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 8;
  pointer-events: none;
  border-radius: inherit;
  background:
    radial-gradient(ellipse 42% 34% at 0% 0%, rgba(255, 255, 255, 0.78) 0%, rgba(210, 232, 255, 0.42) 42%, transparent 72%),
    radial-gradient(ellipse 38% 32% at 100% 0%, rgba(255, 255, 255, 0.74) 0%, rgba(200, 226, 255, 0.38) 44%, transparent 70%),
    radial-gradient(ellipse 34% 28% at 0% 100%, rgba(230, 244, 255, 0.55) 0%, rgba(180, 214, 245, 0.22) 48%, transparent 74%),
    radial-gradient(ellipse 32% 26% at 100% 100%, rgba(228, 242, 255, 0.5) 0%, rgba(176, 210, 242, 0.2) 50%, transparent 74%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.55) 0%, rgba(220, 236, 252, 0.22) 18%, transparent 38%),
    linear-gradient(90deg, rgba(220, 238, 255, 0.28) 0%, transparent 14%, transparent 86%, rgba(220, 238, 255, 0.28) 100%);
  -webkit-mask-image: radial-gradient(ellipse calc(58% + 20% * var(--kamp-addon-snow-cap-edgeCoverage, 0.6)) calc(48% + 18% * var(--kamp-addon-snow-cap-edgeCoverage, 0.6)) at 50% 54%, transparent calc(36% - 10% * var(--kamp-addon-snow-cap-thickness, 0.55)), #000 calc(72% + 12% * var(--kamp-addon-snow-cap-thickness, 0.55)));
  mask-image: radial-gradient(ellipse calc(58% + 20% * var(--kamp-addon-snow-cap-edgeCoverage, 0.6)) calc(48% + 18% * var(--kamp-addon-snow-cap-edgeCoverage, 0.6)) at 50% 54%, transparent calc(36% - 10% * var(--kamp-addon-snow-cap-thickness, 0.55)), #000 calc(72% + 12% * var(--kamp-addon-snow-cap-thickness, 0.55)));
  opacity: calc((0.78 + 0.22 * var(--kamp-sfx-i, 0.68)) * (0.45 + 0.85 * var(--kamp-addon-snow-cap-opacity, 0.7)));
}
.kamp-sfx--snow-cap.kamp-sfx--surface-box::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 9;
  pointer-events: none;
  border-radius: inherit;
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.35),
    inset 0 10px 18px rgba(210, 230, 255, 0.22),
    inset 0 -6px 14px rgba(180, 210, 240, 0.12);
  background:
    radial-gradient(circle 3px at 6% 8%, #fff 0%, rgba(210, 235, 255, 0.7) 45%, transparent 70%),
    radial-gradient(circle 2px at 12% 4%, #fff 0%, transparent 70%),
    radial-gradient(circle 2.5px at 22% 7%, rgba(255, 255, 255, 0.95) 0%, transparent 68%),
    radial-gradient(circle 3px at 78% 5%, #fff 0%, rgba(210, 235, 255, 0.65) 48%, transparent 72%),
    radial-gradient(circle 2px at 88% 9%, #fff 0%, transparent 70%),
    radial-gradient(circle 2.5px at 94% 4%, rgba(255, 255, 255, 0.9) 0%, transparent 68%),
    radial-gradient(circle 2px at 4% 22%, rgba(230, 245, 255, 0.85) 0%, transparent 70%),
    radial-gradient(circle 2px at 96% 28%, rgba(230, 245, 255, 0.8) 0%, transparent 70%),
    radial-gradient(circle 2.5px at 8% 92%, #fff 0%, transparent 72%),
    radial-gradient(circle 2px at 91% 90%, #fff 0%, transparent 70%);
  -webkit-mask-image: radial-gradient(ellipse calc(60% + 20% * var(--kamp-addon-snow-cap-edgeCoverage, 0.6)) calc(50% + 18% * var(--kamp-addon-snow-cap-edgeCoverage, 0.6)) at 50% 54%, transparent calc(40% - 8% * var(--kamp-addon-snow-cap-thickness, 0.55)), #000 calc(78% + 10% * var(--kamp-addon-snow-cap-thickness, 0.55)));
  mask-image: radial-gradient(ellipse calc(60% + 20% * var(--kamp-addon-snow-cap-edgeCoverage, 0.6)) calc(50% + 18% * var(--kamp-addon-snow-cap-edgeCoverage, 0.6)) at 50% 54%, transparent calc(40% - 8% * var(--kamp-addon-snow-cap-thickness, 0.55)), #000 calc(78% + 10% * var(--kamp-addon-snow-cap-thickness, 0.55)));
  opacity: calc((0.7 + 0.3 * var(--kamp-sfx-i, 0.68)) * (0.45 + 0.85 * var(--kamp-addon-snow-cap-opacity, 0.7)));
}

/* Rain drips — wyraźne krople spadające z dolnej krawędzi */
.kamp-sfx--rain-drip.kamp-sfx--surface-box::after {
  content: "";
  position: absolute;
  left: 4%;
  right: 4%;
  top: 100%;
  height: calc(min(22vh, 148px) * (0.55 + 0.9 * var(--kamp-addon-rain-drip-pathLength, 0.55)));
  z-index: 7;
  pointer-events: none;
  opacity: calc((0.88 + 0.12 * var(--kamp-sfx-i, 0.68)) * (0.45 + 0.9 * var(--kamp-addon-rain-drip-density, 0.55)));
  -webkit-mask-image: linear-gradient(180deg, #000 8%, #000 62%, transparent 100%);
  mask-image: linear-gradient(180deg, #000 8%, #000 62%, transparent 100%);
  filter: drop-shadow(0 0 8px rgba(140, 200, 255, 0.45));
  mix-blend-mode: screen;
  background:
    radial-gradient(circle 5px at 9% 0%, #fff 0%, rgba(200, 235, 255, 0.85) 55%, transparent 72%),
    linear-gradient(180deg, rgba(210, 240, 255, 0.95) 0%, rgba(150, 200, 255, 0.55) 55%, transparent 100%) 9.5% 4px / 2px 36px no-repeat,
    radial-gradient(circle 4px at 24% 0%, #fff 0%, rgba(195, 230, 255, 0.8) 52%, transparent 70%),
    linear-gradient(180deg, rgba(205, 238, 255, 0.9) 0%, rgba(140, 190, 255, 0.5) 58%, transparent 100%) 24.5% 3px / 1.5px 28px no-repeat,
    radial-gradient(circle 5px at 41% 0%, #fff 0%, rgba(210, 242, 255, 0.88) 54%, transparent 71%),
    linear-gradient(180deg, rgba(215, 245, 255, 0.92) 0%, rgba(145, 195, 255, 0.52) 60%, transparent 100%) 41.5% 5px / 2px 42px no-repeat,
    radial-gradient(circle 4px at 57% 0%, #fff 0%, rgba(198, 232, 255, 0.82) 53%, transparent 69%),
    linear-gradient(180deg, rgba(208, 240, 255, 0.88) 0%, rgba(138, 188, 255, 0.48) 57%, transparent 100%) 57.5% 2px / 1.5px 32px no-repeat,
    radial-gradient(circle 5px at 73% 0%, #fff 0%, rgba(205, 238, 255, 0.86) 55%, transparent 72%),
    linear-gradient(180deg, rgba(212, 244, 255, 0.94) 0%, rgba(148, 198, 255, 0.54) 59%, transparent 100%) 73.5% 4px / 2px 38px no-repeat,
    radial-gradient(circle 4px at 88% 0%, #fff 0%, rgba(192, 228, 255, 0.78) 51%, transparent 68%),
    linear-gradient(180deg, rgba(200, 236, 255, 0.86) 0%, rgba(135, 185, 255, 0.46) 56%, transparent 100%) 88.5% 3px / 1.5px 30px no-repeat;
  background-repeat: no-repeat;
  animation: kamp-rain-drip calc(2.8s - 1.6s * var(--kamp-addon-rain-drip-speed, 0.5)) ease-in-out infinite;
}
@keyframes kamp-rain-drip {
  0%, 100% {
    transform: translateY(0);
    opacity: calc(0.82 + 0.18 * var(--kamp-sfx-i, 0.68));
  }
  50% {
    transform: translateY(12px);
    opacity: calc(0.94 + 0.06 * var(--kamp-sfx-i, 0.68));
  }
}

/* Leaf catch on top edge */
.kamp-sfx--leaf-catch.kamp-sfx--surface-box::before {
  content: "";
  position: absolute;
  left: calc(6% + 20% * var(--kamp-addon-leaf-catch-position, 0.3));
  right: calc(10% - 8% * var(--kamp-addon-leaf-catch-position, 0.3));
  top: -10px;
  height: calc(14px + 12px * var(--kamp-addon-leaf-catch-size, 0.5));
  z-index: 6;
  pointer-events: none;
  background:
    radial-gradient(ellipse 12px 8px at 18% 70%, #c45a1a 50%, transparent 70%),
    radial-gradient(ellipse 10px 7px at 42% 40%, #a84812 50%, transparent 70%),
    radial-gradient(ellipse 11px 8px at 68% 65%, #d4782e 50%, transparent 70%),
    radial-gradient(ellipse 9px 6px at 88% 45%, #8f3a10 50%, transparent 70%);
  opacity: calc((0.7 + 0.3 * var(--kamp-sfx-i, 0.68)) * (0.4 + 0.9 * var(--kamp-addon-leaf-catch-count, 0.5)));
  transform: scale(calc(0.75 + 0.55 * var(--kamp-addon-leaf-catch-size, 0.5)));
  transform-origin: 50% 100%;
}

/* Cherry blossom petals on top edge */
.kamp-sfx--blossom-petals.kamp-sfx--surface-box::before {
  content: "";
  position: absolute;
  left: 4%;
  right: 8%;
  top: -11px;
  height: calc(16px + 10px * var(--kamp-addon-blossom-petals-density, 0.55));
  z-index: 6;
  pointer-events: none;
  background:
    radial-gradient(ellipse 14px 9px at 14% 62%, color-mix(in srgb, #f4b8c8 calc(100% - 55% * var(--kamp-addon-blossom-petals-color, 0.4)), #ffeef4) 46%, transparent 72%),
    radial-gradient(ellipse 11px 8px at 32% 42%, color-mix(in srgb, #ffd4e0 calc(100% - 55% * var(--kamp-addon-blossom-petals-color, 0.4)), #fff6fa) 50%, transparent 70%),
    radial-gradient(ellipse 12px 8px at 54% 68%, color-mix(in srgb, #f8a0b8 calc(100% - 55% * var(--kamp-addon-blossom-petals-color, 0.4)), #ffe8ef) 48%, transparent 72%),
    radial-gradient(ellipse 10px 7px at 72% 38%, #ffe8ef 52%, transparent 70%),
    radial-gradient(ellipse 13px 9px at 90% 58%, color-mix(in srgb, #f0a8bc calc(100% - 55% * var(--kamp-addon-blossom-petals-color, 0.4)), #fff0f4) 45%, transparent 72%);
  filter: blur(0.2px);
  opacity: calc((0.72 + 0.28 * var(--kamp-sfx-i, 0.68)) * (0.45 + 0.85 * var(--kamp-addon-blossom-petals-density, 0.55)));
  animation: kamp-veil-a calc(18s - 10s * var(--kamp-addon-blossom-petals-drift, 0.45)) ease-in-out infinite alternate;
}

/* Krople spływające po szkle boxa */
.kamp-sfx--dew-sparkle.kamp-sfx--surface-box::before,
.kamp-sfx--dew-sparkle.kamp-sfx--surface-box::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -30%;
  height: 160%;
  z-index: 8;
  pointer-events: none;
  mix-blend-mode: screen;
  filter: drop-shadow(0 0 4px rgba(150, 210, 255, 0.35));
  background-repeat: no-repeat;
}
.kamp-sfx--dew-sparkle.kamp-sfx--surface-box::before {
  opacity: calc((0.82 + 0.18 * var(--kamp-sfx-i, 0.68)) * (0.45 + 0.85 * var(--kamp-addon-dew-sparkle-density, 0.55)));
  filter: drop-shadow(0 0 calc(2px + 6px * var(--kamp-addon-dew-sparkle-sparkle, 0.5)) rgba(150, 210, 255, calc(0.2 + 0.4 * var(--kamp-addon-dew-sparkle-sparkle, 0.5))));
  transform: scale(calc(0.8 + 0.45 * var(--kamp-addon-dew-sparkle-size, 0.5)));
  transform-origin: 50% 0;
  background:
    radial-gradient(ellipse 5px 8px at 8% 6%, #fff 0%, rgba(200, 235, 255, 0.75) 42%, transparent 70%),
    linear-gradient(180deg, rgba(220, 245, 255, 0.7) 0%, rgba(150, 200, 255, 0.2) 70%, transparent 100%) 8.4% 7% / 1.5px 28px no-repeat,
    radial-gradient(ellipse 4px 7px at 22% 18%, #fff 0%, rgba(195, 230, 255, 0.7) 40%, transparent 68%),
    linear-gradient(180deg, rgba(210, 240, 255, 0.65) 0%, rgba(140, 190, 255, 0.18) 72%, transparent 100%) 22.3% 19% / 1.5px 22px no-repeat,
    radial-gradient(ellipse 5px 9px at 37% 4%, #fff 0%, rgba(205, 238, 255, 0.78) 44%, transparent 72%),
    linear-gradient(180deg, rgba(225, 248, 255, 0.72) 0%, rgba(145, 195, 255, 0.22) 68%, transparent 100%) 37.4% 5% / 2px 34px no-repeat,
    radial-gradient(ellipse 4px 7px at 54% 14%, #fff 0%, rgba(198, 232, 255, 0.72) 41%, transparent 70%),
    linear-gradient(180deg, rgba(208, 240, 255, 0.62) 0%, rgba(138, 188, 255, 0.16) 70%, transparent 100%) 54.3% 15% / 1.5px 24px no-repeat,
    radial-gradient(ellipse 5px 8px at 69% 9%, #fff 0%, rgba(210, 242, 255, 0.76) 43%, transparent 71%),
    linear-gradient(180deg, rgba(218, 246, 255, 0.7) 0%, rgba(148, 198, 255, 0.2) 66%, transparent 100%) 69.4% 10% / 2px 30px no-repeat,
    radial-gradient(ellipse 4px 6px at 84% 20%, #fff 0%, rgba(192, 228, 255, 0.68) 40%, transparent 68%),
    linear-gradient(180deg, rgba(200, 236, 255, 0.6) 0%, rgba(130, 185, 255, 0.15) 72%, transparent 100%) 84.3% 21% / 1.5px 20px no-repeat,
    radial-gradient(ellipse 5px 8px at 93% 7%, #fff 0%, rgba(215, 245, 255, 0.74) 42%, transparent 70%),
    linear-gradient(180deg, rgba(222, 247, 255, 0.68) 0%, rgba(142, 192, 255, 0.18) 68%, transparent 100%) 93.4% 8% / 1.5px 26px no-repeat;
  animation: kamp-glass-drip-a 7.2s linear infinite;
}
.kamp-sfx--dew-sparkle.kamp-sfx--surface-box::after {
  opacity: calc((0.7 + 0.28 * var(--kamp-sfx-i, 0.68)) * (0.4 + 0.85 * var(--kamp-addon-dew-sparkle-density, 0.55)));
  transform: scale(calc(0.8 + 0.45 * var(--kamp-addon-dew-sparkle-size, 0.5)));
  transform-origin: 50% 0;
  background:
    radial-gradient(ellipse 4px 7px at 14% 12%, #fff 0%, rgba(200, 234, 255, 0.7) 42%, transparent 70%),
    linear-gradient(180deg, rgba(210, 240, 255, 0.62) 0%, rgba(140, 190, 255, 0.16) 70%, transparent 100%) 14.3% 13% / 1.5px 24px no-repeat,
    radial-gradient(ellipse 5px 9px at 31% 2%, #fff 0%, rgba(208, 240, 255, 0.76) 44%, transparent 72%),
    linear-gradient(180deg, rgba(220, 246, 255, 0.7) 0%, rgba(148, 198, 255, 0.2) 66%, transparent 100%) 31.4% 3% / 2px 32px no-repeat,
    radial-gradient(ellipse 4px 6px at 48% 22%, #fff 0%, rgba(190, 226, 255, 0.66) 40%, transparent 68%),
    linear-gradient(180deg, rgba(198, 232, 255, 0.58) 0%, rgba(128, 182, 255, 0.14) 72%, transparent 100%) 48.3% 23% / 1.5px 18px no-repeat,
    radial-gradient(ellipse 5px 8px at 63% 8%, #fff 0%, rgba(212, 242, 255, 0.74) 43%, transparent 71%),
    linear-gradient(180deg, rgba(216, 244, 255, 0.66) 0%, rgba(145, 195, 255, 0.18) 68%, transparent 100%) 63.4% 9% / 2px 28px no-repeat,
    radial-gradient(ellipse 4px 7px at 78% 16%, #fff 0%, rgba(196, 230, 255, 0.7) 41%, transparent 69%),
    linear-gradient(180deg, rgba(206, 238, 255, 0.6) 0%, rgba(135, 188, 255, 0.16) 70%, transparent 100%) 78.3% 17% / 1.5px 22px no-repeat,
    radial-gradient(ellipse 5px 8px at 90% 4%, #fff 0%, rgba(218, 246, 255, 0.78) 42%, transparent 70%),
    linear-gradient(180deg, rgba(224, 248, 255, 0.7) 0%, rgba(150, 200, 255, 0.2) 67%, transparent 100%) 90.4% 5% / 2px 30px no-repeat;
  animation: kamp-glass-drip-b 9.4s linear infinite;
  animation-delay: -3.2s;
}
@keyframes kamp-glass-drip-a {
  0% { transform: translateY(-8%); }
  100% { transform: translateY(42%); }
}
@keyframes kamp-glass-drip-b {
  0% { transform: translateY(-12%); }
  100% { transform: translateY(48%); }
}

/* Wind chime — left side below box */
.kamp-sfx--wind-chime.kamp-sfx--surface-box::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  width: 1px;
  height: 18px;
  margin-left: -0.5px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.1));
  pointer-events: none;
}
.kamp-sfx--wind-chime.kamp-sfx--surface-box::after {
  content: "";
  position: absolute;
  left: 6px;
  top: 16px;
  width: 40px;
  height: 76px;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(215, 220, 232, 0.92), rgba(165, 172, 186, 0.78)) 0 0 / 8px 60px no-repeat,
    linear-gradient(180deg, rgba(205, 210, 222, 0.88), rgba(155, 162, 176, 0.74)) 11px 5px / 7px 54px no-repeat,
    linear-gradient(180deg, rgba(225, 230, 240, 0.94), rgba(175, 182, 196, 0.8)) 21px 0 / 8px 64px no-repeat,
    linear-gradient(180deg, rgba(200, 205, 218, 0.9), rgba(150, 158, 172, 0.76)) 32px 7px / 7px 50px no-repeat;
  filter: drop-shadow(0 3px 8px rgba(0, 0, 0, 0.35));
  transform-origin: 50% 0;
  --kamp-wind-amp: calc(2deg + 4deg * var(--kamp-addon-wind-chime-amplitude, 0.5));
  animation: kamp-wind-chime-tubes calc(7.2s - 4s * var(--kamp-addon-wind-chime-tempo, 0.5)) ease-in-out infinite;
}
@keyframes kamp-wind-chime-sway {
  0%, 100% { transform: rotate(calc(-1 * var(--kamp-wind-amp, 2.5deg))); }
  50% { transform: rotate(var(--kamp-wind-amp, 3.5deg)); }
}
@keyframes kamp-wind-chime-tubes {
  0%, 100% { transform: rotate(calc(-0.4 * var(--kamp-wind-amp, 2.5deg))); }
  33% { transform: rotate(calc(0.7 * var(--kamp-wind-amp, 3.5deg))); }
  66% { transform: rotate(calc(-0.55 * var(--kamp-wind-amp, 2.5deg))); }
}

/* Autumn haze when leaf-fall primary */
.kamp-page-hero--fx-leaf-fall::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 85% 55% at 50% 18%, rgba(200, 120, 40, 0.14), transparent 72%),
    radial-gradient(ellipse 60% 40% at 78% 70%, rgba(140, 60, 20, 0.08), transparent 70%);
}

/* Soft winter depth when snow-fall primary */
.kamp-page-hero--fx-snow-fall::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 90% 50% at 50% 0%, rgba(180, 200, 230, 0.1), transparent 68%),
    linear-gradient(180deg, transparent 55%, rgba(200, 215, 235, 0.06) 100%);
}

/* Spring haze when spring-drift primary */
.kamp-page-hero--fx-spring-drift::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 70% 45% at 35% 18%, rgba(180, 220, 120, 0.14), transparent 72%),
    radial-gradient(ellipse 55% 40% at 72% 28%, rgba(255, 240, 180, 0.1), transparent 68%);
}

/* —— Hero floor belt —— */
.kamp-page-hero__floor {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: min(32vh, 260px);
  z-index: 3;
  pointer-events: none;
  overflow: hidden;
}
.kamp-page-hero__floor-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}
.kamp-page-hero__floor-fx,
.kamp-sfx--leaf-pile.kamp-sfx--layer-floor,
.kamp-sfx--puddle-shine.kamp-sfx--layer-floor {
  position: absolute;
  inset: 0;
}
.kamp-sfx--leaf-pile.kamp-sfx--surface-hero::before,
.kamp-sfx--leaf-pile.kamp-sfx--layer-floor::before,
.kamp-page-hero--fx-leaf-pile .kamp-page-hero__floor-fx::before {
  content: "";
  position: absolute;
  left: -4%;
  right: -4%;
  bottom: 0;
  height: calc(58% + 28% * var(--kamp-sfx-p2, 0.5));
  background:
    radial-gradient(ellipse 18% 70% at 8% 100%, #8a3a12 0%, transparent 72%),
    radial-gradient(ellipse 22% 80% at 22% 100%, #c45a1a 0%, transparent 70%),
    radial-gradient(ellipse 16% 60% at 38% 100%, #6e2f0c 0%, transparent 68%),
    radial-gradient(ellipse 20% 75% at 52% 100%, #a84812 0%, transparent 72%),
    radial-gradient(ellipse 18% 65% at 68% 100%, #d4782e 0%, transparent 70%),
    radial-gradient(ellipse 24% 85% at 84% 100%, #8f3a10 0%, transparent 74%),
    radial-gradient(ellipse 14% 55% at 96% 100%, #b85c20 0%, transparent 68%),
    linear-gradient(180deg, transparent 0%, rgba(90, 40, 12, 0.35) 100%);
  opacity: calc((0.55 + 0.4 * var(--kamp-sfx-i, 0.68)) * (0.45 + 0.9 * var(--kamp-sfx-p1, 0.5)));
  filter: blur(0.4px);
  animation: kamp-leaf-pile-breathe 7.5s ease-in-out infinite;
  transform-origin: 50% 100%;
}
.kamp-sfx--leaf-pile.kamp-sfx--surface-hero::after,
.kamp-sfx--leaf-pile.kamp-sfx--layer-floor::after,
.kamp-page-hero--fx-leaf-pile .kamp-page-hero__floor-fx::after {
  content: "";
  position: absolute;
  left: 6%;
  right: 6%;
  bottom: 0;
  height: calc(28% + 18% * var(--kamp-sfx-p2, 0.5));
  background:
    radial-gradient(ellipse 12% 90% at 18% 100%, rgba(200, 90, 30, 0.85) 0%, transparent 70%),
    radial-gradient(ellipse 14% 100% at 48% 100%, rgba(120, 50, 15, 0.8) 0%, transparent 72%),
    radial-gradient(ellipse 11% 85% at 78% 100%, rgba(180, 80, 25, 0.75) 0%, transparent 70%);
  opacity: calc(0.45 + 0.35 * var(--kamp-sfx-i, 0.68));
  animation: kamp-leaf-pile-breathe 9s ease-in-out infinite reverse;
}
@keyframes kamp-leaf-pile-breathe {
  0%, 100% { transform: scaleX(1) scaleY(1); }
  50% { transform: scaleX(1.03) scaleY(0.96); }
}
.kamp-sfx--puddle-shine.kamp-sfx--surface-hero::before,
.kamp-sfx--puddle-shine.kamp-sfx--layer-floor::before,
.kamp-page-hero--fx-puddle-shine .kamp-page-hero__floor-fx::before {
  content: "";
  position: absolute;
  left: calc(var(--kamp-beam-origin-x, 50%) - var(--kamp-beam-narrow-w, 40%) * (0.55 + 0.35 * var(--kamp-sfx-p2, 0.5)));
  width: calc(var(--kamp-beam-narrow-w, 40%) * (1.1 + 0.7 * var(--kamp-sfx-p2, 0.5)));
  bottom: 2%;
  height: calc(28% + 22% * var(--kamp-sfx-p2, 0.5));
  border-radius: 50%;
  background:
    radial-gradient(
      ellipse 100% 70% at 50% 40%,
      rgba(var(--kamp-sfx-light-rgb, 255, 246, 230), calc(0.55 * var(--kamp-sfx-p1, 0.5) * var(--kamp-sfx-i, 0.68))) 0%,
      rgba(var(--kamp-sfx-light-rgb, 255, 246, 230), calc(0.18 * var(--kamp-sfx-p1, 0.5))) 45%,
      transparent 72%
    );
  filter: blur(calc(4px + 10px * var(--kamp-fluoro-soft, 0.6)));
  mix-blend-mode: screen;
  opacity: calc(0.5 + 0.4 * var(--kamp-sfx-i, 0.68));
  animation: kamp-puddle-shimmer 5.2s ease-in-out infinite;
}
.kamp-sfx--puddle-shine.kamp-sfx--surface-hero::after,
.kamp-sfx--puddle-shine.kamp-sfx--layer-floor::after,
.kamp-page-hero--fx-puddle-shine .kamp-page-hero__floor-fx::after {
  content: "";
  position: absolute;
  left: calc(var(--kamp-beam-origin-x, 50%) - var(--kamp-beam-narrow-w, 40%) * 0.42);
  width: calc(var(--kamp-beam-narrow-w, 40%) * 0.84);
  bottom: 4%;
  height: 18%;
  border-radius: 50%;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(var(--kamp-sfx-light-rgb, 255, 246, 230), calc(0.35 * var(--kamp-sfx-p1, 0.5))) 45%,
    transparent 100%
  );
  mix-blend-mode: screen;
  opacity: calc(0.35 + 0.4 * var(--kamp-sfx-i, 0.68));
  animation: kamp-puddle-shimmer 3.8s ease-in-out infinite reverse;
}
@keyframes kamp-puddle-shimmer {
  0%, 100% { opacity: 0.45; transform: scaleX(1); }
  50% { opacity: 0.85; transform: scaleX(1.06); }
}

/* Leaf stack under card */
.kamp-page-hero__box-fx--external .kamp-sfx--leaf-stack.kamp-sfx--layer-external,
.kamp-sfx--leaf-stack.kamp-sfx--layer-external {
  left: calc(var(--kamp-card-left) - 2%);
  width: calc(var(--kamp-card-width) + 4%);
  top: calc(var(--kamp-card-top) + var(--kamp-card-height) - 6px);
  height: min(12vh, 96px);
}
.kamp-sfx--leaf-stack.kamp-sfx--surface-box::before,
.kamp-sfx--leaf-stack.kamp-sfx--layer-external::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 14% 80% at 12% 70%, #c45a1a 0%, transparent 70%),
    radial-gradient(ellipse 16% 90% at 28% 80%, #8a3a12 0%, transparent 72%),
    radial-gradient(ellipse 12% 70% at 48% 75%, #d4782e 0%, transparent 68%),
    radial-gradient(ellipse 18% 95% at 68% 82%, #6e2f0c 0%, transparent 74%),
    radial-gradient(ellipse 14% 75% at 88% 70%, #a84812 0%, transparent 70%);
  opacity: calc((0.7 + 0.25 * var(--kamp-sfx-i, 0.68)) * (0.45 + 0.9 * var(--kamp-addon-leaf-stack-density, 0.55)));
  transform: scaleX(calc(0.85 + 0.4 * var(--kamp-addon-leaf-stack-spread, 0.5)));
  transform-origin: 50% 100%;
  animation: kamp-leaf-stack-gust calc(6.5s - 3s * var(--kamp-addon-leaf-stack-gust, 0.45)) ease-in-out infinite;
}
@keyframes kamp-leaf-stack-gust {
  0%, 100% { transform: scaleX(calc(0.85 + 0.4 * var(--kamp-addon-leaf-stack-spread, 0.5))) translateX(0); }
  40% { transform: scaleX(calc(0.9 + 0.35 * var(--kamp-addon-leaf-stack-spread, 0.5))) translateX(calc(4px + 10px * var(--kamp-addon-leaf-stack-gust, 0.45))); }
  70% { transform: scaleX(calc(0.88 + 0.38 * var(--kamp-addon-leaf-stack-spread, 0.5))) translateX(calc(-3px - 8px * var(--kamp-addon-leaf-stack-gust, 0.45))); }
}

/* Ember rim along bottom edge of card */
.kamp-page-hero__box-fx--external .kamp-sfx--ember-rim.kamp-sfx--layer-external {
  left: var(--kamp-card-left);
  width: var(--kamp-card-width);
  top: calc(var(--kamp-card-top) + var(--kamp-card-height) - 10px);
  height: 28px;
}
.kamp-sfx--ember-rim.kamp-sfx--surface-box::before,
.kamp-sfx--ember-rim.kamp-sfx--layer-external::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle 3px at 8% 50%, rgba(255, 160, 60, 0.95) 0%, transparent 70%),
    radial-gradient(circle 2.5px at 22% 40%, rgba(255, 120, 40, 0.9) 0%, transparent 70%),
    radial-gradient(circle 3px at 41% 60%, rgba(255, 190, 80, 0.85) 0%, transparent 70%),
    radial-gradient(circle 2px at 58% 35%, rgba(255, 140, 50, 0.9) 0%, transparent 70%),
    radial-gradient(circle 3px at 76% 55%, rgba(255, 170, 70, 0.88) 0%, transparent 70%),
    radial-gradient(circle 2.5px at 92% 45%, rgba(255, 130, 45, 0.9) 0%, transparent 70%);
  opacity: calc((0.55 + 0.4 * var(--kamp-sfx-i, 0.68)) * (0.4 + 0.9 * var(--kamp-addon-ember-rim-density, 0.55)) * (0.5 + 0.7 * var(--kamp-addon-ember-rim-heat, 0.6)));
  filter: blur(0.6px) drop-shadow(0 0 6px rgba(255, 120, 40, 0.55));
  mix-blend-mode: screen;
  animation: kamp-ember-flicker calc(2.8s - 1.4s * var(--kamp-addon-ember-rim-tempo, 0.5)) steps(2, end) infinite;
}
@keyframes kamp-ember-flicker {
  0%, 100% { opacity: 0.7; transform: translateY(0); }
  25% { opacity: 1; transform: translateY(-1px); }
  50% { opacity: 0.55; transform: translateY(1px); }
  75% { opacity: 0.9; transform: translateY(-0.5px); }
}

/* Frost pane — inside glass */
.kamp-page-hero__box-fx--internal {
  position: absolute;
  inset: 0;
  z-index: 5;
  overflow: hidden;
  border-radius: inherit;
  pointer-events: none;
}
.kamp-sfx--frost-pane.kamp-sfx--layer-internal,
.kamp-sfx--frost-pane.kamp-sfx--surface-box {
  position: absolute;
  inset: 0;
}
.kamp-sfx--frost-pane.kamp-sfx--surface-box::before,
.kamp-sfx--frost-pane.kamp-sfx--layer-internal::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background:
    linear-gradient(180deg, rgba(220, 236, 255, calc(0.45 * var(--kamp-addon-frost-pane-opacity, 0.6))) 0%, transparent calc(18% + 14% * var(--kamp-addon-frost-pane-coverage, 0.55))),
    linear-gradient(90deg, rgba(200, 228, 255, calc(0.28 * var(--kamp-addon-frost-pane-opacity, 0.6))) 0%, transparent calc(12% + 10% * var(--kamp-addon-frost-pane-edge, 0.5))),
    linear-gradient(270deg, rgba(200, 228, 255, calc(0.28 * var(--kamp-addon-frost-pane-opacity, 0.6))) 0%, transparent calc(12% + 10% * var(--kamp-addon-frost-pane-edge, 0.5))),
    radial-gradient(ellipse 40% 30% at 0% 0%, rgba(255, 255, 255, 0.55) 0%, transparent 70%),
    radial-gradient(ellipse 36% 28% at 100% 0%, rgba(255, 255, 255, 0.5) 0%, transparent 70%);
  opacity: calc(0.75 + 0.25 * var(--kamp-sfx-i, 0.68));
  pointer-events: none;
}
.kamp-sfx--dust-motes-in.kamp-sfx--layer-internal {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}

@media (prefers-reduced-motion: reduce) {
  .kamp-page-hero__fx--lightning,
  .kamp-sfx--lightning.kamp-sfx--surface-hero,
  .kamp-page-hero__fx--lightning::before,
  .kamp-sfx--lightning.kamp-sfx--surface-hero::before,
  .kamp-sfx--rain-drip.kamp-sfx--surface-box::after,
  .kamp-sfx--dew-sparkle.kamp-sfx--surface-box::before,
  .kamp-sfx--dew-sparkle.kamp-sfx--surface-box::after,
  .kamp-sfx--wind-chime.kamp-sfx--surface-box,
  .kamp-sfx--wind-chime.kamp-sfx--surface-box::after {
    animation: none !important;
  }
  .kamp-page-hero__fx--lightning,
  .kamp-sfx--lightning.kamp-sfx--surface-hero {
    opacity: 0.22;
  }
  .kamp-sfx--rain-drip.kamp-sfx--surface-box::after,
  .kamp-sfx--dew-sparkle.kamp-sfx--surface-box::after {
    opacity: calc(0.48 + 0.28 * var(--kamp-sfx-i, 0.68));
    transform: none;
  }
  .kamp-sfx--dew-sparkle.kamp-sfx--surface-box::before {
    opacity: calc(0.62 + 0.28 * var(--kamp-sfx-i, 0.68));
    transform: none;
  }
}

/* ==========================================================================
   Mobile audit — layout klocków + animacje (≤899px only; desktop unchanged)
   ========================================================================== */
@media (max-width: 899px) {
  html { scroll-behavior: auto; }

  /* Belt-and-braces: DNA inset never rides over section gutter on narrow viewports */
  body.kamp-host .kamp-klocek {
    --kamp-klocek-title-inset: 0;
    --kamp-klocek-text-inset: 0;
  }

  body.kamp-host .kamp-section {
    --kamp-section-y: clamp(32px, 6vw, 48px);
  }
  .kamp-klocek--normal { --kamp-klocek-pad: 32px; }
  .kamp-klocek--comfortable { --kamp-klocek-pad: 40px; }
  .kamp-klocek--minimal,
  .kamp-klocek--compact { --kamp-klocek-pad: 24px; }

  body.kamp-host .kamp-cta-band,
  body.kamp-host .kamp-section.kamp-cta-band {
    padding-block: var(--kamp-klocek-pad, clamp(24px, 5vw, 32px));
  }

  body.kamp-host .kamp-faq-block .kamp-faq__item,
  body.kamp-host .kamp-faq-accordion .kamp-faq__item {
    border-radius: 0;
    background: transparent;
    border: 0;
    border-bottom: 1px solid #e6e8eb;
    padding: 0;
    margin: 0;
    box-shadow: none;
  }
  .kamp-faq-block--layout-two-col .kamp-faq {
    columns: unset;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
  }

  body.kamp-host .kamp-process:not(.kamp-process--vertical),
  .kamp-process-block:not(.kamp-process-block--layout-vertical) .kamp-process:not(.kamp-process--vertical),
  .kamp-process:not(.kamp-process--vertical):not(.kamp-process-block--layout-vertical) {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    justify-items: stretch;
  }
  body.kamp-host .kamp-process:not(.kamp-process--vertical) .kamp-process__step,
  .kamp-process-block:not(.kamp-process-block--layout-vertical) .kamp-process:not(.kamp-process--vertical) .kamp-process__step,
  .kamp-process:not(.kamp-process--vertical):not(.kamp-process-block--layout-vertical) .kamp-process__step {
    width: 100%;
    max-width: none;
    flex: none;
  }
  body.kamp-host .kamp-process:not(.kamp-process--vertical) .kamp-process__arrow,
  .kamp-process-block:not(.kamp-process-block--layout-vertical) .kamp-process:not(.kamp-process--vertical) .kamp-process__arrow,
  .kamp-process:not(.kamp-process--vertical):not(.kamp-process-block--layout-vertical) .kamp-process__arrow {
    display: flex;
    justify-self: center;
    transform: rotate(90deg);
    height: 28px;
    margin: 2px 0;
    flex: none;
  }

  .kamp-think--stagger .kamp-think__card:nth-child(2),
  .kamp-think--stagger .kamp-think__card:nth-child(3) {
    transform: none;
  }

  .kamp-testimonials--layout-minimal-row .kamp-testimonials__grid {
    flex-direction: column;
  }

  .kamp-klocek--layout-compact .kamp-grid--projects {
    grid-template-columns: 1fr;
  }

  body.kamp-page-transition--fade,
  body.kamp-page-transition--slide_up,
  body.kamp-page-transition--scale,
  body.kamp-page-leave,
  body.kamp-page-leave--fade,
  body.kamp-page-leave--slide_up,
  body.kamp-page-leave--scale {
    animation: none !important;
  }

  /*
   * Mobile: SFX całkowicie OFF (brak warstw, animacji, canvas).
   * Naprawia CLS od .kamp-page-hero__cast-wash + oszczędza main-thread.
   */
  .kamp-page-hero__atmosphere,
  .kamp-page-hero__box-fx,
  .kamp-lightning-layer {
    display: none !important;
  }
  .kamp-page-hero__card.kamp-sfx--box-breathe,
  .kamp-sfx--box-breathe,
  .kamp-sfx--edge-glow,
  .kamp-sfx--btn-sheen,
  .kamp-sfx--btn-pulse-soft,
  .kamp-sfx--btn-underline-flicker,
  .kamp-sfx--btn-volt,
  .kamp-sfx--parallax-soft,
  .kamp-sfx--shimmer,
  .kamp-sfx--glass-rim,
  .kamp-sfx--liquid-sheen,
  .kamp-sfx--veil-drift,
  .kamp-sfx--storm-flash,
  .kamp-sfx--thunder-haze,
  .kamp-sfx--volt-edge,
  .kamp-sfx--ink-bleed,
  .kamp-sfx--corner-spark,
  .kamp-sfx--fog-floor,
  .kamp-sfx--cast-down,
  .kamp-sfx--fluorescent,
  [class*="kamp-sfx--"] {
    animation: none !important;
    transition: none !important;
  }
  .kamp-sfx--cast-down.kamp-sfx--surface-box::before,
  .kamp-sfx--cast-down.kamp-sfx--surface-box::after,
  .kamp-sfx--fog-floor.kamp-sfx--surface-hero::before,
  .kamp-sfx--fog-floor.kamp-sfx--surface-hero::after,
  .kamp-page-hero.kamp-sfx--fog-floor::before,
  .kamp-page-hero.kamp-sfx--fog-floor::after,
  .kamp-sfx--fluorescent.kamp-sfx--surface-box::after,
  .kamp-sfx--glass-rim::before,
  .kamp-sfx--liquid-sheen::after,
  .kamp-sfx--veil-drift::before,
  .kamp-sfx--veil-drift::after,
  .kamp-sfx--shimmer::after,
  .kamp-sfx--btn-sheen::after,
  .kamp-sfx--btn-underline-flicker::after,
  .kamp-sfx--btn-volt::after,
  .kamp-sfx--corner-spark::before,
  .kamp-sfx--volt-edge::before,
  .kamp-sfx--volt-edge::after,
  .kamp-sfx--thunder-haze::before,
  .kamp-sfx--ink-bleed::before,
  .kamp-sfx--storm-flash::before {
    content: none !important;
    display: none !important;
    animation: none !important;
  }
  .kamp-sfx--edge-glow {
    box-shadow: none !important;
  }
  .kamp-sfx--parallax-soft,
  .kamp-sfx--parallax-soft.kamp-sfx--surface-hero,
  .kamp-sfx--parallax-soft.kamp-sfx--surface-section {
    transform: none !important;
    background-attachment: scroll !important;
  }
}

@media (max-width: 640px) {
  .kamp-cta-band--layout-compact .kamp-cta-band__inner {
    flex-wrap: wrap;
  }
  .kamp-cta-band--layout-compact h2,
  .kamp-cta-band--layout-compact h3 {
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
  }
}
