/* DSK page safety shell owner v1. Moved from anonymous inline CSS after PL cleanup proof. */
/* 1. CORE RESET & SCROLL */
html{
 font-family:'Inter',system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
 overflow-y:scroll;
 overflow-x:hidden;
 scroll-behavior:auto;
 -webkit-text-size-adjust:100%;
 text-size-adjust:100%;
}
@supports (scrollbar-gutter: stable){
 html{ scrollbar-gutter: stable !important; }
}

body{
 margin:0;
 min-height:100%;
 -webkit-font-smoothing:antialiased;
 -moz-osx-font-smoothing:grayscale;
 overflow-x:clip;
 background: transparent;
}
@supports not (overflow-x: clip){
 body{ overflow-x:hidden; }
}

img{max-width:100%;height:auto;display:block}
*,:before,:after{box-sizing:border-box}

/* 2. UX TOUCH TARGETS */
button,
a,
.cta-button,
[role="button"]{
 touch-action:manipulation;
 -webkit-tap-highlight-color:transparent;
 tap-highlight-color:transparent;
}

/* --- FIXY MOBILNE / UX (Mobile Safari / dotyk / vh) --- */

/* A) Mobile Safari input zoom: minimum 16px, inaczej Safari robi auto-zoom */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="search"],
input[type="url"],
textarea,
select{
 font-size:1rem !important;
 max-width:100%;
}

/* B) Dynamic viewport (Safari/Chrome mobile) — bez ucinania przez pasek adresu */
.hero-section,
.hero,
.full-height,
[data-b12-component*="Hero"]{
 min-height:100vh;
 min-height:100svh;
 min-height:100dvh;
}

/* C) "Clickable elements too close" — powiększamy hit-area na mobile (bez zmiany fontów) */
@media (max-width: 768px) and (pointer: coarse) and (hover: none){
 footer a,

nav a{
  display:inline-block;
  padding:10px 0;
 }
}

/* D) UI mniej "zaznaczalne" (opcjonalnie, bez psucia inputów) */
.cta-button,
[role="button"],

nav{
 -webkit-user-select:none;
 user-select:none;
}

/* --- KONIEC FIXÓW MOBILNYCH --- */

/* 3. LCP GUARD (Szybkie Hero) */
.hero-section,.hero,h1,h2,.cta-button,.cta{
 opacity:1;
 visibility:visible;
 animation: none;
 transition: none;
}

/* 4. STABILIZACJA NAGŁÓWKA */
[data-b12-component="Header"],
[data-b12-component="Navigation"],
[data-b12-id*="header"],
[data-b12-id*="menu"],

nav,
#site-header{
 backface-visibility:hidden;
 -webkit-backface-visibility:hidden;
}

/* 5. WYŁĄCZENIE ANIMACJI DLA REDUCED MOTION */
@media (prefers-reduced-motion: reduce) {
 [data-b12-component],
 [data-b12-id] {
  animation: none !important;
  transition: none !important;
 }
}

/* 6. FIX: STOP "wjeżdżania" tekstów - Z WYJĄTKIEM MENU */
html.__no-enter-anim body [data-b12-component]:not([data-b12-component*="Header"]):not([data-b12-component*="Navigation"]):not(nav),
html.__no-enter-anim body [data-b12-component] *:not(nav *),
html.__no-enter-anim body [data-b12-id]:not([data-b12-id*="header"]):not([data-b12-id*="menu"]) {
 animation: none !important;
 transition: none !important;
 transform: none !important;
 opacity: 1 !important;
}

/* 7. HERO IMAGE RATIO */
.hero-image{
 position:relative;
 padding-bottom:56.25%;
 height:0;
 overflow:hidden;
 background:#050710;
}
.hero-image>img,
.hero-image>picture,
.hero-image>video{
 position:absolute;
 inset:0;
 width:100%;
 height:100%;
 object-fit:cover;
}
@supports (aspect-ratio:16/9){
 .hero-image{
  aspect-ratio:16/9;
  padding-bottom:0;
  height:auto;
 }
}

/* 8. SKIP LINK */
.skip-link{
 position:fixed;
 top:-100px;
 left:0;
 background:#050710;
 color:#fff;
 padding:12px 20px;
 text-decoration:none;
 z-index:9999;
 min-height:44px;
 display:flex;
 align-items:center;
 transition:top .25s;
}
.skip-link:focus,
.skip-link:active{
 top:0;
}

