/**
 * Style strony głównej Elementor Free (HOME) — Figtree, złote podkreślenia, karty.
 * Efektywne i niskie ryzyko: tylko klasy .ksemjot-home*, bez ruszania HF.
 */

:root {
  --ksemjot-gold: #c1a20b;
  --ksemjot-ink: #2b2a2b;
  /* Jak menu/header (OnePage ~1250, WP header --ksemjot-page-max 1400) */
  --ksemjot-home-max: var(--ksemjot-page-max, 1400px);
}

.ksemjot-mark {
  /* brush underline poniżej — bez prostego border */
  border-bottom: none;
  padding-bottom: 0;
}

/* Brush underline — reguły poniżej (eyebrow / mark / heading) */

.ksemjot-home-hero__eyebrow {
  text-align: center !important;
}

.ksemjot-home-hero__eyebrow .elementor-heading-title,
.ksemjot-home-hero__eyebrow.ksemjot-brush .elementor-heading-title {
  display: inline !important;
  width: auto !important;
  max-width: 100%;
  background-image: url("../img/ksemjot-underline.svg");
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: 100% 5px;
  padding-bottom: 0.4rem;
  border-bottom: none !important;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

/* Nagłówki z brush — kreska pod literami (jak OnePage / Dlaczego), nie pod całą kolumną */
.ksemjot-brush.elementor-widget-heading {
  text-align: center;
}

.ksemjot-brush.elementor-widget-heading .elementor-heading-title {
  display: inline !important;
  width: auto !important;
  max-width: 100% !important;
  background-image: url("../img/ksemjot-underline.svg");
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: 100% 6px;
  padding-bottom: 0.45rem;
  border-bottom: none !important;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

.ksemjot-mark.ksemjot-brush {
  display: inline;
  background-image: url("../img/ksemjot-underline.svg");
  background-repeat: no-repeat;
  background-position: left calc(100% - 1px);
  background-size: 100% 4px;
  padding-bottom: 0.2rem;
}

/* Boxed content = szerokość paska menu (logo → CTA) */
body.ksemjot-onepage-elementor .elementor-section.ksemjot-home-boxed > .elementor-container {
  max-width: var(--ksemjot-home-max) !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 32px !important;
  padding-right: 32px !important;
}

/*
 * Feature rows (o-nas + usługi): szerszy kontener + gap obraz↔tekst jak OnePage (~56px).
 * Bez gap tekst „klei się” do zdjęcia i wygląda na spłaszczony w wąskiej kolumnie.
 */
body.ksemjot-onepage-elementor .elementor-section.ksemjot-home-feature.ksemjot-home-boxed > .elementor-container {
  max-width: min(1600px, 100%) !important;
  gap: 56px !important;
  column-gap: 56px !important;
}

body.ksemjot-onepage-elementor .ksemjot-home-feature > .elementor-container > .elementor-column {
  /* Elementor 50/50 + gap: nie pozwól kolumnom rozpychać się poza flex */
  min-width: 0;
}

body.ksemjot-onepage-elementor #o-nas.elementor-section {
  /* OnePage: tylko --one-kit-outside-padding:32px na warstwie (już w .elementor-container) */
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Full-bleed hero / CTA */
body.ksemjot-onepage-elementor .elementor-section.ksemjot-home-bleed > .elementor-container {
  max-width: none !important;
  width: 100% !important;
}

body.ksemjot-onepage-elementor .ksemjot-home .elementor-heading-title,
body.ksemjot-onepage-elementor .ksemjot-home .elementor-widget-text-editor,
body.ksemjot-onepage-elementor .ksemjot-home .elementor-button {
  font-family: Figtree, Roboto, system-ui, sans-serif !important;
}

/*
 * Typografia body 1:1 z OnePage (pomiary :8090):
 *  — zwykły tekst sekcji: 18px / lh 27px
 *  — hero / CTA / dlaczego intro / zapisz: 20px / lh 30px
 *  — opinie / FAQ odpowiedzi / notki cennika: 16px
 * Wcześniejsze 14px było za małe względem oryginału.
 */
body.ksemjot-onepage-elementor .ksemjot-home .elementor-widget-text-editor,
body.ksemjot-onepage-elementor .ksemjot-home .elementor-widget-text-editor p {
  font-size: 18px !important;
  font-weight: 400 !important;
  line-height: 27px !important;
  color: inherit;
}

/* Banner kursu — czarny kafelek na pełną szerokość kontenera (= menu) */
.ksemjot-home-announce-wrap .ksemjot-home-announce.elementor-column > .elementor-widget-wrap,
.elementor-column.ksemjot-home-announce > .elementor-widget-wrap {
  background: #000 !important;
  color: #fff !important;
  border-radius: 8px !important;
  padding: 40px !important;
  text-align: center !important;
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
}

.ksemjot-home-announce .elementor-heading-title {
  color: #fff !important;
  font-size: 32px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
}

.ksemjot-home-announce .elementor-widget-text-editor,
.ksemjot-home-announce .elementor-widget-text-editor p {
  color: #fff !important;
  font-size: 18px !important;
  line-height: 27px !important;
  max-width: none;
  margin-inline: auto;
}

/* Przyciski home — rozmiar (animacja + padding w elementor-buttons.css) */
body.ksemjot-onepage-elementor .ksemjot-home .elementor-button {
  font-family: Figtree, Roboto, system-ui, sans-serif !important;
  font-size: 17px !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
  padding: 8px 31px !important;
  min-height: 61px !important;
  height: auto !important;
  border-radius: 4px !important;
  box-sizing: border-box !important;
}

body.ksemjot-onepage-elementor .ksemjot-home-hero .elementor-button {
  font-size: 18px !important;
  font-weight: 500 !important;
  padding: 9px 36px !important;
  min-height: 72px !important;
  background: #fff !important;
  color: #010101 !important;
}

body.ksemjot-onepage-elementor .ksemjot-home-hero .elementor-button:hover {
  background: #fff !important;
  color: #010101 !important;
}

body.ksemjot-onepage-elementor .ksemjot-home-cta .elementor-button,
body.ksemjot-onepage-elementor .ksemjot-home-zapisz .elementor-button {
  background: #fff !important;
  color: #121212 !important;
  font-size: 18px !important;
  min-height: 72px !important;
  padding: 9px 36px !important;
}

/* Overlay + pozycja tła hero / CTA (OnePage: ciemniej, object-position 75% 36%) */
.ksemjot-home-hero .elementor-background-overlay,
.ksemjot-home-cta .elementor-background-overlay,
.ksemjot-home-zapisz .elementor-background-overlay {
  background-color: #000 !important;
  opacity: 0.55 !important;
}

.ksemjot-home-hero.elementor-section {
  background-position: 75% 36% !important;
  background-size: cover !important;
}

/* Hero — typografia 1:1 OnePage (pomiary :8090 @1440) */
body.ksemjot-onepage-elementor .ksemjot-home-hero .ksemjot-home-hero__eyebrow .elementor-heading-title,
body.ksemjot-onepage-elementor .ksemjot-home-hero .ksemjot-home-hero__eyebrow.ksemjot-brush .elementor-heading-title {
  display: inline !important;
  width: auto !important;
  max-width: 100%;
  font-size: 24px !important;
  font-weight: 400 !important;
  line-height: 36px !important;
  letter-spacing: normal !important;
  color: #fff !important;
  border-bottom: none !important;
  background-image: url("../img/ksemjot-underline.svg");
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: 100% 6px;
  padding-bottom: 0.35rem !important;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

body.ksemjot-onepage-elementor .ksemjot-home-hero .ksemjot-home-hero__title .elementor-heading-title {
  color: #fff !important;
  font-size: 64px !important;
  font-weight: 600 !important;
  /* OnePage: ~80.5px przy 64px ≈ 1.258 + letter-spacing -0.4px */
  line-height: 1.26 !important;
  letter-spacing: -0.4px !important;
}

/* Wymuszenie białego tekstu na tłach ze zdjęciem (Elementor często zostawia czarny <p>) */
.ksemjot-home-hero .elementor-widget-text-editor,
.ksemjot-home-hero .elementor-widget-text-editor p,
.ksemjot-home-hero .elementor-widget-text-editor span,
.ksemjot-home-hero .ksemjot-mark,
.ksemjot-home-cta .elementor-widget-text-editor,
.ksemjot-home-cta .elementor-widget-text-editor p,
.ksemjot-home-cta .elementor-widget-text-editor span,
.ksemjot-home-cta .elementor-heading-title,
.ksemjot-home-zapisz .elementor-widget-text-editor,
.ksemjot-home-zapisz .elementor-widget-text-editor p,
.ksemjot-home-zapisz .elementor-widget-text-editor span,
.ksemjot-home-zapisz .elementor-heading-title {
  color: #fff !important;
}

/* Hero body — OnePage ~937px szerokości tekstu, 20px/30px */
body.ksemjot-onepage-elementor .ksemjot-home-hero .ksemjot-home-hero__body,
body.ksemjot-onepage-elementor .ksemjot-home-hero .ksemjot-home-hero__body.elementor-widget-text-editor {
  max-width: 940px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.ksemjot-onepage-elementor .ksemjot-home-hero .ksemjot-home-hero__body,
body.ksemjot-onepage-elementor .ksemjot-home-hero .ksemjot-home-hero__body p,
body.ksemjot-onepage-elementor .ksemjot-home-hero .ksemjot-home-hero__body .elementor-widget-container {
  font-size: 20px !important;
  font-weight: 400 !important;
  line-height: 30px !important;
}

body.ksemjot-onepage-elementor .ksemjot-home-hero .ksemjot-mark.ksemjot-brush {
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
  background-image: url("../img/ksemjot-underline.svg");
  background-repeat: no-repeat;
  background-position: left calc(100% - 1px);
  background-size: 100% 5px;
  padding-bottom: 0.15rem;
}

/* Rating gwiazdki na dole hero (jak OnePage) */
.ksemjot-home-hero-rating {
  margin-top: 2.75rem !important;
  text-align: center !important;
  max-width: none !important;
}

.ksemjot-home-hero-rating .elementor-widget-container {
  text-align: center;
  max-width: none !important;
}

.ksemjot-home-stars-row {
  display: flex !important;
  justify-content: center;
  align-items: center;
  gap: 4px;
  margin: 0 0 0.55rem !important;
  line-height: 1;
}

.ksemjot-home-star {
  width: 18px !important;
  height: 18px !important;
  display: inline-block;
  vertical-align: middle;
  border: 0 !important;
  box-shadow: none !important;
}

/* Rating 18px — wyższa specyficzność niż ogólne .ksemjot-home-hero .elementor-widget-text-editor */
body.ksemjot-onepage-elementor .ksemjot-home-hero .ksemjot-home-hero-rating,
body.ksemjot-onepage-elementor .ksemjot-home-hero .ksemjot-home-hero-rating .elementor-widget-container,
body.ksemjot-onepage-elementor .ksemjot-home-hero .ksemjot-home-hero-rating p,
body.ksemjot-onepage-elementor .ksemjot-home-hero .ksemjot-home-rating-line {
  font-size: 18px !important;
  font-weight: 400 !important;
  line-height: 27px !important;
  max-width: none !important;
  color: #fff !important;
  text-align: center !important;
  margin: 0 !important;
}

.ksemjot-home-rating-line strong {
  font-weight: 700 !important;
  color: #fff !important;
}

.ksemjot-home-hero-rating .ksemjot-home-stars,
.ksemjot-home-stars--center {
  color: #ffb810 !important;
  text-align: center !important;
  font-size: 1.15rem !important;
  letter-spacing: 0.18em;
  margin: 0 0 0.4rem !important;
}

.ksemjot-home-hero-rating p {
  color: #fff !important;
  text-align: center;
  margin: 0 !important;
}

.ksemjot-home-hero .ksemjot-home-hero__cta {
  margin-top: 1.5rem !important;
}

.ksemjot-home-onas .elementor-widget-text-editor {
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}

/*
 * #o-nas typografia 1:1 OnePage (pomiary :8090):
 *  H2 32px/600/lh 1.3 — wcześniej lh=font-size (32px) optycznie „spłaszczało” nagłówek
 *  body 18px/27px
 */
body.ksemjot-onepage-elementor #o-nas .ksemjot-home-underline .elementor-heading-title,
body.ksemjot-onepage-elementor #o-nas .elementor-heading-title {
  font-size: 32px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
}

body.ksemjot-onepage-elementor #o-nas .elementor-widget-text-editor,
body.ksemjot-onepage-elementor #o-nas .elementor-widget-text-editor p {
  font-size: 18px !important;
  font-weight: 400 !important;
  line-height: 27px !important;
}

/*
 * Podkreślenie nagłówka = brush na CAŁĄ szerokość tekstu
 * (OnePage: highlight-effect-hand-underlined SVG preserveAspectRatio=none, width=text).
 * Wcześniej ::after miał stałe 5.5rem (~88px) — za krótkie.
 */
.ksemjot-home-underline .elementor-heading-title {
  display: inline !important;
  position: relative;
  width: auto !important;
  max-width: 100%;
  padding-bottom: 0.45rem !important;
  border-bottom: none !important;
  background-image: url("../img/ksemjot-underline.svg");
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: 100% 6px;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

.ksemjot-home-underline .elementor-heading-title::after {
  content: none !important;
  display: none !important;
}

.ksemjot-home-underline--light .elementor-heading-title {
  background-image: url("../img/ksemjot-underline.svg");
}

.ksemjot-home-feature__text .elementor-widget-wrap {
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
  gap: 1rem;
  padding: 0 !important;
}

.ksemjot-home-feature__text .elementor-widget-text-editor,
.ksemjot-home-onas .ksemjot-home-feature__text .elementor-widget-text-editor {
  max-width: none;
}

/*
 * Badge „Pod Opieką Profesjonalistów” — 1:1 OnePage menu-v2 + c-check:
 * ikona 24px #B8C6C6, gap 12px, Figtree 18/600/lh 1.3, kolor #2B2A2B.
 */
.ksemjot-home-feature:not(.ksemjot-home-onas) .ksemjot-home-badge,
.ksemjot-home-feature:not(.ksemjot-home-onas) .ksemjot-mark {
  display: inline-flex !important;
  align-items: center;
  gap: 12px;
  margin: 0;
  padding: 0;
  border: none !important;
  background-image: none !important;
  color: #2b2a2b !important;
  font-family: Figtree, sans-serif !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
}

.ksemjot-home-feature:not(.ksemjot-home-onas) .ksemjot-home-badge::before,
.ksemjot-home-feature:not(.ksemjot-home-onas) .ksemjot-mark::before {
  content: "";
  display: block;
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  background: url("../img/ksemjot-check.svg") no-repeat center / contain;
}

.ksemjot-home-feature:not(.ksemjot-home-onas) .ksemjot-home-badge img.ksemjot-home-badge__icon,
.ksemjot-home-feature:not(.ksemjot-home-onas) .ksemjot-home-badge__icon {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  display: block;
}

/* Gdy ikona jest w HTML (rebuild) — wyłącz ::before */
.ksemjot-home-feature:not(.ksemjot-home-onas) .ksemjot-home-badge:has(.ksemjot-home-badge__icon)::before {
  content: none;
  display: none;
}

/*
 * Przyciski usług (Kursy / Treningi / Zawody / Wynajem):
 * OnePage type-line — przezroczyste „białe” z inset border; o-nas zostaje solid dark.
 */
body.ksemjot-onepage-elementor .ksemjot-home-feature:not(.ksemjot-home-onas) .elementor-widget-button .elementor-button {
  background-color: transparent !important;
  background-image: none !important;
  color: #2b2a2b !important;
  font-weight: 600 !important;
  box-shadow: inset 0 0 0 1px rgba(43, 42, 43, 0.2) !important;
  --ksemjot-btn-text-rgb: 43, 42, 43;
  --ksemjot-btn-bg-rgb: 255, 255, 255;
}

.ksemjot-home-img img,
.ksemjot-home-feature__media img {
  border-radius: 12px;
  box-shadow: 0 12px 32px rgba(43, 42, 43, 0.12);
  width: 100%;
  height: auto;
  display: block;
}

/*
 * Feature media: ta sama proporcja co pierwsza (o-nas / Kursy, 2468×1388).
 * Bez tego wyższe zdjęcia (Zawody, Wynajem) rozciągają całą sekcję.
 * object-fit:cover jak OnePage.
 */
.ksemjot-home-feature__media img {
  aspect-ratio: 2468 / 1388;
  object-fit: cover;
  object-position: center;
}

/*
 * Usługi (Kursy → Wynajem): ten sam padding pionowy co pierwsza z grupy (Kursy = 100/50).
 * Selektor :has(button) odróżnia je od wierszy „Dlaczego my”.
 */
body.ksemjot-onepage-elementor
  .ksemjot-home-feature:not(.ksemjot-home-onas):has(.elementor-widget-button) {
  padding-top: 100px !important;
  padding-bottom: 50px !important;
  box-sizing: border-box;
  overflow: hidden;
}

body.ksemjot-onepage-elementor .ksemjot-home-feature.ksemjot-home-service {
  /* Kursy / Treningi / Zawody / Wynajem — białe tło (nie naprzemienne szare) */
  background-color: #ffffff !important;
}

/* Opinie — nagłówek (tylko tytuł + brush; bez oceny 4,9) */
.ksemjot-home-opinie-head .elementor-heading-title {
  color: var(--ksemjot-ink) !important;
}

.ksemjot-home-opinie-head .ksemjot-home-stars,
.ksemjot-home-opinie-head .ksemjot-home-stars-row,
.ksemjot-home-opinie-head .ksemjot-home-opinie-rating,
.ksemjot-home-opinie-rating {
  display: none !important;
}

/* ——— Karuzela generyczna (opinie | zdjęcia) — ten sam układ co „Nasze Opinie” ——— */
/* Desktop: panel max ~2/3 szerokości ekranu, wycentrowany (marginesy L/R) */
body.ksemjot-onepage-elementor .ksemjot-home-opinie-marquee > .elementor-container,
body.ksemjot-onepage-elementor .ksemjot-marquee-section > .elementor-container,
body.ksemjot-galeria .ksemjot-marquee-section > .elementor-container {
  max-width: none !important;
  width: 100% !important;
  padding-left: 32px !important;
  padding-right: 32px !important;
  box-sizing: border-box;
}

@media (min-width: 769px) {
  body.ksemjot-onepage-elementor .ksemjot-home-opinie-marquee > .elementor-container,
  body.ksemjot-onepage-elementor .ksemjot-marquee-section > .elementor-container,
  body.ksemjot-galeria .ksemjot-marquee-section > .elementor-container {
    max-width: 66.666vw !important;
    width: 66.666vw !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

.ksemjot-opinie-marquee,
.ksemjot-home-opinie-marquee .ksemjot-opinie,
.ksemjot-marquee {
  width: 100%;
}

.ksemjot-opinie .con-kit-component-marquee--fade-edge,
.ksemjot-marquee .con-kit-component-marquee--fade-edge {
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
  mask-mode: alpha;
}

.ksemjot-opinie .con-kit-component-marquee-grid,
.ksemjot-marquee .con-kit-component-marquee-grid {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  width: max-content !important;
  /* OnePage: wysokości kart dynamiczne (nie stretch do najwyższej) */
  align-items: flex-start !important;
}

.ksemjot-opinie .con-kit-component-marquee-grid-item,
.ksemjot-marquee .con-kit-component-marquee-grid-item {
  flex: 0 0 auto;
  align-self: flex-start !important;
  width: min(443px, 82vw);
  min-width: min(443px, 82vw);
  max-width: min(443px, 82vw);
  height: auto !important;
  min-height: 0 !important;
  padding: 0 12px;
  box-sizing: border-box;
}

.ksemjot-opinie-card,
.ksemjot-opinie .con-kit-molecule-grid-item.ksemjot-opinie-card,
.ksemjot-marquee-card {
  display: flex;
  flex-direction: column;
  gap: 16px;
  height: auto !important;
  min-height: 0 !important;
  padding: 32px;
  box-sizing: border-box;
  background: #ffffff;
  border-radius: 8px;
  /* mocniejszy cień — czytelniejsze „wejście/wyjście” przy fade (desktop) */
  box-shadow:
    0 4px 10px rgba(43, 42, 43, 0.06),
    0 14px 36px rgba(43, 42, 43, 0.16),
    0 28px 56px rgba(43, 42, 43, 0.1);
  color: #2b2a2b;
  font-family: Figtree, sans-serif;
}

/* Zdjęcia: ta sama „karta” co opinie, bez paddingu — sam obraz */
.ksemjot-marquee-card--image {
  gap: 0 !important;
  padding: 0 !important;
  overflow: hidden;
  margin: 0 !important;
}

.ksemjot-marquee-card--image img {
  display: block;
  width: 100% !important;
  height: 277px !important;
  object-fit: cover !important;
  object-position: center center !important;
  cursor: zoom-in;
}

.ksemjot-marquee--empty {
  padding: 24px;
  text-align: center;
  color: #2b2a2b;
}

.ksemjot-marquee-empty {
  margin: 0;
  opacity: 0.7;
}

/* Nagłówki sekcji galerii (Elementor Heading) */
body.ksemjot-galeria .ksemjot-galeria-section-head .elementor-heading-title {
  font-size: 36px !important;
  font-weight: 600 !important;
  color: #2b2a2b !important;
  text-align: center !important;
}

/* Mobile: bez dużego cienia (zostaje lekki jak OnePage) */
@media (max-width: 768px) {
  .ksemjot-opinie-card,
  .ksemjot-opinie .con-kit-molecule-grid-item.ksemjot-opinie-card,
  .ksemjot-marquee-card {
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05) !important;
  }

  .ksemjot-marquee-card--image img {
    height: min(220px, 56vw) !important;
  }

  body.ksemjot-galeria .ksemjot-galeria-section-head .elementor-heading-title {
    font-size: 28px !important;
  }
}

.ksemjot-opinie-card__stars {
  display: flex;
  gap: 4px;
  line-height: 1;
}

.ksemjot-opinie-card__star {
  width: 18px;
  height: 18px;
  display: block;
  filter: none;
}

.ksemjot-opinie-card__text {
  margin: 0 !important;
  flex: 0 0 auto;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  color: #2b2a2b !important;
}

.ksemjot-opinie-card__author {
  margin: 0 !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  color: #2b2a2b !important;
}

.ksemjot-home-stars {
  color: var(--ksemjot-gold) !important;
  font-size: 0.95rem !important;
  letter-spacing: 0.12em;
  margin: 0 0 0.75rem !important;
  line-height: 1;
  text-align: left !important;
}

/* Opinie — treść karty 16px (OnePage) */
.ksemjot-opinie-card__text {
  font-size: 16px !important;
  line-height: 24px !important;
}

/* ——— CENNIK — 1:1 OnePage (desktop left, gap 16, brush, full-width CTA) ——— */
body.ksemjot-onepage-elementor #cennik.ksemjot-home-cennik-intro .ksemjot-home-cennik__title .elementor-heading-title,
body.ksemjot-onepage-elementor #cennik .ksemjot-brush .elementor-heading-title {
  font-size: 48px !important;
  font-weight: 600 !important;
  line-height: 1.28 !important;
  color: #2b2a2b !important;
  text-align: center !important;
}

body.ksemjot-onepage-elementor #cennik .ksemjot-home-cennik__intro,
body.ksemjot-onepage-elementor #cennik .ksemjot-home-cennik__intro p {
  font-size: 18px !important;
  font-weight: 400 !important;
  line-height: 27px !important;
  color: #2b2a2b !important;
  text-align: center !important;
  max-width: none !important;
}

/* Masonry-like: 3 równe kolumny + 16px gutter (bez nachodzenia) */
body.ksemjot-onepage-elementor .ksemjot-home-cennik-cards > .elementor-container {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  gap: 16px !important;
  column-gap: 16px !important;
}

body.ksemjot-onepage-elementor .ksemjot-home-cennik-cards .ksemjot-home-price-card.elementor-column {
  flex: 1 1 0 !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
}

.ksemjot-home-cennik-cards .ksemjot-home-price-card > .elementor-widget-wrap {
  background: #fff;
  border-radius: 4px;
  box-shadow: none;
  padding: 50px !important;
  height: 100%;
  text-align: left;
  border: none;
  display: flex !important;
  flex-direction: column !important;
  box-sizing: border-box !important;
}

/* Tytuł karty + cena: left + brush tylko pod ceną */
.ksemjot-home-price-card .ksemjot-home-price__title .elementor-heading-title {
  font-size: 24px !important;
  font-weight: 600 !important;
  line-height: 1.31 !important;
  color: #2b2a2b !important;
  text-align: left !important;
}

.ksemjot-home-price-card .ksemjot-brush.elementor-widget-heading {
  text-align: left !important;
}

.ksemjot-home-price-card .ksemjot-home-price__amount .elementor-heading-title {
  color: #2b2a2b !important;
  font-size: 48px !important;
  font-weight: 600 !important;
  line-height: 1.28 !important;
  text-align: left !important;
}

body.ksemjot-onepage-elementor .ksemjot-home-price-card .elementor-widget-text-editor,
body.ksemjot-onepage-elementor .ksemjot-home-price-card .elementor-widget-text-editor p {
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 24px !important;
  text-align: left !important;
  color: #2b2a2b !important;
}

body.ksemjot-onepage-elementor .ksemjot-home-price-card .ksemjot-home-price__note,
body.ksemjot-onepage-elementor .ksemjot-home-price-card p.ksemjot-home-price__note {
  margin: 0 0 1rem !important;
  color: rgba(43, 42, 43, 0.58) !important;
  font-size: 16px !important;
  line-height: 24px !important;
}

/* Separator jak OnePage atom-line 2px */
body.ksemjot-onepage-elementor .ksemjot-home-price__divider {
  display: block;
  width: 100%;
  height: 0;
  margin: 0 0 1rem;
  border: 0;
  border-top: 2px solid rgba(43, 42, 43, 0.12);
}

body.ksemjot-onepage-elementor .ksemjot-home-price__feat {
  margin: 0 0 0.35rem !important;
  padding: 0 !important;
  color: #2b2a2b !important;
  font-size: 16px !important;
  line-height: 24px !important;
  list-style: none !important;
}

body.ksemjot-onepage-elementor .ksemjot-home-price__feat:last-of-type {
  margin-bottom: 1.25rem !important;
}

/* CTA na pełną szerokość boxa (treść karty) */
body.ksemjot-onepage-elementor .ksemjot-home-price-card .ksemjot-home-price__btn,
body.ksemjot-onepage-elementor .ksemjot-home-price-card .ksemjot-home-price__btn .elementor-button-wrapper,
body.ksemjot-onepage-elementor .ksemjot-home-price-card .elementor-button-wrapper {
  width: 100% !important;
  max-width: 100% !important;
}

body.ksemjot-onepage-elementor .ksemjot-home-price-card .elementor-button {
  width: 100% !important;
  max-width: 100% !important;
  justify-content: center !important;
  min-height: 56px !important;
  border-radius: 8px !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  margin-top: auto !important;
}

/* Legacy ul (gdy ktoś edytuje w Elementorze) — bez złotych kropek */
body.ksemjot-onepage-elementor .ksemjot-home-price__list {
  list-style: none;
  margin: 0 0 1.25rem;
  padding: 0;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  font-size: 16px !important;
  line-height: 24px !important;
}

.ksemjot-home-price__list li {
  padding-left: 0;
}

.ksemjot-home-price__list li::before {
  content: none !important;
  display: none !important;
}

/* ——— FAQ: 2 kolumny (intro | accordion) 1:1 OnePage ——— */
body.ksemjot-onepage-elementor #faq.ksemjot-home-faq-sec > .elementor-container {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: flex-start !important;
  gap: 48px 56px !important;
}

body.ksemjot-onepage-elementor #faq .ksemjot-home-faq__col--intro.elementor-column {
  flex: 1 1 38% !important;
  width: auto !important;
  max-width: 420px !important;
  min-width: 0 !important;
}

