@font-face{
  font-family: "GeologicaLocal";
  src:
    url("../fonts/woff2/Geologica-VariableFont_CRSV,SHRP,slnt,wght.woff2") format("woff2"),
    url("../fonts/woff/Geologica-VariableFont_CRSV,SHRP,slnt,wght.woff") format("woff");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

:root{
  --bg: #FFFFFF;
  --text: #1E293B;

  /* Text tokens (WCAG-friendly) */
  --text-strong: rgba(30,41,59,.88);
  --text-muted:  rgba(30,41,59,.78);
  --text-kicker: rgba(30,41,59,.72);
  --text-soft:   rgba(30,41,59,.62);

  /* Compatibility tokens */
  --muted: rgba(30,41,59,.78);
  --border: rgba(30,41,59,.08);

  --primary: #1640FF;
  --accent: #E61A4E;

  /* Font weights (system) */
  --fw-regular: 420;
  --fw-medium: 520;
  --fw-semibold: 650;
  --fw-bold: 800;
  --fw-extrabold: 850;

  --shadow: 0 1.125rem 3.125rem rgba(2, 6, 23, .14);
  --shadow-soft: 0 0.625rem 1.5rem rgba(2, 6, 23, .10);

  --h: 3.25rem;
  --container: 67.5rem; /* 1080px */
  --pad: 1rem;          /* 16px */
}

/* Base */
*{ box-sizing: border-box; }
html, body{ height: 100%; }
html{ scroll-behavior: smooth; }

body{
  margin: 0;
  font-family: "GeologicaLocal","Geologica",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-size: 16px;
  line-height: 1.5;
  font-weight: var(--fw-regular);
  color: var(--text);
  background: var(--bg);
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  *{ transition: none !important; }
}

/* Skip link */
.skip-link{
  position: absolute;
  left: 0.75rem;
  top: 0.625rem;
  z-index: 999;
  padding: 0.625rem 0.75rem;
  border-radius: 62.5rem;
  background: #fff;
  border: 0.0625rem solid var(--border);
  box-shadow: var(--shadow-soft);
  transform: translateY(-140%);
  transition: transform 140ms ease;
  color: var(--text);
  text-decoration: none;
  font-size: 0.8125rem;
}
.skip-link:focus{ transform: translateY(0); }

/* =========================
   PARTNERS STRIP
   ========================= */
.partners-strip{
  padding: 0.75rem 0 1.75rem;
}

/* Reveal tylko gdy w HTML dasz data-reveal="1" */
.partners-strip[data-reveal="1"]{
  opacity: 0;
  transform: translateY(0.875rem);
  transition: opacity 700ms cubic-bezier(.2,.8,.2,1), transform 700ms cubic-bezier(.2,.8,.2,1);
  will-change: transform, opacity;
}
.partners-strip.is-inview{
  opacity: 1;
  transform: translateY(0);
}

.partners-strip__inner{
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--pad);
}

.partners-strip__row{
  display: flex;
  align-items: center;
  gap: clamp(1rem, 2vw, 2rem);
  width: max-content;
  padding: 0.5rem 0;
  transform: translate3d(0,0,0);
  will-change: transform;
}

.partners-strip__logo{
  display: grid;
  place-items: center;
  padding: 0.35rem 0.25rem;
  border-radius: 0.75rem;
  text-decoration: none;
  transition: transform 160ms ease;
}
.partners-strip__logo:hover{ transform: scale(1.03); }

.partners-strip__logo:focus-visible{
  outline: 0.1875rem solid rgba(22,64,255,.28);
  outline-offset: 0.125rem;
}

.partners-strip__logo img{
  height: clamp(1.65rem, 2.2vw, 2.25rem);
  width: auto;
  display: block;
  filter: grayscale(1);
  opacity: 0.75;
  transition: filter 180ms ease, opacity 180ms ease;
}

.partners-strip__logo:hover img,
.partners-strip__logo:focus-visible img{
  filter: none;
  opacity: 1;
}

