:root{
  --bg:#07090d;
  --text:#eef3fb;
  --muted: rgba(238,243,251,.72);

  --green:#4a7b47;
  --green2:#2d4f2c;

  --shadow: 0 30px 120px rgba(0,0,0,.65);

  --cornerW: 34px;
  --cornerT: 2px;

  --contentPadX: 75px;
  --framePad: 20px;

  /* buttony -25% */
  --btnScale: .75;
  --btnPadY: 20px;
  --btnPadX: 16px;

  --gapTextToBtn: 20px;
  --btnInlineGap: 10px;

  --frameLine: rgba(255,255,255,.045);
  --frameLineInner: rgba(255,255,255,.055);

  --heroGap: 20px;

  /* oferta: 10px od dolnej krawędzi */
  --actionsBottomPad: 10px;

  /* responsywna typografia */
  --pSize: clamp(13px, 1.05vw, 15px);
  --pLine: clamp(1.55, 1.7, 1.8);

  /* Modal safe offset */
  --headerH: 64px;
  --safeTop: env(safe-area-inset-top, 0px);

  /* wymagane marginesy modala */
  --modalPadMobileX: 20px;  /* L/R 20px */
  --modalTopGap: 80px;      /* 80px od headera */
}

*{ box-sizing:border-box; }
html,body{ height:100%; }
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  color: var(--text);
  background: var(--bg);
  overflow-x:hidden;
}
a{ color:inherit; text-decoration:none; }
button{ font: inherit; }

/* ===== Background ===== */
.bg{
  position:fixed; inset:0;
  background:
    linear-gradient(to bottom, rgba(0,0,0,.62), rgba(0,0,0,.68)),
    var(--bgImage, url("forest-bg.png")) center/cover no-repeat;
  filter: contrast(1.05) brightness(.85) saturate(.95);
  z-index:-5;
  transform: scale(1.02);
}
.vignette{
  position:fixed; inset:-40px;
  background: radial-gradient(70% 55% at 50% 38%, transparent 0 44%, rgba(0,0,0,.55) 70%, rgba(0,0,0,.84) 100%);
  z-index:-4;
  pointer-events:none;
}
.grain{
  position:fixed; inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E");
  mix-blend-mode: overlay;
  opacity:.12;
  z-index:-3;
  pointer-events:none;
}
.fog{
  position:fixed; inset:-20%;
  background:
    radial-gradient(closest-side at 20% 35%, rgba(160,210,255,.10), transparent 62%),
    radial-gradient(closest-side at 70% 60%, rgba(140,200,255,.08), transparent 62%);
  filter: blur(24px);
  opacity:.38;
  z-index:-2;
  pointer-events:none;
  animation: fogDrift 22s linear infinite;
}
@keyframes fogDrift{
  0%   { transform: translate3d(-1.8%, -1%, 0) scale(1.02); }
  50%  { transform: translate3d(1.8%,  1%, 0) scale(1.06); }
  100% { transform: translate3d(-1.8%, -1%, 0) scale(1.02); }
}

/* ===== Layout ===== */
.wrap{ width:100%; padding: 0 var(--contentPadX); }
@media (max-width: 860px){ :root{ --contentPadX: 28px; } }
@media (max-width: 560px){ :root{ --contentPadX: 16px; } }

#page{ padding-top: 0px; }
section{ margin: 100px 0; padding: 0; }

/* ===== blur sekcja-po-sekcji ===== */
section.blurSection{
  --sblur: 0px;
  filter: blur(var(--sblur));
  transition: filter .08s linear;
  will-change: filter;
}

/* ===== H2 lines ===== */
.h2lines{
  margin: 0;
  text-align:center;
  font-size: 14px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(238,243,251,.82);
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 16px;
}
.h2lines:before,
.h2lines:after{
  content:"";
  height:1px;
  width: min(140px, 18vw);
  background: rgba(74,123,71,.55);
  box-shadow: 0 0 18px rgba(92,255,150,.12);
}
.afterH2{ margin-top: 50px; }

/* ===== Header ===== */
header{
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 50;
  transform: translateY(0);
  transition: transform .22s ease, background .22s ease, backdrop-filter .22s ease;
  background: rgba(0,0,0,.22);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(255,255,255,.06);
}
header.hide{ transform: translateY(-110%); }
header .bar{
  padding: 14px var(--contentPadX);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 14px;
}
.logo{
  height: 30px;
  width:auto;
  opacity:.95;
  filter: drop-shadow(0 14px 18px rgba(0,0,0,.45));
}

