/* ===== Base ===== */
:root{
  --navy:#09447b;
  --navy-rgb: 9, 68, 123;
  --navy-2:#0B2238;
  --blue:#2563EB;
  --gold:#F4B400;
  --bg:#F6F8FB;
  --text:#0F172A;
  --muted:#64748B;
  --border:#E2E8F0;
  --shadow:0 12px 28px rgba(15,23,42,.10);
  --radius:14px;
}

*{box-sizing:border-box}

html, body { overflow-x: hidden; }
html,body{margin:0;padding:0}
body{
  font-family:Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.5;
}
a{color:inherit}
.container{max-width:1140px;margin:0 auto;padding:0 20px}

/* ===== Icons ===== */
.icon{width:24px;height:24px;display:inline-block;color:currentColor}
.icon-xs{width:14px;height:14px}
.icon-sm{width:18px;height:18px}
.icon-lg{width:34px;height:34px}
.icon-lx{width:52px;height:52px}
.icon-xl{width:100%;height:100%}

/* ===== Topbar ===== */
.topbar{background:var(--navy);color:#E5E7EB;font-size:13px}
.topbar-inner{display:flex;justify-content:space-between;align-items:center;padding:10px 0;gap:16px;flex-wrap:wrap}
.topbar-left,.topbar-right{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.topbar-item{display:inline-flex;gap:8px;align-items:center;opacity:.95}
.topbar-link{text-decoration:none;opacity:.9}
.topbar-link:hover{opacity:1;text-decoration:underline}

/* ===== Header / Nav ===== */
.header{
  
  background:linear-gradient(
    90deg, 
    var(--navy) 0%,
    var(--navy) 40%,
    var(--blue) 50%,
    var(--navy) 60%,
    var(--navy) 100%);
  position:sticky;
  top:0;
  z-index:50;
  box-shadow:0 2px 10px 
  rgba(0,0,0,.12)
}
.nav{display:flex;align-items:center;justify-content:space-between;gap:14px;height:74px}
.brand{text-decoration:none;display:flex;align-items:center;gap:10px;color:#fff}
.brand-mark{
  width:34px;height:34px;border-radius:10px;
  background:rgba(255,255,255,.10);
  display:grid;place-items:center;
  font-family:Montserrat, Inter, sans-serif;font-weight:800;
}
.brand-name{font-family:Montserrat, Inter, sans-serif;font-weight:700;font-size:22px;letter-spacing:.2px}

.nav-links{display:flex;gap:18px;align-items:center}
.nav-links a{color:#EAF0F8;text-decoration:none;font-weight:600;font-size:14px;opacity:.92}
.nav-links a:hover{opacity:1}
.logo{
  height:80px;
  width:auto;
  display:block;
}
/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;border-radius:10px;padding:11px 16px;font-weight:700;font-family:Montserrat, Inter, sans-serif;font-size:14px;border:1px solid transparent;cursor:pointer}
.btn-cta{background:var(--gold);color:#1B2430;border-color:rgba(0,0,0,.08)}
.btn-cta:hover{filter:brightness(.98)}
.btn-ghost{background:rgba(255,255,255,.10);color:var(--text); border-color:rgba(255,255,255,.20)}
.btn-ghost:hover{background:rgba(255,255,255,.14)}
.btn-secondary{background:#0F2A44;color:#fff;border-color:#0F2A44}
.btn-secondary:hover{filter:brightness(1.03)}

/* Menu Desktop */
/* ===== Dropdowns (desktop) – rodzic klikalny + osobna strzałka ===== */
.dropdown{ position:relative; }

/* Główny “pill” (link + strzałka jako jedna całość) */
.drophead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  border-radius:10px;
}

.droplink{
  flex:1;
  color:#EAF0F8;
  text-decoration:none;
  font-weight:700;
  font-family:Montserrat, Inter, sans-serif;
  font-size:14px;
  opacity:.92;
  padding:10px 10px;
  display:inline-flex;
  align-items:center;
}

.dropbtn{
  flex:0 0 auto;
  background:transparent;
  border:0;
  color:#EAF0F8;
  cursor:pointer;
  opacity:.92;
  padding:10px 10px;
  display:inline-flex;
  align-items:center;
}

/* wspólny hover dla link+strzałka */
.dropdown:hover > .drophead,
.drophead:hover{
  background:rgba(255,255,255,.08);
}
.dropdown:hover .droplink,
.drophead:hover .droplink{ opacity:1; }

/* menu 1 poziomu */
.dropdown-menu{
  position:absolute;
  top:calc(100% + 10px);
  left:0;
  min-width:240px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:14px;
  box-shadow:var(--shadow);
  padding:8px;
  display:none;
  z-index:1000;
}
/* mostek hover (żeby nie znikało) */
.dropdown-menu::before{
  content:"";
  position:absolute;
  top:-10px; left:0; right:0;
  height:10px;
}

.dropdown:hover > .dropdown-menu,
.dropdown:focus-within > .dropdown-menu{ display:block; }

.dropdown-menu a{
  display:block;
  padding:10px 12px;
  border-radius:10px;
  text-decoration:none;
  font-weight:600;
  color:var(--text);
}
.dropdown-menu a:hover{ background:#F1F5F9; }

/* ===== Submenu ===== */
.dropdown-sub{ position:relative; }

.subhead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  border-radius:10px;
}

.sublink{
  flex:1;
  text-decoration:none;
  font-weight:700;
  color:var(--text);
  padding:10px 12px;
  display:flex;
  align-items:center;
}

.subbtn{
  flex:0 0 auto;
  background:transparent;
  border:0;
  cursor:pointer;
  padding:10px 10px;
  color:var(--text);
  display:inline-flex;
  align-items:center;
}

/* wspólny hover w submenu */
.dropdown-sub:hover > .subhead,
.subhead:hover{
  background:#F1F5F9;
}

.dropdown-submenu{
  position:absolute;
  top:0;
  left:100%;
  min-width:240px;
  margin-left:10px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:14px;
  box-shadow:var(--shadow);
  padding:8px;
  display:none;
  z-index:1000;
}
/* mostek hover do submenu */
.dropdown-submenu::before{
  content:"";
  position:absolute;
  left:-10px; top:0; bottom:0;
  width:10px;
}

.dropdown-sub:hover > .dropdown-submenu,
.dropdown-sub:focus-within > .dropdown-submenu{ display:block; }

/* animacja strzałek */
.dropbtn svg, .subbtn svg{ transition: transform .15s ease; }
.dropdown:hover .dropbtn svg{ transform: rotate(180deg); }
.dropdown-sub:hover .subbtn svg{ transform: rotate(180deg); }

/* Hamburger */
.nav-actions{display:flex;align-items:center;gap:12px}
.desktop-only{display:inline-flex}
.hamburger{display:none;width:44px;height:44px;border-radius:12px;border:1px solid rgba(255,255,255,.20);background:rgba(255,255,255,.08);cursor:pointer;padding:10px}
.hamburger span{display:block;height:2px;background:#fff;border-radius:2px;margin:5px 0}

/* Mobile menu */
.mobile-menu{background:#0B2238;border-top:1px solid rgba(255,255,255,.10)}
.mobile-inner{padding:14px 0 18px;display:grid;gap:10px}
.mobile-link,.mobile-sublink{color:#EAF0F8;text-decoration:none;padding:12px 14px;border-radius:12px;font-weight:700}
.mobile-link:hover,.mobile-sublink:hover{background:rgba(255,255,255,.08)}
.mobile-sublink{font-weight:600;opacity:.95}
.mobile-acc{
  width:100%;text-align:left;border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.06);color:#EAF0F8;
  padding:12px 14px;border-radius:12px;font-weight:800;
  display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer
}
.mobile-acc.sub{background:rgba(255,255,255,.04);font-weight:700}
.mobile-panel{display:grid;gap:8px;padding:8px 0 6px 10px}

/* Mobile menu: link + toggle */
.mobile-row{
  display:flex;
  align-items:center;
  gap:8px;
}

.mobile-row > a{
  flex:1;
}

.mobile-acc-toggle{
  background:transparent;
  border:0;
  color:#EAF0F8;
  width:40px;
  height:40px;
  border-radius:10px;
  display:grid;
  place-items:center;
  cursor:pointer;
}

.mobile-acc-toggle:hover{
  background:rgba(255,255,255,.10);
}

.mobile-acc-toggle[aria-expanded="true"] svg{
  transform:rotate(180deg);
}

/* Mobile accordion: hidden must always hide */
.mobile-panel[hidden]{
  display: none !important;
}

.mobile-menu[hidden]{
  display:none !important;
}

/* ===== Hero ===== */
.hero{position:relative;isolation:isolate}
.hero-bg{
  position:absolute;inset:0;
  background:
    linear-gradient(
      90deg,
      rgba(var(--navy-rgb),1) 0%,
      rgba(var(--navy-rgb),1) 40%,
      rgba(var(--navy-rgb),.40) 60%,
      rgba(var(--navy-rgb),.40) 80%,
      rgba(var(--navy-rgb),.10) 100%,
      rgba(var(--navy-rgb),.10) 100%
    ),
url("assets/images/hero.jpg") center/cover no-repeat;
  z-index:-1;
}

/* ===== Hero slider (home) — FADE + BLUR + karta 1140x520 =====
   Slider jest tłem sekcji .hero (pod treścią), tak jak wcześniej.
   Wymaga JS, który dodaje klasę .is-active do aktywnego slajdu.
*/
.hero-slider{
  position:absolute;
  inset:0;
  z-index:-1;
  overflow:hidden;
  border-bottom:1px solid rgba(255,255,255,.10);
}

/* Track trzyma wysokość obrazu (1140x520) */
.hero-slider__track{
  position:relative;
  height:100%;
}

/* Slajdy nakładane na siebie (fade) */
.hero-slide{
  position:absolute;
  inset:0;
  overflow:hidden;
  min-height:100%;
opacity:0;
  pointer-events:none;
  transition:opacity .55s ease;
  z-index:0;
}

.hero-slide.is-active{
  opacity:1;
  pointer-events:auto;
  z-index:2;
}

/* Pseudo-warstwy tylko na aktywnym (inaczej “mleko” z nieaktywnych) */
.hero-slide:not(.is-active)::before,
.hero-slide:not(.is-active)::after{
  display:none;
}

/* Rozmyte tło z tego samego obrazka (ustawianego przez --hero-bg w inline style) */
.hero-slide::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:var(--hero-bg);
  background-size:cover;
  background-position:center;
  filter:blur(3px);
  transform:scale(1.08);
  opacity:.95;
  z-index:0;
}

/* “Mgiełka” po lewej (opcjonalnie) */
.hero-slide::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(
    90deg,
    rgba(255,255,255,.70) 0%,
    rgba(255,255,255,.35) 45%,
    rgba(255,255,255,0) 72%
  );
  pointer-events:none;
  z-index:1;
}

/* Karta 1140x520 na środku */
.hero-slide__inner{
  position:relative;
  z-index:2;
  max-width:1140px;
  margin:0 auto;
  padding:0 20px;
  display:flex;
  align-items:center;
  min-height:100%;
}

.hero-slide__card{
  display:block;
  width:1140px;
  max-width:100%;
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 12px 28px rgba(15,23,42,.18);
  background:#fff;
}

.hero-slide__img{
  display:block;
  width:100%;
  height:520px;
  object-fit:cover;
  object-position:center;
}

/* Stary overlay-link po całym slajdzie – wyłączamy (link jest na karcie) */
.hero-slide__link{display:none !important;}

/* Strzałki / kropki – działają jak wcześniej */
.hero-slider__btn{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:3;
  width:44px;height:44px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.25);
  background:rgba(8,17,26,.35);
  color:#fff;
  font-size:28px;
  line-height:1;
  display:grid;
  place-items:center;
  cursor:pointer;
}
.hero-slider__btn:hover{background:rgba(8,17,26,.55);}
.hero-slider__btn--prev{left:14px}
.hero-slider__btn--next{right:14px}

.hero-slider__dots{
  position:absolute;
  left:50%;
  bottom:14px;
  transform:translateX(-50%);
  display:flex;
  gap:10px;
  z-index:3;
}
.hero-slider__dot{
  width:10px;height:10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.55);
  background:rgba(255,255,255,.20);
  cursor:pointer;
}
.hero-slider__dot.is-active,
.hero-slider__dot[aria-current="true"]{
  background:rgba(255,255,255,.90);
}

@media (max-width:900px){
  .hero-slider__btn{display:none}
  .hero-slider__dots{bottom:10px}

  .hero-slide__img{height:360px}
}


.hero-inner{min-height:520px;display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:center;padding:52px 0 34px}
.hero h1{
  color:#fff;font-family:Montserrat, Inter, sans-serif;font-weight:800;
  font-size:44px;line-height:1.12;margin:0 0 18px
}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.hero-card{
  height: 170px;
  margin-top: 170px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(255,255,255,.55);
  border-radius:8px;
  box-shadow:0 16px 34px rgba(0,0,0,.18);
  padding:18px 18px 18px 18px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.hero a{
  text-decoration: none;
}
.hero-card-head strong{display:block;font-family:Montserrat;font-weight:800;font-size:28px;color:var(--navy)}
.hero-card-head span{display:block;color:var(--muted);font-weight:600;font-size:14px;margin-top:4px}
.hero-card-icon{width:100px;height:100px;border-radius:16px;background:rgba(37,99,235,.10);display:grid;place-items:center;color:var(--navy)}

/* ===== USP ===== */
.usp{background:#fff;border-bottom:1px solid var(--border)}
.usp-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:0}
.usp-item{
  padding:18px 12px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  border-right:1px solid var(--border);
  color:var(--navy);
  font-weight:800;font-family:Montserrat;
}
.usp-item:last-child{border-right:0}
.usp-item .icon{color:var(--navy)}
.usp-item span{font-size:13px;opacity:.95}

/* ===== Sections ===== */
.section{padding:46px 0}
.section-head h2{margin:0 0 18px;font-family:Montserrat;font-weight:800;color:var(--navy);font-size:28px}
.section-head h3{margin:0 0 18px;font-family:Montserrat;font-weight:800;color:var(--navy);font-size:20px}
.section-head.center{text-align:center}
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.news-card{
  background:#fff;border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:0 10px 24px rgba(15,23,42,.06);
  transition:transform .15s ease, box-shadow .15s ease;
}
.news-card:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(15,23,42,.10)}
.news-card img{width:100%;height:180px;object-fit:cover;display:block}
.news-body{padding:14px 14px 16px}
.chip{display:inline-block;background:#0F2A44;color:#fff;border-radius:999px;padding:6px 10px;font-weight:800;font-family:Montserrat;font-size:12px}
.news-card h3{margin:10px 0 6px;font-size:16px;font-family:Montserrat;font-weight:800;color:var(--text)}
.news-card p{margin:0 0 12px;color:var(--muted);font-weight:500;font-size:14px}
.link{display:inline-flex;align-items:center;gap:6px;color:var(--navy);font-weight:800;text-decoration:none;font-family:Montserrat}
.link:hover{text-decoration:underline}

/* ===== Why ===== */
.why{
  background:linear-gradient(135deg, rgba(15,42,68,1) 0%, rgba(11,34,56,1) 62%, rgba(15,42,68,1) 100%);
  color:#fff;
  padding:42px 0;
}
.why-inner{display:grid;grid-template-columns:1.2fr .8fr;gap:22px;align-items:center}
.why h2{margin:0 0 10px;font-family:Montserrat;font-weight:900}
.why p{margin:0;color:rgba(255,255,255,.85);font-weight:500;max-width:54ch}
.why-stats{
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.12);
  border-radius:16px;
  display:grid;grid-template-columns:repeat(3,1fr);
  overflow:hidden;
}
.stat{padding:16px 14px;text-align:center;border-right:1px solid rgba(255,255,255,.14)}
.stat:last-child{border-right:0}
.stat strong{display:block;font-family:Montserrat;font-weight:900;font-size:28px}
.stat span{display:block;font-weight:700;color:rgba(255,255,255,.82);font-size:13px;margin-top:4px}

/* ===== Offer ===== */
.offer{padding-top:34px}
.offer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.offer-grid12{
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 22px;
}
.offer-card{
  background:#fff;border:1px solid var(--border);border-radius:16px;
  box-shadow:0 10px 24px rgba(15,23,42,.06);
  padding:22px 20px 20px;
  text-align:center;
}
.offer-icon{
  width:64px;height:64px;border-radius:16px;background:rgba(37,99,235,.08);
  display:grid;place-items:center;margin:0 auto 12px;color:var(--navy);
}
.offer-card h3{margin:0 0 8px;font-family:Montserrat;font-weight:900;color:var(--text)}
.offer-card p{margin:0 0 14px;color:var(--muted);font-weight:500;font-size:14px}

/* RESPONSYWNY FILM */
.video{
  position:relative;
  width:100%;
  padding-top:56.25%; /* proporcja 16:9 */
}

.video iframe{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  border:0;
  border-radius:12px;
}

/* ============================== Partnerzy ================================= */
.partners{padding-top:34px}
.partners-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.partner-card{
  background:#fff;border:1px solid var(--border);border-radius:16px;
  box-shadow:0 10px 24px rgba(15,23,42,.06);
  padding:22px 20px 20px;
  text-align:center;
}
.partner-card img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.partner-card:hover img {
  transform: scale(1.05);
}

/* ===== Gallery ===== */
.gallery{padding:0 0 8px}
.gallery-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:#fff}
.gallery-grid img{width:100%;height:140px;object-fit:cover;display:block;border-right:1px solid var(--border)}
.gallery-grid img:last-child{border-right:0}

/* ===== CTA ===== */
.cta{
  background:
    linear-gradient(135deg, rgba(15,42,68,.95) 0%, rgba(37,99,235,.55) 52%, rgba(15,42,68,.95) 100%);
  padding:44px 0;
}
.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.cta h2{margin:0;color:#fff;font-family:Montserrat;font-weight:900;font-size:22px}
.cta .btn-cta{padding:12px 18px}

/* ===== Footer ===== */
.footer{background:#071425;color:#C7D2FE;padding:34px 0 0}
.footer-inner{display:grid;grid-template-columns:1.2fr .8fr 1fr;gap:24px;align-items:start}
.footer a{display:block;color:#EAF0F8;text-decoration:none;opacity:.9;margin:8px 0;font-weight:600}
.footer a:hover{opacity:1;text-decoration:underline}
.footer h3{margin:0 0 10px;font-family:Montserrat;font-weight:900;color:#fff}
.muted{color:var(--muted);font-weight:500;margin:8px 0}
.footer-item{display:flex;align-items:center;gap:10px;margin:10px 0;color:rgba(234,240,248,.85);font-weight:600}
.footer-bottom{margin-top:22px;border-top:1px solid rgba(255,255,255,.10);padding:14px 0;color:rgba(234,240,248,.70);font-weight:600}

/* ===== Responsive ===== */
@media (max-width: 1000px){
  .usp-grid{grid-template-columns:repeat(3,1fr)}
  .usp-item:nth-child(3){border-right:0}
  .usp-item:nth-child(4),.usp-item:nth-child(5){display:none}
  .hero-inner{grid-template-columns:1fr;gap:16px}
  .hero-card{max-width:520px}
  .gallery-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width: 820px){
  .news-grid,.offer-grid,.partners-grid{grid-template-columns:1fr}
  .offer-grid12{grid-template-columns:1fr;}
  .why-inner{grid-template-columns:1fr}
  .why-stats{grid-template-columns:repeat(3,1fr)}
  .desktop-only{display:none}
  .nav-links{display:none}
  .hamburger{display:inline-block}
  .cta-inner{justify-content:center;text-align:center}
  .cta .btn{width:100%}
}
@media (max-width: 520px){
  .hero h1{font-size:32px}
  .offer-grid12{grid-template-columns:1fr;}
  .why-stats{grid-template-columns:1fr}
  .stat{border-right:0;border-bottom:1px solid rgba(255,255,255,.14)}
  .stat:last-child{border-bottom:0}
  .gallery-grid{grid-template-columns:repeat(2,1fr)}
}

/*svg.icon { width: 48px; height: 48px; display: inline-block; }
.icon-xs { width: 18px; height: 18px; }
.icon use { pointer-events: none; }*/

/* Paginacja */
.pagination{
  display:flex;
  gap:8px;
  justify-content:center;
  align-items:center;
  margin:24px 0;
}
.page{
  display:inline-flex;
  min-width:38px;
  height:38px;
  align-items:center;
  justify-content:center;
  border:1px solid #ddd;
  border-radius:10px;
  padding:0 10px;
  text-decoration:none;
}
.page.active{
  font-weight:700;
  border-color:#999;
}
.page.disabled{
  opacity:.5;
  cursor:not-allowed;
}
.ellipsis{
  padding:0 6px;
  opacity:.7;
}

.gallery-grid{
  display:grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 14px;
}

.gallery-item{
  border:0;
  padding:0;
  background:none;
  cursor:pointer;
  width:100%;
  aspect-ratio: 4 / 3;
  overflow:hidden;
  border-radius:10px;
  display:block;
}

.gallery-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.gallery-item:hover img {
  transform: scale(1.05);
}

/* Lightbox (pancerny) */
.lb{
  position: fixed !important;
  inset: 0 !important;
  background: rgba(0,0,0,.92) !important;
  display: none;
  z-index: 2147483647; /* najwyżej */
}

.lb.open{ display:block; }

.lb *{ box-sizing: border-box; }

.lb__stage{
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 70px 70px;
}

.lb__img{
  max-width: 95vw !important;
  max-height: 90vh !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
  display: block;
}

.lb__close{
  position: absolute;
  top: 14px;
  right: 18px;
  font-size: 38px;
  line-height: 1;
  background: transparent;
  border: 0;
  color: #fff;
  cursor: pointer;
  z-index: 2;
}

.lb__nav{
  position: absolute;
  top: 0;
  bottom: 0;
  width: 70px;
  background: transparent;
  border: 0;
  color:#fff;
  font-size: 54px;
  cursor: pointer;
  z-index: 2;
  opacity: .85;
}
.lb__nav:hover{ opacity: 1; }
.lb__prev{ left: 0; }
.lb__next{ right: 0; }

.lb__counter{
  position: absolute;
  top: 18px;
  left: 18px;
  color:#fff;
  font-weight: 700;
  z-index: 2;
}

@media (max-width: 700px){
  .lb__stage{ padding: 56px 10px; }
  .lb__nav{ width: 52px; font-size: 44px; }
}

table {
  table-layout: fixed;
  width: 100%;
  border-collapse:collapse;
}

td, th {
  min-width: 0; /* BARDZO WAŻNE przy flex */
  word-wrap: break-word;
  overflow-wrap: anywhere;
  white-space: normal;
}

.col-title {
  min-width: 0;
  white-space: normal !important;
  word-break: break-all;
  overflow-wrap: anywhere;
}

/*Slider / Home media*/
/* LAYOUT */
.gallery-layout{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:20px;
}

@media (max-width: 900px){
  .gallery-layout{
    grid-template-columns:1fr;
  }
}

/* Prawa kolumna – wideo */
.home-media{
  min-width:0;
}

.youtube-embed{
  position:relative;
  width:100%;
  border-radius:20px;
  overflow:hidden;
  background: rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.12);
}

.youtube-embed::before{
  content:"";
  display:block;
  padding-top:56.25%; /* 16:9 */
}

.youtube-embed iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}

/* Fallback SLIDER (gdy brak aktywnych filmów) */
.gallery-slider{
  position:relative;
  height:360px;
  border-radius:20px;
  overflow:hidden;
  background: rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.12);
}

.gallery-slider .slide-link{
  position:absolute;
  inset:0;
  display:block;

  opacity:0;
  visibility:hidden;
  pointer-events:none;

  animation: fadeLink 25s infinite;
  animation-delay: calc(var(--i) * 5s);
}

.gallery-slider .slide-link img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.gallery-slider .slide-placeholder{
  display:block;
  width:100%;
  height:100%;
  background: rgba(255,255,255,0.06);
}

@keyframes fadeLink{
  0%   {opacity:0; visibility:hidden; pointer-events:none;}
  1%   {visibility:visible;}
  10%  {opacity:1; pointer-events:auto;}
  30%  {opacity:1; pointer-events:auto;}
  40%  {opacity:0; pointer-events:none;}
  41%  {visibility:hidden;}
  100% {opacity:0; visibility:hidden; pointer-events:none;}
}

/* KAFELKI */
.gallery-cards{
  display:grid;
  grid-template-columns: repeat(auto-fill, minmax(200px,1fr));
  gap:12px;
}

.gallery-card{
  display:block;
  border-radius:16px;
  overflow:hidden;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.12);
}

.gallery-card img{
  width:100%;
  height:120px;
  object-fit:cover;
}

.gallery-card .card-body{
  padding:10px 12px;
}

/* ==========================================================
   A11Y: global focus + font scale
   ========================================================== */
:root{ --a11y-font-scale: 1; }
html{ font-size: calc(16px * var(--a11y-font-scale)); }

:focus-visible{ outline: 3px solid #f5c542; outline-offset: 3px; }

.skip-link{
  position:absolute; left:-9999px; top:10px;
  background:#111; color:#fff; padding:10px 12px; border-radius:12px;
  z-index:10000;
}
.skip-link:focus{ left:10px; }

/* underline links (toggle) */
.a11y-underline a{ text-decoration: underline !important; text-underline-offset: .15em; }

/* High contrast */
.a11y-contrast, .a11y-contrast body{
  background:#000 !important;
  color:#fff !important;
}
.a11y-contrast a{ color:#ffd64d !important; text-decoration: underline !important; }
.a11y-contrast .btn, .a11y-contrast button{ border-color:#fff !important; }

/* Negative contrast (invert) */
.a11y-negative{
  filter: invert(1) hue-rotate(180deg);
  background:#fff;
}
.a11y-negative img,
.a11y-negative video,
.a11y-negative iframe,
.a11y-negative svg{
  filter: invert(1) hue-rotate(180deg);
}

/* ==========================================================
   A11Y floating widget
   ========================================================== */
.a11y-fab{
  position:fixed; right:14px; top:140px;
  width:52px; height:52px;
  border: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  border-radius:14px;
  padding:0;
  background:#0b0f18;
  color:#fff;
  font-size:22px;
  display:grid; place-items:center;
  z-index:9999;
  cursor:pointer;
}
/* Jeśli ikonka ma własny obrys (np. rect w symbolu) to go wyłącz */
.a11y-fab svg{
  outline: none !important;
  filter: none !important;
}

.a11y-panel{
  position:fixed; right:14px; top:160px;
  width:270px;
  background:#0b0f18;
  color:#fff;
  border:1px solid rgba(255,255,255,.18);
  border-radius:16px;
  z-index:9999;
  box-shadow:0 18px 50px rgba(0,0,0,.35);
}

.a11y-panel-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 14px 10px 14px;
}

.a11y-panel-close{
  width:34px;height:34px;border-radius:10px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.06);
  color:#fff; cursor:pointer;
}

.a11y-panel-body{padding:10px 12px 14px 12px; display:flex; flex-direction:column; gap:6px;}

.a11y-item{
  text-align:left;
  width:100%;
  border:0;
  background:transparent;
  color:#59a6ff;
  font-weight:700;
  padding:10px 10px;
  border-radius:12px;
  cursor:pointer;
}

.a11y-item:hover{background:rgba(255,255,255,.06); color:#ffd64d; }

.a11y-sep{height:1px; background:rgba(255,255,255,.10); margin:6px 0;}

.a11y-fab-icon{
  width:52px;
  height:52px;
  display:block;
  pointer-events:none; /* kluczowe */
}

/* ==========================================================
   Cookies banner / modal (basic)
   ========================================================== */
.cookie-banner{
  position:fixed; left:16px; right:16px; bottom:16px;
  z-index:9998;
}
.cookie-banner .cookie-row{
  background:#fff;
  border:1px solid rgba(0,0,0,.12);
  border-radius:16px;
  padding:14px;
  display:flex;
  gap:16px;
  align-items:flex-start;
  justify-content:space-between;
  box-shadow:0 14px 40px rgba(0,0,0,.18);
}
.cookie-banner p{margin:6px 0 0 0;}
.cookie-actions{display:flex; gap:10px; flex-wrap:wrap; align-items:center;}

.cookie-modal{
  position:fixed; inset:0;
  background:rgba(0,0,0,.55);
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:16px;
}
.cookie-modal[hidden]{display:none !important;}

.cookie-card{
  width:min(720px, 96vw);
  background:#fff;
  border-radius:18px;
  padding:18px;
  box-shadow:0 18px 60px rgba(0,0,0,.25);
}
.cookie-head{display:flex; align-items:flex-start; justify-content:space-between; gap:12px;}
.cookie-lead{margin:6px 0 14px 0;}
.cookie-prefs{display:flex; flex-direction:column; gap:10px; margin:10px 0 14px 0;}
.cookie-pref{display:flex; gap:12px; border:1px solid rgba(0,0,0,.12); border-radius:14px; padding:12px;}
.cookie-pref small{display:block; opacity:.8; margin-top:4px;}

.linklike{
  background:transparent; border:0; padding:0;
  color:inherit; text-decoration:underline;
  cursor:pointer;
  font:inherit;
}

@media (max-width: 640px){
  .cookie-banner .cookie-row{flex-direction:column;}
  .a11y-panel{width: calc(100vw - 28px);}
}

/* ===== TOP Info (home block + popup) ===== */
.topinfo{padding-top:22px;padding-bottom:0}
.topinfo-box{
  border:1px solid rgba(9,68,123,0.18);
  background:rgba(255,255,255,0.82);
  border-radius:18px;
  padding:18px 18px 16px;
  box-shadow:0 12px 28px rgba(15,23,42,.08);
}
.topinfo-title{margin:0;font-family:Montserrat;font-weight:800;color:var(--navy);font-size:22px;line-height:1.2}
.topinfo-body{margin-top:10px;color:var(--text)}
.topinfo-body p{margin:0 0 10px}
.topinfo-body p:last-child{margin-bottom:0}

.topinfo-modal{position:fixed;inset:0;display:none;z-index:10000}
.topinfo-modal[aria-hidden="false"]{display:block}
.topinfo-modal__overlay{position:absolute;inset:0;background:rgba(15,23,42,.55)}
.topinfo-modal__dialog{
  position:relative;
  width:min(720px, calc(100vw - 40px));
  margin: clamp(24px, 8vh, 84px) auto 24px;
  background:#fff;
  border-radius:18px;
  box-shadow:0 24px 60px rgba(15,23,42,.25);
  padding:18px 18px 16px;
}

.topinfo-modal__title{margin:0 0 10px;font-family:Montserrat;font-weight:800;color:var(--navy);font-size:20px;line-height:1.2}
.topinfo-modal__body{color:var(--text)}
.topinfo-modal__close{
  position:absolute;top:10px;right:10px;
  width:38px;height:38px;
  border:1px solid rgba(15,23,42,.12);
  background:rgba(255,255,255,.95);
  border-radius:12px;
  display:grid;place-items:center;
  cursor:pointer;
}
.topinfo-modal-open{overflow:hidden}

/* TOP Info – grid na home */
.topinfo-grid{
  display:grid;
  grid-template-columns: 1fr;
  gap: 14px;
}
/* =========================
   TOP INFO – image safety
   ========================= */

/* Jeśli treść TOP Info jest w jakimś wrapperze/kaflu – przytnij w razie czego */
.topinfo-card,
.topinfo-item,
.topinfo-block,
.topinfo-box,
.topinfo-grid__item,
.topinfo-content{
  overflow: hidden;
}

/* Najważniejsze: obrazki w treści TOP Info nie mogą wychodzić poza kontener */
.topinfo-card img,
.topinfo-item img,
.topinfo-block img,
.topinfo-box img,
.topinfo-grid__item img,
.topinfo-content img{
  display: block;
  max-width: 100%;
  height: auto;
}

/* Gdy edytor wstawia obrazek z width/height inline – to też go trzyma */
.topinfo-card img[width],
.topinfo-item img[width],
.topinfo-block img[width],
.topinfo-box img[width],
.topinfo-grid__item img[width],
.topinfo-content img[width]{
  width: 100% !important;
  height: auto !important;
}

/* Jeśli w TOP Info masz <figure> z marginesami – uporządkuj */
.topinfo-card figure,
.topinfo-item figure,
.topinfo-block figure,
.topinfo-box figure,
.topinfo-grid__item figure,
.topinfo-content figure{
  margin: 0;
}
/* Opcjonalnie: obraz w TOP Info jako miniaturka w stałym kadrze */
.topinfo-card img,
.topinfo-item img,
.topinfo-grid__item img{
  width: 100%;
  max-width: 100%;
  height: 220px;      /* ustaw jak chcesz */
  object-fit: cover;  /* przycina */
}

/* Na większych ekranach ustawiamy 1/2/3 zależnie od klasy */
@media (min-width: 1024px){
  .topinfo-grid--cols-1{ grid-template-columns: 1fr; }
  .topinfo-grid--cols-2{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .topinfo-grid--cols-3{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* =========================
   TOP INFO POPUP – zabezpieczenie szerokości
   ========================= */

/* Dialog nigdy nie może być szerszy niż viewport */
.topinfo-modal__dialog{
  width: min(980px, calc(100vw - 28px));
  max-width: calc(100vw - 28px);
  box-sizing: border-box;
  overflow: hidden; /* przycina "rozpychanie" przez dzieci */
}

/* Jeśli masz wewnętrzny kontener treści (często bywa), to niech może scrollować */
.topinfo-modal__dialog .topinfo-modal__content,
.topinfo-modal__dialog .topinfo-modal__body,
.topinfo-modal__dialog .richtext,
.topinfo-modal__dialog .content{
  max-height: calc(100vh - 140px);
  overflow: auto;
}

/* Najważniejsze: obrazki/iframe w treści modala nie mogą wychodzić poza dialog */
.topinfo-modal__dialog img,
.topinfo-modal__dialog video,
.topinfo-modal__dialog iframe{
  display: block;
  max-width: 100%;
  height: auto;
}

/* Gdy edytor wstawi width/height inline – wymuś dopasowanie do szerokości */
.topinfo-modal__dialog img[width],
.topinfo-modal__dialog iframe[width],
.topinfo-modal__dialog video[width]{
  width: 100% !important;
  height: auto !important;
}

/* Długie nagłówki/teksty niech się łamią zamiast wypychać modal */
.topinfo-modal__dialog h1,
.topinfo-modal__dialog h2,
.topinfo-modal__dialog h3,
.topinfo-modal__dialog p,
.topinfo-modal__dialog li{
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* Opcjonalnie: uporządkuj <figure> z edytora */
.topinfo-modal__dialog figure{ margin: 0; }

/* =========================
   HERO SLIDER (FADE) + BLUR
   ========================= */

.hero-slider{
  position: relative;
}

/* Track trzyma wysokość hero */
.hero-slider__track{
  position: relative;
  height: 520px; /* 1140x520 */
}

/* Slajdy są nakładane na siebie (fade) */
.hero-slide{
  position: absolute;
  inset: 0;
  overflow: hidden;
  min-height: 520px;

  opacity: 0;
  pointer-events: none;
  transition: opacity .55s ease;
  z-index: 0;
}

/* Aktywny slajd */
.hero-slide.is-active{
  opacity: 1;
  pointer-events: auto;
  z-index: 2;
}

/* Bluru i mgiełki NIE renderujemy dla nieaktywnych slajdów
   (ważne przy fade, bo slajdy leżą jeden na drugim) */
.hero-slide:not(.is-active)::before,
.hero-slide:not(.is-active)::after{
  display: none;
}

/* Rozmyte tło (tylko aktywny slajd) */
.hero-slide::before{
  content:"";
  position: absolute;
  inset: 0;
  background-image: var(--hero-bg);
  background-size: cover;
  background-position: center;
  filter: blur(3px);
  transform: scale(1.08);
  opacity: .95;
  z-index: 0;
}

/* Delikatna mgiełka (opcjonalna) */
.hero-slide::after{
  content:"";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(255,255,255,.70) 0%,
    rgba(255,255,255,.35) 45%,
    rgba(255,255,255,0) 72%
  );
  pointer-events: none;
  z-index: 1;
}

/* Wewnętrzny kontener z ostrą “kartą” */
.hero-slide__inner{
  position: relative;
  z-index: 2;
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 0;
  display: flex;
  align-items: center;
  min-height: 520px;
}

/* Karta 1140px (klikana jako link) */
.hero-slide__card{
  display: block;
  width: 1140px;
  max-width: 100%;
  border-radius: 0px;
  overflow: hidden;
  box-shadow: 0 12px 28px rgba(15,23,42,.18);
  background: #fff;
}

/* Ostry obraz 1140x520 */
.hero-slide__img{
  display: block;
  width: 100%;
  height: 520px;
  object-fit: cover;
  object-position: center;
}

/* Jeśli miałeś stary overlay-link po całym slajdzie */
.hero-slide__link{
  display: none !important;
}


/* === HERO SLIDER safety (legacy overlay link off) === */
.hero-slide__link{ display:none !important; }
/* =========================
   HERO SLIDER – MOBILE SCALE FIX
   ========================= */

@media (max-width: 768px){

  /* Track ma wysokość proporcjonalną do szerokości */
  .hero-slider__track{
    height: auto;
    aspect-ratio: 1140 / 520;
  }

  .hero-slide{
    min-height: auto;
  }

  .hero-slide__inner{
    min-height: auto;
    display: block;
  }

  /* Karta skaluje się proporcjonalnie */
  .hero-slide__card{
    width: 100%;
  }

  /* Obraz NIE ma stałej wysokości */
  .hero-slide__img{
    height: auto;
    aspect-ratio: 1140 / 520;
    object-fit: contain;   /* zamiast cover */
  }
  .prose img{
  display: block;
  max-width: 100%;
  height: auto;
}


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