@media (min-width: 53.76rem){
  .partners-strip__inner{
    overflow: hidden;
    border-radius: 1rem;
  }

  .partners-strip__row{
    animation: partnersMarquee var(--partners-duration, 40s) linear infinite;
  }

  @keyframes partnersMarquee{
    from{ transform: translate3d(0,0,0); }
    to{ transform: translate3d(calc(-1 * var(--partners-shift, 50%)),0,0); }
  }

  .partners-strip__inner:hover .partners-strip__row{
    animation-play-state: paused;
  }
}

@media (max-width: 53.75rem){
  .partners-strip{ padding: 0.5rem 0 1.5rem; }

  .partners-strip__inner{
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .partners-strip__inner::-webkit-scrollbar{ display: none; }

  .partners-strip__row{
    animation: none;
    padding: 0.25rem 0.25rem;
  }
}

@media (prefers-reduced-motion: reduce){
  .partners-strip[data-reveal="1"]{
    opacity: 1;
    transform: none;
    transition: none;
  }
  .partners-strip__row{ animation: none !important; }
}

/* =========================
   ABOUT
   ========================= */
.about{
  padding: clamp(2.5rem, 5vw, 4.25rem) 0;
}

.about__inner{
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--pad);
}

.about__grid{
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: clamp(1.25rem, 3vw, 2.5rem);
  align-items: center;
}

.about__kicker{
  margin: 0 0 0.5rem;
  font-size: 0.75rem;
  line-height: 1;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: var(--fw-semibold);
  color: var(--text-kicker);
}

.about__title{
  margin: 0 0 0.75rem;
  font-size: clamp(1.75rem, 3.2vw, 2.5rem);
  line-height: 1.06;
  letter-spacing: -0.03em;
  font-weight: var(--fw-extrabold);
  color: var(--text);
}

.about__lead{
  margin: 0 0 0.75rem;
  font-size: 1rem;
  line-height: 1.55;
  color: var(--text-strong);
}

.about__text{
  margin: 0 0 1.25rem;
  font-size: 1rem;
  line-height: 1.55;
  color: var(--text-muted);
}

.about__stats{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.875rem;
  margin-top: 0.25rem;
}

.kpi{
  border: 0.0625rem solid var(--border);
  background: rgba(255,255,255,0.72);
  border-radius: 1.125rem;
  padding: 0.9rem 1rem;
  box-shadow: 0 0.5rem 1.25rem rgba(2, 6, 23, .06);
}

.kpi__value{
  font-size: clamp(1.4rem, 2.2vw, 1.85rem);
  line-height: 1.1;
  letter-spacing: -0.02em;
  font-weight: var(--fw-extrabold);
  color: var(--text);
}

.kpi__label{
  margin-top: 0.35rem;
  font-size: 0.875rem;
  line-height: 1.3;
  color: var(--text-kicker);
}

.about__art{
  display: grid;
  place-items: center;
}

.about__img{
  width: 100%;
  max-width: 28rem;
  height: auto;
  display: block;
  border-radius: 1.25rem;
  box-shadow: var(--shadow);
}

@media (max-width: 53.75rem){
  .about__grid{
    grid-template-columns: 1fr;
    text-align: center;
  }
  .about__stats{
    grid-template-columns: 1fr 1fr;
    justify-items: stretch;
  }
  .about__art{ order: -1; }
  .about__img{ max-width: 24rem; }
}

@media (max-width: 25rem){
  .about__stats{ grid-template-columns: 1fr; }
}

/* =========================
   MISSION
   ========================= */
.mission{
  padding: clamp(2.5rem, 5vw, 4.25rem) 0;
}

.mission__inner{
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--pad);
}

.mission__head{ max-width: 52rem; }

.mission__kicker{
  margin: 0 0 0.5rem;
  font-size: 0.75rem;
  line-height: 1;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: var(--fw-semibold);
  color: var(--text-kicker);
}

.mission__title{
  margin: 0 0 0.75rem;
  font-size: clamp(1.75rem, 3.2vw, 2.5rem);
  line-height: 1.06;
  letter-spacing: -0.03em;
  font-weight: var(--fw-extrabold);
  color: var(--text);
}

.mission__lead{
  margin: 0;
  font-size: 1rem;
  line-height: 1.55;
  color: var(--text-muted);
}

.mission__grid{
  margin-top: clamp(1.25rem, 3vw, 2rem);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.875rem;
}