/* NAV base */
.nav{
  display:flex;
  gap: 14px;
  font-size: 13px;
  color: rgba(238,243,251,.72);
}
.nav a{
  padding: 8px 10px;
  border-radius: 999px;
  transition: .18s ease;
}
.nav a:hover{
  background: rgba(255,255,255,.06);
  color: rgba(238,243,251,.9);
}

/* Hamburger */
.hamburger{
  display:none;
  width: 44px; height: 44px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.06);
  cursor:pointer;
  padding: 0;
  position:relative;
}
.hamburger span{
  position:absolute;
  left: 11px; right: 11px;
  height: 2px;
  background: rgba(238,243,251,.9);
}
.hamburger span:nth-child(1){ top: 14px; }
.hamburger span:nth-child(2){ top: 21px; }
.hamburger span:nth-child(3){ top: 28px; }

/* (zostawiamy, ale i tak FORCE na dole przebije) */
@media (max-width: 980px){
  .nav{ display:none; }
  .hamburger{ display:block; }
}

/* Drawer */
.drawerBackdrop{
  position:fixed; inset:0;
  background: rgba(0,0,0,.55);
  opacity:0;
  pointer-events:none;
  transition: opacity .2s ease;
  z-index: 60;
}
.drawerBackdrop.open{ opacity:1; pointer-events:auto; }
.drawer{
  position:fixed;
  top:0; left:0;
  height:100%;
  width: min(320px, 86vw);
  background: rgba(8,10,14,.92);
  border-right: 1px solid rgba(255,255,255,.10);
  backdrop-filter: blur(12px);
  transform: translateX(-102%);
  transition: transform .24s ease;
  z-index: 61;
  padding: 18px 16px;
  display:flex;
  flex-direction:column;
  gap: 10px;
}
.drawer.open{ transform: translateX(0); }
.drawerHeader{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 10px;
  margin-bottom: 8px;
}
.drawerTitle{
  font-size: 12px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(238,243,251,.78);
}
.drawerClose{
  width: 44px; height: 44px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.06);
  cursor:pointer;
  padding:0;
  color: rgba(238,243,251,.92);
}
.drawer a{
  display:block;
  padding: 12px 12px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  color: rgba(238,243,251,.92);
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: 12px;
}

/* ===== Buttons ===== */
.btn{
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.06);
  cursor:pointer;
  padding: var(--btnPadY) var(--btnPadX);
  font-weight: 800;
  letter-spacing: .02em;
  transition: .18s ease;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  user-select:none;
  white-space: nowrap;
  transform: scale(var(--btnScale));
  transform-origin: left center;
  color: rgba(238,243,251,.92);
}
.btnPrimary{
  background: linear-gradient(180deg, var(--green), var(--green2));
  border-color: rgba(255,255,255,.08);
  color: #f3fff4;
  box-shadow: 0 14px 34px rgba(0,0,0,.36), 0 0 0 1px rgba(255,255,255,.06) inset;
}
.btnPrimary:hover{ filter: brightness(1.05); }
.btn:hover{ background: rgba(255,255,255,.08); }

/* ===== Frame ===== */
.frame{
  position:relative;
  background: rgba(0,0,0,.22);
  border: 1px solid var(--frameLine);
  box-shadow: var(--shadow);
  overflow:hidden;
}
.frame::before{
  content:"";
  position:absolute;
  left:0; top:0;
  width: var(--cornerW);
  height: var(--cornerW);
  border-top: var(--cornerT) solid rgba(74,123,71,.95);
  border-left: var(--cornerT) solid rgba(74,123,71,.95);
  pointer-events:none;
  z-index: 10;
}
.frame::after{
  content:"";
  position:absolute;
  right:0; bottom:0;
  width: var(--cornerW);
  height: var(--cornerW);
  border-bottom: var(--cornerT) solid rgba(238,243,251,.92);
  border-right: var(--cornerT) solid rgba(238,243,251,.92);
  pointer-events:none;
  z-index: 10;
}

.textFrame{ padding: var(--framePad); }
.textFrame p{ font-size: var(--pSize); line-height: var(--pLine); color: var(--muted); margin:0 0 10px; }
.textFrame strong{ color: rgba(238,243,251,.92); }

