/* FlizPol — portfolio premium. Moduł ładowany wyłącznie na realizacje.html. */
body.fp-page-sub .fp-portfolio {
  --fp-portfolio-ink: #211b14;
  --fp-portfolio-muted: #6f6558;
  --fp-portfolio-line: rgba(112, 82, 43, .18);
  --fp-portfolio-gold: #b58442;
  --fp-portfolio-gold-dark: #805822;
  --fp-portfolio-paper: #fbf7ef;
  color: var(--fp-portfolio-ink);
}

body.fp-page-sub .fp-portfolio-story {
  position: relative;
  overflow: hidden;
  padding-block: clamp(68px, 8vw, 118px);
  background:
    radial-gradient(circle at 88% 8%, rgba(190, 145, 78, .17), transparent 31rem),
    linear-gradient(145deg, #f7efe2 0%, #fffaf2 48%, #efe0ca 100%);
}

body.fp-page-sub .fp-portfolio-story::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .32;
  background-image:
    linear-gradient(rgba(134, 99, 49, .08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(134, 99, 49, .08) 1px, transparent 1px);
  background-size: 76px 76px;
  mask-image: linear-gradient(to bottom, transparent, #000 24%, #000 76%, transparent);
}

body.fp-page-sub .fp-portfolio-story > .wrap {
  position: relative;
}

body.fp-page-sub .fp-portfolio-story__intro {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(260px, .8fr);
  gap: clamp(28px, 6vw, 88px);
  align-items: end;
  margin-bottom: clamp(30px, 5vw, 58px);
}

body.fp-page-sub .fp-portfolio-story__intro h2,
body.fp-page-sub .fp-portfolio-catalog h2 {
  max-width: 820px;
  margin: 0;
  color: var(--fp-portfolio-ink);
  text-wrap: balance;
}

body.fp-page-sub .fp-portfolio-story__intro h2 {
  font-size: clamp(2rem, 4.2vw, 4.35rem);
  line-height: .98;
  letter-spacing: -.045em;
}

body.fp-page-sub .fp-portfolio-story__copy {
  margin: 0;
  padding-left: 22px;
  border-left: 1px solid var(--fp-portfolio-gold);
  color: var(--fp-portfolio-muted);
  font-size: clamp(1rem, 1.3vw, 1.12rem);
  line-height: 1.75;
}

body.fp-page-sub .fp-portfolio-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start;
  gap: clamp(14px, 2vw, 26px);
}

body.fp-page-sub .fp-portfolio-story__grid {
  align-items: stretch;
}

body.fp-page-sub .fp-portfolio-card {
  position: relative;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--fp-portfolio-line);
  border-radius: clamp(20px, 2vw, 30px);
  background: var(--fp-portfolio-paper);
  box-shadow: 0 24px 68px rgba(53, 39, 22, .14);
  isolation: isolate;
}

body.fp-page-sub .fp-portfolio-card > :is(img, video),
body.fp-page-sub .fp-portfolio-card__media > :is(img, video) {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: var(--fp-portfolio-media-ratio, 4 / 5);
  object-fit: cover;
  object-position: center;
  background: #d8d0c4;
  transition: transform .65s cubic-bezier(.2, .75, .25, 1), filter .65s ease;
}

body.fp-page-sub .fp-portfolio-card:hover > img,
body.fp-page-sub .fp-portfolio-card:hover .fp-portfolio-card__media > img {
  transform: scale(1.018);
  filter: saturate(1.03) contrast(1.015);
}

body.fp-page-sub .fp-portfolio-card figcaption {
  position: relative;
  display: grid;
  gap: 7px;
  min-height: 116px;
  padding: 19px 20px 21px;
  color: var(--fp-portfolio-ink);
  background: rgba(255, 251, 244, .98);
}

body.fp-page-sub .fp-portfolio-card__label {
  color: #93672f;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .14em;
  line-height: 1.35;
  text-transform: uppercase;
}

body.fp-page-sub .fp-portfolio-card figcaption strong {
  color: var(--fp-portfolio-ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.05rem, 1.5vw, 1.3rem);
  line-height: 1.25;
}

body.fp-page-sub .fp-portfolio-card__description {
  color: var(--fp-portfolio-muted);
  font-size: .9rem;
  line-height: 1.55;
}

