@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=Inconsolata:wght@200..900&display=swap');

:root {
  /* ===== COLORS ===== */
  --blue: #21c2f0;
  --dark: #373b47;
  --red: #ff5036;
  --light-bg: #f6f9ff;
  --gray-bg: #e9edf4;
  --border: #efefef;
  --border-card: #e3e5eb;
  --white: #ffffff;
  --dark-60: #333333;
  --footer-bg: #1a1f2e;

  /* ===== TYPOGRAPHY ===== */
  /*font-family: "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", Arial, sans-serif;
  --font: 'DM Sans', sans-serif;
  --font-number: "Segoe UI", -apple-system, BlinkMacSystemFont, Arial, "Helvetica Neue", sans-serif;
  */
  --font: "Segoe UI", -apple-system, BlinkMacSystemFont, Arial, "Helvetica Neue", sans-serif;
  --font-number: 'Inconsolata', 'Courier New', sans-serif;
  /*
  */

  /* ===== CONTAINERS ===== */
  --container: 1280px;
  --full-padding-mobile: 25px;
  --full-padding-desktop: 40px;
  --container-padding-mobile: 25px;

  /* ===== TRANSITIONS ===== */
  --transition: 0.3s ease;

  /* ===== RADIUS ===== */
  --radius: 6px;
  --radius-lg: 10px;
}

/* ===== RESET ===== */
*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  overflow-x: hidden;
}

body {
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.5;
  color: var(--dark);
  background-color: var(--white);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
  overflow-x: clip;
  padding-top: 110px;
}
@media (max-width: 992px) {
	body {
		padding-top: 70px;
	}
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  text-decoration: none;
  color: inherit;
  transition: color var(--transition);
}

ul,
ol {
  list-style: none;
}

button {
  border: none;
  background: none;
  cursor: pointer;
  font-family: inherit;
}

input,
textarea,
select {
  font-family: inherit;
}

/* ===== CONTAINERS ===== */
.full-container {
  width: 100%;
  padding-left: var(--full-padding-mobile);
  padding-right: var(--full-padding-mobile);
}

.container {
  width: 100%;
  max-width: calc(var(--container) + var(--container-padding-mobile) * 2);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--container-padding-mobile);
  padding-right: var(--container-padding-mobile);
}

.middle-container {
  width: 100%;
  padding-left: var(--container-padding-mobile);
  padding-right: var(--container-padding-mobile);
  margin-left: auto;
  margin-right: auto;
}

@media (min-width: 992px) {
  .full-container {
    padding-left: var(--full-padding-desktop);
    padding-right: var(--full-padding-desktop);
  }

  .container {
    max-width: calc(var(--container) + var(--full-padding-desktop) * 2);
    padding-left: var(--full-padding-desktop);
    padding-right: var(--full-padding-desktop);
  }

  .middle-container {
	max-width: calc(1440px + var(--full-padding-desktop) * 2);
    /*
    max-width: calc(var(--container) + var(--full-padding-desktop) * 2);
	*/
    padding-left: var(--full-padding-desktop);
    padding-right: var(--full-padding-desktop);
  }
}

/* ===== BUTTONS ===== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 45px;
  padding: 0 24px;
  border-radius: var(--radius);
  font-family: var(--font);
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  text-align: center;
  transition: background-color var(--transition), color var(--transition), border-color var(--transition), opacity var(--transition);
  white-space: nowrap;
  cursor: pointer;
}

/* ===== 404 ===== */
.error-404-block .container {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 18px;
}

.error-404-block h1,
.error-404-block p {
  margin: 0;
}

/* ===== BTN-LINK ===== */
.btn-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.56px;
  color: var(--blue);
  transition: opacity var(--transition), color var(--transition);
  margin-top: auto;
}

.btn-link:hover {
  opacity: 0.75;
}

.btn--primary {
  background-color: var(--red);
  color: var(--white);
  border: 1px solid var(--red);
}

.btn--primary:hover {
  opacity: 0.9;
  background-color: var(--dark);
  border-color: var(--dark);
}

.btn--secondary {
  background-color: var(--blue);
  color: var(--white);
  border: 1px solid var(--blue);
}

.btn--secondary:hover {
  opacity: 0.9;
}

.btn--outlined {
  background-color: transparent;
  color: var(--blue);
  border: 1px solid var(--blue);
}

.btn--outlined:hover {
  background-color: var(--blue);
  color: var(--white);
}

.btn--wysiwyg {
  margin-top: 15px;
}

.btn--white-outlined {
  background-color: transparent;
  color: var(--white);
  border: 1px solid var(--white);
}

.btn--white-outlined:hover {
  background-color: var(--white);
  color: var(--dark);
}

@media (min-width: 992px) {
  .btn {
    height: 51px;
    padding: 0 30px;
    font-size: 16px;
  }
}

/* ===== EYEBROW ===== */
.eyebrow {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.eyebrow__text {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.56px;
  text-transform: uppercase;
  color: var(--dark-60);
  line-height: 1;
}

.eyebrow__line {
  width: 45px;
  height: 2px;
  background-color: var(--blue);
  border: none;
  margin-bottom: 10px !important;
}

@media (min-width: 992px) {
  .eyebrow__text {
    font-size: 14px;
  }
}

/* ===== GLOBALNA TYPOGRAFIA SEKCJI ===== */
section h2 {
  font-size: 30px;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.5px;
  color: var(--dark);
  margin-bottom: 15px;
}

section h3 {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.3px;
  color: var(--dark);
}

section h4 {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--dark);
}

section h5 {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--dark);
}

section div,
section p {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.35;
  color: var(--dark-60);
  letter-spacing: -0.36px;
}
section p {
	margin-bottom: .5em;
}

/* ===== GLOBALNE LISTY W SEKCJACH (wysiwyg) ===== */
section ul,
section ol {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-left: 0;
  list-style: none;
}

section ul li,
section ol li {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.5;
  color: var(--dark-60);
  letter-spacing: -0.36px;
  padding-left: 26px;
  position: relative;
}

section ul li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 8px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: var(--blue);
  flex-shrink: 0;
}

section ol {
  counter-reset: ol-counter;
}

section ol li {
  counter-increment: ol-counter;
}

section ol li::before {
  content: counter(ol-counter) '.';
  position: absolute;
  left: 0;
  top: 0;
  font-size: 14px;
  font-weight: 700;
  color: var(--blue);
  line-height: 1.5;
}

/* Reset dla list UI (nie wysiwyg) */
.media-text__tags,
.cases-studies__dots,
.stats-block__list,
.hero-block__buttons,
.faq-block__list,
.download-block__list,
.site-footer__nav-list,
.operation-area-block__countries,
.articles-carousel__grid,
.featured-cards__grid {
  gap: revert;
  padding-left: revert;
}

.media-text__tags li,
.cases-studies__dots li,
.stats-block__list li,
.hero-block__buttons li,
.faq-block__list li,
.download-block__list li,
.site-footer__nav-list li,
.operation-area-block__countries li,
.articles-carousel__grid li,
.featured-cards__grid li {
  padding-left: 0;
  font-size: revert;
  font-weight: revert;
  color: revert;
  letter-spacing: revert;
}

.media-text__tags li::before,
.cases-studies__dots li::before,
.stats-block__list li::before,
.hero-block__buttons li::before,
.faq-block__list li::before,
.download-block__list li::before,
.site-footer__nav-list li::before,
.operation-area-block__countries li::before,
.articles-carousel__grid li::before,
.featured-cards__grid li::before {
  display: none;
}

/* mark (wyróżnienie tekstu) */
section mark {
  background-color: rgba(54, 84, 254, 0.1);
  color: var(--blue);
  border-radius: 3px;
  padding: 1px 4px;
  font-weight: 600;
}

@media (min-width: 992px) {
  section h2 {
    font-size: 48px;
    letter-spacing: -1px;
    line-height: 1;
  }

  section h3 {
    font-size: 28px;
  }
  body.page-id-87336 section.columns-block h3 {
	  font-size: 20px;
	  text-align: left;
  }

  section h4 {
    font-size: 20px;
	margin-bottom: .5em;
  }

  section p {
    font-size: 17px;
  }

  section ul li,
  section ol li {
    font-size: inherit; /* 18px;*/
  }
}

/* ======================================================
   HEADER / NAVBAR
   ====================================================== */
.site-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background-color: var(--white);
    border-bottom: 1px solid var(--border);
    z-index: 999;
}

.site-header .full-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 70px;
}

.site-header__logo {
  flex-shrink: 0;
}

.site-header__logo img {
  width: 140px;
  height: auto;
}

/* Mobile hamburger – 2 lines, blue, 3px thick, 35px wide, 7px gap */
.site-header__hamburger {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 7px;
  width: 35px;
  height: 30px;
  cursor: pointer;
  position: relative;
  z-index: 110;
}

.site-header__hamburger span {
  display: block;
  width: 35px;
  height: 3px;
  background-color: var(--blue);
  transition: transform var(--transition);
  border-radius: 2px;
}

.site-header__hamburger.is-open span:nth-child(1) {
  transform: translateY(5px) rotate(45deg);
}

.site-header__hamburger.is-open span:nth-child(2) {
  transform: translateY(-5px) rotate(-45deg);
}

/* Header actions (language + CTA) */
.site-header__actions {
  display: flex;
  align-items: center;
  gap: 15px;
  position: relative;
  z-index: 120;
}

.site-header__search-toggle {
  width: 44px;
  height: 44px;
  border-radius: var(--radius);
  color: var(--dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background-color var(--transition), color var(--transition);
}

.site-header__search-toggle:hover {
    color: var(--blue);
}

.site-header__search-toggle .material-icons {
  font-size: 24px;
  line-height: 1;
}

/* Language switch */
.language-switch {
    display: none;
    align-items: center;
    gap: 6px;
    background-color: var(--border);
    border-radius: var(--radius);
    padding: 4px 8px 4px 4px;
    height: 30px;
    cursor: pointer;
}

.language-switch__flag {
  width: 29px;
  height: 22px;
  border-radius: 4px;
  overflow: hidden;
}

.language-switch__flag img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.language-switch__arrow {
  width: 10px;
  height: 6px;
  transition: transform var(--transition);
}

.language-switch__arrow polyline {
  fill: none;
  stroke: var(--dark);
  stroke-width: 1.5;
}

.language-switch.is-open .language-switch__arrow {
  transform: rotate(180deg);
}

/* Language dropdown */
.language-switch {
  position: relative;
}

.language-switch__dropdown {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  list-style: none;
  background: var(--white);
  border: 1px solid var(--border-card);
  border-radius: var(--radius);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
  padding: 6px 0;
  min-width: 120px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-4px);
  transition: opacity var(--transition), visibility var(--transition), transform var(--transition);
  z-index: 200;
}

.language-switch.is-open .language-switch__dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.language-switch__option {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  cursor: pointer;
  font-size: 14px;
  font-weight: 500;
  color: var(--dark);
  transition: background-color var(--transition);
}

.language-switch__option:hover {
  background-color: var(--light-bg);
}

.language-switch__option.is-active {
  font-weight: 600;
}

.language-switch__option img {
  width: 22px;
  height: 16px;
  border-radius: 2px;
  object-fit: cover;
}

li.language-switch__option a {
    width: 100%;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

/* Header CTA - hidden on mobile */
.site-header__cta {
  display: none;
}

.site-header__bok {
  text-decoration: none;
}

.site-header__bok span {
  display: block;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.56px;
  text-transform: uppercase;
  color: var(--dark-60);
}

.site-header__bok strong {
  display: block;
  margin-top: 5px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.36px;
  color: var(--dark);
  white-space: nowrap;
}

.site-header__bok--desktop {
  display: none;
}

.site-header__bok--mobile {
  display: block;
  padding-top: 24px;
}

.site-search-modal {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 84px var(--full-padding-mobile) 24px;
}

.site-search-modal[hidden] {
  display: none;
}

.site-search-modal__overlay {
  position: absolute;
  inset: 0;
  background-color: rgba(26, 31, 46, 0.72);
}

.site-search-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(760px, 100%);
  border-radius: var(--radius-lg);
  background-color: var(--white);
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.2);
  padding: 24px;
}

.site-search-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 22px;
}

.site-search-modal__header h2 {
  margin: 0;
  font-size: 24px;
  line-height: 1.2;
  color: var(--dark);
}

.site-search-modal__close {
  width: 40px;
  height: 40px;
  border-radius: var(--radius);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--dark);
  background-color: var(--light-bg);
}

.site-search-modal__close:hover {
  color: var(--white);
  background-color: var(--blue);
}

.site-search-modal__form,
.search-page-form {
  position: relative;
}

.site-search-modal__label,
.search-page-form__label {
  display: block;
  margin-bottom: 10px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.56px;
  text-transform: uppercase;
  color: var(--dark-60);
}

.site-search-modal__field,
.search-page-form__field {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--border-card);
  border-radius: var(--radius);
  background-color: var(--white);
  padding: 8px;
}

.site-search-modal__field .material-icons,
.search-page-form__field .material-icons {
  margin-left: 10px;
  color: var(--blue);
}

.site-search-modal__field input,
.search-page-form__field input {
  min-width: 0;
  height: 44px;
  border: 0;
  outline: none;
  font: inherit;
  color: var(--dark);
}

.site-search-modal__field .btn,
.search-page-form__field .btn {
  grid-column: 1 / -1;
  width: 100%;
}

.site-search-modal__suggestions,
.search-page-form__suggestions,
.single-sidebar-search__suggestions {
  margin-top: 10px;
  border: 1px solid var(--border-card);
  border-radius: var(--radius);
  background-color: var(--white);
  box-shadow: 0 14px 34px rgba(26, 31, 46, 0.1);
  overflow: hidden;
}

.single-sidebar-search__suggestion {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 13px 16px;
  border-bottom: 1px solid var(--border);
  color: var(--dark);
  transition: background-color var(--transition), color var(--transition);
}

.single-sidebar-search__suggestion:last-child {
  border-bottom: 0;
}

.single-sidebar-search__suggestion:hover {
  background-color: var(--light-bg);
  color: var(--blue);
}

.single-sidebar-search__suggestion-title {
  font-size: 15px;
  font-weight: 700;
  line-height: 1.3;
}

.single-sidebar-search__suggestion-date,
.single-sidebar-search__empty {
  font-size: 13px;
  color: var(--dark-60);
}

.single-sidebar-search__empty {
  margin: 0;
  padding: 14px 16px;
}

/* Nav - mobile overlay */
.main-nav {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100dvh;
  background-color: var(--white);
  z-index: 105;
  padding: 90px var(--full-padding-mobile) 30px;
  transform: translateX(100%);
  transition: transform var(--transition);
  overflow-y: auto;
}

.main-nav.is-open {
  transform: translateX(0);
}

.main-nav .menu {
  display: flex;
  flex-direction: column;
}

.main-nav .menu-item {
  border-bottom: 1px solid var(--border);
}

.main-nav .menu-item > a {
  display: flex;
  align-items: center;
  padding: 16px 0;
  font-size: 18px;
  font-weight: 700;
  color: var(--dark);
  letter-spacing: -0.36px;
}

.main-nav .menu-item-has-children {
  position: relative;
}