/* ===== Hero ===== */
.hero{ text-align:center; }
.kicker{
  font-size: 12px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(238,243,251,.8);
  display:inline-flex;
  align-items:center;
  gap:12px;
  margin: 0 auto var(--heroGap);
}
.kicker:before, .kicker:after{
  content:"";
  height:1px;
  width: min(140px, 18vw);
  background: rgba(74,123,71,.55);
  box-shadow: 0 0 18px rgba(92,255,150,.12);
}
h1{
  margin: 0 auto var(--heroGap);
  max-width: 26ch;
  font-size: clamp(28px, 4.2vw, 52px);
  line-height: 1.03;
  letter-spacing: -.02em;
  text-shadow: 0 26px 80px rgba(0,0,0,.55);
}
.subhead{
  margin: 0 auto var(--heroGap);
  max-width: 74ch;
  color: var(--muted);
  line-height: 1.65;
  font-size: 15px;
}
.quick{
  margin: 0 auto var(--heroGap);
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap: 10px;
}
.chip{
  font-size: 12px;
  color: rgba(238,243,251,.78);
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.18);
  padding: 8px 10px;
  backdrop-filter: blur(6px);
}
.ctaRow{
  margin: 0;
  display:flex;
  justify-content:center;
  gap: 12px;
  flex-wrap:wrap;
}
.ctaRow .btn{ transform-origin: center; }

/* ==========================================================
   SCENARIUSZE: DIAGRAM
   ========================================================== */
.scenarioShell{ display:grid; gap: 18px; }
.storyDiagram{ padding: 16px 16px 14px; }

.storyLegend{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap: 14px;
  margin-bottom: 12px;
}
.storyLegend .hint{
  font-size: 13px;
  color: rgba(238,243,251,.86);
  line-height: 1.55;
  max-width: 100%;
}
.storyLegend .hint b{ color: rgba(238,243,251,.98); }
.ctrlMid{
  font-size: 13px;
  color: rgba(238,243,251,.86);
  white-space: nowrap;
}

.diagramWrap{ overflow:hidden; }

.storySvg{ width:100%; height:auto; display:block; }
.storySvgDesktop{ display:block; }
.storySvgMobile{ display:none; }

#storySvgDesktop{ max-height: min(76vh, 640px); }
#storySvgMobile{  max-height: 86vh; }

@media (max-width: 640px){
  .storyLegend{ flex-direction: column; }
  .ctrlMid{ white-space: normal; }
  .storySvgDesktop{ display:none; }
  .storySvgMobile{ display:block; }
}

.nodeBtn{ cursor:pointer; }

.axisLabel{
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  fill: rgba(238,243,251,.50);
}

.pathLine{ stroke: rgba(255,255,255,.14); stroke-width: 1.5; }
.mergeLine{ stroke: rgba(255,255,255,.14); stroke-width: 1.5; }

.pathLine.strong{
  stroke: rgba(74,123,71,.48);
  stroke-width: 2;
  filter: drop-shadow(0 0 10px rgba(92,255,150,.08));
}
.mergeLine.strong{
  stroke: rgba(74,123,71,.50);
  stroke-width: 2;
  filter: drop-shadow(0 0 10px rgba(92,255,150,.08));
}

.nodeCardRect{
  fill: rgba(0,0,0,.18);
  stroke: rgba(255,255,255,.10);
  stroke-width: 1;
}
.nodeCornerGreen{ stroke: rgba(74,123,71,.95); stroke-width: 2; fill: none; }
.nodeCornerWhite{ stroke: rgba(238,243,251,.92); stroke-width: 2; fill: none; }

.nodeLogoImg{
  opacity: .95;
  filter: drop-shadow(0 10px 14px rgba(0,0,0,.35));
}

.nodeCard.active .nodeCardRect{
  stroke: rgba(74,123,71,.70);
  filter: drop-shadow(0 0 12px rgba(92,255,150,.12));
}

.finalBadge{
  fill: rgba(0,0,0,.20);
  stroke: rgba(255,255,255,.10);
  stroke-width: 1;
}
.finalText{
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  fill: rgba(238,243,251,.92);
}
.finalSub{
  font-size: 11px;
  fill: rgba(238,243,251,.62);
}

/* ==========================================================
   MODAL
   ========================================================== */
body.modalOpen{ overflow: hidden; }

.modalBack{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.58);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  z-index: 9998;
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease;
}
.modalBack.open{ opacity: 1; pointer-events: auto; }

.modal{
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;

  --padX: 16px;
  --padB: 16px;
  --topSafe: calc(var(--safeTop) + var(--headerRealH, var(--headerH)) + var(--modalTopGap));
  padding: var(--topSafe) var(--padX) var(--padB);

  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease;
}
.modal.open{ opacity: 1; pointer-events: auto; }