.mcard{
  border: 0.0625rem solid var(--border);
  background: #fff;
  border-radius: 1.125rem;
  padding: 1.1rem;
  box-shadow: 0 0.5rem 1.25rem rgba(2, 6, 23, .06);
  transition: transform 180ms ease;
  display: grid;
  gap: 0.75rem;
  align-content: start;
}

.mcard:hover{ transform: translateY(-0.125rem); }

.mcard__icon{
  width: clamp(3.25rem, 4vw, 4.25rem);
  height: auto;
  object-fit: contain;
  display: block;
}

.mcard__title{
  margin: 0;
  font-size: 1.0625rem;
  line-height: 1.2;
  letter-spacing: -0.02em;
  font-weight: var(--fw-bold);
  color: var(--text);
}

.mcard__text{
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--text-muted);
}

@media (max-width: 53.75rem){
  .mission__head{
    text-align: center;
    margin: 0 auto;
  }
  .mission__grid{ grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce){
  .mcard{ transition: none; }
  .mcard:hover{ transform: none; }
}

/* =========================
   TEAM
   ========================= */
.team{
  padding: clamp(2.5rem, 5vw, 4.25rem) 0;
}

.team__inner{
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--pad);
}

.team__head{ max-width: 52rem; }

.team__kicker{
  margin: 0 0 0.5rem;
  font-size: 0.75rem;
  line-height: 1;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: var(--fw-semibold);
  color: var(--text-kicker);
}

.team__title{
  margin: 0 0 0.75rem;
  font-size: clamp(1.75rem, 3.2vw, 2.5rem);
  line-height: 1.06;
  letter-spacing: -0.03em;
  font-weight: var(--fw-extrabold);
  color: var(--text);
}

.team__lead{
  margin: 0;
  font-size: 1rem;
  line-height: 1.55;
  color: var(--text-muted);
}

.team__grid{
  margin-top: clamp(1.25rem, 3vw, 2rem);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.875rem;
}

.tcard{
  border: 0.0625rem solid var(--border);
  background: #fff;
  border-radius: 1.125rem;
  box-shadow: 0 0.5rem 1.25rem rgba(2, 6, 23, .06);
  padding: 1.1rem 1.1rem 1rem;
}

.tcard__body{
  display: grid;
  gap: 0.75rem;
}

.tcard__top{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.tcard__id{
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
}

.tcard__photo{
  width: 4rem;
  height: 4rem;
  border-radius: 999rem;
  object-fit: cover;
  display: block;
  background: #fff;
  border: 0.0625rem solid var(--border);
  flex: 0 0 auto;
  transition: transform 220ms ease, filter 220ms ease;
  transform: scale(1);
  will-change: transform;
}

.tcard__meta{ min-width: 0; }

.tcard__name{
  margin: 0;
  font-size: 1.125rem;
  line-height: 1.15;
  letter-spacing: -0.02em;
  font-weight: var(--fw-extrabold);
  color: var(--text);
}

.tcard__role{
  margin: 0.25rem 0 0;
  font-size: 0.9rem;
  line-height: 1.2;
  color: var(--text-kicker);
  font-weight: var(--fw-semibold);
}

.tcard__li{
  width: 2.25rem;
  height: 2.25rem;
  display: grid;
  place-items: center;
  text-decoration: none;
  border-radius: 0.75rem;
  background: transparent;
  border: 0;
  transition: transform 160ms ease, opacity 160ms ease;
  opacity: .78;
  flex: 0 0 auto;
}
.tcard__li:hover{ transform: scale(1.08); opacity: 1; }
.tcard__li:focus-visible{
  outline: 0.1875rem solid rgba(22,64,255,.28);
  outline-offset: 0.125rem;
}
.tcard__li img{
  width: 1.25rem;
  height: 1.25rem;
  display: block;
}

.tcard__bio{
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--text-muted);
}

.tcard__facts{
  margin: 0;
  padding-left: 1.05rem;
  display: grid;
  gap: 0.25rem;
  color: var(--text-muted);
  font-size: 0.9rem;
  line-height: 1.4;
}

.tcard__contact{
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 0.85rem;
  padding-top: 0.25rem;
}

