.elementor-12290 .elementor-element.elementor-element-579a535{--display:flex;}.elementor-12290 .elementor-element.elementor-element-bee552f{margin:127px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}@media(max-width:767px){.elementor-12290 .elementor-element.elementor-element-9187b16{margin:-132px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-12290 .elementor-element.elementor-element-bee552f{margin:-33px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-12290 .elementor-element.elementor-element-b4ca585{margin:-27px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}}/* Start custom CSS for html, class: .elementor-element-9ac64e6 */.case-study-noir {
  background: #000;
  color: #f4f4ee;
  padding: 170px 6%;
  font-family: 'Inter Tight', sans-serif;
}

.case-inner {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 120px;
  align-items: center;
}

/* TYTUŁ */
.case-title {
  font-family: 'Bebas Neue', sans-serif;
  font-size: clamp(46px, 6vw, 90px);
  letter-spacing: 3px;
  margin-bottom: 40px;
}

/* OPIS */
.case-description {
  font-size: 17px;
  line-height: 1.85;
  max-width: 520px;
  margin-bottom: 80px;
  color: #eaeae2;
}

/* META */
.case-meta {
  display: flex;
  flex-direction: column;
}

.meta-item {
  padding-bottom: 22px;
  margin-bottom: 22px;
  border-bottom: 1px solid rgba(244, 244, 238, 0.18);
}

.meta-label {
  display: block;
  font-size: 11px;
  letter-spacing: 2.5px;
  opacity: 0.55;
  margin-bottom: 6px;
}

.meta-value {
  font-size: 14px;
  letter-spacing: 0.4px;
  opacity: 0.95;
  max-width: 460px;
}

/* subtelne podbicie typu projektu */
.meta-item.highlight {
  border-bottom-color: rgba(244, 244, 238, 0.35);
}

.meta-item.highlight .meta-label {
  opacity: 0.75;
}

.meta-item.highlight .meta-value {
  font-weight: 500;
}

/* ZDJĘCIE — ZAWSZE PROSTOKĄT */
.case-image {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 5; /* elegancki pion */
  overflow: hidden;
}

.case-image img {
  width: 100%;
  height: 100%;
  object-fit: cover; /* DOPASOWUJE KAŻDE ZDJĘCIE */
  display: block;
  filter: contrast(1.08) brightness(0.92);
  transition: transform 1s ease;
}

.case-image:hover img {
  transform: scale(1.03);
}

/* MOBILE */
@media (max-width: 900px) {
  .case-inner {
    grid-template-columns: 1fr;
    gap: 90px;
  }

  .case-study-noir {
    padding: 120px 6%;
  }

  .case-image {
    aspect-ratio: 3 / 4;
  }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-9187b16 */.korai-noir {
  position: relative;
  background-color: #000;
  color: #e8e6e3;
  padding: clamp(90px, 12vw, 160px) 6vw;
  display: flex;
  justify-content: flex-end;
  overflow: hidden;
}

/* CONTENT */
.korai-noir-inner {
  max-width: 960px;
  width: 100%;
  position: relative;
  z-index: 2;
}

/* EYEBROW */
.korai-noir-eyebrow {
  font-size: 11px;
  letter-spacing: 0.35em;
  text-transform: uppercase;
  color: rgba(232, 230, 227, 0.5);
  margin-bottom: 28px;
  text-align: center;
}

/* TITLE */
.korai-noir-title {
  font-size: clamp(30px, 4vw, 46px);
  font-weight: 400;
  line-height: 1.25;
  margin: 0 auto 56px;
  max-width: 760px;
  text-align: center;
}

/* TEXT */
.korai-noir-text {
  display: flex;
  flex-direction: column;
  gap: 34px;
  max-width: 680px;
  margin: 0 auto;
  text-align: left;
}

.korai-noir-text p {
  font-size: 16px;
  line-height: 1.9;
  color: rgba(232, 230, 227, 0.85);
}

/* DESKTOP TYPO */
@media (min-width: 900px) {
  .korai-noir-text p {
    font-size: 17px;
  }

  .korai-noir-text {
    gap: 38px;
  }
}

/* ========================= */
/* ZDJĘCIE NOIR – LEWA STRONA */
/* ========================= */

@media (min-width: 900px) {

  .korai-noir {
    justify-content: flex-end;
  }

  .korai-noir-inner {
    margin-right: 6vw;
  }

  .korai-noir-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 45%;
    height: 100%;
    z-index: 1;
    overflow: hidden;
  }

  .korai-noir-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(0.48) contrast(1.05);
  }

  /* gradient w stronę treści */
  .korai-noir-image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
      to right,
      rgba(0,0,0,0.15),
      rgba(0,0,0,0.88)
    );
    z-index: 2;
  }
}