.main-nav .menu-item-has-children > .submenu-toggle {
  position: absolute;
  right: 0;
  top: 10px;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 2;
}

.main-nav .menu-item-has-children > .submenu-toggle svg {
  width: 10px;
  height: 6px;
  transition: transform var(--transition);
  fill: none;
  stroke: var(--dark);
  stroke-width: 2;
}

.main-nav .menu-item-has-children.is-open > .submenu-toggle svg {
  transform: rotate(180deg);
}

.main-nav .sub-menu {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease;
}

.main-nav .menu-item-has-children.is-open > .sub-menu {
  max-height: 500px;
}

.main-nav .sub-menu .menu-item > a {
  padding: 12px 0 12px 20px;
  font-size: 16px;
  font-weight: 500;
}

.main-nav .sub-menu .sub-menu .menu-item > a {
  padding-left: 40px;
  font-size: 15px;
  font-weight: 400;
}

@media (min-width: 1280px) {
  .site-header .full-container {
    height: 110px;
  }

  .site-header__logo img {
    width: 190px;
  }

  .site-header__hamburger {
    display: none;
  }

  .site-header__cta {
    display: inline-flex;
  }

  .site-search-modal {
    align-items: flex-start;
    padding-top: 120px;
  }

  .site-search-modal__dialog {
    padding: 32px;
  }

  .site-search-modal__field,
  .search-page-form__field {
    grid-template-columns: auto 1fr auto;
  }

  .site-search-modal__field .btn,
  .search-page-form__field .btn {
    grid-column: auto;
    width: auto;
  }

  .site-header__bok--desktop {
    display: block;
  }

  .site-header__bok--mobile {
    display: none;
  }

  /* Desktop nav */
  .main-nav {
    position: static;
    width: auto;
    height: auto;
    background: none;
    padding: 0;
    transform: none;
    overflow: visible;
	flex: 0 0 calc(100% - 680px);
  }

  .main-nav .menu {
    flex-direction: row;
    gap: 32px;
    align-items: center;
    flex-wrap: nowrap;
    overflow: visible;
  }

  .main-nav .menu-item {
      border-bottom: none;
      position: relative;
      display: inline-flex;
      align-items: center;
      gap: 5px;
  }

  .main-nav .menu-item > a {
    padding: 10px 0;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: -0.36px;
    white-space: nowrap;
  }

  .main-nav .menu-item:hover > a{
    color: var(--blue);
  }

  .main-nav .menu-item-has-children > .submenu-toggle {
    position: static;
    width: auto;
    height: auto;
    margin-left: 4px;
    display: inline-flex;
  }

  .main-nav .menu-item-has-children > a {
    display: inline-flex;
  }

  /* Desktop submenu */
  .main-nav .sub-menu {
    position: absolute;
    top: 90%;
    left: -15px;
    min-width: 220px;
    max-height: 80vh;
    overflow-y: auto;
    background-color: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.08);
    padding: 10px 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px);
    transition: opacity 0.25s ease, visibility 0.25s ease, transform 0.25s ease;
    pointer-events: none;
  }

  .main-nav .menu-item-has-children:hover > .sub-menu,
  .main-nav .menu-item-has-children:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
  }

  .sub-menu .menu-item, .sub-menu .menu-item a{
    width: 100%;
  }

  .main-nav .sub-menu .menu-item > a {
    padding: 8px 20px;
    font-size: 16px;
    font-weight: 500;
  }

  .main-nav .sub-menu .menu-item > a:hover {
    background-color: var(--light-bg);
    color: var(--blue);
  }

  /* Sub-submenu */
  .main-nav .sub-menu .sub-menu {
    top: 0;
    left: 100%;
  }

  .main-nav .sub-menu .menu-item-has-children:hover > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
  }

  .main-nav .sub-menu .sub-menu .menu-item > a {
    padding-left: 20px;
    font-size: 15px;
  }
}

/* Mega-menu: naglowek wyroznionej kolumny, naglowek kolumny grupujacej, karta tytul+opis */
.mega-menu__featured-label {
  display: block;
  margin-bottom: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: var(--dark-60);
}

.mega-menu__column-title {
  display: block;
  padding: 12px 0 4px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.3px;
  text-transform: uppercase;
  color: var(--dark-60);
}

.mega-menu__card {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 7px 10px;
  transition: all .25s ease;
}
.mega-menu__card:hover {
	background-color: var(--light-bg);
}

.mega-menu__card-title {
  font-weight: 500;
  color: var(--dark);
  transition: all .25s ease;
}
.mega-menu__card:hover .mega-menu__card-title {
	color: var(--blue);
}

.mega-menu__card-desc {
  font-size: 13px;
  font-weight: 400;
  color: var(--dark-60);
  line-height: 1.35;
}

.main-nav .mega-menu__featured {
  padding-bottom: 6px;
  margin-bottom: 6px;
  border-bottom: 1px solid var(--border);
}
.main-nav .mega-menu__featured ul li {
	padding: 10px 0;
}
.main-nav .mega-menu__featured ul li:not(:last-of-type) {
	border-bottom: 1px rgba(0,0,0,.1) solid;
}
.main-nav .mega-menu__featured ul li a {
	color: var(--dark);
	transition: all .25s ease;
}
.main-nav .mega-menu__featured ul li a:hover {
	color: var(--blue);
}

@media (min-width: 1280px) {
  /* Panel mega-menu: szerokosc dopasowana do tresci, ograniczona max-width */
  .main-nav .mega-menu {
    padding: 0;
    width: max-content;
    max-width: min(92vw, 860px);
  }

  .main-nav .mega-menu__inner {
    display: flex;
    align-items: stretch;
  }

  /* Lewa wyroznionia kolumna - widoczna tylko gdy istnieja elementy "mega-featured" */
  .main-nav .mega-menu__featured {
    flex: 0 0 200px;
    margin: 0;
    padding: 20px 16px;
    border-bottom: 0;
    border-right: 1px solid var(--border);
    background-color: var(--light-bg);
    border-radius: var(--radius) 0 0 var(--radius);
  }

  .main-nav .mega-menu__featured-list .menu-item > a {
    padding: 8px 10px;
    border-radius: var(--radius);
    font-weight: 600;
  }

  .main-nav .mega-menu__featured-list .menu-item > a:hover {
    background-color: var(--white);
    color: var(--blue);
  }

  /* Prawa czesc - automatyczny uklad kolumnowy, liczba kolumn zalezna od szerokosci */
  .main-nav .mega-menu__grid {
    flex: 1 1 auto;
    display: grid;
    /*
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	*/
	align-content: start;
    gap: 2px 8px;
    padding: 16px;
	min-width: 360px;
	max-width: 520px;
  }

  .main-nav .mega-menu__grid--full {
	  /*
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	*/
  }

  .main-nav .mega-menu__grid > .menu-item > a,
  .main-nav .mega-menu__grid > .mega-menu__column {
    padding: 8px 10px;
    border-radius: var(--radius);
  }

  .main-nav .mega-menu__grid > .menu-item > a:hover {
    background-color: var(--light-bg);
  }

  .main-nav .mega-menu__grid > .menu-item > a:hover .mega-menu__card-title {
    color: var(--blue);
  }

  .main-nav .mega-menu__column-title {
    padding-top: 0;
  }

  .main-nav .mega-menu__column-list .menu-item > a {
    padding: 5px 0;
    font-size: 14px;
  }
}

/* ======================================================
   PAGE TITLE BLOCK
   ====================================================== */
.page-title-block {
  position: relative;
  padding: 40px 0;
  background-color: var(--light-bg);
  overflow: hidden;
}

.page-title-block__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.page-title-block__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.page-title-block__bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(0deg, rgba(55, 59, 71, 0.72) 0%, rgba(55, 59, 71, 0.72) 100%);
}

.page-title-block .container {
  position: relative;
  z-index: 1;
}

.page-title-block h1 {
  font-size: 32px;
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.5px;
  color: var(--dark);
  margin-top: 12px;
}

/* Z obrazkiem — białe napisy */
.page-title-block.has-bg h1 {
  color: var(--white);
}

.page-title-block.has-bg .eyebrow__text {
  color: rgba(255, 255, 255, 0.6);
}

.page-title-block.has-bg .eyebrow__line {
  border-color: rgba(255, 255, 255, 0.3);
}

/* Breadcrumbs */
.breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-top: 14px;
  font-size: 13px;
  font-weight: 500;
  color: var(--dark-60);
}

.breadcrumbs a {
  color: var(--dark-60);
  transition: color var(--transition);
}

.breadcrumbs a:hover {
  color: var(--blue);
}

.breadcrumbs span[aria-hidden] {
  color: var(--dark-60);
  opacity: 0.5;
}

.breadcrumbs > span:last-child {
  color: var(--dark);
  font-weight: 600;
}

/* Z obrazkiem — białe breadcrumbs */
.page-title-block.has-bg .breadcrumbs,
.page-title-block.has-bg .breadcrumbs a,
.page-title-block.has-bg .breadcrumbs span {
  color: rgba(255, 255, 255, 0.7);
}

.page-title-block.has-bg .breadcrumbs a:hover {
  color: var(--white);
}

.page-title-block.has-bg .breadcrumbs > span:last-child {
  color: var(--white);
  font-weight: 600;
}

@media (min-width: 992px) {
  .page-title-block {
    padding: 60px 0;
  }

  .page-title-block h1 {
    font-size: 58px;
    line-height: 1;
    letter-spacing: -1px;
    margin-top: 16px;
  }

  .breadcrumbs {
    font-size: 13px;
    margin-top: 25px;
	opacity: .75;
  }
}

/* ======================================================
   HERO SECTION
   ====================================================== */
.hero-block {
    position: relative;
    background-color: var(--light-bg);
    overflow: hidden;
    padding: 40px 0 40px;
    display: flex;
    align-items: center;
}

.hero-block__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.hero-block__bg canvas {
    width: 100%;
    height: 100%;
    opacity: 0.5;
}

.hero-block .middle-container {
  position: relative;
  z-index: 2;
}
.hero-block h1 + h2 {
    font-size: 26px;
    line-height: 1.25;
    font-weight: 300;
	margin-top: -15px;
}

.hero-block__content {
  /*
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-bottom: 30px;
  */
  display: block;
}
@media (max-width: 992px) {
	.hero-block__content { 
		margin-bottom: 25px;
	}
	.hero-block__content p { 
		font-size: 14px;
	}
	.hero-block h1 + h2 {
		font-size: 18px;
	}
}

.hero-block__content h1 {
  font-size: 32px;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.5px;
  color: var(--dark);
  margin: 10px auto 20px;
}

.hero-block__content h1 span {
  color: var(--blue);
}

h1 em, h1 i,
h2 em, h2 i {
  font-style: normal;
  color: var(--blue);
}

.hero-block__content p strong {
  font-weight: 700;
  color: var(--dark-60);
}

.hero-block__buttons {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 15px;
}

.hero-block__media-wrap {
  flex: 1;
}

.hero-block__media {
  position: relative;
  display: block;
  border-radius: 6px;
  overflow: hidden;
  aspect-ratio: 690 / 420;
}

.hero-block__media--video {
  box-shadow: 0 12px 12px -6px rgba(0, 0, 0, 0.06);
}

.hero-block__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  pointer-events: none;
}
.image-contain .hero-block__media img {
	object-fit: contain;
}

.hero-block__media--video iframe,
.hero-block__media--video video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

.hero-block__media--video {
  position: relative;
}

.hero-block__play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 56px;
  height: 56px;
  z-index: 3;
  cursor: pointer;
  transition: transform var(--transition);
}

.hero-block__play:hover {
  transform: translate(-50%, -50%) scale(1.1);
}

.hero-block__play img {
  width: 100%;
  height: 100%;
}

.hero-block__globe {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 80vw;
  height: auto;
  z-index: 1;
  opacity: .1;
  pointer-events: none;
}

@media (min-width: 992px) {
  .hero-block {
    padding: 30px 0;
    min-height: 700px;
  }

  .hero-block .middle-container {
    display: flex;
    align-items: center;
    gap: 60px;
  }

  .hero-block__content {
	  max-width: 45%;
    /*
	flex: 0 0 50%;
    max-width: 591px;
    gap: 30px;
    margin-bottom: 0;
	*/
  }

  .hero-block__content h1 {
    font-size: 52px;
    line-height: 1.1;
    letter-spacing: -1px;
  }


  .hero-block__buttons {
    gap: 15px;
  }

  .hero-block__media-wrap {
    flex: 1;
  }

  .hero-block__media {
    flex: unset;
  }

  .hero-block__play {
    width: 72px;
    height: 72px;
  }

  .hero-block__globe {
    width: 50vw;
    height: auto;
  }

  .hero-block__globe img {
    width: 100%;
  }

  /* Wersja mniejsza: 70vh -> 50vh */
  .hero-block--small {
    min-height: 50vh;
  }
}

/* Staly obraz: bez cienia, contain zamiast cover */
.hero-block--static-media .hero-block__media img {
  object-fit: contain;
}

/* ======================================================
   STATS SECTION
   ====================================================== */
.stats-block {
  background-color: #e9edf4;
  padding: 0;
}

.stats-block__list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    padding: 25px;
}

.stats-block__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 25px 15px;
  border-bottom: 1px solid var(--white);
  border-right: 1px solid var(--white);
}

.stats-block__item:nth-child(2n) {
  border-right: none;
}
/*
@media (max-width: 992px) {
	.stats-block__list:not(.two):not(.four):not(.six) .stats-block__item:last-child {
	  grid-column: 1 / -1;
	  border-right: none;
	  border-bottom: none;
	  border-top: 1px solid var(--white);
	}
}
*/

.stats-block__item:nth-child(3),
.stats-block__item:nth-child(4) {
  border-bottom: none;
}
/* HARD FIX */
.stats-block__item {
	border: 0 !important;
}

.stats-block__number {
  font-family: var(--font-number);
  font-size: 38px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: -1px;
  color: var(--dark);
  white-space: nowrap;
  margin-bottom: 6px;
  text-align: center;
}

.stats-block__label {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.3;
  color: var(--dark);
}