body.fp-page-sub .fp-portfolio-card--featured:nth-child(2) {
  margin-top: clamp(0px, 2.2vw, 28px);
}

body.fp-page-sub .fp-portfolio-card--featured:nth-child(3) {
  margin-top: clamp(0px, 4.4vw, 56px);
}

body.fp-page-sub .fp-portfolio-story__proof {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  margin-top: clamp(50px, 7vw, 92px);
  padding: clamp(22px, 3vw, 32px);
  border: 1px solid var(--fp-portfolio-line);
  border-radius: 22px;
  background: rgba(255, 251, 244, .72);
  backdrop-filter: blur(8px);
}

body.fp-page-sub .fp-portfolio-story__proof p {
  max-width: 720px;
  margin: 0;
  color: var(--fp-portfolio-muted);
  line-height: 1.7;
}

body.fp-page-sub .fp-portfolio-story__proof strong {
  display: block;
  margin-bottom: 4px;
  color: var(--fp-portfolio-ink);
}

body.fp-page-sub .fp-portfolio-catalog {
  position: relative;
  overflow: hidden;
  padding-block: clamp(70px, 9vw, 124px);
  background:
    radial-gradient(circle at 6% 0%, rgba(255, 255, 255, .8), transparent 34rem),
    linear-gradient(180deg, #f5eee2 0%, #eee4d5 100%);
}

body.fp-page-sub .fp-portfolio-catalog::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .22;
  background-image: radial-gradient(rgba(91, 66, 34, .2) .65px, transparent .65px);
  background-size: 7px 7px;
}

body.fp-page-sub .fp-portfolio-catalog > .wrap {
  position: relative;
}

body.fp-page-sub .fp-portfolio-catalog__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(28px, 6vw, 86px);
  align-items: end;
  margin-bottom: clamp(30px, 5vw, 54px);
}

body.fp-page-sub .fp-portfolio-catalog__head > div {
  max-width: 820px;
}

body.fp-page-sub .fp-portfolio-catalog__head h2 {
  font-size: clamp(2rem, 3.8vw, 3.85rem);
  line-height: 1.01;
  letter-spacing: -.042em;
}

body.fp-page-sub .fp-portfolio-catalog__head > div > p:last-child {
  max-width: 690px;
  margin: 22px 0 0;
  color: var(--fp-portfolio-muted);
  line-height: 1.75;
}

body.fp-page-sub .fp-portfolio-count {
  display: grid;
  min-width: 148px;
  margin: 0;
  padding: 20px 24px;
  border: 1px solid rgba(143, 101, 47, .24);
  border-radius: 24px;
  color: var(--fp-portfolio-muted);
  background: rgba(255, 251, 244, .72);
  box-shadow: 0 18px 45px rgba(64, 45, 22, .09);
  text-align: center;
  backdrop-filter: blur(8px);
}

body.fp-page-sub .fp-portfolio-count strong {
  color: var(--fp-portfolio-ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2rem, 3vw, 3rem);
  font-weight: 500;
  line-height: 1;
}

body.fp-page-sub .fp-portfolio-count span {
  margin-top: 5px;
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}

body.fp-page-sub .fp-portfolio-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 18px 30px;
  margin-bottom: clamp(28px, 4vw, 44px);
  padding: 13px;
  border: 1px solid rgba(112, 82, 43, .14);
  border-radius: 22px;
  background: rgba(255, 252, 246, .72);
  box-shadow: 0 16px 42px rgba(58, 41, 20, .07);
  backdrop-filter: blur(10px);
}

body.fp-page-sub .fp-portfolio-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

body.fp-page-sub .fp-portfolio-filter {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: 9px;
  padding: 9px 15px;
  border: 1px solid transparent;
  border-radius: 14px;
  color: #554a3c;
  background: transparent;
  font: inherit;
  font-size: .9rem;
  font-weight: 750;
  cursor: pointer;
  transition: border-color .22s ease, color .22s ease, background .22s ease, transform .22s ease;
}

body.fp-page-sub .fp-portfolio-filter:hover {
  border-color: rgba(143, 101, 47, .22);
  color: var(--fp-portfolio-ink);
  background: rgba(255, 255, 255, .72);
}