/* MOBILE – ZDJĘCIE ZNIKA, UKŁAD JAK BYŁ */
@media (max-width: 899px) {
  .korai-noir-image {
    display: none;
  }
}
@media (min-width: 900px) {
  .korai-noir::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
    pointer-events: none;
    z-index: 3;
  }
}
@media (min-width: 900px) {
  .korai-noir-image img {
    animation: noirDrift 28s ease-in-out infinite alternate;
  }

  @keyframes noirDrift {
    0% {
      transform: scale(1.05) translateY(0);
    }
    100% {
      transform: scale(1.08) translateY(-18px);
    }
  }
@media (min-width: 900px) {
  .korai-noir-inner {
    padding-left: clamp(72px, 7vw, 120px);
  }
}


@media (min-width: 900px) {
  .korai-noir-image {
    transform: translateX(24px);
  }
}
@media (min-width: 900px) {
  .korai-noir-image::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(
      ellipse at 50% 50%,
      rgba(255,255,255,0.06) 0%,
      rgba(255,255,255,0.03) 35%,
      rgba(0,0,0,0) 65%
    );
    z-index: 3;
    pointer-events: none;
  }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-bee552f *//* ========================= */
/* SEKCJA – CZYSTE NOIR */
/* ========================= */

.noir-duo-images {
  background: #000;
  width: 100%;
  display: flex;
  justify-content: center;
  overflow: hidden;
}

/* ========================= */
/* WRAPPER */
/* ========================= */

.noir-duo-inner {
  display: flex;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  gap: 48px;
}

/* ========================= */
/* POJEDYNCZE ZDJĘCIE */
/* ========================= */

.noir-image {
  flex: 1;
  position: relative;
  overflow: hidden;
  background: #000;
  display: flex;
  align-items: flex-start;
  justify-content: center;
}

.noir-image img {
  width: 100%;
  height: auto;                 /* 🔥 kluczowe – brak ucinania */
  object-fit: contain;          /* 🔥 pełne proporcje */
  display: block;
  background: #000;             /* czarne pole jeśli proporcja inna */
}

/* ========================= */
/* DESKTOP */
/* ========================= */

@media (min-width: 900px) {

  .noir-duo-images {
    padding: 90px 0;
  }

  .noir-duo-inner {
    align-items: flex-start;    /* oba startują równo od góry */
  }

  /* rozsunięcie na boki */
  .noir-image:first-child {
    margin-left: -48px;
  }

  .noir-image:last-child {
    margin-right: -48px;
  }
}

/* ========================= */
/* MOBILE */
/* ========================= */

@media (max-width: 899px) {

  .noir-duo-images {
    padding: 56px 0;
  }

  .noir-duo-inner {
    flex-direction: column;
    max-width: 92%;
    gap: 24px;
  }

  /* dolne zdjęcie – delikatnie mniejsze */
  .noir-image:last-child img {
    width: 90%;
    margin: 0 auto;
  }
}
/* DELIKATNE PRZYCIEMNIENIE PRAWEGO ZDJĘCIA – WSZYSTKIE BREAKPOINTY */
.noir-image:last-child::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: rgba(0, 0, 0, 0.18);
}
/* ========================= */
/* SCROLL ANIMATION – NOIR */
/* ========================= */

.noir-image {
  opacity: 0;
  will-change: transform, opacity;
  transition:
    transform 1.2s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.9s ease;
}

/* DESKTOP – WJAZD Z BOKÓW */
@media (min-width: 900px) {
  .noir-left {
    transform: translateX(-90px);
  }

  .noir-right {
    transform: translateX(90px);
  }
}

/* MOBILE – SPOKOJNY FADE UP */
@media (max-width: 899px) {
  .noir-left,
  .noir-right {
    transform: translateY(36px);
  }
}