/* 9. CLS GUARDS */
[data-cls-reserve]{min-height:var(--reserve-height,300px)}

/* Placeholder */
.lazy-image{
 aspect-ratio:16/9;
 min-height:200px;
 background:linear-gradient(90deg,#050710 25%,#0a0e1a 50%,#050710 75%);
 background-size:400% 100%;
 animation:shimmer 2s infinite;
}
@keyframes shimmer{
 0%{background-position:-400px 0}
 100%{background-position:400px 0}
}

/* 10. COOKIEYES STYLING FIX */
.cky-btn,
.cky-btn:visited{
 color:#ffffff !important;
}
.cky-btn-accept,
.cky-btn-primary,
.cky-btn-accept:visited,
.cky-btn-primary:visited{
 background-color:#ffffff !important;
 color:#050710 !important;
 border:1px solid #ffffff !important;
}
.cky-btn-reject,
.cky-btn-customize,
.cky-btn-secondary,
.cky-btn-reject:visited,
.cky-btn-customize:visited,
.cky-btn-secondary:visited{
 background-color:transparent !important;
 color:#ffffff !important;
 border:1px solid #ffffff !important;
}
.cky-btn:focus-visible,
.cky-btn-accept:focus-visible,
.cky-btn-reject:focus-visible,
.cky-btn-customize:focus-visible{
 outline:2px solid #ffffff !important;
 outline-offset:2px !important;
}

.cta-button,
button[type="submit"],
input[type="submit"]{
 color:#ffffff !important;
 text-shadow:0 1px 2px rgba(0,0,0,.5);
}

/* 11. WYMUSZENIE FONTU */
html, body{
 font-family:'Inter',system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif !important;
}

/* 12. COOKIEYES VISIBILITY FIX - POPRAWIONY (tylko z-index) */
.cky-consent-container,
.cky-banner-wrapper,
#cky-banner,
.cky-modal {
 z-index: 2147483647 !important;
}

/* 12b. FALLBACK COOKIE CONSENT (gdy CookieYes nie wstanie) – bez duplikatów */
/* Na mobile ustawiamy baner nad belką Zadzwoń */
/* DSK: reserve space for JS footer to reduce CLS (CrUX) */
/* === DSK: content-visibility dla stopki (render dopiero przy scrollu) === */
footer,
#footer-container,
.dsk-custom-footer,
#dsk-custom-footer-root,
#dsk-footer-root{
 content-visibility: auto;
 contain-intrinsic-size: 1px 450px;
}
@media (max-width:768px){
 footer,
 #footer-container,
 .dsk-custom-footer,
 #dsk-custom-footer-root,
 #dsk-footer-root{
  contain-intrinsic-size: 1px 800px;
 }
}

/* === DSK: footer render optimization (no forced min-height) ================= */
#site-footer, .dsk-custom-footer, #dsk-custom-footer-root, #dsk-footer-root {
  content-visibility: auto;
  contain-intrinsic-size: 1px 260px;
}
@media (max-width: 768px) {
  #site-footer, .dsk-custom-footer, #dsk-custom-footer-root, #dsk-footer-root {
    contain-intrinsic-size: 1px 420px;
  }
}
/* === DSK IMAGE STATIC LOAD (no fade-in, no slide) === */
img,
picture,
.b12-image img,
[data-b12-component] img {
 opacity: 1;
 transform: none;
 filter: none;
 animation: none;
 transition: none;
}

/* === DSK: CSS DEFENSE (Wave-1) — <code> wygląda jak nagłówek zanim JS podmieni na <h2> === */
main code:not(pre code){
 font-family: inherit !important;
 font-weight: 800 !important;
 font-size:clamp(1.25rem, 3.6vw, 1.75rem) !important;
 line-height: 1.15 !important;
 letter-spacing: -0.01em !important;
 background: none !important;
 padding: 0 !important;
 border: 0 !important;
 color: inherit !important;
 display: block !important;
 white-space: normal !important;
 overflow-wrap: anywhere !important;
}

#cookieyes,
.cky-consent-container,
.cky-banner-wrapper,
#cky-banner,
.cky-modal {
 position: fixed !important;
 left: 0 !important;
 right: 0 !important;
 bottom: 0 !important;
}