@media (min-width: 992px) {
  .stats-block__list {
      display: flex;
      flex-wrap: nowrap;
      justify-content: center;
      height: 200px;
      align-items: center;
      padding: 0;
  }

  .stats-block__item {
    /*
	flex: 1 1 auto;
	*/
    gap: 15px;
    text-align: left;
    padding: 0 30px;
    border-bottom: none;
    border-right: none;
    border-top: none;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .stats-block__item:nth-child(2n) {
    border-right: none;
  }

  .stats-block__item:last-child {
      grid-column: unset;
      border-top: none;
  }

  .stats-block__number {
    font-size: 45px;
    letter-spacing: -2px;
    margin-bottom: 0;
    text-align: left;
  }

  .stats-block__label {
    font-size: 14px;
	max-width: 100px;
  }
}

/* ======================================================
   COUNTRIES SECTION – Swiper Marquee
   ====================================================== */
.countries-block {
  background-color: var(--white);
  height: 160px;
  display: flex;
  align-items: center;
  overflow: hidden;
  border-bottom: 1px solid #e3e5eb;
  width: 100%;
}

.countries-block__inner {
  width: 100%;
  overflow: hidden;
}

.countries-block__track,
.countries-block__track.marquee6k__copy {
  display: inline-flex !important;
  flex-direction: row;
  align-items: center;
  gap: 100px;
  padding-right: 100px;
  vertical-align: middle;
}

.countries-block__item {
  display: flex;
  align-items: center;
  gap: 12px;
  white-space: nowrap;
  flex-shrink: 0;
  transition: all .25s ease;
}

.countries-block__flag {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
}

.countries-block__flag img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.countries-block__name {
  font-size: 16px;
  font-weight: 500;
  color: var(--dark);
}

a.countries-block__item {
  text-decoration: none;
}
.countries-block__item:hover {
	transform: scale(.96);
}

a.countries-block__item:hover .countries-block__name {
  color: var(--blue);
}

@media (min-width: 992px) {
  .countries-block__track {
    gap: 100px;
    padding-right: 100px;
  }

  .countries-block__item {
    gap: 14px;
  }

  .countries-block__flag {
    width: 40px;
    height: 40px;
  }

  .countries-block__name {
    font-size: 17px;
  }
}

/* ======================================================
   FEATURED CARDS SECTION
   ====================================================== */
.featured-cards {
  padding: 50px 0;
  position: relative;
}

.featured-cards:after {
    content: "";
    background: linear-gradient(180deg, #FFF 0%, #F6F9FF 100%);
    width: 100%;
    height: 100px;
    position: absolute;
    bottom: 0;
    z-index: -999;
}

.featured-cards__header {
  display: flex;
  flex-direction: column;
  gap: 15px;
  margin-bottom: 30px;
}

.featured-cards__grid {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  width: 100vw;
  max-width: 100vw;
  margin-left: 50%;
  margin-right: 0;
  transform: translateX(-50%);
  padding-left: var(--container-padding-mobile);
  padding-right: var(--container-padding-mobile);
  scroll-padding-left: var(--container-padding-mobile);
  scroll-padding-right: var(--container-padding-mobile);
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-bottom: 35px;
  overscroll-behavior-x: contain;
}

.featured-cards__grid::-webkit-scrollbar {
  display: none;
}

.featured-cards__scrollbar {
  width: calc(100vw - (var(--container-padding-mobile) * 2));
  height: 3px;
  margin-top: 8px;
  background-color: rgba(54, 84, 254, 0.14);
  border-radius: 999px;
  overflow: hidden;
}

.featured-cards__scrollbar span {
  display: block;
  width: var(--featured-scrollbar-thumb-width, 36%);
  height: 100%;
  background-color: var(--blue);
  border-radius: inherit;
  transform: translateX(var(--featured-scrollbar-thumb-x, 0));
  transition: transform 0.12s ease;
}

.featured-cards__buttons {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  margin-top: 32px;
}

@media (min-width: 440px) {
  .featured-cards__buttons {
    flex-direction: row;
    justify-content: center;
  }
}

.featured-cards__card {
    flex: 0 0 calc(80% - 8px);
    scroll-snap-align: start;
    background-color: var(--blue);
    border-radius: var(--radius-lg);
    padding: 25px 20px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    min-height: 200px;
    margin-top: 5px;
}
.featured-cards__card.white {
    background-color: #fff;
    text-align: center;
    min-height: initial;
	padding: 15px;
	gap: 10px;
	border: 1px var(--border-card) solid;
}

.featured-cards__card-header {
  display: flex;
  align-items: center;
  gap: 12px;
}
.featured-cards__card.white .featured-cards__card-header {
	margin: 0 auto;
}

.featured-cards__card-icon {
  width: 44px;
  height: 44px;
  background-color: var(--white);
  border: 1px solid var(--border-card);
  border-radius: var(--radius);
  box-shadow: 0 12px 12px -6px rgba(0, 0, 0, 0.06);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.featured-cards__card-icon img {
    width: 30px;
    height: 30px;
    filter: brightness(0) saturate(100%) invert(48%) sepia(67%) saturate(528%) hue-rotate(145deg) brightness(98%) contrast(105%);
}

.featured-cards--icons-medium .featured-cards__card-icon {
  width: 90px;
  height: 90px;
}

.featured-cards--icons-medium .featured-cards__card-icon img {
  width: 60px;
  height: 60px;
}

.featured-cards--icons-large .featured-cards__card-icon {
  width: 120px;
  height: 120px;
}

.featured-cards--icons-large .featured-cards__card-icon img {
  width: auto;
  height: 90px;
}

.featured-cards--icons-plain .featured-cards__card-icon {
  background: none;
  border: none;
  box-shadow: none;
  border-radius: 0;
  width: auto;
  height: 44px;
}

.featured-cards--icons-plain .featured-cards__card-icon img {
  width: auto;
  height: 30px;
  filter: none;
  object-fit: contain;
}

.featured-cards--icons-plain.featured-cards--icons-medium .featured-cards__card-icon {
  height: 90px;
}

.featured-cards--icons-plain.featured-cards--icons-medium .featured-cards__card-icon img {
  height: 60px;
}

.featured-cards--icons-plain.featured-cards--icons-large .featured-cards__card-icon {
  height: 120px;
}

.featured-cards--icons-plain.featured-cards--icons-large .featured-cards__card-icon img {
  height: 90px;
}

.featured-cards__card h3 {
  font-size: 18px;
  font-weight: 800;
  color: var(--white);
  letter-spacing: -0.44px;
  line-height: 1.2;
}

.featured-cards__card p {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.4;
  color: var(--white);
  opacity: 0.7;
  letter-spacing: -0.36px;
}

.featured-cards__card--alt {
  background-color: var(--blue); /* #1990ff; */
}

.featured-cards__card.is-animated {
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.featured-cards__card.is-animated:hover {
  transform: translateY(-5px);
  box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.18);
}

.featured-cards .btn-link {
  color: var(--white);
}

.featured-cards .btn-link:hover {
  opacity: 0.75;
}


@media (min-width: 992px) {
  .featured-cards {
    padding: 80px 0;
  }

  .featured-cards__header {
    margin-bottom: 40px;
  }

  .featured-cards__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    overflow: visible;
    width: auto;
    max-width: none;
    margin-left: 0;
    transform: none;
    padding-left: 0;
    padding-bottom: 0;
  }
  .featured-cards__grid.grid-4 {
    grid-template-columns: repeat(4, 1fr);
  }

  .featured-cards__scrollbar {
    display: none;
  }

  .featured-cards__card {
      flex: none;
      padding: 30px 20px;
      gap: 29px;
      min-height: 249px;
      margin-top: 0;
  }

  .featured-cards__card-icon {
    width: 50px;
    height: 50px;
  }

  .featured-cards__card-icon img {
    width: 36px;
    height: 36px;
  }

  .featured-cards__card h3 {
    font-size: 22px;
  }

  .featured-cards__card p {
    font-size: 18px;
  }

  .featured-cards__card-link {
    font-size: 16px;
  }

  .featured-cards__grid {
    margin-right: 0;
    padding-right: 0;
  }

}

/* ======================================================
   CASES STUDIES / MEDIA-TEXT
   ====================================================== */
.media-text {
  padding: 50px 0;
}
.media-text h2 + h3,
.text-block h2 + h3 {
    font-size: 22px;
    font-weight: 300;
    margin: -5px 0 15px;
    color: var(--blue);
}

.media-text__header {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 25px;
}

.media-text__header-top {
  display: flex;
  flex-direction: column;
  gap: 15px;
  /* eyebrow + h2 + p spacing handled by gap */
}

.media-text__header-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 10px;
    justify-content: space-between;
}

.media-text__body {
  display: flex;
  flex-direction: column-reverse;
  gap: 25px;
}

.media-text__body.is-right {
  flex-direction: column-reverse;
}

.cases-studies .media-text__body,
.has-countries-map .media-text__body {
  flex-direction: column;
}

.media-text__image {
  position: relative;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 12px 12px -6px rgba(0, 0, 0, 0.06);
  aspect-ratio: 641 / 420;
}

.media-text__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 10px;
}

.media-text__text {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.media-text__text h3 {
  font-size: 24px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.5px;
  color: var(--dark);
}

.media-text__text h3 span {
  color: var(--blue);
}

.media-text__tags {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
}

.media-text__tag {
  background-color: var(--gray-bg);
  border-radius: var(--radius);
  padding: 0 15px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  font-size: 14px;
  font-weight: 500;
  color: var(--dark-60);
  letter-spacing: -0.3px;
}

.cases-studies .media-text__tags {
  position: absolute;
  left: 10px;
  bottom: 10px;
  z-index: 2;
  gap: 6px;
  max-width: calc(100% - 20px);
}

.cases-studies .media-text__tag {
    position: relative;
    background: rgb(55 59 71 / 30%);
    color: var(--border);
    border-radius: 8px;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    /* LIQUID GLASS START — usuń ten blok wraz z ::before/::after by cofnąć */
    isolation: isolate;
    overflow: hidden;
    box-shadow: inset 0px 0px 1px 0 rgba(255, 255, 255, 0.35), inset -1px -1px 1px 1px rgb(255 255 255 / 0%);
}
.cases-studies .media-text__tag::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    filter: url(../img/glass-distortion.svg#glass-distortion);
    pointer-events: none;
}
.cases-studies .media-text__tag::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: rgba(255, 255, 255, 0.06);
    pointer-events: none;
    /* LIQUID GLASS END */
}

/* Nav arrows */
.slider-nav {
  display: flex;
  gap: 5px;
}

.slider-nav__btn {
  width: 44px;
  height: 44px;
  border-radius: var(--radius);
  background-color: var(--gray-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color var(--transition);
}

.swiper-button-disabled {
    opacity: 0.6;
}

.swiper-button-disabled:hover img {
    filter: unset!important;
}

.swiper-button-disabled:hover {
    background: var(--gray-bg)!important;
}

.slider-nav__btn--prev {
  background-color: rgba(233, 237, 244, 0.5);
}

.slider-nav__btn:hover {
  background-color: var(--blue);
}

.slider-nav__btn:hover img {
  filter: brightness(0) invert(1);
}

.slider-nav__btn img {
  width: 24px;
  height: 24px;
}

.slider-nav__btn--prev img {
  transform: rotate(180deg);
}

/* Dots */
.cases-studies__dots {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-top: 60px;
}

.cases-studies__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: var(--gray-bg);
  cursor: pointer;
  transition: background-color var(--transition);
}

.cases-studies__dot.is-active {
  background-color: var(--blue);
}