/* STAN POJAWIENIA */
.noir-image.is-visible {
  opacity: 1;
  transform: translate(0, 0);
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-19e7ab6 *//* ========================= */
/* NOIR COPY – TEXT ONLY */
/* ========================= */

.korai-noir.korai-noir--copy {
  background-color: #000;
  color: #e8e6e3;
  display: flex;
  justify-content: center;
  position: relative;
  overflow: hidden;
}

/* INNER */
.korai-noir.korai-noir--copy .korai-noir-inner {
  width: 100%;
  max-width: 960px;
  position: relative;
  z-index: 2;
  box-sizing: border-box;
}

/* NAGŁÓWEK „LOGO” */
.korai-noir.korai-noir--copy .korai-noir-eyebrow {
  font-size: clamp(26px, 4vw, 38px);
  font-weight: 400;
  letter-spacing: 0.02em;
  text-transform: none;
  color: #ffffff;
  margin: 0 auto 44px;
  text-align: center;
  max-width: 680px;
}

/* TEKST */
.korai-noir.korai-noir--copy .korai-noir-text {
  max-width: 680px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 34px;
  text-align: left;
}

.korai-noir.korai-noir--copy .korai-noir-text p {
  font-size: 16px;
  line-height: 1.9;
  color: rgba(232, 230, 227, 0.88);
}

/* DESKTOP */
@media (min-width: 900px) {
  .korai-noir.korai-noir--copy .korai-noir-text p {
    font-size: 17px;
  }

  .korai-noir.korai-noir--copy .korai-noir-text {
    gap: 38px;
  }
}

/* ========================= */
/* MOBILE – PEWNY FIX */
/* ========================= */

@media (max-width: 899px) {

  /* ⬇️ TO JEST KLUCZ */
  .korai-noir.korai-noir--copy .korai-noir-inner {
    padding-left: 8vw !important;
    padding-right: 8vw !important;
  }

}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-3508e34 *//* ========================= */
/* SEKCJA – NOIR PAIR (FIXED) */
/* ========================= */

.noir-pair-images {
  background: #000;
  width: 100%;
  display: flex;
  justify-content: center;
  overflow: hidden; /* trzyma wszystko w sekcji */
  box-sizing: border-box;
}

.noir-pair-images,
.noir-pair-images * {
  box-sizing: border-box; /* ważne przy paddingach i subpixelach */
}

/* WRAPPER */
.noir-pair-inner {
  width: 100%;
  max-width: 1200px;
  display: flex;
  gap: 48px;
  margin: 0 auto;
  align-items: flex-start;
}

/* ITEM */
.noir-pair-item {
  flex: 1;
  position: relative;
  overflow: hidden;
  background: #000;
}

/* OBRAZ – PIONOWY KADR */
.noir-pair-item img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  max-width: 100%;
}

/* ========================= */
/* DESKTOP */
/* ========================= */
@media (min-width: 900px) {

  .noir-pair-images {
    padding: 120px 0; /* finalowa wersja */
  }

  .noir-pair-inner {
    max-width: 1400px;
    gap: 64px;
  }

  .noir-pair-item {
    height: 880px;
  }

  .noir-pair-item img {
    transform: scale(1.04);
    transition: transform 0.6s ease;
  }
}

/* ========================= */
/* MOBILE (NO HORIZONTAL SCROLL) */
/* ========================= */
@media (max-width: 899px) {

  /* sekcja nigdy nie przekroczy viewportu */
  .noir-pair-images {
    padding: 56px 0;
    width: 100%;
    max-width: 100%;
    overflow-x: clip; /* lepsze niż hidden (tam gdzie wspierane) */
  }

  /* NAJWAŻNIEJSZE: wyłączamy flex + gap */
  .noir-pair-inner {
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0 16px;
  }

  .noir-pair-item {
    width: 100%;
    max-width: 100%;
    height: 620px;
    margin: 0 0 24px 0; /* zamiast gap */
  }

  .noir-pair-item:last-child {
    margin-bottom: 0;
  }

  /* obraz nie może robić “wycieku” przez transform/subpixele */
  .noir-pair-item img {
    transform: none !important;
    width: 100%;
    max-width: 100%;
  }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-63aa113 *//* ========================= */
/* NOIR DUO – STABLE VERSION */
/* ========================= */

.noir-duo-section {
  background: #000;
  padding: 120px 0;
  width: 100%;
  overflow: hidden;
}

.noir-duo-section,
.noir-duo-section * {
  box-sizing: border-box;
}

/* ========================= */
/* DESKTOP – 2 OBOK SIEBIE */
/* ========================= */

.noir-duo-inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  gap: 32px;
}

