/* =============================================================
   BNI UNIA Lublin | bniunia.pl | szablon v2
   Jedna rodzina kroju: IBM Plex Sans. Hierarchia wyłącznie przez
   wielkość, grubość, kursywę i podkreślenie.
   ============================================================= */

@view-transition{navigation:auto}

:root{
  --ink:#14161A;
  --ink-2:#2E3238;
  --ink-3:#4B5158;
  --muted:#6B7178;   /* 4,93:1 na bieli, 4,56:1 na --mist */
  --red:#C8102E;
  --red-dark:#A00D25;
  --red-soft:#FDF3F5;
  --paper:#FFFFFF;
  --mist:#F5F6F7;
  --line:#E3E6E9;
  --line-strong:#C6CAD0;
  --btn-border:#3B4149;
  --dark:#15171B;
  --dark-2:#1E2126;
  --dark-line:#30343B;

  --font:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --fs-display:clamp(40px,5vw,66px);
  --fs-h2:clamp(30px,3.3vw,46px);
  --fs-h3:21px;
  --fs-lead:19px;
  --fs-body:16.5px;
  --fs-small:14px;

  --r-card:16px;
  --r-btn:10px;
  --r-pill:999px;
  --cut:48px;
  --cut-sm:26px;

  --wrap:1200px;
  --pad-x:40px;
  --sec-y:120px;

  --ease:cubic-bezier(.2,.7,.2,1);
  --ease-inout:cubic-bezier(.65,0,.35,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);
  font:400 var(--fs-body)/1.65 var(--font);-webkit-font-smoothing:antialiased}
