/* Back2Health — main.css
   Pełny arkusz stylów motywu. Zmienne i krytyczne style above-the-fold
   są duplikowane z critical.css (inline), tutaj jest kompletna wersja. */

:root{
  --ink:#07151B;
  --deep:#0C2430;
  --deep-2:#0F2E3D;
  --aqua:#1FC7A8;
  --aqua-2:#2DD4BF;
  --light:#F5F8F7;
  --white:#FFFFFF;
  --text:#22343C;
  --muted:#5E7480;
  --line:rgba(12,36,48,.1);
  --overlay:.45;
  --font-d:'Sora',system-ui,sans-serif;
  --font-b:'Figtree',system-ui,sans-serif;
  --rad:18px;
  --rad-lg:28px;
  --shadow-sm:0 6px 20px rgba(7,21,27,.07);
  --shadow-md:0 14px 44px rgba(7,21,27,.12);
  --shadow-aqua:0 8px 26px rgba(31,199,168,.35);
  --head-h:78px;
  --ease:cubic-bezier(.22,.8,.3,1);
}

/* ---------- Baza ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--font-b);font-size:1.0625rem;line-height:1.65;color:var(--text);background:var(--light);overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--font-d);line-height:1.18;color:var(--ink);margin:0 0 .6em;letter-spacing:-.015em}
p{margin:0 0 1.1em}
:focus-visible{outline:3px solid var(--aqua);outline-offset:3px;border-radius:6px}
::selection{background:rgba(31,199,168,.3)}

.container{width:min(1200px,92%);margin-inline:auto}
.container--narrow{width:min(840px,92%)}

.skip-link{position:absolute;left:-9999px;top:0;background:var(--aqua);color:#04201A;padding:.7rem 1.2rem;border-radius:0 0 12px 0;z-index:200;font-weight:600;text-decoration:none}
.skip-link:focus{left:0}

/* ---------- Przyciski ---------- */
.btn{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-d);font-weight:600;font-size:.95rem;text-decoration:none;border-radius:999px;padding:.78rem 1.5rem;border:1.5px solid transparent;cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s,background .25s,color .25s,border-color .25s;will-change:transform}
.btn__arrow{transition:transform .25s var(--ease)}
.btn:hover .btn__arrow{transform:translateX(4px)}
.btn--primary{background:linear-gradient(135deg,var(--aqua),var(--aqua-2));color:#04201A;box-shadow:var(--shadow-aqua)}
.btn--primary:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(31,199,168,.45)}
.btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}
.btn--ghost:hover{border-color:var(--aqua-2);color:var(--aqua-2);transform:translateY(-2px)}
.sec--jasne .btn--ghost,
.page-content .btn--ghost{color:var(--deep);border-color:rgba(12,36,48,.3)}
.sec--jasne .btn--ghost:hover{color:var(--aqua);border-color:var(--aqua)}
.btn--light{background:#fff;color:var(--deep);box-shadow:var(--shadow-sm)}
.btn--light:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.btn--sm{padding:.55rem 1.1rem;font-size:.85rem}
.btn--lg{padding:.95rem 1.9rem;font-size:1.02rem}

/* ---------- Nagłówek strony ---------- */
.site-header{position:fixed;inset:0 0 auto;z-index:100;height:var(--head-h);display:flex;align-items:center;transition:background .35s,box-shadow .35s,height .35s;background:linear-gradient(rgba(7,21,27,.55),rgba(7,21,27,0))}
/* Podstrony: header ciemny na starcie, bieleje po scrollu (.is-solid niżej nadpisuje). */
.b2h-subpage .site-header:not(.is-solid){background:linear-gradient(160deg,rgba(7,21,27,.97),rgba(15,46,61,.97));box-shadow:0 8px 30px rgba(7,21,27,.25)}
.site-header.is-solid{background:rgba(247,250,249,.86);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 6px 30px rgba(7,21,27,.08);height:66px}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;width:min(1320px,94%);margin-inline:auto}
.site-logo{display:flex;align-items:center;text-decoration:none;flex-shrink:0}
.site-logo img{max-height:46px;width:auto}
.site-logo__img--dark{display:none}
.is-solid .site-logo__img--light{display:none}
.is-solid .site-logo__img--dark{display:block}
.site-logo--footer .site-logo__img--dark{display:none}
.site-logo__text{font-family:var(--font-d);font-weight:800;font-size:1.35rem;color:#fff;letter-spacing:-.02em}
.site-logo__text em{font-style:normal;color:var(--aqua-2)}
.is-solid .site-logo__text{color:var(--ink)}

.nav{display:flex;align-items:center;gap:1.5rem}
.nav__list{display:flex;list-style:none;margin:0;padding:0;gap:.25rem}
.nav__list a{display:block;padding:.55rem .85rem;text-decoration:none;font-weight:600;font-size:.95rem;color:rgba(255,255,255,.92);border-radius:999px;transition:color .2s,background .2s}
.is-solid .nav__list a{color:var(--deep)}
.nav__list a:hover,
.nav__list .current-menu-item > a{color:var(--aqua-2);background:rgba(31,199,168,.1)}
.is-solid .nav__list a:hover,
.is-solid .nav__list .current-menu-item > a{color:var(--aqua)}
.nav__actions{display:flex;align-items:center;gap:.7rem}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:.5rem;z-index:120}
.nav-toggle span{display:block;width:26px;height:2px;background:#fff;margin:6px 0;border-radius:2px;transition:transform .3s,opacity .3s}
.is-solid .nav-toggle span{background:var(--ink)}

/* ---------- Sekcje / wspólne ---------- */
.section{position:relative;padding:5.5rem 0}
.sec--jasne{background:var(--light)}
.sec--ciemne{background:linear-gradient(160deg,var(--ink),var(--deep) 60%,var(--deep-2));color:rgba(255,255,255,.88)}
.sec--ciemne h1,.sec--ciemne h2,.sec--ciemne h3,.sec--ciemne h4{color:#fff}

.sec__blob{position:absolute;width:46vw;max-width:640px;aspect-ratio:1;border-radius:50%;filter:blur(70px);opacity:.5;pointer-events:none;will-change:transform;animation:b2hFloat 14s ease-in-out infinite alternate}
.sec__blob--a{top:-12%;left:-14%;background:radial-gradient(circle,rgba(31,199,168,.28),transparent 65%)}
.sec__blob--b{bottom:-16%;right:-12%;background:radial-gradient(circle,rgba(45,212,191,.2),transparent 65%);animation-delay:-7s}
@keyframes b2hFloat{from{transform:translate(0,0) scale(1)}to{transform:translate(4%,6%) scale(1.08)}}

.eyebrow{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--font-d);font-weight:600;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--aqua)}
.eyebrow__dot{width:9px;height:9px;border-radius:50%;background:var(--aqua);box-shadow:0 0 0 5px rgba(31,199,168,.18);animation:b2hLed 2.2s ease-in-out infinite}
@keyframes b2hLed{
  0%,100%{box-shadow:0 0 0 4px rgba(31,199,168,.22),0 0 6px 1px rgba(31,199,168,.5);opacity:1}
  50%{box-shadow:0 0 0 9px rgba(31,199,168,0),0 0 14px 3px rgba(31,199,168,.85);opacity:.75}
}
.eyebrow--light{color:var(--aqua-2)}

