/* ==================================
   PS: Kontakt – layout referencyjny (photo left, content right)
   ================================== */

:root{
  --ps-primary: var(--polsteam-primary, #00357d);
  --ps-accent: var(--polsteam-accent, #dd291b);

  --ps-text: #171718;
  --ps-muted: rgba(23,23,24,.65);
  --ps-line-soft: rgba(0,0,0,.08);
}

/* ===============================
   CARD
   =============================== */

.ps-kontakt-card{
  position: relative;
  margin: 22px 0;
  padding: 0;

  /* Na dużych ekranach wizytówki były zbyt „rozlane”.
     Zwężamy cały blok, żeby było więcej powietrza po bokach. */
  max-width: none;

  /* zamiast border-bottom (który potrafi być przykryty),
     rysujemy linię jako pseudo-element nad zawartością */
  border-bottom: none;

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

@media (min-width: 1200px){
  .ps-kontakt-card{
    max-width: 980px;
    margin-left: auto;
    margin-right: auto;
  }

  /* ciut ciaśniej w środku na desktopie */
  .ps-kontakt-card__inner{
    grid-template-columns: clamp(200px, 24%, 300px) 1fr;
    gap: clamp(16px, 2.2vw, 28px);
  }

  .ps-kontakt-card__photo{
    height: clamp(200px, 18vw, 280px);
  }
}

.ps-kontakt-card::after{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;

  height: 1px;
  background: var(--ps-line-soft);

  /* klucz: linia ma być NAD zdjęciem */
  z-index: 5;
  pointer-events: none;
}

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

/* ===============================
   INNER LAYOUT
   =============================== */

.ps-kontakt-card__inner{
  display: grid;
  grid-template-columns: clamp(220px, 28%, 340px) 1fr;
  gap: clamp(18px, 3vw, 36px);
  align-items: center;
}

/* ===============================
   PHOTO – sylwetka, przyklejona do dolnej linii (bez zasłaniania)
   =============================== */

.ps-kontakt-card__photo{
  position: relative;
  height: clamp(220px, 24vw, 320px);
  display: flex;
  align-items: flex-end;
  justify-content: center;
  background: transparent;

  /* przylega do dołu */
  margin-bottom: 0;
  padding-bottom: 0;

  /* zdjęcie ma być POD linią z ::after */
  z-index: 1;
}

.ps-kontakt-card__photo.is-empty{
  display: none;
}

.ps-kontakt-card__img{
  width: auto;
  height: 100%;
  max-width: 100%;
  object-fit: contain;
  object-position: center bottom;
  display: block;

  /* upewniamy się, że nie “wystaje” na dół i nie przykryje linii */
  position: relative;
  z-index: 1;
}

/* ===============================
   CONTENT
   =============================== */

.ps-kontakt-card__content{
  min-width: 0;
}

/* ===============================
   HEADER (pionowa linia + tekst)
   =============================== */

.ps-kontakt-card__header{
  display: grid;
  grid-template-columns: 18px 1fr;
  gap: 18px;
  align-items: center;
  margin-bottom: 18px;
  padding-bottom: 15px;
}

/* czerwona kreska: ciut cieńsza + minimalnie wyższa */
.ps-kontakt-card__bar{
  width: 0.75px;     /* było 1px */
  height: 52px;      /* było 48px */
  padding-left: 10px;
  margin-left: 4px;
  background: var(--ps-accent);
  border-radius: 2px;
}

/* ===============================
   NAME
   =============================== */

.ps-kontakt-card__name{
  margin: 0;
  line-height: 1.05;
  font-family: "Poppins", sans-serif;
  font-size: clamp(22px, 1.8vw, 34px);
  letter-spacing: .01em;
  color: var(--ps-text);
  display: flex;
  flex-wrap: wrap;
  gap: .25ch;
}

.ps-kontakt-card__name-light{
  font-weight: 300;

  text-transform: none;
}

.ps-kontakt-card__name-strong{
  font-weight: 700;
}

/* ===============================
   ROLE / CLAIM
   =============================== */

.ps-kontakt-card__role{
  margin: 6px 0 0;
  font-family: "Poppins", sans-serif;
  font-size: 1.2vw;
  line-height: 1.4;
  color: var(--ps-muted);
  font-weight: 300;
  text-transform: none;
  }

/* ===============================
   LIST
   =============================== */

.ps-kontakt-card__list{
  display: grid;
  gap: 8px; /* było 14px -> bliżej siebie */
  margin: 0;
  padding: 0;
  list-style: none;
}

.ps-kontakt-item{
  display: grid;
  grid-template-columns: 40px 1fr;
  align-items: center;
  gap: 12px; /* było 14px */
  min-width: 0;
}

/* IKONY – większe, bez tła i bez obramowania */
.ps-kontakt-item__icon{
  width: 40px;


  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;

  background: none;
  border: none;

  color: var(--ps-primary);
  font-size: 22px;
}

/* VALUE – wg specyfikacji */
.ps-kontakt-item__value{
  font-family: "Poppins", sans-serif;
  font-size: 16px;
  line-height: 1.45;
  color: #414141;
  min-width: 0;
  font-weight: 300;
}

.ps-kontakt-item__value a{
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color .2s ease, color .2s ease;
  word-break: break-word;
}

.ps-kontakt-item__value a:hover{
  color: var(--ps-primary);
  border-bottom-color: rgba(0,53,125,.30);
}

.ps-kontakt-item__value a:focus-visible{
  outline: 3px solid rgba(0,53,125,.22);
  outline-offset: 3px;
  border-bottom-color: transparent;
}

/* EMAIL – lekko techniczny look */
.ps-kontakt-item__value--email{
  text-transform: uppercase;
  letter-spacing: .02em;
}

/* ===============================
   AUTO-SHRINK: TEL + EMAIL (gdy się nie mieści)
   - nie łamiemy do 2 linii
   - zamiast tego zmniejszamy font + ellipsis
   =============================== */

.ps-kontakt-item__value--tel,
.ps-kontakt-item__value--email{
  font-size: clamp(8px, 3.6vw, 16px); /* było min 12px -> teraz 8px */
}

.ps-kontakt-item__value--tel a,
.ps-kontakt-item__value--email a{
  display: inline-block;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  word-break: normal; /* nadpisuje break-word z bazowego linka */
}

/* ===============================
   RESPONSYWNOŚĆ
   =============================== */

@media (max-width: 980px){
  .ps-kontakt-card__inner{
    grid-template-columns: 1fr;
    align-items: start;
  }

  .ps-kontakt-card__photo{
    height: 260px;
    padding-left: 14px;
    padding-right: 14px;
  }

  

  .ps-kontakt-card__img{
    object-position: left center;
  }
.ps-kontakt-card__header{
    grid-template-columns: 14px 1fr;
    gap: 14px;
  }

  .ps-kontakt-card__bar{
    height: 44px;
  }

  .ps-kontakt-card__role{
    font-size: 14px;
  }
}

@media (max-width: 520px){
  .ps-kontakt-card{
    margin: 18px 0 20px; /* 20px pod wizytówką */
  }

  .ps-kontakt-card__photo{
    height: 220px;
    padding-left: 12px;
    padding-right: 12px;
  }

  .ps-kontakt-item{
    grid-template-columns: 36px 1fr;
    gap: 10px;
  }

  .ps-kontakt-item__icon{
    font-size: 20px;
  }

  .ps-kontakt-card__list{
    gap: 7px;
    padding-bottom: 20px; /* klucz: oddech pod teleadresami, zanim zacznie się linia 1px */
  }

  .ps-kontakt-card__name{ font-size: 24px; }

}

/* ===============================
   REDUCED MOTION
   =============================== */

@media (prefers-reduced-motion: reduce){
  .ps-kontakt-card{
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
}


/* ==================================
   Kontakt – separator działu (WPBakery)
   ================================== */
.ps-kontakt-sep{
  background: var(--ps-primary, #00357d);
  color:#fff;
  font-family:"Teko", sans-serif;
  font-weight:400;
  font-size:22px;
  line-height:1;
  padding:12px 18px;
  margin:18px 0 22px;
  border-radius: 8px 8px 2px 2px;
  letter-spacing:.2px;
}
@media (max-width:640px){
  .ps-kontakt-sep{font-size:20px;padding:11px 14px;}
}