img,video{display:block;max-width:100%}
h1,h2,h3,h4,p,figure,blockquote,ol,ul,dl,dd{margin:0}
ol,ul{padding:0;list-style:none}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
strong{font-weight:600}
::selection{background:var(--red);color:#fff}
:focus-visible{outline:2px solid var(--red);outline-offset:3px;border-radius:4px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad-x)}
.section{padding:var(--sec-y) 0}
.section--mist{background:var(--mist)}
.section--dark{background:var(--dark);color:#fff}
.section--line{border-top:1px solid var(--line)}

/* --- Typografia ---------------------------------------------- */
.display{font-size:var(--fs-display);font-weight:600;line-height:1.04;letter-spacing:-.032em}
.h2{font-size:var(--fs-h2);font-weight:600;line-height:1.1;letter-spacing:-.025em;text-wrap:balance}
.display em,.h2 em{font-style:italic;font-weight:500}
.h3{font-size:var(--fs-h3);font-weight:600;line-height:1.25;letter-spacing:-.01em}
.statement{font-size:clamp(26px,2.7vw,36px);font-weight:500;line-height:1.28;letter-spacing:-.018em;text-wrap:pretty}
.lead{font-size:var(--fs-lead);line-height:1.6;color:var(--ink-3);text-wrap:pretty}
.section--dark .lead{color:#B9C0C8}
.small{font-size:var(--fs-small);line-height:1.55;color:var(--muted)}
.section--dark .small{color:#9BA2AA}
.prose p+p{margin-top:1em}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:600;line-height:1}
.eyebrow::before{content:"";width:11px;height:11px;flex:none;background:var(--red);
  clip-path:polygon(0 0,100% 0,0 100%)}

/* Miejsce na tekst z PDF. Usunąć klasę po wpisaniu treści. */
.todo{font-size:15px;font-style:italic;line-height:1.6;color:#6B7178;
  border:1px dashed var(--line-strong);border-radius:10px;padding:10px 14px}
.section--dark .todo{border-color:#454A52;color:#8E959E}

/* Odstępy: jedna skala 8 / 16 / 24 / 32 / 48 / 64 */
.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}
.mt-4{margin-top:32px}.mt-5{margin-top:48px}.mt-6{margin-top:64px}

/* --- Linki: podkreślenie z animacją ----------------------------- */
.link{display:inline;font-weight:600;color:var(--ink);padding-bottom:3px;
  background:linear-gradient(currentColor,currentColor) 0 100%/100% 1.5px no-repeat}
.link:hover{animation:underline .75s var(--ease)}
.link--red{color:var(--red)}
.link--light{color:#fff}
@keyframes underline{
  0%{background-size:100% 1.5px;background-position:100% 100%}
  45%{background-size:0 1.5px;background-position:100% 100%}
  46%{background-size:0 1.5px;background-position:0 100%}
  100%{background-size:100% 1.5px;background-position:0 100%}}

/* --- Przyciski: prostokąt, zaokrąglenie 10 px, bez cieni -------- */
.btn{position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;
  justify-content:center;height:56px;padding:0 28px;border-radius:var(--r-btn);
  border:2px solid transparent;font-size:16px;font-weight:600;line-height:1;white-space:nowrap;
  transition:color .35s var(--ease),border-color .35s var(--ease)}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;transform:scaleY(0);transform-origin:bottom;
  transition:transform .5s var(--ease)}
.btn:hover::before{transform:scaleY(1)}
.btn--primary{background:var(--red);color:#fff}
.btn--primary::before{background:var(--red-dark)}
.btn--ghost{border-color:var(--btn-border);color:var(--ink)}
.btn--ghost::before{background:var(--ink)}
.btn--ghost:hover{color:#fff;border-color:var(--ink)}
.section--dark .btn--ghost,.page-head--dark .btn--ghost{border-color:#5A6068;color:#fff}
.section--dark .btn--ghost::before,.page-head--dark .btn--ghost::before{background:#fff}
.section--dark .btn--ghost:hover,.page-head--dark .btn--ghost:hover{color:var(--ink);border-color:#fff}
.btn--sm{height:46px;padding:0 20px;font-size:14.5px}
.btn--block{width:100%}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}

/* --- Tagi i chipy ----------------------------------------------- */
.tag{display:inline-flex;align-items:center;height:28px;padding:0 12px;border-radius:var(--r-pill);
  background:var(--mist);font-size:13px;font-weight:500;color:var(--ink-2)}
.tag--red{background:var(--red);color:#fff}
.chip{display:inline-flex;align-items:center;height:44px;padding:0 18px;border-radius:var(--r-pill);
  border:1.5px solid var(--line-strong);font-size:14.5px;font-weight:500;color:var(--ink-2);
  transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.chip:hover{border-color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}

/* --- Karty (akcent zawsze od góry) -------------------------------- */
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-card);padding:28px;
  transition:transform .6s var(--ease),border-color .3s,box-shadow .6s var(--ease)}
.card--top{border-top:3px solid var(--ink)}
.card--top-red{border-top:3px solid var(--red)}
.card--hover:hover{transform:translateY(-4px);border-color:var(--line-strong);
  box-shadow:0 28px 50px -34px rgba(20,22,26,.4)}

/* --- Kadry na zdjęcia i wideo ------------------------------------- */
.frame{display:block;position:relative;overflow:hidden;border-radius:14px;background:#E9ECEF}
.frame img,.frame video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform 1.4s var(--ease)}
.frame--cut{border-radius:22px;clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%)}
.frame--4x5{aspect-ratio:4/5}
.frame--4x3{aspect-ratio:4/3}
.frame--wide{aspect-ratio:21/9}
.avatar{position:relative;flex:none;border-radius:6px;overflow:hidden;background:#E9ECEF}
.avatar img{width:100%;height:100%;object-fit:cover}

/* =============================================================
   Animacje wejścia. Bez JS wszystko jest widoczne.
   ============================================================= */
.js [data-reveal]{opacity:0;transform:translateY(28px);
  transition:opacity .7s var(--ease),transform .7s var(--ease);
  transition-delay:calc(var(--i,0) * 60ms)}
.js [data-reveal].is-in{opacity:1;transform:none}
.js [data-reveal="fade"]{transform:none}

/* Nagłówek wjeżdża linia po linii */
.js [data-reveal="lines"]{opacity:1;transform:none}
.mask-line{display:block;overflow:hidden;padding-bottom:.06em}
.mask-line>span{display:block}
/* Regula musi byc zwiazana z [data-reveal], inaczej naglowek bez
   animacji zostaje zjechany o 110 procent poza swoj kadr i nigdy
   nie wraca, bo nie dostaje klasy is-in. */
.js [data-reveal] .mask-line>span{transform:translateY(110%);transition:transform .9s var(--ease)}
.js [data-reveal].is-in .mask-line>span{transform:none}
.js [data-reveal].is-in .mask-line:nth-child(2)>span{transition-delay:.12s}

/* Zdjęcie odsłaniane kurtyną i lekkim oddaleniem */
.js [data-reveal="image"]{opacity:1;transform:none}
.js [data-reveal="image"]::after{content:"";position:absolute;inset:0;z-index:2;background:var(--mist);
  transform-origin:top;transition:transform .9s var(--ease-inout);transition-delay:calc(var(--i,0) * 60ms)}
.js [data-reveal="image"].is-in::after{transform:scaleY(0)}
.js [data-reveal="image"] img{transform:scale(1.1)}
.js [data-reveal="image"].is-in img{transform:scale(1);transition:transform 1.2s var(--ease)}

/* Przejście między podstronami (View Transitions) */
::view-transition-old(root){animation:vt-out .3s var(--ease-inout) both}
::view-transition-new(root){animation:vt-in .6s var(--ease) both}
@keyframes vt-out{to{opacity:0;transform:translateY(-6px)}}
@keyframes vt-in{from{opacity:0;transform:translateY(10px)}}
.header{view-transition-name:header}

/* =============================================================
   Pasek ogłoszeń i nagłówek
   ============================================================= */
.announce{background:var(--red);color:#fff;font-size:14px}
.announce__in{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:42px;padding-top:8px;padding-bottom:8px}

.header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.4) blur(12px);
  transition:box-shadow .4s var(--ease)}
.header.is-scrolled{box-shadow:0 1px 0 var(--line),0 12px 30px -24px rgba(20,22,26,.3)}
.header__in{display:flex;align-items:center;justify-content:space-between;gap:28px;height:84px;
  transition:height .4s var(--ease)}
.header.is-scrolled .header__in{height:66px}
.logo{display:flex;align-items:center;gap:12px}
.logo__mark{display:grid;place-items:center;width:46px;height:46px;background:var(--red);color:#fff;
  font-size:15px;font-weight:700;letter-spacing:.02em;border-radius:10px;
  clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%)}
.nav{display:flex;align-items:center;gap:30px;font-size:15px;font-weight:500}
.nav a{position:relative;padding:6px 0;color:var(--ink-2);transition:color .3s}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--red);
  transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.nav a:hover,.nav a[aria-current="page"]{color:var(--ink)}
.nav a:hover::after,.nav a[aria-current="page"]::after{transform:scaleX(1);transform-origin:left}
.header__cta{display:flex;gap:10px}
.nav-toggle{display:none;width:46px;height:46px;border:2px solid var(--ink);border-radius:var(--r-btn);
  position:relative}
.nav-toggle span:not(.sr-only){position:absolute;left:12px;right:12px;height:2px;background:var(--ink);
  transition:transform .45s var(--ease)}
.nav-toggle span:nth-child(1){top:16px}
.nav-toggle span:nth-child(2){top:25px}
.header.is-open .nav-toggle span:nth-child(1){transform:translateY(4.5px) rotate(45deg)}
.header.is-open .nav-toggle span:nth-child(2){transform:translateY(-4.5px) rotate(-45deg)}

.mobile-bar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:120;background:#fff;
  border-top:1px solid var(--line);padding:10px 16px calc(10px + env(safe-area-inset-bottom));
  transform:translateY(110%);transition:transform .5s var(--ease)}
.mobile-bar.is-visible{transform:none}

/* =============================================================
   Hero: tekst + nagranie prezesa
   ============================================================= */
.hero{padding:72px 0 96px}
.hero__grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:72px;align-items:center}
.hero__copy{max-width:560px}
.hero__copy p+p{margin-top:14px}
.hero__facts{display:flex;flex-wrap:wrap;gap:12px 36px;padding-top:24px;border-top:1px solid var(--line);
  font-size:15px;color:var(--ink-3)}
.hero__facts strong{display:block;color:var(--ink)}

.video__play{position:absolute;inset:0;z-index:3;display:grid;place-items:center;
  transition:opacity .4s var(--ease)}
.video__icon{position:relative;display:grid;place-items:center;width:78px;height:78px;border-radius:16px;
  background:var(--red);transition:transform .5s var(--ease),background .3s}
.video__icon::before{content:"";width:22px;height:24px;margin-left:5px;background:#fff;
  clip-path:polygon(0 0,100% 50%,0 100%)}
.video__icon::after{content:"";position:absolute;inset:-10px;border-radius:22px;border:2px solid rgba(255,255,255,.85);
  animation:pulse 2.4s var(--ease) infinite}
.video__play:hover .video__icon{transform:scale(1.06);background:var(--red-dark)}
.video.is-playing .video__play{opacity:0;pointer-events:none}
@keyframes pulse{0%{opacity:.9;transform:scale(.9)}70%,100%{opacity:0;transform:scale(1.25)}}
.caption{margin-top:16px;font-size:var(--fs-small);line-height:1.5;color:var(--ink-3)}
.caption em{font-style:italic}

/* =============================================================
   Zdjęcie grupowe + wyniki
   ============================================================= */
/* Karta z liczbami wjezdzala ujemnym marginesem na zdjecie grupowe,
   ktore stalo nad nia. Zdjecie poszlo do hero, wiec karta zachodzila
   juz tylko na tekst i sekcje zazebialy sie o 76 px. Teraz kazda
   stoi w swoim miejscu, a granice wyznacza linia nad sekcja. */
.group{padding:var(--sec-y) 0;border-top:1px solid var(--line)}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  background:#fff;border:1px solid var(--line);border-radius:18px}
.stat{padding:30px 30px 32px}
.stat+.stat{box-shadow:inset 1px 0 0 var(--line)}
/* "1,55 mln zl" lamalo sie na dwie linie, przez co podpis tej jednej
   karty siedzial nizej niz w pozostalych. Skala dobrana tak, zeby
   najdluzsza wartosc miescila sie w jednym wierszu. */
.stat__num{font-size:clamp(26px,2.5vw,36px);font-weight:600;line-height:1.1;
  letter-spacing:-.03em;font-variant-numeric:tabular-nums;white-space:nowrap}
.stat__label{margin-top:12px;font-size:15px;line-height:1.4;color:var(--ink-3)}
.stats__note{margin:18px 0 0}

/* =============================================================
   Nagłówek sekcji
   ============================================================= */
.section-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px 48px}
.section-head .h2{margin-top:18px}