body.ksemjot-onepage-elementor #faq .ksemjot-home-faq__col--list.elementor-column {
  flex: 1 1 55% !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
}

body.ksemjot-onepage-elementor #faq .ksemjot-home-faq__title .elementor-heading-title,
body.ksemjot-onepage-elementor #faq .ksemjot-brush .elementor-heading-title {
  font-size: 48px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  color: #2b2a2b !important;
  text-align: left !important;
}

body.ksemjot-onepage-elementor #faq .ksemjot-home-faq__intro,
body.ksemjot-onepage-elementor #faq .ksemjot-home-faq__intro.elementor-widget-text-editor,
body.ksemjot-onepage-elementor #faq .ksemjot-home-faq__intro p {
  margin: 1rem 0 0 !important;
  font-size: 18px !important;
  font-weight: 400 !important;
  line-height: 27px !important;
  /* OnePage: #2B2A2B82 ≈ rgba(43,42,43,0.51) */
  color: rgba(43, 42, 43, 0.51) !important;
  text-align: left !important;
  max-width: none !important;
}

/* Toggle (= Accordion UI, ale wiele otwartych naraz jak OnePage) */
.ksemjot-home-faq-sec .elementor-toggle,
.ksemjot-home-faq-sec .elementor-accordion {
  max-width: none;
  margin: 0;
}

