/* ==================================
   POLSTEAM – SERVICES (WCAG 2.2)
   ================================== */

.ps-services{
  color:#fff;
  padding:110px 40px;
}

.ps-services__header{
  max-width:1400px;
  margin:0 auto 60px;

  opacity:0;
  transform:translateY(18px);
  transition:opacity .95s ease, transform .95s ease;
  will-change:opacity,transform;
}

.ps-services__header.is-visible{
  opacity:1;
  transform:translateY(0);
}

.ps-services__title{
  margin:0 0 16px;
  font-family: "Teko", sans-serif;
  line-height:0.95;
  letter-spacing:.5px;
  font-size:clamp(48px, 6vw, 92px);
}

.ps-services__title-strong{ font-weight:500; }
.ps-services__title-light{ font-weight:400; opacity:.9; }

.ps-services__lead{
  margin:0;
  max-width:820px;
  font-family: "Poppins", sans-serif;
  font-size:16px;
  line-height:1.8;
  color:rgba(255,255,255,0.78);
  font-weight:300;
}

/* GRID */

.ps-services__inner{
  max-width:1400px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  border-top:1px solid rgba(255,255,255,0.20);
}

.ps-service{
  position:relative;
  padding:56px 40px 40px;
  border-right:1px solid rgba(255,255,255,0.20);

  opacity:0;
  transform:translateY(34px);
  transition:opacity .95s ease, transform .95s ease;
  will-change:opacity,transform;
}

.ps-service.is-visible{
  opacity:1;
  transform:translateY(0);
}

.ps-service:last-child{ border-right:none; }

/* LINIA */

.ps-service__line{
  position:absolute;
  top:0;
  left:0;
  width:2px;
  height:0;
  background:rgba(255,255,255,0.95);
  transition:height 1.35s ease;
}

.ps-service.is-visible .ps-service__line{
  height:100%;
}

/* IKONA */

.ps-service__icon{
  width:54px;
  height:54px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,0.95);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-bottom:26px;
}

.ps-service__icon i{
  font-size:22px;
  color:#fff;
}

/* TEKST */

.ps-service h3{
  font-family: "Teko", sans-serif;
  font-weight:600;
  font-size: 24px;
  line-height:1.05;
  margin:0 0 16px;
}

.ps-service p{
  margin:0 0 18px;
  font-family: "Poppins", sans-serif;
  font-weight:300;
  font-size: 14px;
  line-height: 1.7;
  color:rgba(255,255,255,0.75);
}

/* BUTTON */

.button-light{
  display:inline-flex;
  align-items:center;
  gap:10px;

  font-family: "Poppins", sans-serif;
  font-size:14px;
  font-weight:500;

  color:#fff;
  text-decoration:none;

  padding:10px 18px;
  border-radius:999px;
  border:2px solid rgba(255,255,255,.85);
  background-color:rgba(255,255,255,.10);

  transition:
    background-color 0ms linear,
    border-color 0ms linear,
    transform 240ms ease;
}

.button-light::after{
  content:"\2192";
  transition:transform 240ms ease;
}

.button-light:hover{
  background-color:var(--polsteam-accent);
  border-color:var(--polsteam-accent);
  transform:translateY(-1px);
}

.button-light:hover::after{
  transform:translateX(6px);
}

/* ==================================
   FLOTA – stabilnie (bez psucia mapy) + jaśniejszy tekst
   Smooth transition do ciemnego #071826
   ================================== */

.ps-flota{
  --ps-flota-vis: 0;     /* 0..1 */
  --ps-flota-gray: 1;    /* 1..0 */

  max-width:1400px;
  margin:220px auto 0; /* tytuł wyżej */
  position:relative;

  opacity: var(--ps-flota-vis);
  filter:
    grayscale(calc(var(--ps-flota-gray) * 1))
    saturate(calc(1 - var(--ps-flota-gray) * .10))
    brightness(calc(1 - var(--ps-flota-gray) * .08));
  transform: translateY(calc((1 - var(--ps-flota-vis)) * 14px));
  will-change: opacity, filter, transform;
  transition: filter .18s ease;
}