@media (min-width: 992px) {
  .media-text {
    padding: 80px 0;
  }

  .media-text__header {
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 35px;
  }

  .media-text__header-actions {
    margin-top: 0;
    flex-shrink: 0;
  }

  .media-text__header-top p {
    max-width: 564px;
  }

  .media-text__body {
    flex-direction: row;
    gap: 60px;
    align-items: center;
  }

  .media-text__body.is-right {
    flex-direction: row-reverse !important;
  }

  .cases-studies .media-text__body,
  .has-countries-map .media-text__body {
    flex-direction: row;
  }

  .media-text__image {
    flex: 0 0 50%;
    max-width: 641px;
  }

  .media-text--fit-image .media-text__body {
    align-items: stretch;
  }

  .media-text--fit-image .media-text__image {
    aspect-ratio: auto;
    align-self: stretch;
  }

  .media-text--fit-image .media-text__content {
    padding: 60px 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  .media-text__text {
    flex: 1;
    gap: 20px;
  }

  .cases-btn {
    width: auto;
    align-self: flex-start;
  }

  .media-text__text h3 {
    font-size: 30px;
    line-height: 1.2;
  }

  .media-text__text p, .services-block__left p {
      width: 80%;
  }

  .slider-nav__btn {
    width: 50px;
    height: 50px;
  }
}

/* --- Media-text: content overrides --- */
.media-text .media-text__content {
  display: flex;
  flex-direction: column;
  /* gap: 15px;
   */
}

.media-text .media-text__content h2 {
	margin-top: 8px;
	margin-bottom: 15px;
}
.media-text .media-text__content ul {
	gap: 0;
}
.media-text .media-text__content p {
  /*
  font-size: 16px;
  font-weight: 500;
  letter-spacing: -0.36px;
  color: rgba(55, 59, 71, 0.6);
  */
}

.media-text--fit-image .media-text__image {
  box-shadow: none;
  aspect-ratio: 3 / 2;
  align-self: auto;
  display: flex;
}

.media-text .media-text__image img,
.media-text .media-text__image .media-text__video-link {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.media-text.image-contain .media-text__image img {
	object-fit: contain;
}

/* Cases studies wrapper */
.cases-studies {
  background-color: var(--light-bg);
}

.cases-studies .media-text__image {
  box-shadow: none;
  aspect-ratio: auto;
}

/* ======================================================
   MEDIA-TEXT + MAPA KRAJOW (has-countries-map)
   ====================================================== */
.media-text.has-countries-map > .container {
  position: relative;
}

.operation-area-block__countries {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.operation-area-block__country {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 15px;
    border-radius: var(--radius);
    cursor: pointer;
    transition: background-color var(--transition);
    position: relative;
    border: 1px solid var(--border);
}

.operation-area-block__country:hover {
  background-color: var(--light-bg);
}

.operation-area-block__country-flag {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
}

.operation-area-block__country-flag img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.operation-area-block__country-name {
  font-size: 16px;
  font-weight: 500;
  color: var(--dark);
}

.media-text__image--map {
  border-radius: var(--radius-lg);
  overflow: hidden;
  position: relative;
  box-shadow: none;
  aspect-ratio: auto;
}

.media-text__image--map img {
  width: 100%;
  height: auto;
}

/* Country tooltip */
.country-tooltip {
  position: absolute;
  background-color: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.12);
  padding: 16px 20px;
  min-width: 220px;
  z-index: 100;
  display: none;
  font-size: 14px;
  line-height: 1.5;
  pointer-events: none;
}

/* Mobile: full width of container */
@media (max-width: 991.98px) {
  .country-tooltip {
      left: 25px !important;
      right: 25px !important;
      width: calc(100% - 50px);
      min-width: 0;
      padding: 16px 20px 16px 20px;
      pointer-events: auto;
  }

  .country-tooltip__close {
    display: flex !important;
  }
}

/* Desktop: follow cursor, no close button */
@media (min-width: 992px) {
  .country-tooltip {
    pointer-events: none;
    min-width: 260px;
    max-width: 320px;
  }

  .country-tooltip__close {
    display: none !important;
  }
}

.country-tooltip.is-visible {
  display: block;
}

.country-tooltip__close {
  display: none;
  position: absolute;
  top: 0;
  right: 0;
  width: 50px;
  height: 50px;
  cursor: pointer;
  background-color: #e9edf4;
  border-radius: 0 4px 0 6px;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border: none;
}

.country-tooltip__close img {
  width: 20px;
  height: 20px;
  display: block;
}

.country-tooltip__arrow {
  position: absolute;
  bottom: -9px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 9px solid transparent;
  border-right: 9px solid transparent;
  border-top: 9px solid var(--border);
  transition: left 0.15s ease;
}

.country-tooltip__arrow::after {
  content: '';
  position: absolute;
  top: -10px;
  left: -8px;
  width: 0;
  height: 0;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-top: 8px solid var(--white);
}

.country-tooltip h4 {
  font-size: 16px;
  font-weight: 700;
  color: var(--dark);
  margin-bottom: 8px;
}

.country-tooltip p {
  font-size: 14px;
  color: var(--dark-60);
}

@media (min-width: 992px) {
  .operation-area-block__countries {
    gap: 15px;
  }

  .operation-area-block__country {
    padding: 12px 20px;
  }

  .media-text__image--map {
    flex: 1;
  }
}

/* ======================================================
   STEPS BLOCK (Knowledge Hub)
   ====================================================== */
.steps-block {
  padding: 50px 0;
}

.steps-block__header {
  display: flex;
  flex-direction: column;
  gap: 15px;
  margin-bottom: 30px;
}

.steps-block__grid {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.steps-block__row {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
}

.steps-block__row .steps-block__arrow {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  padding: 4px 0;
}

.steps-block__row .steps-block__arrow img {
  transform: rotate(90deg);
  width: 12px;
  height: 24px;
  display: block;
}

.steps-block__card {
    background-color: var(--gray-bg);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 20px;
    /*cursor: pointer;*/
    transition: border-color var(--transition);
    width: 100%;
    box-sizing: border-box;
	margin: 7px 0;
}

.steps-block__card:hover {
  border-color: var(--blue);
}

.steps-block__card-header {
  display: flex;
  align-items: center;
  gap: 12px;
}

/* Toggle arrow — pushed to right, rotates 90° when open */
.steps-block__card-toggle {
  margin-left: auto;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  transition: transform 0.3s ease;
  transform: rotate(-90deg);
}

.steps-block__card.is-open .steps-block__card-toggle {
  transform: rotate(90deg);
}

.steps-block__card-number {
    width: 44px;
    height: 44px;
    background-color: var(--blue);
    border-radius: var(--radius);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    font-weight: 600;
    color: var(--white);
    flex-shrink: 0;
}

.steps-block__card-header h3 {
  font-size: 18px;
  font-weight: 800;
  color: var(--dark);
  letter-spacing: -0.44px;
}

/* Mobile: __card-cap is transparent — card itself provides border/bg */
.steps-block__card-cap {
  background: none;
  border: none;
  border-radius: 0;
  padding: 0;
}

/* Mobile: preview text hidden — full desc shown via accordion */
.steps-block__card-preview {
  display: none;
}

.steps-block__card-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease, padding 0.3s ease;
  position: static;
}

.steps-block__card.is-open .steps-block__card-body {
  max-height: 300px;
  padding-top: 15px;
}

.steps-block__card-body p {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--dark-60);
  letter-spacing: -0.36px;
}

/* Mobile-first: all arrows centered, rotated 90deg (pointing down) */
.steps-block__arrow {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  padding: 4px 0;
  flex-shrink: 0;
  position: relative;
  z-index: 10;
}

.steps-block__arrow img {
  transform: rotate(90deg);
  width: 12px;
  height: 24px;
  display: block;
  flex-shrink: 0;
}

/* Between-rows arrow: mobile only by default */
.steps-block__arrow--between {
  display: flex;
}

.steps-block__footer {
  display: flex;
  justify-content: center;
  margin-top: 30px;
}

@media (min-width: 992px) {
  .steps-block {
    padding: 0px 0 80px;
  }

  .steps-block__grid {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }

  /* Row: cards + arrows side by side */
  .steps-block__row {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 10px;
  }

  /* Desktop: arrows inside rows become horizontal connectors */
  .steps-block__row .steps-block__arrow {
    width: 36px;
    height: 162px;
    padding: 0;
    flex-shrink: 0;
  }

  .steps-block__row .steps-block__arrow img {
    transform: none;
  }

  /* Between-rows arrow: hidden on desktop */
  .steps-block__arrow--between {
    display: none !important;
  }

  /* Toggle icon hidden on desktop — hover handles expand */
  .steps-block__card-toggle {
    display: none;
  }

  /* Bottom row: 2 cards centered */
  .steps-block__row--bottom {
    justify-content: center;
  }

  .steps-block__row--bottom .steps-block__card {
    flex: 0 0 calc((100% - 36px - 72px) / 3);
    max-width: calc((100% - 36px - 72px) / 3);
  }

  /* Cards in top row: 1/3 of available width */
  .steps-block__row:not(.steps-block__row--bottom) .steps-block__card {
    flex: 1 1 0;
  }

  .steps-block__card-number {
    width: 50px;
    height: 50px;
    font-size: 22px;
  }

  .steps-block__card-header h3 {
    font-size: 22px;
  }

  .steps-block__card-body p {
    font-size: 18px;
  }

  .steps-block__arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 162px;
    flex-shrink: 0;
    position: relative;
    z-index: 10;
  }

  .steps-block__arrow img {
    width: 12px;
    height: 24px;
    display: block;
  }

  /* Desktop: __card wrapper has NO border/bg — __card-cap is the visual element */
  .steps-block__card {
    background: none;
    border: none;
    border-radius: 0;
    padding: 0;
    /* keeps its flex-item size but card-cap can overflow */
    position: relative;
    z-index: 1;
  }

  .steps-block__card:hover {
    z-index: 20;
  }

  /* __card-cap: positioned absolute inside __card, sized to match __card */
  .steps-block__card-cap {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    background-color: var(--gray-bg);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 20px;
    z-index: 5;
    transition:
      background-color 0.25s ease,
      border-color 0.25s ease,
      box-shadow 0.25s ease;
  }

  /* Invisible clone of __card-cap content — keeps __card height in flow */
  .steps-block__card::after {
    content: '';
    display: block;
    /* Match __card-cap height: padding top+bottom (40px) + header (~50px) + preview (~2 lines ~52px) */
    height: 162px;
    visibility: hidden;
    pointer-events: none;
  }

  /* Preview text — 2 lines clamped */
  .steps-block__card-preview {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.6;
    color: var(--dark-60);
    letter-spacing: -0.3px;
    margin-top: 10px;
  }

  /* __card-body: collapsed inside __card-cap */
  .steps-block__card-body {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s ease;
    position: static;
    padding: 0;
  }

  /* Hover: white, border #E9EDF4, shadow, body drops down freely */
  .steps-block__card:hover .steps-block__card-cap {
    background-color: var(--white);
    border-color: #E9EDF4;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12);
    z-index: 20;
  }

  .steps-block__card:hover .steps-block__card-preview {
    -webkit-line-clamp: unset !important;
    line-clamp: unset !important;
    display: block;
    overflow: visible;
  }

  .steps-block__card:hover .steps-block__card-body {
    max-height: 300px;
    padding-top: 12px;
  }

  .steps-block__card-body p {
    font-size: 16px;
    line-height: 1.6;
    color: var(--dark-60);
  }
}

/* ======================================================
   SERVICES BLOCK (piramida)
   ====================================================== */
.services-block {
  padding: 50px 0;
  background-color: var(--light-bg);
}

.services-block .media-text__body {
  flex-direction: column;
}

.services-block__left {
  display: flex;
  flex-direction: column;
  gap: 15px;
  /* eyebrow + h2 + p spacing via gap */
}

.services-block .btn {
    width: fit-content;
}

.services-block__cards {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.services-block__card {
    background-color: #E9EDF4;
    border-radius: var(--radius-lg);
    padding: 20px;
    display: flex;
    align-items: flex-start;
    gap: 15px;
}

.services-block__card:nth-child(1) { width: 100%; }
.services-block__card:nth-child(2) { width: calc(100% - 25px); }
.services-block__card:nth-child(3) { width: calc(100% - 50px); }

.services-block__card-icon {
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    background: var(--blue);
    margin-left: -30px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.services-block__card-icon img {
  width: 30px;
  height: 30px;
}

.services-block__card-content {
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
}

.services-block__card-label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.56px;
  text-transform: uppercase;
  color: var(--dark-60);
}

.services-block__card-label-line {
  width: 45px;
  height: 2px;
  background-color: var(--blue);
  margin-top: 6px;
}

.services-block__card-content p {
    font-size: 20px;
    font-weight: 600;
    color: var(--dark);
    line-height: 1.4;
}


.services-block__small_cards {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 15px;
}

.services-block__small_card {
    background-color: #E9EDF4;
    border-radius: var(--radius-lg);
    padding: 20px;
    display: flex;
    flex: 0 0 50%;
    align-items: flex-start;
    gap: 0;
    max-width: calc(50% - 8px);
}
.services-block__small_card .services-block__small_card-label {
	font-size: 20px;
	font-weight: 600;
	color: var(--dark);
}
.services-block__small_card .services-block__small_card-content p {
	line-height: 1.25em;
}

@media (min-width: 992px) {
  .services-block {
    padding: 80px 0;
  }

  .services-block .media-text__body {
    flex-direction: row;
    gap: 60px;
  }

  .services-block__left {
    flex: 0 0 calc(50% - 30px);
    max-width: calc(50% - 30px);
  }

  .services-block__cards {
    flex: 0 0 calc(50% - 30px);
    max-width: calc(50% - 30px);
    gap: 20px;
    align-items: flex-start;
    display: flex;
  }

  .services-block__card {
    padding: 26px 30px;
  }

  .services-block__card:nth-child(1) { width: 100%; }
  .services-block__card:nth-child(2) { width: calc(100% - 40px); }
  .services-block__card:nth-child(3) { width: calc(100% - 80px); }
  .services-block__card-icon {
      width: 40px;
      height: 40px;
      margin-left: -50px;
  }

  .services-block__card-label {
    font-size: 14px;
  }

  .services-block__card-content p {
    font-size: 30px;
  }
}
@media (max-width: 992px) {
  .services-block__small_card .services-block__small_card-label {
	  font-size: 16px;
  }
  .services-block__small_card .services-block__small_card-content p {
	  font-size: 13px;
  }
  	.services-block__small_cards {
		gap: 10px;
	}	
	.services-block__small_card {
		padding: 15px;
		flex: 0 0 100%;
		max-width: 100%;
	}	
}

/* ======================================================
   CTA SECTION
   ====================================================== */
.cta-block {
    position: relative;
    overflow: hidden;
    aspect-ratio: 9 / 11;
    min-height: unset;
    display: flex;
    max-height: 60vh;
    width: 100%;
}
section.cta-block p {
	color: #FFF;
}

.cta-block__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
section.cta-block h2 {
	color: #FFF;
}
section.cta-block h3 {
	color: #FFF;
}
section.cta-block h2 + h3 {
	font-weight: 300;
	margin: 0 0 20px;
	opacity: .75;
}
.cta-block__bg img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  z-index: 0;
}

.cta-block__bg .cta-block__bg--mobile { display: block; }
.cta-block__bg .cta-block__bg--desktop { display: none; }

/* 5 overlays on top of the image via pseudo-element */
.cta-block__bg::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(9deg, rgba(0, 0, 0, 0.50) -20.77%, rgba(0, 0, 0, 0.00) 33.86%),
    linear-gradient(268deg, rgba(0, 0, 0, 0.50) -5.5%, rgba(0, 0, 0, 0.00) 46.8%),
    linear-gradient(84deg, rgba(0, 0, 0, 0.50) 5.76%, rgba(0, 0, 0, 0.00) 57.51%),
    linear-gradient(0deg, rgba(54, 84, 254, 0.05) 0%, rgba(54, 84, 254, 0.05) 100%),
    linear-gradient(0deg, rgba(55, 59, 71, 0.70) 0%, rgba(55, 59, 71, 0.70) 100%);
}

.cta-block__overlays {
  display: none;
}

/* Fallback bez zdjecia w tle (np. przed sesja fotograficzna) - ciemny gradient marki + subtelny akcent */
.cta-block--no-image {
  background: linear-gradient(135deg, var(--footer-bg) 0%, var(--dark) 100%);
}

.cta-block--no-image .cta-block__overlays {
  display: block;
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image:
    radial-gradient(circle at 85% 15%, rgba(46, 154, 241, 0.35), transparent 55%),
    radial-gradient(circle at 10% 90%, rgba(46, 154, 241, 0.18), transparent 45%),
    radial-gradient(rgba(255, 255, 255, 0.08) 1px, transparent 1px);
  background-size: auto, auto, 22px 22px;
}

.cta-block .container {
  position: relative;
  z-index: 2;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-top: 60px;
  padding-bottom: 60px;
}

.cta-block__inner {
  display: flex;
  flex-direction: column;
  gap: 15px;
  max-width: 580px;
}

.cta-block__inner .btn {
    width: auto;
    align-self: flex-start;
    margin-top: 12px;
}

.cta-block__label .eyebrow__text,
.cta-block__inner .eyebrow__text {
  color: rgba(255, 255, 255, 0.6);
}

.cta-block__inner .eyebrow__line {
  border-color: rgba(255, 255, 255, 0.3);
}

.cta-block__inner h2 {
    font-size: 30px;
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: -0.5px;
    color: var(--white);
}

.cta-block__inner h2 strong {
  font-weight: 800;
}

.cta-block__inner p {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.8);
  letter-spacing: -0.36px;
}
.cta-block .contact-block__form .wpcf7-form p {
	
}
.cta-block .contact-block__form .wpcf7-form p.reg {
	font-size: 10px;
	margin: 0px 0;
	padding: 0px;
	opacity: .65;
}
.cta-block .contact-block__form label {
	color: #FFF;
}
.cta-block .contact-block__form .columns {
    display: flex;
    justify-content: space-between;
}
.cta-block .contact-block__form br {
	display: none;
}
.cta-block .contact-block__form .columns > div {
    flex: 0 0 49%;
}
.cta-block .contact-block__form label {
	margin-bottom: 5px;
	text-transform: uppercase;
	
}
.cta-block .contact-block__form .wpcf7-acceptance label {
	text-transform: initial;
	font-size: 9px;
}
.cta-block .contact-block__form textarea {
	height: 100px;
}

@media (min-width: 992px) {
  .cta-block {
      aspect-ratio: unset;
      min-height: 640px;
      align-items: center;
      max-height: unset;
  }

  .cta-block .container {
    height: auto;
    display: block;
    padding-top: 100px;
    padding-bottom: 100px;
  }

  .cta-block__inner h2 {
    font-size: 46px;
    letter-spacing: -1px;
  }

  .cta-block__inner p {
    font-size: 18px;
  }

  .cta-block__bg .cta-block__bg--mobile { display: none; }
  .cta-block__bg .cta-block__bg--desktop { display: block; }
}

@media (max-width: 992px) {
	.cta-block {
		max-height: initial;
		aspect-ratio: initial;
	}
	.cta-block .columns-block__grid {
		flex-direction: column;
		gap: 40px;
	}
}

/* --- Media-text content: desktop --- */
@media (min-width: 992px) {
  .media-text .media-text__content p {
    max-width: 564px;
  }
}

/* ======================================================
   ARTICLES CAROUSEL
   ====================================================== */
.articles-carousel {
  padding: 50px 0;
}

.articles-carousel .articles-carousel__header .btn {
    display: none;
}

.articles-carousel__header {
  margin-bottom: 30px;
}