body.fp-page-sub .fp-portfolio-filter.is-active {
  border-color: rgba(127, 86, 31, .42);
  color: #fffaf2;
  background: linear-gradient(135deg, #9a6b2d, #bc8b48);
  box-shadow: 0 9px 24px rgba(127, 86, 31, .2);
}

body.fp-page-sub .fp-portfolio-filter__count {
  display: inline-grid;
  min-width: 23px;
  min-height: 23px;
  place-items: center;
  padding-inline: 6px;
  border-radius: 999px;
  color: inherit;
  background: rgba(104, 79, 46, .1);
  font-size: .72rem;
  line-height: 1;
}

body.fp-page-sub .fp-portfolio-filter.is-active .fp-portfolio-filter__count {
  background: rgba(255, 255, 255, .18);
}

body.fp-page-sub .fp-portfolio-status {
  margin: 0 7px 0 auto;
  color: var(--fp-portfolio-muted);
  font-size: .85rem;
}

body.fp-page-sub .fp-portfolio-archive__grid {
  align-items: start;
}

body.fp-page-sub .fp-portfolio-archive__grid .fp-portfolio-card {
  align-self: start;
  border-radius: 22px;
  box-shadow: 0 17px 48px rgba(53, 39, 22, .12);
  transition: transform .35s cubic-bezier(.2, .75, .25, 1), box-shadow .35s ease, border-color .35s ease;
}

body.fp-page-sub .fp-portfolio-archive__grid .fp-portfolio-card:hover {
  transform: translateY(-5px);
  border-color: rgba(153, 107, 45, .34);
  box-shadow: 0 27px 60px rgba(53, 39, 22, .18);
}

body.fp-page-sub .fp-portfolio-archive__grid .fp-portfolio-card--featured-archive {
  border-color: rgba(168, 116, 48, .48);
  box-shadow: 0 22px 58px rgba(116, 78, 28, .2);
}

body.fp-page-sub .fp-portfolio-archive__grid .fp-portfolio-card--featured-archive::before {
  content: "Wyróżniona";
  position: absolute;
  z-index: 2;
  top: 14px;
  left: 14px;
  padding: 7px 10px;
  border: 1px solid rgba(255, 255, 255, .52);
  border-radius: 999px;
  color: #fffaf1;
  background: rgba(133, 88, 31, .84);
  box-shadow: 0 8px 22px rgba(35, 24, 12, .18);
  font-size: .64rem;
  font-weight: 800;
  letter-spacing: .12em;
  line-height: 1;
  text-transform: uppercase;
  backdrop-filter: blur(7px);
}

body.fp-page-sub .fp-portfolio-card__media {
  position: relative;
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 0;
  color: inherit;
  background: #d8d0c4;
  cursor: zoom-in;
}

body.fp-page-sub .fp-portfolio-card__media-icon {
  position: absolute;
  right: 14px;
  bottom: 14px;
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .62);
  border-radius: 50%;
  color: #fff;
  background: rgba(25, 21, 16, .66);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .22);
  font-family: Arial, sans-serif;
  font-size: 1.45rem;
  font-weight: 300;
  line-height: 1;
  backdrop-filter: blur(7px);
  transition: transform .3s ease, background .3s ease;
}

body.fp-page-sub .fp-portfolio-card__media-icon.is-video {
  padding-left: 3px;
  font-size: .95rem;
}

body.fp-page-sub .fp-portfolio-card__media:hover .fp-portfolio-card__media-icon {
  transform: scale(1.08);
  background: rgba(135, 91, 33, .88);
}

body.fp-page-sub .fp-portfolio-archive__grid .fp-portfolio-card figcaption {
  min-height: 0;
  padding: 18px 19px 21px;
}

body.fp-page-sub .fp-portfolio-card--progress .fp-portfolio-card__label {
  color: #756855;
}

body.fp-page-sub .fp-portfolio-card--progress .fp-portfolio-card__media > img {
  filter: saturate(.88);
}

body.fp-page-sub .fp-portfolio-empty {
  margin: 20px 0 0;
  padding: 34px;
  border: 1px dashed rgba(112, 82, 43, .28);
  border-radius: 20px;
  color: var(--fp-portfolio-muted);
  background: rgba(255, 251, 244, .54);
  text-align: center;
}

body.fp-page-sub .fp-portfolio-more {
  display: flex;
  justify-content: center;
  margin-top: clamp(30px, 5vw, 52px);
}

