@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700;800;900&display=swap');*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Arial,sans-serif;color:#251c19;background:#fffaf1}a{text-decoration:none;color:inherit}header{height:86px;display:flex;align-items:center;justify-content:space-between;padding:7px 5vw;background:rgba(255,250,241,.96);position:sticky;top:0;z-index:50;border-bottom:1px solid #eadfc9}.logo img{height:70px;width:auto}nav{display:flex;gap:26px;align-items:center;font-size:14px;font-weight:800}#menu{display:none;background:none;border:0;font-size:26px}.pill,.btn{background:#b91f24;color:white;padding:14px 20px;border-radius:999px;font-weight:800;display:inline-block}.hero{height:720px;position:relative;display:flex;align-items:flex-end;overflow:hidden}.heroimg{position:absolute;width:100%;height:100%;object-fit:cover}.shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(22,15,12,.85),rgba(22,15,12,.32) 62%,rgba(0,0,0,.1))}.heroText{position:relative;color:white;padding:0 7vw 80px;max-width:900px}.tag{font-size:12px;font-weight:900;letter-spacing:.17em;color:#f0b73f}.tag.red{color:#b91f24}.tag.gold{color:#e5ae3f}h1{font-size:clamp(54px,7vw,98px);line-height:.93;letter-spacing:-.065em;margin:17px 0}h1 em,.volley em{color:#e5ae3f;font-style:normal}.heroText p{font-size:19px;line-height:1.6;max-width:690px}.buttons{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}.outline{background:transparent;border:1px solid rgba(255,255,255,.6)}h2{font-size:clamp(38px,5vw,68px);line-height:1;letter-spacing:-.05em;margin:14px 0 22px}.intro{padding:95px 7vw;display:grid;grid-template-columns:.7fr 1.3fr;gap:70px;align-items:center;max-width:1400px;margin:auto}.intro>img{width:100%;max-width:440px}.intro p{font-size:18px;color:#695c55;line-height:1.7;max-width:720px}.ticks{display:grid;grid-template-columns:1fr 1fr;gap:14px;color:#b91f24;margin-top:30px}.offer,.gallery{padding:95px 7vw;max-width:1500px;margin:auto}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:42px}.cards article{background:white;border-radius:22px;overflow:hidden;box-shadow:0 15px 45px #4c2c1812}.cards img{width:100%;height:270px;object-fit:cover}.cards div{padding:25px}.cards small{color:#b91f24;font-weight:900}.cards h3{font-size:25px;margin:10px 0}.cards p{color:#6e625d;line-height:1.6}.volley{background:#a9191f;color:white;padding:90px 7vw;display:grid;grid-template-columns:.8fr 1.2fr;gap:60px}.vcopy{max-width:590px;justify-self:end}.vcopy p{font-size:17px;line-height:1.7;color:#f6dada}.history{line-height:1.9;margin:25px 0}.history b{color:#e5ae3f;margin-right:8px}.goldbtn{background:#e5ae3f;color:#451415}.vcollage{display:grid;grid-template-columns:1fr 1fr;gap:12px}.vcollage img{width:100%;height:300px;object-fit:cover;border-radius:18px}.vcollage img:first-child{grid-row:span 2;height:612px}.grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:230px;gap:10px;margin:40px 0}.grid img{width:100%;height:100%;object-fit:cover;border-radius:12px}.grid img:nth-child(1),.grid img:nth-child(6){grid-column:span 2}.grid img:nth-child(4){grid-row:span 2}.fb{color:#b91f24;font-weight:900}.contact{background:#261a16;color:white;padding:85px 8vw;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.contact p{color:#d8cbc4;font-size:18px}.contactbox{display:grid;gap:8px}.contactbox small{color:#e5ae3f;font-weight:900;margin-top:14px}.contactbox a{font-size:clamp(26px,4vw,48px);font-weight:900}.contactbox .fb2{font-size:17px;line-height:1.4}footer{padding:28px 6vw;background:#fffaf1;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px;color:#766962}footer img{height:70px}@media(max-width:800px){header{height:74px}.logo img{height:58px}#menu{display:block}nav{display:none;position:absolute;top:74px;left:0;right:0;background:#fffaf1;padding:25px;flex-direction:column;align-items:flex-start}nav.open{display:flex}.hero{height:680px}.heroText{padding:0 25px 55px}.intro,.volley,.contact{grid-template-columns:1fr;padding:70px 25px}.intro{gap:25px}.intro>img{max-width:250px}.cards{grid-template-columns:1fr}.offer,.gallery{padding:70px 25px}.vcopy{justify-self:auto}.vcollage{grid-template-columns:1fr 1fr}.vcollage img{height:220px}.vcollage img:first-child{height:452px}.grid{grid-template-columns:1fr 1fr;grid-auto-rows:170px}.grid img:nth-child(1),.grid img:nth-child(6){grid-column:span 2}.ticks{grid-template-columns:1fr}footer{flex-direction:column;align-items:flex-start}}
.year2027{padding:95px 7vw;display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:center;max-width:1500px;margin:auto}.year2027 em{font-style:normal;color:#b91f24}.yearcopy>p{font-size:18px;line-height:1.7;color:#695c55;max-width:700px}.past{display:grid;gap:10px;margin-top:32px}.past div{display:flex;gap:18px;align-items:center;padding:15px 0;border-bottom:1px solid #e7d8bd}.past b{font-size:22px;color:#b91f24}.past span{font-weight:700;color:#675950}.interest{background:#e5ae3f;padding:38px;border-radius:26px;box-shadow:0 20px 60px #5d36131c}.interest .mini{font-size:11px;letter-spacing:.15em;font-weight:900;color:#7d171b}.interest h3{font-size:34px;line-height:1.05;margin:12px 0}.interest p{line-height:1.65;color:#513b2e}.interest .btn{margin:14px 8px 8px 0}.fbbutton{display:inline-block;padding:13px 18px;border:2px solid #7d171b;border-radius:999px;color:#7d171b;font-weight:900}.interest small{display:block;margin-top:18px;color:#6b4b2d}@media(max-width:800px){.year2027{grid-template-columns:1fr;padding:70px 25px;gap:35px}.interest{padding:28px}.interest h3{font-size:29px}}
/* Główny baner APM */
.bannerHero{height:auto;min-height:0;display:block;background:#050505}.bannerHero .bannerimg{position:relative;display:block;width:100%;height:auto;object-fit:contain}.bannerHero:after{content:"";display:none}@media(max-width:800px){.bannerHero{height:auto}.bannerHero .bannerimg{height:auto;min-height:0;object-fit:contain}}

/* Klikalne obszary na graficznym banerze */
.bannerHero{position:relative}.bannerLinks{position:absolute;inset:0;z-index:4;pointer-events:none}.bannerLinks .hot{position:absolute;display:block;pointer-events:auto;border-radius:10px}.bannerLinks .hot:focus-visible{outline:3px solid #ffd000;outline-offset:3px;background:rgba(255,208,0,.12)}.about{left:23.3%;top:1.7%;width:7%;height:9%}.program{left:29.8%;top:1.7%;width:7%;height:9%}.who{left:36.3%;top:1.7%;width:6.8%;height:9%}.location{left:43%;top:1.7%;width:7.7%;height:9%}.galleryHot{left:50.7%;top:1.7%;width:6%;height:9%}.contactHot{left:56.8%;top:1.7%;width:6%;height:9%}.signup{left:85.8%;top:1.5%;width:11%;height:9.5%}@media(max-width:800px){.bannerLinks{display:none}}
/* Rozbudowane sekcje banera */
section[id]{scroll-margin-top:100px}.details,.locations{padding:95px 7vw;max-width:1500px;margin:auto}.sectionhead{max-width:900px}.sectionhead>p{font-size:18px;line-height:1.7;color:#695c55;max-width:820px}.detailgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:42px}.detailgrid article{background:#fff;border:1px solid #eadfc9;border-radius:22px;padding:28px;min-height:270px}.detailgrid .num{font-size:13px;font-weight:900;color:#b91f24;letter-spacing:.15em}.detailgrid h3{font-size:24px;margin:28px 0 12px}.detailgrid p{color:#6e625d;line-height:1.65}.programnote{margin-top:20px;padding:16px 20px;border-left:4px solid #e5ae3f;background:#fff4dc;font-weight:700;color:#675950}.audience{background:#261a16;color:#fff;display:grid;grid-template-columns:1fr 1fr;min-height:680px}.audiencePhoto img{width:100%;height:100%;object-fit:cover;display:block}.audienceCopy{padding:85px 7vw 85px 6vw;align-self:center}.audienceCopy>p{font-size:18px;line-height:1.7;color:#d8cbc4}.audienceList{display:grid;gap:12px;margin:30px 0}.audienceList div{padding:17px 0;border-bottom:1px solid #4b3931;display:grid;gap:5px}.audienceList b{font-size:18px;color:#e5ae3f}.audienceList span{color:#e7ddd8}.audienceCopy .fine{font-size:14px;color:#b9aaa3}.locationgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:42px}.locationgrid article{background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 15px 45px #4c2c1812}.locationgrid img{width:100%;height:270px;object-fit:cover}.locationgrid article>div{padding:26px}.locationgrid small{color:#b91f24;font-weight:900}.locationgrid h3{font-size:26px;margin:9px 0}.locationgrid p{color:#6e625d;line-height:1.6}.locationgrid .future{background:#e5ae3f;display:flex;align-items:flex-end;min-height:440px}.locationgrid .future small{color:#7d171b}.locationgrid .future p{color:#513b2e}.locationgrid .future a{display:inline-block;margin-top:12px;font-weight:900;color:#7d171b}
@media(max-width:900px){.detailgrid{grid-template-columns:1fr 1fr}.audience{grid-template-columns:1fr}.audiencePhoto{height:420px}.locationgrid{grid-template-columns:1fr}.locationgrid .future{min-height:300px}}@media(max-width:600px){.details,.locations{padding:70px 25px}.detailgrid{grid-template-columns:1fr}.audienceCopy{padding:65px 25px}.audiencePhoto{height:320px}}

.legal-form{padding:90px 7vw;display:grid;grid-template-columns:1fr 1fr;gap:60px;max-width:1400px;margin:auto}.legal-form>div>p{font-size:17px;line-height:1.7;color:#695c55}.legal-form form{background:#fff;padding:30px;border-radius:22px;box-shadow:0 18px 55px #3f27151a}.legal-form label{display:block;font-size:13px;font-weight:800;margin-bottom:15px}.legal-form input:not([type=checkbox]){display:block;width:100%;margin-top:7px;padding:13px;border:1px solid #d9cec1;border-radius:10px;font:inherit}.legal-form .check{display:flex;gap:10px;align-items:flex-start;line-height:1.45}.legal-form .check a,.legal-footer a{color:#b91f24;text-decoration:underline}.legal-form small{display:block;margin-top:14px;color:#766962;line-height:1.5}.legal-footer{padding:30px 5vw;background:#201713;color:#eee;display:grid;grid-template-columns:auto 2fr 1fr 1fr;gap:30px;align-items:center;font-size:12px;line-height:1.7}.legal-footer img{height:70px}.legal-footer a{color:#f1c15a}.legal-page{max-width:980px;margin:auto;padding:70px 25px 100px;line-height:1.7}.legal-page h1{font-size:48px;line-height:1.05}.legal-page h2{font-size:28px;margin-top:38px}.legal-page .notice{background:#fff3cf;padding:18px;border-left:4px solid #b91f24}@media(max-width:800px){.legal-form{grid-template-columns:1fr;padding:70px 25px}.legal-footer{grid-template-columns:1fr}.legal-page h1{font-size:38px}}
.hero-slider{height:min(760px,78vh);min-height:590px;position:relative;overflow:hidden;background:#16110f}.slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;visibility:hidden;transition:opacity .7s ease,visibility .7s}.slide.active{opacity:1;visibility:visible}.slideShade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,12,10,.9) 0%,rgba(15,12,10,.62) 48%,rgba(15,12,10,.18) 78%)}.slideCopy{position:absolute;left:7vw;top:50%;transform:translateY(-50%);z-index:2;color:#fff;max-width:820px}.slideCopy>span{font-size:12px;letter-spacing:.18em;font-weight:900;color:#e5ae3f}.slideCopy h1{font-size:clamp(48px,7vw,92px);line-height:.9;letter-spacing:-.06em;margin:16px 0 20px}.slideCopy h1 em{font-style:normal;color:#e5ae3f}.slideCopy p{font-size:18px;line-height:1.6;max-width:650px}.sliderArrow{position:absolute;z-index:5;top:50%;transform:translateY(-50%);width:48px;height:48px;border:1px solid #ffffff66;border-radius:50%;background:#0007;color:white;font-size:34px;cursor:pointer}.sliderArrow.prev{left:20px}.sliderArrow.next{right:20px}.dots{position:absolute;z-index:5;left:50%;bottom:25px;transform:translateX(-50%);display:flex;gap:9px}.dots button{width:10px;height:10px;border:0;border-radius:50%;background:#ffffff77;cursor:pointer;padding:0}.dots button.active{background:#e5ae3f;width:30px;border-radius:8px}@media(max-width:800px){.hero-slider{height:650px;min-height:0}.slide{background-position:center}.slideShade{background:linear-gradient(90deg,rgba(15,12,10,.9),rgba(15,12,10,.45))}.slideCopy{left:25px;right:25px}.slideCopy h1{font-size:48px}.sliderArrow{width:40px;height:40px}.sliderArrow.prev{left:8px}.sliderArrow.next{right:8px}}
.hero-slider .slide{transition:opacity .8s ease!important}.hero-slider .slide:first-child{background-position:center 38%}@media(max-width:800px){.hero-slider .slide:first-child{background-position:center}}.hero-slider .originalHero{background-size:cover;background-position:center}.hero-slider .originalHero .slideShade,.hero-slider .originalHero .slideCopy{display:none}@media(max-width:800px){.hero-slider .originalHero{background-size:cover;background-position:center}}
.hero-slider .originalHero{background-image:url("assets/pierwotny_baner_APM.webp")!important;background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important;background-color:#17100d!important}
.hero-slider .originalHero .slideShade,.hero-slider .originalHero .slideCopy{display:none!important}

/* FIX podwójnych strzałek: przy pierwszym banerze przyciski HTML są niewidoczne,
   ale pozostają klikalnymi hotspotami nad strzałkami narysowanymi w grafice. */
.hero-slider.first-slide-active .sliderArrow{
  opacity:0!important;
  background:transparent!important;
  border-color:transparent!important;
}
.hero-slider.first-slide-active .sliderArrow.prev{left:0!important;width:82px!important;height:82px!important;}
.hero-slider.first-slide-active .sliderArrow.next{right:0!important;width:82px!important;height:82px!important;}



/* === APM MOBILE V1: korekty responsywności bez zmiany grafik === */
html,body{max-width:100%;overflow-x:hidden;}
img,video{max-width:100%;height:auto;}
*{box-sizing:border-box;}

@media(max-width:900px){
  .container{width:min(100% - 32px,1200px)!important;}
  section{overflow:hidden;}
  .hero-slider{min-height:0!important;}
  .slideCopy{max-width:calc(100% - 48px)!important;}
  .slideCopy h1{font-size:clamp(34px,8vw,58px)!important;line-height:1.02!important;}
  .slideCopy p{font-size:clamp(15px,3.8vw,19px)!important;}
  .sliderArrow{width:44px!important;height:44px!important;}
  .sliderArrow.prev{left:8px!important;}
  .sliderArrow.next{right:8px!important;}
  .cards,.grid,.features,.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}

@media(max-width:640px){
  body{font-size:16px;}
  .container{width:calc(100% - 24px)!important;}
  h1,h2,h3,p{overflow-wrap:anywhere;}
  h2{font-size:clamp(28px,8vw,40px)!important;line-height:1.08!important;}
  .cards,.grid,.features,.gallery-grid{grid-template-columns:1fr!important;}
  .card{min-width:0!important;}
  .hero-slider{height:auto!important;aspect-ratio:16/9;min-height:300px!important;max-height:520px!important;}
  .slide{min-height:300px!important;}
  .slideCopy{left:20px!important;right:20px!important;max-width:none!important;}
  .slideCopy h1{font-size:clamp(30px,9vw,46px)!important;}
  .slideCopy .btn,.hero .btn{max-width:100%;white-space:normal;}
  .sliderArrow{width:40px!important;height:40px!important;}
  .dots{bottom:10px!important;}
  input,select,textarea,button{max-width:100%;font-size:16px!important;}
  .footer-grid{grid-template-columns:1fr!important;}
}

@media(max-width:420px){
  .hero-slider{min-height:260px!important;}
  .slide{min-height:260px!important;}
  .slideCopy h1{font-size:30px!important;}
  .sliderArrow{width:36px!important;height:36px!important;}
}

/* === MOBILE V3: główny baner bez modyfikowania grafiki === */
@media(max-width:640px){
  .hero-slider{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    aspect-ratio:2/1!important;
    overflow:hidden!important;
  }
  .hero-slider .slide{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
  }
  .hero-slider .originalHero{
    background-size:cover!important;
    /* przesuwamy grafikę w górę, aby wtopiony biały pasek menu znalazł się poza viewportem */
    background-position:center 12%!important;
  }
}

/* === MOBILE V4 — dopracowanie slidera i odstępów === */
@media(max-width:640px){

  /* zwarty nagłówek */
  .site-header, header{min-height:0!important;}
  .nav-wrap{min-height:112px!important;}

  /* slider bez sztucznego pustego miejsca pod nim */
  .hero-slider{
    margin:0!important;
    padding:0!important;
    aspect-ratio:16/8!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
  }
  .hero-slider + section{
    margin-top:0!important;
    padding-top:44px!important;
  }

  /* wszystkie slajdy mieszczą się w tej samej ramie */
  .hero-slider .slide{
    inset:0!important;
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    overflow:hidden!important;
  }

  /* pierwszy slajd:
     grafika bez fizycznego cięcia pliku; powiększamy ją i przesuwamy,
     żeby wtopiony pasek desktopowego menu znalazł się poza widocznym kadrem */
  .hero-slider .originalHero{
    background-size:112% auto!important;
    background-position:center 56%!important;
  }

  /* slajdy tekstowe: tekst odsuwamy od górnej krawędzi telefonu */
  .hero-slider .slide:not(.originalHero) .slideCopy{
    top:50%!important;
    bottom:auto!important;
    transform:translateY(-47%)!important;
    left:46px!important;
    right:46px!important;
    max-width:none!important;
  }
  .hero-slider .slide:not(.originalHero) .slideCopy h1{
    margin-top:0!important;
    font-size:clamp(31px,8.7vw,44px)!important;
    line-height:.98!important;
  }
  .hero-slider .slide:not(.originalHero) .slideCopy p{
    font-size:clamp(17px,4.7vw,24px)!important;
    line-height:1.35!important;
    margin-top:16px!important;
  }

  /* strzałki w obrębie banera */
  .sliderArrow{
    top:50%!important;
    transform:translateY(-50%)!important;
    width:42px!important;
    height:42px!important;
  }
  .sliderArrow.prev{left:8px!important;}
  .sliderArrow.next{right:8px!important;}
  .dots{bottom:10px!important;}

  /* sekcja intro — redukcja nadmiernej pustej przestrzeni */
  #o-obozie, .about, .intro, .section-intro{
    margin-top:0!important;
    padding-top:44px!important;
  }
}

@media(max-width:420px){
  .hero-slider{aspect-ratio:16/8.4!important;}
  .hero-slider .originalHero{
    background-size:118% auto!important;
    background-position:center 58%!important;
  }
  .hero-slider .slide:not(.originalHero) .slideCopy{
    left:42px!important;
    right:42px!important;
  }
}

/* === MOBILE V5 — precyzyjne korekty po teście telefonu === */
@media(max-width:640px){
  /* szerszy kadr pierwszego banera */
  .hero-slider .originalHero{
    background-size:104% auto!important;
    background-position:center 54%!important;
  }

  /* tekst pozostałych slajdów niżej */
  .hero-slider .slide:not(.originalHero) .slideCopy{
    top:56%!important;
    transform:translateY(-45%)!important;
  }
  .hero-slider .slide:not(.originalHero) .slideCopy h1{
    font-size:clamp(28px,7.8vw,40px)!important;
    line-height:1!important;
  }
  .hero-slider .slide:not(.originalHero) .slideCopy p{
    font-size:clamp(16px,4.35vw,22px)!important;
    line-height:1.32!important;
  }

  /* redukcja pustego pasa pomiędzy sliderem a sekcją poniżej */
  .hero-slider + section{
    margin-top:-1px!important;
    padding-top:16px!important;
  }
  #o-obozie, .about, .intro, .section-intro{
    margin-top:0!important;
    padding-top:16px!important;
  }
}
@media(max-width:420px){
  .hero-slider .originalHero{
    background-size:108% auto!important;
    background-position:center 55%!important;
  }
  .hero-slider .slide:not(.originalHero) .slideCopy{
    top:57%!important;
  }
}

/* === MOBILE V6 — końcowy szlif pierwszego ekranu === */
@media(max-width:640px){
  /* Tylko ostatni slajd "NOWY SEZON": więcej miejsca nad nagłówkiem */
  .hero-slider .slide:nth-of-type(4) .slideCopy{
    top:61%!important;
    transform:translateY(-42%)!important;
  }
  .hero-slider .slide:nth-of-type(4) .slideCopy h1{
    font-size:clamp(26px,7.2vw,37px)!important;
    line-height:1.02!important;
  }
  .hero-slider .slide:nth-of-type(4) .slideCopy p{
    font-size:clamp(15px,4.05vw,20px)!important;
    line-height:1.28!important;
    margin-top:12px!important;
  }

  /* Intro: logo nie dominuje całego ekranu */
  section.intro{
    padding-top:20px!important;
    gap:20px!important;
  }
  section.intro > img{
    display:block!important;
    width:68%!important;
    max-width:360px!important;
    height:auto!important;
    margin:0 auto 8px!important;
  }
  section.intro > div{
    width:100%!important;
  }
  section.intro h2{
    margin-top:8px!important;
  }
}
@media(max-width:420px){
  .hero-slider .slide:nth-of-type(4) .slideCopy{
    top:62%!important;
  }
  section.intro > img{width:66%!important;}
}

/* === MOBILE V7 — tylko slajd NOWY SEZON === */
@media(max-width:640px){
  .hero-slider .slide:nth-of-type(4) .slideCopy{
    top:56%!important;
    transform:translateY(-44%)!important;
  }
  .hero-slider .slide:nth-of-type(4) .slideCopy h1{
    font-size:clamp(25px,6.9vw,35px)!important;
    line-height:1!important;
    margin-bottom:8px!important;
  }
  .hero-slider .slide:nth-of-type(4) .slideCopy p{
    font-size:clamp(14px,3.75vw,19px)!important;
    line-height:1.22!important;
    margin-top:8px!important;
    margin-bottom:18px!important;
  }
}
@media(max-width:420px){
  .hero-slider .slide:nth-of-type(4) .slideCopy{top:55%!important;}
  .hero-slider .slide:nth-of-type(4) .slideCopy p{
    font-size:14px!important;
    line-height:1.2!important;
  }
}

/* === MOBILE V8 — mikro-korekta tylko slajdu NOWY SEZON === */
@media(max-width:640px){
  .hero-slider .slide:nth-of-type(4) .slideCopy{
    top:58%!important;
  }
}
@media(max-width:420px){
  .hero-slider .slide:nth-of-type(4) .slideCopy{
    top:57%!important;
  }
}

/* === MOBILE V9 — tylko etykieta „SEZON 2027” === */
@media(max-width:640px){
  .hero-slider .slide:nth-of-type(4) .slideCopy > span{
    position:relative!important;
    top:14px!important;
    display:block!important;
    margin-bottom:14px!important;
  }
}

/* === MOBILE V10 — sekcje poniżej slidera === */
@media(max-width:640px){
  /* INTRO */
  section.intro{
    padding-left:28px!important;
    padding-right:28px!important;
    padding-bottom:48px!important;
  }
  section.intro > img{width:64%!important;max-width:320px!important;}
  section.intro h2{
    font-size:clamp(34px,9vw,48px)!important;
    line-height:1.02!important;
  }
  section.intro p{
    font-size:18px!important;
    line-height:1.55!important;
  }
  section.intro .ticks{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
  }

  /* OFERTA — karty jedna pod drugą */
  section.offer{
    padding:48px 24px!important;
  }
  section.offer h2,
  section.details h2,
  section.locations h2{
    font-size:clamp(32px,8.5vw,44px)!important;
    line-height:1.05!important;
  }
  .cards{
    grid-template-columns:1fr!important;
    gap:22px!important;
  }
  .cards article img{
    width:100%!important;
    height:220px!important;
    object-fit:cover!important;
  }

  /* PROGRAM */
  section.details{
    padding:48px 24px!important;
  }
  .detailgrid{
    grid-template-columns:1fr!important;
    gap:14px!important;
  }
  .detailgrid article{
    padding:24px!important;
  }

  /* DLA KOGO */
  section.audience{
    grid-template-columns:1fr!important;
  }
  .audiencePhoto img{
    width:100%!important;
    height:320px!important;
    object-fit:cover!important;
  }
  .audienceCopy{
    padding:38px 28px 48px!important;
  }
  .audienceCopy h2{
    font-size:clamp(32px,8.5vw,44px)!important;
    line-height:1.05!important;
  }

  /* LOKALIZACJE */
  section.locations{
    padding:48px 24px!important;
  }
  .locationgrid{
    grid-template-columns:1fr!important;
    gap:20px!important;
  }
  .locationgrid article img{
    width:100%!important;
    height:220px!important;
    object-fit:cover!important;
  }
}
@media(max-width:420px){
  section.intro{padding-left:22px!important;padding-right:22px!important;}
  section.offer,section.details,section.locations{padding-left:20px!important;padding-right:20px!important;}
  .audienceCopy{padding-left:22px!important;padding-right:22px!important;}
}

/* === MOBILE V11 — kompaktowa skala sekcji poniżej slidera; slider bez zmian === */
@media(max-width:640px){
  section.intro{padding:34px 22px 44px!important;gap:20px!important;}
  section.intro > img{width:58%!important;max-width:245px!important;margin-bottom:4px!important;}
  section.intro h2{font-size:clamp(31px,8vw,38px)!important;line-height:1.04!important;margin:8px 0 18px!important;}
  section.intro p{font-size:16px!important;line-height:1.55!important;margin-bottom:20px!important;}
  section.intro .ticks{gap:8px!important;margin-top:20px!important;font-size:15px!important;}

  section.offer,section.details,section.locations{padding:44px 20px!important;}
  section.offer h2,section.details h2,section.locations h2{font-size:clamp(30px,7.8vw,37px)!important;line-height:1.06!important;margin-bottom:18px!important;}
  .cards{gap:18px!important;margin-top:28px!important;}
  .cards article{border-radius:18px!important;}
  .cards article img{height:190px!important;}
  .cards div{padding:20px!important;}
  .cards h3{font-size:23px!important;line-height:1.12!important;margin:8px 0 10px!important;}
  .cards p{font-size:15.5px!important;line-height:1.55!important;margin-bottom:0!important;}

  .sectionhead>p{font-size:16px!important;line-height:1.55!important;}
  .detailgrid{gap:12px!important;margin-top:28px!important;}
  .detailgrid article{padding:20px!important;min-height:0!important;border-radius:18px!important;}
  .detailgrid h3{font-size:22px!important;line-height:1.15!important;margin:18px 0 9px!important;}
  .detailgrid p{font-size:15.5px!important;line-height:1.55!important;margin-bottom:0!important;}
  .programnote{margin-top:16px!important;padding:14px 16px!important;font-size:15px!important;line-height:1.45!important;}

  .audiencePhoto{height:300px!important;}
  .audiencePhoto img{height:300px!important;}
  .audienceCopy{padding:34px 22px 42px!important;}
  .audienceCopy h2{font-size:clamp(30px,7.8vw,37px)!important;line-height:1.06!important;}
  .audienceCopy>p{font-size:16px!important;line-height:1.55!important;}
  .audienceList{margin:22px 0!important;gap:6px!important;}
  .audienceList div{padding:13px 0!important;}

  .locationgrid{gap:18px!important;margin-top:28px!important;}
  .locationgrid article img{height:190px!important;}
  .locationgrid article>div{padding:20px!important;}
  .locationgrid h3{font-size:23px!important;}
  .locationgrid p{font-size:15.5px!important;line-height:1.55!important;}

  .year2027{padding:44px 20px!important;gap:26px!important;}
  .year2027 h2{font-size:clamp(30px,7.8vw,38px)!important;line-height:1.05!important;}
  .yearcopy>p{font-size:16px!important;line-height:1.55!important;}
  .past{margin-top:22px!important;}
  .past div{padding:11px 0!important;}
  .interest{padding:25px 22px!important;border-radius:22px!important;}
  .interest h3{font-size:clamp(27px,7vw,33px)!important;line-height:1.08!important;overflow-wrap:normal!important;word-break:normal!important;hyphens:none!important;}
  .interest p{font-size:16px!important;line-height:1.5!important;}
  .interest .btn,.interest .fbbutton{display:block!important;width:100%!important;text-align:center!important;margin:12px 0 0!important;padding:13px 16px!important;font-size:16px!important;line-height:1.25!important;}
  .interest small{font-size:13px!important;line-height:1.4!important;margin-top:16px!important;}
}
@media(max-width:380px){
  .interest h3{font-size:26px!important;}
  section.intro h2,section.offer h2,section.details h2,section.locations h2,.audienceCopy h2{font-size:30px!important;}
}

/* === MOBILE V12 — galeria bez pustych odstępów + kompaktowe przejście do formularza === */
@media(max-width:640px){
  section.gallery{
    padding:44px 20px 38px!important;
    overflow:visible!important;
  }
  section.gallery h2{
    font-size:clamp(30px,7.8vw,38px)!important;
    line-height:1.06!important;
    margin:10px 0 24px!important;
  }
  section.gallery .grid{
    display:flex!important;
    flex-direction:column!important;
    gap:16px!important;
    margin:0 0 24px!important;
  }
  section.gallery .grid img,
  section.gallery .grid img:nth-child(1),
  section.gallery .grid img:nth-child(4),
  section.gallery .grid img:nth-child(6){
    display:block!important;
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    aspect-ratio:auto!important;
    object-fit:contain!important;
    margin:0!important;
    border-radius:18px!important;
    grid-column:auto!important;
    grid-row:auto!important;
  }
  section.gallery .fb{
    display:inline-block!important;
    margin:4px 0 0!important;
    font-size:17px!important;
    line-height:1.35!important;
  }
  section.legal-form{
    padding:46px 20px 52px!important;
    gap:26px!important;
  }
  section.legal-form h2{
    font-size:clamp(30px,7.8vw,38px)!important;
    line-height:1.06!important;
    margin:10px 0 16px!important;
  }
  section.legal-form>div>p{
    font-size:16px!important;
    line-height:1.55!important;
  }
}

/* === MOBILE V13 — kosmetyka typografii + spójny branding === */
@media(max-width:640px){
  section.intro h2,
  section.offer h2,
  section.details h2,
  section.locations h2,
  .audienceCopy h2,
  .year2027 h2,
  section.gallery h2,
  section.legal-form h2{
    font-size:clamp(28px,7.1vw,34px)!important;
    line-height:1.08!important;
    letter-spacing:-.035em!important;
  }
  section.intro p,
  .sectionhead>p,
  .audienceCopy>p,
  .yearcopy>p,
  section.legal-form>div>p{
    font-size:15.5px!important;
    line-height:1.55!important;
  }
  section.intro .ticks{font-size:14.5px!important;line-height:1.4!important;}
  .cards h3,.locationgrid h3{font-size:21px!important;}
  .detailgrid h3{font-size:20px!important;}
  .interest h3{font-size:clamp(25px,6.5vw,30px)!important;}
  section.gallery .fb{font-size:16px!important;}
}
@media(max-width:380px){
  section.intro h2,
  section.offer h2,
  section.details h2,
  section.locations h2,
  .audienceCopy h2,
  .year2027 h2,
  section.gallery h2,
  section.legal-form h2{font-size:28px!important;}
}

/* podstrony prawne — ten sam znak APM co na stronie głównej */
.legal-brandbar{height:86px;display:flex;align-items:center;padding:7px 5vw;background:#fffaf1;border-bottom:1px solid #eadfc9;}
.legal-brandbar img{height:70px;width:auto;display:block;}
@media(max-width:800px){
  .legal-brandbar{height:74px;padding:7px 5vw;}
  .legal-brandbar img{height:58px;}
  .legal-page{padding-top:44px;}
  .legal-page h1{font-size:clamp(30px,8vw,36px);letter-spacing:-.035em;}
  .legal-page h2{font-size:24px;line-height:1.15;}
}

/* === MOBILE V14 — widoczna korekta skali typografii i logo === */
@media (max-width:640px){
  /* spójny znak APM: identyczny plik i rozmiar optyczny */
  header .logo img,.legal-brandbar img{height:54px!important;width:auto!important;object-fit:contain!important;}
  header{height:72px!important;padding-top:8px!important;padding-bottom:8px!important;}
  .legal-brandbar{height:72px!important;padding-top:8px!important;padding-bottom:8px!important;}

  /* główne nagłówki treści — celowo wyraźnie mniejsze niż w V13 */
  .intro h2,.offer h2,.details h2,.locations h2,.audienceCopy h2,
  .year2027 h2,.gallery h2,.legal-form h2,.contact h2{
    font-size:clamp(27px,7.6vw,31px)!important;
    line-height:1.08!important;
    letter-spacing:-.035em!important;
    overflow-wrap:normal!important;word-break:normal!important;hyphens:none!important;
  }
  .intro p,.sectionhead>p,.audienceCopy>p,.yearcopy>p,.legal-form>div>p,.contact p{
    font-size:15px!important;line-height:1.55!important;
  }
  .ticks b{font-size:15px!important;line-height:1.35!important;}
  .cards h3,.locationgrid h3{font-size:22px!important;line-height:1.12!important;}
  .detailgrid h3{font-size:20px!important;line-height:1.15!important;}
  .interest h3{font-size:27px!important;line-height:1.08!important;}
  .tag{font-size:11px!important;}
}
@media (max-width:380px){
  .intro h2,.offer h2,.details h2,.locations h2,.audienceCopy h2,
  .year2027 h2,.gallery h2,.legal-form h2,.contact h2{font-size:27px!important;}
}


/* === MOBILE V15 — podstrony: rytm, odstępy i wyśrodkowanie === */
.legal-brandbar{
  justify-content:center;
}
.legal-page{
  box-sizing:border-box;
}
@media (max-width:800px){
  .legal-brandbar{
    justify-content:center!important;
    padding-left:20px!important;
    padding-right:20px!important;
  }
  .legal-page{
    width:100%;
    max-width:680px;
    margin:0 auto;
    padding:30px 24px 64px!important;
    font-size:15.5px;
    line-height:1.62;
  }
  .legal-page>a:first-child{
    display:block;
    width:max-content;
    margin:0 auto 24px;
    text-align:center;
    font-size:14px;
    font-weight:700;
  }
  .legal-page h1{
    max-width:560px;
    margin:0 auto 26px!important;
    text-align:center;
    font-size:clamp(28px,7.4vw,34px)!important;
    line-height:1.08!important;
  }
  .legal-page h2{
    margin:32px 0 10px!important;
    font-size:21px!important;
    line-height:1.2!important;
  }
  .legal-page p{
    margin:0 0 18px!important;
  }
  .legal-page .notice{
    margin:0 auto 30px!important;
    padding:16px 17px!important;
    line-height:1.5;
  }
}
@media (max-width:380px){
  .legal-page{padding-left:20px!important;padding-right:20px!important;}
  .legal-page h1{font-size:28px!important;}
  .legal-page h2{font-size:20px!important;}
}

/* === MOBILE V16 — slider: lżejsza typografia banerów 2–4 === */
@media (max-width:640px){
  .hero-slider .slide:not(.originalHero) .slideCopy h1{
    font-size:clamp(27px,7.5vw,34px)!important;
    line-height:1.02!important;
    letter-spacing:-.045em!important;
    margin:8px 0 12px!important;
  }
  .hero-slider .slide:not(.originalHero) .slideCopy p{
    font-size:clamp(14px,3.9vw,16px)!important;
    line-height:1.42!important;
    max-width:88%!important;
    margin:0!important;
  }
  .hero-slider .slide:not(.originalHero) .slideCopy>span{
    font-size:10px!important;
    line-height:1.2!important;
    letter-spacing:.16em!important;
  }
}
@media (max-width:380px){
  .hero-slider .slide:not(.originalHero) .slideCopy h1{font-size:27px!important;}
  .hero-slider .slide:not(.originalHero) .slideCopy p{font-size:14px!important;}
}

/* === MOBILE V17 — slider: poprawa proporcji, oddechu i wyśrodkowania === */
@media (max-width:640px){
  .hero-slider{
    height:235px!important;
    aspect-ratio:auto!important;
    min-height:235px!important;
    max-height:none!important;
  }
  .hero-slider .slide:not(.originalHero) .slideCopy{
    top:49%!important;
    left:48px!important;
    right:48px!important;
    transform:translateY(-50%)!important;
    max-width:none!important;
  }
  .hero-slider .slide:not(.originalHero) .slideCopy>span{
    display:block!important;
    font-size:9px!important;
    line-height:1.15!important;
    letter-spacing:.15em!important;
    margin:0 0 7px!important;
  }
  .hero-slider .slide:not(.originalHero) .slideCopy h1{
    font-size:clamp(24px,6.8vw,30px)!important;
    line-height:1.01!important;
    letter-spacing:-.04em!important;
    margin:0 0 10px!important;
  }
  .hero-slider .slide:not(.originalHero) .slideCopy p{
    font-size:clamp(13px,3.65vw,15px)!important;
    line-height:1.34!important;
    max-width:100%!important;
    margin:0!important;
  }
  .hero-slider .slide:not(.originalHero) .btn{display:none!important;}
  .dots{bottom:8px!important;}
  .sliderArrow{top:50%!important;}
}
@media (max-width:380px){
  .hero-slider{height:225px!important;min-height:225px!important;}
  .hero-slider .slide:not(.originalHero) .slideCopy{left:44px!important;right:44px!important;}
  .hero-slider .slide:not(.originalHero) .slideCopy h1{font-size:24px!important;}
  .hero-slider .slide:not(.originalHero) .slideCopy p{font-size:13px!important;}
}

/* FINAL MOBILE SLIDER COSMETICS — 2026-09-17 */
@media (max-width:640px){
  .hero-slider{height:360px!important;min-height:360px!important;max-height:360px!important;aspect-ratio:auto!important;}
  .hero-slider .slide:not(.originalHero) .slideCopy{left:52px!important;right:52px!important;top:48%!important;transform:translateY(-50%)!important;max-width:none!important;}
  .hero-slider .slide:not(.originalHero) .slideCopy>span{font-size:12px!important;line-height:1.1!important;letter-spacing:.16em!important;margin-bottom:6px!important;display:block!important;}
  .hero-slider .slide:not(.originalHero) .slideCopy h1{font-size:34px!important;line-height:.98!important;letter-spacing:-.045em!important;margin:5px 0 13px!important;}
  .hero-slider .slide:not(.originalHero) .slideCopy p{font-size:16px!important;line-height:1.42!important;margin:0!important;max-width:100%!important;}
  .hero-slider .slide:not(.originalHero) .btn{display:none!important;}
  .sliderArrow{top:50%!important;width:40px!important;height:40px!important;font-size:27px!important;}
  .sliderArrow.prev{left:8px!important}.sliderArrow.next{right:8px!important}
  .dots{bottom:14px!important;gap:8px!important;}
  .dots button{width:9px!important;height:9px!important}.dots button.active{width:28px!important;}
  .hero-slider + section{margin-top:0!important;padding-top:54px!important;}
}
@media (max-width:420px){
  .hero-slider{height:330px!important;min-height:330px!important;max-height:330px!important;}
  .hero-slider .slide:not(.originalHero) .slideCopy{left:48px!important;right:48px!important;top:47%!important;}
  .hero-slider .slide:not(.originalHero) .slideCopy h1{font-size:30px!important;}
  .hero-slider .slide:not(.originalHero) .slideCopy p{font-size:15px!important;line-height:1.4!important;}
}

/* V18 — fix: etykieta „SEZON 2027” nie nachodzi na nagłówek */
@media (max-width:640px){
  .hero-slider .slide:nth-of-type(4) .slideCopy>span{
    position:static!important;
    transform:none!important;
    display:block!important;
    margin:0 0 10px!important;
    padding:0!important;
    line-height:1!important;
  }
  .hero-slider .slide:nth-of-type(4) .slideCopy h1{
    margin:0 0 14px!important;
  }
}

/* === MOBILE V19 — punkty 1–3: intro, typografia i karty oferty === */
@media (max-width:640px){
  /* 1. Sekcja pod sliderem — mniejsze logo i spójny rytm pionowy */
  section.intro{
    padding:34px 24px 54px!important;
    gap:18px!important;
    align-items:start!important;
  }
  section.intro > img{
    width:54%!important;
    max-width:220px!important;
    margin:0 auto 16px!important;
  }
  section.intro .tag{
    display:block!important;
    margin:0 0 12px!important;
  }
  section.intro h2{
    font-size:clamp(31px,8.3vw,38px)!important;
    line-height:1.04!important;
    letter-spacing:-.045em!important;
    margin:0 0 20px!important;
  }
  section.intro p{
    font-size:16px!important;
    line-height:1.62!important;
    margin:0!important;
  }
  section.intro .ticks{
    margin-top:26px!important;
    gap:12px!important;
  }
  section.intro .ticks b{line-height:1.35!important;}

  /* 2. Typografia sekcji/podstron — jeden system nagłówków i odstępów */
  main section:not(.hero-slider) .tag{
    font-size:11px!important;
    line-height:1.2!important;
    letter-spacing:.16em!important;
  }
  main section:not(.hero-slider) h2{
    font-size:clamp(30px,8vw,38px)!important;
    line-height:1.06!important;
    letter-spacing:-.045em!important;
  }
  .offer>h2,.gallery>h2,.details .sectionhead>h2,.locations .sectionhead>h2{
    margin:12px 0 0!important;
  }
  .offer,.gallery,.details,.locations{
    padding-left:24px!important;
    padding-right:24px!important;
  }

  /* 3. Karty oferty — równe proporcje i spokojniejsza typografia */
  .offer{padding-top:58px!important;padding-bottom:62px!important;}
  .cards{gap:22px!important;margin-top:30px!important;}
  .cards article{
    border-radius:20px!important;
    box-shadow:0 10px 32px rgba(76,44,24,.08)!important;
  }
  .cards img{
    height:auto!important;
    aspect-ratio:16/10!important;
    object-fit:cover!important;
  }
  .cards article>div{padding:22px 20px 24px!important;}
  .cards small{font-size:12px!important;letter-spacing:.02em!important;}
  .cards h3{
    font-size:25px!important;
    line-height:1.12!important;
    letter-spacing:-.025em!important;
    margin:9px 0 12px!important;
  }
  .cards p{
    font-size:15.5px!important;
    line-height:1.58!important;
    margin:0!important;
  }
}
@media (max-width:380px){
  section.intro{padding-left:20px!important;padding-right:20px!important;}
  section.intro > img{width:52%!important;max-width:190px!important;}
  section.intro h2{font-size:30px!important;}
  .offer,.gallery,.details,.locations{padding-left:20px!important;padding-right:20px!important;}
  .cards h3{font-size:23px!important;}
}


/* === V20 — jeden wzorzec logotypu APM (z pierwszego banera) === */
.logo img,.legal-brandbar img{height:72px!important;width:auto!important;object-fit:contain!important;}
.intro>img{width:min(100%,280px)!important;height:auto!important;justify-self:center!important;}
.legal-footer>img,footer.legal-footer>img{height:96px!important;width:auto!important;object-fit:contain!important;}
@media(max-width:800px){
  header .logo img,.legal-brandbar img{height:58px!important;width:auto!important;}
  .intro>img{width:210px!important;max-width:58vw!important;margin:0 auto 12px!important;}
  .legal-footer>img,footer.legal-footer>img{height:88px!important;width:auto!important;}
}

/* === MOBILE V21 — pełna kosmetyka mobile: rytm, CTA, galeria, formularz i stopka === */
@media (max-width:640px){
  /* Spójny rytm sekcji bez ruszania slidera */
  .details,.locations,.gallery,.legal-form{padding-top:50px!important;padding-bottom:54px!important;}
  .sectionhead>p{margin-top:16px!important;margin-bottom:0!important;}

  /* Program */
  .detailgrid{gap:14px!important;margin-top:28px!important;}
  .detailgrid article{min-height:0!important;padding:22px 20px!important;border-radius:18px!important;}
  .detailgrid h3{margin:16px 0 10px!important;font-size:21px!important;}
  .detailgrid p{margin:0!important;font-size:15px!important;line-height:1.55!important;}
  .programnote{margin-top:16px!important;padding:14px 16px!important;font-size:14px!important;line-height:1.45!important;}

  /* Dla kogo */
  .audiencePhoto,.audiencePhoto img{height:280px!important;}
  .audienceCopy{padding:44px 24px 48px!important;}
  .audienceCopy h2{margin:12px 0 18px!important;}
  .audienceList{margin:20px 0!important;}

  /* Lokalizacje */
  .locationgrid{margin-top:28px!important;gap:18px!important;}
  .locationgrid article{border-radius:18px!important;}
  .locationgrid article img{height:auto!important;aspect-ratio:16/10!important;object-fit:cover!important;}
  .locationgrid .future{min-height:250px!important;}

  /* Volley Camps */
  .volley{padding:52px 24px!important;gap:32px!important;}
  .vcopy h2{font-size:clamp(34px,9vw,42px)!important;line-height:1!important;margin:12px 0 18px!important;}
  .vcopy p{font-size:15.5px!important;line-height:1.55!important;}
  .history{margin:20px 0!important;font-size:15px!important;line-height:1.7!important;}
  .vcopy .btn{display:block!important;width:100%!important;text-align:center!important;padding:13px 15px!important;font-size:15px!important;}
  .vcollage{gap:8px!important;}
  .vcollage img{height:180px!important;border-radius:14px!important;}
  .vcollage img:first-child{height:368px!important;}

  /* Sezon 2027 / CTA */
  .year2027{padding:52px 24px!important;gap:28px!important;}
  .year2027 h2{margin:12px 0 18px!important;}
  .past{margin-top:20px!important;}
  .interest{padding:24px 20px!important;border-radius:20px!important;}
  .interest .mini{font-size:11px!important;letter-spacing:.12em!important;}
  .interest h3{font-size:26px!important;line-height:1.08!important;margin:10px 0 14px!important;}
  .interest .btn,.interest .fbbutton{min-height:48px!important;display:flex!important;align-items:center!important;justify-content:center!important;}

  /* Galeria — równa, zwarta siatka na telefonie */
  section.gallery .grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;margin:26px 0 24px!important;}
  section.gallery .grid img,
  section.gallery .grid img:nth-child(1),
  section.gallery .grid img:nth-child(4),
  section.gallery .grid img:nth-child(6){width:100%!important;height:auto!important;aspect-ratio:1/1!important;object-fit:cover!important;border-radius:14px!important;grid-column:auto!important;grid-row:auto!important;}
  section.gallery .grid img:first-child{grid-column:1/-1!important;aspect-ratio:16/10!important;}

  /* Formularz */
  .legal-form{gap:24px!important;padding-left:24px!important;padding-right:24px!important;}
  .legal-form form{padding:22px 18px!important;border-radius:18px!important;}
  .legal-form label{margin-bottom:14px!important;}
  .legal-form input:not([type=checkbox]){min-height:46px!important;padding:12px!important;}
  .legal-form .btn{width:100%!important;text-align:center!important;}

  /* Kontakt i stopka — usunięcie dużych pustych przestrzeni */
  .contact{padding:52px 24px 48px!important;gap:24px!important;}
  .contact h2{margin:12px 0 16px!important;}
  .contact p{margin:0!important;}
  .contactbox{gap:7px!important;}
  .contactbox small{margin-top:14px!important;font-size:12px!important;}
  .contactbox>a{font-size:clamp(28px,8vw,38px)!important;line-height:1.1!important;}
  .contactbox .fb2{font-size:17px!important;line-height:1.35!important;}

  .legal-footer{padding:34px 24px 38px!important;gap:20px!important;align-items:flex-start!important;}
  .legal-footer>img,footer.legal-footer>img{height:72px!important;margin:0 0 4px!important;}
  .legal-footer>div{font-size:13px!important;line-height:1.65!important;}
  .legal-footer>div+div{margin-top:0!important;}
}
@media (max-width:380px){
  .details,.locations,.gallery,.legal-form,.volley,.year2027,.contact{padding-left:20px!important;padding-right:20px!important;}
  .audienceCopy{padding-left:20px!important;padding-right:20px!important;}
  .legal-footer{padding-left:20px!important;padding-right:20px!important;}
  .interest h3{font-size:24px!important;}
}


/* === V22 CLEAN — stabilizacja responsywności i dostępności === */
button,a,input{font-family:inherit}
button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #e5ae3f;outline-offset:3px}
#menu{cursor:pointer;min-width:44px;min-height:44px}
.cards img,.locationgrid img,.vcollage img,.gallery img{display:block}
@media (min-width:641px) and (max-width:1100px){
  .intro,.year2027{gap:42px}
  .offer,.gallery,.details,.locations{padding-left:5vw;padding-right:5vw}
  .cards{gap:16px}.cards img{height:220px}
  .legal-footer{grid-template-columns:auto 1.5fr 1fr;align-items:start}
  .legal-footer>div:last-child{grid-column:2/-1}
}
@media (max-width:640px){
  body{font-size:16px}
  section[id]{scroll-margin-top:82px}
  .btn,.fbbutton{max-width:100%;white-space:normal;text-align:center}
  .legal-footer a{overflow-wrap:anywhere}
}

/* === V23 — finalna kosmetyka mobile po audycie 400 px === */
@media (max-width:640px){
  /* Jeden wzorzec logo: oryginalne kolory + ciemne pole dla czytelności białego hasła. */
  header .logo img{
    height:56px!important;
    width:auto!important;
    padding:5px 7px!important;
    background:#261a16!important;
    border-radius:10px!important;
  }
  section.intro{
    padding-top:34px!important;
    padding-bottom:32px!important;
  }
  section.intro > img{
    width:180px!important;
    max-width:52vw!important;
    height:auto!important;
    box-sizing:content-box!important;
    padding:16px 18px!important;
    margin:0 auto 18px!important;
    background:#261a16!important;
    border-radius:20px!important;
    box-shadow:0 12px 32px rgba(38,26,22,.12)!important;
  }

  /* Krótsze przejścia między sekcjami — bez zmiany treści i kart. */
  .offer{padding-top:36px!important;padding-bottom:38px!important;}
  .details{padding-top:38px!important;padding-bottom:44px!important;}
  .locations{padding-top:44px!important;padding-bottom:44px!important;}
  .year2027{padding-top:46px!important;padding-bottom:30px!important;}
  .gallery{padding-top:34px!important;padding-bottom:46px!important;}

  /* Karta 2027: nieco bardziej zwarta. */
  .locationgrid .future{min-height:220px!important;}
  .locationgrid .future>div{padding-top:22px!important;padding-bottom:22px!important;}
  .interest{padding-top:22px!important;padding-bottom:22px!important;}

  /* Stopka: ten sam znak, większy i czytelny na naturalnie ciemnym tle. */
  .legal-footer{
    padding-top:30px!important;
    padding-bottom:34px!important;
    gap:16px!important;
  }
  .legal-footer>img,footer.legal-footer>img{
    height:108px!important;
    width:auto!important;
    max-width:150px!important;
    margin:0 0 2px!important;
    padding:0!important;
    background:transparent!important;
    object-fit:contain!important;
  }
  .legal-footer>div{line-height:1.55!important;}
}
@media (max-width:380px){
  section.intro > img{width:168px!important;max-width:54vw!important;padding:14px 16px!important;}
  .legal-footer>img,footer.legal-footer>img{height:100px!important;}
}

/* === V24 — pierwszy baner bez wbudowanego paska menu + mniejsze logo intro === */
/* Biały pasek na górze pierwszej grafiki jest częścią pliku źródłowego.
   Powiększamy tło o wysokość tego paska i kotwiczymy je do dołu,
   dzięki czemu pasek wypada poza obszar slidera bez ingerencji w zdjęcie. */
.hero-slider .originalHero{
  background-size:auto 110.5%!important;
  background-position:center bottom!important;
}
@media (max-width:640px){
  section.intro > img{
    width:132px!important;
    max-width:40vw!important;
    padding:12px 14px!important;
    margin:0 auto 16px!important;
    border-radius:16px!important;
  }
}
@media (max-width:380px){
  section.intro > img{
    width:124px!important;
    max-width:42vw!important;
    padding:11px 13px!important;
  }
}

/* === V25 FINAL MOBILE — domknięcie kosmetyki === */
@media (max-width:640px){
  /* Logo pod sliderem: delikatnie mniejsze, bez utraty czytelności. */
  section.intro > img{
    width:120px!important;
    max-width:37vw!important;
    padding:11px 13px!important;
    margin-bottom:14px!important;
  }

  /* Mniej pustego miejsca po liście intro przed NASZA OFERTA. */
  section.intro{padding-bottom:18px!important;}
  .offer{padding-top:24px!important;}

  /* Stopka: większy znak, ciaśniejszy rytm i lepsze łamanie danych firmy. */
  .legal-footer{
    padding-top:24px!important;
    padding-bottom:30px!important;
    gap:13px!important;
  }
  .legal-footer>img,footer.legal-footer>img{
    height:122px!important;
    max-width:170px!important;
    margin:0 0 0!important;
  }
  .legal-footer>div{
    line-height:1.48!important;
    overflow-wrap:anywhere!important;
  }
  .legal-footer>div:first-of-type b{
    display:block!important;
    max-width:330px!important;
    line-height:1.38!important;
    margin-bottom:3px!important;
  }
}
@media (max-width:380px){
  section.intro > img{width:114px!important;max-width:39vw!important;padding:10px 12px!important;}
  .legal-footer>img,footer.legal-footer>img{height:114px!important;max-width:160px!important;}
  .legal-footer>div:first-of-type b{max-width:300px!important;}
}

/* === V26 TEST — BANER 1: pełna szerokość bez ucinania boków === */
/* Używa oczyszczonego pliku bez wbudowanego białego menu. */
.hero-slider .originalHero{
  background-image:url('assets/pierwotny_baner_APM_clean.webp')!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
}

/* Telefon: pokazujemy CAŁĄ szerokość banera 1 bez obcinania boków.
   Wysokość slidera dopasowuje się tylko, gdy aktywny jest pierwszy slajd. */
@media (max-width:640px){
  .hero-slider.first-slide-active{
    height:calc(100vw * 851 / 1672)!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:auto!important;
  }
  .hero-slider.first-slide-active .originalHero{
    background-size:100% auto!important;
    background-position:center center!important;
  }
}

/* Desktop/tablet: pierwszy slajd wypełnia ten sam kontener co pozostałe. */
@media (min-width:641px){
  .hero-slider .originalHero{
    background-size:cover!important;
    background-position:center center!important;
  }
}

/* === V27 TEST — tylko BANER 1 na telefonie; slajdy 2–4 zachowują V25 === */
@media (max-width:640px){
  /* Nie zmieniamy wysokości całego slidera przy przejściu na slajd 1. */
  .hero-slider.first-slide-active{
    height:360px!important;
    min-height:360px!important;
    max-height:360px!important;
    aspect-ratio:auto!important;
  }
  /* Tylko oryginalny baner: cała szerokość grafiki, bez obcinania boków. */
  .hero-slider .originalHero{
    background-size:100% auto!important;
    background-position:center center!important;
    background-repeat:no-repeat!important;
    background-color:#140e0b!important;
  }
}
@media (max-width:420px){
  .hero-slider.first-slide-active{
    height:330px!important;
    min-height:330px!important;
    max-height:330px!important;
  }
}

/* === V28 TEST — BANER 1 mobile: minimalne czarne pole + kropki pod grafiką === */
@media (max-width:640px){
  /* Tylko aktywny slajd 1: pełna grafika + 44 px miejsca na nawigację. */
  .hero-slider.first-slide-active{
    height:calc((100vw * 851 / 1672) + 44px)!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:auto!important;
    background:#140e0b!important;
  }
  .hero-slider.first-slide-active .originalHero{
    background-size:100% auto!important;
    background-position:center top!important;
    background-repeat:no-repeat!important;
    background-color:#140e0b!important;
  }
  /* Strzałki pozostają na środku samej grafiki, nie całego pola z kropkami. */
  .hero-slider.first-slide-active .sliderArrow{
    top:calc((100vw * 851 / 1672) / 2)!important;
  }
  /* Kropki w wąskim pasku bezpośrednio pod grafiką. */
  .hero-slider.first-slide-active .dots{
    bottom:12px!important;
  }
}

/* === V29 FINAL — BANER 1 mobile: kompaktowy pasek nawigacji === */
@media (max-width:640px){
  /* Zachowujemy pełną szerokość grafiki; pod nią tylko 28 px na kropki. */
  .hero-slider.first-slide-active{
    height:calc((100vw * 851 / 1672) + 28px)!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:auto!important;
    background:#140e0b!important;
  }
  .hero-slider.first-slide-active .originalHero{
    background-size:100% auto!important;
    background-position:center top!important;
    background-repeat:no-repeat!important;
    background-color:#140e0b!important;
  }
  .hero-slider.first-slide-active .sliderArrow{
    top:calc((100vw * 851 / 1672) / 2)!important;
  }
  .hero-slider.first-slide-active .dots{
    bottom:5px!important;
  }
}

/* === V30 — logo pod sliderem: mniejsze i bardziej zwarte === */
@media (max-width:640px){
  /* Slider V29 pozostaje bez zmian. Zmieniamy wyłącznie sekcję intro. */
  section.intro{
    padding-top:24px!important;
    padding-bottom:18px!important;
  }
  section.intro > img{
    width:88px!important;
    max-width:29vw!important;
    height:auto!important;
    padding:8px 10px!important;
    margin:0 auto 12px!important;
    border-radius:14px!important;
    background:#261a16!important;
    box-shadow:0 9px 24px rgba(38,26,22,.10)!important;
  }
}
@media (max-width:380px){
  section.intro > img{
    width:84px!important;
    max-width:30vw!important;
    padding:8px 9px!important;
  }
}

/* === V31 — intro mobile: ciaśniejsze odstępy wokół logo === */
@media (max-width:640px){
  /* Slider V29 i rozmiar logo V30 pozostają bez zmian. */
  section.intro{
    padding-top:12px!important;
    gap:10px!important;
  }
  section.intro > img{
    margin:0 auto 4px!important;
  }
}

/* === V32 — mobile: slajdy 2–4 niższe, bliżej proporcji banera 1 === */
@media (max-width:640px){
  /* Baner 1 (V29) pozostaje bez zmian. Dla 2–4 zmniejszamy głównie wolną przestrzeń. */
  .hero-slider:not(.first-slide-active){
    height:clamp(280px, calc(50.9vw + 95px), 330px)!important;
    min-height:280px!important;
    max-height:330px!important;
    aspect-ratio:auto!important;
  }
  .hero-slider:not(.first-slide-active) .slide:not(.originalHero) .slideCopy{
    top:49%!important;
  }
  .hero-slider:not(.first-slide-active) .dots{
    bottom:10px!important;
  }
}
@media (max-width:380px){
  .hero-slider:not(.first-slide-active) .slide:not(.originalHero) .slideCopy{
    top:48%!important;
  }
}

/* === V33 TEST — mobile: slajdy 2–4 wyraźnie bliżej wysokości banera 1 === */
@media (max-width:640px){
  /* Baner 1 pozostaje dokładnie jak w V29. */
  .hero-slider:not(.first-slide-active){
    height:clamp(230px, calc(50.9vw + 55px), 255px)!important;
    min-height:230px!important;
    max-height:255px!important;
    aspect-ratio:auto!important;
  }
  .hero-slider:not(.first-slide-active) .slide:not(.originalHero) .slideCopy{
    left:44px!important;
    right:44px!important;
    top:46%!important;
    transform:translateY(-50%)!important;
  }
  .hero-slider:not(.first-slide-active) .slide:not(.originalHero) .slideCopy>span{
    font-size:10px!important;
    line-height:1.05!important;
    margin-bottom:5px!important;
  }
  .hero-slider:not(.first-slide-active) .slide:not(.originalHero) .slideCopy h1{
    font-size:26px!important;
    line-height:.96!important;
    margin:4px 0 9px!important;
  }
  .hero-slider:not(.first-slide-active) .slide:not(.originalHero) .slideCopy p{
    font-size:13px!important;
    line-height:1.28!important;
    margin:0!important;
  }
  .hero-slider:not(.first-slide-active) .dots{
    bottom:6px!important;
  }
  .hero-slider:not(.first-slide-active) .sliderArrow{
    width:36px!important;
    height:36px!important;
    font-size:24px!important;
  }
  /* Slajd 4 ma najwięcej tekstu — odrobinę ciaśniej, bez nakładania. */
  .hero-slider:not(.first-slide-active) .slide:nth-of-type(4) .slideCopy h1{
    font-size:25px!important;
    margin:0 0 8px!important;
  }
  .hero-slider:not(.first-slide-active) .slide:nth-of-type(4) .slideCopy>span{
    margin-bottom:7px!important;
  }
}
@media (max-width:380px){
  .hero-slider:not(.first-slide-active) .slide:not(.originalHero) .slideCopy{
    left:42px!important;
    right:42px!important;
    top:45%!important;
  }
  .hero-slider:not(.first-slide-active) .slide:not(.originalHero) .slideCopy h1{
    font-size:25px!important;
  }
  .hero-slider:not(.first-slide-active) .slide:nth-of-type(4) .slideCopy h1{
    font-size:24px!important;
  }
}

/* === V34 — mobile: zwarta sekcja intro pod sliderem === */
@media (max-width:640px){
  /* Slider V33 i desktop pozostają bez zmian. */
  section.intro .tag{
    margin:0 0 9px!important;
  }
  section.intro h2{
    margin:0 0 14px!important;
  }
  section.intro p{
    line-height:1.50!important;
  }
  section.intro .ticks{
    margin-top:20px!important;
    gap:9px!important;
  }
  section.intro .ticks b{
    line-height:1.28!important;
  }
}

/* === V35 — MOBILE FINAL POLISH: zbiorcza korekta rytmu po audycie całej strony === */
@media (max-width:640px){
  /* Slider V33 jest zamknięty — brak zmian w .hero-slider. */

  /* Intro / przejście do oferty */
  section.intro{padding-bottom:38px!important;}
  section.offer{padding-top:42px!important;padding-bottom:48px!important;}
  .cards{gap:16px!important;margin-top:26px!important;}
  .cards article>div{padding:18px 20px 20px!important;}
  .cards h3{margin:7px 0 9px!important;}
  .cards p{line-height:1.50!important;}

  /* Program — mniej pustej przestrzeni, bez zmniejszania nagłówków */
  section.details{padding-top:44px!important;padding-bottom:44px!important;}
  .details .sectionhead>p{line-height:1.50!important;}
  .detailgrid{margin-top:24px!important;gap:12px!important;}
  .detailgrid article{padding:18px 20px!important;}
  .detailgrid h3{margin:12px 0 8px!important;}
  .detailgrid p{line-height:1.50!important;}
  .programnote{margin-top:14px!important;padding:13px 16px!important;}

  /* Zdjęcie przed „Dla kogo?” — niższe, nadal pełne i czytelne */
  .audiencePhoto,.audiencePhoto img{height:220px!important;}
  .audiencePhoto img{object-fit:cover!important;object-position:center 42%!important;}
  .audienceCopy{padding-top:38px!important;padding-bottom:40px!important;}
  .audienceCopy>p{line-height:1.52!important;}
  .audienceList{gap:6px!important;margin:16px 0!important;}
  .audienceList div{padding:13px 0!important;}
  .audienceCopy .fine{margin:16px 0 0!important;line-height:1.5!important;}

  /* Lokalizacje */
  section.locations{padding-top:42px!important;padding-bottom:44px!important;}
  .locations .sectionhead>p{line-height:1.50!important;}
  .locationgrid{margin-top:24px!important;gap:14px!important;}
  .locationgrid article>div{padding:18px 20px 20px!important;}
  .locationgrid h3{margin:7px 0 9px!important;}
  .locationgrid p{line-height:1.50!important;}
  .locationgrid .future{min-height:0!important;}
  .locationgrid .future>div{padding-top:24px!important;padding-bottom:24px!important;}

  /* Volley Camps */
  .volley{padding-top:46px!important;padding-bottom:46px!important;gap:26px!important;}
  .vcopy p{line-height:1.50!important;}
  .history{margin:16px 0!important;line-height:1.62!important;}

  /* Sezon 2027 */
  .year2027{padding-top:44px!important;padding-bottom:46px!important;gap:24px!important;}
  .yearcopy>p{line-height:1.50!important;}
  .past{margin-top:16px!important;gap:4px!important;}
  .past div{padding:11px 0!important;}
  .interest{padding:20px!important;}
  .interest h3{margin:8px 0 12px!important;}
  .interest p{line-height:1.50!important;margin:0 0 12px!important;}
  .interest .btn{margin:4px 0 8px!important;}
  .interest .fbbutton{margin:0!important;}
  .interest small{margin-top:12px!important;line-height:1.45!important;}

  /* Galeria */
  section.gallery{padding-top:44px!important;padding-bottom:44px!important;}
  section.gallery .grid{margin-top:24px!important;margin-bottom:20px!important;}
  section.gallery .grid img:last-child{grid-column:1/-1!important;width:calc(50% - 5px)!important;justify-self:center!important;}
  section.gallery .fb{display:inline-flex!important;align-items:center!important;gap:6px!important;white-space:nowrap!important;font-size:15px!important;}

  /* Lista zainteresowanych / formularz */
  section.legal-form{padding-top:44px!important;padding-bottom:44px!important;gap:20px!important;}
  section.legal-form>div>p{line-height:1.50!important;}
  .legal-form form{padding:20px 18px!important;}
  .legal-form label{margin-bottom:11px!important;line-height:1.35!important;}
  .legal-form input:not([type=checkbox]){min-height:40px!important;height:40px!important;margin-top:6px!important;padding:8px 11px!important;}
  .legal-form .check{gap:10px!important;line-height:1.38!important;margin:4px 0 14px!important;}
  .legal-form .check input{flex:0 0 auto!important;margin-top:3px!important;}
  .legal-form small{margin-top:12px!important;line-height:1.45!important;}

  /* Kontakt i stopka */
  .contact{padding-top:44px!important;padding-bottom:44px!important;gap:20px!important;}
  .legal-footer{padding-top:28px!important;padding-bottom:32px!important;gap:16px!important;}
  .legal-footer>img,footer.legal-footer>img{height:68px!important;}
}

/* === V36 — MOBILE: finalna kompresja pionowych odstępów po pełnym przeglądzie telefonu === */
@media (max-width:640px){
  /* 1. Lokalizacje -> Volley Camps: mniej pustego kremowego pasa. */
  section.locations{padding-bottom:29px!important;}
  section.volley{padding-top:31px!important;}

  /* 2. Sezon 2027 -> „Z życia APM”: krótsze przejście, bez zmian w kartach. */
  section.year2027{padding-bottom:31px!important;}
  section.gallery{padding-top:29px!important;padding-bottom:28px!important;}

  /* 3. Galeria: zachowujemy kadry i układ 1+2+2, tylko ciaśniejszy rytm pionowy. */
  section.gallery .grid{
    grid-auto-rows:auto!important;
    column-gap:10px!important;
    row-gap:8px!important;
    margin-top:24px!important;
    margin-bottom:10px!important;
    align-items:start!important;
  }
  section.gallery .grid img:last-child{margin-bottom:0!important;}
  section.gallery .fb{margin-top:0!important;margin-bottom:0!important;}

  /* 4. Link galerii -> Lista zainteresowanych. */
  section.legal-form{padding-top:30px!important;padding-bottom:24px!important;gap:9px!important;}

  /* 5. Formularz -> Kontakt: mniej pustego kremowego pola. */
  section.contact{padding-top:29px!important;}
}

/* === V38 — mobile: mniejsze logo APM pod sliderem === */
@media (max-width:640px){
  section.intro > img{
    width:70px!important;
    max-width:24vw!important;
    padding:6px 8px!important;
    margin:0 auto 4px!important;
    border-radius:12px!important;
  }
}
@media (max-width:380px){
  section.intro > img{
    width:68px!important;
    max-width:25vw!important;
    padding:6px 8px!important;
  }
}

/* === V39 — DESKTOP: logotypy + zwarty dół strony === */
@media (min-width:801px){
  /* Logo w nagłówku: ten sam poprawny znak, na ciemnym polu jak na mobile. */
  header .logo img{
    height:64px!important;
    width:auto!important;
    padding:6px 8px!important;
    background:#261a16!important;
    border-radius:12px!important;
    object-fit:contain!important;
  }

  /* Logo intro: białe hasło pozostaje czytelne dzięki ciemnemu tłu. */
  section.intro > img{
    width:230px!important;
    max-width:230px!important;
    height:auto!important;
    padding:18px 20px!important;
    background:#261a16!important;
    border-radius:22px!important;
    box-shadow:0 14px 34px rgba(38,26,22,.10)!important;
    object-fit:contain!important;
  }

  /* Galeria -> lista zainteresowanych: mniej pustej przestrzeni. */
  section.gallery{padding-bottom:45px!important;}
  section.legal-form{padding-top:50px!important;padding-bottom:50px!important;}

  /* Formularz -> Kontakt: krótsze, bardziej naturalne przejście. */
  section.contact{padding-top:60px!important;padding-bottom:60px!important;}
}

/* === V41 FINAL — MOBILE: krótsze przejście Oferta -> Program === */
@media (max-width:640px){
  /* Jedyna końcowa korekta mobile: redukcja pustej przestrzeni między kartami oferty a sekcją Program. */
  section.offer{padding-bottom:30px!important;}
  section.details{padding-top:30px!important;}
}

/* === V42 FINAL — desktop: BANER 1 w całości, bez ucinania logo === */
@media (min-width:641px){
  .hero-slider.first-slide-active{
    height:calc(100vw * 851 / 1672)!important;
    min-height:0!important;
    max-height:851px!important;
    aspect-ratio:auto!important;
    background:#140e0b!important;
  }
  .hero-slider.first-slide-active .originalHero{
    background-size:100% auto!important;
    background-position:center top!important;
    background-repeat:no-repeat!important;
    background-color:#140e0b!important;
  }
}