.articles-carousel__header-text {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.articles-carousel__header-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.articles-carousel__grid {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  width: 100vw;
  max-width: 100vw;
  margin-left: 50%;
  margin-right: 0;
  transform: translateX(-50%);
  padding-left: var(--container-padding-mobile);
  padding-right: var(--container-padding-mobile);
  scroll-padding-left: var(--container-padding-mobile);
  scroll-padding-right: var(--container-padding-mobile);
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-bottom: 10px;
  overscroll-behavior-x: contain;
}

.articles-carousel__grid::-webkit-scrollbar {
  display: none;
}

.articles-carousel__scrollbar {
    width: calc(100vw - (var(--container-padding-mobile) * 2));
    height: 3px;
    margin-top: 30px;
    background-color: rgba(54, 84, 254, 0.14);
    border-radius: 999px;
    overflow: hidden;
}

.articles-carousel__scrollbar span {
  display: block;
  width: var(--articles-scrollbar-thumb-width, 36%);
  height: 100%;
  background-color: var(--blue);
  border-radius: inherit;
  transform: translateX(var(--articles-scrollbar-thumb-x, 0));
  transition: transform 0.12s ease;
}

.article-card {
  flex: 0 0 85%;
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
}

.article-card .btn {
    width: fit-content;
}

.article-card__image {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  aspect-ratio: 410 / 220;
  margin-bottom: 20px;
}

.article-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    scale: 1.02;
}

.article-card__link {
  display: block;
  margin-bottom: 0px;
}

.article-card__link .article-card__image img {
  transition: transform 0.4s ease;
}

.article-card__link:hover .article-card__image img {
  transform: scale(1.06);
}

.article-card h3 {
  font-size: 20px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--dark);
  letter-spacing: -0.4px;
  margin-bottom: 10px;
  transition: color var(--transition);
}

.article-card__link h3:hover {
  color: var(--blue);
}

.article-card__date {
    position: absolute;
    left: 10px;
    bottom: 10px;
    display: inline-flex;
    align-items: center;
    background-color: var(--gray-bg);
    border-radius: 8px;
    padding: 0 12px;
    height: 30px;
    font-size: 14px;
    font-weight: 500;
    color: var(--border);
    letter-spacing: -0.3px;
    width: fit-content;
    z-index: 2;
    background: rgb(55 59 71 / 30%);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    isolation: isolate;
    overflow: hidden;
    box-shadow: inset 0px 0px 1px 0 rgba(255, 255, 255, 0.35), inset -1px -1px 1px 1px rgb(255 255 255 / 0%);
}
.article-card__date::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    filter: url(../img/glass-distortion.svg#glass-distortion);
    pointer-events: none;
}
.article-card__date::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: rgba(255, 255, 255, 0.06);
    pointer-events: none;
    /* LIQUID GLASS END */
}

.article-card p {
  font-size: 13px;
  font-weight: 400;
  line-height: 1.4;
  color: var(--dark-60);
  margin-bottom: 20px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.articles-carousel__footer {
  display: flex;
  justify-content: center;
  padding-top: 25px;
  margin-top: 30px;
}

@media (min-width: 992px) {
  .articles-carousel {
    padding: 80px 0;
  }

  .articles-carousel__header {
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 40px;
  }

  .articles-carousel .articles-carousel__header .btn {
    display: flex;
  }

  .articles-carousel__header-top {
    align-items: flex-end;
  }

  .articles-carousel__footer {
    display: none;
  }

  .articles-carousel__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
    margin-left: 0;
    margin-right: 0;
    transform: none;
    width: auto;
    max-width: none;
    padding-left: 0;
    padding-right: 0;
    padding-bottom: 0;
    overflow: visible;
  }

  .articles-carousel__scrollbar {
    display: none;
  }

  .article-card {
    flex: none;
  }

  .article-card h3 {
    font-size: 22px;
  }

  .article-card p {
    font-size: 15px;
    flex: 1;
    display: block;
    overflow: visible;
  }

}

/* ======================================================
   SEARCH PAGE
   ====================================================== */
.search-title-block .container {
  gap: 22px;
}

.search-page-form {
    width: 100%;
    max-width: 820px;
    margin-top: 30px;
}

.search-results-page {
  padding: 50px 0;
}

.search-results-page__count {
  margin: 0 0 26px;
  color: var(--dark-60);
}

.search-results-page__count strong {
  color: var(--dark);
}

.search-results-page__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}

.search-results-page__pagination {
  margin-top: 34px;
}

.search-results-page__empty {
  max-width: 680px;
  padding: 34px;
  border: 1px solid var(--border-card);
  border-radius: var(--radius-lg);
  background-color: var(--light-bg);
}

.search-results-page__empty h2 {
  margin: 0 0 10px;
  font-size: 28px;
}

.search-results-page__empty p {
  margin: 0;
  color: var(--dark-60);
}

@media (min-width: 768px) {
  .search-results-page__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1200px) {
  .search-results-page {
    padding: 80px 0;
  }

  .search-results-page__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 32px;
  }
}

/* ======================================================
   FOOTER
   ====================================================== */
.site-footer {
  background-color: var(--dark);
  color: var(--white);
}

/* ---- FOOTER TOP ---- */
.site-footer__top {
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.site-footer__top-inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
    padding: 30px 0;
}

.site-footer__logo {
  flex-shrink: 0;
}

.site-footer__logo img {
  width: 70px;
  height: auto;
  display: block;
}

/* Contacts block */
.site-footer__contacts {
  display: flex;
  flex-direction: column;
  gap: 20px;
  width: 100%;
}

.site-footer__contacts a:hover {
    color: var(--blue);
}

.site-footer__contact-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.contact-columns ul li::before {
    content: unset;
}
.contact-columns ul li {
    padding-left: 0;
}

.contact-columns .columns-block__col-content h3:not(:first-of-type) {
  margin-top: 15px;
}

ul.contact-list {
    gap: 0px;
}

/* Dzial z wieloma kontaktami (sub-elementami) */
.site-footer__contact-item:has(.site-footer__contact-sub) {
  flex-direction: column;
  gap: 4px;
}

.site-footer__contact-sub {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.site-footer__contact-sep--inner {
  display: none;
}

.site-footer__contact-label {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.56px;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.6);
}

.site-footer__contact-value {
  font-size: 20px;
  font-weight: 600;
  color: var(--white);
  letter-spacing: -1px;
  line-height: 1.3;
  white-space: nowrap;
}

.site-footer__top-cta {
  width: 100%;
}

.site-footer__top-cta .btn {
  width: 100%;
  text-align: center;
}

/* ---- FOOTER BOTTOM ---- */
.site-footer__bottom {
    padding: 30px 0 40px;
}

.site-footer__bottom-inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.site-footer__menus {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.site-footer__desc-logo {
  display: none;
}

.site-footer__desc-logo img {
  width: 70px;
  height: auto;
  display: block;
}

/* Col 1: desc + social */
.site-footer__col--desc {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.site-footer__col--desc p {
    font-size: 15px;
    font-weight: 400;
    color: rgba(233, 237, 244, 0.6);
    line-height: 1.5;
    letter-spacing: -0.5px;
    max-width: 300px;
}

.site-footer__social {
  display: flex;
  gap: 10px;
}

.footer-social-link {
  width: 40px;
  height: 40px;
  border-radius: var(--radius);
  background-color: var(--blue);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background-color var(--transition);
}

.footer-social-link {
  color: var(--white);
}

.footer-social-link svg {
    display: block;
    height: 22px;
    width: 22px;
}

.footer-social-link:hover {
  background-color: var(--white);
  color: var(--blue);
}

.footer-social-link img {
  transition: filter 0.05s ease;
}

.footer-social-link:hover img {
  filter: brightness(0) saturate(100%) invert(31%) sepia(89%) saturate(5078%) hue-rotate(230deg) brightness(102%) contrast(99%);
}

/* Nav cols */
.site-footer__col--nav {
  min-width: 0;
}

.site-footer__col--nav h4 {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.56px;
    text-transform: uppercase;
    color: #E9EDF4;
    margin-bottom: 0;
}

.site-footer__col--nav h4::after {
  content: '';
  display: block;
  width: 46px;
  height: 1px;
  background-color: var(--blue);
  margin-top: 10px;
  margin-bottom: 16px;
}

.site-footer__bottom-inner ul li a {
    color: rgba(255, 255, 255, 0.6);
}

.site-footer__nav-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  list-style: none;
  padding: 0;
  margin: 0;
}

.site-footer__nav-list li a {
  font-size: 16px;
  font-weight: 400;
  color: var(--white);
  letter-spacing: -0.5px;
  line-height: 30px;
  display: block;
  transition: color var(--transition);
}

.site-footer__nav-list li a:hover {
    color: var(--blue);
}

/* Offer col: 2 sub-columns on desktop */
.site-footer__nav-double {
  display: flex;
  flex-direction: column;
  gap: 0;
}

@media (min-width: 480px) and (max-width: 991px) {
  .site-footer__menus {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 40px 0;
  }

  .site-footer__col--main {
    grid-column: 1;
    grid-row: 1;
  }

  .site-footer__col--business {
    grid-column: 2;
    grid-row: 1;
  }

  .site-footer__col--offer {
    grid-column: 1 / -1;
    grid-row: 2;
  }

    .site-footer__nav-double {
        flex-direction: row;
        gap: 0;
    }

  .site-footer__nav-double .site-footer__nav-list {
    flex: 1;
    min-width: 0;
  }

  .site-footer__nav-double .site-footer__nav-list:nth-child(2) {
    position: relative;
  }

  .site-footer__nav-double .site-footer__nav-list:nth-child(2)::before {
    content: '';
    display: block;
    position: absolute;
    left: 0;
    top: -17px;
    width: 46px;
    height: 1px;
    background-color: var(--blue);
  }
}

/* ---- FOOTER CREDITS ---- */

.site-footer__credits-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 24px 0;
  text-align: center;
}

.site-footer__credits-inner p,
.site-footer__credits-inner p a {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.6);
}

.site-footer__credits-links {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: center;
}

.site-footer__credits-links a {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.6);
  transition: color var(--transition);
}

.site-footer__credits-links a:hover {
    color: var(--blue);
}

.site-footer__credits-links span {
  color: rgba(255, 255, 255, 0.3);
}

/* ---- FOOTER BLUE BAR ---- */
.site-footer__blue {
    background-color: var(--blue);
}

.site-footer__blue-inner {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 18px 0;
  color: var(--white);
  text-align: center;
}

.site-footer__blue-inner p {
  margin: 0;
  color: var(--white);
  font-size: 14px;
  line-height: 1.5;
  font-weight: 500;
}

.site-footer__blue-inner ul {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-footer__blue-inner li {
  margin: 0;
  color: var(--white);
  font-size: 14px;
  line-height: 1.5;
  font-weight: 500;
}

.site-footer__blue-inner strong {
  font-weight: 700;
}

.site-footer__blue-inner a {
  color: var(--white);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.site-footer__blue-inner a:hover {
  opacity: 0.82;
}

@media (min-width: 992px) {
  /* TOP: 170px bar — full-container is positioning context */
  .site-footer__top .full-container {
    position: relative;
    height: 170px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .site-footer__top-inner {
      width: 100%;
      height: 100%;
      display: flex;
      align-items: center;
      position: static;
      padding: 0;
      gap: 0;
      justify-content: center;
  }

  .site-footer__logo {
      position: absolute;
      left: 40px;
      top: 50%;
      transform: translateY(-50%);
      padding: 0;
      display: block;
  }

  .site-footer__top-cta {
    position: absolute;
    right: 40px;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    padding: 0;
    width: auto;
  }

  /* contacts fill middle — use container max-width and auto margins */
  .site-footer__contacts {
      width: 100%;
      max-width: var(--container);
      margin: 0 auto;
      flex-direction: row;
      align-items: center;
      gap: 40px;
      min-width: 0;
  }

  .site-footer__contact-item {
      padding: 0 50px;
      gap: 6px;
      min-width: 0;
  }

  .site-footer__contact-item:first-child {
    padding-left: 0;
  }

  /* Dzial z wieloma kontaktami (sub-elementami) — uklad poziomy na desktop */
  .site-footer__contact-item:has(.site-footer__contact-sub) {
      flex-direction: row;
      align-items: flex-end;
      gap: 0;
      padding-right: 0;
  }

  .contact_sep {
    border-left: 1px solid #707482;
    width: 1px;
    height: 30px;
  }

  .site-footer__contact-sub {
    flex: 1;
    padding: 0 20px;
  }

  .site-footer__contact-sub:first-child {
    padding-left: 0;
  }

  .site-footer__contact-sep--inner {
    display: block;
    width: 1px;
    height: 40px;
    background-color: rgba(255, 255, 255, 0.15);
    flex-shrink: 0;
    align-self: center;
  }

  .site-footer__top-cta {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    padding: 0;
    width: auto;
  }

  .site-footer__top-cta .btn {
    width: auto;
    white-space: nowrap;
  }

  /* BOTTOM: full-width stretched columns */
  .site-footer__bottom-inner {
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    gap: clamp(32px, 5vw, 100px);
    width: 100%;
  }

  .site-footer__menus {
    display: flex;
    flex: 1 1 auto;
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    gap: clamp(32px, 5vw, 100px);
    min-width: 0;
  }

  .site-footer__col--desc {
    flex: 0 1 300px;
    max-width: 300px;
  }

  .site-footer__col--nav {
    flex: 1 1 180px;
  }

  .site-footer__col--offer {
    flex: 1.6 1 360px;
  }

  .site-footer__nav-double {
    flex-direction: column;
    gap: 0;
  }

  .site-footer__blue-inner {
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 42px;
    min-height: 78px;
    padding: 18px 0;
    text-align: left;
  }

  .site-footer__blue-inner ul {
    flex-direction: row;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    column-gap: 28px;
    row-gap: 8px;
  }

  /* CREDITS: single row */
  .site-footer__credits-inner {
    flex-direction: row;
    justify-content: space-between;
    text-align: left;
    gap: 0;
  }
  .site-footer__bottom {
    padding: 60px 0;
  }

}

@media (min-width: 992px) and (max-width: 1279px) {
  .site-footer__col--nav {
    flex: 1 1 0;
  }

  .site-footer__col--offer {
    flex: 1 1 0;
  }

  .site-footer__contact-item {
    padding: 0;
  }

  .site-footer__logo {
    opacity: 0;
  }
  .site-footer__bottom-inner {
    gap: 30px;
  }

  .site-footer__menus {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 42px 56px;
  }

  .site-footer__col--main {
    grid-column: 1;
    grid-row: 1;
  }

  .site-footer__col--business {
    grid-column: 2;
    grid-row: 1;
  }

  .site-footer__col--offer {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  .site-footer__nav-double {
    flex-direction: row;
    gap: 56px;
  }

  .site-footer__nav-double .site-footer__nav-list {
    flex: 1;
  }

  .site-footer__nav-double .site-footer__nav-list:nth-child(2) {
    position: relative;
  }

  .site-footer__nav-double .site-footer__nav-list:nth-child(2)::before {
    content: '';
    display: block;
    position: absolute;
    left: 0;
    top: -17px;
    width: 46px;
    height: 1px;
    background-color: var(--blue);
  }
  
}

@media (min-width: 992px) and (max-width: 1601px) {
  .site-footer__top .site-footer__logo {
    display: none;
  }

  .site-footer__desc-logo {
    display: block;
  }

  .site-footer__contacts {
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    padding-right: 190px;
    justify-content: flex-start;
  }

  .site-footer__contact-item {
    padding-left: 0;
    padding-right: 34px;
  }
}

@media (min-width: 1280px) {
  .site-footer__nav-double {
    flex-direction: row;
    justify-content: space-between;
    gap: 0;
  }

  .site-footer__nav-double .site-footer__nav-list {
    flex: 1;
  }

  .site-footer__nav-double .site-footer__nav-list:nth-child(2) {
    position: relative;
  }

  .site-footer__nav-double .site-footer__nav-list:nth-child(2)::before {
    content: '';
    display: block;
    position: absolute;
    left: 0;
    top: -17px;
    width: 46px;
    height: 1px;
    background-color: var(--blue);
  }
}

@media (min-width: 2000px) {
  .site-footer__bottom-inner {
    display: block;
    position: relative;
  }

  .site-footer__col--desc {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
  }

  .site-footer__menus {
    display: grid;
    grid-template-columns: minmax(150px, 0.8fr) minmax(420px, 1.8fr) minmax(180px, 0.8fr);
    gap: clamp(40px, 4vw, 90px);
    width: 100%;
    max-width: var(--container);
    margin-left: auto;
    margin-right: auto;
  }
}

@media (min-width: 1400px) {
  .stats-block__item {
    flex-direction: row;
  }
}

/* ======================================================
   QUICK CONTACT MODAL
   ====================================================== */
.quick-contact-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 0;
}

.quick-contact-modal[hidden] {
  display: none !important;
}

.quick-contact-modal__overlay {
  position: absolute;
  inset: 0;
  background-color: rgba(26, 31, 46, 0.6);
  backdrop-filter: blur(4px);
  cursor: pointer;
}

.quick-contact-modal__dialog {
  position: relative;
  z-index: 1;
  background-color: var(--white);
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  width: 100%;
  max-height: 92vh;
  overflow-y: auto;
  box-shadow: 0 -8px 40px rgba(0, 0, 0, 0.15);
  animation: qcm-slide-up 0.3s ease;
}

@keyframes qcm-slide-up {
  from { transform: translateY(30px); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}

.quick-contact-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px 24px 20px;
  border-bottom: 1px solid var(--border);
  gap: 16px;
  position: sticky;
  top: 0;
  background-color: var(--white);
  z-index: 1;
}

.quick-contact-modal__header h3 {
  font-size: 20px;
  font-weight: 700;
  color: var(--dark);
  letter-spacing: -0.3px;
  margin: 0;
}

.quick-contact-modal__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: none;
  background: var(--gray-bg);
  border-radius: 50%;
  cursor: pointer;
  flex-shrink: 0;
  transition: background-color var(--transition), transform var(--transition);
}

.quick-contact-modal__close:hover {
  background: var(--border-card);
  transform: rotate(90deg);
}

.quick-contact-modal__body {
  padding: 24px;
}

/* ======================================================
   GLOBALNE STYLE FORMULARZY CF7
   Używane przez: .cf7-form (contact-block) + .qcm-form (modal)
   ====================================================== */

/* Wrapper form */
.cf7-form,
.qcm-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.cf7-form p,
.qcm-form p {
  margin: 0;
}

/* Label */
.cf7-form label,
.contact-block__form label,
.qcm-form__label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--dark);
  letter-spacing: 0.2px;
}