body.fp-page-sub .fp-portfolio-more__button {
  min-width: min(100%, 230px);
}

body.fp-page-sub .fp-portfolio [hidden],
.fp-portfolio-lightbox[hidden] {
  display: none !important;
}

body.fp-portfolio-lightbox-open {
  overflow: hidden;
}

.fp-portfolio-lightbox {
  position: fixed;
  z-index: 10050;
  inset: 0;
  display: grid;
  place-items: center;
  padding: clamp(12px, 3vw, 38px);
  overflow: auto;
  opacity: 0;
  color: #f9f4eb;
  background: rgba(15, 13, 11, .88);
  backdrop-filter: blur(14px);
  transition: opacity .18s ease;
}

.fp-portfolio-lightbox.is-open {
  opacity: 1;
}

.fp-portfolio-lightbox__panel {
  position: relative;
  display: grid;
  width: min(1380px, 100%);
  max-height: min(900px, 92vh);
  grid-template-columns: minmax(0, 1fr) minmax(285px, 370px);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .17);
  border-radius: clamp(18px, 2vw, 28px);
  background: #15120f;
  box-shadow: 0 40px 120px rgba(0, 0, 0, .52);
  transform: translateY(10px) scale(.985);
  transition: transform .22s cubic-bezier(.2, .75, .25, 1);
}

.fp-portfolio-lightbox.is-open .fp-portfolio-lightbox__panel {
  transform: none;
}

.fp-portfolio-lightbox__media {
  display: grid;
  min-height: min(72vh, 760px);
  place-items: center;
  overflow: hidden;
  background:
    radial-gradient(circle at center, rgba(255, 255, 255, .065), transparent 45%),
    #0d0c0a;
  touch-action: pan-y;
}

.fp-portfolio-lightbox__media > :is(img, video) {
  display: block;
  max-width: 100%;
  max-height: min(86vh, 850px);
  width: auto;
  height: auto;
  object-fit: contain;
}

.fp-portfolio-lightbox__caption {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  padding: clamp(32px, 4vw, 58px) clamp(24px, 3vw, 42px);
  overflow: auto;
  color: #282119;
  background:
    radial-gradient(circle at 100% 0%, rgba(184, 136, 70, .16), transparent 19rem),
    #fbf6ed;
}

.fp-portfolio-lightbox__caption h2 {
  margin: 12px 0 0;
  color: #241d16;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.6rem, 3vw, 2.75rem);
  font-weight: 500;
  line-height: 1.06;
  letter-spacing: -.035em;
  text-wrap: balance;
}

.fp-portfolio-lightbox__description {
  margin: 20px 0 0;
  color: #6d6254;
  font-size: .98rem;
  line-height: 1.7;
}

.fp-portfolio-lightbox__counter {
  margin: auto 0 0;
  padding-top: 36px;
  color: #8b7c68;
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.fp-portfolio-lightbox__close,
.fp-portfolio-lightbox__nav {
  position: absolute;
  z-index: 3;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .35);
  border-radius: 50%;
  color: #fff;
  background: rgba(17, 14, 11, .64);
  box-shadow: 0 9px 28px rgba(0, 0, 0, .24);
  cursor: pointer;
  backdrop-filter: blur(8px);
  transition: transform .22s ease, background .22s ease, opacity .22s ease;
}

.fp-portfolio-lightbox__close:hover,
.fp-portfolio-lightbox__nav:hover:not(:disabled) {
  transform: scale(1.07);
  background: rgba(159, 109, 43, .9);
}

.fp-portfolio-lightbox__close {
  top: 16px;
  right: 16px;
  width: 46px;
  height: 46px;
  font-size: 1.85rem;
  font-weight: 200;
  line-height: 1;
}

.fp-portfolio-lightbox__nav {
  top: 50%;
  width: 50px;
  height: 50px;
  margin-top: -25px;
  font-size: 2rem;
  line-height: 1;
}

.fp-portfolio-lightbox__nav.is-previous {
  left: 16px;
}

.fp-portfolio-lightbox__nav.is-next {
  right: 386px;
}

.fp-portfolio-lightbox__nav:disabled {
  opacity: .25;
  cursor: default;
}

body.fp-page-sub .fp-portfolio :is(button, a):focus-visible,
.fp-portfolio-lightbox :is(button, video):focus-visible {
  outline: 3px solid #e7b867;
  outline-offset: 3px;
}