.tcard__contactlink{
  font-size: 0.9rem;
  color: var(--text-strong);
  text-decoration: none;
  font-weight: var(--fw-semibold);
}
.tcard__contactlink:hover{
  color: var(--text);
  text-decoration: underline;
}
.tcard__contactlink:focus-visible{
  outline: 0.1875rem solid rgba(22,64,255,.28);
  outline-offset: 0.125rem;
  border-radius: 0.5rem;
}

/* Hover na foto tylko po foto / ID */
.tcard__photo:hover,
.tcard__id:hover .tcard__photo{
  transform: scale(2.06);
  filter: saturate(1.05) contrast(1.02);
}

.tcard__id:focus-within .tcard__photo{
  transform: scale(1.06);
  filter: saturate(1.05) contrast(1.02);
}

@media (max-width: 53.75rem){
  .team__head{
    text-align: center;
    margin: 0 auto;
  }
  .team__grid{ grid-template-columns: 1fr; }
  .tcard__top{ justify-content: center; }
  .tcard__id{ justify-content: center; }
}

@media (prefers-reduced-motion: reduce){
  .tcard__photo{ transition: none; }
  .tcard__photo:hover,
  .tcard__id:hover .tcard__photo,
  .tcard__id:focus-within .tcard__photo{
    transform: none;
    filter: none;
  }
}

/* =========================
   INITIATIVES
   ========================= */
.initiatives{
  padding: clamp(2.75rem, 5.5vw, 4.5rem) 0;
}

.initiatives__inner{
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--pad);
}

.initiatives__head{ max-width: 54rem; }

.initiatives__kicker{
  margin: 0 0 0.65rem;
  font-size: 0.75rem;
  line-height: 1;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: var(--fw-semibold);
  color: var(--text-kicker);
}

.initiatives__title{
  margin: 0 0 0.85rem;
  font-size: clamp(1.85rem, 3.25vw, 2.6rem);
  line-height: 1.08;
  letter-spacing: -0.03em;
  font-weight: var(--fw-extrabold);
  color: var(--text);
}

.initiatives__lead{
  margin: 0;
  font-size: 1.03rem;
  line-height: 1.65;
  font-weight: var(--fw-regular);
  color: var(--text-muted);
}

.initiatives__grid{
  margin-top: clamp(1.5rem, 3.2vw, 2.25rem);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(0.95rem, 2vw, 1.15rem);
}

/* Card */
.init-card{
  border: 0.0625rem solid var(--border);
  background: #fff;
  border-radius: 1.25rem;
  overflow: hidden;
  box-shadow: 0 0.5rem 1.25rem rgba(2, 6, 23, .06);
  display: grid;
  grid-template-rows: auto 1fr;
}