/* Inputy i textarea — globalne */
.cf7-form input[type="text"],
.cf7-form input[type="email"],
.cf7-form input[type="tel"],
.cf7-form input[type="number"],
.cf7-form input[type="url"],
.cf7-form textarea,
.cf7-form select,
.contact-block__form input[type="text"],
.contact-block__form input[type="email"],
.contact-block__form input[type="tel"],
.contact-block__form input[type="number"],
.contact-block__form textarea,
.contact-block__form select,
.qcm-form input[type="text"],
.qcm-form input[type="email"],
.qcm-form input[type="tel"],
.qcm-form input[type="number"],
.qcm-form input[type="url"],
.qcm-form textarea,
.qcm-form select {
  width: 100%;
  padding: 11px 14px;
  border: 1.5px solid var(--border-card);
  border-radius: var(--radius);
  font-family: var(--font);
  font-size: 14px;
  color: var(--dark);
  background-color: var(--white);
  transition: border-color var(--transition), box-shadow var(--transition);
  outline: none;
  line-height: 1.5;
  appearance: none;
}

.cf7-form input[type="text"]::placeholder,
.cf7-form input[type="email"]::placeholder,
.cf7-form input[type="tel"]::placeholder,
.cf7-form input[type="url"]::placeholder,
.cf7-form textarea::placeholder,
.contact-block__form input[type="text"]::placeholder,
.contact-block__form input[type="email"]::placeholder,
.contact-block__form input[type="tel"]::placeholder,
.contact-block__form textarea::placeholder,
.qcm-form input[type="text"]::placeholder,
.qcm-form input[type="email"]::placeholder,
.qcm-form input[type="tel"]::placeholder,
.qcm-form input[type="url"]::placeholder,
.qcm-form textarea::placeholder {
  color: var(--dark-60);
  font-weight: 400;
}

.cf7-form input[type="text"]:focus,
.cf7-form input[type="email"]:focus,
.cf7-form input[type="tel"]:focus,
.cf7-form input[type="url"]:focus,
.cf7-form textarea:focus,
.contact-block__form input[type="text"]:focus,
.contact-block__form input[type="email"]:focus,
.contact-block__form input[type="tel"]:focus,
.contact-block__form textarea:focus,
.qcm-form input[type="text"]:focus,
.qcm-form input[type="email"]:focus,
.qcm-form input[type="tel"]:focus,
.qcm-form input[type="url"]:focus,
.qcm-form textarea:focus {
  border-color: var(--blue);
}

.cf7-form textarea,
.contact-block__form textarea,
.qcm-form textarea {
  resize: vertical;
  min-height: 100px;
}

/* RODO / acceptance */
.cf7-form .cf7-rodo,
.cf7-form .wpcf7-acceptance,
.qcm-form__rodo,
.qcm-form .wpcf7-acceptance {
  font-size: 12px;
  color: var(--dark-60);
  line-height: 1.6;
  margin: 0;
}

.wpcf7-acceptance label {
    display: inline-flex;
    flex-direction: row;
    align-items: flex-start;
    line-height: 1.2;
    font-weight: 400;
}

/* Submit — globalny wygląd */
.cf7-form input[type="submit"],
.contact-block__form input[type="submit"],
.qcm-form input[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  padding: 0 32px;
  background-color: var(--red);
  color: var(--white);
  border: none;
  border-radius: var(--radius);
  font-family: var(--font);
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: opacity var(--transition);
  letter-spacing: -0.2px;
}

.cf7-form input[type="submit"]:hover,
.contact-block__form input[type="submit"]:hover,
.qcm-form input[type="submit"]:hover {
  opacity: 0.88;
}

/* 2-kolumnowy grid wewnątrz formularza */
.cf7-form .cf7-row2,
.qcm-form__row2 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

/* 3-kolumnowy grid */
.cf7-form .cf7-grid3,
.qcm-form__grid3 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

/* Sekcja z nagłówkiem (radio) */
.cf7-form .cf7-section,
.qcm-form__section {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.cf7-form .cf7-section-label,
.qcm-form__section-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--dark);
  letter-spacing: 0.2px;
}

/* Pills radio */
.cf7-form .cf7-pills .wpcf7-radio,
.qcm-form__pills .wpcf7-radio {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.cf7-form .cf7-pills .wpcf7-list-item,
.qcm-form__pills .wpcf7-list-item {
  margin: 0;
}

.cf7-form .cf7-pills .wpcf7-list-item label,
.qcm-form__pills .wpcf7-list-item label {
  display: flex;
  align-items: center;
  cursor: pointer;
}

.cf7-form .cf7-pills .wpcf7-list-item-label,
.qcm-form__pills .wpcf7-list-item-label {
  display: inline-flex;
  align-items: center;
  padding: 7px 16px;
  border: 1.5px solid var(--border-card);
  border-radius: 100px;
  font-size: 14px;
  font-weight: 500;
  color: var(--dark);
  background-color: var(--white);
  cursor: pointer;
  transition: border-color var(--transition), background-color var(--transition), color var(--transition);
}

.cf7-form .cf7-pills input[type="radio"],
.qcm-form__pills input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.cf7-form .cf7-pills input[type="radio"]:checked + .wpcf7-list-item-label,
.qcm-form__pills input[type="radio"]:checked + .wpcf7-list-item-label {
  border-color: var(--blue);
  background-color: var(--blue);
  color: var(--white);
}

/* QCM-specific: submit pełna szerokość w modalu */
/* CF7 messages */
.wpcf7 form .wpcf7-not-valid {
  border-color: var(--red) !important;
}

.wpcf7 form .wpcf7-not-valid-tip {
  display: block;
  margin-top: 6px;
  font-size: 13px;
  line-height: 1.4;
  font-weight: 500;
  color: var(--red) !important;
}

.wpcf7 form .wpcf7-response-output {
  margin: 18px 0 0 !important;
  padding: 14px 16px !important;
  border: 1.5px solid var(--border-card) !important;
  border-radius: var(--radius) !important;
  background-color: var(--white) !important;
  color: var(--dark) !important;
  font-size: 14px;
  line-height: 1.5;
  font-weight: 500;
  text-align: center;
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
  border-color: rgba(255, 80, 54, 0.35) !important;
  background-color: rgba(255, 80, 54, 0.08) !important;
  color: var(--red) !important;
}

.wpcf7 form.sent .wpcf7-response-output {
  border-color: rgba(54, 84, 254, 0.28) !important;
  background-color: rgba(54, 84, 254, 0.08) !important;
  color: var(--blue) !important;
}

.wpcf7 form.spam .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output {
  border-color: rgba(55, 59, 71, 0.22) !important;
  background-color: rgba(55, 59, 71, 0.06) !important;
  color: var(--dark) !important;
}

.qcm-form input[type="submit"] {
  width: 100%;
}

@media (min-width: 992px) {
  .quick-contact-modal {
    align-items: center;
    padding: 24px;
  }

  .quick-contact-modal__dialog {
    border-radius: var(--radius-lg);
    max-width: 600px;
    max-height: 90vh;
    box-shadow: 0 24px 80px rgba(0, 0, 0, 0.2);
    animation: qcm-scale-in 0.25s ease;
  }

  @keyframes qcm-scale-in {
    from { transform: scale(0.97) translateY(8px); opacity: 0; }
    to   { transform: scale(1)    translateY(0);   opacity: 1; }
  }

  .quick-contact-modal__header {
    padding: 28px 32px 22px;
  }

  .quick-contact-modal__header h3 {
    font-size: 24px;
  }

  .quick-contact-modal__body {
    padding: 24px 32px 32px;
  }

  .cf7-form .cf7-row2,
  .qcm-form__row2 {
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }

  .cf7-form .cf7-grid3,
  .qcm-form__grid3 {
    grid-template-columns: 1fr 1fr 1fr;
    gap: 12px;
  }

  .qcm-form__submit input[type="submit"],
  .qcm-form__submit .btn {
    width: auto;
  }
}

/* ======================================================
   FAQ BLOCK
   ====================================================== */
.faq-block {
  padding: 60px 0;
}

.faq-block__header {
  display: flex;
  flex-direction: column;
  gap: 15px;
  margin-bottom: 32px;
}

.faq-block__list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.faq-block__item {
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
}

.faq-block__question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 18px 22px;
  background: #fff;
  border: 0;
  cursor: pointer;
  text-align: left;
  gap: 16px;
  font-size: 16px;
  font-weight: 600;
  color: var(--dark);
  font-family: var(--font);
}

.faq-block__icon {
  width: 14px;
  height: 10px;
  flex-shrink: 0;
  color: var(--blue);
  transition: transform var(--transition);
}

.faq-block__question[aria-expanded="true"] .faq-block__icon {
  transform: rotate(180deg);
}

.faq-block__answer {
  padding: 0 22px 18px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  overflow: hidden;
}

.faq-block__answer[hidden] {
  display: none;
}

@media (min-width: 992px) {
  .faq-block {
    padding: 80px 0;
  }

  .faq-block__question {
    font-size: 18px;
  }

  .faq-block__header {
    gap: 20px;
    margin-bottom: 40px;
  }
}

/* ======================================================
   DOWNLOAD BLOCK
   ====================================================== */
.download-block {
  padding: 40px 0;
}

.download-block__header {
  display: flex;
  flex-direction: column;
  gap: 15px;
  margin-bottom: 24px;
}

.download-block__list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.download-block__link {
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: center;
    gap: 12px;
    padding: 14px 18px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: #fff;
    text-decoration: none;
    color: var(--dark);
    transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
    grid-auto-flow: column;
}

.download-block__link:hover {
  background: var(--light-bg);
  box-shadow: 0 4px 12px rgba(54, 84, 254, 0.08);
}

.download-block__link img {
  rotate: 180deg;
}

.download-block__name {
  font-weight: 600;
  grid-column: 1 / -1;
}

.download-block__desc {
  grid-column: 1 / -1;
  font-size: 14px;
  color: rgba(0,0,0,0.65);
}

.download-block__meta {
  font-size: 13px;
  color: rgba(0,0,0,0.55);
}

@media (min-width: 992px) {
  .download-block {
    padding: 80px 0;
  }

  .download-block__header {
    gap: 20px;
    margin-bottom: 40px;
  }
}

/* ======================================================
   CONTACT BLOCK
   ====================================================== */
.contact-block {
  padding: 0;
}

/* --- Górna sekcja: 2 kolumny --- */
.contact-block__top {
  padding: 60px 0;
}