.ksemjot-home-faq-sec .elementor-toggle-item,
.ksemjot-home-faq-sec .elementor-accordion-item {
  border: 0 !important;
  border-top: 1px solid rgba(43, 42, 43, 0.12) !important;
  border-radius: 0 !important;
  background: transparent !important;
}

.ksemjot-home-faq-sec .elementor-toggle-item:last-child,
.ksemjot-home-faq-sec .elementor-accordion-item:last-child {
  border-bottom: 1px solid rgba(43, 42, 43, 0.12) !important;
}

.ksemjot-home-faq-sec .elementor-tab-title,
.ksemjot-home-faq-sec .elementor-toggle-title,
.ksemjot-home-faq-sec .elementor-accordion-title {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 16px !important;
  font-family: Figtree, Roboto, system-ui, sans-serif !important;
  font-size: 22px !important;
  font-weight: 600 !important;
  line-height: 1.31 !important;
  color: #2b2a2b !important;
  padding: 1.15rem 0 !important;
  background: transparent !important;
  border: 0 !important;
}

.ksemjot-home-faq-sec .elementor-tab-title.elementor-active,
.ksemjot-home-faq-sec .elementor-tab-title:hover {
  color: #2b2a2b !important;
  background: transparent !important;
}

.ksemjot-home-faq-sec .elementor-toggle-icon,
.ksemjot-home-faq-sec .elementor-accordion-icon,
.ksemjot-home-faq-sec .elementor-tab-title .elementor-toggle-icon,
.ksemjot-home-faq-sec .elementor-tab-title .elementor-accordion-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 16px !important;
  height: 16px !important;
  margin: 0 !important;
  flex: 0 0 16px !important;
  order: 2 !important;
  position: relative !important;
  color: #2b2a2b !important;
}

.ksemjot-home-faq-sec .elementor-toggle-icon svg,
.ksemjot-home-faq-sec .elementor-toggle-icon i,
.ksemjot-home-faq-sec .elementor-accordion-icon svg,
.ksemjot-home-faq-sec .elementor-accordion-icon i {
  display: none !important;
}

/* Chevron ↓ jak OnePage; rotacja przy otwarciu */
.ksemjot-home-faq-sec .elementor-toggle-icon::before,
.ksemjot-home-faq-sec .elementor-accordion-icon::before {
  content: "";
  display: block;
  width: 16px;
  height: 16px;
  background-color: #2b2a2b;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpolyline fill='none' stroke='%23000' stroke-width='1.25' stroke-linecap='round' stroke-linejoin='round' points='3.5,6.5 8,11 12.5,6.5'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpolyline fill='none' stroke='%23000' stroke-width='1.25' stroke-linecap='round' stroke-linejoin='round' points='3.5,6.5 8,11 12.5,6.5'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform 0.3s ease;
}

.ksemjot-home-faq-sec .elementor-tab-title.elementor-active .elementor-toggle-icon::before,
.ksemjot-home-faq-sec .elementor-tab-title.elementor-active .elementor-accordion-icon::before,
.ksemjot-home-faq-sec .elementor-active .elementor-toggle-icon::before,
.ksemjot-home-faq-sec .elementor-active .elementor-accordion-icon::before {
  transform: rotate(180deg);
}

.ksemjot-home-faq-sec .elementor-tab-title .elementor-toggle-title,
.ksemjot-home-faq-sec .elementor-tab-title .elementor-accordion-title,
.ksemjot-home-faq-sec a.elementor-toggle-title {
  flex: 1 1 auto !important;
  order: 1 !important;
  padding: 0 !important;
  margin: 0 !important;
  color: inherit !important;
  text-decoration: none !important;
  font: inherit !important;
}

.ksemjot-home-faq-sec .elementor-tab-content {
  font-family: Figtree, Roboto, system-ui, sans-serif !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 24px !important;
  /* OnePage odpowiedzi: rgba(43,42,43,0.48) */
  color: rgba(43, 42, 43, 0.48) !important;
  padding: 0 2rem 1.15rem 0 !important;
  border: 0 !important;
  /* Płynne slideToggle jQuery — nie blokować wysokości */
  overflow: hidden;
}