/* Wydarzenia */
.grid{display:grid;gap:24px}
.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.event{display:flex;flex-direction:column;gap:14px}
.event__date{display:flex;align-items:baseline;gap:12px}
.event__day{font-size:40px;font-weight:600;line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.event__actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:auto;padding-top:10px}

/* O grupie */
.about{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.2fr);gap:48px}
.pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.pillars li{padding-top:20px;border-top:2px solid var(--ink)}
.pillars__no{font-size:14px;font-weight:600;color:var(--red)}
.pillars .h3{margin-top:10px}
.pillars .todo{margin-top:12px}

/* Skład grupy */
.members{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:36px 20px}
.member{display:block}
.member__name{display:block;margin-top:14px;font-size:16px;font-weight:600;line-height:1.3}
.member__branch{display:block;margin-top:4px;font-size:14px;line-height:1.45;color:var(--muted)}
/* Plakietka roli na dolnej krawędzi zdjęcia (na tle cienia), żeby nie zasłaniała twarzy */
.member__role{position:absolute;left:10px;bottom:10px;z-index:3;display:inline-flex;align-items:center;height:24px;
  padding:0 9px;border-radius:var(--r-pill);background:#fff;color:var(--ink);font-size:12.5px;font-weight:600;line-height:1;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.member .frame:has(.member__role)::after{content:"";position:absolute;inset:auto 0 0 0;height:30%;z-index:2;pointer-events:none;
  background:linear-gradient(to top,rgba(20,22,26,.55),rgba(20,22,26,0))}
.member__role--red{background:var(--red);color:#fff}
.member:hover .frame>img{transform:scale(1.05)}
.member:hover .member__name{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1.5px}

/* Szukamy branż */
.seek{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:72px;align-items:start}
.seek__list li{display:grid;grid-template-columns:minmax(0,1fr);align-items:baseline;
  padding:18px 0;border-bottom:1px solid var(--dark-line);font-size:20px;font-weight:500;
  transition:padding .5s var(--ease),color .3s}
.seek__list li:first-child{border-top:1px solid var(--dark-line)}
.seek__list li:hover{padding-left:10px}
.seek__no{font-size:14px;font-weight:600;color:#FF8A9C;font-variant-numeric:tabular-nums}

/* Spotkanie */
.meeting{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:72px;align-items:start}
.meeting__media{position:sticky;top:104px}
.agenda li{display:grid;grid-template-columns:76px minmax(0,1fr);gap:16px;padding:16px 0;
  border-bottom:1px solid var(--line);font-size:17px}
.agenda li:first-child{border-top:1px solid var(--line)}
.agenda time{font-weight:600;color:var(--red);font-variant-numeric:tabular-nums}
.guest li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;align-items:start}
.guest li+li{margin-top:12px}
.guest b{font-weight:600;color:var(--red);font-size:14px;line-height:1.9}

.slideshow__item{position:absolute;inset:0;opacity:0;transition:opacity 1.2s var(--ease)}
.slideshow__item.is-active{opacity:1}
.slideshow__item img{transform:scale(1.08);transition:transform 7s linear}
.slideshow__item.is-active img{transform:scale(1)}
.dots{display:flex;gap:8px}
.dots button{position:relative;overflow:hidden;width:34px;height:4px;border-radius:2px;background:var(--line-strong)}
.dots button::after{content:"";position:absolute;inset:0;background:var(--red);transform:scaleX(0);transform-origin:left}
.dots button[aria-current="true"]::after{transform:scaleX(1);transition:transform 5s linear}

/* Droga do członkostwa: linia rysuje się przy wejściu */
.steps{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}
.steps::before,.steps::after{content:"";position:absolute;top:22px;left:0;right:0;height:2px;background:var(--line-strong)}
.steps::after{background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform 1.8s var(--ease-inout) .2s}
.steps.is-in::after,.no-js .steps::after{transform:scaleX(1)}
.js .steps[data-reveal]{opacity:1;transform:none}
.steps li{position:relative;z-index:1}
.steps__no{display:grid;place-items:center;width:46px;height:46px;border-radius:12px;background:var(--mist);
  border:2px solid var(--ink);font-size:17px;font-weight:600}
.steps .h3{margin-top:20px;font-size:19px}
.steps .todo{margin-top:12px}

/* Historie */
.quote{display:flex;flex-direction:column;gap:24px}
.quote blockquote{font-size:21px;font-style:italic;line-height:1.5}
.quote figcaption{display:flex;align-items:center;gap:14px;margin-top:auto}
.quote figcaption strong{display:block;font-size:15px}

/* FAQ z płynnym rozwijaniem */
.faq-wrap{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:72px;align-items:start}
.faq{border-bottom:1px solid var(--line);interpolate-size:allow-keywords}
.faq:first-child{border-top:1px solid var(--line)}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 0;
  font-size:18px;font-weight:600;cursor:pointer;list-style:none;transition:color .3s}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--red)}
.faq__icon{position:relative;flex:none;width:16px;height:16px}
.faq__icon::before,.faq__icon::after{content:"";position:absolute;left:0;right:0;top:7px;height:2px;background:currentColor;
  transition:transform .5s var(--ease)}
.faq__icon::after{transform:rotate(90deg)}
.faq[open] .faq__icon::after{transform:rotate(0)}
.faq::details-content{block-size:0;overflow:hidden;
  transition:block-size .55s var(--ease),content-visibility .55s allow-discrete}
.faq[open]::details-content{block-size:auto}
.faq p{padding:0 40px 26px 0;color:var(--ink-3);max-width:640px}

/* =============================================================
   Formularze
   ============================================================= */
.signup{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:32px;align-items:start}
.form-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:12px}
.tabs{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:6px;
  background:var(--mist);border-radius:12px}
.tabs__ink{position:absolute;top:6px;bottom:6px;left:6px;width:calc((100% - 12px) / 3);border-radius:9px;
  background:var(--ink);transition:transform .55s var(--ease)}