.noir-duo-item {
  flex: 1;
  overflow: hidden;
  background: #000;
}

.noir-duo-item img {
  width: 100%;
  height: auto;              /* ⬅️ naturalna proporcja */
  display: block;
}

/* ========================= */
/* MOBILE – JEDNO POD DRUGIM */
/* ========================= */

@media (max-width: 899px) {

  .noir-duo-section {
    padding: 64px 0;
  }

  .noir-duo-inner {
    display: block;          /* ⬅️ koniec flexa */
    padding: 0 16px;
  }

  .noir-duo-item {
    width: 100%;
    margin-bottom: 24px;
  }

  .noir-duo-item:last-child {
    margin-bottom: 0;
  }

  .noir-duo-item img {
    width: 100%;
    height: auto;            /* ⬅️ pełne zdjęcie */
  }
}
@media (min-width: 900px) {

  .noir-duo-inner:hover .noir-duo-item {
    flex: 0.9;
    transition: flex 0.6s ease;
  }

  .noir-duo-item:hover {
    flex: 1.1;
  }

  .noir-duo-item img {
    transition: transform 0.6s ease;
  }

  .noir-duo-item:hover img {
    transform: scale(1.04);
  }
}
/* ========================= */
/* NOIR – SIDE STATEMENT TEXT */
/* ========================= */

@media (min-width: 900px) {

  .noir-duo-section {
    position: relative;
  }

  .noir-side-text {
    position: absolute;
    top: 50%;
    transform: translateY(-50%) rotate(-90deg);
    transform-origin: center;
    font-family: 'Bebas Neue', sans-serif; /* albo Twój headline font */
    font-size: clamp(48px, 6vw, 96px);
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.12);
    pointer-events: none;
    white-space: nowrap;
  }

  /* LEWA STRONA */
  .noir-side-text.left {
    left: -120px; /* ⬅️ WYJDZIE POZA CONTENT */
  }

  /* PRAWA STRONA */
  .noir-side-text.right {
    right: -120px;
    transform: translateY(-50%) rotate(90deg);
  }
}
/* ========================= */
/* MOBILE – SUBTLE SPACE BETWEEN IMAGES */
/* ========================= */

@media (max-width: 899px) {

  .noir-duo-item {
    margin-bottom: 12px; /* ⬅️ delikatna przerwa */
  }

  .noir-duo-item:last-child {
    margin-bottom: 0;
  }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-b4ca585 *//* ========================= */
/* SEKCJA – NOIR SINGLE */
/* ========================= */

.noir-duo-images {
  background: #000;
  width: 100%;
  display: flex;
  justify-content: center;
  overflow: hidden;
}

/* WRAPPER */
.noir-duo-inner {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}

/* OBRAZ */
.noir-image {
  position: relative;
  overflow: hidden;
  background: #000;

  /* animacja */
  opacity: 0;
  will-change: transform, opacity;
  transition:
    transform 1.2s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.9s ease;
}

.noir-image img {
  width: 100%;
  height: auto;               /* brak ucinania */
  display: block;
  object-fit: contain;        /* pełne proporcje */
  background: #000;
}

/* DESKTOP */
@media (min-width: 900px) {

  .noir-duo-images {
    padding: 90px 0;
  }

  .noir-image {
    transform: translateX(-90px); /* wjazd z lewej */
  }
}

/* MOBILE */
@media (max-width: 899px) {

  .noir-duo-images {
    padding: 56px 0;
  }

  .noir-duo-inner {
    max-width: 92%;
  }

  .noir-image {
    transform: translateY(36px);  /* spokojny reveal */
  }
}

/* STAN POJAWIENIA */
.noir-image.is-visible {
  opacity: 1;
  transform: translate(0, 0);
}/* End custom CSS */