.contact-block__cols {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.contact-block__col {
  display: flex;
  flex-direction: column;
  gap: 30px;
}

.contact-block__wysiwyg {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

ul.olza-contacts-list li:before {
    display: none !important;
}

/* Shortcode [olza_contacts] — lista dzialow kontaktowych */
.olza-contacts-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.olza-contacts-list__item {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 14px 0;
  border-bottom: 1px solid var(--border);
}

.olza-contacts-list__item:first-child {
  border-top: 1px solid var(--border);
}

.olza-contacts-list__label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.56px;
  text-transform: uppercase;
  color: var(--dark-60);
}

.olza-contacts-list__value {
  display: block;
  font-size: 20px;
  font-weight: 600;
  color: var(--dark);
  letter-spacing: -0.8px;
  line-height: 1.2;
  text-decoration: none;
  transition: color var(--transition);
}

a.olza-contacts-list__value:hover {
  color: var(--blue);
}

/* --- Dolna sekcja: formularz full-width --- */
.contact-block__form-section {
  background-color: var(--light-bg);
  padding: 60px 0;
}

.contact-block__form {
  width: 100%;
}

/* CF7 wewnątrz contact-block — korzysta z globalnych .cf7-form */
.contact-block__form .wpcf7 > form {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.contact-block__form .wpcf7-form p {
  margin: 0;
}

/* Grid 2 kolumn dla pól w contact-block */
.contact-block__form .cf7-row2 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

/* Submit w contact-block — szerokość auto */
.contact-block__form input[type="submit"] {
  width: auto;
  align-self: flex-start;
}

@media (min-width: 992px) {
  .contact-block__top {
    padding: 80px 0;
  }

  .contact-block__cols {
    flex-direction: row;
    gap: 80px;
    align-items: flex-start;
  }

  .contact-block__col--left {
    flex: 1;
  }

  .contact-block__col--right {
    flex: 1;
  }

  .contact-block__contact-value {
    font-size: 22px;
  }

  .contact-block__form-section {
    padding: 80px 0;
  }

  .contact-block__form .cf7-row2 {
    grid-template-columns: 1fr 1fr;
    gap: 20px;
  }
}

/* ======================================================
   CALLBACK BLOCK
   ====================================================== */
.callback-block {
  width: 100%;
}

@keyframes callback-image-float {
  0%, 100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(10px);
  }
}

@keyframes callback-shape-float {
  0%, 100% {
    transform: translate(-50%, 20px);
  }

  50% {
    transform: translate(-50%, 0);
  }
}

.callback-block__box {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  align-items: center;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
  padding: 32px 24px;
  background-color: var(--gray-bg);
  border-radius: var(--radius-lg);
}

.callback-block__media {
  display: flex;
  justify-content: center;
  position: relative;
  color: var(--white);
  min-height: 172px;
}

.callback-block__image {
  position: relative;
  z-index: 2;
  width: 130px;
  max-height: 150px;
  object-fit: contain;
  animation: callback-image-float 6s ease-in-out infinite;
}

.callback-block__shape {
  position: absolute;
  z-index: 1;
  top: -18px;
  left: 50%;
  width: 160px;
  height: 198px;
  color: var(--white);
  animation: callback-shape-float 12s ease-in-out infinite;
}

.callback-block__content {
  max-width: 720px;
}

.callback-block__title {
  margin: 0 0 8px;
  font-size: 28px;
  line-height: 1.2;
  font-weight: 700;
  color: var(--dark);
}

.callback-block__text {
  margin: 0 0 14px;
  font-size: 14px;
  line-height: 1.5;
  color: var(--dark-60);
}

.callback-block__form {
  max-width: 560px;
}

.callback-block__form .wpcf7 > form {
  margin: 0;
}

.callback-form__row {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
}

.callback-form__row p {
  width: 100%;
}

.callback-form__row p:last-child {
  width: auto;
}

.callback-form input[type="submit"] {
  height: 44px;
  padding: 0 24px;
  text-transform: uppercase;
}

@media (min-width: 768px) {
  .callback-block__box {
    grid-template-columns: 140px minmax(0, 560px);
    justify-content: center;
    gap: 36px;
    padding: 48px 56px;
  }

  .callback-block--no-image .callback-block__box {
    grid-template-columns: minmax(0, 560px);
  }
}

@media (max-width: 767px) {
  .callback-block__box {
    text-align: center;
  }

  .callback-block__content,
  .callback-block__form {
    max-width: none;
  }

  .callback-form__row,
  .callback-form__row p:last-child {
    align-items: stretch;
    width: 100%;
  }

  .callback-form input[type="submit"] {
    width: 100%;
  }

  .callback-block__title {
    font-size: 24px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .callback-block__image,
  .callback-block__shape {
    animation: none;
  }
}

/* ======================================================
   MAP BLOCK
   ====================================================== */
.map-block {
  padding: 0;
}

.map-block__grid {
  display: grid;
  grid-template-columns: 1fr;
  width: 100%;
}

.map-block__item {
  min-width: 0;
}

.map-block__header {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 72px;
  padding: 18px 24px;
  background-color: var(--gray-bg);
  text-align: center;
}

.map-block__header h2 {
  margin: 0;
  font-size: 24px;
  line-height: 1.25;
  font-weight: 700;
  color: var(--dark);
}

.map-block__wrap {
  position: relative;
  overflow: hidden;
  background-color: var(--gray-bg);
}

.map-block__wrap iframe {
  display: block;
  width: 100%;
  height: 100%;
}

.map-block__empty {
  margin: 0;
  padding: 24px;
  border-radius: var(--radius-lg);
  background-color: var(--gray-bg);
  color: var(--dark-60);
  text-align: center;
}

@media (min-width: 992px) {
  .map-block__grid--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .map-block__grid--2 .map-block__item + .map-block__item {
    border-left: 1px solid var(--white);
  }
}

@media (max-width: 991px) {
  .map-block__item + .map-block__item {
    border-top: 1px solid var(--white);
  }

  .map-block__header {
    min-height: 64px;
  }

  .map-block__header h2 {
    font-size: 21px;
  }
}

/* ======================================================
   MEDIA BLOCK
   ====================================================== */
.media-block {
  overflow: hidden;
}

.media-block img {
  width: 100%;
  height: auto;
  display: block;
}

/* --- Full (100vw) --- */
.media-block--full > img,
.media-block--full > .media-block__swiper,
.media-block--full > .media-block__video-wrap {
  width: 100%;
}

/* --- Container & Narrow: border-radius on inner media --- */
.media-block--container > .container > img,
.media-block--container > .container > .media-block__swiper,
.media-block--container > .container > .media-block__video-wrap,
.media-block--narrow .media-block__narrow > img,
.media-block--narrow .media-block__narrow > .media-block__swiper,
.media-block--narrow .media-block__narrow > .media-block__video-wrap {
  border-radius: var(--radius-lg);
  overflow: hidden;
}

/* --- Narrow wrapper --- */
.media-block__narrow {
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}

/* --- Slider --- */
.media-block__swiper {
  width: 100%;
  position: relative;
  overflow: hidden;
}

.media-block__swiper .swiper-slide {
  overflow: hidden;
  aspect-ratio: 16 / 9;
}

.media-block__swiper .swiper-slide img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.media-block__swiper .swiper-pagination {
  bottom: 16px;
}

.media-block__nav {
  position: absolute;
  bottom: 16px;
  right: 16px;
  z-index: 10;
}

.media-block__nav svg {
    display: block;
    color: var(--dark-60);
}

/* --- Video wrap – responsive 16:9 ratio --- */
.media-block__video-wrap {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
}

.media-block__video-wrap iframe,
.media-block__video-wrap video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* ======================================================
   COLUMNS BLOCK
   ====================================================== */
.columns-block {
  padding: 50px 0;
}
.text-block + .to-move-up {
    padding-top: 0;
    margin-top: -40px;
}

.columns-block__grid {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  margin-right: calc(var(--container-padding-mobile) * -1);
  padding-right: var(--container-padding-mobile);
  padding-bottom: 8px;
}

.columns-block--mobile-stack .columns-block__grid {
  flex-direction: column;
  overflow-x: visible;
  scroll-snap-type: none;
  margin-right: 0;
  padding-right: 0;
  gap: 60px;
}

.columns-block--mobile-stack .columns-block__col {
  flex: none;
}

.columns-block__col {
  flex: 0 0 calc(80% - 8px);
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.cta-block .columns-block__col {
	display: block;
}

/* --- Col header: icon box + title --- */
.columns-block__col-header {
  display: flex;
  align-items: center;
  gap: 12px;
}

.columns-block__col-icon {
  width: 44px;
  height: 44px;
  background-color: var(--light-bg);
  border: 1px solid var(--border-card);
  border-radius: var(--radius);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.columns-block__col-icon a {
	transition: all .25s ease;
}
.columns-block__col-icon a:hover {
	opacity: .8;
}

.columns-block__col-icon img {
  width: 28px;
  height: 28px;
  object-fit: contain;
}

.columns-block--icons-medium .columns-block__col-icon {
  width: 90px;
  height: 90px;
}

.columns-block--icons-medium .columns-block__col-icon img {
  width: 60px;
  height: 60px;
}

.columns-block--icons-large .columns-block__col-icon {
  width: 200px;
  height: 120px;
}

.columns-block--icons-large .columns-block__col-icon img {
  width: 140px;
  height: 90px;
}

.columns-block--icons-plain .columns-block__col-icon {
  background: none;
  border: none;
  border-radius: 0;
  width: auto;
  height: 44px;
}

.columns-block--icons-plain .columns-block__col-icon img {
  width: auto;
  height: 28px;
  object-fit: contain;
}

.columns-block--icons-plain.columns-block--icons-medium .columns-block__col-icon {
  height: 90px;
}

.columns-block--icons-plain.columns-block--icons-medium .columns-block__col-icon img {
  height: 60px;
}

.columns-block--icons-plain.columns-block--icons-large .columns-block__col-icon {
  height: 120px;
}

.columns-block--icons-plain.columns-block--icons-large .columns-block__col-icon img {
  height: 90px;
}

.columns-block--bg-light {
  background-color: var(--light-bg);
}

.columns-block--bg-blue {
  background-color: var(--blue);
  color: #fff;
}

.columns-block--bg-blue .columns-block__col-header h3,
.columns-block--bg-blue .columns-block__col-title,
.columns-block--bg-blue .columns-block__col-content,
.columns-block--bg-blue h1,
.columns-block--bg-blue h2,
.columns-block--bg-blue h3,
.columns-block--bg-blue p {
  color: #fff;
}

.columns-block--bg-blue .eyebrow__text {
  color: rgba(255, 255, 255, 0.6);
}

.columns-block--bg-blue .eyebrow__line {
  background-color: rgba(255, 255, 255, 0.3);
}

.columns-block--bg-gray {
  background-color: #e9edf4;
}

.columns-block__col-header h3 {
  font-size: 17px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--dark);
}

.columns-block__col-title {
  font-size: 17px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--dark);
}

.columns-block__col-content {
    display: flex;
    flex-direction: column;
    gap: 0px;
    font-size: 15px;
    line-height: 1.5;
    color: var(--dark);
}
.columns-block__col-content a {
	color: var(--blue);
}
.columns-block__col-content a:hover {
	text-decoration: underline;
}
.columns-block__col-content ul {
	gap: 2px;
}
.columns-block__col-content ul li {
	font-size: 15px;
}

@media (min-width: 992px) {
  .columns-block {
    padding: 80px 0;
  }

  .columns-block__grid {
    display: grid;
    gap: 15px;
    overflow: visible;
    margin-right: 0;
    padding-right: 0;
    padding-bottom: 0;
    scroll-snap-type: none;
  }

  .columns-block--2 .columns-block__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .columns-block--3 .columns-block__grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .columns-block__col {
    flex: none;
    gap: 16px;
	padding-bottom: 25px;
  }

  .columns-block__col-icon {
    width: 50px;
    height: 50px;
  }

  .columns-block__col-icon img {
    width: 32px;
    height: 32px;
  }

  .columns-block__col-header h3,
  .columns-block__col-title {
    font-size: 19px;	
  }

  .columns-block__col-content h3 {
	  margin-bottom: .35em;
  }
  .columns-block__col-content {
    font-size: 16px;
	padding-right: 25px;
	text-align: left;
  }
  .columns-block__col-content p {
	  font-size: inherit;
  }
}

/* ======================================================
   TEXT BLOCK
   ====================================================== */
.text-block {
  padding: 50px 0;
}

.text-block--bg-light {
  background-color: var(--light-bg);
}

.text-block--bg-blue {
  background-color: var(--blue);
  color: #fff;
}
.text-block blockquote {
    margin: 1em auto;
    padding: 1em;
    background-color: var(--gray-bg);
    border-radius: 10px;
}
.text-block--bg-blue .text-block__header,
.text-block--bg-blue .text-block__content,
.text-block--bg-blue .text-block__col-header h3,
.text-block--bg-blue .text-block__col > h3,
.text-block--bg-blue .text-block__col-body,
.text-block--bg-blue h1,
.text-block--bg-blue h2,
.text-block--bg-blue h3,
.text-block--bg-blue p {
  color: #fff;
}

.text-block--bg-blue .eyebrow__text {
  color: rgba(255, 255, 255, 0.6);
}

.text-block--bg-blue .eyebrow__line {
  background-color: rgba(255, 255, 255, 0.3);
}

.text-block__inner {
  display: flex;
  flex-direction: column;
  gap: 30px;
}

.text-block--narrow .text-block__inner {
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}

.text-block__header {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.text-block__content {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* --- Columns --- */
.text-block__cols {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  margin-right: calc(var(--container-padding-mobile) * -1);
  padding-right: var(--container-padding-mobile);
  padding-bottom: 8px;
}

.text-block__col {
  flex: 0 0 calc(80% - 8px);
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* --- Col header: icon box + title (styled like featured-cards__card-header) --- */
.text-block__col-header {
  display: flex;
  align-items: center;
  gap: 12px;
}

.text-block__col-icon {
  width: 44px;
  height: 44px;
  background-color: var(--light-bg);
  border: 1px solid var(--border-card);
  border-radius: var(--radius);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.text-block__col-icon img {
  width: 28px;
  height: 28px;
  object-fit: contain;
}

.text-block__col-header h3 {
  font-size: 17px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--dark);
}

.text-block__col > h3 {
  font-size: 17px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--dark);
}

.text-block__col-body {
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-size: 15px;
  line-height: 1.6;
  color: var(--dark);
}

.text-block + .countries-block {
	margin-top: -80px;
}
.countries-block + .steps-block {
	padding-top: 60px;
}

@media (min-width: 992px) {
  .text-block {
    padding: 80px 0;
  }

  .text-block__inner {
    gap: 40px;
  }

  .text-block__cols {
    display: grid;
    gap: 24px;
    overflow: visible;
    margin-right: 0;
    padding-right: 0;
    padding-bottom: 0;
    scroll-snap-type: none;
  }

  .text-block__cols--2 {
    grid-template-columns: repeat(2, 1fr);
  }

  .text-block__cols--3 {
    grid-template-columns: repeat(3, 1fr);
  }

  .text-block__cols--4 {
    grid-template-columns: repeat(4, 1fr);
  }

  .text-block__col {
    flex: none;
    gap: 16px;
  }

  .text-block__col-icon {
    width: 50px;
    height: 50px;
  }

  .text-block__col-icon img {
    width: 32px;
    height: 32px;
  }

  .text-block__col-header h3 {
    font-size: 19px;
  }

  .text-block__col > h3 {
    font-size: 19px;
  }

  .text-block__col-body {
    font-size: 16px;
  }
}

/* ============================================================
   ANIMACJE WEJSC
   ============================================================ */

.fade-in,
.fade-up,
.fade-left,
.fade-right {
  opacity: 0;
  transition-property: opacity, transform;
  transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
  transition-duration: 600ms;
}

.fade-in  { transform: translate3d(0, 0, 0); }
.fade-up  { transform: translate3d(0, 32px, 0); }
.fade-left  { transform: translate3d(-40px, 0, 0); }
.fade-right { transform: translate3d(40px, 0, 0); }

.fade-in.is-animated,
.fade-up.is-animated,
.fade-left.is-animated,
.fade-right.is-animated {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.fade-in[data-delay],
.fade-up[data-delay],
.fade-left[data-delay],
.fade-right[data-delay] {
  transition-delay: var(--anim-delay, 0ms);
}

@media (prefers-reduced-motion: reduce) {
  .fade-in,
  .fade-up,
  .fade-left,
  .fade-right {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* ======================================================
   COMPARISON BLOCK — tabela porownawcza
   ====================================================== */
.comparison-block {
  padding: 50px 0;
  --cmp-accent: var(--blue);
}
.comparison-block--accent-red { --cmp-accent: var(--red); }

.comparison-block__heading { margin-bottom: 28px; max-width: 760px; }

/* Etykieta tylko dla czytnikow ekranu */
.comparison-block__sr {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0);
  white-space: nowrap; border: 0;
}

.comparison-block__table-wrap { position: relative; }

.comparison-block__table {
  width: 100%;
  border-collapse: collapse;
  background: var(--white);
}
.comparison-block__table th,
.comparison-block__table td {
  padding: 16px 18px;
  text-align: center;
  vertical-align: middle;
  border-bottom: 1px solid var(--border-card);
}
.comparison-block__corner {
  background: transparent;
  border-bottom: none;
}
.comparison-block__feature {
  text-align: left;
  font-size: 15px;
  font-weight: 600;
  color: var(--dark);
}
.comparison-block__feature-text { vertical-align: middle; }

.comparison-block__colhead {
  font-size: 16px;
  font-weight: 700;
  color: var(--dark);
  vertical-align: bottom;
}
.comparison-block__col-logo { display: block; }
.comparison-block__col-logo img {
  max-height: 34px;
  width: auto;
  display: inline-block;
}
.comparison-block__colname { display: block; margin-top: 6px; }

/* Wyrozniona kolumna — tint z tokenu (fallback: jasne tlo) */
.comparison-block__colhead.is-highlighted,
.comparison-block__cell.is-highlighted {
  background: var(--light-bg);
  background: color-mix(in srgb, var(--cmp-accent) 8%, var(--white));
}
.comparison-block__colhead.is-highlighted { border-top: 3px solid var(--cmp-accent); }

.comparison-block__badge {
  display: inline-block;
  background: var(--cmp-accent);
  color: var(--white);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 3px 10px;
  border-radius: 100px;
  margin-bottom: 8px;
}

/* Znaczniki ✓ / ✗ / ~ */
.comparison-block__mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px; height: 26px;
  border-radius: 50%;
}
.comparison-block__mark svg { width: 17px; height: 17px; }
.comparison-block__mark--yes { color: var(--white); background: var(--cmp-accent); }
.comparison-block__mark--no { color: var(--dark-60); background: var(--gray-bg); }
.comparison-block__mark--partial { color: var(--white); background: var(--dark-60); }
.comparison-block__cell-text { font-size: 14px; color: var(--dark); }

/* Tooltip — dostepny hover + focus (bez JS) */
.comparison-block__tip-wrap { position: relative; display: inline-block; margin-left: 6px; vertical-align: middle; }
.comparison-block__tip {
  width: 18px; height: 18px;
  border-radius: 50%;
  border: 1px solid var(--border-card);
  background: var(--white);
  color: var(--dark-60);
  font-size: 11px; font-weight: 700; line-height: 1;
  padding: 0; cursor: help;
  transition: color var(--transition), border-color var(--transition);
}
.comparison-block__tip:hover,
.comparison-block__tip:focus-visible {
  border-color: var(--cmp-accent);
  color: var(--cmp-accent);
  outline: none;
}
.comparison-block__tip-bubble {
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  width: max-content;
  max-width: 240px;
  background: var(--dark);
  color: var(--white);
  font-size: 13px; font-weight: 400; line-height: 1.4;
  text-align: left;
  padding: 8px 12px;
  border-radius: var(--radius);
  opacity: 0; visibility: hidden;
  transition: opacity var(--transition), visibility var(--transition);
  z-index: 5;
  pointer-events: none;
}
.comparison-block__tip-wrap:hover .comparison-block__tip-bubble,
.comparison-block__tip:focus-visible + .comparison-block__tip-bubble {
  opacity: 1; visibility: visible;
}

/* Karty (mobile, tryb cards) */
.comparison-block__cards { display: none; }
.comparison-block__card {
  border: 1px solid var(--border-card);
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--white);
}
.comparison-block__card.is-highlighted {
  order: -1;
  border-color: var(--cmp-accent);
  box-shadow: 0 0 0 1px var(--cmp-accent);
}
.comparison-block__card-head {
  padding: 16px;
  text-align: center;
  border-bottom: 1px solid var(--border-card);
}
.comparison-block__card.is-highlighted .comparison-block__card-head {
  background: var(--light-bg);
  background: color-mix(in srgb, var(--cmp-accent) 8%, var(--white));
}
.comparison-block__card-head .comparison-block__col-logo img { max-height: 30px; }
.comparison-block__card-title { display: block; font-size: 17px; font-weight: 700; color: var(--dark); margin-top: 6px; }
.comparison-block__card-list { display: block; }
.comparison-block__card-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--border);
}
.comparison-block__card-row:last-child { border-bottom: none; }
.comparison-block__card-row dt { font-size: 14px; color: var(--dark); text-align: left; }
.comparison-block__card-row dd { margin: 0; }

.comparison-block__footer { margin-top: 28px; text-align: center; }

@media (max-width: 991px) {
  /* Tryb kart: chowamy tabele, pokazujemy karty */
  .comparison-block--mobile-cards .comparison-block__table-wrap { display: none; }
  .comparison-block--mobile-cards .comparison-block__cards {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }
  /* Tryb scroll: pozioma przewijalnosc + sticky kolumna cech */
  .comparison-block--mobile-scroll .comparison-block__table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .comparison-block--mobile-scroll .comparison-block__table { min-width: 560px; }
  .comparison-block--mobile-scroll .comparison-block__corner,
  .comparison-block--mobile-scroll .comparison-block__feature {
    position: sticky;
    left: 0;
    z-index: 2;
    background: var(--white);
  }
}

@media (min-width: 992px) {
  .comparison-block { padding: 80px 0; }
  .comparison-block__heading { margin-bottom: 36px; }
}

/* ======================================================
   JOURNEY BLOCK — os czasu / sciezka etapow
   ====================================================== */
.journey-block {
  padding: 50px 0;
  --jrn-accent: var(--blue);
}
.journey-block--accent-red { --jrn-accent: var(--red); }

.journey-block__heading { margin-bottom: 32px; max-width: 760px; }
.journey-block__tracks { display: flex; flex-direction: column; gap: 28px; }

.journey-block__track-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 16px;
  font-weight: 700;
  color: var(--dark);
  margin-bottom: 18px;
}
.journey-block__track.is-highlighted .journey-block__track-label { color: var(--jrn-accent); }
.journey-block__track-badge { color: var(--jrn-accent); }

/* Wyrozniona sciezka (tryb compare) */
.journey-block--compare .journey-block__track.is-highlighted {
  background: var(--light-bg);
  background: color-mix(in srgb, var(--jrn-accent) 6%, var(--white));
  border: 1px solid var(--border-card);
  border-radius: var(--radius-lg);
  padding: 24px;
}
.journey-block--compare .journey-block__track:not(.is-highlighted) .journey-block__marker {
  border-color: var(--border-card);
  color: var(--dark-60);
}

/* Lista etapow — mobile/pionowo domyslnie */
.journey-block__steps {
  list-style: none;
  margin: 0;
  padding: 0;
}
.journey-block__step {
  position: relative;
  display: flex;
  gap: 16px;
  padding-bottom: 28px;
}
.journey-block__step:last-child { padding-bottom: 0; }

.journey-block__marker {
  flex: 0 0 auto;
  width: 44px; height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--white);
  border: 2px solid var(--jrn-accent);
  color: var(--jrn-accent);
  font-family: var(--font-number);
  font-weight: 700;
  font-size: 18px;
  position: relative;
  z-index: 1;
}
.journey-block__marker img { width: 24px; height: 24px; object-fit: contain; }
.journey-block__dot { width: 12px; height: 12px; border-radius: 50%; background: var(--jrn-accent); }