.tab{position:relative;z-index:1;height:50px;border-radius:9px;font-size:15px;font-weight:600;color:var(--ink-3);
  transition:color .4s var(--ease)}
.tab[aria-selected="true"]{color:#fff}
.form{display:grid;gap:20px;padding:28px 20px 24px}
.form[hidden]{display:none}
.form:not([hidden]){animation:panel-in .6s var(--ease)}
@keyframes panel-in{from{opacity:0;transform:translateY(10px)}}
.field{display:grid;gap:8px}
.field>span{font-size:14px;font-weight:600}
input[type=text],input[type=tel],input[type=email],select,textarea{width:100%;font:400 16px/1.5 var(--font);color:var(--ink);
  background:#fff;border:1.5px solid var(--line-strong);border-radius:var(--r-btn);padding:13px 16px;
  transition:border-color .3s,box-shadow .3s}
input[type=text],input[type=tel],input[type=email],select{height:54px}
textarea{resize:vertical}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--ink);box-shadow:0 0 0 4px rgba(200,16,46,.12)}
.consent{display:flex;gap:12px;font-size:14px;line-height:1.5;color:var(--ink-3)}
.consent input{width:18px;height:18px;margin-top:1px;accent-color:var(--red);flex:none}
.consent a{text-decoration:underline;text-underline-offset:3px}
.notice{border:1px solid #E7B9C0;background:var(--red-soft);border-radius:var(--r-btn);padding:12px 14px;
  font-size:14px;line-height:1.55;color:#8E1226}
.form--plain{border:1px solid var(--line);border-radius:18px;padding:32px;background:#fff}

/* =============================================================
   Stopka
   ============================================================= */
.footer{background:var(--dark);color:#fff}
.footer__in{padding-top:80px;padding-bottom:40px}
.footer__grid{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,.6fr));gap:40px}
.footer__tag{margin-top:28px;font-size:28px;font-weight:600;line-height:1.2;letter-spacing:-.02em}
.footer__tag em{font-style:italic;font-weight:500}
.footer h4{font-size:14px;font-weight:600;color:#8E959E}
.footer__links{display:grid;gap:10px;margin-top:16px;font-size:15px;color:#C3C9D0}
.footer__links a{transition:color .3s}
.footer__links a:hover{color:#fff}
.legal{margin-top:64px;padding-top:24px;border-top:1px solid var(--dark-line);font-size:13px;color:#7B828A}

/* =============================================================
   Podstrony
   ============================================================= */
.page-head{padding:88px 0 64px;border-bottom:1px solid var(--line)}
.page-head .display{font-size:clamp(36px,4.2vw,56px)}
.page-head--dark{background:var(--dark);color:#fff;border-bottom:0}
.page-head--dark .lead{color:#B9C0C8}
.filters{display:flex;flex-wrap:wrap;gap:10px}
.member[hidden]{display:none}
.profile-head{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr) minmax(0,200px);gap:48px;align-items:start}
.facts-list div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:15px}
.facts-list dt{color:var(--muted)}
.doc{max-width:760px}
.doc h2{font-size:22px;font-weight:600}

/* =============================================================
   Responsywność. Mobile first w implementacji.
   ============================================================= */
@media (max-width:1150px){
  .nav,.header__cta{display:none}
  .nav-toggle{display:inline-block}
  .nav{position:absolute;top:100%;left:0;right:0;display:grid;gap:4px;padding:16px var(--pad-x) 24px;
    background:#fff;border-bottom:1px solid var(--line);font-size:18px;
    opacity:0;transform:translateY(-8px);pointer-events:none;transition:opacity .35s var(--ease),transform .45s var(--ease)}
  .nav a{padding:10px 0}
  .header.is-open .nav{opacity:1;transform:none;pointer-events:auto}
  .mobile-bar{display:block}
  .members{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:860px){
  :root{--pad-x:20px;--sec-y:80px;--cut:32px;--cut-sm:20px;--fs-lead:17.5px}
  .announce__in{flex-direction:column;align-items:flex-start;gap:4px}
  .hero{padding:40px 0 64px}
  .hero__grid,.about,.seek,.meeting,.faq-wrap,.signup,.profile-head{grid-template-columns:minmax(0,1fr);gap:40px}
  .meeting__media{position:static}
  .grid--2,.grid--3,.pillars,.steps{grid-template-columns:minmax(0,1fr)}
  .steps::before,.steps::after{display:none}
  .members{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 14px}
  .frame--wide{aspect-ratio:4/3}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat{padding:22px 20px}
  .stat:nth-child(3){box-shadow:inset 0 1px 0 var(--line)}
  .stat:nth-child(4){box-shadow:inset 1px 0 0 var(--line),inset 0 1px 0 var(--line)}
  .stats__note{margin:14px 0 0}
  .event-row{grid-template-columns:minmax(0,1fr);gap:16px}
  .tab{font-size:13.5px;height:54px;line-height:1.2;padding:0 6px}
  .footer__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .footer__grid>div:first-child{grid-column:1/-1}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;
    transition-duration:.01ms !important;transition-delay:0s !important}
  .js [data-reveal]{opacity:1;transform:none}
  .js .mask-line>span,.js [data-reveal="image"] img{transform:none}
  .js [data-reveal="image"]::after{display:none}
  .steps::after{transform:scaleX(1)}
}

/* =============================================================
   DODATKI WDROZENIOWE
   Tylko zmienne z :root. Bez nowych kolorow i krojow.
   ============================================================= */

/* --- Zastepnik zdjecia: inicjaly zamiast portretu.
       Do czasu sesji zdjeciowej grupy. Jasny kafel z czerwonym
       scieciem naroznika, tym samym co w znaku BNI. ------------ */
.portrait{display:flex;align-items:center;justify-content:center;
  background:var(--mist);border:1px solid var(--line)}
.portrait::after{content:"";position:absolute;top:0;right:0;width:20px;height:20px;z-index:2;
  background:var(--red);clip-path:polygon(100% 0,100% 100%,0 0)}
.avatar.portrait::after{display:none}
.portrait__initials{font-size:clamp(20px,3.4vw,30px);font-weight:600;line-height:1;
  letter-spacing:-.01em;color:var(--ink-2)}
.avatar .portrait__initials{font-size:17px}

/* --- Pulapka na boty. Niewidoczne, ale nie display:none. ----- */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* --- Komunikat pod formularzem ------------------------------- */
.form-status{font-size:var(--fs-small);line-height:1.55;color:var(--ink-3);
  border:1px solid var(--line);border-top:3px solid var(--red);
  border-radius:var(--r-btn);padding:14px 16px}
.form-status:empty{display:none}
.form-status--error{color:#8E1226;background:var(--red-soft);border-color:#E7B9C0}

/* --- Ekran potwierdzenia po wyslaniu ------------------------- */
.form-done{display:grid;gap:16px;padding:32px 20px 28px;border-top:3px solid var(--red);
  animation:panel-in .6s var(--ease)}

/* --- Filtr bez wynikow: zamiast pustej strony --------------- */
.members-empty{padding:48px 0;text-align:center;color:var(--muted)}
.members-empty[hidden]{display:none}

/* --- Zdanie "jak pomagam" na karcie czlonka ------------------ */

/* Kafel inicjalow w kadrze ze scietym naroznikiem: samo sciecie
   niesie juz znak, wiec czerwony trojkat bylby jego powtorzeniem. */
.frame--cut.portrait::after{display:none}

/* Szukamy branz: uzasadnienie pod nazwa branzy ma byc lzejsze
   niz sama nazwa, ktora dziedziczy grubosc z listy. */
.seek__list li .small{font-weight:400}

/* =============================================================
   POPRAWKI PO KONTROLI W PRZEGLADARCE
   Kazda pozycja naprawia zmierzony problem, nie przypuszczenie.
   ============================================================= */

/* --- Profil czlonka: trzy kolumny nie zwijaly sie na telefonie
       i wymuszaly poziome przewijanie (395 px przy ekranie 390). -- */

/* --- Cele dotykowe (WCAG 2.2, kryterium 2.5.8) ----------------
       Paski autopokazu maja 34x4 px, a checkbox zgody 18x18 px.
       Powiekszamy obszar dotyku, nie zmieniajac wygladu. */
.dots button{position:relative}
.dots button::before{content:"";position:absolute;left:0;right:0;top:-14px;bottom:-14px}
.consent input{width:24px;height:24px;margin-top:0}
.consent{align-items:flex-start;gap:12px}

/* --- Pole-pulapka nie moze wpadac w obliczenia szerokosci ----- */
.hp{position:absolute;left:-9999px;top:0;width:1px;height:1px;overflow:hidden}

/* --- Profil czlonka: tresc szersza niz kolumna faktow.
       Proporcje siedzialy w atrybucie style="", przez co mialy wyzsza
       specyficznosc niz media query i kolumny nie zwijaly sie na
       telefonie (395 px przy ekranie 390). Jako klasa zwijaja sie. --- */
.meeting--profil{grid-template-columns:minmax(0,1.4fr) minmax(0,.6fr);gap:56px}

/* --- Pola "do uzupelnienia" na ciemnym tle tez musza spelniac AA.
       Mialy 3,64:1. --- */
.section--dark .todo,.page-head--dark .todo{color:#A8AFB7;border-color:#4A4F57}

/* Profil ma dwie kolumny, nie trzy: kod QR wrocil do kolumny z faktami.
   Regula musi siedziec w min-width, bo stoi w pliku PO media queries
   i bez tego nadpisywalaby zwijanie kolumn na telefonie. */

/* =============================================================
   SEKCJA "O GRUPIE"
   Byla siatka 1fr / 2.2fr, w ktorej lewa kolumna trzymala sam
   nadtytul. Dwie trzecie ekranu zostawaly puste, a etykieta wisiala
   samotnie obok tresci. Teraz uklad jak w pozostalych sekcjach:
   nadtytul nad trescia, tekst ograniczony do czytelnej dlugosci wiersza.
   ============================================================= */
.about{display:block}
.about > .eyebrow{margin-bottom:28px}
.about .statement{max-width:19em}
.about .lead{max-width:42em}

/* --- Portrety czlonkow: twarze siedza w gornej czesci kadru,
       wiec kadrujemy powyzej srodka. --- */
.member .frame img{object-position:center 22%}

/* --- Kod QR wizytowki na profilu --- */
.qr-code{width:100%;max-width:220px;height:auto;border:1px solid var(--line);
  border-radius:12px;background:#fff;padding:10px}

/* Czesc portretow ma przezroczyste tlo. Ciemna podkladka zamiast
   jasnej szarosci, zeby pasowaly do reszty studyjnych zdjec. */
.member .frame{background:var(--dark)}

/* Liczby w wynikach grupy: na telefonie kolumna ma okolo 170 px,
   wiec skala musi zejsc nizej, inaczej kwota lamie sie na dwie linie. */

/* Naglowek jest przyklejony, wiec skok do kotwicy chowal poczatek
   sekcji pod nim. Odsuwamy cel przewijania o wysokosc naglowka. */
:target,section[id],.faq{scroll-margin-top:96px}

/* Kafelek produktu na profilu czlonka */
.product{display:block}
.product__logo{width:auto;max-width:100%;height:30px;object-fit:contain}

/* =============================================================
   HERO NA TELEFONIE
   Zdjecie grupowe plus pasek twarzy zajmowaly caly pierwszy ekran,
   przez co naglowek ladowal poza nim. Nizszy kadr i ciasniejsze
   odstepy przywracaja zdanie "Budujemy biznes na relacjach"
   na pierwszy ekran.
   ============================================================= */

/* Na duzym ekranie zdjecie i pasek twarzy spychaly naglowek ponizej
   krawedzi. Ciasniejsze odstepy w hero przywracaja go do widoku. */

/* =============================================================
   RESPONSYWNOSC DODATKOW
   Wszystkie progi w jednym miejscu, zamiast rozsypanych blokow.
   ============================================================= */
@media (max-width:1100px){
  .profile-head{grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:32px}
  .profile-head > aside{grid-column:1/-1}
}
@media (max-width:860px){
  .portrait__initials{font-size:26px}
  .meeting--profil{grid-template-columns:minmax(0,1fr);gap:40px}
  .stat__num{font-size:28px}
  :target,section[id],.faq{scroll-margin-top:84px}
  .hero{padding:24px 0 56px}
  .hero .frame--wide{aspect-ratio:16/10}
  .hero__grid{margin-top:32px;gap:32px}
}
@media (max-width:760px){
  .profile-head{grid-template-columns:minmax(0,1fr);gap:28px}
}
@media (max-width:520px){
  .hero .frame--wide{aspect-ratio:3/2}
}
@media (min-width:861px){
  .profile-head{grid-template-columns:minmax(0,280px) minmax(0,1fr)}
  .hero{padding:40px 0 80px}
  .hero .hero__grid{margin-top:44px}
}

/* Sekcja wynikow: karta z liczbami stala bez naglowka, w odroznieniu
   od kazdej innej sekcji na stronie. Naglowek plus ciasniejsze odstepy
   robia z niej normalna sekcje, a nie zawieszona ramke. */
.group{padding:80px 0}
.group .stats{box-shadow:0 18px 40px -34px rgba(20,22,26,.35)}
.group .stats__note{margin-top:20px}
@media (max-width:860px){
  .group{padding:56px 0}
}

/* Kadr zdjecia grupowego dopasowany do proporcji samego zdjecia
   (1280x581), takze na telefonie. Kazde inne proporcje przycinaly
   je po bokach albo w pionie, a na zdjeciu grupowym nikt nie moze
   wypasc. Na malym ekranie twarze sa drobne, ale od rozpoznawania
   ludzi jest siatka czlonkow nizej. */
.hero .frame--wide{aspect-ratio:1280/581}

/* =============================================================
   MODERNIZACJA 04.10.2026 (audyt strony 30.09 + mail 24.09)
   ============================================================= */

/* --- Czerwone CTA bez ciemnego obrysu (mail 24.09, pkt 4).
       Ramka ma kolor przycisku, także po najechaniu i w fokusie. --- */
.btn--primary{border-color:var(--red)}
.btn--primary:hover{border-color:var(--red-dark)}

/* --- Logo grupy (profil FB, rollup): BNI, pod spodem UNIA ------ */
.logo__img{display:block;width:auto;height:60px;transition:height .4s var(--ease)}
.header.is-scrolled .logo__img{height:50px}
.logo--footer .logo__img{height:72px}

/* --- Ikony mediów grupy ----------------------------------------- */
.announce__links{display:flex;align-items:center;gap:6px}
.announce__links .link{margin-left:10px}
.social-link{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:8px;
  transition:background .3s var(--ease),color .3s var(--ease)}
.social-link svg{width:17px;height:17px}
.social-link--light{color:#fff}
.social-link--light:hover{background:rgba(255,255,255,.16)}
.social-link--dark{width:40px;height:40px;color:#C3C9D0;border:1px solid var(--dark-line)}
.social-link--dark:hover{color:#fff;border-color:#5A6068}
.footer__social{display:flex;gap:10px;margin-top:24px}

/* --- Hero: zdjęcie grupowe, pod nim hasło i zaproszenie -------- */
.hero .frame--wide.hero__photo{aspect-ratio:2/1}
.hero__photo img{object-position:center 30%}
@media (min-width:861px){ .hero .frame--wide.hero__photo{aspect-ratio:2.7/1} }
.hero .hero__grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:start;gap:56px}
.hero__side .lead{max-width:30em}
@media (min-width:861px){ .hero .hero__grid{margin-top:36px} .hero{padding-top:28px} }
@media (max-width:860px){
  .hero .hero__grid{grid-template-columns:minmax(0,1fr);gap:28px}
}

/* --- Rytm akapitów (mail 24.09, pkt 3): jeden odstęp dla
       kolejnych akapitów w treści, zamiast przypadkowych marginesów. --- */
.who__text p+p,.values-head p+p,.faq p+p,.profile-body p+p{margin-top:16px}
.statement+.lead{margin-top:20px}

/* --- Skład grupy: „Czytaj o mnie” czerwonym tekstem ----------- */
.member__more{display:inline-block;margin-top:10px;font-size:14px;font-weight:600;color:var(--red);
  border-bottom:1.5px solid currentColor;padding-bottom:1px}
.member:hover .member__more{color:var(--red-dark)}
.member .frame img{object-position:center 18%}

/* --- Kim jesteśmy + nagranie prezesa --------------------------- */
.who{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:72px;align-items:start}
.who__text .statement{max-width:20em}
.who__text .lead{max-width:36em}
.video__head{display:grid;gap:6px;margin-bottom:18px}
.video__head .small{max-width:28em}
.follow{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px}
.follow__link{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 14px;border-radius:var(--r-btn);
  border:1.5px solid var(--line-strong);font-size:15px;font-weight:600;color:var(--ink);
  transition:border-color .3s var(--ease),background .3s var(--ease)}
.follow__link svg{width:17px;height:17px;color:var(--red)}
.follow__link:hover{border-color:var(--ink)}

/* --- Nasze wartości: ikona i wartość (audyt 30.09) ------------- */
.values-head{max-width:46em;padding-top:40px;border-top:1px solid var(--line)}
.values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 32px;list-style:none;padding:0}
.values--compact{grid-template-columns:repeat(6,minmax(0,1fr));gap:28px 20px}
.values--compact .values__title{font-size:16.5px}
.values li{display:grid;align-content:start;gap:10px}
.values__icon{width:40px;height:40px;padding:8px;border-radius:12px;background:var(--red-soft);
  fill:none;stroke:var(--red);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.values__title{margin-top:6px;font-size:18px;font-weight:600;line-height:1.3}
.values p{font-size:15.5px;line-height:1.6;color:var(--ink-3)}

/* --- Dla kogo mamy biznes: lista bez numerów, bo to nie kolejność --- */
.seek__note .link{margin-left:4px}

/* --- Spotkanie: wskazówki dla gościa w karcie obok programu ---- */
.guest-box{position:sticky;top:104px;background:var(--mist);border-radius:var(--r-card);padding:36px;
  border-top:3px solid var(--red)}
.guest b{font-variant-numeric:tabular-nums}

/* --- Spotkania w obiektywie: przesuwany pas zdjęć + powiększenie
       (zdjęcia i kolejność z panelu, content/strona.json) ---------- */
.slider{--edge:max(var(--pad-x),calc((100% - var(--wrap)) / 2 + var(--pad-x)))}
.slider__track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;
  padding:0 var(--edge) 6px;scroll-padding-inline:var(--edge);scrollbar-width:none;
  overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.slider__track::-webkit-scrollbar{display:none}
.slider__track:focus-visible{outline:2px solid var(--red);outline-offset:4px}
.slider__item{flex:none;height:400px;aspect-ratio:var(--ar,1.5);margin:0;scroll-snap-align:start;
  border-radius:14px;overflow:hidden;background:#E9ECEF}
.slider__open{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in}
.slider__open img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.slider__open:hover img{transform:scale(1.03)}
.slider__open:focus-visible{outline:3px solid var(--red);outline-offset:-3px}
.slider__nav{display:flex;align-items:center;gap:10px}
.slider__count{min-width:4.5em;text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}
.slider__count b{color:var(--ink);font-weight:600}
.slider__btn{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;
  border:1.5px solid var(--line-strong);background:#fff;color:var(--ink);cursor:pointer;
  transition:border-color .3s var(--ease),background .3s var(--ease),opacity .3s}
.slider__btn svg,.lightbox__btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.slider__btn:hover:not(:disabled){border-color:var(--ink)}
.slider__btn:disabled{opacity:.35;cursor:default}
.slider__foot{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 24px}

.lightbox{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;
  background:rgba(12,13,16,.94);color:#fff;overflow:hidden}
.lightbox[open]{display:grid;place-items:center}
.lightbox::backdrop{background:rgba(12,13,16,.94)}
.lightbox__img{max-width:min(92vw,1600px);max-height:calc(100dvh - 140px);width:auto;height:auto;border-radius:10px}
.lightbox__cap{position:absolute;left:24px;right:24px;bottom:22px;text-align:center;color:#C9CCD1}
.lightbox__btn{position:absolute;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;
  border:1.5px solid rgba(255,255,255,.28);background:rgba(20,22,26,.6);color:#fff;cursor:pointer}
.lightbox__btn:hover{border-color:#fff}
.lightbox__close{top:18px;right:18px}
.lightbox__prev{left:18px;top:50%;transform:translateY(-50%)}
.lightbox__next{right:18px;top:50%;transform:translateY(-50%)}

/* --- Opinie: kadr avatara na twarz ---------------------------- */
.quote .avatar img{object-position:center 18%}

@media (max-width:1100px){
  .values{grid-template-columns:repeat(2,minmax(0,1fr))}
  .values--compact{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:860px){
  .who{grid-template-columns:minmax(0,1fr);gap:40px}
  .who__video{max-width:420px}
  .guest-box{position:static;padding:28px}
  .slider__item{height:300px}
  .slider__track{gap:10px}
  .slider__btn{width:44px;height:44px}
  .slider__count{min-width:0;text-align:left}
  .lightbox__prev,.lightbox__next{top:auto;bottom:64px;transform:none}
  .announce__links .social-link{display:none}
  .announce__links .link{margin-left:0}
}
@media (max-width:520px){
  .logo__img,.header.is-scrolled .logo__img{height:48px}
}

/* --- Profil członka (audyt 30.09): logo, ikony kontaktu,
       rozwijane „Czytaj o mnie” --------------------------------- */
.profile-logo{display:grid;gap:18px;justify-items:start;align-content:start;padding:24px;
  border:1px solid var(--line);border-radius:var(--r-card);background:#fff}
.profile-logo img{display:block;width:auto;max-width:100%;max-height:72px;object-fit:contain}
.contact-icons{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0}
.contact-icons a{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 14px;
  border:1.5px solid var(--line-strong);border-radius:var(--r-btn);font-size:15px;font-weight:600;color:var(--ink);
  transition:border-color .3s var(--ease)}
.contact-icons a:hover{border-color:var(--ink)}
.contact-icons svg{width:18px;height:18px;flex:none;color:var(--red)}
.more{border-top:1px solid var(--line);border-bottom:1px solid var(--line);interpolate-size:allow-keywords}
.more summary{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 0;
  font-size:18px;font-weight:600;color:var(--red);cursor:pointer;list-style:none}
.more summary::-webkit-details-marker{display:none}
.more__list{display:grid;gap:22px;padding:4px 0 28px}
.more__list dt{font-size:14px;font-weight:600;color:var(--muted)}
.more__list dd{margin-top:6px;font-size:16.5px;line-height:1.65;color:var(--ink-2);max-width:40em}
@media (min-width:1101px){
  .profile-head{grid-template-columns:minmax(0,280px) minmax(0,1fr) minmax(0,240px)}
}
.more[open] .faq__icon::after{transform:rotate(0)}
.more::details-content{block-size:0;overflow:hidden;transition:block-size .5s var(--ease),content-visibility .5s allow-discrete}
.more[open]::details-content{block-size:auto}

/* Skład grupy na stronie głównej: 6 kolumn na dużym ekranie,
   o jeden rząd krócej (mail 24.09: strona za długa). */
@media (min-width:1101px){
  #czlonkowie .members{grid-template-columns:repeat(6,minmax(0,1fr));gap:32px 18px}
  #czlonkowie .member__branch{font-size:13.5px}
}
.members-ask{font-size:17px;font-weight:500}

/* --- Poprawki po recenzji 04.10 ---------------------------------- */
/* Siatka składu: więcej kolumn na tablecie, żeby skład nie zajmował
   kilku ekranów (recenzja UX: 4500 px przy 768). */
@media (max-width:1100px) and (min-width:861px){ .members{grid-template-columns:repeat(4,minmax(0,1fr))} }
@media (max-width:860px) and (min-width:521px){ .members{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 14px} }
/* Podstrona członków: 4 kolumny, 16 osób = 4 równe rzędy */
@media (min-width:1101px){ [data-shuffle].members{grid-template-columns:repeat(4,minmax(0,1fr))} }

/* Dwa najbliższe spotkania bez pustej trzeciej kolumny */
.events-2{max-width:820px}

/* Profil: wartości w „O firmie” wyrównane tak samo */
.facts-list dd{text-align:right}
.facts-list div{align-items:baseline}

/* Stopka: śródtytuły jako akapity, bez skoku h1→h4 */
.footer__h{font-size:14px;font-weight:600;color:#8E959E}

/* Profil na telefonie: mniejsze zdjęcie, ikony kontaktu wyżej */
@media (max-width:760px){
  .profile-head > .frame{max-width:240px}
}

/* Menu na telefonie: zaproszenie na dole listy */
.nav__cta{display:none}
@media (max-width:1150px){
  .footer{padding-bottom:78px}
  .nav .nav__cta{display:inline-flex;margin-top:12px;color:#fff;padding:0 20px}
  .nav .nav__cta::after{display:none}
}

@media (prefers-reduced-motion:reduce){
  .more::details-content,.faq::details-content{transition:none}
  .slider__open img,.logo__img{transition:none}
}
/* Kurtyna zdjęcia zawsze w obrębie elementu: bez position ::after
   rozciągał się na całą stronę i zasłaniał ją do 3 s po wejściu. */
.js [data-reveal="image"]{position:relative}

/* =============================================================
   TELEFON (≤520 px), recenzja 04.10: strona główna miała 21 ekranów
   ============================================================= */
@media (max-width:520px){
  /* Skład grupy: przewijany w bok pas kart zamiast 8 rzędów */
  #czlonkowie .members{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;
    margin:0 calc(-1 * var(--pad-x));padding:0 var(--pad-x) 10px;scrollbar-width:none;
    -webkit-overflow-scrolling:touch}
  #czlonkowie .members{scroll-padding-inline:var(--pad-x)}
  #czlonkowie .members::-webkit-scrollbar{display:none}
  #czlonkowie .member{flex:0 0 44%;scroll-snap-align:start}
  #czlonkowie .members-swipe{display:block}

  /* Wartości w dwóch kolumnach */
  .values{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px}
  .values p{font-size:14.5px}

  /* Podstrona członków: filtry w jednym przewijanym rzędzie, bez opisów na kartach */
  .filters{flex-wrap:nowrap;overflow-x:auto;margin:28px calc(-1 * var(--pad-x)) 0;padding:0 var(--pad-x) 6px;scrollbar-width:none}
  .filters::-webkit-scrollbar{display:none}
  .filters .chip{flex:none}
  [data-shuffle] .member p.small{display:none}

  /* Profil: mniejsze zdjęcie i logo w jednym niskim pasku */
  .profile-head > .frame{max-width:200px}
  .profile-logo{display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:12px 16px}
  .profile-logo img{max-height:36px}
}
.members-swipe{display:none;margin-top:10px;font-size:14px;color:var(--muted)}

/* --- Punkty BNI: zaproszenie do kalkulatora (/punkty) -------- */
.punkty-band{background:var(--dark);color:#fff;padding:56px 0}
.punkty-band__in{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:32px;align-items:center}
.punkty-band__lights{display:grid;gap:10px;padding:14px 12px;border-radius:999px;background:#0d0e11}
.punkty-band__lights i{display:block;width:22px;height:22px;border-radius:50%;background:#1E7B34}
.punkty-band__lights i:nth-child(2){background:#F5C400}.punkty-band__lights i:nth-child(3){background:#CC0000}
.punkty-band .h2{color:#fff;margin-top:10px}
.punkty-band .lead{color:#C9CCD1;margin-top:10px;max-width:42em}
.punkty-band .eyebrow{color:#ff8fa1}
@media (max-width:860px){
  .punkty-band{padding:44px 0}
  .punkty-band__in{grid-template-columns:minmax(0,1fr);gap:20px}
  .punkty-band__lights{grid-auto-flow:column;justify-self:start}
  .punkty-band .btn{justify-self:start}
}

/* --- Kogo szukamy: prośby członków (panel → czlonkowie.json) ---- */
.szukamy__list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.szukamy__list li{background:#fff;border:1px solid var(--line);border-radius:var(--r-card);padding:18px 20px;border-top:3px solid var(--red)}
.szukamy__who{display:grid;gap:2px;margin-bottom:8px}
.szukamy__who b{font-size:16px}.szukamy__who span{font-size:13.5px;color:var(--muted)}
.szukamy__list p{font-size:15.5px;line-height:1.55;color:var(--ink-2)}
.szukam{background:var(--red-soft);border-radius:var(--r-card);padding:22px 24px;border-left:4px solid var(--red)}

/* Rolka 9:16 w „Kim jesteśmy” i sekcja relacji nad składem grupy (21.10) */
.frame--9x16{aspect-ratio:9/16}
.who__video .frame--9x16{max-width:360px}
.relacje{display:grid;grid-template-columns:minmax(0,.62fr) minmax(0,1.38fr);gap:64px;align-items:center}
.relacje__photo{max-width:380px}
.relacje__photo img{object-position:center 25%}
.relacje .display{font-size:clamp(34px,4.4vw,60px)}
.relacje__side .lead{max-width:32em}
@media (max-width:860px){
  .relacje{grid-template-columns:minmax(0,1fr);gap:32px}
  .relacje__photo{max-width:260px}
  .who__video .frame--9x16{max-width:300px}
}
/* „Moja wizytówka”: druga pozycja, mniejsza i spokojna */
.contact-icons__wiz a{height:36px;padding:0 12px;font-size:13.5px}
.contact-icons__wiz svg{width:15px;height:15px}
.hero{padding-bottom:0}
.hero + #o-grupie{padding-top:clamp(48px,6vw,80px)}
/* Asystent AI: wyjaśnienie „Zapytaj o grupę” (sekcja na głównej + zdanie w stopce) */
.asystent{display:flex;align-items:center;justify-content:space-between;gap:40px}
.asystent .lead{max-width:40em}
.asystent .small{max-width:46em;color:var(--muted)}
@media (max-width:860px){ .asystent{flex-direction:column;align-items:flex-start;gap:24px} }
.footer__ai{margin-top:16px;max-width:30em;font-size:13.5px;line-height:1.55;opacity:.75}
.footer__ai a{text-decoration:underline;text-underline-offset:3px}
/* „Kim jesteśmy”: nadtytuł nad nagłówkiem jak w innych sekcjach, tekst w pionie na środku filmu */
@media (min-width:861px){
  .who{align-items:center}
  .who__video .frame--9x16{max-width:330px}
}
.related{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr));gap:12px 32px;list-style:none;padding:0}
.related a{text-decoration:none;color:inherit}.related a:hover b,.related a:focus-visible b{color:var(--red)}

/* --- Telefon (audyt mobilny 21.10.2026) ------------------------
       Drobny tekst 15 px, cele dotykowe min. 44 px bez zmiany wyglądu. */
@media (max-width:640px){
  :root{--fs-small:15px}
  .member__branch,#czlonkowie .member__branch{font-size:15px}
  .footer__ai{font-size:15px}
  .legal{font-size:14px}
  .contact-icons a,.contact-icons__wiz a{height:44px;font-size:15px}
  .announce .link{position:relative}
  .announce .link::after{content:"";position:absolute;left:-6px;right:-6px;top:-10px;bottom:-10px}
  .footer__links{gap:0}
  .footer__links a{display:inline-flex;align-items:center;min-height:44px}
  .social-link--dark{width:44px;height:44px}
  .follow__link{height:44px}
  .link{display:inline-block;padding-top:10px;padding-bottom:10px;background-position:0 calc(100% - 8px)}
  p .link,li .link,.small .link,.announce .link{display:inline;padding:0 0 3px;background-position:0 100%}
  .consent{min-height:44px}
  .szukamy__who span{font-size:15px}
  .chip,.tab{min-height:44px}
}
/* Otwarte menu: bez dolnego paska i dymka czatu pod spodem */
body:has(.header.is-open) .mobile-bar,body:has(.header.is-open) .bc-l{visibility:hidden}

/* --- Ruch i interakcje (21.10.2026): tylko transform i opacity, bez ruchu przy prefers-reduced-motion --- */
.member{outline:none}
.member .frame{transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.member .frame>img{transition:transform .9s var(--ease)}
.member:focus-visible .frame{outline:3px solid var(--red);outline-offset:3px}
@media (hover:hover){
  .member:hover .frame,.member:focus-visible .frame{transform:translateY(-4px);box-shadow:0 16px 30px rgba(20,22,26,.16)}
}
@media (hover:none){ .member:active .frame{transform:scale(.98)} }
.member.flt{animation:flt-in .5s var(--ease) both;animation-delay:calc(var(--f,0) * 45ms)}
@keyframes flt-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.btn{transition:color .35s var(--ease),border-color .35s var(--ease),transform .15s var(--ease)}
.btn:active{transform:scale(.97)}
.chip{transition:background-color .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease),transform .15s var(--ease)}
.chip:active{transform:scale(.96)}
.slider__track.is-drag{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto}
.slider__track.is-drag img{pointer-events:none}
@media (hover:hover){ .slider__track{cursor:grab} }
.sdots{display:flex;justify-content:center;flex-wrap:wrap;margin-top:10px}
.sdots button{position:relative;width:28px;height:44px;padding:0;border:0;background:none;cursor:pointer}
.sdots button::before{content:"";position:absolute;left:50%;top:50%;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;
  background:var(--line-strong,#C6CAD0);transition:transform .3s var(--ease),background-color .3s}
.sdots button[aria-current="true"]::before{background:var(--red);transform:scale(1.4)}
.sdots button:focus-visible{outline:2px solid var(--red);outline-offset:-6px;border-radius:8px}
@media (prefers-reduced-motion:reduce){
  .member .frame,.member .frame>img,.btn,.chip,.sdots button::before{transition:none}
  .member.flt{animation:none}
  .member:hover .frame,.member:focus-visible .frame{transform:none}
  .btn:active,.chip:active{transform:none}
}