@media (max-width: 640px){
  .modal{ --padX: var(--modalPadMobileX); }
}

.modalCard{
  width: min(1100px, 100%);
  max-width: 100%;
  max-height: 100%;
  overflow: hidden;

  background: rgba(8,10,14,.94);
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: 0 30px 120px rgba(0,0,0,.70);
  backdrop-filter: blur(14px);

  padding: clamp(14px, 2vw, 28px);
  position: relative;
  isolation: isolate;
}

.modalFit{
  transform: scale(var(--fitScale, 1));
  transform-origin: center center;
  width: 100%;
  height: auto;
}

.modalTop{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap: 14px;
  margin-bottom: clamp(10px, 1.4vw, 18px);
}
.modalTitle{
  margin: 0;
  font-size: clamp(16px, 2.2vw, 28px);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(238,243,251,.92);
  line-height: 1.15;
}
.modalClose{
  width: 52px;
  height: 52px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.06);
  color: rgba(238,243,251,.92);
  cursor: pointer;
  flex: 0 0 auto;
}

.modalBody{
  display:grid;
  gap: clamp(10px, 1.2vw, 18px);
}

.modalImg{
  width: 100%;
  height: auto;
  max-height: min(46vh, 560px);
  object-fit: contain;
  background: rgba(0,0,0,.30);
  border: 1px solid rgba(255,255,255,.08);
  padding: clamp(10px, 1.2vw, 18px);
  display:block;
}

.modalDesc{
  margin: 0;
  color: rgba(238,243,251,.82);
  line-height: 1.6;
  font-size: clamp(14px, 1.4vw, 18px);
}

.modalFooterRow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  flex-wrap:wrap;
  padding-top: 2px;
}
.modalDetails{
  display:flex;
  flex-wrap:wrap;
  gap: 12px;
  align-items:center;
  min-width: 0;
  flex: 1 1 auto;
}
.detailChip{
  padding: clamp(10px, 1.2vw, 16px) clamp(12px, 1.6vw, 20px);
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.16);
  color: rgba(238,243,251,.74);
  font-size: clamp(12px, 1.2vw, 15px);
  backdrop-filter: blur(6px);
  white-space: nowrap;
}
.modalCTA{
  display:flex;
  justify-content:flex-end;
  margin-left:auto;
  flex: 0 0 auto;
}
.modalCTA .btn{ transform-origin: right center; }

@media (max-width: 520px){
  .modalCTA{ width: 100%; justify-content: flex-start; }
  .modalCTA .btn{ transform-origin: left center; }
  .modalClose{ width: 48px; height: 48px; }
  .modalImg{ max-height: min(34vh, 360px); }
}