/* Connector pionowy (mobile / orientacja pionowa) — laczy srodki markerow */
.journey-block--connector .journey-block__step:not(:last-child)::before {
  content: "";
  position: absolute;
  top: 22px;
  left: 21px;
  width: 2px;
  height: 100%;
  background: var(--border-card);
  z-index: 0;
}

.journey-block__time {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--jrn-accent);
  margin-bottom: 4px;
}
.journey-block__step-title { font-size: 17px; font-weight: 700; color: var(--dark); line-height: 1.3; margin-bottom: 6px; }
.journey-block__step-desc { font-size: 15px; line-height: 1.5; color: var(--dark-60); }

.journey-block__footer { margin-top: 32px; text-align: center; }

@media (min-width: 992px) {
  .journey-block { padding: 80px 0; }
  .journey-block__heading { margin-bottom: 40px; }

  /* Orientacja pozioma: etapy w rzedzie */
  .journey-block--horizontal .journey-block__steps {
    display: flex;
    flex-direction: row;
    gap: 24px;
  }
  .journey-block--horizontal .journey-block__step {
    flex: 1;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding-bottom: 0;
  }
  .journey-block--horizontal .journey-block__marker { margin-bottom: 16px; }

  /* Connector poziomy: laczy srodek markera z nastepnym (100% szerokosci kroku + gap) */
  .journey-block--horizontal.journey-block--connector .journey-block__step:not(:last-child)::before {
    top: 21px;
    left: 50%;
    width: calc(100% + 24px);
    height: 2px;
  }
}
  .journey-block--horizontal.journey-block--connector .journey-block__step:last-child::before {
	  display: none;
  }

/* ======================================================
   LOGOS BLOCK — sciana logotypow (siatka / marquee)
   ====================================================== */
.logos-block { padding: 40px 0; }
.logos-block--bg-light { background: var(--light-bg); }
.logos-block--bg-gray { background: var(--gray-bg); }

.logos-block__heading { text-align: center; margin-bottom: 28px; }

.logos-block__item {
  display: flex;
  align-items: center;
  justify-content: center;
}
.logos-block__item img {
  max-height: 48px;
  max-width: 110px;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}
.logos-block__link { display: flex; align-items: center; justify-content: center; }

/* Skala szarosci -> kolor na hover/focus */
.logos-block--grayscale .logos-block__item img {
  filter: grayscale(1);
  opacity: 0.7;
  transition: filter var(--transition), opacity var(--transition);
}
.logos-block--grayscale .logos-block__item:hover img,
.logos-block--grayscale .logos-block__link:focus-visible img {
  filter: grayscale(0);
  opacity: 1;
}

/* Siatka */
.logos-block__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px 16px;
  align-items: center;
}

/* Marquee — reuse mechanizmu z countries-block (marquee6k klonuje track) */
.logos-block__marquee { width: 100%; overflow: hidden; }
.logos-block__track,
.logos-block__track.marquee6k__copy {
  display: inline-flex !important;
  flex-direction: row;
  align-items: center;
  gap: 64px;
  padding-right: 64px;
  vertical-align: middle;
}
.logos-block__marquee .logos-block__item { flex-shrink: 0; white-space: nowrap; }

@media (min-width: 576px) {
  .logos-block__grid { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 992px) {
  .logos-block { padding: 60px 0; }
	.logos-block--per-6 .logos-block__grid {
		grid-template-columns: repeat(6, 1fr);
		margin: 10px auto;
		padding: 10px 30px;
	}
  .logos-block--per-4 .logos-block__grid { grid-template-columns: repeat(4, 1fr); }
  .logos-block--per-5 .logos-block__grid { grid-template-columns: repeat(5, 1fr); }
  .logos-block--per-6 .logos-block__grid { grid-template-columns: repeat(6, 1fr); }
}

/* Reduced motion: marquee nie startuje (JS) -> tracki zawijaja sie i sa w calosci widoczne */
@media (prefers-reduced-motion: reduce) {
  .logos-block__track {
    flex-wrap: wrap;
    justify-content: center;
    gap: 32px;
    padding-right: 0;
  }
  .countries-block { height: auto; padding: 24px 0; }
  .countries-block__track {
    flex-wrap: wrap;
    justify-content: center;
    gap: 32px;
    padding-right: 0;
  }
}

/* ======================================================
   PROOF BLOCK — korzysc + dowod
   ====================================================== */
.proof-block {
  padding: 50px 0;
  --pf-accent: var(--blue);
}
.proof-block--bg-light { background: var(--light-bg); }
.proof-block--bg-blue { background: var(--blue); color: #fff; }
.proof-block--bg-blue .proof-block__title,
.proof-block--bg-blue .proof-block__proof,
.proof-block--bg-blue .proof-block__metric,
.proof-block--bg-blue .proof-block__link,
.proof-block--bg-blue h1,
.proof-block--bg-blue h2,
.proof-block--bg-blue h3,
.proof-block--bg-blue p { color: #fff; }
.proof-block--bg-blue .proof-block__proof { color: rgba(255, 255, 255, 0.8); }
.proof-block--bg-blue .eyebrow__text { color: rgba(255, 255, 255, 0.6); }
.proof-block--bg-blue .eyebrow__line { background-color: rgba(255, 255, 255, 0.3); }

.proof-block__heading { text-align: center; max-width: 760px; margin: 0 auto 32px; }
.logos-block hr.eyebrow__line,
.proof-block hr.eyebrow__line {
    margin: 0 auto 0px;
}
.proof-block__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

.proof-block__card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  padding: 28px 24px;
  height: 100%;
}
.proof-block--style-card .proof-block__card {
  background: var(--white);
  border: 1px solid var(--border-card);
  border-radius: var(--radius-lg);
}
.proof-block--style-minimal .proof-block__card { padding: 20px 0; }
/* Karta na niebieskim tle: przezroczysta, tekst bialy */
.proof-block--bg-blue.proof-block--style-card .proof-block__card {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.2);
}

.proof-block__icon img { width: 40px; height: 40px; object-fit: contain; }

.proof-block__metric-wrap { line-height: 1; }
.proof-block__metric {
  font-family: var(--font-number);
  font-size: 44px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -1px;
  color: var(--pf-accent);
  white-space: nowrap;
  display: inline-block;
}
.proof-block__suffix { font-size: 0.6em; margin-left: 2px; }

.proof-block__title { font-size: 18px; font-weight: 700; color: var(--dark); line-height: 1.3; }
.proof-block__proof { font-size: 14px; line-height: 1.5; color: var(--dark-60); }
.proof-block__link {
  margin-top: auto;
  color: var(--pf-accent);
  font-weight: 600;
  font-size: 14px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.proof-block__link:hover { text-decoration: underline; }

.proof-block__footer {
  margin-top: 32px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
}

@media (min-width: 576px) {
  .proof-block__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 992px) {
  .proof-block { padding: 80px 0; }
  .proof-block__heading { margin-bottom: 40px; }
  .proof-block__grid { gap: 24px; }
  .proof-block--cols-2 .proof-block__grid { grid-template-columns: repeat(2, 1fr); }
  .proof-block--cols-3 .proof-block__grid { grid-template-columns: repeat(3, 1fr); }
  .proof-block--cols-4 .proof-block__grid { grid-template-columns: repeat(4, 1fr); }
  .proof-block__metric { font-size: 52px; }
}