.init-card__media{ background: #fff; }

.init-card__media img{
  width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
  object-fit: cover;
  display: block;
}

.init-card__body{
  padding: 1.4rem 1.4rem 1.3rem;
}

.init-card__title{
  margin: 0;
  font-size: 1.15rem;
  line-height: 1.22;
  letter-spacing: -0.02em;
  font-weight: var(--fw-bold);
  color: var(--text);
}

.init-card__subtitle{
  margin: 0.65rem 0 0;
  font-size: 0.98rem;
  line-height: 1.55;
  font-weight: var(--fw-semibold);
  color: var(--text-kicker);
}

.init-card__text{
  margin: 1rem 0 0;
  font-size: 0.98rem;
  line-height: 1.7;
  font-weight: var(--fw-regular);
  color: var(--text-muted);
}

.init-card__more{
  display: inline-block;
  margin-top: 1.1rem;
  font-size: 0.98rem;
  font-weight: var(--fw-semibold);
  color: var(--text-soft);
  text-decoration: underline;
  text-decoration-color: rgba(30,41,59,.28);
  text-underline-offset: 0.22em;
  text-decoration-thickness: 0.08em;
  transition: color 160ms ease, text-decoration-color 160ms ease;
}

.init-card__more:hover{
  color: var(--primary);
  text-decoration-color: rgba(22,64,255,.55);
}

.init-card__more:focus-visible{
  outline: 0.1875rem solid rgba(22,64,255,.28);
  outline-offset: 0.1875rem;
  border-radius: 0.5rem;
}

@media (max-width: 53.75rem){
  .initiatives__head{
    text-align: center;
    margin-inline: auto;
  }
  .initiatives__grid{ grid-template-columns: 1fr; }
  .init-card__body{ padding: 1.2rem 1.15rem 1.1rem; }
}

/* INITIATIVES: 3 w rzędzie na desktopie */
.initiatives__grid{
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* Responsywność: 2 kolumny na tablet, 1 na mobile */
@media (max-width: 62rem){
  .initiatives__grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 53.75rem){
  .initiatives__grid{
    grid-template-columns: 1fr;
  }
}

/* Hover zoom na obrazku */
.init-card__media img{
  transform: scale(1);
  transition: transform 260ms ease;
  will-change: transform;
}

/* zoom przy hover na całej karcie (bardziej naturalne) */
.init-card:hover .init-card__media img{
  transform: scale(1.04);
}

/* jak ktoś ma reduced motion */
@media (prefers-reduced-motion: reduce){
  .init-card__media img{
    transition: none;
  }
  .init-card:hover .init-card__media img{
    transform: none;
  }
}

/* INITIATIVES – lżejsza typografia + subtelny hover */
.init-card{
  transition: transform 220ms ease, box-shadow 220ms ease;
  will-change: transform;
}

/* delikatne uniesienie */
.init-card:hover{
  transform: translateY(-0.25rem); /* ~4px */
  box-shadow: 0 0.75rem 1.8rem rgba(2, 6, 23, .10);
}

/* minimalnie mniejsze i mniej “bold” */
.init-card__title{
  font-size: 1.08rem;   /* było 1.15rem */
  font-weight: var(--fw-bold);     /* było 720 */
}

.init-card__subtitle{
  font-size: 0.94rem;   /* było 0.98rem */
  font-weight: var(--fw-medium);     /* było 560 */
}

.init-card__text{
  font-size: 0.95rem;   /* było 0.98rem */
  font-weight: var(--fw-regular);     /* było 420 */
}

/* też lekko lżej w linku */
.init-card__more{
  font-size: 0.95rem;   /* było 0.98rem */
  font-weight: var(--fw-semibold);     /* było 600 */
}

/* zoom obrazka (zostaje) */
.init-card__media img{
  transform: scale(1);
  transition: transform 260ms ease;
  will-change: transform;
}
.init-card:hover .init-card__media img{
  transform: scale(1.04);
}

/* reduced motion */
@media (prefers-reduced-motion: reduce){
  .init-card,
  .init-card__media img{
    transition: none;
  }
  .init-card:hover{
    transform: none;
    box-shadow: 0 0.5rem 1.25rem rgba(2, 6, 23, .06);
  }
  .init-card:hover .init-card__media img{
    transform: none;
  }
}

/* =========================
   PARTNERS (sekcja #partnerzy)
   ========================= */

.partners{
  padding: clamp(2.75rem, 5.5vw, 4.5rem) 0;
}

.partners__inner{
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--pad);
}

.partners__head{ max-width: 54rem; }

.partners__kicker{
  margin: 0 0 0.65rem;
  font-size: 0.75rem;
  line-height: 1;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: var(--fw-semibold);
  color: var(--text-kicker);
}

.partners__title{
  margin: 0 0 0.85rem;
  font-size: clamp(1.85rem, 3.25vw, 2.6rem);
  line-height: 1.08;
  letter-spacing: -0.03em;
  font-weight: var(--fw-extrabold);
  color: var(--text);
}

.partners__lead{
  margin: 0;
  font-size: 1.03rem;
  line-height: 1.65;
  font-weight: var(--fw-regular);
  color: var(--text-muted);
}

/* =========================
   Partnerzy stali
   ========================= */

.partners__sticky{
  margin-top: clamp(1.25rem, 3.2vw, 2.25rem);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(0.95rem, 2vw, 1.15rem);
}

.pcard{
  border: 0.0625rem solid var(--border);
  background: #fff;
  border-radius: 1.25rem;
  box-shadow: 0 0.5rem 1.25rem rgba(2, 6, 23, .06);
  overflow: hidden;
  text-decoration: none;
  color: inherit;

  display: grid;
  grid-template-columns: 7.25rem 1fr;
  gap: 1rem;
  align-items: center;

  padding: 1.15rem 1.15rem;
  transform: translateY(0);
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.pcard:hover{
  transform: translateY(-0.125rem);
  box-shadow: 0 0.75rem 1.75rem rgba(2, 6, 23, .10);
}

.pcard:focus-visible{
  outline: 0.1875rem solid rgba(22,64,255,.28);
  outline-offset: 0.1875rem;
}

.pcard__logo{
  width: 100%;
  height: auto;
  display: block;
}

.pcard__meta{ min-width: 0; }

.pcard__badge{
  margin: 0 0 0.35rem;
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: var(--fw-semibold);
  color: var(--text-kicker);
}

.pcard__name{
  margin: 0 0 0.45rem;
  font-size: 1.1rem;
  line-height: 1.2;
  font-weight: var(--fw-bold);
  letter-spacing: -0.02em;
  color: var(--text);
}

.pcard__desc{
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.6;
  font-weight: var(--fw-regular);
  color: var(--text-muted);
}

/* =========================
   Pozostali partnerzy (marquee)
   ========================= */

.partners__slider{
  margin-top: clamp(1.1rem, 2.6vw, 1.6rem);
}

/* bez obwódki */
.partners__viewport{
  overflow: hidden;
  border-radius: 1.25rem; /* żeby hover/zoom nie wystawał */
}

/* track jedzie transformem z JS */
.partners__track{
  display: flex;
  align-items: center;
  gap: clamp(1.2rem, 2.6vw, 2rem);
  padding: 0.75rem 0;
  width: max-content;
  will-change: transform;
  transform: translate3d(0,0,0);
}

/* logo tile */
.plogo{
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  padding: 0.65rem 0.8rem;
  border-radius: 0.9rem;
  text-decoration: none;

  transform: translateY(0) scale(1);
  transition: transform 170ms ease;
}

.plogo:hover{
  transform: translateY(-0.125rem) scale(1.06);
}

.plogo:focus-visible{
  outline: 0.1875rem solid rgba(22,64,255,.28);
  outline-offset: 0.1875rem;
}

.plogo img{
  height: clamp(2.15rem, 2.8vw, 3rem);
  width: auto;
  display: block;
}

.partners__hint{
  margin: 0.6rem 0 0;
  font-size: 0.9rem;
  color: var(--text-soft);
}

/* =========================
   Mobile: scroll palcem zamiast autoplay
   ========================= */
@media (max-width: 53.75rem){
  .partners__head{
    text-align: center;
    margin-inline: auto;
  }

  .partners__sticky{
    grid-template-columns: 1fr;
  }

  .pcard{
    grid-template-columns: 6.5rem 1fr;
  }

  .partners__viewport{
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .partners__viewport::-webkit-scrollbar{ display: none; }

  .partners__track{
    padding: 0.6rem 0.25rem;
  }

  .partners__hint{
    text-align: center;
  }
}

/* Reduced motion: brak marquee */
@media (prefers-reduced-motion: reduce){
  .partners__track{ transform: none !important; }
}

/* =========================
   CONTACT
   ========================= */

.contact{
  padding: clamp(2.75rem, 5.5vw, 4.5rem) 0;
}

.contact__inner{
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--pad);
}

.contact__grid{
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: clamp(1.1rem, 3vw, 2.25rem);
  align-items: center;
}

.contact__kicker{
  margin: 0 0 0.65rem;
  font-size: 0.75rem;
  line-height: 1;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: var(--fw-semibold);
  color: var(--text-kicker);
}

.contact__title{
  margin: 0 0 0.85rem;
  font-size: clamp(1.85rem, 3.25vw, 2.6rem);
  line-height: 1.08;
  letter-spacing: -0.03em;
  font-weight: var(--fw-extrabold);
  color: var(--text);
}

.contact__lead{
  margin: 0;
  font-size: 1.02rem;
  line-height: 1.65;
  font-weight: var(--fw-regular);
  color: var(--text-muted);
}

.contact__cards{
  margin-top: 1.25rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.9rem;
}

.ccard{
  border: 0.0625rem solid var(--border);
  background: #fff;
  border-radius: 1.25rem;
  box-shadow: 0 0.5rem 1.25rem rgba(2, 6, 23, .06);
  padding: 1.15rem 1.15rem;
  text-decoration: none;
  color: inherit;

  transform: translateY(0);
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.ccard:hover{
  transform: translateY(-0.125rem);
  box-shadow: 0 0.75rem 1.75rem rgba(2, 6, 23, .10);
}

.ccard:focus-visible{
  outline: 0.1875rem solid rgba(22,64,255,.28);
  outline-offset: 0.1875rem;
}

.ccard__label{
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: var(--fw-semibold);
  color: var(--text-kicker);
}

.ccard__value{
  margin-top: 0.55rem;
  font-size: 1.15rem;
  line-height: 1.25;
  letter-spacing: -0.02em;
  font-weight: var(--fw-semibold);
  color: var(--text);
  word-break: break-word;
}

.ccard__hint{
  margin-top: 0.55rem;
  font-size: 0.9rem;
  line-height: 1.4;
  color: var(--text-soft);
}

.contact__actions{
  margin-top: 1.15rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.cbtn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;

  height: 2.75rem;
  padding: 0 1rem;
  border-radius: 0.95rem;

  border: 0.0625rem solid var(--border);
  background: #fff;
  color: var(--text-strong);
  text-decoration: none;

  font-weight: var(--fw-semibold);
  font-size: 0.95rem;

  transition: transform 170ms ease, box-shadow 170ms ease, border-color 170ms ease;
}

.cbtn:hover{
  transform: translateY(-0.0625rem);
  box-shadow: 0 0.75rem 1.75rem rgba(2, 6, 23, .10);
  border-color: rgba(30,41,59,.12);
}

.cbtn:focus-visible{
  outline: 0.1875rem solid rgba(22,64,255,.28);
  outline-offset: 0.1875rem;
}

.cbtn--primary{
  border-color: rgba(22,64,255,.22);
  background: rgba(22,64,255,.08);
  color: var(--text);
}

.contact__art{
  display: grid;
  place-items: center;
}

.contact__img{
  width: 100%;
  max-width: 30rem;
  height: auto;
  display: block;
  border-radius: 1.25rem;
  box-shadow: var(--shadow);
}

/* Mobile */
@media (max-width: 53.75rem){
  .contact__grid{
    grid-template-columns: 1fr;
    text-align: center;
  }

  .contact__cards{
    grid-template-columns: 1fr;
  }

  .contact__actions{
    justify-content: center;
  }

  .contact__art{
    order: -1;
  }

  .contact__img{
    max-width: 24rem;
  }
}

@media (prefers-reduced-motion: reduce){
  .ccard, .cbtn{ transition: none; }
  .ccard:hover, .cbtn:hover{ transform: none; box-shadow: 0 0.5rem 1.25rem rgba(2, 6, 23, .06); }
}

/* układ: więcej miejsca na lewo (kafelki), mniej na obrazek */
.contact__grid{
  display: grid;
  grid-template-columns: 1.35fr 0.65fr;
  gap: clamp(1.1rem, 3vw, 2.25rem);
  align-items: center;
}

/* obrazek mniejszy */
.contact__img{
  width: 100%;
  max-width: 24rem;
  height: auto;
  display: block;
  border-radius: 1.25rem;
  box-shadow: var(--shadow);
}

/* email ma się zmieścić w jednej linii */
.ccard__value{
  margin-top: 0.55rem;
  font-size: 1.15rem;
  line-height: 1.25;
  letter-spacing: -0.02em;
  font-weight: var(--fw-semibold);
  color: var(--text);

  white-space: nowrap;      /* 1 linia */
  overflow: hidden;         /* zabezpieczenie */
  text-overflow: ellipsis;  /* awaryjnie, gdyby ktoś mega zmniejszył okno */
}

/* na trochę węższych ekranach: minimalnie mniejszy font wartości */
@media (max-width: 62rem){
  .ccard__value{ font-size: 1.05rem; }
}

/* na mobile i tak schodzi do 1 kolumny */
@media (max-width: 53.75rem){
  .contact__grid{
    grid-template-columns: 1fr;
    text-align: center;
  }

  .contact__img{
    max-width: 24rem;
  }
}

/* =========================
   NEWS (sekcja #aktualnosci)
   ========================= */

.news{
  padding: clamp(2.75rem, 5.5vw, 4.5rem) 0;
}

.news__inner{
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--pad);
}

.news__head{ max-width: 54rem; }

.news__kicker{
  margin: 0 0 0.65rem;
  font-size: 0.75rem;
  line-height: 1;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: var(--fw-semibold);
  color: var(--text-kicker);
}

.news__title{
  margin: 0 0 0.85rem;
  font-size: clamp(1.85rem, 3.25vw, 2.6rem);
  line-height: 1.08;
  letter-spacing: -0.03em;
  font-weight: var(--fw-extrabold);
  color: var(--text);
}

.news__lead{
  margin: 0;
  font-size: 1.0rem;
  line-height: 1.65;
  font-weight: var(--fw-regular);
  color: var(--text-muted);
}

.news__grid{
  margin-top: clamp(1.5rem, 3.2vw, 2.25rem);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(0.95rem, 2vw, 1.15rem);
}

/* Card */
.news-card{
  border: 0.0625rem solid var(--border);
  background: #fff;
  border-radius: 1.25rem;
  overflow: hidden;
  box-shadow: 0 0.5rem 1.25rem rgba(2, 6, 23, .06);

  display: grid;
  grid-template-rows: auto 1fr;

  transform: translateY(0);
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.news-card:hover{
  transform: translateY(-0.14rem);
  box-shadow: 0 0.85rem 2rem rgba(2, 6, 23, .10);
}

.news-card__media{
  display: block;
  background: #fff;
  text-decoration: none;
  color: inherit;
  position: relative;
  overflow: hidden;
}

.news-card__media img{
  width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
  object-fit: cover;
  display: block;
  transform: scale(1);
  transition: transform 240ms ease;
}

.news-card:hover .news-card__media img{
  transform: scale(1.045);
}

.news-card__body{
  padding: 1.15rem 1.2rem 1.1rem;
}

.news-card__top{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.65rem;
}

.news-card__date{
  margin: 0;
  font-size: 0.9rem;
  font-weight: var(--fw-medium);
  color: var(--text-soft);
}

.news-card__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 2.05rem;
  padding: 0 0.75rem;
  border-radius: 0.75rem;
  border: 0.0625rem solid rgba(15,23,42,.10);
  background: rgba(255,255,255,.75);
  text-decoration: none;

  font-size: 0.92rem;
  font-weight: var(--fw-semibold);
  color: var(--primary);

  transition: transform 160ms ease, filter 160ms ease, background 160ms ease;
  -webkit-tap-highlight-color: transparent;
}

.news-card__btn:hover{
  transform: translateY(-0.0625rem);
  filter: brightness(0.99);
  background: #fff;
}

.news-card__btn:focus-visible{
  outline: 0.1875rem solid rgba(22,64,255,.28);
  outline-offset: 0.1875rem;
}

.news-card__title{
  margin: 0;
  font-size: 1.06rem;
  line-height: 1.25;
  letter-spacing: -0.02em;
  font-weight: var(--fw-bold); /* minimalnie mniej tłuste */
  color: var(--text);
}

.news-card__subtitle{
  margin: 0.55rem 0 0;
  font-size: 0.95rem; /* minimalnie mniejsze */
  line-height: 1.6;
  font-weight: var(--fw-regular);
  color: var(--text-muted);
}

/* TAG pod tekstem */
.news-card__bottom{
  margin-top: 0.85rem;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.news-tag{
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;

  padding: 0.42rem 0.6rem;
  border-radius: 999px;

  background: rgba(22,64,255,.06);
  border: 0.0625rem solid rgba(22,64,255,.16);

  transform: translateY(0);
  transition: transform 160ms ease;
}

.news-card:hover .news-tag{
  transform: translateY(-0.04rem);
}

.news-tag img{
  height: 1.55rem;
  width: auto;
  max-width: 10rem;
  display: block;
  object-fit: contain;
}

/* sr-only (jeśli nie masz globalnie) */
.sr-only{
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

/* Responsive */
@media (max-width: 75rem){
  .news__grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 53.75rem){
  .news__head{
    text-align: center;
    margin-inline: auto;
  }
  .news__grid{ grid-template-columns: 1fr; }
  .news-card__body{ padding: 1.05rem 1.05rem 1.0rem; }
}
