/*
Theme Name: Sputowski Films
Theme URI: https://www.sputowski.com/
Author: Sputowski Films
Description: Lekki, własny motyw strony Sputowski Films.
Version: 1.0.13
Text Domain: sputowski-films
*/
:root {
  color-scheme: dark;
  --ink: #080706;
  --paper: #f3eee6;
  --gold: #d7b178;
  --hairline: rgba(242, 232, 216, .36);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { background: var(--ink); color: var(--paper); font-family: "DM Sans", Arial, sans-serif; margin: 0; }
a { color: inherit; text-decoration: none; }

.site-header {
  align-items: center; display: grid; grid-template-columns: 1fr auto 1fr; left: 0;
  padding: 26px 4.2vw; position: absolute; right: 0; top: 0; z-index: 10;
}
.logo { color: var(--paper); display: inline-flex; flex-direction: column; font-size: 13px; font-weight: 600; justify-self: start; letter-spacing: .23em; line-height: 1.05; }
.logo span:last-child { color: var(--gold); font-size: 7px; letter-spacing: .48em; margin-top: 5px; }
.desktop-nav { align-items: center; display: flex; gap: clamp(18px, 2.2vw, 40px); justify-self: center; }
.desktop-nav a, .menu-button { font-size: 9px; font-weight: 600; letter-spacing: .13em; transition: color .2s ease; }
.desktop-nav a:hover { color: var(--gold); }
.header-cta { border: 1px solid var(--hairline); font-size: 9px; font-weight: 500; justify-self: end; letter-spacing: .14em; padding: 14px 22px; transition: background .25s ease, color .25s ease; }
.header-cta:hover { background: var(--paper); color: var(--ink); }
.menu-button { align-items: center; background: none; border: 0; color: inherit; cursor: pointer; display: none; gap: 8px; padding: 8px 0; }
.menu-button i { background: var(--gold); border-radius: 50%; display: block; height: 6px; width: 6px; }

.hero { isolation: isolate; min-height: 100svh; overflow: hidden; position: relative; }
.hero-media, .hero-media iframe { height: 100%; inset: 0; position: absolute; width: 100%; }
/* A dedicated poster can later replace this local frame by setting --hero-poster to url("assets/hero-poster.jpg"). */
.hero-media { background: #1b1713 var(--hero-poster, url("assets/hero/hero-poster.webp")) center / cover no-repeat; z-index: -3; }
.hero-media iframe {
  border: 0; height: 56.25vw; left: 50%; min-height: 100%; min-width: 100%;
  pointer-events: none; top: 50%; transform: translate(-50%, -50%) scale(1.08); width: 177.78vh;
}
.hero-shade { background: linear-gradient(90deg, rgba(3,3,3,.92) 0%, rgba(3,3,3,.73) 34%, rgba(3,3,3,.15) 67%, rgba(3,3,3,.38) 100%), linear-gradient(0deg, rgba(3,3,3,.56) 0%, transparent 42%); inset: 0; position: absolute; z-index: -2; }
.hero-grain { background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='.52'/%3E%3C/svg%3E"); inset: 0; mix-blend-mode: soft-light; opacity: .23; pointer-events: none; position: absolute; z-index: -1; }

.hero-copy { left: 5.4vw; max-width: 880px; position: absolute; top: 50%; transform: translateY(-31%); }
.hero-title-line { display: block; white-space: nowrap; }
.hero-title-mobile-break { display: none; }
.eyebrow { color: var(--gold); font-size: 9px; font-weight: 500; letter-spacing: .2em; margin: 0 0 28px; }
.display-heading { font-family: "Bodoni Moda", serif; font-style: normal; font-weight: 500; }
h1, .hero-copy .display-heading { font-size: clamp(46px, 5.3vw, 102px); letter-spacing: -.055em; line-height: .93; margin: 0; }
.intro { font-size: clamp(14px, 1vw, 17px); font-weight: 400; letter-spacing: -.025em; line-height: 1.55; margin: 31px 0 34px; }
.primary-button { align-items: center; background: #f0d3a6; color: #16110c; display: inline-flex; font-size: 9px; font-weight: 600; gap: 43px; letter-spacing: .15em; padding: 20px 27px; transition: background .25s ease, transform .25s ease; }
.primary-button:hover { background: var(--paper); transform: translateY(-2px); }
.primary-button span { font-size: 17px; font-weight: 400; line-height: 0; }
.scroll-cue { bottom: 29px; font-size: 8px; font-weight: 500; left: 50%; letter-spacing: .17em; position: absolute; text-align: center; transform: translateX(-50%); }
.scroll-cue span { color: var(--gold); display: block; font-size: 18px; line-height: 1; margin-top: 8px; }

.section-rail { display: grid; gap: 20px; list-style: none; margin: 0; padding: 0; position: fixed; right: 28px; top: 50%; transform: translateY(-50%); width: 95px; z-index: 30; }
.section-rail.is-hidden { opacity: 0; pointer-events: none; visibility: hidden; }
.section-rail::before { background: rgba(234, 219, 199, .24); bottom: 2px; content: ""; left: -18px; position: absolute; top: 3px; width: 1px; }
.section-rail li { position: relative; }
.section-rail li::before { background: rgba(234, 219, 199, .38); content: ""; height: 1px; left: -22px; position: absolute; top: 9px; width: 8px; }
.section-rail .is-current::before, .section-rail .active::before { background: var(--paper); box-shadow: 0 0 13px var(--paper); height: 7px; left: -25px; top: 6px; width: 7px; }
.section-rail a { display: grid; gap: 3px; font-size: 7px; letter-spacing: .1em; }
.section-rail b { color: var(--gold); font-size: 7px; font-weight: 500; }
.section-rail span { font-weight: 500; }

.mobile-menu { align-items: center; background: rgba(8,7,6,.98); display: flex; inset: 0; justify-content: center; opacity: 0; pointer-events: none; position: fixed; transition: opacity .25s ease; z-index: 8; }
.mobile-menu nav { display: grid; gap: 20px; text-align: center; }
.mobile-menu a { font-family: "Bodoni Moda", Georgia, serif; font-size: 36px; letter-spacing: -.04em; }
body.menu-open { overflow: hidden; }
body.menu-open .mobile-menu { opacity: 1; pointer-events: auto; }

@media (max-width: 1100px) { .desktop-nav { display: none; } .site-header { grid-template-columns: 1fr auto; } .header-cta { display: none; } .menu-button { display: flex; justify-self: end; } }
@media (max-width: 1400px) { .section-rail { display: none; } }
@media (min-width: 1401px) { .section-rail { display: grid; } }
@media (max-width: 700px) {
  .site-header { padding: 21px 20px; }
  .hero-copy { left: 20px; right: 20px; top: 48%; transform: translateY(-17%); }
  .hero-shade { background: linear-gradient(90deg, rgba(3,3,3,.84), rgba(3,3,3,.31)), linear-gradient(0deg, rgba(3,3,3,.72) 0%, rgba(3,3,3,.1) 67%); }
  h1, .hero-copy .display-heading { font-size: clamp(44px, 12.4vw, 64px); line-height: .94; }
  .eyebrow { font-size: 8px; line-height: 1.5; margin-bottom: 21px; max-width: 260px; }
  .intro { font-size: 14px; margin: 24px 0 29px; }
  .primary-button { gap: 36px; padding: 18px 22px; }
  .scroll-cue, .section-rail { display: none; }
}

@media (max-width: 768px) {
  .hero-title-line { white-space: normal; }
  .hero-title-mobile-break { display: inline; }
}

@media (max-width: 767px) {
  .hero-copy .display-heading { font-size: clamp(40px, 11.2vw, 58px); }
  .hero-copy .intro { line-height: 1.48; max-width: 90%; }
}
.hero-video iframe{pointer-events:none}
@media (max-width:700px){.hero-video iframe{transform:translate(-50%,-50%) scale(1.06)}}

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; } .hero-media iframe { display: none; } }

.films-section { background: radial-gradient(circle at 50% 0, #17110d 0, transparent 38%), var(--ink); padding: clamp(100px, 12vw, 190px) 4.2vw clamp(105px, 12vw, 180px); }
.films-heading { margin: 0 auto clamp(48px, 6vw, 92px); text-align: center; }
.section-kicker { color: var(--gold); font-size: 10px; letter-spacing: .34em; margin: 0; }
.section-kicker::after { background: var(--gold); content: ""; display: block; height: 1px; margin: 18px auto 22px; width: 74px; }
.films-heading h2 { font-size: clamp(48px, 6.6vw, 112px); line-height: .92; letter-spacing: -.065em; margin: 0; }
.films-intro { color: rgba(242, 236, 228, .68); font-size: clamp(14px, 1.1vw, 17px); line-height: 1.55; margin: 24px auto 0; max-width: 610px; }
.films-grid { display: grid; gap: 1.35vw; grid-template-columns: repeat(3, 1fr); }
.film-card { aspect-ratio: 1.16; border: 1px solid rgba(215, 177, 120, .58); overflow: hidden; position: relative; }
.film-trigger { background: #15110e; border: 0; color: inherit; cursor: pointer; height: 100%; padding: 0; position: relative; text-align: left; width: 100%; }
.film-trigger::after { background: linear-gradient(0deg, rgba(0,0,0,.9), transparent 61%); content: ""; inset: 0; pointer-events: none; position: absolute; }
.film-trigger img { display: block; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.2,.65,.2,1); width: 100%; }
.film-trigger:hover img, .film-trigger:focus-visible img { transform: scale(1.045); }
.play-mark { border: 1px solid rgba(255,255,255,.95); border-radius: 50%; height: 64px; left: 50%; position: absolute; top: 47%; transform: translate(-50%, -50%); transition: background .25s ease, transform .25s ease; width: 64px; z-index: 2; }
.play-mark::after { border-bottom: 8px solid transparent; border-left: 13px solid var(--paper); border-top: 8px solid transparent; content: ""; left: 27px; position: absolute; top: 23px; }
.film-trigger:hover .play-mark, .film-trigger:focus-visible .play-mark { background: rgba(255,255,255,.16); transform: translate(-50%, -50%) scale(1.08); }
.film-caption { bottom: 24px; display: grid; gap: 11px; left: 24px; position: absolute; z-index: 2; }
.film-caption strong { font: 400 clamp(24px, 2.1vw, 40px)/.95 "Bodoni Moda", Georgia, serif; letter-spacing: -.055em; }
.film-caption small { color: var(--gold); font-size: 9px; font-weight: 600; letter-spacing: .18em; }
.films-button { border: 1px solid rgba(215,177,120,.75); color: var(--gold); display: table; font-size: 9px; font-weight: 600; letter-spacing: .18em; margin: clamp(44px, 5vw, 74px) auto 0; padding: 19px 27px; transition: background .25s ease, color .25s ease; }
.films-button span { font-size: 17px; margin-left: 24px; }
.films-button:hover { background: var(--paper); color: var(--ink); }

.film-dialog { background: #0b0a09; border: 1px solid rgba(215,177,120,.62); color: var(--paper); max-width: min(1120px, 92vw); padding: 0; width: 92vw; }
.film-dialog::backdrop { background: rgba(0,0,0,.82); backdrop-filter: blur(6px); }
.dialog-bar { align-items: center; display: flex; justify-content: space-between; padding: 13px 17px; }
.dialog-bar p { color: var(--gold); font-size: 9px; letter-spacing: .18em; margin: 0; text-transform: uppercase; }
.dialog-close { background: transparent; border: 0; color: var(--paper); cursor: pointer; font-size: 25px; font-weight: 300; line-height: 1; padding: 0 2px; }
.dialog-video { aspect-ratio: 16 / 9; background: #000; }
.dialog-video iframe { border: 0; height: 100%; width: 100%; }

@media (max-width: 700px) { .films-section { padding-left: 20px; padding-right: 20px; } .films-heading h2 { font-size: 54px; } .films-grid { gap: 18px; grid-template-columns: 1fr; } .film-card { aspect-ratio: 1.24; } .film-caption { bottom: 19px; left: 19px; } .film-caption strong { font-size: 30px; } }

.about-section { border-top: 1px solid var(--hairline); max-width: 1240px; margin: 0 auto; min-height: 850px; padding: clamp(110px, 8vw, 130px) 40px; }
.about-layout { align-items: center; display: grid; gap: clamp(70px, 7vw, 100px); grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); }
.about-photo { aspect-ratio: 4 / 5; border: 1px solid rgba(215,177,120,.55); margin: 0; max-width: 420px; overflow: hidden; }
.about-photo img { display: block; filter: saturate(.82) brightness(1.06); height: 100%; object-fit: cover; object-position: 55% 54%; transform: scale(1.42); transform-origin: center 52%; width: 100%; }
.about-copy { max-width: 590px; }
.about-kicker { margin-bottom: 28px; }
.about-copy h2 { font-size: clamp(52px, 5vw, 72px); line-height: 1; letter-spacing: -.055em; margin: 0 0 30px; max-width: 590px; }
.about-copy h2 span { color: var(--gold); }
.about-lead { color: var(--paper); font-size: 18px; line-height: 1.55; margin: 0 0 28px; }
.about-body { color: rgba(242,232,216,.78); font-size: 17px; line-height: 1.62; margin: 0 0 34px; max-width: 570px; }
.about-body p { margin: 0 0 18px; }
.about-facts { border-top: 1px solid var(--hairline); display: grid; grid-template-columns: repeat(3, 1fr); padding-top: 20px; }
.about-facts > div { padding-right: 20px; }
.about-facts > div + div { border-left: 1px solid var(--hairline); padding-left: 20px; }
.about-facts strong { color: var(--gold); display: block; font-size: 10px; letter-spacing: .16em; margin-bottom: 9px; }
.about-facts span { color: var(--paper); font-size: 13px; line-height: 1.35; }
@media (max-width: 767px) {
  .about-section { min-height: 0; padding: 72px 22px 78px; }
  .about-layout { align-items: stretch; display: flex; flex-direction: column; gap: 42px; }
  .about-copy { display: contents; }
  .about-kicker { order: 1; margin: 0; }
  .about-copy h2 { font-size: 46px; line-height: 1.02; margin: 0; order: 2; }
  .about-lead { font-size: 17px; margin: 0; order: 3; }
  .about-body { font-size: 16px; margin: 0; order: 4; }
  .about-photo { max-width: none; order: 5; width: 100%; }
  .about-facts { border-top: 0; display: block; order: 6; padding-top: 0; }
  .about-facts > div, .about-facts > div + div { border-left: 0; border-top: 1px solid var(--hairline); padding: 17px 0; }
  .about-facts strong { margin-bottom: 6px; }
  .about-facts span { font-size: 14px; }
}

.site-footer { border-top: 1px solid rgba(255,255,255,.12); padding: 82px 40px 32px; }
.site-footer__container { margin: 0 auto; max-width: 1240px; }
.site-footer__top { display: grid; gap: 50px; grid-template-columns: minmax(0, 42fr) minmax(0, 34fr) minmax(0, 24fr); }
.site-footer__logo { color: var(--paper); display: inline-block; font-size: 18px; font-weight: 600; letter-spacing: .23em; text-decoration: none; }
.site-footer__company { margin-top: 27px; }
.site-footer__company strong { color: rgba(242,232,216,.85); display: block; font-size: 17px; font-weight: 500; margin-bottom: 18px; }
.site-footer address { color: rgba(242,232,216,.58); font-size: 13px; font-style: normal; line-height: 1.65; }
.site-footer__contact { display: grid; gap: 11px; margin-top: 28px; }
.site-footer__contact a { color: rgba(242,232,216,.82); font-size: 17px; text-decoration: none; transition: color .22s ease; }
.site-footer a:hover { color: var(--gold); }
.site-footer a:focus-visible, .site-footer button:focus-visible { outline: 1px solid var(--gold); outline-offset: 5px; }
.site-footer__label { color: var(--gold); display: block; font-size: 12px; letter-spacing: .2em; margin-bottom: 25px; text-transform: uppercase; }
.site-footer__nav { align-content: start; display: grid; gap: 12px; }
.site-footer__nav a, .site-footer__cookies { background: none; border: 0; color: rgba(242,232,216,.58); cursor: pointer; font: 400 16px/1.4 "DM Sans", sans-serif; padding: 0; text-align: left; text-decoration: none; transition: color .22s ease; }
.footer-wzk-partner { align-items: flex-start; display: flex; flex-direction: column; gap: 13px; }
.footer-wzk-partner__link { display: inline-flex; }
.footer-wzk-partner img { display: block; height: 78px; object-fit: contain; opacity: .85; transition: opacity .25s ease, transform .25s ease; width: auto; }
.footer-wzk-partner__link:hover img, .footer-wzk-partner__link:focus-visible img { opacity: 1; transform: translateY(-2px); }
.footer-wzk-partner__profile { color: var(--gold); font-size: 13px; text-decoration: none; }
.site-footer__bottom-divider { border-top: 1px solid rgba(255,255,255,.12); margin-top: 58px; }
.site-footer__bottom { align-items: center; color: rgba(242,232,216,.5); display: flex; font-size: 12px; gap: 30px; justify-content: space-between; line-height: 1.5; padding-top: 26px; }
.site-footer__bottom span:last-child { text-align: right; }
@media (max-width: 760px) { .site-footer { padding: 65px 22px 30px; } .site-footer__top { display: block; } .site-footer__brand, .site-footer__nav { margin-bottom: 45px; } .site-footer__nav { gap: 13px; } .footer-wzk-partner { margin-bottom: 0; } .site-footer__bottom-divider { margin-top: 48px; } .site-footer__bottom { align-items: flex-start; display: grid; gap: 9px; font-size: 12px; justify-content: initial; padding-top: 24px; } .site-footer__bottom span:last-child { text-align: left; } }

.faq-section { border-top: 1px solid rgba(242,232,216,.2); padding: clamp(110px, 9vw, 130px) 40px 115px; }
.faq-inner { align-items: start; display: grid; gap: clamp(90px, 8vw, 110px); grid-template-columns: minmax(0, 9fr) minmax(0, 16fr); margin: 0 auto; max-width: 1240px; }
.faq-eyebrow { color: var(--gold); font-size: 11px; letter-spacing: .3em; margin: 0 0 24px; }
.faq-eyebrow::after { background: var(--gold); content: ""; display: block; height: 1px; margin: 17px 0 30px; width: 46px; }
.faq-inner h2 { font-size: clamp(58px, 5.4vw, 68px); line-height: 1; letter-spacing: -.06em; margin: 0; max-width: 430px; }
.faq-intro { color: rgba(242,232,216,.7); font-size: 18px; line-height: 1.6; margin: 30px 0 0; max-width: 420px; }
.faq-questions { border-top: 1px solid rgba(255,255,255,.16); }
.faq-question { border-bottom: 1px solid rgba(255,255,255,.16); }
.faq-question button { align-items: center; background: none; border: 0; color: var(--paper); cursor: pointer; display: flex; font: 400 clamp(20px, 1.7vw, 23px)/1.28 "DM Sans", sans-serif; justify-content: space-between; padding: 26px 0; text-align: left; width: 100%; }
.faq-question button:focus-visible { outline: 1px solid var(--gold); outline-offset: 5px; }
.faq-question button span { color: var(--gold); font-size: 27px; font-weight: 300; line-height: 1; margin-left: 25px; }
.faq-answer { color: rgba(242,232,216,.7); font-size: 17px; line-height: 1.65; max-height: 0; max-width: 700px; overflow: hidden; padding: 0; transition: max-height .3s ease, padding .3s ease; }
.faq-answer p { margin: 0 0 16px; }
.faq-answer p:last-child { margin-bottom: 0; }
.faq-question.is-open .faq-answer { max-height: 620px; padding: 0 45px 26px 0; }
.faq-note { color: var(--gold); font-size: 14px; line-height: 1.5; margin: 32px 0 0; }
@media (max-width: 760px) {
  .faq-section { padding: 78px 22px 84px; }
  .faq-inner { display: block; }
  .faq-inner h2 { font-size: 48px; }
  .faq-intro { font-size: 17px; margin-top: 25px; }
  .faq-questions { margin-top: 62px; }
  .faq-question button { font-size: 19px; padding: 22px 0; }
  .faq-question button span { font-size: 24px; }
  .faq-answer { font-size: 16px; }
  .faq-question.is-open .faq-answer { padding-right: 8px; }
  .faq-note { margin-top: 28px; }
}

.contact-section { border-top: 1px solid rgba(242,232,216,.2); padding: clamp(110px, 9vw, 130px) clamp(40px, 6vw, 80px) 84px; }
.contact-inner { align-items: start; display: grid; gap: clamp(90px, 8vw, 120px); grid-template-columns: minmax(0, 39fr) minmax(0, 61fr); margin: 0 auto; max-width: 1340px; }
.contact-eyebrow { color: var(--gold); font-size: 11px; letter-spacing: .23em; margin: 0 0 24px; }
.contact-eyebrow::after { background: var(--gold); content: ""; display: block; height: 1px; margin: 18px 0 40px; width: 46px; }
.contact-copy h2 { font-size: clamp(62px, 5.4vw, 76px); line-height: 1.02; letter-spacing: -.06em; margin: 0; max-width: 500px; }
.contact-title-last-line { display: inline-block; transform: translateY(-.08em); }
.contact-description { color: rgba(242,232,216,.7); font-size: 18px; line-height: 1.65; margin: 36px 0 38px; max-width: 480px; }
.contact-details { display: grid; gap: 14px; }
.contact-details a { color: var(--gold); font-size: 19px; text-decoration: underline; text-decoration-color: rgba(215,177,120,.65); text-underline-offset: 4px; transition: color .25s ease; }
.contact-details a:hover { color: var(--paper); }
.contact-direct { border-top: 1px solid var(--gold); color: rgba(242,232,216,.7); font-size: 17px; line-height: 1.6; margin-top: 48px; max-width: 410px; padding-top: 26px; }
.contact-form { min-width: 0; }
.contact-form-grid { display: grid; gap: 32px 36px; grid-template-columns: 1fr 1fr; }
.contact-field { min-width: 0; position: relative; }
.contact-full { grid-column: 1 / -1; }
.contact-field label { color: var(--gold); display: block; font-size: 12px; letter-spacing: .18em; margin-bottom: 13px; text-transform: uppercase; }
.contact-field input, .contact-field textarea { background: transparent; border: 0; border-bottom: 1px solid rgba(215,177,120,.45); border-radius: 0; color: var(--paper); font: 400 17px/1.45 "DM Sans", sans-serif; min-height: 56px; outline: 0; padding: 12px 0 13px; width: 100%; }
.contact-field input::placeholder, .contact-field textarea::placeholder { color: rgba(242,232,216,.54); }
.contact-field input:focus, .contact-field textarea:focus { border-bottom-color: var(--gold); }
.contact-field textarea { border: 1px solid rgba(215,177,120,.45); min-height: 160px; padding: 16px; resize: vertical; }
.contact-field textarea:focus { border-color: var(--gold); }
.field-error { color: #d6a58b; font-size: 12px; line-height: 1.3; padding-top: 7px; }
.invalid input, .invalid textarea { border-color: #d6a58b; }
.contact-submit { align-items: center; background: transparent; border: 1px solid rgba(215,177,120,.9); color: var(--gold); cursor: pointer; display: flex; font-size: 12px; font-weight: 600; justify-content: center; letter-spacing: .17em; margin-top: 32px; min-height: 60px; padding: 16px 24px; transition: background .3s ease, color .3s ease; width: 100%; }
.contact-submit span { font-size: 24px; font-weight: 400; line-height: 0; margin-left: 28px; transition: transform .3s ease; }
.contact-submit:hover { background: var(--gold); color: var(--ink); }
.contact-submit:hover span { transform: translateX(5px); }
.contact-consent { align-items: flex-start; color: rgba(242,232,216,.7); display: flex; font-size: 13px; gap: 15px; line-height: 1.55; margin-top: 26px; }
.contact-consent input { appearance: none; border: 1px solid rgba(242,232,216,.7); cursor: pointer; flex: 0 0 21px; height: 21px; margin: 1px 0 0; position: relative; width: 21px; }
.contact-consent input:checked { background: var(--gold); border-color: var(--gold); }
.contact-consent input:checked::after { border-bottom: 2px solid var(--ink); border-right: 2px solid var(--ink); content: ""; height: 10px; left: 7px; position: absolute; top: 2px; transform: rotate(45deg); width: 4px; }
.contact-consent a { color: var(--gold); text-decoration: underline; text-underline-offset: 3px; }
.contact-success { color: var(--gold); display: none; font-size: 15px; line-height: 1.5; margin-top: 20px; }
.contact-success.show { display: block; }
.contact-honeypot { height: 1px; left: -10000px; overflow: hidden; position: absolute; top: auto; width: 1px; }
.contact-turnstile { height: 0; overflow: hidden; position: absolute; width: 0; }
.cookie-banner { background: #161412; border: 1px solid rgba(215,177,120,.5); bottom: 22px; color: var(--paper); left: 22px; max-width: 720px; padding: 26px 28px; position: fixed; right: 22px; z-index: 100; }
.cookie-banner__inner { align-items: end; display: flex; gap: 28px; justify-content: space-between; }
.cookie-banner__eyebrow { color: var(--gold); font-size: 10px; letter-spacing: .18em; margin: 0 0 10px; }
.cookie-banner h2, .cookie-panel h2 { font-size: 28px; line-height: 1; margin: 0 0 12px; }
.cookie-banner p, .cookie-panel p { color: rgba(242,232,216,.72); font-size: 13px; line-height: 1.55; margin: 0; max-width: 430px; }
.cookie-banner a { color: var(--gold); display: inline-block; font-size: 12px; margin-top: 10px; text-underline-offset: 3px; }
.cookie-banner__actions, .cookie-panel__actions { display: grid; flex: 0 0 190px; gap: 8px; }
.cookie-banner button, .cookie-panel__actions button { background: transparent; border: 1px solid rgba(215,177,120,.75); color: var(--gold); cursor: pointer; font: 600 10px/1.2 "DM Sans", sans-serif; letter-spacing: .13em; min-height: 38px; padding: 9px 12px; }
.cookie-banner button:hover, .cookie-banner button:focus-visible, .cookie-panel__actions button:hover, .cookie-panel__actions button:focus-visible { background: var(--gold); color: var(--ink); outline: none; }
.cookie-panel { align-items: center; display: flex; inset: 0; justify-content: center; padding: 20px; position: fixed; z-index: 101; }
.cookie-panel[hidden], .cookie-banner[hidden] { display: none; }
.cookie-panel__backdrop { background: rgba(0,0,0,.72); inset: 0; position: absolute; }
.cookie-panel__content { background: #1e1d1b; border: 1px solid rgba(215,177,120,.5); color: var(--paper); max-width: 570px; padding: 34px; position: relative; width: 100%; z-index: 1; }
.cookie-panel__close { background: none; border: 0; color: var(--paper); cursor: pointer; font-size: 26px; line-height: 1; position: absolute; right: 16px; top: 14px; }
.cookie-option { align-items: center; border-top: 1px solid rgba(255,255,255,.16); display: flex; gap: 20px; justify-content: space-between; margin-top: 22px; padding: 18px 0 0; }
.cookie-option strong { color: var(--gold); display: block; font-size: 11px; letter-spacing: .14em; }
.cookie-option span span { color: rgba(242,232,216,.68); display: block; font-size: 13px; line-height: 1.5; margin-top: 6px; }
.cookie-option input { accent-color: var(--gold); height: 20px; width: 20px; }
.cookie-option__always { color: rgba(242,232,216,.6); font-size: 10px; letter-spacing: .1em; text-align: right; }
.cookie-option--disabled { opacity: .55; }
.cookie-panel__actions { margin-top: 24px; }
@media (max-width: 650px) { .cookie-banner { bottom: 14px; left: 14px; padding: 22px; right: 14px; } .cookie-banner__inner { align-items: stretch; display: block; } .cookie-banner__actions { margin-top: 20px; width: 100%; } .cookie-panel__content { max-height: calc(100svh - 40px); overflow-y: auto; padding: 30px 24px; } }
@media (max-width: 760px) {
  .contact-section { padding: 78px 22px; }
  .contact-inner { display: block; }
  .contact-copy h2 { font-size: 48px; line-height: 1.02; }
  .contact-description { font-size: 17px; margin: 28px 0 34px; }
  .contact-details a { font-size: 18px; }
  .contact-direct { font-size: 16px; margin-top: 38px; padding-top: 22px; }
  .contact-form { margin-top: 66px; }
  .contact-form-grid { display: block; }
  .contact-field { margin-bottom: 27px; }
  .contact-field label { font-size: 11px; }
  .contact-field input { font-size: 17px; min-height: 54px; }
  .contact-field textarea { font-size: 17px; min-height: 150px; }
  .contact-submit { font-size: 11px; margin-top: 12px; min-height: 60px; }
  .contact-consent { font-size: 13px; gap: 12px; margin-top: 25px; }
}

.reviews-section { border-top: 1px solid var(--hairline); min-height: 850px; padding: clamp(110px, 9vw, 130px) 24px; }
.reviews-inner { margin: 0 auto; max-width: 1240px; text-align: center; }
.reviews-kicker { margin-bottom: 24px; }
.reviews-kicker::after { margin: 17px auto 22px; width: 62px; }
.reviews-inner h2 { font-size: clamp(52px, 5.4vw, 72px); line-height: .96; letter-spacing: -.06em; margin: 0; }
.reviews-lead { color: rgba(242,232,216,.76); font-size: 17px; line-height: 1.55; margin: 26px auto 0; max-width: 520px; }
.reviews-widget-frame { margin: 52px auto 0; max-width: 1000px; text-align: left; width: 100%; }
.reviews-widget-frame .wzk-widget { box-shadow: none !important; width: 100% !important; }
.reviews-fallback { display: grid; gap: 16px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 52px auto 0; max-width: 1000px; text-align: left; }
.reviews-fallback__card { border: 1px solid rgba(215,177,120,.28); min-height: 190px; padding: 25px 24px 22px; }
.reviews-fallback__rating { color: var(--gold); font-size: 10px; font-weight: 500; letter-spacing: .18em; margin: 0 0 24px; }
.reviews-fallback blockquote { color: var(--paper); font-family: "Bodoni Moda", serif; font-size: clamp(22px, 2vw, 28px); font-style: normal; font-weight: 500; line-height: 1.12; margin: 0; }
.reviews-fallback__author { color: rgba(242,232,216,.66); font-size: 11px; letter-spacing: .1em; margin: 26px 0 0; text-transform: uppercase; }
.reviews-fallback[hidden], .reviews-widget-frame[hidden] { display: none; }
.all-reviews { border: 1px solid rgba(215,177,120,.72); color: var(--gold); display: inline-flex; font-size: 10px; font-weight: 500; letter-spacing: .16em; margin-top: 38px; padding: 17px 23px; text-decoration: none; transition: background .25s ease, color .25s ease; }
.all-reviews span { font-size: 16px; line-height: 10px; margin-left: 22px; }
.all-reviews:hover { background: var(--paper); color: var(--ink); }
@media (max-width: 767px) {
  .reviews-section { min-height: 0; padding: 78px 20px 82px; }
  .reviews-inner h2 { font-size: 46px; line-height: 1.02; }
  .reviews-lead { font-size: 16px; margin-top: 22px; }
  .reviews-widget-frame { margin-top: 36px; }
  .reviews-fallback { grid-template-columns: 1fr; margin-top: 36px; }
  .reviews-fallback__card { min-height: 0; padding: 22px 20px 20px; }
  .all-reviews { margin-top: 28px; padding: 16px 18px; }
}
.footer-socials{align-items:center;align-self:center;display:flex;gap:20px;justify-content:flex-start}.footer-social{align-items:center;color:rgba(255,255,255,.72);display:inline-flex;height:24px;justify-content:center;text-decoration:none;transition:color .22s ease,opacity .22s ease;width:24px}.footer-social:hover,.footer-social:focus-visible{color:var(--gold);opacity:1;outline:1px solid var(--gold);outline-offset:5px}.footer-social svg{display:block;height:20px;width:20px}.footer-social--wzk{opacity:.82;width:auto}.footer-social--wzk img{display:block;height:30px;object-fit:contain;width:auto}@media(max-width:760px){.footer-socials{align-self:auto;flex-wrap:wrap;gap:18px;justify-content:center}.footer-social{height:28px;width:28px}.footer-social--wzk img{height:30px}}
@media (min-width: 761px) and (max-width: 1100px) { .footer-socials { gap: 12px; } }
.hero-copy .display-heading{line-height:.99}
.films-heading h2{line-height:1.02}
.about-copy h2,.reviews-inner h2,.faq-inner h2,.contact-copy h2{line-height:1.08}
@media(max-width:700px){.hero-copy .display-heading{line-height:1}.films-heading h2{line-height:1.02}.about-copy h2,.reviews-inner h2,.faq-inner h2,.contact-copy h2{line-height:1.08}}

/* Final rhythm and navigation refinements */
.films-section { padding-top: clamp(90px, 10vw, 170px); padding-bottom: clamp(95px, 10vw, 160px); }
.about-section { padding-top: clamp(100px, 7vw, 115px); padding-bottom: clamp(100px, 7vw, 115px); }
.reviews-section { padding-top: clamp(100px, 8vw, 115px); padding-bottom: clamp(100px, 8vw, 115px); }
.faq-section { padding-top: clamp(100px, 8vw, 115px); padding-bottom: clamp(98px, 8vw, 105px); }
.contact-section { padding-top: clamp(100px, 8vw, 115px); padding-bottom: 72px; }

.section-rail {
  right: clamp(16px, 2vw, 32px);
  transition: opacity .22s ease, visibility 0s linear 0s;
}
.section-rail.is-hidden { transition-delay: 0s; }
@media (max-width: 1499px) { .section-rail { display: none; } }

.site-footer {
  border-top-color: rgba(255,255,255,.15);
  padding-top: 58px;
  padding-bottom: 22px;
}
.site-footer__top { gap: 40px; }
.site-footer__company { margin-top: 20px; }
.site-footer__company strong { margin-bottom: 13px; }
.site-footer__contact { gap: 8px; margin-top: 21px; }
.site-footer__label { margin-bottom: 18px; }
.site-footer__nav { gap: 9px; }
.footer-socials { align-self: center; }
.site-footer__bottom-divider { margin-top: 38px; }
.site-footer__bottom { padding-top: 18px; }

@media (max-width: 760px) {
  .films-section { padding-top: 78px; padding-bottom: 86px; }
  .about-section { padding-top: 68px; padding-bottom: 74px; }
  .reviews-section { padding-top: 70px; padding-bottom: 74px; }
  .faq-section { padding-top: 70px; padding-bottom: 76px; }
  .contact-section { padding-top: 70px; padding-bottom: 64px; }
  .site-footer { padding-top: 56px; padding-bottom: 24px; }
  .site-footer__brand, .site-footer__nav { margin-bottom: 38px; }
  .site-footer__nav { gap: 11px; }
  .footer-socials { align-self: auto; }
  .site-footer__bottom-divider { margin-top: 36px; }
  .site-footer__bottom { padding-top: 18px; }
}

/* Accepted section palette */
.about-section {
  background: #EAE3D8;
  max-width: none;
}
.about-layout { margin: 0 auto; max-width: 1240px; }
.about-copy h2, .about-lead, .about-facts span { color: #1B1917; }
.about-body { color: rgba(27,25,23,.72); }
.about-facts { border-color: rgba(27,25,23,.16); }
.about-facts > div + div { border-color: rgba(27,25,23,.16); }

.reviews-section { background: #1E1D1B; }
.reviews-inner h2 { color: #F1ECE4; }
.reviews-lead { color: rgba(241,236,228,.68); }

.faq-section { background: #E2DACE; }
.faq-inner h2, .faq-question button { color: #1B1917; }
.faq-intro, .faq-answer { color: rgba(27,25,23,.72); }
.faq-questions, .faq-question { border-color: rgba(27,25,23,.16); }

.contact-section { background: #292724; }

/* About section gold typography contrast only */
.about-section .about-copy h2 span,
.about-section .about-kicker,
.about-section .about-facts strong {
  color: #B99361;
}

@media (min-width: 768px) {
  .about-copy h2 { max-width: none; white-space: nowrap; width: max-content; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .about-copy h2 { font-size: clamp(32px, 4vw, 46px); max-width: 100%; white-space: normal; width: auto; }
}

/* Side navigation only */
.section-rail {
  right: 20px;
  width: 108px;
  gap: 22px;
  z-index: 30;
  transition: opacity .2s ease, visibility .2s ease;
}
.section-rail::before { left: -21px; }
.section-rail li::before { left: -25px; width: 9px; }
.section-rail .is-current::before, .section-rail .active::before { left: -28px; height: 8px; top: 5px; width: 8px; }
.section-rail a { font-size: 8px; gap: 4px; }
.section-rail b { font-size: 8px; }

.section-rail.side-nav--on-dark::before { background: rgba(255,255,255,.28); }
.section-rail.side-nav--on-dark li::before { background: rgba(255,255,255,.45); }
.section-rail.side-nav--on-dark b { color: rgba(255,255,255,.5); }
.section-rail.side-nav--on-dark span { color: rgba(255,255,255,.74); }
.section-rail.side-nav--on-dark .is-current::before, .section-rail.side-nav--on-dark .active::before { background: var(--gold); box-shadow: 0 0 12px rgba(215,177,120,.45); }
.section-rail.side-nav--on-dark .is-current span, .section-rail.side-nav--on-dark .active span { color: #F4EFE7; }
.section-rail.side-nav--on-dark a:hover, .section-rail.side-nav--on-dark a:focus-visible,
.section-rail.side-nav--on-dark a:hover span, .section-rail.side-nav--on-dark a:focus-visible span,
.section-rail.side-nav--on-dark a:hover b, .section-rail.side-nav--on-dark a:focus-visible b { color: #fff; }

.section-rail.side-nav--on-light::before { background: rgba(20,18,16,.28); }
.section-rail.side-nav--on-light li::before { background: rgba(20,18,16,.48); }
.section-rail.side-nav--on-light b { color: rgba(20,18,16,.52); }
.section-rail.side-nav--on-light span { color: rgba(20,18,16,.78); }
.section-rail.side-nav--on-light .is-current::before, .section-rail.side-nav--on-light .active::before { background: #1B1917; box-shadow: 0 0 10px rgba(27,25,23,.22); }
.section-rail.side-nav--on-light .is-current span, .section-rail.side-nav--on-light .active span { color: #171513; }
.section-rail.side-nav--on-light a:hover, .section-rail.side-nav--on-light a:focus-visible,
.section-rail.side-nav--on-light a:hover span, .section-rail.side-nav--on-light a:focus-visible span,
.section-rail.side-nav--on-light a:hover b, .section-rail.side-nav--on-light a:focus-visible b { color: #000; }

@media (max-width: 1400px) { .section-rail { display: none; } }
@media (min-width: 1401px) { .section-rail { display: grid; } }

/* Compact footer only */
.site-footer { padding-top: 44px; padding-bottom: 18px; }
.site-footer__top { gap: 34px; }
.site-footer__logo { font-size: 17px; }
.site-footer__company { margin-top: 17px; }
.site-footer__company strong { font-size: 16px; margin-bottom: 11px; }
.site-footer address { font-size: 12px; line-height: 1.55; }
.site-footer__contact { gap: 7px; margin-top: 18px; }
.site-footer__contact a { font-size: 16px; }
.site-footer__label { font-size: 11px; margin-bottom: 16px; }
.site-footer__nav { gap: 8px; }
.site-footer__nav a, .site-footer__cookies { font-size: 15px; }
.site-footer__bottom-divider { margin-top: 29px; }
.site-footer__bottom { font-size: 11px; padding-top: 14px; }
@media (max-width: 760px) {
  .site-footer { padding-top: 42px; padding-bottom: 18px; }
  .site-footer__brand, .site-footer__nav { margin-bottom: 32px; }
  .site-footer__bottom-divider { margin-top: 28px; }
  .site-footer__bottom { font-size: 11px; padding-top: 14px; }
}

/* Force the complete light side-nav palette */
.section-rail.side-nav--on-light,
.section-rail.side-nav--on-light a,
.section-rail.side-nav--on-light b,
.section-rail.side-nav--on-light span {
  color: rgba(20,18,16,.78) !important;
}
.section-rail.side-nav--on-light b { color: rgba(20,18,16,.55) !important; }
.section-rail.side-nav--on-light .is-current span,
.section-rail.side-nav--on-light .active span { color: #171513 !important; }
.section-rail.side-nav--on-light::before { background-color: rgba(20,18,16,.28) !important; }
.section-rail.side-nav--on-light li::before { background-color: rgba(20,18,16,.38) !important; }
.section-rail.side-nav--on-light li:not(.is-current)::before,
.section-rail.side-nav--on-light li:not(.active)::before { background-color: rgba(20,18,16,.48) !important; }
.section-rail.side-nav--on-light .is-current::before,
.section-rail.side-nav--on-light .active::before { background-color: #C8A45A !important; box-shadow: 0 0 10px rgba(27,25,23,.22) !important; }
.section-rail.side-nav--on-light a:hover,
.section-rail.side-nav--on-light a:focus-visible,
.section-rail.side-nav--on-light a:hover span,
.section-rail.side-nav--on-light a:focus-visible span,
.section-rail.side-nav--on-light a:hover b,
.section-rail.side-nav--on-light a:focus-visible b { color: #000 !important; }
.section-rail.side-nav--on-light svg { color: #171513 !important; fill: #171513 !important; stroke: #171513 !important; }

/* Keep the contact heading in three lines, sized to its own column. */
.contact-copy { container-type: inline-size; }
#contact-title { max-width: none; font-size: min(76px, 13cqi); line-height: 1.08; }
#contact-title .contact-title-line { display: block; white-space: nowrap; }
@media (max-width: 760px) { #contact-title { font-size: min(48px, 13cqi); } }

/* Old public links remain valid after the redesign. */
#filmy, #opinie { position: relative; }
.legacy-anchor { position: absolute; inset: 0 auto auto 0; width: 0; height: 0; pointer-events: none; }

/* Visible service heading; the large brand slogan retains its original styling. */
.hero-copy .hero-service-heading { font-family: "DM Sans", sans-serif; font-size: 11px; font-weight: 500; letter-spacing: .10em; line-height: 1.6; max-width: 620px; margin: 0 0 28px; }
@media (max-width: 700px) { .hero-copy .hero-service-heading { font-size: 10px; letter-spacing: .07em; max-width: 330px; margin-bottom: 21px; } }