/* ===== O Forest Escape: VIDEO FRAME ===== */
.videoFrame{
  position:relative;
  width: 100%;
  min-height: 70vh;
  background:#000;
  overflow:hidden;
}
.videoInner{
  position:absolute;
  inset: 10px;
  overflow:hidden;
  z-index: 1;
  border: 1px solid var(--frameLineInner);
  background: #000;
}
.ytCover{
  position:absolute;
  top: 50%;
  left: 50%;
  width: 120%;
  height: 120%;
  transform: translate(-50%, -50%);
  border:0;
  filter: contrast(1.05) brightness(.78) saturate(.95);
}
.videoShade{
  position:absolute;
  inset: 10px;
  pointer-events:none;
  z-index:2;
  background: radial-gradient(70% 45% at 50% 35%, rgba(0,0,0,.18), rgba(0,0,0,.60));
}
.aboutOverlay{
  position:absolute;
  inset: 10px;
  z-index:3;
  display:grid;
  place-items:center;
  padding: 18px;
}
.aboutCard{
  width: min(1040px, 92%);
  max-height: 90vh;
  background: rgba(0,0,0,.36);
  border: 1px solid rgba(255,255,255,.10);
  backdrop-filter: blur(10px);
  box-shadow: var(--shadow);
  position: relative;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.aboutText{
  padding: var(--framePad);
  overflow: auto;
  flex: 1 1 auto;
}
.aboutText p{
  margin: 0 0 10px;
  color: var(--muted);
  line-height: var(--pLine);
  font-size: var(--pSize);
}
.watchRow{
  flex: 0 0 auto;
  display: flex;
  justify-content: center;
  padding: 20px var(--framePad) 10px;
}
.clickLayer{
  position:absolute;
  inset: 10px;
  z-index:4;
  background: transparent;
  cursor: pointer;
}
.clickLayer.off{ pointer-events:none; cursor: default; }
.aboutOverlay.hide{
  opacity:0;
  transform: translateY(8px);
  transition: opacity .5s ease, transform .5s ease;
  pointer-events:none;
}
.openAboutWrap{
  position:absolute;
  left: 10px;
  right: 10px;
  bottom: calc(10px + 20px);
  z-index: 5;
  display:flex;
  justify-content:center;
  pointer-events:none;
}
.openAboutWrap .btn{ pointer-events:auto; transform-origin: center; }
.openAboutWrap.hidden{ display:none; }

.mobileOnly{ display:none; }
.desktopOnly{ display:block; }
.mobileVideos{ display:grid; gap: 14px; }
.mobileVideos iframe{
  width:100%;
  aspect-ratio: 16/9;
  border: 0;
  background:#000;
  display:block;
}
.mobileVideoInner{
  overflow:hidden;
  border: 1px solid var(--frameLineInner);
  background:#000;
}
@media (max-width: 640px){
  .desktopOnly{ display:none; }
  .mobileOnly{ display:block; }
  .videoFrame{ min-height:auto; }
  .aboutCard{ width:100%; max-height:none; overflow:visible; }
  .aboutText{ overflow:visible; }
  .watchRow{ display:none; }
}

/* ===== Oferta ===== */
.offerGrid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  align-items: stretch;
}
@media (min-width: 1200px){
  .offerGrid{ grid-template-columns: 1fr 1fr 1fr; }
  .offerCol.ognisko{ grid-column: 3; }
}
@media (max-width: 1199px){
  .offerGrid{ grid-template-columns: 1fr 1fr; }
  .offerCol.ognisko{ grid-column: 1 / -1; }
}
@media (max-width: 980px){
  .offerGrid{ grid-template-columns: 1fr; }
  .offerCol.ognisko{ grid-column: auto; }
}

/* ===== Kontakt ===== */
.contactGrid{
  display:grid;
  grid-template-columns: 1.25fr .75fr;
  gap: 14px;
}
.mapFrame{
  width:100%;
  height: 360px;
  border:0;
  display:block;
  filter: saturate(.95) contrast(1.05);
}
.contactBox{
  padding: var(--framePad);
  display:flex;
  flex-direction:column;
  min-height: 360px;
}
@media (max-width: 980px){
  .contactGrid{ grid-template-columns: 1fr; }
  .contactBox{ min-height:auto; }
}
footer{
  margin: 60px 0 40px;
  text-align:center;
  color: rgba(238,243,251,.55);
  font-size: 12px;
}

/* ==========================================================
   NAV: dropdown (desktop)
   ========================================================== */
.navDesktop{ display:flex; align-items:center; gap: 14px; }
.navLink{ display:inline-flex; align-items:center; }
.navItem.navDrop{
  position: relative;
  display: inline-flex;
  align-items: center;
}

.navDrop .navDropMenu{
  position:absolute;
  top: 100%;
  margin-top: 12px;
  left: 0;
  min-width: 220px;
  padding: 10px;
  display: grid;
  gap: 8px;

  background: rgba(8,10,14,.92);
  border: 1px solid rgba(255,255,255,.10);
  backdrop-filter: blur(12px);
  box-shadow: 0 30px 120px rgba(0,0,0,.55);
  border-radius: 14px;

  opacity: 0;
  transform: translateY(6px);
  pointer-events: none;
  transition: .18s ease;

  z-index: 80;
}

/* mostek hover nad przerwą */
.navDrop::after{
  content:"";
  position:absolute;
  left:0; right:0;
  top:100%;
  height: 12px;
}

.navDrop .navDropMenu a{
  display:block;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  color: rgba(238,243,251,.92);
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: 12px;
}
.navDrop .navDropMenu a:hover{ background: rgba(255,255,255,.08); }