.sec-title{font-size:clamp(1.7rem,3.4vw,2.5rem);font-weight:700;margin-top:.6rem}
.sec-head--center{margin-inline:auto;text-align:left}
/* Sekcja usług: długi opis na szerokość do 1000px, wyrównany do lewej (czytelny blok). */
.sec-services .sec-head--center{max-width:none}
.sec-services .sec-head--center .sec-head__text{max-width:100%;margin-inline:auto;text-align:left}
/* Linki w opisie sekcji usług (np. „NASZ ZESPÓŁ") renderowane jako przyciski. */
.sec-services .sec-head__text a{display:inline-flex;align-items:center;gap:.45rem;margin-top:.35rem;font-family:var(--font-d);font-weight:600;font-size:.92rem;text-decoration:none;border-radius:999px;padding:.6rem 1.3rem;border:1.5px solid rgba(255,255,255,.45);color:#fff;transition:border-color .25s,color .25s,transform .25s}
.sec-services .sec-head__text a:hover{border-color:var(--aqua-2);color:var(--aqua-2);transform:translateY(-2px)}
.sec-services.sec--jasne .sec-head__text a{border-color:rgba(12,36,48,.3);color:var(--deep)}
.sec-services.sec--jasne .sec-head__text a:hover{border-color:var(--aqua);color:var(--aqua)}
.sec-head--split{max-width:none;display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.sec-head__source{color:var(--muted);margin:0}
.sec--ciemne .sec-head__source{color:rgba(255,255,255,.65)}
.sec-foot{margin-top:3rem;text-align:center}

/* ---------- Hero ---------- */
.hero{position:relative;display:flex;align-items:center;min-height:92svh;background:var(--ink);color:#fff;overflow:hidden}
.hero--pelna{min-height:100svh}
.hero--wysoka{min-height:92svh}
.hero--srednia{min-height:70svh}
.hero__media{position:absolute;inset:0}
.hero__poster,.hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero__video{opacity:0;transition:opacity 1.2s ease}
.hero__video.is-ready{opacity:1}
.hero__overlay{position:absolute;inset:0;background:linear-gradient(115deg,rgba(7,21,27,calc(var(--overlay) + .25)),rgba(7,21,27,var(--overlay)) 55%,rgba(7,21,27,calc(var(--overlay) - .15)));z-index:2}
.hero__aurora{position:absolute;inset:0;z-index:3;pointer-events:none;opacity:.55;background:radial-gradient(42% 55% at 18% 75%,rgba(31,199,168,.4),transparent 70%),radial-gradient(38% 48% at 85% 20%,rgba(45,212,191,.25),transparent 70%);animation:b2hAurora 16s ease-in-out infinite alternate}
@keyframes b2hAurora{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(2%,-3%,0) scale(1.06)}}
.hero__inner{position:relative;z-index:5;width:min(1200px,92%);margin-inline:auto;padding:9rem 0 6rem}
.hero__slider{position:relative}
.hero__slide{display:none;max-width:680px}
.hero__slide.is-active{display:block;animation:b2hSlideIn .8s var(--ease) both}
@keyframes b2hSlideIn{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
.hero__title{font-family:var(--font-d);font-weight:800;font-size:clamp(2.1rem,5.2vw,3.9rem);line-height:1.08;letter-spacing:-.02em;color:#fff;margin:.5rem 0 1rem}
.hero__desc{font-size:clamp(1.02rem,1.6vw,1.2rem);color:rgba(255,255,255,.85);max-width:54ch;margin:0 0 1.8rem}
.hero__cta{display:flex;gap:.9rem;flex-wrap:wrap}
.hero__dots{position:relative;z-index:6;display:flex;gap:.6rem;margin-top:3rem}
.hero__dot{width:34px;height:5px;border-radius:99px;border:0;background:rgba(255,255,255,.3);cursor:pointer;padding:0;transition:background .3s,width .3s}
.hero__dot.is-active{background:var(--aqua-2);width:52px}
.hero__scroll{position:absolute;bottom:1.6rem;left:50%;transform:translateX(-50%);z-index:6;display:flex;flex-direction:column;align-items:center;gap:.4rem;color:rgba(255,255,255,.7);font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;text-decoration:none}
.hero__scroll-line{width:1.5px;height:42px;background:linear-gradient(var(--aqua-2),transparent);animation:b2hScroll 1.8s ease-in-out infinite}
@keyframes b2hScroll{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---------- Sekcja intro (nagłówek H1/H2 + lista + obraz) ---------- */
.sec-intro__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:4rem;align-items:center}
.sec-intro--obraz-lewo .sec-intro__grid > .sec-intro__content{order:2}
.sec-intro--bez-obrazu .sec-intro__grid{grid-template-columns:1fr;max-width:820px}
.sec-intro__text{color:var(--muted);font-size:1.08rem}
.sec--ciemne .sec-intro__text{color:rgba(255,255,255,.75)}
.sec-intro__list-title{font-size:1.05rem;font-weight:700;margin:1.6rem 0 .8rem}
.sec-intro__note{font-size:.95rem;color:var(--muted);margin-top:1rem}
.sec-intro__cta{margin-top:1.8rem;display:flex;gap:.9rem;flex-wrap:wrap}

.check-list{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
.check-list li{display:flex;align-items:flex-start;gap:.7rem;font-weight:500}
.check-list svg{flex-shrink:0;margin-top:.22em;color:var(--aqua)}

.media-frame{position:relative;border-radius:var(--rad-lg);isolation:isolate}
.media-frame__img{border-radius:var(--rad-lg);box-shadow:var(--shadow-md);width:100%;object-fit:cover}
.media-frame__ring{position:absolute;inset:-14px;border:1.5px solid rgba(31,199,168,.35);border-radius:calc(var(--rad-lg) + 14px);z-index:-1;animation:b2hRing 8s ease-in-out infinite alternate}
@keyframes b2hRing{from{transform:rotate(0) scale(1)}to{transform:rotate(.6deg) scale(1.012)}}
.media-frame--tilt{transform:rotate(-1.2deg)}
.media-frame--tilt .media-frame__img{transform:rotate(1.2deg)}

/* ---------- Usługi ---------- */
.services-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;list-style:none;margin:0;padding:0}
.service-card{position:relative;display:flex;flex-direction:column;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:var(--rad);padding:1.6rem 1.5rem;transition:transform .35s var(--ease),background .35s,border-color .35s,box-shadow .35s;overflow:hidden}
.service-card::after{content:"";position:absolute;inset:auto -40% -60% auto;width:75%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(31,199,168,.22),transparent 70%);opacity:0;transition:opacity .4s;pointer-events:none}
.service-card:hover{transform:translateY(-7px);background:rgba(255,255,255,.08);border-color:rgba(31,199,168,.45);box-shadow:0 20px 50px rgba(0,0,0,.35)}
.service-card:hover::after{opacity:1}
.sec--jasne .service-card{background:#fff;border-color:var(--line);box-shadow:var(--shadow-sm)}
.sec--jasne .service-card:hover{box-shadow:var(--shadow-md)}
.service-card__head{display:flex;align-items:center;gap:.95rem}
.service-card__icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:54px;height:54px;border-radius:15px;background:linear-gradient(135deg,rgba(31,199,168,.18),rgba(45,212,191,.08));color:var(--aqua-2);transition:transform .35s var(--ease)}
.sec--jasne .service-card__icon{color:var(--aqua)}
.service-card:hover .service-card__icon{transform:scale(1.08) rotate(-4deg)}
.service-card__name{font-size:1.05rem;font-weight:700;line-height:1.25;margin:0;color:#fff;overflow-wrap:anywhere}
.sec--jasne .service-card__name{color:var(--ink)}
.service-card__name a{text-decoration:none;color:inherit;transition:color .2s}
.service-card__name a:hover{color:var(--aqua-2)}
.sec--jasne .service-card__name a:hover{color:var(--aqua)}
/* Stretched link – cały kafel klikalny, bez podkreśleń. */
.service-card__name a::after{content:"";position:absolute;inset:0;z-index:2}
.service-card__desc{font-size:.93rem;color:rgba(255,255,255,.65);margin:.95rem 0 0}
.sec--jasne .service-card__desc{color:var(--muted)}
.service-card__go{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;margin-left:auto;width:34px;height:34px;border-radius:50%;border:1.5px solid rgba(255,255,255,.18);color:var(--aqua-2);transition:background .3s,border-color .3s,color .3s}
.sec--jasne .service-card__go{border-color:var(--line);color:var(--aqua)}
.service-card:hover .service-card__go{background:var(--aqua);border-color:var(--aqua);color:#04201A}
.service-card__go svg{transition:transform .3s var(--ease)}
.service-card:hover .service-card__go svg{transform:translateX(2px)}

/* ---------- Tekst + obrazek ---------- */
.sec-split__grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}
.sec-split--rev .sec-split__content{order:2}
.sec-split__text{color:var(--muted)}
.sec--ciemne .sec-split__text{color:rgba(255,255,255,.75)}
.sec-split__cta{margin-top:1.8rem}
.lead{font-size:1.18rem;font-weight:500;}
.sec--ciemne .lead{color:rgba(255,255,255,.92)}

/* ---------- Atuty ---------- */
.features-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem}
.feature{background:#fff;border:1px solid var(--line);border-radius:var(--rad);padding:1.6rem 1.5rem;box-shadow:var(--shadow-sm);transition:transform .35s var(--ease),box-shadow .35s}
.feature:hover{transform:translateY(-6px);box-shadow:var(--shadow-md)}
.sec--ciemne .feature{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.1);box-shadow:none}
.feature__head{display:flex;align-items:center;gap:.95rem}
.feature__icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:54px;height:54px;border-radius:15px;background:linear-gradient(135deg,rgba(31,199,168,.16),rgba(45,212,191,.07));color:var(--aqua)}
.sec--ciemne .feature__icon{color:var(--aqua-2)}
.feature__title{font-size:1.05rem;font-weight:700;line-height:1.3;margin:0}
.feature__desc{font-size:.95rem;color:var(--muted);margin:.95rem 0 0}
.sec--ciemne .feature__desc{color:rgba(255,255,255,.65)}

/* ---------- Opinie ---------- */
.reviews{position:relative}
.reviews__track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(330px,420px);gap:1.4rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:.5rem .2rem 1.4rem;scrollbar-width:none;
  /* Krawędzie karuzeli zanikają, zamiast twardo ucinać karty. */
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 2.5rem,#000 calc(100% - 4.5rem),transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 2.5rem,#000 calc(100% - 4.5rem),transparent 100%)}
.reviews__track::-webkit-scrollbar{display:none}
.review{scroll-snap-align:start;background:#fff;border:1px solid var(--line);border-radius:var(--rad-lg);padding:2rem;margin:0;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:1.1rem;transition:transform .35s var(--ease),box-shadow .35s}
.review:hover{transform:translateY(-5px);box-shadow:var(--shadow-md)}
.sec--ciemne .review{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.1);box-shadow:none}
.review__text{font-size:.98rem;margin:0;flex-grow:1}
.review__footer{display:flex;align-items:center;gap:.9rem}
.review__avatar{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--aqua),var(--aqua-2));color:#04201A;font-family:var(--font-d);font-weight:700;flex-shrink:0}
.review__author{font-weight:700;font-family:var(--font-d);font-size:.95rem}
.review__role{font-size:.83rem;color:var(--muted);display:block}
.sec--ciemne .review__role{color:rgba(255,255,255,.6)}
.review__link{font-size:.83rem;color:var(--aqua);text-decoration:none;font-weight:600}
.stars{display:inline-flex;gap:2px}
.stars svg{width:17px;height:17px}
.star--on{color:#FFC24B}
.star--off{color:rgba(140,160,170,.4)}
.reviews__nav{display:flex;gap:.7rem;justify-content:flex-end;margin-top:.4rem}
.reviews__btn{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;border:1.5px solid var(--line);background:#fff;color:var(--deep);cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .25s}
.reviews__btn:hover{background:var(--aqua);border-color:var(--aqua);color:#04201A;transform:translateY(-2px)}
.sec--ciemne .reviews__btn{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.2);color:#fff}

/* ---------- Blog ---------- */
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
.post-card{background:#fff;border:1px solid var(--line);border-radius:var(--rad-lg);overflow:hidden;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;transition:transform .35s var(--ease),box-shadow .35s}
.post-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md)}
.post-card__media{display:block;aspect-ratio:3/2;overflow:hidden;background:linear-gradient(135deg,var(--deep),var(--deep-2))}
.post-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.post-card:hover .post-card__media img{transform:scale(1.06)}
.post-card__body{padding:1.6rem;display:flex;flex-direction:column;flex-grow:1}
.post-card__date{font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:var(--aqua);font-weight:600;margin-bottom:.5rem}
.post-card__title{font-size:1.15rem;margin-bottom:.6rem}
.post-card__title a{text-decoration:none;transition:color .2s}
.post-card__title a:hover{color:var(--aqua)}
.post-card__excerpt{font-size:.95rem;color:var(--muted);flex-grow:1}
.post-card__more{display:inline-flex;align-items:center;gap:.4rem;margin-top:1rem;font-family:var(--font-d);font-weight:600;font-size:.88rem;color:var(--aqua);text-decoration:none}
.post-card__more svg{transition:transform .3s var(--ease)}
.post-card__more:hover svg{transform:translateX(5px)}
.pagination-wrap{margin-top:3rem;display:flex;justify-content:center}
.pagination-wrap .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 .6rem;margin:0 .2rem;border-radius:12px;background:#fff;border:1px solid var(--line);text-decoration:none;font-weight:600;transition:background .2s,color .2s}
.pagination-wrap .page-numbers.current,.pagination-wrap .page-numbers:hover{background:var(--aqua);border-color:var(--aqua);color:#04201A}

/* ---------- Kontakt ---------- */
.sec-contact__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:3.5rem;align-items:flex-start}
.sec-contact__text{color:rgba(255,255,255,.75)}
.sec-contact__h{font-size:1.02rem;font-weight:700;color:#fff;margin:1.6rem 0 .6rem}
.contact-list{list-style:none;margin:0;padding:0;display:grid;gap:.85rem}
.contact-list li{display:flex;align-items:flex-start;gap:.8rem}
.contact-list a{text-decoration:none;transition:color .2s}
.contact-list a:hover{color:var(--aqua-2)}
.contact-list__icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:rgba(31,199,168,.14);color:var(--aqua-2);flex-shrink:0}
.sec-contact__hours{list-style:none;margin:0;padding:0;display:grid;gap:.35rem;color:rgba(255,255,255,.8)}
.sec-contact__hours span{color:#fff;font-weight:600}
.sec-contact__social{display:flex;gap:.7rem;margin-top:1rem}
.social-pill{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);color:#fff;font-size:1.05rem;text-decoration:none;transition:background .25s,color .25s,transform .25s,border-color .25s}
.social-pill:hover{background:var(--aqua);border-color:var(--aqua);color:#04201A;transform:translateY(-3px)}
.social-pill i{line-height:1;text-decoration:none}

.glass-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:var(--rad-lg);padding:2.4rem;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 24px 60px rgba(0,0,0,.3)}
.sec-contact__form-title{font-size:1.3rem;margin-bottom:1.4rem}

.b2h-form{display:grid;gap:1rem}
.b2h-form__row{display:grid;gap:.4rem}
.b2h-form__row label{font-size:.88rem;font-weight:600;color:rgba(255,255,255,.85)}
.b2h-form input[type=text],.b2h-form input[type=email],.b2h-form input[type=tel],.b2h-form textarea{width:100%;padding:.85rem 1.05rem;border-radius:14px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.07);color:#fff;font:inherit;transition:border-color .2s,background .2s}
.b2h-form input::placeholder,.b2h-form textarea::placeholder{color:rgba(255,255,255,.4)}
.b2h-form input:focus,.b2h-form textarea:focus{outline:none;border-color:var(--aqua);background:rgba(255,255,255,.1)}
.b2h-form textarea{min-height:130px;resize:vertical}
.b2h-form__hp{position:absolute !important;left:-9999px !important;width:1px;height:1px;overflow:hidden}
.b2h-form__half{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.b2h-form__consent{display:flex;align-items:flex-start;gap:.6rem;font-size:.83rem;color:rgba(255,255,255,.65)}
.b2h-form__consent input{margin-top:.3em;accent-color:var(--aqua)}
.b2h-form__notice{padding:.9rem 1.1rem;border-radius:14px;font-weight:600;font-size:.95rem}
.b2h-form__notice.is-ok{background:rgba(31,199,168,.15);color:var(--aqua-2);border:1px solid rgba(31,199,168,.4)}
.b2h-form__notice.is-err{background:rgba(255,90,90,.12);color:#FF9D9D;border:1px solid rgba(255,90,90,.35)}
.b2h-form__submit{justify-content:center;gap:.65rem;width:100%}
.b2h-form__submit i{font-size:.95em;transition:transform .3s var(--ease)}
.b2h-form__submit:hover i{transform:translateX(3px) rotate(8deg)}

/* CF7 w ciemnej karcie */
.glass-card .wpcf7 input:not([type=submit]),.glass-card .wpcf7 textarea{width:100%;padding:.85rem 1.05rem;border-radius:14px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.07);color:#fff;font:inherit}
.glass-card .wpcf7 input[type=submit]{background:linear-gradient(135deg,var(--aqua),var(--aqua-2));color:#04201A;border:0;border-radius:999px;padding:.85rem 1.7rem;font-family:var(--font-d);font-weight:600;cursor:pointer}

/* ---------- Tekst SEO / treść wpisu ---------- */
.sec-seo__content{max-width:none}
.entry-content{font-size:1.02rem}
.entry-content h2{font-size:1.55rem;margin-top:2.2em}
.entry-content h3{font-size:1.25rem;margin-top:1.8em}
.entry-content a{color:var(--aqua);text-decoration-color:rgba(31,199,168,.4);text-underline-offset:3px;transition:text-decoration-color .2s}
.entry-content a:hover{text-decoration-color:var(--aqua)}
.entry-content ul,.entry-content ol{padding-left:1.3em;margin:0 0 1.2em}
.entry-content li{margin-bottom:.4em}
.entry-content img{border-radius:var(--rad);margin:1.6em 0}
.entry-content blockquote{margin:1.6em 0;padding:1.2em 1.6em;border-left:4px solid var(--aqua);background:#fff;border-radius:0 var(--rad) var(--rad) 0;font-style:italic}

/* ---------- CTA band ---------- */
.cta-band{position:relative;overflow:hidden;border-radius:var(--rad-lg);background:linear-gradient(135deg,var(--deep),var(--ink));color:#fff;padding:3.6rem 3rem;text-align:center}
.cta-band__aurora{position:absolute;inset:0;pointer-events:none;background:radial-gradient(50% 80% at 15% 100%,rgba(31,199,168,.35),transparent 70%),radial-gradient(45% 70% at 90% 0%,rgba(45,212,191,.25),transparent 70%);animation:b2hAurora 14s ease-in-out infinite alternate}
.cta-band__content{position:relative;z-index:2;max-width:640px;margin-inline:auto}
.cta-band__title{color:#fff;font-size:clamp(1.5rem,3vw,2.1rem)}
.cta-band__text{color:rgba(255,255,255,.8);margin-bottom:1.8rem}

/* ---------- Odstęp ---------- */
.spacer--maly{height:2rem}
.spacer--sredni{height:4.5rem}
.spacer--duzy{height:7rem}

/* ---------- Page hero (podstrony / wpisy) ---------- */
.page-hero{position:relative;background:linear-gradient(150deg,var(--ink),var(--deep-2));color:#fff;padding:10rem 0 4.5rem;overflow:hidden}
.page-hero::after{content:"";position:absolute;inset:0;background:radial-gradient(40% 60% at 85% 10%,rgba(31,199,168,.25),transparent 70%);pointer-events:none}
.page-hero__title{color:#fff;font-size:clamp(1.9rem,4vw,3rem);margin:0;position:relative;z-index:2}
.page-hero__date{position:relative;z-index:2;color:var(--aqua-2);font-weight:600;font-size:.9rem;letter-spacing:.1em;text-transform:uppercase;margin:.8rem 0 0}
.page-content{padding:4.5rem 0}
.single-thumb{margin:-6rem auto 2.5rem;position:relative;z-index:5}
.single-thumb img{border-radius:var(--rad-lg);box-shadow:var(--shadow-md);width:100%;max-height:520px;object-fit:cover}

.error-404{text-align:center;padding:4rem 0}
.error-404 .sec-title{font-size:clamp(2.4rem,6vw,4rem)}

/* ---------- Stopka ---------- */
.site-footer{position:relative;background:var(--ink);color:rgba(255,255,255,.72);padding:5.5rem 0 0;overflow:hidden;font-size:.97rem}
.site-footer a{text-decoration:none;transition:color .2s}
.site-footer a:hover{color:var(--aqua-2)}
.site-footer__glow{position:absolute;inset:0;pointer-events:none;background:radial-gradient(45% 60% at 10% 0%,rgba(31,199,168,.12),transparent 70%),radial-gradient(35% 50% at 95% 100%,rgba(45,212,191,.07),transparent 70%)}
.site-footer__grid{position:relative;display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:3.5rem;padding-bottom:4rem}
.site-footer__h{color:#fff;font-size:1.02rem;font-weight:700;margin:0 0 1.4rem;padding-bottom:.7rem;position:relative}
.site-footer__h::after{content:"";position:absolute;left:0;bottom:0;width:34px;height:2.5px;border-radius:2px;background:linear-gradient(90deg,var(--aqua),var(--aqua-2))}
.site-footer__col ul{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
.site-footer__col li{line-height:1.5}
.site-footer__brand .site-logo{margin-bottom:1.1rem}
.site-footer__brand .site-logo__text{font-size:1.55rem}
.site-footer__tagline{max-width:34ch;color:rgba(255,255,255,.6);margin:0 0 1.6rem;line-height:1.65}
.site-footer__contact{display:grid;gap:.95rem !important}
.site-footer__contact li{display:flex;align-items:flex-start;gap:.85rem}
.site-footer__cicon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;border-radius:11px;background:rgba(31,199,168,.13);color:var(--aqua-2);font-size:.85rem}
.site-footer__contact a,.site-footer__hours{align-self:center}
.site-footer__hours{font-size:.92rem;color:rgba(255,255,255,.65);line-height:1.7;align-self:flex-start;padding-top:.35rem}
.site-footer__legal-ids{display:flex;gap:1.4rem;flex-wrap:wrap;margin:1.5rem 0 0;font-size:.85rem;color:rgba(255,255,255,.5)}
.site-footer__legal-ids strong{color:rgba(255,255,255,.75);font-weight:600}
.site-footer__social{display:flex;gap:.7rem;margin-top:1.5rem}
.site-footer__bottom{position:relative;border-top:1px solid rgba(255,255,255,.1);padding:1.5rem 0;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;font-size:.87rem;color:rgba(255,255,255,.55)}
.site-footer__bottom p{margin:0}
.site-footer__bottom strong{color:rgba(255,255,255,.85);font-weight:600}
.site-footer__author:hover strong{color:var(--aqua-2)}

/* ---------- Animacje wejścia ---------- */
[data-reveal]{opacity:0;transition:opacity .8s var(--ease),transform .8s var(--ease)}
[data-reveal="fade-up"]{transform:translateY(28px)}
[data-reveal="fade-in"]{transform:none}
[data-reveal="slide-left"]{transform:translateX(-40px)}
[data-reveal="slide-right"]{transform:translateX(40px)}
[data-reveal="zoom"]{transform:scale(.92)}
[data-reveal].is-in{opacity:1;transform:none}

/* ---------- Responsywność ---------- */
@media (max-width:1100px){
  .services-grid,.features-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:960px){
  .section{padding:4rem 0}
  .nav-toggle{display:block}
  .nav__list{position:fixed;inset:0;flex-direction:column;justify-content:center;align-items:center;gap:.6rem;background:rgba(7,21,27,.97);transform:translateY(-105%);transition:transform .4s var(--ease);z-index:110}
  .nav__list a{color:#fff !important;font-size:1.25rem}
  .nav.is-open .nav__list{transform:none}
  .nav.is-open .nav-toggle span:nth-child(1){transform:translateY(8px) rotate(45deg)}
  .nav.is-open .nav-toggle span:nth-child(2){opacity:0}
  .nav.is-open .nav-toggle span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
  .nav__actions .btn--ghost{display:none}
  .sec-intro__grid,.sec-split__grid,.sec-contact__grid{grid-template-columns:1fr;gap:2.5rem}
  .sec-intro--obraz-lewo .sec-intro__grid > .sec-intro__content,
  .sec-split--rev .sec-split__content{order:0}
  .post-grid{grid-template-columns:repeat(2,1fr)}
  .site-footer__grid{grid-template-columns:1fr 1fr;gap:2.8rem}
  .single-thumb{margin-top:-3rem}
}
@media (max-width:640px){
  body{font-size:1rem}
  .hero__inner{padding:7.5rem 0 5rem}
  .services-grid,.features-grid,.post-grid{grid-template-columns:1fr}
  .reviews__track{grid-auto-columns:88%}
  .b2h-form__half{grid-template-columns:1fr}
  .glass-card{padding:1.7rem}
  .cta-band{padding:2.6rem 1.6rem}
  .site-footer__grid{grid-template-columns:1fr}
  .site-footer__bottom{justify-content:center;text-align:center}
  .hero__dots{margin-top:2.2rem}
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
  [data-reveal]{opacity:1;transform:none}
  .reviews__track{scroll-behavior:auto}
}

/* ---------- FAQ (akordeon) ---------- */
.faq-list{display:grid;gap:.9rem;max-width:840px;margin-inline:auto}
.faq-item{background:#fff;border:1px solid var(--line);border-radius:var(--rad);box-shadow:var(--shadow-sm);overflow:hidden;transition:box-shadow .3s}
.sec--ciemne .faq-item{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.1);box-shadow:none}
.faq-item[open]{box-shadow:var(--shadow-md)}
.faq-item__q{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.2rem 1.5rem;cursor:pointer;list-style:none}
.faq-item__q::-webkit-details-marker{display:none}
.faq-item__h{font-size:1.02rem;font-weight:700;margin:0;line-height:1.35}
.faq-item__chevron{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:34px;height:34px;border-radius:50%;border:1.5px solid var(--line);color:var(--aqua);transition:transform .35s var(--ease),background .3s,color .3s,border-color .3s}
.sec--ciemne .faq-item__chevron{border-color:rgba(255,255,255,.2);color:var(--aqua-2)}
.faq-item[open] .faq-item__chevron{transform:rotate(180deg);background:var(--aqua);border-color:var(--aqua);color:#04201A}
.faq-item__a{padding:0 1.5rem 1.3rem;color:var(--muted);font-size:.98rem}
.sec--ciemne .faq-item__a{color:rgba(255,255,255,.72)}
.faq-item__a p{margin:0 0 .8em}
.faq-item__a p:last-child{margin-bottom:0}

/* ---------- Kroki / proces ---------- */
.steps{list-style:none;margin:0;padding:0;display:grid;gap:1.3rem;counter-reset:b2hstep}
.step{position:relative;display:flex;gap:1.3rem;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:var(--rad);padding:1.5rem 1.6rem;box-shadow:var(--shadow-sm);transition:transform .3s var(--ease),box-shadow .3s}
.step:hover{transform:translateX(6px);box-shadow:var(--shadow-md)}
.sec--ciemne .step{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.1);box-shadow:none}
.step__num{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:52px;height:52px;border-radius:16px;background:linear-gradient(135deg,var(--aqua),var(--aqua-2));color:#04201A;font-family:var(--font-d);font-weight:800;font-size:1.25rem;box-shadow:var(--shadow-aqua)}
.step__title{font-size:1.1rem;font-weight:700;margin:0 0 .35rem}
.step__desc{margin:0;color:var(--muted);font-size:.97rem}
.sec--ciemne .step__desc{color:rgba(255,255,255,.7)}
.step:not(:last-child)::after{content:"";position:absolute;left:calc(1.6rem + 26px);bottom:-1.3rem;width:2px;height:1.3rem;background:linear-gradient(var(--aqua),transparent)}

/* ---------- Cennik ---------- */
.pricing{display:grid;gap:2.5rem;max-width:900px;margin-inline:auto}
.pricing__group{background:#fff;border:1px solid var(--line);border-radius:var(--rad-lg);padding:2rem 2.2rem;box-shadow:var(--shadow-sm)}
.sec--ciemne .pricing__group{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.1);box-shadow:none}
.pricing__name{font-size:1.18rem;font-weight:700;margin:0 0 1.3rem;padding-bottom:.8rem;border-bottom:2px solid rgba(31,199,168,.35);display:inline-block}
.pricing__list{list-style:none;margin:0;padding:0;display:grid;gap:.85rem}
.pricing__row{display:flex;align-items:baseline;gap:.7rem}
.pricing__service{font-weight:500;display:flex;flex-direction:column;gap:.1rem}
.pricing__note{font-weight:400;font-size:.82rem;color:var(--muted)}
.sec--ciemne .pricing__note{color:rgba(255,255,255,.55)}
.pricing__dots{flex:1;border-bottom:2px dotted rgba(94,116,128,.35);transform:translateY(-4px)}
.pricing__price{font-family:var(--font-d);font-weight:700;color:var(--aqua);white-space:nowrap}
.sec--ciemne .pricing__price{color:var(--aqua-2)}

/* ---------- Zespół ---------- */
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem}
.person{background:#fff;border:1px solid var(--line);border-radius:var(--rad-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .35s var(--ease),box-shadow .35s}
.person:hover{transform:translateY(-6px);box-shadow:var(--shadow-md)}
.sec--ciemne .person{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.1);box-shadow:none}
.person__photo{aspect-ratio:1/1.05;background:linear-gradient(150deg,var(--deep),var(--deep-2));display:flex;align-items:center;justify-content:center;overflow:hidden}
.person__img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.person:hover .person__img{transform:scale(1.05)}
.person__initial{font-family:var(--font-d);font-weight:800;font-size:3rem;color:var(--aqua-2);opacity:.85}
.person__body{padding:1.3rem 1.4rem 1.5rem}
.person__name{font-size:1.05rem;font-weight:700;margin:0 0 .2rem}
.person__role{font-size:.85rem;font-weight:600;color:var(--aqua);margin:0 0 .6rem;letter-spacing:.03em}
.sec--ciemne .person__role{color:var(--aqua-2)}
.person__desc{font-size:.92rem;color:var(--muted);margin:0}
.sec--ciemne .person__desc{color:rgba(255,255,255,.65)}

/* ---------- Mapa ---------- */
.map-frame{border-radius:var(--rad-lg);overflow:hidden;box-shadow:var(--shadow-md);line-height:0}
.map-frame iframe{filter:saturate(.85)}

/* ---------- Loader-kurtyna (rozsuwa się na boki) ---------- */
.b2h-loader{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;pointer-events:none}
html.b2h-loading .b2h-loader{display:flex}
.b2h-loader__panel{position:absolute;top:0;bottom:0;width:50.5%;background:linear-gradient(160deg,var(--ink),var(--deep-2));transition:transform .9s cubic-bezier(.76,0,.24,1)}
.b2h-loader__panel--a{left:0}
.b2h-loader__panel--b{right:0}
.b2h-loader__brand{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:1.2rem;transition:opacity .35s,transform .35s}
.b2h-loader__img{max-height:54px;width:auto;animation:b2hLoaderPulse 1.6s ease-in-out infinite}
@keyframes b2hLoaderPulse{0%,100%{opacity:1}50%{opacity:.55}}
.b2h-loader__bar{width:170px;height:3px;border-radius:99px;background:rgba(255,255,255,.18);overflow:hidden}
.b2h-loader__bar i{display:block;height:100%;width:40%;border-radius:99px;background:linear-gradient(90deg,var(--aqua),var(--aqua-2));animation:b2hLoaderBar 1.1s ease-in-out infinite}
@keyframes b2hLoaderBar{0%{transform:translateX(-110%)}100%{transform:translateX(420%)}}
body.is-loaded .b2h-loader__brand{opacity:0;transform:scale(.94)}
body.is-loaded .b2h-loader__panel--a{transform:translateX(-102%)}
body.is-loaded .b2h-loader__panel--b{transform:translateX(102%)}
body.b2h-loader-done .b2h-loader{display:none}
.no-js .b2h-loader{display:none}
@media (prefers-reduced-motion:reduce){.b2h-loader{display:none}}

@media (max-width:1100px){.team-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){
  .team-grid{grid-template-columns:1fr}
  .pricing__group{padding:1.4rem 1.3rem}
  .step{flex-direction:row;padding:1.2rem 1.2rem}
  .step:not(:last-child)::after{left:calc(1.2rem + 26px)}
}

/* ---------- Podstrony: odstęp pod stałym headerem ---------- */
.b2h-subpage #content > .section:first-child,
.b2h-subpage #content > section:first-of-type.section{padding-top:calc(var(--head-h) + 4rem)}
.b2h-subpage .sec-intro:first-child .sec-title{font-size:clamp(2rem,4.2vw,3.1rem)}

/* ---------- Medfile ---------- */
.medfile-card{background:#fff;border:1px solid var(--line);border-radius:var(--rad-lg);box-shadow:var(--shadow-md);padding:1.2rem;max-width:980px;margin-inline:auto;min-height:560px}
#medfile-register-widget{min-height:520px}
#medfile-register-widget iframe{border-radius:var(--rad);width:100% !important}

/* ---------- Przycisk rezerwacji na karcie osoby ---------- */
.person__book{margin-top:1rem}
.person__book i{font-size:.9em}

/* ---------- Nagłówek na podstronach: ciemny od startu, biały po scrollu ---------- */
.site-header--dark:not(.is-solid){background:rgba(7,21,27,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 4px 24px rgba(7,21,27,.25)}

/* ---------- Pierwsza sekcja intro na podstronie = ciemny hero-band ---------- */
.sec-intro--hero{background:linear-gradient(150deg,var(--ink),var(--deep) 55%,var(--deep-2));padding-top:calc(var(--head-h) + 5rem);padding-bottom:4.5rem;position:relative;overflow:hidden}
.sec-intro--hero::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(42% 60% at 88% 8%,rgba(31,199,168,.22),transparent 70%),radial-gradient(34% 50% at 6% 95%,rgba(45,212,191,.14),transparent 70%)}
.sec-intro--hero .container{position:relative;z-index:2}
.sec-intro--hero .sec-title{font-size:clamp(2rem,4.4vw,3.1rem)}

/* ---------- Cennik: zakładki specjalizacji ---------- */
.pricing-tabs{max-width:980px;margin-inline:auto}
.pricing-tabs__nav{display:flex;flex-wrap:wrap;justify-content:center;gap:.55rem;margin-bottom:2.2rem}
.pricing-tabs__btn{font-family:var(--font-d);font-weight:600;font-size:.9rem;padding:.6rem 1.25rem;border-radius:999px;border:1.5px solid var(--line);background:#fff;color:var(--deep);cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .25s,box-shadow .25s}
.pricing-tabs__btn:hover{border-color:var(--aqua);color:var(--aqua);transform:translateY(-2px)}
.pricing-tabs__btn.is-active{background:linear-gradient(135deg,var(--aqua),var(--aqua-2));border-color:transparent;color:#04201A;box-shadow:var(--shadow-aqua)}
.sec--ciemne .pricing-tabs__btn{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.18);color:#fff}
.pricing-tabs__panel{display:none;background:#fff;border:1px solid var(--line);border-radius:var(--rad-lg);padding:2rem 2.2rem;box-shadow:var(--shadow-sm)}
.pricing-tabs__panel.is-active{display:block;animation:b2hTabIn .45s var(--ease) both}
@keyframes b2hTabIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.sec--ciemne .pricing-tabs__panel{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.1);box-shadow:none}
.pricing-tabs__panel:focus-visible{outline:3px solid var(--aqua);outline-offset:3px}
@media (max-width:640px){.pricing-tabs__panel{padding:1.4rem 1.2rem}.pricing-tabs__nav{gap:.45rem}.pricing-tabs__btn{font-size:.83rem;padding:.5rem 1rem}}

/* Hero-band podstron: wymuszone białe teksty (niezależnie od tła) + pełna szerokość treści */
.sec-intro--hero .sec-title,.sec-intro--hero h1,.sec-intro--hero h2,.sec-intro--hero .sec-intro__list-title{color:#fff}
.sec-intro--hero .sec-intro__text,.sec-intro--hero .sec-intro__text p{color:rgba(255,255,255,.84)}
.sec-intro--hero .sec-intro__note{color:rgba(255,255,255,.65)}
.sec-intro--hero .check-list li{color:rgba(255,255,255,.88)}
.sec-intro--hero.sec-intro--bez-obrazu .sec-intro__grid{max-width:none;grid-template-columns:1fr}
.sec-intro--hero .sec-intro__text{max-width:72ch}

/* Loader: półkolista kreska krążąca jako okrąg wokół logo */
.b2h-loader__mark{position:relative;display:flex;align-items:center;justify-content:center;width:210px;height:210px}
.b2h-loader__img{max-width:140px;height:auto}
.b2h-loader__ring{position:absolute;inset:0;border-radius:50%;border:2.5px solid rgba(31,199,168,.16);border-top-color:var(--aqua);border-right-color:var(--aqua-2);animation:b2hRingSpin 1.15s linear infinite}
.b2h-loader__ring::after{content:"";position:absolute;inset:8px;border-radius:50%;border:1px solid rgba(255,255,255,.06)}
@keyframes b2hRingSpin{to{transform:rotate(360deg)}}

/* ============================================================
   GLOBALNY CIEMNY MOTYW
   Stałe (fixed) gradientowe tło na całej stronie + dryfujące
   kształty; sekcje przezroczyste, dawne jasne komponenty
   odwrócone na ciemne szkło z jasnymi elementami.
   ============================================================ */

html{background:#07151B}
body{background:transparent;color:rgba(255,255,255,.82)}
body::before{content:"";position:fixed;inset:0;z-index:-2;background:
  radial-gradient(58% 75% at 82% 8%,rgba(15,46,61,.95),transparent 62%),
  radial-gradient(48% 65% at 8% 92%,rgba(31,199,168,.10),transparent 65%),
  radial-gradient(40% 55% at 50% 50%,rgba(45,212,191,.05),transparent 70%),
  linear-gradient(160deg,#07151B,#0C2430 58%,#0A1F2A)}

/* Dryfujące kształty (medyczne plusy, pierścienie, kwadraty) */
.b2h-bg{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.b2h-bg__shape{position:absolute;left:var(--x,50%);top:var(--y,50%);color:var(--aqua-2);opacity:.07;animation:b2hDrift var(--d,26s) ease-in-out infinite alternate}
.b2h-bg__shape--ring{width:130px;height:130px;border:1.5px solid currentColor;border-radius:50%}
.b2h-bg__shape--square{width:92px;height:92px;border:1.5px solid currentColor;border-radius:20px}
.b2h-bg__shape--plus{width:72px;height:72px}
.b2h-bg__shape--plus::before,.b2h-bg__shape--plus::after{content:"";position:absolute;background:currentColor;border-radius:5px}
.b2h-bg__shape--plus::before{inset:42% 0}
.b2h-bg__shape--plus::after{inset:0 42%}
.b2h-bg__shape--pulse{width:160px;height:46px}
.b2h-bg__shape--pulse::before{content:"";position:absolute;inset:0;background:
  linear-gradient(90deg,transparent 0 8%,currentColor 8% 9.5%,transparent 9.5% 22%,currentColor 22% 23.5%,transparent 23.5% 36%,currentColor 36% 37.5%,transparent 37.5% 100%) center/100% 1.5px no-repeat;opacity:.9}
@keyframes b2hDrift{
  from{transform:translate3d(0,0,0) rotate(var(--r,0deg)) scale(var(--s,1))}
  to{transform:translate3d(46px,-64px,0) rotate(calc(var(--r,0deg) + 22deg)) scale(var(--s,1))}
}
@media (prefers-reduced-motion:reduce){.b2h-bg__shape{animation:none}}

/* Sekcje przezroczyste – tło nie przewija się razem z treścią */
.sec--jasne,.sec--ciemne,.sec-faq.sec--jasne,.sec-pricing.sec--jasne{background:transparent}
.page-content{background:transparent}
.site-footer{background:transparent;border-top:1px solid rgba(255,255,255,.06)}

/* Typografia dawnych jasnych sekcji → jasna */
.sec--jasne{color:rgba(255,255,255,.82)}
.sec--jasne h1,.sec--jasne h2,.sec--jasne h3,.sec--jasne h4{color:#fff}
.sec--jasne .sec-head__text,.sec--jasne .sec-intro__text,.sec--jasne .sec-intro__text p,
.sec--jasne .sec-split__text,.sec--jasne .sec-head__source{color:rgba(255,255,255,.72)}
.sec--jasne .sec-intro__note{color:rgba(255,255,255,.6)}
.sec--jasne .lead{color:rgba(255,255,255,.92)}

/* Karty/komponenty → ciemne szkło */
.feature,.faq-item,.pricing-tabs__panel,.pricing__group,.person,.post-card,.review,.step,
.pagination-wrap .page-numbers{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.1);box-shadow:none;color:rgba(255,255,255,.82)}
.feature:hover,.faq-item[open],.person:hover,.post-card:hover,.review:hover,.step:hover{box-shadow:0 18px 48px rgba(0,0,0,.35)}
.feature__title,.step__title,.person__name,.faq-item__h,.pricing__name,.post-card__title,
.post-card__title a,.review__author{color:#fff}
.feature__desc,.step__desc,.person__desc,.faq-item__a,.post-card__excerpt{color:rgba(255,255,255,.65)}
.feature__icon{color:var(--aqua-2)}
.person__role{color:var(--aqua-2)}
.review__role{color:rgba(255,255,255,.6)}
.pricing__service{color:rgba(255,255,255,.88)}
.pricing__note{color:rgba(255,255,255,.55)}
.pricing__dots{border-bottom-color:rgba(255,255,255,.22)}
.pricing__price{color:var(--aqua-2)}
.faq-item__chevron{border-color:rgba(255,255,255,.2);color:var(--aqua-2)}
.pricing-tabs__btn{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.18);color:#fff}
.pricing-tabs__btn:hover{border-color:var(--aqua-2);color:var(--aqua-2)}
.pricing-tabs__btn.is-active{background:linear-gradient(135deg,var(--aqua),var(--aqua-2));border-color:transparent;color:#04201A}
.sec--jasne .service-card{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.1);box-shadow:none}
.sec--jasne .service-card__name{color:#fff}
.sec--jasne .service-card__desc{color:rgba(255,255,255,.65)}
.sec--jasne .service-card__icon{color:var(--aqua-2)}
.sec--jasne .service-card__go{border-color:rgba(255,255,255,.18);color:var(--aqua-2)}
.sec--jasne .reviews__btn{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.2);color:#fff}
.sec--jasne .btn--ghost,.page-content .btn--ghost{color:#fff;border-color:rgba(255,255,255,.5)}
.sec--jasne .btn--ghost:hover{color:var(--aqua-2);border-color:var(--aqua-2)}
.sec--jasne .stars .star--off{color:rgba(255,255,255,.25)}
.sec--jasne .faq-item__q:hover .faq-item__h{color:var(--aqua-2)}
.pagination-wrap .page-numbers.current,.pagination-wrap .page-numbers:hover{background:var(--aqua);border-color:var(--aqua);color:#04201A}

/* Treść wpisów / stron prawnych */
.entry-content{color:rgba(255,255,255,.82)}
.entry-content h2,.entry-content h3{color:#fff}
.entry-content a{color:var(--aqua-2);text-decoration-color:rgba(45,212,191,.4)}
.entry-content blockquote{background:rgba(255,255,255,.05);border-left-color:var(--aqua-2);color:rgba(255,255,255,.85)}

/* Wyjątek: karta widgetu Medfile zostaje jasna (czytelność zewn. widgetu) */
.medfile-card{background:#fff}

/* Formularz wbudowany poza glass-card (gdyby użyty na jasnym) – spójny ciemny */
.b2h-form input[type=text],.b2h-form input[type=email],.b2h-form input[type=tel],.b2h-form textarea{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.18);color:#fff}

/* ============================================================
   POPRAWKI 2.5.0
   ============================================================ */

/* Hero podstron: bez własnego tła – płynne przejście w globalny gradient */
.sec-intro--hero{background:transparent}
.sec-intro--hero::after{content:none}

/* Nagłówek: na podstronach BEZ zmiany (zawsze ciemny, także po scrollu) */
.site-header--dark,.site-header--dark.is-solid{background:rgba(7,21,27,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 4px 24px rgba(7,21,27,.25)}
/* Strona główna: transparent → CIEMNY po scrollu (nie biały) */
.site-header.is-solid{background:rgba(7,21,27,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 4px 24px rgba(7,21,27,.25)}
.is-solid .nav__list a{color:rgba(255,255,255,.92)}
.is-solid .nav__list a:hover{color:var(--aqua-2)}
.is-solid .nav-toggle span{background:#fff}
.is-solid .site-logo__text{color:#fff}
.is-solid .nav__actions .btn--ghost{color:#fff;border-color:rgba(255,255,255,.5)}
/* Logo: zawsze jasna wersja, bez podmiany po scrollu */
.site-logo__img--dark{display:none !important}
.site-logo__img--light,.is-solid .site-logo__img--light{display:block}

/* Mapa Google: ciemno-zielona kolorystyka spójna z motywem */
.map-frame{min-height:320px;background:rgba(255,255,255,.04)}
.map-frame iframe{filter:invert(90%) hue-rotate(180deg) saturate(.45) brightness(.92);display:block;min-height:320px}

/* Tabele w treściach (polityka prywatności, regulamin) – ciemny styl */
.entry-content table{width:100%;border-collapse:collapse;margin:1.4rem 0;font-size:.92rem}
.entry-content th,.entry-content td{padding:.65rem .8rem;border:1px solid rgba(255,255,255,.12);text-align:left;vertical-align:top}
.entry-content th{background:rgba(255,255,255,.06);color:#fff;font-weight:700}
.entry-content tbody tr:nth-child(even){background:rgba(255,255,255,.025)}
@media (max-width:700px){.entry-content table{display:block;overflow-x:auto}}

/* ---------- 2.6.1: stopka i dane firmowe ---------- */
.site-footer__h--follow{margin-top:1.8rem}
.site-footer__addr-line{display:inline}
.sec-contact__ids{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;color:rgba(255,255,255,.72);font-size:.95rem;margin:0}
.sec-contact__ids strong{color:#fff}
.b2h-form__notice[hidden]{display:none}

/* ---------- 2.7.0: breadcrumbs w hero ---------- */
.crumbs{margin-bottom:1.1rem}
.crumbs__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:.15rem .35rem;font-size:.84rem;letter-spacing:.02em}
.crumbs__item{display:inline-flex;align-items:center;gap:.35rem}
.crumbs__link{color:rgba(255,255,255,.55);text-decoration:none;transition:color .2s ease}
.crumbs__link:hover{color:var(--aqua-2)}
.crumbs__sep{color:rgba(255,255,255,.3)}
.crumbs__current{color:rgba(255,255,255,.85);font-weight:600}

/* ---------- 2.8.0: zespół – filtry + wyrównane karty ---------- */
.team-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin:0 0 2.2rem}
.team-filters__btn{appearance:none;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.05);color:rgba(255,255,255,.78);padding:.5rem 1.05rem;border-radius:999px;font:inherit;font-size:.9rem;font-weight:600;letter-spacing:.01em;cursor:pointer;transition:all .22s ease}
.team-filters__btn:hover{border-color:var(--aqua-2);color:#fff}
.team-filters__btn.is-active{background:var(--aqua);border-color:var(--aqua);color:var(--deep)}

/* Karty równej wysokości – przyciski zawsze na jednej linii w wierszu */
.team-grid{align-items:stretch}
.person{display:flex;flex-direction:column;height:100%}
.person__body{display:flex;flex-direction:column;flex:1 1 auto}
.person__desc{flex:0 0 auto}
.person__book{margin-top:auto;align-self:flex-start}
.person__body .person__book{margin-top:auto}
.person.is-hidden{display:none}

/* ---------- 2.8.1: pojedynczy wpis bloga ---------- */
.page-hero,.post-hero{position:relative;background:transparent;color:#fff;padding:9.5rem 0 3rem;overflow:visible}
.page-hero::after{content:none}
.post-hero__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;font-size:.88rem;color:rgba(255,255,255,.6);margin-bottom:1rem}
.post-hero__meta a{color:var(--aqua-2);text-decoration:none}
.post-hero__meta a:hover{text-decoration:underline}
.post-hero__dot{opacity:.5}
.post-hero__cats a+a::before{content:", "}
.post-hero__title{font-size:clamp(1.9rem,4.2vw,3rem);line-height:1.15;color:#fff;max-width:22ch}
.post-thumb{margin:0 0 2.6rem;border-radius:var(--rad-lg);overflow:hidden;border:1px solid rgba(255,255,255,.1);box-shadow:0 24px 60px rgba(0,0,0,.35)}
.post-thumb__img{display:block;width:100%;height:auto;aspect-ratio:21/10;object-fit:cover}
.post-body{padding-bottom:1.5rem}
.post-body>p:first-child{font-size:1.12rem;color:rgba(255,255,255,.85)}
.post-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 2.4rem}
.post-tags__tag{font-size:.84rem;font-weight:600;color:rgba(255,255,255,.7);text-decoration:none;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.05);padding:.35rem .85rem;border-radius:999px;transition:all .2s ease}
.post-tags__tag:hover{border-color:var(--aqua-2);color:#fff}
.post-cta{display:flex;align-items:center;justify-content:space-between;gap:1.6rem;flex-wrap:wrap;padding:1.8rem 2rem;margin:0 0 2.6rem}
.post-cta__title{font-size:1.25rem;margin:0 0 .35rem;color:#fff}
.post-cta__text{margin:0;color:rgba(255,255,255,.72)}
.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:0 0 4rem}
.post-nav__link{display:block;padding:1.2rem 1.4rem;border:1px solid rgba(255,255,255,.1);border-radius:var(--rad-lg);background:rgba(255,255,255,.04);text-decoration:none;transition:border-color .2s ease,background .2s ease}
.post-nav__link:hover{border-color:var(--aqua-2);background:rgba(255,255,255,.07)}
.post-nav__link--next{text-align:right}
.post-nav__label{display:block;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--aqua-2);margin-bottom:.35rem;font-weight:600}
.post-nav__title{color:#fff;font-weight:600;font-size:.98rem;line-height:1.35}
@media (max-width:700px){.post-nav{grid-template-columns:1fr}.post-nav__link--next{text-align:left}.post-cta{flex-direction:column;align-items:flex-start}}

/* ---------- 2.9.0: galeria zdjęć + lightbox ---------- */
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.gallery-grid__item{position:relative;display:block;border-radius:var(--rad-lg);overflow:hidden;border:1px solid rgba(255,255,255,.1);aspect-ratio:4/3;background:rgba(255,255,255,.04)}
.gallery-grid__img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ease)}
.gallery-grid__item:hover .gallery-grid__img{transform:scale(1.07)}
.gallery-grid__zoom{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(7,21,27,.45);color:#fff;font-size:1.4rem;opacity:0;transition:opacity .25s ease}
.gallery-grid__item:hover .gallery-grid__zoom{opacity:1}
@media (max-width:900px){.gallery-grid{grid-template-columns:repeat(2,1fr)}}
.b2h-lightbox{position:fixed;inset:0;z-index:1200;background:rgba(4,12,16,.92);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:2.5rem;opacity:0;pointer-events:none;transition:opacity .25s ease}
.b2h-lightbox.is-open{opacity:1;pointer-events:auto}
.b2h-lightbox__img{max-width:min(1100px,100%);max-height:100%;border-radius:var(--rad-lg);box-shadow:0 30px 80px rgba(0,0,0,.5)}
.b2h-lightbox__close{position:absolute;top:1.2rem;right:1.4rem;appearance:none;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);color:#fff;width:44px;height:44px;border-radius:50%;font-size:1.1rem;cursor:pointer;transition:background .2s ease}
.b2h-lightbox__close:hover{background:rgba(255,255,255,.18)}

/* ---------- 2.9.1: defensywa dla treści importowanych (Elementor) ---------- */
.post-body [style*="background"]{background:transparent !important}
.post-body [style*="color"]{color:inherit !important}
.post-body :is(section,div){background:transparent}
.post-body img,.post-body figure,.post-body iframe{max-width:100%;height:auto}
.post-body figure{margin:1.6em 0}
.post-body :is(div,section)[class*="elementor"],.post-body [class^="e-con"]{background:transparent !important;padding:0;margin:0 0 1em}

/* ---------- 3.1.0: opinie – przycisk do źródła + siatka masonry ---------- */
.review__more{display:flex;align-items:center;justify-content:center;gap:.55rem;margin-top:auto;padding:.78rem 1.1rem;border-radius:14px;border:1px solid rgba(45,212,191,.35);background:rgba(45,212,191,.08);color:var(--aqua-2);font-weight:700;font-size:.93rem;text-decoration:none;transition:background .22s ease,border-color .22s ease,color .22s ease,transform .22s ease}
.review__more:hover{background:var(--aqua);border-color:var(--aqua);color:var(--deep);transform:translateY(-2px)}
.review .review__footer{margin-bottom:1.1rem}
.review .review__text{flex:0 1 auto}
.reviews__track .review{display:flex;flex-direction:column}

/* Siatka masonry – kafelki dopasowane do długości treści */
.reviews-masonry{columns:3;column-gap:1.4rem}
.reviews-masonry .review{display:flex;flex-direction:column;break-inside:avoid;-webkit-column-break-inside:avoid;width:100%;margin:0 0 1.4rem}
.reviews-masonry .review__more{margin-top:.4rem}
@media (max-width:1000px){.reviews-masonry{columns:2}}
@media (max-width:640px){.reviews-masonry{columns:1}}

/* ---------- 3.1.1: karuzela opinii – kompaktowe karty ---------- */
.reviews__track .review{max-height:400px}
.reviews__track .review__text{display:-webkit-box;-webkit-line-clamp:8;-webkit-box-orient:vertical;overflow:hidden}
/* Autor zawsze przyklejony nad przyciskiem na dole karty */
.review__footer{margin-top:auto;margin-bottom:1rem}
.review__more{margin-top:0}
.reviews-masonry .review__footer{margin-top:.4rem}

/* ---------- 3.2.0: podmenu Usługi w nagłówku ---------- */
.menu-item-has-children{position:relative}
.nav__sub-toggle{appearance:none;border:0;background:transparent;color:inherit;font:inherit;font-size:.7em;cursor:pointer;padding:.2em .35em;opacity:.7}
.sub-menu{list-style:none;margin:0;padding:.6rem;position:absolute;top:100%;left:-0.8rem;min-width:230px;background:rgba(10,28,36,.97);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.1);border-radius:16px;box-shadow:0 18px 50px rgba(0,0,0,.4);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .22s ease,transform .22s ease,visibility .22s}
.menu-item-has-children:hover>.sub-menu,.menu-item-has-children:focus-within>.sub-menu,.menu-item-has-children.is-open>.sub-menu{opacity:1;visibility:visible;transform:translateY(0)}
.sub-menu .menu-item{display:block}
.sub-menu a{display:block;padding:.55rem .8rem;border-radius:10px;color:rgba(255,255,255,.85) !important;font-size:.94rem;text-decoration:none;transition:background .18s ease,color .18s ease}
.sub-menu a:hover{background:rgba(45,212,191,.12);color:#fff !important}
@media (max-width:1023px){
  .sub-menu{position:static;opacity:1;visibility:visible;transform:none;background:transparent;border:0;box-shadow:none;padding:.2rem 0 .4rem 1rem;display:none}
  .menu-item-has-children.is-open>.sub-menu{display:block}
  .nav__sub-toggle{font-size:.9em;padding:.3em .6em}
}

/* Oferty pracy – karty + nagłówkowy link opinii jako przycisk */
.jobs-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.4rem;max-width:900px;margin:0 auto}
@media (max-width:760px){.jobs-grid{grid-template-columns:1fr}}
.job-card{display:flex;flex-direction:column;padding:1.8rem}
.job-card__title{font-size:1.2rem;color:#fff;margin:0 0 .6rem}
.job-card__excerpt{color:rgba(255,255,255,.72);margin:0 0 1.4rem;flex:1}
.job-card__btn{align-self:flex-start}
.jobs-empty{text-align:center;color:rgba(255,255,255,.7)}
.sec-head__source{display:inline-flex;align-items:center;gap:.55rem;padding:.7rem 1.3rem;border-radius:999px;border:1px solid rgba(45,212,191,.4);background:rgba(45,212,191,.08);color:var(--aqua-2);font-weight:700;text-decoration:none;transition:background .22s,color .22s,border-color .22s}
.sec-head__source:hover{background:var(--aqua);border-color:var(--aqua);color:var(--deep)}

/* ---------- 3.3.0: menu z chevronem inline + treści na 100% ---------- */
/* Pozycja z podmenu: link i chevron w jednej linii (koniec rozjeżdżania) */
.nav__list .menu-item-has-children{display:inline-flex;align-items:center;gap:.1rem}
.nav__sub-toggle{display:inline-flex;align-items:center;justify-content:center;line-height:1;opacity:.85}
.nav__sub-toggle svg{transition:transform .25s ease;display:block}
.menu-item-has-children.is-open>.nav__sub-toggle svg,
.menu-item-has-children:hover>.nav__sub-toggle svg{transform:rotate(180deg)}

/* Pełna szerokość treści wszędzie, gdzie była zawężona kolumna */
.container--narrow{width:min(1200px,92%);max-width:100%}
.post-hero__title{max-width:none}
.sec-seo__inner--waski,.sec-seo .container--narrow{width:min(1200px,92%);max-width:100%}
.post-body,.entry-content{max-width:100%}

/* ---------- 3.3.1: baza wiedzy – siatka odnośników jak na bazowej ---------- */
.kb-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem 2rem;padding:1rem 0}
@media (max-width:900px){.kb-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.kb-grid{grid-template-columns:1fr}}
.kb-grid .kb-link{display:flex;align-items:center;justify-content:flex-start;padding:.85rem 1.2rem;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.05);color:rgba(255,255,255,.9) !important;font-weight:700;font-size:.92rem;letter-spacing:.04em;text-transform:uppercase;text-decoration:none !important;transition:background .22s,border-color .22s,color .22s,transform .22s}
.kb-grid .kb-link:hover{background:rgba(45,212,191,.12);border-color:var(--aqua-2);color:#fff !important;transform:translateY(-2px)}

/* ---------- 3.4.0: karty ofert pracy jak na bazowej ---------- */
.jobs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;max-width:none;align-items:stretch}
@media (max-width:1100px){.jobs-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:720px){.jobs-grid{grid-template-columns:1fr}}
.job-card{padding:2rem 1.8rem}
.job-card__head{margin-bottom:1.2rem}
.job-card__title{font-size:1.35rem;margin:0 0 .25rem}
.job-card__sub{margin:0;color:rgba(255,255,255,.6);font-size:.92rem}
.job-card__body{flex:1;font-size:.97rem}
.job-card__btn{margin-top:1.6rem;align-self:stretch;justify-content:center}
.job-meta{list-style:none;padding:0;margin:0 0 1.2rem}
.job-meta li{display:flex;gap:.6rem;align-items:flex-start;margin-bottom:.45rem;color:rgba(255,255,255,.85)}
.job-meta li::before{content:"";flex:0 0 8px;width:8px;height:8px;margin-top:.5em;border-radius:50%;background:var(--aqua)}
.job-pay{border-left:3px solid var(--aqua);background:rgba(45,212,191,.08);border-radius:0 12px 12px 0;padding:.9rem 1.1rem;margin:0 0 1.2rem}
.job-pay strong{display:block;color:var(--aqua-2);font-size:1.05rem}
.job-pay span{color:rgba(255,255,255,.7);font-size:.9rem}
.job-box{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);border-radius:12px;padding:1rem 1.2rem;margin:0 0 1.4rem}
.job-box strong{display:block;color:#fff;margin-bottom:.5rem}
.job-box ul{margin:0;padding-left:1.1em}
.job-box li{margin-bottom:.3em;color:rgba(255,255,255,.8)}
.job-req-h{font-size:1.1rem;color:#fff;margin:0 0 .7rem}
ul.job-req{list-style:none;padding:0;margin:0}
ul.job-req li{position:relative;padding-left:1.6em;margin-bottom:.5em;color:rgba(255,255,255,.85)}
ul.job-req li::before{content:"✓";position:absolute;left:0;color:var(--aqua-2);font-weight:800}

/* Importowane treści usług – typografia zamiast lanego tekstu */
.sec-seo .entry-content h2{position:relative;padding-bottom:.65rem;margin:2.6em 0 1em;font-size:1.7rem}
.sec-seo .entry-content h2::after{content:"";position:absolute;left:0;bottom:0;width:64px;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--aqua),var(--aqua-2))}
.sec-seo .entry-content>h2:first-child{margin-top:0}
.sec-seo .entry-content h3{margin:1.9em 0 .7em;font-size:1.25rem;padding-left:.9rem;border-left:3px solid var(--aqua)}
.sec-seo .entry-content h4{margin:1.6em 0 .6em;color:var(--aqua-2)}
.sec-seo .entry-content>p:first-of-type{font-size:1.12rem;color:rgba(255,255,255,.9)}
.sec-seo .entry-content p{line-height:1.75;margin:0 0 1.15em}
.sec-seo .entry-content ul,.sec-seo .entry-content ol{margin:0 0 1.4em;padding-left:1.35em}
.sec-seo .entry-content li{margin-bottom:.5em}
.sec-seo .entry-content li::marker{color:var(--aqua-2);font-weight:700}
.sec-seo .entry-content img{border-radius:var(--rad-lg);border:1px solid rgba(255,255,255,.1);box-shadow:0 18px 50px rgba(0,0,0,.3);margin:2em auto;display:block;max-width:min(760px,100%)}
.sec-seo .entry-content strong{color:#fff}

/* ---------- 3.5.0: białe nagłówki, kafelki bez wersalików, FAQ w treści ---------- */
.entry-content :is(h1,h2,h3,h4,h5,h6),.sec-seo :is(h1,h2,h3,h4,h5,h6),.post-body :is(h1,h2,h3,h4,h5,h6){color:#fff}
.kb-grid .kb-link{text-transform:none;letter-spacing:.01em;font-size:.98rem}
.entry-content h4.faq-q,.sec-seo .entry-content h4.faq-q{margin:1.4em 0 .6em;padding:.95rem 1.2rem .95rem 3rem;position:relative;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:14px;border-left:3px solid var(--aqua);font-size:1.05rem;color:#fff}
.entry-content h4.faq-q::before{content:"?";position:absolute;left:1.05rem;top:50%;transform:translateY(-50%);width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(45,212,191,.18);color:var(--aqua-2);font-weight:800;font-size:.95rem}
.entry-content h4.faq-q+p{padding-left:1.2rem;border-left:1px solid rgba(255,255,255,.12);margin-left:.4rem}

/* ---------- 3.5.1: nagłówki zawsze białe na ciemnym + FAQ szlif ---------- */
.section :is(h1,h2,h3,h4,h5,h6),.job-card :is(h2,h3,h4,h5),.post-hero :is(h1,h2){color:#fff}
.entry-content h4.faq-q a{color:inherit;text-decoration:none;pointer-events:none}
.entry-content h4.faq-q+ul,.entry-content h4.faq-q+p+ul{padding-left:2.2rem}

/* ============================================================
   3.6.0: MOBILE — nagłówek, hamburger, menu-szuflada
   + karty opinii w treści + kafle bez łamania słów
   ============================================================ */

/* Karty opinii osadzonych w treściach */
.inline-op{margin:1.6em 0;padding:1.3rem 1.4rem;border:1px solid rgba(255,255,255,.12);border-radius:var(--rad-lg);background:rgba(255,255,255,.045)}
.inline-op__head{display:flex;align-items:center;gap:.8rem;margin-bottom:.8rem}
.inline-op__avatar{flex:0 0 40px;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--aqua),var(--aqua-2));color:var(--deep);font-weight:800}
.inline-op__who{display:flex;flex-direction:column;line-height:1.25;min-width:0;align-items:flex-start;}
.inline-op__who strong{color:#fff}
.inline-op__spec{color:rgba(255,255,255,.55);font-size:.85rem}
.inline-op__stars{margin-left:auto;color:#FFC53D;letter-spacing:2px;font-size:.95rem;white-space:nowrap}
.inline-op__text{margin:0;padding:0;border:0;background:transparent;font-style:normal;color:rgba(255,255,255,.85)}
.entry-content a.tresc-btn{text-decoration:none;margin:.2em .4em .2em 0}

/* Kafle usług: koniec łamania w środku wyrazu */
.service-card__name{overflow-wrap:normal;word-break:normal;hyphens:none;min-width:0;font-size:clamp(.95rem,1.4vw,1.05rem)}

/* ---------- Nagłówek mobilny + szuflada ---------- */
@media (max-width:960px){
  .site-header__inner{gap:.8rem;width:min(1320px,92%)}
  .site-logo__img{max-height:34px;width:auto}

  /* Hamburger: schodkowe linie z aqua akcentem, morfują w X */
  .nav-toggle{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;width:46px;height:46px;border-radius:14px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:0 10px}
  .nav-toggle span{width:24px;height:2px;margin:3px 0;background:#fff;transition:transform .35s var(--ease),opacity .25s,width .35s var(--ease),background .25s}
  .nav-toggle span:nth-child(2){width:14px;background:var(--aqua)}
  body.nav-open .nav-toggle span:nth-child(1){transform:translateY(8px) rotate(45deg);width:24px}
  body.nav-open .nav-toggle span:nth-child(2){opacity:0;transform:translateX(8px)}
  body.nav-open .nav-toggle span:nth-child(3){transform:translateY(-8px) rotate(-45deg);width:24px}

  /* Szuflada menu z prawej */
  .nav{position:fixed;top:0;right:0;bottom:0;left:auto;width:min(380px,88vw);background:linear-gradient(170deg,rgba(10,28,36,.99),rgba(7,21,27,.99));border-left:1px solid rgba(255,255,255,.08);box-shadow:-30px 0 80px rgba(0,0,0,.45);transform:translateX(105%);transition:transform .45s var(--ease);display:flex;flex-direction:column;padding:92px 1.5rem 1.6rem;overflow-y:auto;z-index:115}
  .nav.is-open{transform:translateX(0)}

  /* Nadpisanie starego pełnoekranowego wariantu listy */
  .nav__list{position:static;inset:auto;transform:none;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:.15rem;background:transparent}
  .nav__list>.menu-item{width:100%}
  .nav__list a{display:block;padding:.8rem .4rem;font-size:1.18rem;font-weight:600;color:#fff !important;border-bottom:1px solid rgba(255,255,255,.07)}
  .nav__list .menu-item-has-children{display:flex;flex-wrap:wrap;align-items:center}
  .nav__list .menu-item-has-children>a{flex:1;border-bottom:1px solid rgba(255,255,255,.07)}
  .nav__sub-toggle{width:44px;height:44px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.05);margin-left:.4rem}
  .sub-menu{flex-basis:100%;padding:.2rem 0 .5rem .9rem}
  .sub-menu a{font-size:1rem;padding:.55rem .6rem;border-bottom:0}

  /* Przyciski na dole szuflady */
  .nav__actions{margin-top:auto;padding-top:1.4rem;display:flex;flex-direction:column;gap:.7rem}
  .nav__actions .btn{width:100%;justify-content:center}
  .nav__actions .btn--ghost{display:inline-flex}

  /* Przyciemnienie strony za szufladą */
  body.nav-open::after{content:"";position:fixed;inset:0;background:rgba(4,12,16,.6);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:110}
  body.nav-open{overflow:hidden}
}
@media (max-width:960px){
  .post-hero,.page-hero{padding:7.5rem 0 2.2rem}
  .jobs-grid{grid-template-columns:1fr}
  .reviews-masonry{columns:1}
}

/* ---------- 3.6.1: kafle 3/rząd, strzałka poza tekstem, logo mobile ---------- */
.services-grid{grid-template-columns:repeat(3,1fr)}
@media (max-width:1100px){.services-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.services-grid{grid-template-columns:1fr}}
.service-card__head{display:flex;align-items:center;gap:.95rem}
.service-card__icon{flex:0 0 auto}
.service-card__name{flex:1 1 auto;min-width:0}
.service-card__go{position:static;flex:0 0 38px;width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.18);border-radius:50%;margin-left:auto}

/* Logo mobilne w nagłówku */
.site-logo__img--mobile{display:none}
@media (max-width:960px){
  .site-logo__img--light,.site-logo__img--dark{display:none !important}
  .site-logo__img--mobile{display:block;height:36px;width:auto}
}

/* ---------- 3.6.2: zdjęcia zespołu – jednolity kadr + białe tło ---------- */
.person__photo{position:relative;display:block;width:100%;aspect-ratio:4/5;background:#fff;overflow:hidden;border-radius:var(--rad-lg) var(--rad-lg) 0 0}
.person__photo img,.person__photo .person__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;display:block;margin:0}
.person__photo .person__initial{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:3rem;font-weight:800;color:var(--deep);background:linear-gradient(135deg,var(--aqua),var(--aqua-2))}

/* ---------- 3.6.3: przyciski w treści czytelne + nagłówek opinii solo ---------- */
.entry-content a.tresc-btn,.entry-content a.tresc-btn:hover{color:var(--deep) !important;text-decoration:none !important}
.inline-op__head--solo{display:flex;align-items:center;gap:.8rem;margin:1.6em 0 .7em;padding:.75rem 1rem;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(255,255,255,.05);max-width:560px}
.inline-op__head--solo .inline-op__avatar{flex:0 0 34px;width:34px;height:34px;font-size:.95rem}

/* ---------- 3.6.4: mobile – koniec bocznego scrolla, scrim pod menu ---------- */
html,body{overflow-x:clip}
@media (max-width:960px){
  .nav{visibility:hidden;transition:transform .45s var(--ease),visibility 0s .45s}
  .nav.is-open{visibility:visible;transition:transform .45s var(--ease),visibility 0s}
  /* Scrim POD nagłówkiem (header tworzy własny kontekst z-index:100) */
  body.nav-open::after{z-index:98}
}

/* ---------- 3.6.5: menu mobilne – pełna szerokość, wcięte podmenu ---------- */
@media (max-width:960px){
  .nav{padding:88px 1.4rem 1.5rem}
  .nav__list{display:flex;flex-direction:column;width:100%;gap:0}
  .nav__list>.menu-item{display:block;width:100%;border-bottom:1px solid rgba(255,255,255,.08)}
  .nav__list>.menu-item>a{display:block;width:100%;padding:1.05rem .35rem;font-size:1.15rem;font-weight:600;border-bottom:0}
  .nav__list .menu-item-has-children{display:flex;flex-wrap:wrap;align-items:center;position:static;gap:0}
  .nav__list .menu-item-has-children>a{flex:1 1 0;width:auto;min-width:0}
  .nav__sub-toggle{flex:0 0 42px;width:42px;height:42px;margin-left:.5rem;border-radius:12px}
  .nav .sub-menu{position:static !important;left:auto;top:auto;display:none;flex-basis:100%;width:100%;min-width:0;margin:0;padding:.15rem 0 .9rem 1.1rem;background:transparent;border:0;box-shadow:none;transform:none !important;opacity:1 !important;visibility:visible !important}
  .nav .menu-item-has-children.is-open>.sub-menu{display:block}
  .nav .sub-menu .menu-item{display:block;width:100%;border-bottom:0}
  .nav .sub-menu a{display:block;width:100%;padding:.6rem .5rem;font-size:1rem;font-weight:500;color:rgba(255,255,255,.82) !important;border-bottom:0;border-left:2px solid rgba(45,212,191,.35);border-radius:0 10px 10px 0}
  .nav .sub-menu a:hover{background:rgba(45,212,191,.1);color:#fff !important}
  /* Hover-dropdown z desktopu nie może otwierać podmenu na dotyk */
  .nav .menu-item-has-children:hover>.sub-menu,.nav .menu-item-has-children:focus-within>.sub-menu{display:none}
  .nav .menu-item-has-children.is-open:hover>.sub-menu,.nav .menu-item-has-children.is-open:focus-within>.sub-menu,.nav .menu-item-has-children.is-open>.sub-menu{display:block}
}

/* ---------- 3.7.0: back-to-top, baner cookies, CTA mobile, drawer fix ---------- */
/* CTA obok hamburgera (tylko mobile) */
.header-cta-mobile{display:none}
@media (max-width:960px){
  .header-cta-mobile{display:inline-flex;margin-left:auto;white-space:nowrap;padding:.55rem .95rem}
  .nav-toggle{margin-left:.15rem}
  .site-header__inner{gap:.6rem}
}

/* Szuflada: backdrop-filter nagłówka tworzył containing block dla fixed –
   przy otwartym menu wyłączamy go, nagłówek dostaje pełne krycie */
body.nav-open .site-header,body.nav-open .site-header.is-solid,body.nav-open .site-header--dark{-webkit-backdrop-filter:none !important;backdrop-filter:none !important;background:rgba(7,21,27,.98) !important}
@media (max-width:960px){.nav{height:100dvh}}
html.nav-open,body.nav-open{overflow:hidden;overscroll-behavior:none;touch-action:none}
html.nav-open body{position:relative}

/* Back to top */
.back-to-top{position:fixed;right:1.1rem;bottom:1.1rem;z-index:95;width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:rgba(10,28,36,.85);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--aqua-2);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.35);transition:transform .25s var(--ease),background .25s,color .25s}
.back-to-top:hover{transform:translateY(-3px);background:var(--aqua);color:var(--deep)}
.back-to-top[hidden]{display:none}

/* Baner cookies */
.cookie-banner{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:130;display:flex;justify-content:center}
.cookie-banner[hidden]{display:none}
.cookie-banner__inner{width:min(680px,100%);background:linear-gradient(165deg,rgba(12,32,41,.98),rgba(7,21,27,.98));border:1px solid rgba(255,255,255,.12);border-radius:var(--rad-lg);box-shadow:0 24px 70px rgba(0,0,0,.5);padding:1.4rem 1.5rem}
.cookie-banner__title{font-size:1.1rem;color:#fff;margin:0 0 .45rem}
.cookie-banner__text{color:rgba(255,255,255,.75);font-size:.92rem;line-height:1.55;margin:0 0 1rem}
.cookie-banner__text a{color:var(--aqua-2)}
.cookie-banner__opts{display:flex;flex-direction:column;gap:.5rem;margin:0 0 1rem;padding:.9rem 1rem;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:rgba(255,255,255,.04)}
.cookie-banner__opts[hidden]{display:none}
.cookie-opt{display:flex;gap:.6rem;align-items:flex-start;color:rgba(255,255,255,.82);font-size:.9rem;cursor:pointer}
.cookie-opt input{margin-top:.2em;accent-color:var(--aqua)}
.cookie-banner__btns{display:flex;flex-wrap:wrap;gap:.6rem}
.cookie-banner__btns .btn[hidden]{display:none}

/* Pływający przycisk zmiany zgód */
.cookie-reopen{position:fixed;left:1.1rem;bottom:1.1rem;z-index:95;width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.16);background:rgba(10,28,36,.85);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:1.15rem;cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.35);transition:transform .25s var(--ease)}
.cookie-reopen:hover{transform:translateY(-3px)}
.cookie-reopen[hidden]{display:none}
@media (max-width:640px){.cookie-banner__btns .btn{flex:1 1 auto;justify-content:center}}

/* ---------- 3.7.1: hero z wideo na mobile – pełna klatka na szerokość ---------- */
@media (max-width:760px){
  .hero{min-height:auto;display:block;background:linear-gradient(170deg,var(--deep),var(--deep-2))}
  /* Wideo przestaje być przyciętym tłem: blok 16:9 pod nagłówkiem,
     skalowany do szerokości ekranu – cała klatka widoczna */
  .hero__media{position:relative;inset:auto;width:100%;aspect-ratio:16/9;margin-top:var(--head-h)}
  .hero__poster,.hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .hero__overlay{background:linear-gradient(to bottom,rgba(7,21,27,.12),rgba(7,21,27,.0) 35%,rgba(7,21,27,.55) 92%,var(--deep))}
  .hero__aurora{display:none}
  .hero__inner{padding:1.8rem 0 3.2rem}
  .hero__title{font-size:clamp(1.9rem,8vw,2.6rem)}
}

/* ---------- 3.7.2: hero wideo NA MOBILE jako tło – pełna szerokość klatki ---------- */
@media (max-width:760px){
  /* Wideo zostaje tłem: hero wraca do pełnej wysokości z treścią na wierzchu */
  .hero{min-height:92svh;display:flex;align-items:flex-end}
  .hero__media{position:absolute;inset:0;width:auto;aspect-ratio:auto;margin-top:0;background:linear-gradient(170deg,var(--deep),var(--deep-2))}
  /* Klatka skalowana do SZEROKOŚCI ekranu (nieucięta), zakotwiczona u góry;
     resztę wysokości wypełnia gradient tła, na który nachodzi overlay */
  .hero__poster,.hero__video{position:absolute;top:0;left:0;width:100%;height:auto;max-height:none;object-fit:fill;aspect-ratio:16/9}
  .hero__overlay{background:linear-gradient(to bottom,rgba(7,21,27,.25),rgba(7,21,27,.05) 22%,rgba(7,21,27,.45) 48%,rgba(7,21,27,.92) 72%,var(--deep))}
  .hero__inner{padding:calc(56.25vw + 1rem) 0 3rem}
}

/* ---------- 3.7.3: hero mobile – powrót do klasycznego tła cover ---------- */
@media (max-width:760px){
  /* Neutralizacja eksperymentów 3.7.1/3.7.2: wideo wypełnia całe hero
     jako tło (cover), treść wycentrowana na wierzchu jak na desktopie.
     Niższe hero = wyraźnie mniejsze przycięcie kadru na boki. */
  .hero{min-height:78svh;display:flex;align-items:center}
  .hero__media{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;margin:0;background:none}
  .hero__poster,.hero__video{position:absolute;inset:0;top:0;left:0;width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:cover;object-position:center}
  .hero__overlay{background:linear-gradient(115deg,rgba(7,21,27,calc(var(--overlay) + .3)),rgba(7,21,27,calc(var(--overlay) + .1)) 55%,rgba(7,21,27,var(--overlay)))}
  .hero__inner{padding:7.5rem 0 4.5rem}
  .hero__aurora{display:block}
}

/* ---------- 3.7.4: hero mobile "ambient" – cała klatka + rozmyte wypełnienie ---------- */
@media (max-width:760px){
  /* Poster = rozmyta warstwa wypełniająca całe tło (bez pustych pasów) */
  .hero__poster{object-fit:cover;filter:blur(26px) saturate(1.15) brightness(.55);transform:scale(1.18);opacity:1 !important}
  /* Wideo = pełna klatka skalowana do szerokości ekranu, wycentrowane */
  .hero__video{object-fit:contain;object-position:center}
  .hero{min-height:86svh}
}

/* 3.7.5: klatka wideo na mobile odrobinę większa */
@media (max-width:760px){
  .hero__video{transform:scale(1.5);transform-origin:center}
}

/* 3.7.6: na mobile kwadratowe wideo promo (osobny plik) */
@media (max-width:760px){
  .hero__video--square{object-fit:contain;object-position:center 42%;aspect-ratio:auto}
}

/* ---------- 3.7.7: treść nigdy nie znika – failsafe dla reveal ---------- */
/* Mobile: animacje wejścia wyłączone całkowicie – treść zawsze widoczna,
   niezależnie od JS (to one "ukrywały" opinie i widget rezerwacji) */
@media (max-width:960px){
  [data-reveal]{opacity:1 !important;transform:none !important;transition:none !important}
}
/* Desktop: gdyby JS nie wstał, treść i tak pokaże się po chwili */
@media (min-width:961px){
  [data-reveal]{animation:b2hRevealFailsafe 0s 1.8s forwards}
  [data-reveal].is-inview{animation:none}
  @keyframes b2hRevealFailsafe{to{opacity:1;transform:none}}
}
.medfile-fallback{text-align:center;margin:.9rem 0 0;font-size:.88rem;color:var(--muted, #5b6b70)}
.medfile-fallback a{color:var(--aqua);font-weight:600}

/* === B2H CLS-FIX hero slider (grid stacking) === */
.hero__slider{display:grid}
.hero__slide{grid-area:1/1;display:block;opacity:0;visibility:hidden;transition:opacity .5s ease;pointer-events:none}
.hero__slide.is-active{opacity:1;visibility:visible;pointer-events:auto}
.hero__slider:not(:has(.is-active)) .hero__slide:first-child{opacity:1;visibility:visible;pointer-events:auto}

/* === B2H CLS-FIX2: stabilizacja wysokosci hero__inner (font-swap) === */
.hero__inner{display:flex;flex-direction:column;justify-content:center;min-height:730px}
@media (max-width:1024px){.hero__inner{min-height:680px}}
@media (max-width:768px){.hero__inner{min-height:660px}}
@media (max-width:480px){.hero__inner{min-height:660px}}

/* === B2H-ANCHOR v2: stabilize hero vertical position (CLS) === */
.hero.hero--pelna{align-items:stretch}
.hero.hero--pelna .hero__inner{min-height:100%}
@media (max-width:768px){.hero.hero--pelna .hero__inner{justify-content:flex-start;padding-top:120px;padding-bottom:64px}}
@media (max-width:480px){.hero.hero--pelna .hero__inner{padding-top:104px}}

/* === B2H-FONT-FALLBACK: metryki fallbacku = Sora/Figtree (anti-CLS font-swap) === */
@font-face{
  font-family:"Sora-fallback";
  src:local("Arial");
  ascent-override:96%;
  descent-override:30%;
  line-gap-override:0%;
  size-adjust:108%;
}
@font-face{
  font-family:"Figtree-fallback";
  src:local("Arial");
  ascent-override:95%;
  descent-override:24%;
  line-gap-override:0%;
  size-adjust:102%;
}
:root{
  --font-d:'Sora','Sora-fallback',system-ui,sans-serif;
  --font-b:'Figtree','Figtree-fallback',system-ui,sans-serif;
}

/* === B2H-CRIT-HEADER-LOCK: rezerwacja headera mobilnego (anti-CLS) === */
@media (max-width:960px){
  .site-header__inner{min-height:46px}
  .header-cta-mobile{display:inline-flex !important;margin-left:auto;white-space:nowrap;align-items:center;height:38px;padding:.55rem .95rem}
  .nav-toggle{display:flex !important;width:46px;height:46px;flex:0 0 auto}
}

/* === B2H-CRIT-SLIDER-LOCK: stała wysokość slidera hero (anti-CLS) === */
.hero__slider{position:relative;display:grid}
.hero__slide{grid-area:1/1}
@media (max-width:760px){
  .hero__slider{min-height:380px;height:380px}
}
@media (max-width:480px){
  .hero__slider{min-height:420px;height:420px}
}
@media (min-width:761px){
  .hero__slider{min-height:300px}
}
/* Slajd nieaktywny nie może rozpychać layoutu, nawet zanim wstanie JS */
.hero__slide{opacity:0;visibility:hidden}
.hero__slide.is-active,
.hero__slider:not(:has(.is-active)) .hero__slide:first-child{opacity:1;visibility:visible}

/* === B2H-CRIT-HERO-HEIGHT-SYNC: identyczna wysokość hero w critical i main (zero skoku przy doładowaniu) === */
@media (max-width:760px){
  .hero,
  .hero.hero--pelna,
  .hero--pelna,
  .hero--wysoka,
  .hero--srednia{
    min-height:560px !important;
    height:560px !important;
    align-items:flex-start !important;
    display:flex !important;
  }
  .hero__inner,
  .hero.hero--pelna .hero__inner{
    min-height:0 !important;
    height:auto !important;
    justify-content:flex-start !important;
    padding-top:96px !important;
    padding-bottom:32px !important;
  }
}
@media (max-width:480px){
  .hero,.hero.hero--pelna,.hero--pelna{min-height:600px !important;height:600px !important}
}

/* === B2H-CRIT-TEXT-RESERVE: rezerwacja wysokości tekstu hero (anti-CLS font-swap) === */
@media (max-width:760px){
  .hero__title{min-height:40px}
  .hero__desc{min-height:200px}
  .eyebrow{min-height:24px}
  .hero__cta{min-height:60px}
  .btn--lg {font-size: 0.8rem;}
}
@media (max-width:480px){
  .hero__title{min-height:30px}
  .hero__desc{min-height:150px}
}

/* B2H-CRIT-HERO-DESKTOP-LOCK — sync z critical */
@media (min-width:761px){
  .hero__slider{min-height:467px;height:467px}
  .hero__slide{min-height:414px}
}
@media (min-width:1100px){
  .hero__slider{min-height:467px;height:467px}
}

/* ---------- 3.9.0: karty zespołu klikalne + profil specjalisty ---------- */
.person__photo--link{display:block;cursor:pointer}
.person__name-link{color:inherit;text-decoration:none}
.person__name-link:hover{color:var(--aqua-2)}
.person__profile-link{display:inline-block;margin-top:.5rem;color:var(--aqua-2);font-weight:600;font-size:.9rem;text-decoration:none}
.person__profile-link:hover{text-decoration:underline}
.person:hover .person__photo--link .person__img{transform:scale(1.05)}
 
/* Profil pojedynczej osoby */
.person-single{padding:2.4rem 0 1rem}
.person-single__role{margin:.3rem 0 0;color:var(--aqua-2);font-weight:600}
.person-single__grid{display:grid;grid-template-columns:300px 1fr;gap:2.4rem;align-items:start}
@media (max-width:760px){.person-single__grid{grid-template-columns:1fr;gap:1.6rem}}
.person-single__media .person__photo{aspect-ratio:4/5;border-radius:var(--rad-lg);position:relative;background:#fff;overflow:hidden}
.person-single__media .person__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top}
.person-single__tags{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0 0;padding:0}
.person-single__tags li{padding:.35rem .8rem;border-radius:999px;border:1px solid rgba(45,212,191,.4);background:rgba(45,212,191,.08);color:var(--aqua-2);font-size:.82rem;font-weight:600}
 
/* ---------- 3.9.2: profil specjalisty – dopracowanie układu ---------- */
.person-single__media{position:sticky;top:calc(var(--head-h, 80px) + 1rem)}
@media (max-width:760px){.person-single__media{position:static}}
.person-single__body{font-size:1.02rem;line-height:1.75}
.person-single__body h2{font-size:1.5rem;margin:1.8em 0 .7em;position:relative;padding-bottom:.5rem}
.person-single__body h2::after{content:"";position:absolute;left:0;bottom:0;width:54px;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--aqua),var(--aqua-2))}
.person-single__body h2:first-child{margin-top:0}
.person-single__body h3{font-size:1.2rem;margin:1.5em 0 .5em;padding-left:.8rem;border-left:3px solid var(--aqua)}
.person-single__body ul{margin:0 0 1.3em;padding-left:1.3em}
.person-single__body li{margin-bottom:.45em}
.person-single__body li::marker{color:var(--aqua-2)}
.person-single .person__photo{box-shadow:0 18px 50px rgba(0,0,0,.3)}
 
/* 3.9.6: akcje na karcie zespołu */
.person__actions{display:flex;flex-direction:column;gap:.6rem;margin-top:.9rem}
.person__actions .person__book{align-self:flex-start}
.person__actions .person__profile-link{margin-top:0}
 
/* 3.9.6: baner "Masz pytania?" na profilu specjalisty */
.sec-cta-mini{padding:2.5rem 0 4rem}
.cta-mini{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;padding:1.8rem 2rem}
.cta-mini__title{margin:0 0 .3rem;font-size:1.3rem;color:#fff}
.cta-mini__text{margin:0;color:rgba(255,255,255,.72)}
@media (max-width:560px){.cta-mini{flex-direction:column;align-items:flex-start}.cta-mini .btn{width:100%;justify-content:center}}

/* ============================================================
   3.10.0: Landing Pages — Problem→Rozwiązanie + Proces leczenia
   ============================================================ */
.problem-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;max-width:1000px;margin:0 auto}
@media (max-width:760px){.problem-grid{grid-template-columns:1fr}}
.problem-card{padding:2rem;border-radius:var(--rad-lg);border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04)}
.problem-card__icon{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:1.1rem}
.problem-card--issue .problem-card__icon{background:rgba(239,68,68,.14);color:#fca5a5}
.problem-card--solution .problem-card__icon{background:rgba(45,212,191,.14);color:var(--aqua-2)}
.problem-card__title{font-size:1.25rem;color:#fff;margin:0 0 .8rem}
.problem-card--solution{border-color:rgba(45,212,191,.35);background:rgba(45,212,191,.06)}
.problem-card__body{color:rgba(255,255,255,.82);line-height:1.7}
.problem-card__body p{margin:0 0 .9em}
.sec--jasne .problem-card{background:#fff;border-color:var(--line)}
.sec--jasne .problem-card__title{color:var(--deep)}
.sec--jasne .problem-card__body{color:#444}
 
.proces-list{list-style:none;counter-reset:none;margin:0;padding:0;max-width:840px;margin:0 auto;display:flex;flex-direction:column;gap:1.2rem}
.proces-step{display:flex;gap:1.3rem;align-items:flex-start;padding:1.6rem 1.8rem;border-radius:var(--rad-lg);background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1)}
.sec--jasne .proces-step{background:#fff;border-color:var(--line);box-shadow:0 10px 30px rgba(0,0,0,.05)}
.proces-step__num{flex:0 0 48px;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.3rem;font-weight:800;background:linear-gradient(135deg,var(--aqua),var(--aqua-2));color:var(--deep)}
.proces-step__title{margin:.2rem 0 .5rem;font-size:1.15rem;color:#fff}
.sec--jasne .proces-step__title{color:var(--deep)}
.proces-step__text{margin:0;color:rgba(255,255,255,.78);line-height:1.7}
.sec--jasne .proces-step__text{color:#555}
 
/* ============================================================
   3.11.0: Strona główna – kafle problemów + akordeon SEO
   ============================================================ */
.problemy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2.5rem}
@media (max-width:860px){.problemy-grid{grid-template-columns:1fr}}
.problem-tile{position:relative;display:flex;flex-direction:column;padding:2.2rem 1.9rem;border-radius:var(--rad-lg);background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);transition:transform .3s var(--ease),border-color .3s,background .3s}
.problem-tile:hover{transform:translateY(-5px);border-color:rgba(45,212,191,.45);background:rgba(45,212,191,.06)}
.sec--jasne .problem-tile{background:#fff;border-color:var(--line);box-shadow:0 12px 36px rgba(0,0,0,.05)}
.problem-tile__icon{width:60px;height:60px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(45,212,191,.18),rgba(45,212,191,.06));color:var(--aqua-2);margin-bottom:1.3rem}
.problem-tile__title{font-size:1.3rem;color:#fff;margin:0 0 .7rem}
.sec--jasne .problem-tile__title{color:var(--deep)}
.problem-tile__text{color:rgba(255,255,255,.74);line-height:1.65;margin:0 0 1.5rem;flex:1}
.sec--jasne .problem-tile__text{color:#555}
.problem-tile__cta{display:inline-flex;align-items:center;gap:.5rem;color:var(--aqua-2);font-weight:700;text-decoration:none;align-self:flex-start;position:relative;z-index:2}
.problem-tile__cta i{transition:transform .25s var(--ease)}
.problem-tile:hover .problem-tile__cta i{transform:translateX(4px)}
.problem-tile__overlay{position:absolute;inset:0;z-index:1}
 
/* Akordeon SEO (treść w HTML od razu, zwijana CSS-em – widoczna dla Google) */
.seo-accordion{max-width:900px;margin:0 auto}
.seo-accordion__item{border-bottom:1px solid rgba(255,255,255,.12)}
.sec--jasne .seo-accordion__item{border-color:var(--line)}
.seo-accordion__toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.3rem 0;background:none;border:0;cursor:pointer;font:inherit;font-size:1.15rem;font-weight:600;color:#fff;text-align:left}
.sec--jasne .seo-accordion__toggle{color:var(--deep)}
.seo-accordion__toggle::after{content:"";flex:0 0 12px;width:12px;height:12px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .3s var(--ease);opacity:.7}
.seo-accordion__item.is-open .seo-accordion__toggle::after{transform:rotate(225deg)}
.seo-accordion__panel{overflow:hidden;max-height:0;transition:max-height .4s var(--ease)}
.seo-accordion__item.is-open .seo-accordion__panel{max-height:3000px}
.seo-accordion__inner{padding:0 0 1.6rem;color:rgba(255,255,255,.78);line-height:1.8}
.sec--jasne .seo-accordion__inner{color:#555}
.seo-accordion__inner h3{color:#fff;margin:1.2em 0 .5em;font-size:1.15rem}
.sec--jasne .seo-accordion__inner h3{color:var(--deep)}
.seo-accordion__inner ul{padding-left:1.3em}
.seo-accordion__inner li{margin-bottom:.4em}
/* Bez JS treść i tak dostępna (max-height auto) */
.no-js .seo-accordion__panel{max-height:none}
 
/* 3.12.0: link „Zobacz całą opinię" w skróconej opinii */
.review__readmore{color:var(--aqua-2);font-weight:600;text-decoration:underline;white-space:nowrap}
.review__readmore:hover{color:var(--aqua)}

/* ============================================================
   3.13.0: opinie pełne (koniec line-clamp) + treści zawsze 100%
   Dopisz na SAMYM KOŃCU assets/css/main.css
   ============================================================ */

/* --- Opinie: usuń wizualne ucinanie (line-clamp ciął zdanie w pół) --- */
.reviews__track .review__text{
  display:block !important;
  -webkit-line-clamp:none !important;
  -webkit-box-orient:initial !important;
  overflow:visible !important;
}
.reviews__track .review{max-height:none !important}
.review__text{overflow:visible !important}
.review__readmore{display:inline;margin-left:.35rem;color:var(--aqua-2);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.review__readmore:hover{color:var(--aqua)}

/* --- Treści tekstowe: nigdy nie zwężane, zawsze pełna szerokość --- */
.container--narrow{width:min(1200px,92%) !important;max-width:100% !important}
.entry-content,
.post-body,
.sec-seo__content,
.sec-seo .container--narrow,
.sec-seo__inner--waski,
.person-single__body,
.seo-accordion__inner,
.problem-card__body,
.faq-item__a{max-width:100% !important}
/* Hero i nagłówki bez sztucznego zawężania kolumny tekstu */
.hero__desc{max-width:none}
.post-hero__title{max-width:none}
 
/* ============================================================
   3.14.0: blok SEO „Czytaj więcej" (fade) + select formularza
   ============================================================ */
 
/* --- Blok SEO: krótki wstęp + fade + przycisk --- */
.sec-seo-more .seo-more{max-width:100%;margin:0 auto;position:relative}
.seo-more__content{max-width:100% !important;overflow:hidden;transition:max-height .5s var(--ease)}
/* Stan zwinięty: pokazujemy ~2-3 zdania */
.seo-more:not(.is-open) .seo-more__content{max-height:160px}
.seo-more.is-open .seo-more__content{max-height:6000px}
/* Gradient zanikania na dole (tylko gdy zwinięte) */
.seo-more__fade{position:absolute;left:0;right:0;bottom:54px;height:130px;pointer-events:none;background:linear-gradient(to bottom,transparent,#0a1f2a 92%);transition:opacity .4s}
.sec--jasne .seo-more__fade{background:linear-gradient(to bottom,transparent,var(--light) 92%)}
.seo-more.is-open .seo-more__fade{opacity:0}
.seo-more__btn{margin-top:1.4rem}
.seo-more__content h3{color:#fff;margin:1.3em 0 .5em;font-size:1.2rem}
.seo-more__content h3:first-child{margin-top:0}
.sec--jasne .seo-more__content h3{color:var(--deep)}
.seo-more__content p{line-height:1.8;margin:0 0 1em}
.seo-more__content ul{padding-left:1.3em;margin:0 0 1.2em}
.seo-more__content li{margin-bottom:.4em}
 
/* Stary akordeon SEO – neutralizacja (gdyby gdzieś został) */
.seo-accordion__panel{max-height:none !important}
 
/* --- Select w formularzu kontaktowym (był nieostylowany) --- */
.b2h-form select{
  width:100%;
  padding:.85rem 1.05rem;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.07);
  color:#fff;
  font:inherit;
  cursor:pointer;
  transition:border-color .2s,background .2s;
  -webkit-appearance:none;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%232DD4BF' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 1rem center;
  padding-right:2.6rem;
}
.b2h-form select:focus{outline:none;border-color:var(--aqua);background-color:rgba(255,255,255,.1)}
.b2h-form select option{background:#0c2430;color:#fff}
 
/* ============================================================
   3.15.0: blok SEO – gładki fade + przycisk na środku
   ============================================================ */
.sec-seo-more .seo-more{text-align:center}
.seo-more__content{text-align:left;position:relative}
/* Zwinięty: więcej widocznej treści, gładkie przejście */
.seo-more:not(.is-open) .seo-more__content{max-height:220px}
/* Gradient zanikania: wyższy i łagodniejszy, dociśnięty do dołu treści */
.seo-more__fade{
  bottom:0;
  height:180px;
  background:linear-gradient(to bottom,
    rgba(10,31,42,0) 0%,
    rgba(10,31,42,.6) 45%,
    rgba(10,31,42,.92) 75%,
    #0a1f2a 100%);
}
.sec--jasne .seo-more__fade{
  background:linear-gradient(to bottom,
    rgba(245,248,247,0) 0%,
    rgba(245,248,247,.6) 45%,
    rgba(245,248,247,.92) 75%,
    var(--light) 100%);
}
/* Po rozwinięciu chowamy fade i nie blokujemy treści */
.seo-more.is-open .seo-more__fade{opacity:0;height:0}
/* Przycisk wyśrodkowany pod treścią */
.seo-more__btn{display:inline-flex;margin:1.6rem auto 0}
 
/* 3.15.0: opinie – jednolita wysokość kart przy krótkim tekście */
.reviews__track .review__text{min-height:0}
 
/* ============================================================
   3.16.0: blok SEO – fade tylko na dolnym pasku, treść czytelna
   ============================================================ */
/* Pokaż wyraźnie ~3-4 zdania, zanim zacznie się zanikanie */
.seo-more:not(.is-open) .seo-more__content{max-height:300px}
/* Fade niski – obejmuje tylko dolną część, nie „pierze" całego tekstu */
.seo-more__fade{height:96px}
.seo-more.is-open .seo-more__content{max-height:6000px}
/* Po rozwinięciu fade całkowicie znika */
.seo-more.is-open .seo-more__fade{opacity:0;height:0}
 
/* ============================================================
   3.17.0: blok SEO – wygaszanie MASKĄ (działa na przezroczystym tle)
   Stara nakładka __fade dawała prostokątną plamę, bo tło sekcji
   jest przezroczyste (globalny gradient). Maska tnie alpha samej
   treści, więc tekst znika płynnie niezależnie od tła.
   ============================================================ */
.seo-more__fade{display:none !important}   /* koniec z nakładką-plamą */
 
.seo-more__content{
  position:relative;
  overflow:hidden;
  transition:max-height .5s var(--ease),-webkit-mask-size .3s,mask-size .3s;
}
.seo-more:not(.is-open) .seo-more__content{
  max-height:300px;
  -webkit-mask-image:linear-gradient(to bottom,#000 0,#000 60%,transparent 100%);
  mask-image:linear-gradient(to bottom,#000 0,#000 60%,transparent 100%);
}
.seo-more.is-open .seo-more__content{
  max-height:6000px;
  -webkit-mask-image:none;
  mask-image:none;
}
.seo-more__btn{display:inline-flex;margin:1.6rem auto 0}
.sec-seo-more .seo-more{text-align:center}
.seo-more__content{text-align:left}

/* ============================================================
   3.18.0: kafle problemów – ikona po lewej, nagłówek obok, tekst pod
   ============================================================ */
.problem-tile__icon{margin-bottom:0;width:54px;height:54px;flex:0 0 54px}
.problem-tile__head{display:flex;align-items:center;gap:1rem;margin-bottom:1.1rem}
.problem-tile__head .problem-tile__title{margin:0;font-size:1.18rem;line-height:1.25}
 
/* ============================================================
   3.19.0: HERO – wideo tłem na całość, tekst na dole nachodzi 10% na wideo
   reszta na tle strony; dół wideo ciemnieje i przechodzi w background
   ============================================================ */
 
/* Wideo wypełnia całe hero (cover), góra czysta */
.hero__media{height:100% !important;inset:0 !important}
.hero__poster,.hero__video{height:100% !important;object-fit:cover}
 
/* Overlay: góra przezroczysta, dół ciemnieje do koloru tła strony (#07151B = --ink)
   i płynnie się z nim zlewa, więc wideo „wtapia się" w sekcję poniżej */
.hero__overlay{
  background:linear-gradient(to bottom,
    rgba(7,21,27,0) 0%,
    rgba(7,21,27,0) 40%,
    rgba(7,21,27,.35) 65%,
    rgba(7,21,27,.8) 88%,
    var(--ink) 100%) !important;
}
 
/* Treść u dołu hero */
.hero{align-items:flex-end !important;overflow:visible}
.hero__inner{justify-content:flex-end !important;min-height:0 !important;padding-top:0;padding-bottom:0;position:relative;z-index:5}
/* Slajd 60% szerokości, wysunięty w dół tak, że tylko górą (~10%) jest na wideo,
   reszta zachodzi na sekcję pod hero (ujemny dolny margines) */
.hero__slide{max-width:60%}
@media (max-width:960px){.hero__slide{max-width:100%}}
 
/* Cała treść hero wysunięta w dół: dolne ~10% wideo + zejście na sekcję niżej.
   Ujemny margines dolny inner-a wypycha tekst poza hero (overflow:visible). */
.hero__inner{margin-bottom:-6rem}
@media (max-width:960px){.hero__inner{margin-bottom:-4rem}}
 
/* Nawigacja: mniejsze kreski */
.hero__dots{margin-top:1.4rem;gap:.4rem}
.hero__dot{width:22px;height:3px}
.hero__dot.is-active{width:34px}
 
/* 3.19.0 cd: spójne zachowanie hero na wszystkich szerokościach + strzałka */
.hero,
.hero--pelna,
.hero--wysoka,
.hero--srednia{display:flex !important;align-items:flex-end !important;overflow:visible !important}
@media (max-width:760px){
  .hero{min-height:84svh !important;display:flex !important;align-items:flex-end !important}
  .hero__media{position:absolute !important;inset:0 !important;width:100% !important;height:100% !important;aspect-ratio:auto !important;margin:0 !important;background:none !important}
  .hero__poster,.hero__video{position:absolute !important;inset:0 !important;width:100% !important;height:100% !important;object-fit:cover !important;aspect-ratio:auto !important}
}
/* Strzałka „scroll" koliduje z wysuniętym tekstem – chowamy */
.hero__scroll{display:none}
 
/* ============================================================
   3.20.0: hero – tekst niżej i szerzej, miękkie przejście wideo→tło,
   większy odstęp sekcji pod hero
   ============================================================ */
 
/* Tekst szerszy (75%) i wysunięty niżej */
.hero__slide{max-width:75% !important}
@media (max-width:960px){.hero__slide{max-width:100% !important}}
.hero__inner{margin-bottom:-10rem !important}
@media (max-width:960px){.hero__inner{margin-bottom:-6rem !important}}
 
/* Miękkie przejście wideo→tło: wyższy, bardziej stopniowany gradient
   (zaczyna ciemnieć wcześniej i ma więcej kroków → zero ostrego cięcia) */
.hero__overlay{
  background:linear-gradient(to bottom,
    rgba(7,21,27,0) 0%,
    rgba(7,21,27,0) 28%,
    rgba(7,21,27,.12) 45%,
    rgba(7,21,27,.32) 60%,
    rgba(7,21,27,.58) 74%,
    rgba(7,21,27,.82) 86%,
    rgba(7,21,27,.95) 94%,
    var(--ink) 100%) !important;
}
 
/* Dodatkowa warstwa wygaszająca samą KLATKĘ wideo maską – krawędź wideo
   rozmywa się w tło zamiast kończyć ostrą linią */
.hero__media{
  -webkit-mask-image:linear-gradient(to bottom,#000 0,#000 70%,rgba(0,0,0,.4) 90%,transparent 100%);
  mask-image:linear-gradient(to bottom,#000 0,#000 70%,rgba(0,0,0,.4) 90%,transparent 100%);
}
 
/* Sekcja pod hero niżej – więcej powietrza nad treścią */
.hero + #po-hero + .section,
.hero + .section,
#po-hero + .section{padding-top:11rem !important}
@media (max-width:960px){
  .hero + #po-hero + .section,
  .hero + .section,
  #po-hero + .section{padding-top:7rem !important}
}
 
/* ============================================================
   3.21.0: kropki w prawym dolnym rogu hero + realne zlanie wideo z tłem
   ============================================================ */
 
/* Hero bez własnego solidnego tła — przepuszcza globalny gradient strony,
   więc nie ma różnicy tonów na styku wideo/sekcja (koniec „odcięcia") */
.hero{background:transparent !important}
 
/* Maska wideo: dłuższa, łagodniejsza strefa zaniku (wideo rozpływa się w tło) */
.hero__media{
  -webkit-mask-image:linear-gradient(to bottom,#000 0,#000 55%,rgba(0,0,0,.7) 72%,rgba(0,0,0,.3) 86%,transparent 100%) !important;
  mask-image:linear-gradient(to bottom,#000 0,#000 55%,rgba(0,0,0,.7) 72%,rgba(0,0,0,.3) 86%,transparent 100%) !important;
}
/* Overlay tylko delikatnie przyciemnia pod tekstem; nie tworzy twardej krawędzi
   (bez docelowego solid --ink na końcu — to ono dawało linię) */
.hero__overlay{
  background:linear-gradient(to bottom,
    rgba(7,21,27,0) 0%,
    rgba(7,21,27,0) 35%,
    rgba(7,21,27,.18) 58%,
    rgba(7,21,27,.4) 78%,
    rgba(7,21,27,.55) 100%) !important;
}
 
/* Kropki slidera → prawy dolny róg hero */
/* Kropki kotwiczone do .hero (nie do wysuniętego inner-a) */
.hero{position:relative}
.hero__dots{
  position:absolute;
  right:max(2rem,calc((100% - 1200px)/2 + 0px));
  bottom:9rem;
  margin-top:0;
  z-index:7;
}
@media (max-width:1280px){.hero__dots{right:4%}}
@media (max-width:960px){.hero__dots{right:5%;bottom:7rem}}
 
/* ============================================================
   3.24.0: HERO MOBILE – ostateczny, spójny blok
   wideo kwadratowe (cover) widoczne prawie w całości, treść na SAMYM
   DOLE wideo, kropki pod przyciskiem, sekcja poniżej obniżona
   ============================================================ */
@media (max-width:760px){
  .hero{
    min-height:94svh !important;
    display:flex !important;
    align-items:flex-end !important;
    overflow:visible !important;
    background:transparent !important;
  }
 
  /* Wideo wypełnia całe hero (cover), bez listew */
  .hero__media{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;height:100% !important;
    aspect-ratio:auto !important;margin:0 !important;background:none !important;
    -webkit-mask-image:linear-gradient(to bottom,#000 0,#000 60%,rgba(0,0,0,.65) 76%,rgba(0,0,0,.25) 90%,transparent 100%) !important;
    mask-image:linear-gradient(to bottom,#000 0,#000 60%,rgba(0,0,0,.65) 76%,rgba(0,0,0,.25) 90%,transparent 100%) !important;
  }
  .hero__poster,.hero__video,.hero__video--square{
    position:absolute !important;inset:0 !important;
    width:100% !important;height:100% !important;
    object-fit:cover !important;object-position:center !important;
    aspect-ratio:auto !important;transform:none !important;
  }
 
  /* KLUCZ: inner wypełnia całą wysokość hero, treść wewnątrz wyrównana do DOŁU.
     Bez height:100% flex-end nie miał na czym działać i tekst wisiał wysoko. */
  .hero__inner{
    height:100% !important;
    min-height:0 !important;
    display:flex !important;flex-direction:column !important;
    justify-content:flex-end !important;
    padding:0 0 1.6rem !important;
    margin-bottom:-2rem !important;
    position:relative;z-index:5;
  }
  .hero__slider{margin-top:auto !important}  /* dopycha slider do dołu */
  .hero__slide{max-width:100% !important}
 
  /* Kompaktowy blok tekstu, żeby nie zasłaniał widea */
  .hero__slide .eyebrow{margin-bottom:.4rem}
  .hero__title{font-size:clamp(1.7rem,6.5vw,2.3rem);margin:.2rem 0 .6rem}
  .hero__desc{font-size:1rem;margin-bottom:1.1rem}
  .hero__cta{margin-top:.2rem}
 
  /* Kropki POD przyciskiem (statycznie, nie w rogu) */
  .hero__dots{
    position:static !important;right:auto !important;bottom:auto !important;
    margin:1.4rem 0 0 !important;justify-content:flex-start;
  }
 
  /* Sekcja pod hero obniżona */
  .hero + #po-hero + .section,
  .hero + .section,
  #po-hero + .section{padding-top:8rem !important}
}

@media (max-width:760px){
  .hero,
  .hero.hero--pelna,
  .hero--pelna,
  .hero--wysoka,
  .hero--srednia{
    min-height:0 !important;
    height:82svh !important;max-height:82svh !important;
    display:flex !important;align-items:flex-end !important;
    overflow:hidden !important;background:var(--ink) !important;
  }

  /* Koniec skakania: zero animacji/transform na slajdzie */
  .hero__slide,
  .hero__slide.is-active,
  .hero [data-reveal]{
    animation:none !important;transition:none !important;
    transform:none !important;opacity:1 !important;
  }
  .hero__slider{display:grid !important;min-height:0 !important;height:auto !important;margin:0 !important}
  .hero__slide{grid-area:1/1;max-width:100% !important}
  .hero__slide:not(.is-active){visibility:hidden}
  .hero__slide.is-active{visibility:visible}

  /* WIDEO PRAWIE CAŁE: contain zamiast cover — widać pełną klatkę,
     bez ucinania boków. Tło hero (--ink) wypełnia ewentualne listwy,
     a maska na dole tworzy płynne przejście w tło jak na desktopie. */
  .hero__media{
    position:absolute !important;inset:0 !important;
    width:100% !important;height:100% !important;
    margin:0 !important;aspect-ratio:auto !important;background:none !important;
    -webkit-mask-image:linear-gradient(to bottom,#000 0,#000 62%,rgba(0,0,0,.55) 80%,rgba(0,0,0,.15) 93%,transparent 100%) !important;
    mask-image:linear-gradient(to bottom,#000 0,#000 62%,rgba(0,0,0,.55) 80%,rgba(0,0,0,.15) 93%,transparent 100%) !important;
  }
  .hero__poster,
  .hero__video,
  .hero__video--square{
    position:absolute !important;inset:0 !important;
    width:100% !important;height:100% !important;
    object-fit:contain !important;object-position:center top !important;
    aspect-ratio:auto !important;transform:none !important;filter:none !important;opacity:1 !important;
  }

  /* Przejście wideo→tło (overlay pod tekstem, zlanie z --ink) */
  .hero__overlay{
    background:linear-gradient(to bottom,
      rgba(7,21,27,.15) 0%,
      rgba(7,21,27,0) 30%,
      rgba(7,21,27,.35) 60%,
      rgba(7,21,27,.7) 82%,
      var(--ink) 100%) !important;
  }

  /* Inner: treść u dołu, z PADDINGAMI bocznymi (były zerowe) */
  .hero__inner,
  .hero.hero--pelna .hero__inner{
    height:100% !important;min-height:0 !important;
    width:min(1200px,92%) !important;margin-inline:auto !important;
    display:flex !important;flex-direction:column !important;
    justify-content:flex-end !important;
    padding:0 0 2.2rem !important;          /* treść jeszcze niżej = większy dolny padding */
    position:relative;z-index:5;
  }

  /* Tekst kompaktowy */
  .hero__slide .eyebrow{margin-bottom:.3rem !important;min-height:0 !important}
  .hero__title{font-size:clamp(1.5rem,5.5vw,2rem) !important;line-height:1.12 !important;margin:.1rem 0 .45rem !important;min-height:0 !important}
  .hero__desc{font-size:.93rem !important;margin-bottom:.85rem !important;min-height:0 !important}
  .hero__cta{margin-top:.1rem !important;min-height:0 !important}
  .btn--lg{font-size:.92rem !important}

  /* Kropki pod przyciskiem */
  .hero__dots{
    position:static !important;right:auto !important;bottom:auto !important;
    margin:1rem 0 0 !important;justify-content:flex-start !important;
  }
  .hero__scroll{display:none !important}

  .hero + #po-hero + .section,
  .hero + .section,
  #po-hero + .section{padding-top:3rem !important}
}

@media (max-width:480px){
  .hero,.hero.hero--pelna,.hero--pelna{height:84svh !important;max-height:84svh !important}
}

@media (max-width:760px){
  .hero,
  .hero.hero--pelna,
  .hero--pelna,
  .hero--wysoka,
  .hero--srednia{
    min-height:0 !important;
    height:80svh !important;max-height:80svh !important;
    display:flex !important;align-items:flex-end !important;
    overflow:hidden !important;background:var(--ink) !important;
  }

  /* Koniec skakania */
  .hero__slide,
  .hero__slide.is-active,
  .hero [data-reveal]{
    animation:none !important;transition:none !important;
    transform:none !important;opacity:1 !important;
  }
  .hero__slider{display:grid !important;min-height:0 !important;height:auto !important;margin:0 !important}
  .hero__slide{grid-area:1/1;max-width:100% !important}
  .hero__slide:not(.is-active){visibility:hidden}
  .hero__slide.is-active{visibility:visible}

  /* WIDEO COVER — wypełnia całe hero, BEZ czarnego pasa.
     Maska sięga niżej (do 88%), więc wygasza tylko sam dół,
     dając płynne przejście bez odsłaniania pustego tła. */
  .hero__media{
    position:absolute !important;inset:0 !important;
    width:100% !important;height:100% !important;
    margin:0 !important;aspect-ratio:auto !important;background:none !important;
    -webkit-mask-image:linear-gradient(to bottom,#000 0,#000 80%,rgba(0,0,0,.5) 92%,transparent 100%) !important;
    mask-image:linear-gradient(to bottom,#000 0,#000 80%,rgba(0,0,0,.5) 92%,transparent 100%) !important;
  }
  .hero__poster,
  .hero__video,
  .hero__video--square{
    position:absolute !important;inset:0 !important;
    width:100% !important;height:100% !important;
    object-fit:cover !important;object-position:center top !important;
    aspect-ratio:auto !important;transform:none !important;filter:none !important;opacity:1 !important;
  }

  /* Przejście wideo→tło: overlay zlewa dół z kolorem strony */
  .hero__overlay{
    background:linear-gradient(to bottom,
      rgba(7,21,27,.15) 0%,
      rgba(7,21,27,0) 32%,
      rgba(7,21,27,.35) 62%,
      rgba(7,21,27,.72) 84%,
      var(--ink) 100%) !important;
  }

  /* Inner: treść u dołu, z paddingami bocznymi */
  .hero__inner,
  .hero.hero--pelna .hero__inner{
    height:100% !important;min-height:0 !important;
    width:min(1200px,92%) !important;margin-inline:auto !important;
    display:flex !important;flex-direction:column !important;
    justify-content:flex-end !important;
    padding:0 0 2rem !important;
    position:relative;z-index:5;
  }

  .hero__slide .eyebrow{margin-bottom:.3rem !important;min-height:0 !important}
  .hero__title{font-size:clamp(1.5rem,5.5vw,2rem) !important;line-height:1.12 !important;margin:.1rem 0 .45rem !important;min-height:0 !important}
  .hero__desc{font-size:.93rem !important;margin-bottom:.85rem !important;min-height:0 !important}
  .hero__cta{margin-top:.1rem !important;min-height:0 !important}
  .btn--lg{font-size:.92rem !important}

  .hero__dots{
    position:static !important;right:auto !important;bottom:auto !important;
    margin:1rem 0 0 !important;justify-content:flex-start !important;
  }
  .hero__scroll{display:none !important}

  .hero + #po-hero + .section,
  .hero + .section,
  #po-hero + .section{padding-top:3rem !important}
}

@media (max-width:480px){
  .hero,.hero.hero--pelna,.hero--pelna{height:82svh !important;max-height:82svh !important}
}

/* ============================================================
   3.30.0: HERO MOBILE — mocniejsze rozmycie/przejście + tekst i sekcja niżej
   Dopisz NA KOŃCU main.css. USUŃ wcześniejszy blok 3.29.0.
   ============================================================ */
@media (max-width:760px){
  .hero,
  .hero.hero--pelna,
  .hero--pelna,
  .hero--wysoka,
  .hero--srednia{
    min-height:0 !important;
    height:84svh !important;max-height:84svh !important;
    display:flex !important;align-items:flex-end !important;
    overflow:visible !important;background:transparent !important;  /* przepuszcza globalny gradient = zlanie jak na desktop */
  }

  /* Koniec skakania */
  .hero__slide,
  .hero__slide.is-active,
  .hero [data-reveal]{
    animation:none !important;transition:none !important;
    transform:none !important;opacity:1 !important;
  }
  .hero__slider{display:grid !important;min-height:0 !important;height:auto !important;margin:0 !important}
  .hero__slide{grid-area:1/1;max-width:100% !important}
  .hero__slide:not(.is-active){visibility:hidden}
  .hero__slide.is-active{visibility:visible}

  /* WIDEO cover + DŁUGA, łagodna maska — krawędź rozpływa się głęboko,
     dużo bardziej miękko niż wcześniej (zanik od 50% w dół). */
  .hero__media{
    position:absolute !important;inset:0 !important;
    width:100% !important;height:100% !important;
    margin:0 !important;aspect-ratio:auto !important;background:none !important;
    -webkit-mask-image:linear-gradient(to bottom,#000 0,#000 50%,rgba(0,0,0,.85) 66%,rgba(0,0,0,.5) 80%,rgba(0,0,0,.2) 91%,transparent 100%) !important;
    mask-image:linear-gradient(to bottom,#000 0,#000 50%,rgba(0,0,0,.85) 66%,rgba(0,0,0,.5) 80%,rgba(0,0,0,.2) 91%,transparent 100%) !important;
  }
  .hero__poster,
  .hero__video,
  .hero__video--square{
    position:absolute !important;inset:0 !important;
    width:100% !important;height:100% !important;
    object-fit:cover !important;object-position:center top !important;
    aspect-ratio:auto !important;transform:none !important;filter:none !important;opacity:1 !important;
  }

  /* Overlay: dłuższe, stopniowane ciemnienie ku dołowi (zlanie z tłem strony) */
  .hero__overlay{
    background:linear-gradient(to bottom,
      rgba(7,21,27,.12) 0%,
      rgba(7,21,27,0) 30%,
      rgba(7,21,27,.18) 52%,
      rgba(7,21,27,.4) 70%,
      rgba(7,21,27,.7) 86%,
      rgba(7,21,27,.92) 96%,
      var(--ink) 100%) !important;
  }

  /* Inner: treść JESZCZE niżej (większy dolny padding) + wysunięta na sekcję */
  .hero__inner,
  .hero.hero--pelna .hero__inner{
    height:100% !important;min-height:0 !important;
    width:min(1200px,92%) !important;margin-inline:auto !important;
    display:flex !important;flex-direction:column !important;
    justify-content:flex-end !important;
    padding:0 0 1rem !important;
    margin-bottom:-3rem !important;          /* tekst schodzi niżej, na sekcję pod hero */
    position:relative;z-index:5;
  }

  .hero__slide .eyebrow{margin-bottom:.3rem !important;min-height:0 !important}
  .hero__title{font-size:clamp(1.5rem,5.5vw,2rem) !important;line-height:1.12 !important;margin:.1rem 0 .45rem !important;min-height:0 !important}
  .hero__desc{font-size:.93rem !important;margin-bottom:.85rem !important;min-height:0 !important}
  .hero__cta{margin-top:.1rem !important;min-height:0 !important}
  .btn--lg{font-size:.92rem !important}

  .hero__dots{
    position:static !important;right:auto !important;bottom:auto !important;
    margin:1rem 0 0 !important;justify-content:flex-start !important;
  }
  .hero__scroll{display:none !important}

  /* Sekcja pod hero DUŻO niżej */
  .hero + #po-hero + .section,
  .hero + .section,
  #po-hero + .section{padding-top:7rem !important}
}

@media (max-width:480px){
  .hero,.hero.hero--pelna,.hero--pelna{height:86svh !important;max-height:86svh !important}
}

/* ============================================================
   3.31.0: HERO MOBILE — treść slajdów jeszcze niżej
   Dopisz NA KOŃCU main.css (po bloku 3.30.0 — sam go koryguje).
   ============================================================ */
@media (max-width:760px){
  .hero__inner,
  .hero.hero--pelna .hero__inner{
    padding:0 0 .5rem !important;
    margin-bottom:-5rem !important;   /* więcej niż 3.30.0 (-3rem) → treść niżej */
  }
  /* Sekcja pod hero schodzi razem z tekstem, żeby nie nachodził na treść */
  .hero + #po-hero + .section,
  .hero + .section,
  #po-hero + .section{padding-top:9rem !important}
}
@media (max-width:480px){
  .hero__inner,
  .hero.hero--pelna .hero__inner{margin-bottom:-4rem !important}
}

/* ============================================================
   3.24.0: HERO MOBILE – ostateczny, spójny blok
   wideo kwadratowe (cover) widoczne prawie w całości, treść na SAMYM
   DOLE wideo, kropki pod przyciskiem, sekcja poniżej obniżona
   ============================================================ */
@media (max-width:760px){
  .hero{
    min-height:94svh !important;
    display:flex !important;
    align-items:flex-end !important;
    overflow:visible !important;
    background:transparent !important;
  }
 
  /* Wideo wypełnia całe hero (cover), bez listew */
  .hero__media{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;height:100% !important;
    aspect-ratio:auto !important;margin:0 !important;background:none !important;
    -webkit-mask-image:linear-gradient(to bottom,#000 0,#000 60%,rgba(0,0,0,.65) 76%,rgba(0,0,0,.25) 90%,transparent 100%) !important;
    mask-image:linear-gradient(to bottom,#000 0,#000 60%,rgba(0,0,0,.65) 76%,rgba(0,0,0,.25) 90%,transparent 100%) !important;
  }
  .hero__poster,.hero__video,.hero__video--square{
    position:absolute !important;inset:0 !important;
    width:100% !important;height:100% !important;
    object-fit:cover !important;object-position:center !important;
    aspect-ratio:auto !important;transform:none !important;
  }
 
  /* KLUCZ: inner wypełnia całą wysokość hero, treść wewnątrz wyrównana do DOŁU.
     Bez height:100% flex-end nie miał na czym działać i tekst wisiał wysoko. */
  .hero__inner{
    height:100% !important;
    min-height:0 !important;
    display:flex !important;flex-direction:column !important;
    justify-content:flex-end !important;
    padding:0 0 1.6rem !important;
    margin-bottom:-2rem !important;
    position:relative;z-index:5;
  }
  .hero__slider{margin-top:auto !important}  /* dopycha slider do dołu */
  .hero__slide{max-width:100% !important}
 
  /* Kompaktowy blok tekstu, żeby nie zasłaniał widea */
  .hero__slide .eyebrow{margin-bottom:.4rem}
  .hero__title{font-size:clamp(1.7rem,6.5vw,2.3rem);margin:.2rem 0 .6rem}
  .hero__desc{font-size:1rem;margin-bottom:1.1rem}
  .hero__cta{margin-top:.2rem}
 
  /* Kropki POD przyciskiem (statycznie, nie w rogu) */
  .hero__dots{
    position:static !important;right:auto !important;bottom:auto !important;
    margin:1.4rem 0 0 !important;justify-content:flex-start;
  }
 
  /* Sekcja pod hero obniżona */
  .hero + #po-hero + .section,
  .hero + .section,
  #po-hero + .section{padding-top:8rem !important}
}
 
/* ============================================================
   3.33.0: FAQ w treści Usług — wygląd spójny z blokiem FAQ (faq-item)
   Treść importowana z bazowej używa h4.faq-q + <p>; nadajemy jej
   identyczny styl „kafelka" jak natywny akordeon faq-item, żeby FAQ
   wyglądało tak samo w całym serwisie.
   ============================================================ */
.entry-content h4.faq-q,
.sec-seo .entry-content h4.faq-q{
  margin:.9rem 0 0 !important;
  padding:1.2rem 1.5rem !important;
  background:rgba(255,255,255,.05) !important;
  border:1px solid rgba(255,255,255,.1) !important;
  border-left:1px solid rgba(255,255,255,.1) !important;
  border-radius:var(--rad) var(--rad) 0 0 !important;
  font-size:1.02rem !important;
  font-weight:700 !important;
  color:#fff !important;
  display:flex;align-items:center;gap:1rem;
}
.entry-content h4.faq-q::before{
  content:"?" !important;
  position:static !important;
  transform:none !important;
  flex:0 0 34px;width:34px;height:34px;
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;
  border:1.5px solid rgba(255,255,255,.2);
  background:rgba(45,212,191,.14);
  color:var(--aqua-2);font-weight:800;font-size:.95rem;
}
/* Odpowiedź pod pytaniem = dolna część kafelka */
.entry-content h4.faq-q + p{
  margin:0 0 .9rem !important;
  padding:1rem 1.5rem 1.2rem !important;
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.1);
  border-top:0;
  border-left:1px solid rgba(255,255,255,.1) !important;
  border-radius:0 0 var(--rad) var(--rad);
  color:rgba(255,255,255,.72);
}
.entry-content h4.faq-q + p + ul,
.entry-content h4.faq-q + ul{
  margin:-.4rem 0 .9rem !important;
  padding:0 1.5rem 1.2rem 2.8rem !important;
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.1);
  border-top:0;
  border-radius:0 0 var(--rad) var(--rad);
}
 
/* ============================================================
   3.34.0: zdjęcia w treści Usług — ujednolicenie stylu
   Treść importowana z bazowej (Elementor) ma własne ramki, clip-path
   i inline-style. Wymuszamy spójny, czysty styl: zaokrąglenie + delikatny
   cień, BEZ złotych obramówek i wycięć (clip-path).
   ============================================================ */
.sec-seo .entry-content img,
.post-body img,
.single-usluga .entry-content img,
.entry-content img{
  border-radius:var(--rad-lg) !important;
  border:1px solid rgba(255,255,255,.1) !important;   /* zamiast złotej ramki */
  box-shadow:0 18px 50px rgba(0,0,0,.3) !important;
  clip-path:none !important;                            /* koniec wycięć */
  -webkit-clip-path:none !important;
  mask:none !important;-webkit-mask:none !important;
  filter:none !important;
  outline:0 !important;
  width:100% !important;height:auto !important;
  max-width:min(820px,100%) !important;
  margin:2em auto !important;display:block !important;
  object-fit:cover;
}
/* Zdjęcia w figurach/wrapperach Elementora – wyzeruj ich tła i ramki */
.post-body figure,
.entry-content figure,
.sec-seo .entry-content figure{
  background:transparent !important;border:0 !important;
  box-shadow:none !important;padding:0 !important;margin:2em 0 !important;border-radius:0 !important;
}
/* Kontenery obrazów z importu mogące nieść złote tło/ramkę */
.entry-content [class*="elementor-image"],
.entry-content [class*="wp-image"]{
  border:0 !important;box-shadow:none !important;background:transparent !important;border-radius:var(--rad-lg) !important;
}
 
/* ============================================================
   3.35.0: FAQ w treści = AKORDEON (jak na stronie FAQ)
   JS zamienia h4.faq-q + treść w <details class="faq-acc">.
   Wygląd identyczny z natywnym blokiem faq-item.
   ============================================================ */
.entry-content .faq-acc,
.post-body .faq-acc{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.1);
  border-radius:var(--rad);
  box-shadow:none;
  overflow:hidden;
  margin:0 0 .9rem !important;
  transition:box-shadow .3s;
}
.entry-content .faq-acc[open],
.post-body .faq-acc[open]{box-shadow:0 18px 48px rgba(0,0,0,.35)}
.faq-acc__q{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:1.2rem 1.5rem;cursor:pointer;list-style:none;margin:0;
}
.faq-acc__q::-webkit-details-marker{display:none}
.faq-acc__h{font-size:1.02rem;font-weight:700;color:#fff;line-height:1.35;margin:0}
.faq-acc__chevron{
  display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;
  width:34px;height:34px;border-radius:50%;
  border:1.5px solid rgba(255,255,255,.2);color:var(--aqua-2);
  transition:transform .35s var(--ease),background .3s,color .3s,border-color .3s;
}
.faq-acc[open] .faq-acc__chevron{transform:rotate(180deg);background:var(--aqua);border-color:var(--aqua);color:#04201A}
.faq-acc__a{padding:0 1.5rem 1.3rem;color:rgba(255,255,255,.72)}
.faq-acc__a > *:first-child{margin-top:0}
.faq-acc__a > *:last-child{margin-bottom:0}
.faq-acc__a p{margin:0 0 .8em}
 
/* Fallback gdy JS nie wstanie: surowe h4.faq-q zachowuje czytelny styl kafelka
   (reguły z 3.33.0 nadal działają), ale gdy JS zadziała – faq-acc wygrywa. */
/* ============================================================
   3.36.0: HERO MOBILE — wideo CONTAIN (cała szerokość, zero ucinania)
   Dopisz NA KOŃCU main.css. To finalna wersja mobile — nadpisuje 3.30/3.31.
 
   Założenie: wideo pokazane w CAŁOŚCI (contain) — widać pełną szerokość
   kadru, nic nie jest przycięte. Wideo u góry, tekst pod nim (nie na nim),
   na tle strony. Bez czarnych pasów: tło hero = globalny gradient strony.
   ============================================================ */
@media (max-width:760px){
  .hero,
  .hero.hero--pelna,
  .hero--pelna,
  .hero--wysoka,
  .hero--srednia{
    min-height:0 !important;height:auto !important;max-height:none !important;
    display:flex !important;flex-direction:column !important;
    align-items:stretch !important;justify-content:flex-start !important;
    overflow:visible !important;background:transparent !important;
    padding-top:var(--head-h) !important;     /* miejsce pod stały header */
  }
 
  /* Koniec skakania: zero animacji wejścia */
  .hero__slide,
  .hero__slide.is-active,
  .hero [data-reveal]{
    animation:none !important;transition:none !important;
    transform:none !important;opacity:1 !important;
  }
 
  /* WIDEO: contain — cała klatka widoczna, pełna szerokość, bez ucinania.
     Wideo jest blokiem na górze (nie tłem absolutnym), wysokość z proporcji. */
  .hero__media{
    position:relative !important;inset:auto !important;
    width:100% !important;height:auto !important;
    margin:0 !important;background:none !important;
    -webkit-mask-image:none !important;mask-image:none !important;
    aspect-ratio:1/1 !important;            /* kwadratowe wideo mobilne */
  }
  .hero__poster,
  .hero__video,
  .hero__video--square{
    position:absolute !important;inset:0 !important;
    width:100% !important;height:100% !important;
    object-fit:contain !important;object-position:center !important;
    aspect-ratio:auto !important;transform:none !important;filter:none !important;opacity:1 !important;
  }
  /* Brak overlay na wideo (contain = całość widoczna, nie przyciemniamy) */
  .hero__overlay{display:none !important}
  .hero__aurora{display:none !important}
 
  /* Treść POD wideo — normalny blok, wg ustawień tekstu */
  .hero__inner,
  .hero.hero--pelna .hero__inner{
    position:relative !important;z-index:5;
    height:auto !important;min-height:0 !important;
    width:min(1200px,92%) !important;margin:0 auto !important;
    display:flex !important;flex-direction:column !important;
    justify-content:flex-start !important;
    padding:1.6rem 0 2.5rem !important;
  }
  .hero__slider{display:grid !important;min-height:0 !important;height:auto !important;margin:0 !important}
  .hero__slide{grid-area:1/1;max-width:100% !important}
  .hero__slide:not(.is-active){visibility:hidden}
  .hero__slide.is-active{visibility:visible}
 
  /* Teksty wg ustawień */
  .hero__slide .eyebrow{margin-bottom:.4rem !important;min-height:0 !important}
  .hero__title{font-size:clamp(1.6rem,6vw,2.1rem) !important;line-height:1.14 !important;margin:.15rem 0 .55rem !important;min-height:0 !important}
  .hero__desc{font-size:.96rem !important;margin-bottom:1rem !important;min-height:0 !important;max-width:100% !important}
  .hero__cta{margin-top:.2rem !important;min-height:0 !important}
  .btn--lg{font-size:.95rem !important}
 
  /* Kropki pod przyciskiem */
  .hero__dots{
    position:static !important;right:auto !important;bottom:auto !important;
    margin:1.3rem 0 0 !important;justify-content:flex-start !important;
  }
  .hero__scroll{display:none !important}
 
  /* Sekcja pod hero — normalny odstęp (hero już nie wystaje) */
  .hero + #po-hero + .section,
  .hero + .section,
  #po-hero + .section{padding-top:3.5rem !important}
}

/* ============================================================
   3.37.0: FAQ — jednolita szerokość w całym serwisie
   Akordeon FAQ (na stronie FAQ i w treści Usług) ma tę samą, czytelną
   szerokość zamiast pełnej. Dopisz na końcu main.css.
   ============================================================ */

/* Blok FAQ (strona główna / podstrona FAQ) — przywróć węższy kontener */
.sec-faq .container.container--narrow{
  width:min(860px,92%) !important;
  max-width:860px !important;
  margin-inline:auto !important;
}
.faq-list{max-width:860px;margin-inline:auto}

/* FAQ w treści Usług (akordeon faq-acc generowany z h4.faq-q) — ta sama szerokość,
   wyśrodkowany, niezależnie od pełnej szerokości entry-content */
.entry-content .faq-acc,
.post-body .faq-acc{
  max-width:860px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
/* Gdyby pytania szły jedno po drugim — całość grupy też wyśrodkowana */
.sec-seo .entry-content .faq-acc,
.single-usluga .entry-content .faq-acc{
  max-width:860px !important;margin-inline:auto !important;
}

/* ============================================================
   3.39.0: HERO MOBILE — NAPRAWA (wideo wróciło)
   Poprzednie bloki (3.36 contain + 3.38) zostawiły hero__media bez
   wysokości → wideo znikało. Ten blok przywraca wideo jako tło na pełną
   wysokość, z tekstem zachodzącym górą i rozmytą dolną krawędzią.
   Dopisz NA SAMYM KOŃCU main.css (nadpisuje wszystkie wcześniejsze).
   ============================================================ */
@media (max-width:760px){
  .hero,
  .hero.hero--pelna,
  .hero--pelna,
  .hero--wysoka,
  .hero--srednia{
    min-height:0 !important;
    height:84svh !important;max-height:84svh !important;
    display:flex !important;flex-direction:column !important;
    align-items:stretch !important;justify-content:flex-end !important;
    overflow:visible !important;background:transparent !important;
    padding-top:0 !important;position:relative !important;
  }

  /* WIDEO jako tło na pełną wysokość (to przywraca wideo) */
  .hero__media{
    position:absolute !important;inset:0 !important;
    width:100% !important;height:100% !important;
    margin:0 !important;background:none !important;
    aspect-ratio:auto !important;
    -webkit-mask-image:linear-gradient(to bottom,#000 0,#000 58%,rgba(0,0,0,.6) 78%,rgba(0,0,0,.2) 92%,transparent 100%) !important;
    mask-image:linear-gradient(to bottom,#000 0,#000 58%,rgba(0,0,0,.6) 78%,rgba(0,0,0,.2) 92%,transparent 100%) !important;
  }
  .hero__poster,
  .hero__video,
  .hero__video--square{
    position:absolute !important;inset:0 !important;
    width:100% !important;height:100% !important;
    object-fit:cover !important;object-position:center !important;
    aspect-ratio:auto !important;transform:none !important;filter:none !important;opacity:1 !important;
  }
  .hero__overlay{
    display:block !important;
    background:linear-gradient(to bottom,
      rgba(7,21,27,.1) 0%,
      rgba(7,21,27,0) 30%,
      rgba(7,21,27,.35) 62%,
      rgba(7,21,27,.7) 84%,
      var(--ink) 100%) !important;
  }

  /* Koniec skakania */
  .hero__slide,
  .hero__slide.is-active,
  .hero [data-reveal]{
    animation:none !important;transition:none !important;
    transform:none !important;opacity:1 !important;
  }
  .hero__slider{display:grid !important;min-height:0 !important;height:auto !important;margin:0 !important}
  .hero__slide{grid-area:1/1;max-width:100% !important}
  .hero__slide:not(.is-active){visibility:hidden}
  .hero__slide.is-active{visibility:visible}

  /* Treść u dołu, górą zachodzi na wideo */
  .hero__inner,
  .hero.hero--pelna .hero__inner{
    position:relative !important;z-index:5;
    height:auto !important;min-height:0 !important;
    width:min(1200px,92%) !important;margin:0 auto !important;
    display:flex !important;flex-direction:column !important;
    justify-content:flex-end !important;
    padding:0 0 1rem !important;
    margin-bottom:-3rem !important;       /* tekst schodzi na sekcję poniżej */
  }

  .hero__slide .eyebrow{margin-bottom:.4rem !important;min-height:0 !important}
  .hero__title{font-size:clamp(1.6rem,6vw,2.1rem) !important;line-height:1.14 !important;margin:.15rem 0 .55rem !important;min-height:0 !important}
  .hero__desc{font-size:.96rem !important;margin-bottom:1rem !important;min-height:0 !important;max-width:100% !important}
  .hero__cta{margin-top:.2rem !important;min-height:0 !important}
  .btn--lg{font-size:.95rem !important}

  .hero__dots{
    position:static !important;right:auto !important;bottom:auto !important;
    margin:1.2rem 0 0 !important;justify-content:flex-start !important;
  }
  .hero__scroll{display:none !important}

  .hero + #po-hero + .section,
  .hero + .section,
  #po-hero + .section{padding-top:7rem !important}
}

/* ============================================================
   HERO MOBILE (wideo CONTAIN, bez ucinania boków) + HEADER SOLID
   Dopisz na SAMYM KOŃCU main.css. Nadpisuje wcześniejsze reguły hero.
   ============================================================ */

/* ---------- HEADER: od razu solid na mobile ---------- */
@media (max-width:960px){
  .site-header,
  .site-header:not(.is-solid),
  .b2h-subpage .site-header:not(.is-solid){
    background:rgba(7,21,27,.95) !important;
    -webkit-backdrop-filter:blur(12px) !important;
    backdrop-filter:blur(12px) !important;
    box-shadow:0 4px 24px rgba(7,21,27,.28) !important;
  }
}

/* ---------- HERO MOBILE ---------- */
@media (max-width:760px){
  .hero,
  .hero.hero--pelna,
  .hero--pelna,
  .hero--wysoka,
  .hero--srednia{
    min-height:0 !important;height:auto !important;max-height:none !important;
    display:flex !important;flex-direction:column !important;
    align-items:stretch !important;justify-content:flex-start !important;
    overflow:visible !important;background:transparent !important;
    padding-top:var(--head-h) !important;     /* miejsce pod stały header */
    position:relative !important;
  }

  /* WIDEO: blok kwadratowy u góry, contain = CAŁA klatka, ZERO ucinania boków.
     Wysokość bierze się z proporcji 1:1 (mobilny plik jest kwadratowy). */
  .hero__media{
    position:relative !important;inset:auto !important;
    width:100% !important;height:auto !important;
    aspect-ratio:1/1 !important;
    margin:0 !important;background:none !important;
    -webkit-mask-image:linear-gradient(to bottom,#000 0,#000 78%,rgba(0,0,0,.4) 92%,transparent 100%) !important;
    mask-image:linear-gradient(to bottom,#000 0,#000 78%,rgba(0,0,0,.4) 92%,transparent 100%) !important;
  }
  .hero__poster,
  .hero__video,
  .hero__video--square{
    position:absolute !important;inset:0 !important;
    width:100% !important;height:100% !important;
    object-fit:contain !important;       /* contain = nic nie ucinamy */
    object-position:center !important;
    aspect-ratio:auto !important;transform:none !important;filter:none !important;opacity:1 !important;
  }
  /* Bez ciemnej nakładki na wideo (całość ma być widoczna) */
  .hero__overlay{display:none !important}
  .hero__aurora{display:none !important}

  /* Koniec skakania slajdu */
  .hero__slide,
  .hero__slide.is-active,
  .hero [data-reveal]{
    animation:none !important;transition:none !important;
    transform:none !important;opacity:1 !important;
  }
  .hero__slider{display:grid !important;min-height:0 !important;height:auto !important;margin:0 !important}
  .hero__slide{grid-area:1/1;max-width:100% !important}
  .hero__slide:not(.is-active){visibility:hidden}
  .hero__slide.is-active{visibility:visible}

  /* Treść POD wideo, lekko wsunięta w górę by zachodziła na dolną krawędź */
  .hero__inner,
  .hero.hero--pelna .hero__inner{
    position:relative !important;z-index:5;
    height:auto !important;min-height:0 !important;
    width:min(1200px,92%) !important;margin:0 auto !important;
    display:flex !important;flex-direction:column !important;
    justify-content:flex-start !important;
    padding:0 0 2rem !important;
    margin-top:-2.5rem !important;       /* wsuwa tekst pod dolną krawędź wideo */
  }

  .hero__slide .eyebrow{margin-bottom:.4rem !important;min-height:0 !important}
  .hero__title{font-size:clamp(1.6rem,6vw,2.1rem) !important;line-height:1.14 !important;margin:.15rem 0 .55rem !important;min-height:0 !important}
  .hero__desc{font-size:.96rem !important;margin-bottom:1rem !important;min-height:0 !important;max-width:100% !important}
  .hero__cta{margin-top:.2rem !important;min-height:0 !important}
  .btn--lg{font-size:.95rem !important}

  .hero__dots{
    position:static !important;right:auto !important;bottom:auto !important;
    margin:1.2rem 0 0 !important;justify-content:flex-start !important;
  }
  .hero__scroll{display:none !important}

  .hero + #po-hero + .section,
  .hero + .section,
  #po-hero + .section{padding-top:3rem !important}
}

/* ============================================================
   HERO MOBILE — wideo tuż pod nagłówkiem (usunięcie szpary)
   Dopisz na SAMYM KOŃCU main.css (po poprzednim bloku hero-mobile).
   ============================================================ */
@media (max-width:760px){
  /* Zero górnego paddingu na hero — wideo startuje od samej góry sekcji.
     Header jest fixed i półprzezroczysty, więc lekko nachodzi na górę wideo. */
  .hero,
  .hero.hero--pelna,
  .hero--pelna,
  .hero--wysoka,
  .hero--srednia{
    padding-top: 30px !important;
    margin-top:0 !important;
  }
  .hero__media{margin-top:0 !important;top:0 !important}
  .hero__inner{margin-top:-2.5rem !important}   /* tekst zostaje wsunięty pod wideo jak było */
}

.icon--custom,
.icon--custom * {
  /* siłą nadpisuje fill/stroke każdego elementu, też tych z gradientem url(#...) */
  fill: var(--aqua-2) !important;
}
/* obrys (ikony konturowe) */
.icon--custom [stroke]:not([stroke="none"]) {
  stroke: var(--aqua-2) !important;
}
/* elementy celowo niewypełnione zostają puste */
.icon--custom [fill="none"] {
  fill: none !important;
}
/* gradient definicje – nieszkodliwe, ale ukrywamy ich wpływ przez fill powyżej */
.icon--custom linearGradient,
.icon--custom radialGradient,
.icon--custom stop { display: none; }

/* fallback <img> (gdyby kiedyś) */
.b2h-icon-mask { background-color: var(--aqua-2) !important; }
.sec-seo .entry-content img,
.post-body img,
.single-usluga .entry-content img,
.entry-content img{
  display:block !important;
  width:auto !important;
  max-width:600px !important;
  height:auto !important;
  margin:2em auto !important;
  border-radius:calc(var(--rad-lg) - 6px) !important;
  /* przestrzeń między ramką a zdjęciem = ramka rysowana paddingiem na samym img */
  padding:20px !important;
  border:1px solid var(--aqua-2) !important;
  background:rgba(45,212,191,.06) !important;   /* delikatne tło w odstępie */
  box-shadow:0 18px 50px rgba(0,0,0,.3) !important;
  -webkit-clip-path:none !important;clip-path:none !important;
  -webkit-mask:none !important;mask:none !important;
  filter:none !important;outline:0 !important;
  box-sizing:border-box !important;
  object-fit:cover;
}

.entry-content figure,
.post-body figure,
.sec-seo .entry-content figure{
  background:transparent !important;border:0 !important;
  box-shadow:none !important;padding:0 !important;
  margin:2em auto !important;border-radius:0 !important;
}
.entry-content figcaption{
  margin-top:.6rem;font-size:.85rem;color:rgba(255,255,255,.55);text-align:center;
}
html.b2h-loading,
html.b2h-loading body{overflow:hidden}
.b2h-loader{z-index:99999}