.ksemjot-home-faq-sec .elementor-tab-content p {
  margin: 0 0 0.75rem !important;
  color: rgba(43, 42, 43, 0.48) !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 24px !important;
}

.ksemjot-home-faq-sec .elementor-tab-content p:last-child {
  margin-bottom: 0 !important;
}

/* Bez agresywnych animacji CSS kolidujących z slideToggle Elementora */
.ksemjot-home-faq-sec .elementor-tab-content.elementor-active {
  animation: none;
}

@media (max-width: 768px) {
  body.ksemjot-onepage-elementor #faq.ksemjot-home-faq-sec > .elementor-container {
    flex-direction: column !important;
    gap: 1.75rem !important;
  }

  body.ksemjot-onepage-elementor #faq .ksemjot-home-faq__col--intro.elementor-column,
  body.ksemjot-onepage-elementor #faq .ksemjot-home-faq__col--list.elementor-column {
    flex: 1 1 100% !important;
    max-width: none !important;
    width: 100% !important;
  }

  body.ksemjot-onepage-elementor #faq .ksemjot-home-faq__title .elementor-heading-title {
    font-size: 36px !important;
    text-align: center !important;
  }

  body.ksemjot-onepage-elementor #faq .ksemjot-home-faq__intro,
  body.ksemjot-onepage-elementor #faq .ksemjot-home-faq__intro p {
    text-align: center !important;
  }

  .ksemjot-home-faq-sec .elementor-tab-title {
    font-size: 18px !important;
  }
}

/* ——— BIURA (kontakt + mapa) — 1:1 OnePage ——— */
body.ksemjot-onepage-elementor #biura.ksemjot-home-biura {
  background-color: #f2f2f1 !important;
}

body.ksemjot-onepage-elementor #biura.ksemjot-home-biura > .elementor-container {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: stretch !important;
  gap: 24px !important;
  column-gap: 24px !important;
}

body.ksemjot-onepage-elementor #biura .ksemjot-home-biura__card.elementor-column {
  flex: 1 1 calc(50% - 12px) !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  background-color: #ffffff !important;
}

body.ksemjot-onepage-elementor #biura .ksemjot-home-biura__card > .elementor-widget-wrap {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  padding: 40px !important;
  background-color: #ffffff !important;
  box-sizing: border-box !important;
}

body.ksemjot-onepage-elementor #biura .ksemjot-home-biura__title .elementor-heading-title,
body.ksemjot-onepage-elementor #biura .ksemjot-brush .elementor-heading-title {
  font-size: 32px !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  color: #2b2a2b !important;
  text-align: left !important;
}

body.ksemjot-onepage-elementor #biura .ksemjot-home-biura__addr-wrap,
body.ksemjot-onepage-elementor #biura .ksemjot-home-biura__addr-wrap p,
body.ksemjot-onepage-elementor #biura .ksemjot-home-biura__addr {
  margin: 0.65rem 0 0 !important;
  font-size: 18px !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
  color: rgba(43, 42, 43, 0.5) !important;
  text-align: left !important;
}

.ksemjot-home-biura__line {
  width: 100%;
  height: 2px;
  margin: 1.35rem 0 1.5rem;
  background: #f2f2f1;
  border: 0;
}

.ksemjot-biura-contacts {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.ksemjot-biura-contact {
  display: inline-flex !important;
  align-items: center !important;
  gap: 12px !important;
  color: #2b2a2b !important;
  text-decoration: none !important;
  border-bottom: 0 !important;
  font-family: Figtree, Roboto, system-ui, sans-serif !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  width: max-content;
  max-width: 100%;
}

.ksemjot-biura-contact:hover {
  color: #2b2a2b !important;
  opacity: 0.85;
}

.ksemjot-biura-contact__icon {
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  background-color: #2b2a2b;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

/* Envelope */
.ksemjot-biura-contact--mail .ksemjot-biura-contact__icon {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M13.4 14.6A2.3 2.3 0 0 1 12 15a2.3 2.3 0 0 1-1.4-.4L0 8.9V19a3 3 0 0 0 3 3h18a3 3 0 0 0 3-3V8.9z'/%3E%3Cpath fill='%23000' d='M21 2H3a3 3 0 0 0-3 3v1a1.05 1.05 0 0 0 .5.9l11 6a.9.9 0 0 0 .5.1.9.9 0 0 0 .5-.1l11-6A1.05 1.05 0 0 0 24 6V5a3 3 0 0 0-3-3z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M13.4 14.6A2.3 2.3 0 0 1 12 15a2.3 2.3 0 0 1-1.4-.4L0 8.9V19a3 3 0 0 0 3 3h18a3 3 0 0 0 3-3V8.9z'/%3E%3Cpath fill='%23000' d='M21 2H3a3 3 0 0 0-3 3v1a1.05 1.05 0 0 0 .5.9l11 6a.9.9 0 0 0 .5.1.9.9 0 0 0 .5-.1l11-6A1.05 1.05 0 0 0 24 6V5a3 3 0 0 0-3-3z'/%3E%3C/svg%3E");
}

/* Desk phone */
.ksemjot-biura-contact--phone .ksemjot-biura-contact__icon {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M20 0H4a4 4 0 0 0-4 4v2a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1V4h10v2a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1V4a4 4 0 0 0-4-4z'/%3E%3Cpath fill='%23000' d='M22.759 16.35l-6-7A1 1 0 0 0 16 9H8a1 1 0 0 0-.759.35l-6 7A.994.994 0 0 0 1 17v5a1 1 0 0 0 1 1h20a1 1 0 0 0 1-1v-5a.994.994 0 0 0-.241-.65zM12 19a3 3 0 1 1 3-3 3 3 0 0 1-3 3z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M20 0H4a4 4 0 0 0-4 4v2a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1V4h10v2a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1V4a4 4 0 0 0-4-4z'/%3E%3Cpath fill='%23000' d='M22.759 16.35l-6-7A1 1 0 0 0 16 9H8a1 1 0 0 0-.759.35l-6 7A.994.994 0 0 0 1 17v5a1 1 0 0 0 1 1h20a1 1 0 0 0 1-1v-5a.994.994 0 0 0-.241-.65zM12 19a3 3 0 1 1 3-3 3 3 0 0 1-3 3z'/%3E%3C/svg%3E");
}

/* Mobile handset */
.ksemjot-biura-contact--mobile .ksemjot-biura-contact__icon {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M15.639 14.407l-2.355 2.321a19.111 19.111 0 0 1-3.4-2.613 19.353 19.353 0 0 1-2.612-3.4L9.591 8.36a1.01 1.01 0 0 0 .208-1.1L7.382 1.614A1.009 1.009 0 0 0 6.2 1.036L1.756 2.209A1.007 1.007 0 0 0 1 3.218 21.337 21.337 0 0 0 7.039 16.959 21.339 21.339 0 0 0 20.784 23a1.011 1.011 0 0 0 1.01-.756l1.172-4.44a1.009 1.009 0 0 0-.577-1.186L16.748 14.2a1.009 1.009 0 0 0-1.109.207z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M15.639 14.407l-2.355 2.321a19.111 19.111 0 0 1-3.4-2.613 19.353 19.353 0 0 1-2.612-3.4L9.591 8.36a1.01 1.01 0 0 0 .208-1.1L7.382 1.614A1.009 1.009 0 0 0 6.2 1.036L1.756 2.209A1.007 1.007 0 0 0 1 3.218 21.337 21.337 0 0 0 7.039 16.959 21.339 21.339 0 0 0 20.784 23a1.011 1.011 0 0 0 1.01-.756l1.172-4.44a1.009 1.009 0 0 0-.577-1.186L16.748 14.2a1.009 1.009 0 0 0-1.109.207z'/%3E%3C/svg%3E");
}

/* Mapa w białej karcie */
body.ksemjot-onepage-elementor #biura .ksemjot-home-biura__card--map > .elementor-widget-wrap {
  padding: 40px !important;
}

body.ksemjot-onepage-elementor #biura .con-kit-component-map,
body.ksemjot-onepage-elementor #biura .ksemjot-home-map {
  width: 100% !important;
  height: 100% !important;
  min-height: 360px !important;
  flex: 1 1 auto !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: #e8e8e8;
  overflow: hidden;
}

body.ksemjot-onepage-elementor #biura .con-kit-component-map__content,
body.ksemjot-onepage-elementor #biura #ksemjot-leaflet-map,
body.ksemjot-onepage-elementor #biura .leaflet-container {
  width: 100% !important;
  height: 100% !important;
  min-height: 360px !important;
  border-radius: 0 !important;
}

.ksemjot-home-biura a {
  color: #2b2a2b;
  text-decoration: none;
}

@media (max-width: 768px) {
  body.ksemjot-onepage-elementor #biura.ksemjot-home-biura > .elementor-container {
    flex-direction: column !important;
    gap: 24px !important;
  }

  body.ksemjot-onepage-elementor #biura .ksemjot-home-biura__card.elementor-column {
    flex: 1 1 100% !important;
    width: 100% !important;
  }

  body.ksemjot-onepage-elementor #biura .ksemjot-home-biura__card > .elementor-widget-wrap {
    padding: 28px 24px !important;
  }

  body.ksemjot-onepage-elementor #biura .ksemjot-home-biura__title .elementor-heading-title {
    font-size: 28px !important;
  }

  body.ksemjot-onepage-elementor #biura .con-kit-component-map,
  body.ksemjot-onepage-elementor #biura .con-kit-component-map__content,
  body.ksemjot-onepage-elementor #biura #ksemjot-leaflet-map {
    min-height: 280px !important;
  }

  body.ksemjot-onepage-elementor #biura .ksemjot-biura-contacts,
  body.ksemjot-onepage-elementor #biura .ksemjot-home-biura__addr-wrap,
  body.ksemjot-onepage-elementor #biura .ksemjot-home-biura__title {
    text-align: center !important;
  }

  body.ksemjot-onepage-elementor #biura .ksemjot-home-biura__title .elementor-heading-title,
  body.ksemjot-onepage-elementor #biura .ksemjot-home-biura__addr {
    text-align: center !important;
  }

  body.ksemjot-onepage-elementor #biura .ksemjot-biura-contact {
    margin-left: auto;
    margin-right: auto;
  }

  body.ksemjot-onepage-elementor #biura .ksemjot-home-biura__line {
    margin-left: auto;
    margin-right: auto;
  }
}