.navDrop:hover .navDropMenu,
.navDrop:focus-within .navDropMenu,
.navDrop.open .navDropMenu{
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

/* ==========================================================
   DRAWER: accordion (mobile)
   ========================================================== */
.drawerAccBtn{
  width: 100%;
  text-align: left;
  padding: 12px 12px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  color: rgba(238,243,251,.92);
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.drawerAccChevron{
  opacity: .85;
  transition: transform .18s ease;
}
.drawerAccBtn[aria-expanded="true"] .drawerAccChevron{
  transform: rotate(180deg);
}
.drawerAccPanel{
  display:grid;
  gap: 8px;
  margin-top: 8px;
  margin-bottom: 10px;
}

/* ==========================================================
   FORCE: desktop nav hidden on mobile (override)
   ========================================================== */
@media (max-width: 980px){
  header .navDesktop{ display:none !important; }
  header .hamburger{ display:block !important; }
}
@media (min-width: 981px){
  header .navDesktop{ display:flex !important; }
  header .hamburger{ display:none !important; }
}

/* footer strip under contact section - NO FRAME */
.contactFooterBar{
  margin-top: 14px;
  padding: 0;                 /* jak na screenie: bez paska/tła */
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 14px;

  background: transparent;
  border: 0;
  box-shadow: none;
}

.contactFooterLeft,
.contactFooterRight{
  display:flex;
  align-items:center;
  gap: 12px;

  color: rgba(238,243,251,.55); /* szare literki */
  font-size: 12px;
  letter-spacing: .02em;
}

.contactFooterRight{
  margin-left:auto;
  justify-content:flex-end;
  text-align:right;
}

.contactFooterLink{
  color: rgba(238,243,251,.55);
  border-bottom: 1px dashed rgba(238,243,251,.25);
  transition: .18s ease;
  white-space: nowrap;
}
.contactFooterLink:hover{
  color: rgba(238,243,251,.75);
  border-bottom-color: rgba(238,243,251,.40);
}

.contactFooterSep{ opacity:.65; }
.contactFooterDot{ opacity:.55; }

@media (max-width: 640px){
  .contactFooterBar{
    flex-direction: column;
    align-items:flex-start;
  }
  .contactFooterRight{
    margin-left: 0;
    width: 100%;
    justify-content:flex-start;
    text-align:left;
  }
}

/* legal bar under kontakt (no frame) */
.contactLegalBar{
  margin: 16px 0 40px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 14px;

  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
}

.contactLegalLeft,
.contactLegalRight{
  display:flex;
  align-items:center;
  gap: 12px;
  color: rgba(238,243,251,.55);
  font-size: 12px;
}

.contactLegalRight{
  margin-left:auto;
  justify-content:flex-end;
  text-align:right;
}

.contactLegalLink{
  color: rgba(238,243,251,.55);
  border-bottom: 1px dashed rgba(238,243,251,.25);
  transition: .18s ease;
  white-space: nowrap;
}
.contactLegalLink:hover{
  color: rgba(238,243,251,.75);
  border-bottom-color: rgba(238,243,251,.40);
}

.contactLegalSep{ opacity:.65; }
.contactLegalDot{ opacity:.55; }

@media (max-width: 640px){
  .contactLegalBar{
    flex-direction: column;
    align-items:flex-start;
  }
  .contactLegalRight{
    margin-left: 0;
    width: 100%;
    justify-content:flex-start;
    text-align:left;
  }
}

/* Social icons - twardy reset na WP */
#kontakt .socials{
  display:flex;
  gap: 10px;
  align-items:center;
  justify-content:flex-start;
}

#kontakt .socialBtn{
  width: 44px;
  height: 44px;
  display:grid;
  place-items:center;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.06);
  transition: .18s ease;
}

#kontakt .socialBtn:hover{
  background: rgba(255,255,255,.09);
}

/* SVG i PATH – przebijamy style WP */
#kontakt .socialBtn svg{
  width: 20px !important;
  height: 20px !important;
  display:block !important;
  fill: rgba(238,243,251,.92) !important;
}

#kontakt .socialBtn svg path{
  fill: rgba(238,243,251,.92) !important;
}

#kontakt .socialBtn svg{
  filter: drop-shadow(0 10px 14px rgba(0,0,0,.35));
}

/* =========================
   KONTAKT — wygląd jak w HTML
   ========================= */

/* kontakt ma być ostry (nie rozmywany przez blur sekcji) */
#kontakt.blurSection{
  filter: none !important;
  --sblur: 0px !important;
}

/* box i wiersze */
#kontakt .contactBox{
  padding: var(--framePad);
  display:flex;
  flex-direction:column;
  min-height: 360px;
}

/* separatory jak w HTML */
#kontakt .contactRow{
  padding: 18px 0;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
#kontakt .contactRow:first-child{ padding-top: 10px; }
#kontakt .contactRow:last-child{ border-bottom: 0; }

/* LABEL (TELEFON/EMAIL/...) */
#kontakt .contactRow .k{
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(238,243,251,.55);
  margin: 0 0 8px;
}