/* animujemy tylko opacity (nie ruszamy translateX stage!) */
.ps-flota__header,
.ps-flota__cta{
  opacity:0;
  transform: translateY(16px);
  transition: opacity .55s ease, transform .55s ease;
  will-change: opacity, transform;
}
.ps-flota.is-visible .ps-flota__header,
.ps-flota.is-visible .ps-flota__cta{
  opacity:1;
  transform: translateY(0);
}

/* HEADER FLOTA */
.ps-flota__header{
  max-width:1400px;
  margin:0 auto 22px;
  position:relative;
  z-index:2;
}

/* ✅ jaśniejszy tytuł */
.ps-flota__title{
  margin:0 0 12px;
  font-family: "Teko", sans-serif;
  font-size:clamp(48px, 6vw, 92px);
  color:#fff;
  text-shadow: 0 8px 28px rgba(0,0,0,.35);
}

/* ✅ jaśniejszy opis */
.ps-flota__lead{
  max-width:900px;
  font-family: "Poppins", sans-serif;
  font-size:16px;
  line-height:1.85;
  color:rgba(255,255,255,0.88);
  text-shadow: 0 6px 22px rgba(0,0,0,.28);
}

.ps-flota__cta{ margin-top:18px; }

/* STAGE – FULL WIDTH (zachowujemy translateX(-50%)!) */
.ps-flota__stage{
  position:relative;

  width:100vw;
  left:50%;
  transform:translateX(-50%); /* kluczowe: nie psujemy mapy */

  min-height:640px;
  height:clamp(560px, 64vw, 1040px);

  margin:0 0 -110px;
  background:#001220;
  overflow:hidden;
  z-index:1;

  opacity:0;
  transition: opacity .6s ease;
}
.ps-flota.is-visible .ps-flota__stage{ opacity:1; }

/* TOP FADE */
.ps-flota__stage::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(
    to bottom,
    rgba(0,18,32,1) 0%,
    rgba(0,18,32,.62) 18%,
    rgba(0,18,32,0) 46%
  );
  z-index:1;
  pointer-events:none;
}

/* ✅ zamiast bieli – smooth transition do ciemnego koloru */
.ps-flota__stage::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:-1px;
  height:260px;

  /* docelowy kolor pod następną sekcję */
  background:linear-gradient(
    to bottom,
    rgba(0,18,32,0) 0%,
    rgba(0,18,32,.10) 30%,
    rgba(7,24,38,1) 100%
  );
  z-index:6;
  pointer-events:none;
}

/* ZIEMIA */
.ps-flota__earth{
  position:absolute;
  left:50%;
  bottom:0;
  transform:translateX(-50%);
  width:100vw;
  height:100%;
  object-fit:cover;
  z-index:2;
  pointer-events:none;
}

/* CANVAS */
.ps-flota__canvas{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:3;
  pointer-events:none;
}

/* RESPONSIVE */
@media (max-width:768px){
  .ps-services{ padding:80px 18px; }
  .ps-services__inner{ grid-template-columns:1fr; }

  .ps-flota{ margin-top:180px; }
  .ps-flota__stage{
    height:96vw;
    min-height:560px;
    margin-bottom:-80px;
  }
  .ps-flota__stage::after{ height:220px; }
}

/* WCAG – REDUCED MOTION */
@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition:none !important; }

  .ps-services__header,
  .ps-service{ opacity:1 !important; transform:none !important; }

  .ps-flota,
  .ps-flota__header,
  .ps-flota__cta,
  .ps-flota__stage{
    opacity:1 !important;
    transform:none !important;
    filter:none !important;
  }
  .ps-flota__canvas{ display:none; }
}