/* CTA bleed — 1:1 OnePage / jak zapisz (szerokość ~940, tytuł 48, rating) */
.ksemjot-home-cta .ksemjot-home-cta__body,
.ksemjot-home-cta .ksemjot-home-cta__body.elementor-widget-text-editor {
  max-width: 940px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.ksemjot-home-zapisz .ksemjot-home-zapisz__body,
.ksemjot-home-zapisz .ksemjot-home-zapisz__body.elementor-widget-text-editor {
  max-width: 940px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* CTA / Zapisz body — biały tekst na tle ze zdjęciem (tylko te sekcje, nie FAQ) */
body.ksemjot-onepage-elementor .ksemjot-home-cta .ksemjot-home-cta__body,
body.ksemjot-onepage-elementor .ksemjot-home-cta .ksemjot-home-cta__body p,
body.ksemjot-onepage-elementor .ksemjot-home-zapisz .ksemjot-home-zapisz__body,
body.ksemjot-onepage-elementor .ksemjot-home-zapisz .ksemjot-home-zapisz__body p {
  font-size: 20px !important;
  line-height: 30px !important;
  font-weight: 400 !important;
  color: #ffffff !important;
  text-align: center !important;
  max-width: 940px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Dlaczego intro — ciemny tekst na białym tle (osobno od CTA) */
body.ksemjot-onepage-elementor .ksemjot-home-dlaczego-intro .ksemjot-home-dlaczego-intro__body,
body.ksemjot-onepage-elementor .ksemjot-home-dlaczego-intro .ksemjot-home-dlaczego-intro__body.elementor-widget-text-editor,
body.ksemjot-onepage-elementor .ksemjot-home-dlaczego-intro .ksemjot-home-dlaczego-intro__body p,
body.ksemjot-onepage-elementor .ksemjot-home-dlaczego-intro .elementor-widget-text-editor,
body.ksemjot-onepage-elementor .ksemjot-home-dlaczego-intro .elementor-widget-text-editor p {
  font-size: 20px !important;
  line-height: 30px !important;
  font-weight: 400 !important;
  color: #2b2a2b !important;
  text-align: center !important;
  max-width: 1145px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.ksemjot-onepage-elementor .ksemjot-home-dlaczego-intro .ksemjot-home-dlaczego-intro__title .elementor-heading-title,
body.ksemjot-onepage-elementor .ksemjot-home-dlaczego-intro .ksemjot-brush .elementor-heading-title {
  font-size: 48px !important;
  font-weight: 600 !important;
  line-height: 1.28 !important;
  color: #2b2a2b !important;
  text-align: center !important;
}

/* ——— Dlaczego wiersze 01–04: [num | tekst | obraz] (gap 60 jak OnePage) ——— */
/* Desktop: content (01+tekst) wyśrodkowany wertykalnie względem stałego kadru zdjęcia */
body.ksemjot-onepage-elementor .ksemjot-home-dlaczego-row > .elementor-container {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  gap: 60px !important;
  column-gap: 60px !important;
}

body.ksemjot-onepage-elementor .ksemjot-home-dlaczego-row .ksemjot-home-dlaczego__col--num.elementor-column {
  flex: 0 0 104px !important;
  width: 104px !important;
  max-width: 104px !important;
  min-width: 0 !important;
}

body.ksemjot-onepage-elementor .ksemjot-home-dlaczego-row .ksemjot-home-dlaczego__col--text.elementor-column {
  flex: 1 1 0 !important;
  width: auto !important;
  max-width: 540px !important;
  min-width: 0 !important;
}

body.ksemjot-onepage-elementor .ksemjot-home-dlaczego-row .ksemjot-home-dlaczego__col--media.elementor-column {
  flex: 0 1 486px !important;
  width: auto !important;
  max-width: 486px !important;
  min-width: 0 !important;
}

body.ksemjot-onepage-elementor .ksemjot-home-dlaczego__num .elementor-heading-title {
  font-size: 48px !important;
  font-weight: 600 !important;
  line-height: 1.28 !important;
  color: #2b2a2b !important;
  text-align: left !important;
}

body.ksemjot-onepage-elementor .ksemjot-home-dlaczego-row .ksemjot-brush.elementor-widget-heading {
  text-align: left !important;
}

/*
 * Brush tylko pod literami nagłówka (jak OnePage: osobna kreska na każdą linię),
 * nie na pełną szerokość kolumny — inline + box-decoration-break:clone.
 */
body.ksemjot-onepage-elementor .ksemjot-home-dlaczego-row .ksemjot-brush .elementor-heading-title,
body.ksemjot-onepage-elementor .ksemjot-home-dlaczego__title .elementor-heading-title {
  display: inline !important;
  width: auto !important;
  max-width: 100% !important;
  font-size: 32px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  color: #2b2a2b !important;
  text-align: left !important;
  background-image: url("../img/ksemjot-underline.svg") !important;
  background-repeat: no-repeat !important;
  background-position: left bottom !important;
  background-size: 100% 6px !important;
  padding-bottom: 0.45rem !important;
  border-bottom: none !important;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

body.ksemjot-onepage-elementor .ksemjot-home-dlaczego__body,
body.ksemjot-onepage-elementor .ksemjot-home-dlaczego__body p {
  font-size: 18px !important;
  font-weight: 400 !important;
  line-height: 27px !important;
  color: #2b2a2b !important;
  text-align: left !important;
  margin: 0.75rem 0 0 !important;
}

/* Statyczny kadr 486×301 (OnePage) — bez rozciągania naturalną proporcją JPEG */
body.ksemjot-onepage-elementor .ksemjot-home-dlaczego__col--media .elementor-widget-image,
body.ksemjot-onepage-elementor .ksemjot-home-dlaczego__col--media .elementor-widget-container {
  width: 100% !important;
  max-width: 486px !important;
  aspect-ratio: 486 / 301 !important;
  overflow: hidden !important;
  border-radius: 4px;
  line-height: 0 !important;
}

body.ksemjot-onepage-elementor .ksemjot-home-dlaczego__col--media img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  aspect-ratio: auto !important;
  display: block !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 4px;
  box-shadow: none !important;
}

/* ——— Poznaj / Kim (story split) ——— */
/* Desktop: zdjęcie wyśrodkowane wertykalnie względem kolumny tekstu (nie od nagłówka) */
body.ksemjot-onepage-elementor .ksemjot-home-story > .elementor-container {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  gap: 56px !important;
  column-gap: 56px !important;
}

body.ksemjot-onepage-elementor .ksemjot-home-story .ksemjot-home-story__media.elementor-column,
body.ksemjot-onepage-elementor .ksemjot-home-story .ksemjot-home-story__text.elementor-column {
  flex: 1 1 0 !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
}

body.ksemjot-onepage-elementor .ksemjot-home-story .ksemjot-brush.elementor-widget-heading {
  text-align: left !important;
}

/* Brush pod literami tytułu story (nie na pełną szerokość kolumny) */
body.ksemjot-onepage-elementor .ksemjot-home-story .ksemjot-brush .elementor-heading-title,
body.ksemjot-onepage-elementor .ksemjot-home-story__title .elementor-heading-title {
  display: inline !important;
  width: auto !important;
  max-width: 100% !important;
  font-size: 32px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  color: #2b2a2b !important;
  text-align: left !important;
  background-image: url("../img/ksemjot-underline.svg") !important;
  background-repeat: no-repeat !important;
  background-position: left bottom !important;
  background-size: 100% 6px !important;
  padding-bottom: 0.45rem !important;
  border-bottom: none !important;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

body.ksemjot-onepage-elementor .ksemjot-home-story__subtitle .elementor-heading-title {
  font-size: 24px !important;
  font-weight: 600 !important;
  line-height: 1.31 !important;
  color: #2b2a2b !important;
  text-align: left !important;
  margin-top: 1.25rem !important;
}

body.ksemjot-onepage-elementor .ksemjot-home-story__body,
body.ksemjot-onepage-elementor .ksemjot-home-story__body p {
  font-size: 18px !important;
  font-weight: 400 !important;
  line-height: 27px !important;
  color: rgba(43, 42, 43, 0.5) !important;
  text-align: left !important;
  margin: 0.5rem 0 0 !important;
}

body.ksemjot-onepage-elementor .ksemjot-home-story__media img {
  width: 100% !important;
  height: auto !important;
  display: block;
  object-fit: cover;
  object-position: center;
  border-radius: 4px;
  box-shadow: none;
}

/* OnePage: Poznaj ~597×519, Kim ~597×299 */
body.ksemjot-onepage-elementor .ksemjot-home-poznaj .ksemjot-home-story__media img {
  aspect-ratio: 597 / 519;
}

body.ksemjot-onepage-elementor .ksemjot-home-kim .ksemjot-home-story__media img {
  aspect-ratio: 597 / 299;
}

body.ksemjot-onepage-elementor .ksemjot-home-kim,
body.ksemjot-onepage-elementor .ksemjot-home-poznaj {
  background-color: #ffffff !important;
}

/* CTA + Zapisz — tytuł 48/600 + brush pod literami (jak Dlaczego: inline + clone) */
body.ksemjot-onepage-elementor .ksemjot-home-cta .ksemjot-home-cta__title .elementor-heading-title,
body.ksemjot-onepage-elementor .ksemjot-home-cta .ksemjot-brush .elementor-heading-title,
body.ksemjot-onepage-elementor .ksemjot-home-zapisz .ksemjot-home-zapisz__title .elementor-heading-title,
body.ksemjot-onepage-elementor .ksemjot-home-zapisz .ksemjot-brush .elementor-heading-title {
  display: inline !important;
  width: auto !important;
  max-width: 100% !important;
  font-size: 48px !important;
  font-weight: 600 !important;
  line-height: 1.28 !important;
  color: #fff !important;
  background-image: url("../img/ksemjot-underline.svg") !important;
  background-repeat: no-repeat !important;
  background-position: center bottom !important;
  background-size: 100% 6px !important;
  padding-bottom: 0.45rem !important;
  border-bottom: none !important;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

body.ksemjot-onepage-elementor .ksemjot-home-cta .ksemjot-home-cta__title.ksemjot-brush,
body.ksemjot-onepage-elementor .ksemjot-home-cta .ksemjot-brush.elementor-widget-heading,
body.ksemjot-onepage-elementor .ksemjot-home-zapisz .ksemjot-home-zapisz__title.ksemjot-brush,
body.ksemjot-onepage-elementor .ksemjot-home-zapisz .ksemjot-brush.elementor-widget-heading {
  text-align: center !important;
}

/* CTA + Zapisz — rating jak hero */
body.ksemjot-onepage-elementor .ksemjot-home-cta .ksemjot-home-cta-rating,
body.ksemjot-onepage-elementor .ksemjot-home-cta .ksemjot-home-hero-rating,
body.ksemjot-onepage-elementor .ksemjot-home-cta .ksemjot-home-hero-rating .elementor-widget-container,
body.ksemjot-onepage-elementor .ksemjot-home-cta .ksemjot-home-hero-rating p,
body.ksemjot-onepage-elementor .ksemjot-home-cta .ksemjot-home-rating-line,
body.ksemjot-onepage-elementor .ksemjot-home-zapisz .ksemjot-home-zapisz-rating,
body.ksemjot-onepage-elementor .ksemjot-home-zapisz .ksemjot-home-hero-rating,
body.ksemjot-onepage-elementor .ksemjot-home-zapisz .ksemjot-home-hero-rating .elementor-widget-container,
body.ksemjot-onepage-elementor .ksemjot-home-zapisz .ksemjot-home-hero-rating p,
body.ksemjot-onepage-elementor .ksemjot-home-zapisz .ksemjot-home-rating-line {
  font-size: 18px !important;
  font-weight: 400 !important;
  line-height: 27px !important;
  color: #fff !important;
  text-align: center !important;
}

.ksemjot-home-cta .ksemjot-home-cta-rating,
.ksemjot-home-cta .ksemjot-home-hero-rating,
.ksemjot-home-zapisz .ksemjot-home-zapisz-rating,
.ksemjot-home-zapisz .ksemjot-home-hero-rating {
  margin-top: 2.75rem !important;
}

@media (max-width: 768px) {
  body.ksemjot-onepage-elementor .ksemjot-home-cta .ksemjot-home-cta__title .elementor-heading-title,
  body.ksemjot-onepage-elementor .ksemjot-home-cta .ksemjot-brush .elementor-heading-title,
  body.ksemjot-onepage-elementor .ksemjot-home-zapisz .ksemjot-home-zapisz__title .elementor-heading-title,
  body.ksemjot-onepage-elementor .ksemjot-home-zapisz .ksemjot-brush .elementor-heading-title {
    font-size: 29px !important;
  }
}

@media (max-width: 767px) {
  .ksemjot-home-hero {
    min-height: auto !important;
  }
}

/*
 * Mobile / wąski tablet: jeden gutter 24px jak OnePage
 * (--one-kit-outside-padding @ ≤768).
 * Bez tego Elementor stackuje section + container + widget-wrap.
 */
@media (max-width: 768px) {
  body.ksemjot-onepage-elementor .elementor-section.ksemjot-home,
  body.ksemjot-onepage-elementor .elementor-section.ksemjot-home-boxed,
  body.ksemjot-onepage-elementor .elementor-section.ksemjot-home-bleed,
  body.ksemjot-onepage-elementor .elementor-section.ksemjot-home-announce-wrap,
  body.ksemjot-onepage-elementor #kurs-banner.elementor-section {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body.ksemjot-onepage-elementor .elementor-section.ksemjot-home > .elementor-container,
  body.ksemjot-onepage-elementor .elementor-section.ksemjot-home-boxed > .elementor-container,
  body.ksemjot-onepage-elementor .elementor-section.ksemjot-home-bleed > .elementor-container,
  body.ksemjot-onepage-elementor .elementor-section.ksemjot-home-announce-wrap > .elementor-container,
  body.ksemjot-onepage-elementor #kurs-banner.elementor-section > .elementor-container,
  body.ksemjot-onepage-elementor .ksemjot-home-opinie-marquee > .elementor-container,
  body.ksemjot-onepage-elementor .ksemjot-marquee-section > .elementor-container,
  body.ksemjot-galeria .ksemjot-marquee-section > .elementor-container {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }

  body.ksemjot-onepage-elementor .ksemjot-home .elementor-column > .elementor-widget-wrap,
  body.ksemjot-onepage-elementor .ksemjot-home-boxed .elementor-column > .elementor-widget-wrap,
  body.ksemjot-onepage-elementor .ksemjot-home-bleed .elementor-column > .elementor-widget-wrap {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* Cennik karty: zachowaj wewnętrzny padding (nie zerować jak pozostałe kolumny) */
  body.ksemjot-onepage-elementor .ksemjot-home-cennik-cards .ksemjot-home-price-card > .elementor-widget-wrap {
    padding: 24px !important;
  }

  /* Cennik mobile: stack, center nagłówków + boxów (tylko ≤768) */
  body.ksemjot-onepage-elementor .ksemjot-home-cennik-cards > .elementor-container {
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 24px !important;
    row-gap: 24px !important;
  }

  body.ksemjot-onepage-elementor .ksemjot-home-cennik-cards .ksemjot-home-price-card.elementor-column {
    flex: 0 0 auto !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.ksemjot-onepage-elementor #cennik .ksemjot-home-cennik__title .elementor-heading-title,
  body.ksemjot-onepage-elementor #cennik .ksemjot-brush .elementor-heading-title,
  body.ksemjot-onepage-elementor #cennik.ksemjot-home-cennik-intro .ksemjot-home-cennik__title.ksemjot-brush .elementor-heading-title {
    font-size: 29px !important;
    text-align: center !important;
  }

  body.ksemjot-onepage-elementor #cennik .ksemjot-home-cennik__intro,
  body.ksemjot-onepage-elementor #cennik .ksemjot-home-cennik__intro p {
    text-align: center !important;
  }

  body.ksemjot-onepage-elementor .ksemjot-home-cennik-intro,
  body.ksemjot-onepage-elementor .ksemjot-home-cennik-cards {
    text-align: center;
  }

  .ksemjot-home-price-card .ksemjot-home-price__title .elementor-heading-title,
  .ksemjot-home-price-card .ksemjot-home-price__amount .elementor-heading-title,
  .ksemjot-home-price-card .ksemjot-brush.elementor-widget-heading {
    text-align: center !important;
  }

  .ksemjot-home-price-card .ksemjot-home-price__amount .elementor-heading-title {
    font-size: 29px !important;
  }

  body.ksemjot-onepage-elementor .ksemjot-home-price-card .elementor-widget-text-editor,
  body.ksemjot-onepage-elementor .ksemjot-home-price-card .elementor-widget-text-editor p,
  body.ksemjot-onepage-elementor .ksemjot-home-price__note,
  body.ksemjot-onepage-elementor .ksemjot-home-price__feat {
    text-align: center !important;
  }

  /* Brush pod ceną wyśrodkowany (inline-block + parent center) */
  .ksemjot-home-price-card .ksemjot-brush.elementor-widget-heading .elementor-heading-title {
    background-position: center bottom;
  }

  /* Story (Poznaj / Kim) mobile: stack, nagłówki do środka */
  body.ksemjot-onepage-elementor .ksemjot-home-story > .elementor-container {
    flex-direction: column !important;
    gap: 1.5rem !important;
  }

  body.ksemjot-onepage-elementor .ksemjot-home-story .ksemjot-home-story__media.elementor-column,
  body.ksemjot-onepage-elementor .ksemjot-home-story .ksemjot-home-story__text.elementor-column {
    flex: 1 1 100% !important;
    width: 100% !important;
    max-width: none !important;
  }

  body.ksemjot-onepage-elementor .ksemjot-home-story .ksemjot-brush.elementor-widget-heading,
  body.ksemjot-onepage-elementor .ksemjot-home-story__title .elementor-heading-title,
  body.ksemjot-onepage-elementor .ksemjot-home-story__subtitle .elementor-heading-title,
  body.ksemjot-onepage-elementor .ksemjot-home-story__body,
  body.ksemjot-onepage-elementor .ksemjot-home-story__body p {
    text-align: center !important;
  }

  body.ksemjot-onepage-elementor .ksemjot-home-story .ksemjot-brush.elementor-widget-heading .elementor-heading-title {
    background-position: center bottom;
  }

  body.ksemjot-onepage-elementor .ksemjot-home-dlaczego-intro .ksemjot-home-dlaczego-intro__title .elementor-heading-title {
    font-size: 29px !important;
  }

  /* Dlaczego rows mobile: num → tekst → obraz, tytuły wyśrodkowane */
  body.ksemjot-onepage-elementor .ksemjot-home-dlaczego-row > .elementor-container {
    flex-direction: column !important;
    gap: 1rem !important;
  }

  body.ksemjot-onepage-elementor .ksemjot-home-dlaczego-row .ksemjot-home-dlaczego__col--num.elementor-column,
  body.ksemjot-onepage-elementor .ksemjot-home-dlaczego-row .ksemjot-home-dlaczego__col--text.elementor-column,
  body.ksemjot-onepage-elementor .ksemjot-home-dlaczego-row .ksemjot-home-dlaczego__col--media.elementor-column {
    flex: 1 1 100% !important;
    width: 100% !important;
    max-width: none !important;
  }

  body.ksemjot-onepage-elementor .ksemjot-home-dlaczego__num .elementor-heading-title,
  body.ksemjot-onepage-elementor .ksemjot-home-dlaczego-row .ksemjot-brush.elementor-widget-heading,
  body.ksemjot-onepage-elementor .ksemjot-home-dlaczego__title .elementor-heading-title {
    text-align: center !important;
  }

  body.ksemjot-onepage-elementor .ksemjot-home-dlaczego__num .elementor-heading-title {
    font-size: 29px !important;
  }

  body.ksemjot-onepage-elementor .ksemjot-home-dlaczego-row .ksemjot-brush.elementor-widget-heading .elementor-heading-title {
    background-position: center bottom;
  }

  body.ksemjot-onepage-elementor .ksemjot-home-dlaczego__body,
  body.ksemjot-onepage-elementor .ksemjot-home-dlaczego__body p {
    text-align: left !important;
  }

  /* FAQ toggle/accordion: pełna szerokość, bez zwężania sąsiadów przy otwarciu */
  body.ksemjot-onepage-elementor #faq .elementor-toggle,
  body.ksemjot-onepage-elementor #faq .elementor-accordion,
  body.ksemjot-onepage-elementor #faq .elementor-toggle-item,
  body.ksemjot-onepage-elementor #faq .elementor-accordion-item,
  body.ksemjot-onepage-elementor #faq .elementor-tab-title,
  body.ksemjot-onepage-elementor #faq .elementor-tab-content {
    width: 100% !important;
    max-width: 100% !important;
    flex-shrink: 0 !important;
    box-sizing: border-box !important;
  }

  body.ksemjot-onepage-elementor #faq .ksemjot-home-faq__col--list .elementor-widget-wrap {
    width: 100% !important;
  }

  /* Czarny box kursu: wewnętrzny padding tekstu (nie zerować L/R) */
  body.ksemjot-onepage-elementor #kurs-banner .ksemjot-home-announce.elementor-column > .elementor-widget-wrap,
  body.ksemjot-onepage-elementor .ksemjot-home-announce-wrap .ksemjot-home-announce.elementor-column > .elementor-widget-wrap,
  body.ksemjot-onepage-elementor .elementor-column.ksemjot-home-announce > .elementor-widget-wrap {
    padding: 28px 24px !important;
  }

  /* Footer / kontakt — ten sam gutter */
  body.ksemjot-el-hf .ksemjot-el-footer.elementor-section,
  body.ksemjot-onepage-elementor .ksemjot-home-biura.elementor-section,
  body.ksemjot-onepage-elementor #faq.ksemjot-home-faq-sec.elementor-section {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body.ksemjot-el-hf .ksemjot-site-footer .ksemjot-el-footer > .elementor-container,
  body.ksemjot-onepage-elementor .ksemjot-home-biura > .elementor-container,
  body.ksemjot-onepage-elementor #faq.ksemjot-home-faq-sec > .elementor-container {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }

  body.ksemjot-el-hf .ksemjot-el-footer .elementor-column > .elementor-widget-wrap {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .ksemjot-site-header .ksemjot-el-header-bar > .elementor-container {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
}

/* Tablet: gutter jak OnePage desktop outside (32px) — bez stackowania wrap */
@media (min-width: 769px) and (max-width: 1024px) {
  body.ksemjot-onepage-elementor .elementor-section.ksemjot-home,
  body.ksemjot-onepage-elementor .elementor-section.ksemjot-home-boxed,
  body.ksemjot-onepage-elementor .elementor-section.ksemjot-home-bleed,
  body.ksemjot-onepage-elementor .elementor-section.ksemjot-home-announce-wrap,
  body.ksemjot-onepage-elementor #kurs-banner.elementor-section {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body.ksemjot-onepage-elementor .elementor-section.ksemjot-home > .elementor-container,
  body.ksemjot-onepage-elementor .elementor-section.ksemjot-home-boxed > .elementor-container,
  body.ksemjot-onepage-elementor .elementor-section.ksemjot-home-bleed > .elementor-container,
  body.ksemjot-onepage-elementor .elementor-section.ksemjot-home-announce-wrap > .elementor-container,
  body.ksemjot-onepage-elementor #kurs-banner.elementor-section > .elementor-container {
    padding-left: 32px !important;
    padding-right: 32px !important;
  }

  body.ksemjot-onepage-elementor .ksemjot-home .elementor-column > .elementor-widget-wrap,
  body.ksemjot-onepage-elementor .ksemjot-home-boxed .elementor-column > .elementor-widget-wrap,
  body.ksemjot-onepage-elementor .ksemjot-home-bleed .elementor-column > .elementor-widget-wrap {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

/* ——— Hero podstron (nie home): przyciemnienie jak home hero 0.55 + BG center ———
 * Klasa .ksemjot-subpage-hero na sekcji Elementor (Aktualności / Galeria / Polityka).
 * Min. 480px wysokości (wymaganie + pomiar OnePage ~499px).
 */
body:not(.home):not(.front-page) .ksemjot-subpage-hero.elementor-section,
.ksemjot-subpage-hero.elementor-section {
  background-position: center center !important;
  background-size: cover !important;
  min-height: 360px !important;
}

body:not(.home):not(.front-page) .ksemjot-subpage-hero .elementor-background-overlay,
.ksemjot-subpage-hero .elementor-background-overlay {
  background-color: #000 !important;
  opacity: 0.55 !important;
}

/* Wyśrodkowanie treści hero wertykalnie */
.ksemjot-subpage-hero > .elementor-container {
  min-height: inherit;
  align-items: center !important;
}

.ksemjot-subpage-hero .elementor-widget-wrap {
  justify-content: center;
}

/* Tytuł hero podstrony: białe + złote podkreślenie (reuse .ksemjot-home-underline) */
.ksemjot-subpage-hero__title .elementor-heading-title,
body.ksemjot-polityka-prywatnosci .ksemjot-polityka-hero__title .elementor-heading-title,
body.ksemjot-aktualnosci .ksemjot-subpage-hero__title .elementor-heading-title,
body.ksemjot-galeria .ksemjot-subpage-hero__title .elementor-heading-title {
  color: #fff !important;
  font-weight: 600 !important;
  text-align: center !important;
}

.ksemjot-subpage-hero__subtitle,
.ksemjot-subpage-hero__subtitle.elementor-widget-text-editor,
.ksemjot-subpage-hero__subtitle .elementor-widget-container,
.ksemjot-subpage-hero__subtitle p {
  color: #fff !important;
  font-family: Figtree, Roboto, system-ui, sans-serif !important;
  font-size: 18px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  text-align: center !important;
  max-width: 82% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-top: 1rem !important;
}

/* Legacy: polityka hero bez klasy subpage — ten sam overlay */
body.ksemjot-polityka-prywatnosci .ksemjot-polityka-hero .elementor-background-overlay {
  background-color: #000 !important;
  opacity: 0.55 !important;
}

body.ksemjot-polityka-prywatnosci .ksemjot-polityka-hero {
  min-height: 360px !important;
}

/* ——— Polityka prywatności (Elementor Free, edytowalny Text Editor) ——— */
body.ksemjot-polityka-prywatnosci .ksemjot-polityka-content > .elementor-container {
  max-width: min(1100px, 100%) !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.ksemjot-polityka-prywatnosci .ksemjot-polityka-content__title .elementor-heading-title {
  font-size: 36px !important;
  font-weight: 600 !important;
  color: #2b2a2b !important;
  text-align: center !important;
  margin-bottom: 1.5rem !important;
}

body.ksemjot-polityka-prywatnosci .ksemjot-polityka-body,
body.ksemjot-polityka-prywatnosci .ksemjot-polityka-body.elementor-widget-text-editor,
body.ksemjot-polityka-prywatnosci .ksemjot-polityka-body .elementor-widget-container,
body.ksemjot-polityka-prywatnosci .ksemjot-polityka-body p,
body.ksemjot-polityka-prywatnosci .ksemjot-polityka-body li {
  font-family: Figtree, Roboto, system-ui, sans-serif !important;
  font-size: 18px !important;
  font-weight: 400 !important;
  line-height: 1.65 !important;
  color: #2b2a2b !important;
  text-align: left !important;
  max-width: none !important;
}

body.ksemjot-polityka-prywatnosci .ksemjot-polityka-body p {
  margin: 0 0 1.15rem !important;
}

body.ksemjot-polityka-prywatnosci .ksemjot-polityka-body ul {
  margin: 0 0 1.15rem 1.25rem !important;
  padding: 0 !important;
  list-style: disc !important;
}

body.ksemjot-polityka-prywatnosci .ksemjot-polityka-body li {
  margin: 0 0 0.4rem !important;
}

body.ksemjot-polityka-prywatnosci .ksemjot-polityka-body a {
  color: #2b2a2b !important;
  text-decoration: underline;
}

/* Extra dolny odstęp od stopki (oprócz padding sekcji 120px) */
body.ksemjot-polityka-prywatnosci .ksemjot-polityka-content.elementor-section {
  margin-bottom: 2.5rem !important;
}

@media (max-width: 768px) {
  body.ksemjot-polityka-prywatnosci .ksemjot-polityka-hero__title .elementor-heading-title {
    font-size: 32px !important;
  }

  body.ksemjot-polityka-prywatnosci .ksemjot-polityka-content__title .elementor-heading-title {
    font-size: 28px !important;
  }

  body.ksemjot-polityka-prywatnosci .ksemjot-polityka-body,
  body.ksemjot-polityka-prywatnosci .ksemjot-polityka-body p,
  body.ksemjot-polityka-prywatnosci .ksemjot-polityka-body li {
    font-size: 16px !important;
  }
}

/* ——— Aktualności (Elementor Free: hero + 3 sekcje kart 1:1 OnePage) ——— */
body.ksemjot-aktualnosci .ksemjot-akt-section__title .elementor-heading-title {
  font-family: Figtree, Roboto, system-ui, sans-serif !important;
  font-size: 48px !important;
  font-weight: 600 !important;
  letter-spacing: -0.4px !important;
  line-height: 1.3 !important;
  color: #2b2a2b !important;
  text-align: center !important;
  margin-bottom: 0 !important;
}

body.ksemjot-aktualnosci .ksemjot-akt-section-cards > .elementor-container {
  /* 3×380 + gap — auto-fit trzyma min. 380px i nie rozciąga samotnej karty na 100% */
  max-width: min(var(--ksemjot-home-max, 1400px), 100%) !important;
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));
  gap: 24px 65px !important;
  align-items: stretch !important;
}

body.ksemjot-aktualnosci .ksemjot-akt-card {
  background: transparent !important;
}

/* Desktop: każdy post min. 380px (Elementor col-% nie może zejść niżej) */
@media (min-width: 769px) {
  body.ksemjot-aktualnosci .ksemjot-akt-card.elementor-column {
    min-width: 380px !important;
    width: auto !important;
    max-width: 100% !important;
    flex: none !important;
  }
}

body.ksemjot-aktualnosci .ksemjot-akt-card--empty {
  display: none !important;
}

body.ksemjot-aktualnosci .ksemjot-akt-card > .elementor-widget-wrap {
  display: flex;
  flex-direction: column;
  gap: 0;
  height: 100%;
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* Obraz karty — proporcja OnePage (~70% szerokości) */
body.ksemjot-aktualnosci .ksemjot-akt-card__image .elementor-widget-container,
body.ksemjot-aktualnosci .ksemjot-akt-card__image img {
  width: 100% !important;
  margin: 0 0 30px !important;
}

body.ksemjot-aktualnosci .ksemjot-akt-card__image img {
  display: block;
  aspect-ratio: 10 / 7;
  height: auto !important;
  object-fit: cover !important;
  object-position: center center !important;
  border-radius: 0 !important;
}

body.ksemjot-aktualnosci .ksemjot-akt-card__meta {
  margin: 0 0 10px !important;
}

body.ksemjot-aktualnosci .ksemjot-akt-card__meta .elementor-widget-container,
body.ksemjot-aktualnosci .ksemjot-akt-card__meta p,
body.ksemjot-aktualnosci .ksemjot-akt-card__date {
  margin: 0 !important;
  font-family: Figtree, Roboto, system-ui, sans-serif !important;
  font-size: 20px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  color: #b8c6c6 !important;
}

body.ksemjot-aktualnosci .ksemjot-akt-card__title {
  margin: 0 0 20px !important;
}

body.ksemjot-aktualnosci .ksemjot-akt-card__title .elementor-heading-title {
  font-family: Figtree, Roboto, system-ui, sans-serif !important;
  font-size: 24px !important;
  font-weight: 600 !important;
  letter-spacing: -0.4px !important;
  line-height: 1.3 !important;
  color: #2b2a2b !important;
  text-align: left !important;
}

body.ksemjot-aktualnosci .ksemjot-akt-card__excerpt {
  margin: 0 0 10px !important;
}

body.ksemjot-aktualnosci .ksemjot-akt-card__excerpt .elementor-widget-container,
body.ksemjot-aktualnosci .ksemjot-akt-card__excerpt p {
  margin: 0 !important;
  font-family: Figtree, Roboto, system-ui, sans-serif !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  color: rgba(43, 42, 43, 0.5) !important;
}

body.ksemjot-aktualnosci .ksemjot-akt-card__cta {
  margin: 10px 0 0 !important;
  text-align: left !important;
}

body.ksemjot-aktualnosci .ksemjot-akt-card__cta .elementor-button {
  background-color: #2b2a2b !important;
  color: #fff !important;
  border-radius: 4px !important;
  min-height: 56px !important;
  padding: 7px 28px !important;
  font-size: 15px !important;
  font-weight: 600 !important;
}

body.ksemjot-aktualnosci .ksemjot-akt-card__cta--line .elementor-button {
  background-color: transparent !important;
  color: #2b2a2b !important;
  border: 1px solid #2b2a2b !important;
  margin-top: 0 !important;
}

/* Dwa CTA: jeden rząd, wyrównanie do lewej */
body.ksemjot-aktualnosci .ksemjot-akt-card:has(.ksemjot-akt-card__cta--line) > .elementor-widget-wrap {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
  column-gap: 16px !important;
  row-gap: 0 !important;
}

body.ksemjot-aktualnosci .ksemjot-akt-card:has(.ksemjot-akt-card__cta--line) > .elementor-widget-wrap > :not(.ksemjot-akt-card__cta) {
  flex: 1 1 100% !important;
  width: 100% !important;
}

body.ksemjot-aktualnosci .ksemjot-akt-card:has(.ksemjot-akt-card__cta--line) .ksemjot-akt-card__cta {
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: max-content !important;
  margin-top: 10px !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

body.ksemjot-aktualnosci .ksemjot-akt-card:has(.ksemjot-akt-card__cta--line) .ksemjot-akt-card__cta--line {
  margin-top: 10px !important;
}

body.ksemjot-aktualnosci .ksemjot-akt-card:has(.ksemjot-akt-card__cta--line) .ksemjot-akt-card__cta .elementor-button {
  width: auto !important;
}

body.ksemjot-aktualnosci .ksemjot-akt-card__cta .elementor-widget-container,
body.ksemjot-aktualnosci .ksemjot-akt-card__cta .elementor-button-wrapper {
  text-align: left !important;
  justify-content: flex-start !important;
}

body.ksemjot-aktualnosci .ksemjot-subpage-hero__title .elementor-heading-title {
  font-size: 40px !important;
}

body.ksemjot-galeria .ksemjot-subpage-hero__title .elementor-heading-title {
  font-size: 48px !important;
}

/* Separatory łukowe — OnePage: TOP na środkowej sekcji, kolor poprzedniego tła */
body.ksemjot-aktualnosci .ksemjot-akt-curve--top.elementor-section {
  overflow: visible !important;
}

body.ksemjot-aktualnosci .ksemjot-akt-curve--top > .elementor-shape-top {
  z-index: 2;
  pointer-events: none;
}

body.ksemjot-aktualnosci .ksemjot-akt-curve--top .elementor-shape-top svg {
  width: calc(100% + 1.3px);
  height: 127px;
}

/*
 * Łuk 127px + odstęp do nagłówka (~56px), żeby shape nie nachodził na tytuł.
 * margin-top ujemny zostawia overlap wizualny z poprzednią sekcją.
 */
body.ksemjot-aktualnosci .ksemjot-akt-curve--top.elementor-section,
body.ksemjot-aktualnosci #aktualnosci-szkolenia-head.ksemjot-akt-curve--top,
body.ksemjot-aktualnosci #aktualnosci-zawody-head.ksemjot-akt-curve--top {
  margin-top: -64px !important;
  padding-top: 200px !important; /* 127 (łuk) + ~73 (luz do H2) */
}

body.ksemjot-aktualnosci .ksemjot-akt-curve--top > .elementor-container {
  position: relative;
  z-index: 3;
}

/* Na wypadek bottom divider — ten sam luz pod łukiem */
body.ksemjot-aktualnosci .ksemjot-akt-curve--bottom.elementor-section {
  padding-bottom: 200px !important;
}

body.ksemjot-aktualnosci .ksemjot-akt-curve--bottom .elementor-shape-bottom svg {
  width: calc(100% + 1.3px);
  height: 127px;
}

@media (max-width: 1024px) {
  body.ksemjot-aktualnosci .ksemjot-akt-section-cards > .elementor-container {
    gap: 32px 24px !important;
  }
}

@media (max-width: 767px) {
  body.ksemjot-aktualnosci .ksemjot-subpage-hero__title .elementor-heading-title,
  body.ksemjot-galeria .ksemjot-subpage-hero__title .elementor-heading-title {
    font-size: 28px !important;
  }

  body.ksemjot-aktualnosci .ksemjot-akt-section__title .elementor-heading-title {
    font-size: 32px !important;
  }

  body.ksemjot-aktualnosci .ksemjot-subpage-hero__subtitle p {
    font-size: 16px !important;
    max-width: 100% !important;
  }

  body.ksemjot-aktualnosci .ksemjot-akt-section-cards > .elementor-container {
    gap: 20px !important;
    grid-template-columns: 1fr !important;
  }

  body.ksemjot-aktualnosci .ksemjot-akt-card.elementor-column {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body.ksemjot-aktualnosci .ksemjot-akt-card__title .elementor-heading-title {
    font-size: 22px !important;
  }
}

/* ==========================================================================
 * MOBILE-ONLY (≤768) — footer/menu/FAQ/features/brush/dlaczego numery
 * ========================================================================== */
@media (max-width: 768px) {
  /* 3) FAQ — nagłówek do środka + brush tylko pod tekstem */
  body.ksemjot-onepage-elementor #faq .ksemjot-home-faq__title,
  body.ksemjot-onepage-elementor #faq .ksemjot-home-faq__title.ksemjot-brush,
  body.ksemjot-onepage-elementor #faq .ksemjot-brush.elementor-widget-heading {
    text-align: center !important;
    width: 100% !important;
  }

  body.ksemjot-onepage-elementor #faq .ksemjot-home-faq__title .elementor-heading-title,
  body.ksemjot-onepage-elementor #faq .ksemjot-brush .elementor-heading-title {
    display: inline !important;
    width: auto !important;
    max-width: 100% !important;
    text-align: center !important;
    background-position: center bottom !important;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
  }

  /* 4/5/8) Cennik / CTA / Zapisz / Hero eyebrow — brush pod tekstem, nie na całą kolumnę */
  body.ksemjot-onepage-elementor #cennik .ksemjot-brush.elementor-widget-heading,
  body.ksemjot-onepage-elementor #cennik .ksemjot-home-cennik__title,
  body.ksemjot-onepage-elementor .ksemjot-home-cta .ksemjot-brush.elementor-widget-heading,
  body.ksemjot-onepage-elementor .ksemjot-home-cta .ksemjot-home-cta__title,
  body.ksemjot-onepage-elementor .ksemjot-home-zapisz .ksemjot-brush.elementor-widget-heading,
  body.ksemjot-onepage-elementor .ksemjot-home-zapisz .ksemjot-home-zapisz__title,
  body.ksemjot-onepage-elementor .ksemjot-home-hero .ksemjot-home-hero__eyebrow,
  body.ksemjot-onepage-elementor .ksemjot-home-hero .ksemjot-brush.elementor-widget-heading {
    text-align: center !important;
    width: 100% !important;
  }

  body.ksemjot-onepage-elementor #cennik .ksemjot-brush .elementor-heading-title,
  body.ksemjot-onepage-elementor #cennik .ksemjot-home-cennik__title .elementor-heading-title,
  body.ksemjot-onepage-elementor .ksemjot-home-cta .ksemjot-brush .elementor-heading-title,
  body.ksemjot-onepage-elementor .ksemjot-home-cta .ksemjot-home-cta__title .elementor-heading-title,
  body.ksemjot-onepage-elementor .ksemjot-home-zapisz .ksemjot-brush .elementor-heading-title,
  body.ksemjot-onepage-elementor .ksemjot-home-zapisz .ksemjot-home-zapisz__title .elementor-heading-title,
  body.ksemjot-onepage-elementor .ksemjot-home-hero .ksemjot-home-hero__eyebrow .elementor-heading-title,
  body.ksemjot-onepage-elementor .ksemjot-home-hero .ksemjot-brush .elementor-heading-title {
    display: inline !important;
    width: auto !important;
    max-width: 100% !important;
    text-align: center !important;
    background-position: center bottom !important;
    background-size: 100% 6px !important;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
  }

  /* 6) Ukryj numery 01–04 w „Dlaczego” */
  body.ksemjot-onepage-elementor .ksemjot-home-dlaczego-row .ksemjot-home-dlaczego__col--num,
  body.ksemjot-onepage-elementor .ksemjot-home-dlaczego-row .ksemjot-home-dlaczego__col--num.elementor-column {
    display: none !important;
  }

  body.ksemjot-onepage-elementor .ksemjot-home-dlaczego__body,
  body.ksemjot-onepage-elementor .ksemjot-home-dlaczego__body p {
    text-align: center !important;
  }

  /* 7) Feature rows (Kursy / Treningi / Zawody / Wynajem / Profesjonalizm…) — center */
  body.ksemjot-onepage-elementor .ksemjot-home-feature > .elementor-container {
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    gap: 1.5rem !important;
  }

  body.ksemjot-onepage-elementor .ksemjot-home-feature .elementor-column,
  body.ksemjot-onepage-elementor .ksemjot-home-feature .ksemjot-home-feature__text,
  body.ksemjot-onepage-elementor .ksemjot-home-feature .ksemjot-home-feature__media {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 100% !important;
    text-align: center !important;
  }

  body.ksemjot-onepage-elementor .ksemjot-home-feature .ksemjot-home-feature__text .elementor-widget-wrap {
    align-items: center !important;
    align-content: center !important;
    justify-content: center !important;
    text-align: center !important;
  }

  body.ksemjot-onepage-elementor .ksemjot-home-feature .elementor-heading-title,
  body.ksemjot-onepage-elementor .ksemjot-home-feature .elementor-widget-text-editor,
  body.ksemjot-onepage-elementor .ksemjot-home-feature .elementor-widget-text-editor p,
  body.ksemjot-onepage-elementor .ksemjot-home-feature .ksemjot-home-badge,
  body.ksemjot-onepage-elementor .ksemjot-home-feature .ksemjot-mark {
    text-align: center !important;
  }

  /* Feature titles: ksemjot-home-underline (nie tylko ksemjot-brush) */
  body.ksemjot-onepage-elementor .ksemjot-home-feature .ksemjot-brush.elementor-widget-heading,
  body.ksemjot-onepage-elementor .ksemjot-home-feature .ksemjot-home-underline.elementor-widget-heading {
    text-align: center !important;
  }

  body.ksemjot-onepage-elementor .ksemjot-home-feature .ksemjot-brush .elementor-heading-title,
  body.ksemjot-onepage-elementor .ksemjot-home-feature .ksemjot-home-underline .elementor-heading-title {
    display: inline !important;
    width: auto !important;
    max-width: 100% !important;
    background-position: center bottom !important;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
  }

  body.ksemjot-onepage-elementor .ksemjot-home-feature .elementor-widget-button,
  body.ksemjot-onepage-elementor .ksemjot-home-feature .elementor-widget-button .elementor-button {
    text-align: center !important;
    justify-content: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.ksemjot-onepage-elementor .ksemjot-home-feature .elementor-widget-image,
  body.ksemjot-onepage-elementor .ksemjot-home-feature .elementor-widget-image img {
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
  }

  body.ksemjot-onepage-elementor .ksemjot-home-feature .ksemjot-home-badge,
  body.ksemjot-onepage-elementor .ksemjot-home-feature .ksemjot-mark {
    justify-content: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* 2) Biuro / kontakt — adres do środka (wzmocnienie) */
  body.ksemjot-onepage-elementor #biura .ksemjot-home-biura__addr-wrap,
  body.ksemjot-onepage-elementor #biura .ksemjot-home-biura__addr-wrap p,
  body.ksemjot-onepage-elementor #biura .ksemjot-home-biura__addr,
  body.ksemjot-onepage-elementor #biura .ksemjot-home-biura__title .elementor-heading-title,
  body.ksemjot-onepage-elementor #biura .ksemjot-brush .elementor-heading-title {
    text-align: center !important;
  }

  body.ksemjot-onepage-elementor #biura .ksemjot-brush.elementor-widget-heading {
    text-align: center !important;
  }

  body.ksemjot-onepage-elementor #biura .ksemjot-brush .elementor-heading-title {
    display: inline !important;
    width: auto !important;
    background-position: center bottom !important;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
  }

  body.ksemjot-onepage-elementor #biura .ksemjot-home-biura__card > .elementor-widget-wrap {
    align-items: center !important;
    text-align: center !important;
  }
}