/* VALUE */
#kontakt .contactRow .v{
  color: rgba(238,243,251,.90);
  font-size: clamp(18px, 1.8vw, 22px);
  line-height: 1.25;
}

/* podkreślenie dashed pod linkami jak w HTML */
#kontakt .contactRow .v a{
  color: rgba(238,243,251,.90);
  border-bottom: 1px dashed rgba(238,243,251,.35);
  text-decoration: none;
  padding-bottom: 2px;
}
#kontakt .contactRow .v a:hover{
  border-bottom-color: rgba(92,255,150,.55);
}

/* SOCIALS na dole */
#kontakt .socials{
  margin-top: auto;
  padding-top: 18px;
  display:flex;
  gap: 14px;
  align-items:center;
  justify-content:flex-start;
}

/* przyciski social jak w HTML */
#kontakt .socialBtn{
  width: 86px;
  height: 66px;
  display:grid;
  place-items:center;

  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.06);
  transition: .18s ease;
}
#kontakt .socialBtn:hover{
  background: rgba(255,255,255,.09);
}

/* SVG – twardy reset przeciw WP */
#kontakt .socialBtn svg{
  width: 22px !important;
  height: 22px !important;
  display:block !important;
  fill: rgba(238,243,251,.92) !important;
}
#kontakt .socialBtn svg path{
  fill: rgba(238,243,251,.92) !important;
}

/* responsywka: jak w HTML (na mobile mniejsze kafelki ikon) */
@media (max-width: 520px){
  #kontakt .socialBtn{
    width: 78px;
    height: 62px;
  }
}

/* Kontakt – delikatnie mniejsza czcionka wartości */

#kontakt .contactRow .v{
  font-size: clamp(15px, 1.4vw, 18px);
  line-height: 1.35;
}

/* =========================================
   KONTAKT — wyrównanie mapy i treści + spacing
   ========================================= */

/* 1) Desktop: oba kafle tej samej wysokości */
@media (min-width: 981px){
  #kontakt .contactGrid{
    align-items: stretch; /* klucz: równa wysokość kolumn */
  }

  #kontakt .contactGrid > .frame{
    height: 420px; /* możesz zmienić na 400/440 jeśli chcesz */
  }

  #kontakt .mapFrame{
    height: 100%;
  }

  #kontakt .contactBox{
    min-height: 100%;
    height: 100%;
  }
}

/* 2) Mniejsza typografia w kontakcie (wartości) */
#kontakt .contactRow{
  padding: 14px 0; /* trochę ciaśniej */
}

#kontakt .contactRow .k{
  font-size: 11px;
  letter-spacing: .18em;
  margin-bottom: 7px;
}

#kontakt .contactRow .v{
  font-size: clamp(13px, 1.15vw, 16px);
  line-height: 1.35;
}

/* 3) Odstęp 10px pod mapą i kontaktem -> między grid a legal */
#kontakt .contactLegalBar{
  margin-top: 10px !important;
}

/* 4) Legal: trochę większy + po nim 10px odstępu */
#kontakt .contactLegalBar{
  font-size: 13px;
  color: rgba(238,243,251,.60);
  margin-bottom: 10px !important;
}

#kontakt .contactLegalLeft,
#kontakt .contactLegalRight{
  font-size: 13px;
}

#kontakt .contactLegalLink{
  color: rgba(238,243,251,.60);
  border-bottom: 1px dashed rgba(238,243,251,.28);
}

#kontakt .contactLegalLink:hover{
  color: rgba(238,243,251,.78);
  border-bottom-color: rgba(238,243,251,.40);
}

/* Legal footer – +2px font + 20px vertical padding */

#kontakt .contactLegalBar{
  padding-top: 20px !important;
  padding-bottom: 20px !important;
}

#kontakt .contactLegalLeft,
#kontakt .contactLegalRight{
  font-size: 15px !important;   /* było 13px → teraz +2px */
}

#kontakt .contactLegalLink{
  font-size: 15px !important;
}

/* =====================================
   FRAME CONTENT – 10px on ALL SIDES
   ===================================== */

.frame .offerCol,
.frame .textFrame,
.frame .contactBox{
  padding: 10px !important;
}

/* jeśli w frame jest tekst bez wrappera */
.frame > :not(iframe){
  padding: 10px !important;
}

/* iframe (mapa) bez paddingu */
.frame > iframe{
  padding: 0 !important;
}

/* =====================================
   LEFT SAFE ZONE (corner fix)
   ===================================== */