@media (max-width: 1020px) {
  .fp-portfolio-lightbox__panel {
    grid-template-columns: minmax(0, 1fr) minmax(270px, 33vw);
  }

  .fp-portfolio-lightbox__nav.is-next {
    right: calc(33vw + 16px);
  }
}

@media (max-width: 980px) {
  body.fp-page-sub .fp-portfolio-story__intro,
  body.fp-page-sub .fp-portfolio-catalog__head {
    grid-template-columns: 1fr;
  }

  body.fp-page-sub .fp-portfolio-count {
    min-width: 132px;
    justify-self: start;
  }
}

@media (max-width: 860px) {
  body.fp-page-sub .fp-portfolio-archive__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .fp-portfolio-lightbox__panel {
    max-height: none;
    grid-template-columns: 1fr;
  }

  .fp-portfolio-lightbox__media {
    min-height: min(62vh, 620px);
  }

  .fp-portfolio-lightbox__media > :is(img, video) {
    max-height: 68vh;
  }

  .fp-portfolio-lightbox__caption {
    max-height: 30vh;
    justify-content: flex-start;
  }

  .fp-portfolio-lightbox__nav.is-next {
    right: 16px;
  }
}

@media (max-width: 740px) {
  body.fp-page-sub .fp-portfolio-story__grid {
    grid-template-columns: 1fr;
  }

  body.fp-page-sub .fp-portfolio-card--featured:nth-child(2),
  body.fp-page-sub .fp-portfolio-card--featured:nth-child(3) {
    margin-top: 0;
  }
}

@media (max-width: 640px) {
  body.fp-page-sub .fp-portfolio-story,
  body.fp-page-sub .fp-portfolio-catalog {
    padding-block: 60px;
  }

  body.fp-page-sub .fp-portfolio-story__intro h2 {
    font-size: clamp(2rem, 11vw, 3rem);
    line-height: 1.02;
  }

  body.fp-page-sub .fp-portfolio-archive__grid,
  body.fp-page-sub .fp-portfolio-story__grid {
    grid-template-columns: 1fr;
  }

  body.fp-page-sub .fp-portfolio-card figcaption {
    min-height: 0;
  }

  body.fp-page-sub .fp-portfolio-story__proof {
    align-items: flex-start;
  }

  body.fp-page-sub .fp-portfolio-toolbar {
    align-items: stretch;
    padding: 9px;
  }

  body.fp-page-sub .fp-portfolio-filters {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.fp-page-sub .fp-portfolio-filter {
    justify-content: space-between;
  }

  body.fp-page-sub .fp-portfolio-status {
    margin: 4px 8px 6px;
  }

  .fp-portfolio-lightbox {
    align-items: center;
    padding: 8px;
  }

  .fp-portfolio-lightbox__panel {
    max-height: 96vh;
    border-radius: 17px;
  }

  .fp-portfolio-lightbox__media {
    min-height: 48vh;
  }

  .fp-portfolio-lightbox__media > :is(img, video) {
    max-height: 64vh;
  }

  .fp-portfolio-lightbox__caption {
    max-height: 34vh;
    padding: 25px 22px;
  }

  .fp-portfolio-lightbox__caption h2 {
    font-size: clamp(1.35rem, 7vw, 2rem);
  }

  .fp-portfolio-lightbox__description {
    margin-top: 12px;
    font-size: .9rem;
  }

  .fp-portfolio-lightbox__counter {
    padding-top: 18px;
  }

  .fp-portfolio-lightbox__close {
    top: 11px;
    right: 11px;
  }

  .fp-portfolio-lightbox__nav {
    width: 44px;
    height: 44px;
  }

  .fp-portfolio-lightbox__nav.is-previous {
    left: 11px;
  }

  .fp-portfolio-lightbox__nav.is-next {
    right: 11px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.fp-page-sub .fp-portfolio-card,
  body.fp-page-sub .fp-portfolio-card > img,
  body.fp-page-sub .fp-portfolio-card__media > img,
  body.fp-page-sub .fp-portfolio-filter,
  .fp-portfolio-lightbox,
  .fp-portfolio-lightbox__panel,
  .fp-portfolio-lightbox__close,
  .fp-portfolio-lightbox__nav {
    transition: none !important;
    transform: none !important;
  }
}