.frame .offerCol,
.frame .textFrame,
.frame .contactBox{
  padding: 10px 10px 10px 22px !important;
}

/* fallback */
.frame > :not(iframe){
  padding-left: 22px !important;
}

/* =========================
   LEGAL BAR – mobile center
   ========================= */
@media (max-width: 640px){
  #kontakt .contactLegalBar{
    display: grid !important;
    grid-template-columns: 1fr !important;
    justify-items: center !important;
    text-align: center !important;
    row-gap: 10px !important;
  }

  #kontakt .contactLegalLeft,
  #kontakt .contactLegalRight{
    justify-content: center !important;
    text-align: center !important;
    width: 100%;
  }
}

/* Drawer accordion — hidden MUSI wygrywać nad display:grid */
.drawerAccPanel[hidden]{
  display: none !important;
}

/* ==========================================================
   SCENARIUSZ (podstrony typu Prolog/Szepty/...)
   ========================================================== */

/* 2 kolumny: opis + media */
.scenarioTopGrid{
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 14px;
  align-items: stretch;
}
@media (max-width: 980px){
  .scenarioTopGrid{ grid-template-columns: 1fr; }
}

/* tytuł scenariusza */
.scenarioTitle{
  margin: 0 0 12px;
  font-size: clamp(18px, 2.2vw, 28px);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(238,243,251,.92);
  line-height: 1.15;
}

/* prawa kolumna (wideo) */
.scenarioMedia{
  padding: 10px;              /* ważne: odstęp od ramki */
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.mediaInner{
  border: 1px solid var(--frameLineInner);
  background: rgba(0,0,0,.30);
  overflow: hidden;
  min-height: 360px;
  display: grid;
  place-items: center;
}
.mediaInner video{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: contrast(1.05) brightness(.85) saturate(.95);
}
@media (max-width: 980px){
  .mediaInner{ min-height: 260px; }
}

/* detale w tej samej ramce (pod opisem) */
.scenarioDetails{
  margin-top: 24px;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 10px;
}
.scenarioDetails .detailBox{
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.16);
  padding: 16px;
  display: flex;
  align-items: center;
  min-height: 56px;
}
.scenarioDetails .detailBox span{
  font-size: clamp(14px, 1.2vw, 18px);
  color: rgba(238,243,251,.86);
  line-height: 1.25;
}
.scenarioDetails .detailBox b{
  color: rgba(238,243,251,.95);
  font-weight: 900;
}
@media (max-width: 980px){
  .scenarioDetails{ grid-template-columns: 1fr; }
}

/* ==========================================================
   REZERWACJE + CENNIK (2 kolumny)
   ========================================================== */
.bookGrid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  align-items: stretch;
}
@media (max-width: 980px){
  .bookGrid{ grid-template-columns: 1fr; }
}

.cardTitle{
  margin: 0 0 10px;
  font-size: 14px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(238,243,251,.88);
}
.subTitle{
  margin: 14px 0 8px;
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(238,243,251,.78);
}

.priceList{
  display: grid;
  gap: 10px;
  margin-top: 8px;
}
.priceRow{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.16);
}
.priceRow .k{ color: rgba(238,243,251,.86); font-size: 13px; }
.priceRow .v{ color: rgba(238,243,251,.92); font-weight: 800; font-size: 13px; letter-spacing:.02em; }

.hint{
  margin-top: 12px;
  color: rgba(238,243,251,.62);
  font-size: 13px;
  line-height: 1.6;
}
.actionsRow{
  margin-top: 16px;
  display: flex;
  gap: var(--btnInlineGap);
  flex-wrap: wrap;
  align-items: flex-end;
}

/* ==========================================================
   DUŻY FILM (YouTube)
   ========================================================== */
.videoFrame{
  position: relative;
  width: 100%;
  min-height: 70vh;
  background: #000;
  overflow: hidden;
}
.videoInner{
  position: absolute;
  inset: 10px;
  overflow: hidden;
  z-index: 1;
  border: 1px solid var(--frameLineInner);
  background: #000;
}
.ytCover{
  position: absolute;
  top: 50%;
  left: 50%;
  width: 120%;
  height: 120%;
  transform: translate(-50%, -50%);
  border: 0;
  filter: contrast(1.05) brightness(.78) saturate(.95);
}
.videoShade{
  position: absolute;
  inset: 10px;
  pointer-events: none;
  z-index: 2;
  background: radial-gradient(70% 45% at 50% 35%, rgba(0,0,0,.10), rgba(0,0,0,.55));
}