/* ============================================================
   PH-Studio — main.css
   ============================================================ */

/* ── Reset & base ─────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
  font-family: 'Montserrat', sans-serif;
  background: #080810;
  color: #e8e4dc;
  width: 100%;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { cursor: pointer; font-family: 'Montserrat', sans-serif; }

/* ── Typography helpers ────────────────────────────────────── */
.ph-label {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 3px;
  color: #21AAE1;
  text-transform: uppercase;
  margin-bottom: 12px;
  display: block;
}

.ph-title {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(32px, 4vw, 52px);
  color: #fff;
  line-height: .95;
  margin-bottom: 12px;
}

.ph-title em { color: #21AAE1; font-style: normal; }

.ph-sub {
  font-size: 16px;
  font-weight: 400;
  color: rgba(255,255,255,.85);
  max-width: 560px;
  line-height: 1.75;
  margin-bottom: 40px;
}

/* ── Buttons ───────────────────────────────────────────────── */
.btn-blue {
  background: #21AAE1;
  color: #fff;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  border: none;
  padding: 14px 28px;
  transition: opacity .2s;
  display: inline-block;
}
.btn-blue:hover { opacity: .85; }

.btn-outline {
  background: transparent;
  color: #e8e4dc;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 2px;
  text-transform: uppercase;
  border: 1px solid rgba(232,228,220,.25);
  padding: 14px 24px;
  transition: border-color .2s, color .2s;
  display: inline-block;
}
.btn-outline:hover { border-color: #21AAE1; color: #21AAE1; }

.btn-sm { font-size: 10px; padding: 7px 14px; }

/* ── Divider ───────────────────────────────────────────────── */
.ph-divider {
  height: 1px;
  background: rgba(33,170,225,.12);
  margin: 0 32px;
}

/* ── Section wrapper ───────────────────────────────────────── */
.ph-section { padding: 64px 32px; }

/* ── NAV ───────────────────────────────────────────────────── */
.ph-nav {
  background: rgba(8,8,16,.97);
  border-bottom: 1px solid rgba(33,170,225,.2);
  padding: 0 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 60px;
  position: sticky;
  top: 0;
  z-index: 200;
}

.ph-nav__logo img,
.ph-nav__logo .custom-logo { height: 32px; width: auto; display: block; }
.ph-nav__logo .custom-logo-link { display: flex; align-items: center; }
.ph-nav__logo figure { margin: 0; line-height: 0; }
.ph-nav__logo span {
  font-family: 'Montserrat', sans-serif;
  font-size: 22px;
  letter-spacing: 3px;
  color: #fff;
}
.ph-nav__logo span em { color: #21AAE1; font-style: normal; }

.ph-nav__links {
  display: flex;
  gap: 20px;
  list-style: none;
}
.ph-nav__links a {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: rgba(232,228,220,.5);
  transition: color .2s;
}
.ph-nav__links a:hover { color: #21AAE1; }

.ph-nav__cta {
  background: #21AAE1;
  color: #fff;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  border: none;
  padding: 9px 18px;
}
.ph-nav__cta:hover { opacity: .85; }

/* Hamburger (mobile) */
.ph-nav__burger {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  padding: 4px;
}
.ph-nav__burger span {
  width: 22px;
  height: 2px;
  background: #e8e4dc;
  display: block;
  transition: .3s;
}

/* ── HERO ──────────────────────────────────────────────────── */
.ph-hero {
  min-height: 88vh;
  background: linear-gradient(150deg,#080810 0%,#0a0d14 50%,#0d1118 100%);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 80px 32px 64px;
  position: relative;
  overflow: hidden;
}

.ph-hero__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center right;
  opacity: .18;
  pointer-events: none;
}

.ph-hero__glow {
  position: absolute;
  top: 0; right: 0;
  width: 50%;
  height: 100%;
  background: radial-gradient(ellipse at 70% 50%, rgba(33,170,225,.06) 0%, transparent 70%);
  pointer-events: none;
}

.ph-hero__content { position: relative; z-index: 1; max-width: 700px; }

.ph-hero__kicker {
  font-family: 'Montserrat', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 4px;
  color: #21AAE1;
  text-transform: uppercase;
  margin-bottom: 20px;
}

.ph-hero__h1 {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(52px, 7vw, 92px);
  line-height: .93;
  color: #fff;
  margin-bottom: 28px;
}
.ph-hero__h1 em { color: #21AAE1; font-style: normal; }

.ph-hero__sub {
  font-size: 18px;
  font-weight: 400;
  color: rgba(255,255,255,.88);
  max-width: 520px;
  line-height: 1.75;
  margin-bottom: 40px;
}

.ph-hero__ctas { display: flex; gap: 12px; flex-wrap: wrap; }

/* Showreel trigger */
.ph-hero__showreel {
  display: flex;
  align-items: center;
  gap: 10px;
  background: none;
  border: none;
  color: rgba(232,228,220,.6);
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  font-family: 'Montserrat', sans-serif;
  transition: color .2s;
}
.ph-hero__showreel:hover { color: #21AAE1; }
.ph-hero__showreel-dot {
  width: 36px;
  height: 36px;
  border: 1px solid rgba(33,170,225,.4);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #21AAE1;
  font-size: 14px;
  flex-shrink: 0;
  transition: background .2s;
}
.ph-hero__showreel:hover .ph-hero__showreel-dot { background: rgba(33,170,225,.1); }

/* Stats strip */
.ph-hero__stats {
  display: flex;
  gap: 40px;
  margin-top: 56px;
  border-top: 1px solid rgba(33,170,225,.15);
  padding-top: 28px;
  position: relative;
  z-index: 1;
}
.ph-stat__n {
  font-family: 'Montserrat', sans-serif;
  font-size: 38px;
  color: #21AAE1;
  line-height: 1;
}
.ph-stat__l {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(255,255,255,.7);
  margin-top: 3px;
}

/* ── CLIENTS STRIP ─────────────────────────────────────────── */
.ph-clients {
  background: #0d0d1a;
  padding: 52px 32px;
  border-top: 1px solid rgba(33,170,225,.12);
  border-bottom: 1px solid rgba(33,170,225,.12);
}
.ph-clients__label {
  font-size: 11px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: rgba(255,255,255,.82);
  text-align: center;
  margin-bottom: 32px;
  font-family: 'Montserrat', sans-serif;
}
.ph-clients__row {
  display: flex;
  gap: 16px;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
}
.ph-clients__logo {
  font-family: 'Montserrat', sans-serif;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 2px;
  color: rgba(255,255,255,.82);
  transition: color .3s, transform .3s;
  padding: 8px 16px;
  border: 1px solid rgba(33,170,225,.08);
  background: rgba(33,170,225,.03);
}
.ph-clients__logo:hover { color: rgba(232,228,220,.9); border-color: rgba(33,170,225,.25); background: rgba(33,170,225,.07); transform: translateY(-2px); }

/* ── FILARY (SERVICES) ─────────────────────────────────────── */
.ph-filary__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: rgba(33,170,225,.1);
}

.ph-filar {
  background: #0d0d1a;
  padding: 36px 28px;
  cursor: pointer;
  transition: background .2s;
  position: relative;
  overflow: hidden;
}
.ph-filar:hover,
.ph-filar.is-active { background: #111122; }
.ph-filar.is-active { border-top: 2px solid #21AAE1; }

.ph-filar__num {
  font-family: 'Montserrat', sans-serif;
  font-size: 64px;
  color: rgba(33,170,225,.07);
  line-height: 1;
  position: absolute;
  top: 16px; right: 16px;
  pointer-events: none;
  user-select: none;
}
.ph-filar__icon {
  width: 36px;
  height: 36px;
  border: 1px solid rgba(33,170,225,.3);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #21AAE1;
  font-size: 16px;
  margin-bottom: 16px;
}
.ph-filar h3 {
  font-family: 'Montserrat', sans-serif;
  font-size: 26px;
  color: #fff;
  letter-spacing: 1px;
  margin-bottom: 10px;
}
.ph-filar p {
  font-size: 14px;
  font-weight: 400;
  color: rgba(255,255,255,.8);
  line-height: 1.6;
  margin-bottom: 16px;
}
.ph-filar__more {
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #21AAE1;
}

/* Detail panels */
.ph-detail {
  background: #080810;
  border-top: 1px solid rgba(33,170,225,.1);
  display: none;
}
.ph-detail.is-visible { display: block; }
.ph-detail__inner {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 48px;
  padding: 48px 32px;
}

.ph-detail__promise {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(28px, 3.5vw, 42px);
  color: #fff;
  line-height: 1;
  margin-bottom: 16px;
}
.ph-detail__promise em { color: #21AAE1; font-style: normal; }

.ph-detail__text {
  font-size: 15px;
  font-weight: 400;
  color: rgba(255,255,255,.85);
  line-height: 1.75;
  margin-bottom: 24px;
}

.ph-svc-list { list-style: none; }
.ph-svc-list li {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 11px 0;
  border-bottom: 1px solid rgba(33,170,225,.06);
}
.ph-svc-list li::before { content: '—'; color: #21AAE1; flex-shrink: 0; }
.ph-svc__name { font-size: 14px; font-weight: 600; color: #ffffff; margin-bottom: 3px; }
.ph-svc__desc { font-size: 13px; font-weight: 400; color: rgba(255,255,255,.8); line-height: 1.6; }

/* Price card */
.ph-price-card {
  background: #0d0d1a;
  border: 1px solid rgba(33,170,225,.18);
  padding: 28px;
  position: sticky;
  top: 70px;
}
.ph-price-card h4 {
  font-family: 'Montserrat', sans-serif;
  font-size: 20px;
  color: #fff;
  letter-spacing: 1px;
  margin-bottom: 6px;
}
.ph-price-card p {
  font-size: 12px;
  font-weight: 400;
  color: rgba(255,255,255,.8);
  line-height: 1.6;
  margin-bottom: 20px;
}
.ph-tag {
  font-size: 11px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  border: 1px solid rgba(33,170,225,.2);
  color: rgba(33,170,225,.6);
  padding: 4px 8px;
  display: inline-block;
  margin: 0 4px 4px 0;
}
.ph-price-card__tags { margin-bottom: 16px; }

/* ── PORTFOLIO ─────────────────────────────────────────────── */
.ph-portfolio__filters {
  display: flex;
  gap: 4px;
  margin-bottom: 32px;
  flex-wrap: wrap;
}

.ph-portfolio__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
}

.ph-port-item {
  aspect-ratio: 16/10;
  background: #0d0d1a;
  border: 1px solid rgba(33,170,225,.06);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 20px;
  position: relative;
  overflow: hidden;
  cursor: pointer;
  transition: border-color .3s;
}
.ph-port-item:hover { border-color: rgba(33,170,225,.35); }
.ph-port-item--large { grid-column: span 2; }

.ph-port-item__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .55;
  transition: opacity .4s, transform .4s;
}
.ph-port-item:hover .ph-port-item__img { opacity: .75; transform: scale(1.03); }

.ph-port-item__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(8,8,16,.85) 0%, transparent 60%);
  pointer-events: none;
}

.ph-port-item__content { position: relative; z-index: 1; }
.ph-port-item__cat {
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #21AAE1;
  margin-bottom: 4px;
  font-family: 'Montserrat', sans-serif;
}
.ph-port-item__title {
  font-size: 14px;
  font-weight: 400;
  color: rgba(232,228,220,.9);
}

/* ── PH-FILM+ PLANS ────────────────────────────────────────── */
.ph-plan-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: rgba(33,170,225,.1);
}

.ph-plan {
  background: #0d0d1a;
  padding: 36px 28px;
  display: flex;
  flex-direction: column;
}
.ph-plan--featured {
  background: #0e1218;
  border-top: 2px solid #21AAE1;
}
.ph-plan__badge {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #21AAE1;
  margin-bottom: 6px;
}
.ph-plan h3 {
  font-family: 'Montserrat', sans-serif;
  font-size: 26px;
  color: #fff;
  margin-bottom: 8px;
}
.ph-plan__desc {
  font-size: 12px;
  font-weight: 400;
  color: rgba(255,255,255,.8);
  line-height: 1.6;
  margin-bottom: 20px;
}
.ph-plan__items {
  list-style: none;
  flex: 1;
  margin-bottom: 20px;
}
.ph-plan__items li {
  font-size: 14px;
  font-weight: 400;
  color: rgba(255,255,255,.85);
  padding: 7px 0;
  border-bottom: 1px solid rgba(33,170,225,.06);
  display: flex;
  gap: 8px;
}
.ph-plan__items li::before { content: '✓'; color: #21AAE1; flex-shrink: 0; }

/* ── PROCESS ───────────────────────────────────────────────── */
.ph-steps {
  display: flex;
  gap: 0;
  position: relative;
}
.ph-steps::before {
  content: '';
  position: absolute;
  top: 22px; left: 22px; right: 22px;
  height: 1px;
  background: rgba(33,170,225,.15);
  z-index: 0;
}
.ph-step {
  flex: 1;
  padding: 0 16px;
  position: relative;
  z-index: 1;
}
.ph-step__dot {
  width: 44px;
  height: 44px;
  background: #0d0d1a;
  border: 1px solid rgba(33,170,225,.35);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  color: #21AAE1;
  margin-bottom: 16px;
}
.ph-step h4 {
  font-family: 'Montserrat', sans-serif;
  font-size: 16px;
  color: #fff;
  letter-spacing: 1px;
  margin-bottom: 6px;
}
.ph-step p {
  font-size: 14px;
  font-weight: 400;
  color: rgba(255,255,255,.82);
  line-height: 1.6;
}

/* ── TESTIMONIALS ──────────────────────────────────────────── */
.ph-testi-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
}
.ph-testi {
  background: #0d0d1a;
  padding: 28px;
  border: 1px solid rgba(33,170,225,.06);
}
.ph-testi__text {
  font-size: 15px;
  font-weight: 400;
  color: rgba(255,255,255,.88);
  line-height: 1.7;
  margin-bottom: 16px;
  font-style: italic;
}
.ph-testi__text::before {
  content: '\201C';
  color: #21AAE1;
  font-family: 'Montserrat', sans-serif;
  font-size: 28px;
  line-height: 0;
  vertical-align: -10px;
  margin-right: 3px;
}
.ph-testi__auth {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: rgba(255,255,255,.7);
}
.ph-testi__co { color: #21AAE1; }

/* ── TEAM ──────────────────────────────────────────────────── */
.ph-team-intro {
  position: relative;
  overflow: hidden;
  margin-bottom: 2px;
}
.ph-team-intro__img {
  width: 100%;
  max-height: 340px;
  object-fit: cover;
  object-position: center 30%;
  opacity: .35;
}
.ph-team-intro__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(8,8,16,.95) 0%, rgba(8,8,16,.6) 60%, transparent 100%);
}
.ph-team-intro__text {
  position: absolute;
  top: 50%;
  left: 32px;
  transform: translateY(-50%);
}

.ph-team-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
}
.ph-team-card {
  background: #0d0d1a;
  border: 1px solid rgba(33,170,225,.06);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.ph-team-card__photo {
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
  object-position: center top;
  opacity: .8;
  transition: opacity .3s;
}
.ph-team-card:hover .ph-team-card__photo { opacity: 1; }
.ph-team-card__body { padding: 24px 28px; }
.ph-team-card__name {
  font-family: 'Montserrat', sans-serif;
  font-size: 26px;
  color: #fff;
  letter-spacing: 1px;
  margin-bottom: 2px;
}
.ph-team-card__role {
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #21AAE1;
  margin-bottom: 14px;
  font-family: 'Montserrat', sans-serif;
}
.ph-team-card__bio {
  font-size: 14px;
  font-weight: 400;
  color: rgba(255,255,255,.82);
  line-height: 1.7;
}

/* ── FAQ ───────────────────────────────────────────────────── */
.ph-faq-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: rgba(33,170,225,.08);
}
.ph-faq-item {
  background: #080810;
  padding: 24px 28px;
  cursor: pointer;
  transition: background .2s;
}
.ph-faq-item:hover { background: #0a0a14; }
.ph-faq-item.is-open { background: #0a0a14; }
.ph-faq-q {
  font-size: 15px;
  font-weight: 500;
  color: #ffffff;
  margin-bottom: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}
.ph-faq-q::after {
  content: '+';
  color: #21AAE1;
  font-size: 18px;
  font-weight: 400;
  flex-shrink: 0;
  transition: transform .3s;
}
.ph-faq-item.is-open .ph-faq-q::after { transform: rotate(45deg); }
.ph-faq-a {
  font-size: 14px;
  font-weight: 400;
  color: rgba(255,255,255,.82);
  line-height: 1.6;
  margin-top: 10px;
  display: none;
}
.ph-faq-item.is-open .ph-faq-a { display: block; }

/* ── CONTACT ───────────────────────────────────────────────── */
.ph-kontakt__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
}
.form-label {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: rgba(33,170,225,.9);
  display: block;
  margin-bottom: 7px;
  font-family: 'Montserrat', sans-serif;
}
.form-input {
  width: 100%;
  background: rgba(33,170,225,.05);
  border: 1px solid rgba(33,170,225,.25);
  color: #ffffff;
  font-family: 'Montserrat', sans-serif;
  font-size: 15px;
  font-weight: 400;
  padding: 13px 16px;
  outline: none;
  margin-bottom: 16px;
  transition: border-color .2s;
  -webkit-appearance: none;
  appearance: none;
}
.form-input:focus { border-color: rgba(33,170,225,.45); }

.ki-label {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: rgba(33,170,225,.9);
  margin-bottom: 6px;
  font-family: 'Montserrat', sans-serif;
}
.ki-val {
  font-size: 17px;
  font-weight: 500;
  color: #ffffff;
  margin-bottom: 24px;
}
.ki-val a { color: #21AAE1; }

.ph-konsultacja-box {
  border: 1px solid rgba(33,170,225,.18);
  padding: 24px;
  margin-top: 8px;
}
.ph-konsultacja-box .ki-label { margin-bottom: 10px; }
.ph-konsultacja-box p {
  font-size: 14px;
  font-weight: 400;
  color: rgba(255,255,255,.8);
  line-height: 1.6;
  margin-bottom: 18px;
}

/* Form notice */
.ph-form-notice {
  font-size: 12px;
  padding: 10px 14px;
  margin-top: 8px;
  display: none;
}
.ph-form-notice--ok  { background: rgba(33,170,225,.1); color: #21AAE1; }
.ph-form-notice--err { background: rgba(225,60,60,.08); color: #e13c3c; }

/* ── FOOTER ────────────────────────────────────────────────── */
.ph-footer {
  background: #040408;
  border-top: 1px solid rgba(33,170,225,.08);
  padding: 32px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
}
.ph-footer img { height: 20px; opacity: .25; }
.ph-footer__logo-text {
  font-family: 'Montserrat', sans-serif;
  font-size: 18px;
  letter-spacing: 3px;
  color: rgba(255,255,255,.2);
}
.ph-footer__copy {
  font-size: 11px;
  color: rgba(255,255,255,.82);
}
.ph-footer__links {
  display: flex;
  gap: 16px;
  list-style: none;
}
.ph-footer__links a {
  font-size: 10px;
  color: rgba(255,255,255,.6);
  letter-spacing: 1px;
  transition: color .2s;
}
.ph-footer__links a:hover { color: rgba(255,255,255,.8); }

/* ── LIGHTBOX (showreel) ───────────────────────────────────── */
.ph-lightbox {
  position: fixed;
  inset: 0;
  background: rgba(4,4,8,.95);
  z-index: 1000;
  display: none;
  align-items: center;
  justify-content: center;
}
.ph-lightbox.is-open { display: flex; }
.ph-lightbox__inner {
  width: 90%;
  max-width: 960px;
  position: relative;
}
.ph-lightbox__ratio {
  position: relative;
  padding-top: 56.25%;
  background: #000;
}
.ph-lightbox__ratio iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
}
.ph-lightbox__close {
  position: absolute;
  top: -40px;
  right: 0;
  background: none;
  border: none;
  color: #e8e4dc;
  font-size: 28px;
  line-height: 1;
  opacity: .6;
  transition: opacity .2s;
}
.ph-lightbox__close:hover { opacity: 1; }

/* ── RESPONSIVE ────────────────────────────────────────────── */
@media (max-width: 1100px) {
  .ph-filary__grid       { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 900px) {
  .ph-filary__grid       { grid-template-columns: 1fr; }
  .ph-detail__inner      { grid-template-columns: 1fr; }
  .ph-price-card         { position: static; }
  .ph-portfolio__grid    { grid-template-columns: 1fr; }
  .ph-port-item--large   { grid-column: auto; }
  .ph-plan-grid          { grid-template-columns: 1fr; }
  .ph-testi-grid         { grid-template-columns: 1fr; }
  .ph-team-grid          { grid-template-columns: 1fr; }
  .ph-faq-grid           { grid-template-columns: 1fr; }
  .ph-kontakt__inner     { grid-template-columns: 1fr; gap: 40px; }
  .ph-steps              { flex-direction: column; }
  .ph-steps::before      { display: none; }
  .ph-step               { padding: 0 0 24px 56px; }
  .ph-step__dot          { position: absolute; left: 0; }
  .ph-step               { position: relative; }
}

@media (max-width: 640px) {
  .ph-nav { padding: 0 16px; }
  .ph-nav__links { display: none; }
  .ph-nav__links.is-open {
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 60px; left: 0; right: 0;
    background: rgba(8,8,16,.98);
    padding: 24px;
    border-bottom: 1px solid rgba(33,170,225,.1);
    z-index: 199;
  }
  .ph-nav__cta  { display: none; }
  .ph-nav__burger { display: flex; }

  .ph-hero       { padding: 60px 16px 48px; }
  .ph-section    { padding: 48px 16px; }
  .ph-hero__stats { gap: 24px; flex-wrap: wrap; }
  .ph-footer     { padding: 24px 16px; flex-direction: column; align-items: flex-start; }
  .ph-divider    { margin: 0 16px; }
  .ph-clients    { padding: 28px 16px; }
}

/* ============================================================
   MONTSERRAT HEADING WEIGHTS
   ============================================================ */
.ph-hero__h1,
.ph-title,
.ph-stat__n,
.ph-filar h3,
.ph-plan h3,
.ph-step h4,
.ph-team-card__name,
.ph-detail__promise,
.ph-footer__logo-text {
  font-weight: 800;
  letter-spacing: -.5px;
}

.ph-nav__logo span,
.ph-clients__logo {
  font-weight: 700;
}

.ph-hero__h1 {
  font-weight: 900;
  letter-spacing: -2px;
  line-height: .90;
}

/* ============================================================
   SUBPAGE SHARED STYLES
   ============================================================ */

/* Sub-nav */
.ph-subnav {
  background: rgba(8,8,16,.97);
  border-bottom: 1px solid rgba(33,170,225,.2);
  padding: 0 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 60px;
  position: sticky;
  top: 0;
  z-index: 200;
  backdrop-filter: blur(8px);
}
.ph-subnav__logo {
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: 18px;
  letter-spacing: 4px;
  color: #fff;
  text-decoration: none;
}
.ph-subnav__logo em { color: #21AAE1; font-style: normal; }
.ph-subnav__back {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(232,228,220,.5);
  display: flex;
  align-items: center;
  gap: 6px;
  transition: color .2s;
  text-decoration: none;
}
.ph-subnav__back:hover { color: #21AAE1; }

/* Subpage hero — split layout */
.ph-shero {
  min-height: 92vh;
  display: grid;
  grid-template-columns: 1fr 1fr;
  position: relative;
  overflow: hidden;
}
.ph-shero__left {
  padding: 80px 56px 80px 48px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-right: 1px solid rgba(33,170,225,.15);
  position: relative;
  z-index: 1;
}
.ph-shero__right {
  background: #0d0d1a;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 48px;
  position: relative;
  overflow: hidden;
}
.ph-shero__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: .22;
}
.ph-shero__eyebrow {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  letter-spacing: 4px;
  color: #21AAE1;
  text-transform: uppercase;
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.ph-shero__eyebrow::before {
  content: '';
  width: 28px;
  height: 1px;
  background: #21AAE1;
}
.ph-shero__h1 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  font-size: clamp(44px, 6vw, 76px);
  line-height: .92;
  letter-spacing: -2px;
  color: #fff;
  margin-bottom: 28px;
}
.ph-shero__h1 em { color: #21AAE1; font-style: normal; }
.ph-shero__sub {
  font-size: 16px;
  font-weight: 400;
  color: rgba(255,255,255,.82);
  max-width: 420px;
  line-height: 1.75;
  margin-bottom: 40px;
}
.ph-shero__stats {
  display: flex;
  gap: 36px;
  margin-top: 48px;
  padding-top: 24px;
  border-top: 1px solid rgba(33,170,225,.15);
}
.ph-shero__stat-n {
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: 34px;
  color: #21AAE1;
  line-height: 1;
}
.ph-shero__stat-l {
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(255,255,255,.6);
  margin-top: 3px;
}
.ph-shero__bg-text {
  position: absolute;
  top: -20px; right: -20px;
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  font-size: 180px;
  color: rgba(33,170,225,.03);
  line-height: 1;
  pointer-events: none;
  user-select: none;
}
.ph-shero__menu-label {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: rgba(33,170,225,.4);
  margin-bottom: 16px;
}
.ph-shero__menu-item {
  background: rgba(33,170,225,.04);
  border: 1px solid rgba(33,170,225,.08);
  padding: 14px 18px;
  display: flex;
  align-items: center;
  gap: 14px;
  transition: background .2s;
  margin-bottom: 1px;
  text-decoration: none;
}
.ph-shero__menu-item:hover { background: rgba(33,170,225,.09); }
.ph-shero__menu-num {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  color: #21AAE1;
}
.ph-shero__menu-name {
  font-size: 13px;
  font-weight: 400;
  color: #e8e4dc;
}
.ph-shero__menu-arrow { margin-left: auto; color: rgba(33,170,225,.4); font-size: 14px; }

/* Section */
.ph-s { padding: 80px 48px; border-top: 1px solid rgba(33,170,225,.12); }
.ph-s--alt { background: #0d0d1a; }
.ph-s__eyebrow {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #21AAE1;
  margin-bottom: 12px;
  display: block;
}
.ph-s__title {
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: clamp(32px, 4vw, 52px);
  color: #fff;
  line-height: .95;
  letter-spacing: -1px;
  margin-bottom: 14px;
}
.ph-s__title em { color: #21AAE1; font-style: normal; }
.ph-s__sub {
  font-size: 15px;
  font-weight: 400;
  color: rgba(255,255,255,.82);
  max-width: 560px;
  line-height: 1.75;
  margin-bottom: 48px;
}
.ph-rule { height: 1px; background: rgba(33,170,225,.12); margin: 0 48px; }

/* Problem/Value cards */
.ph-cards-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: rgba(33,170,225,.1);
}
.ph-card {
  background: #080810;
  padding: 36px 28px;
}
.ph-card--highlight {
  background: #0d0d1a;
  border-top: 2px solid #21AAE1;
}
.ph-card__icon { font-size: 28px; color: rgba(255,255,255,.82); margin-bottom: 16px; }
.ph-card--highlight .ph-card__icon { color: #21AAE1; }
.ph-card__title {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 18px;
  color: #fff;
  letter-spacing: -.3px;
  margin-bottom: 10px;
}
.ph-card__text { font-size: 14px; font-weight: 400; color: rgba(255,255,255,.82); line-height: 1.7; }
.ph-card--highlight .ph-card__text { color: rgba(232,228,220,.7); }

/* Service block */
.ph-svc-block {
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: rgba(33,170,225,.08);
  gap: 1px;
  margin-bottom: 1px;
}
.ph-svc-block__content { background: #080810; padding: 48px 40px; }
.ph-svc-block__visual {
  background: #0d0d1a;
  padding: 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.ph-svc-block--rev .ph-svc-block__content { order: 2; background: #0d0d1a; }
.ph-svc-block--rev .ph-svc-block__visual { order: 1; background: #080810; }

.ph-svc-block__num {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  color: #21AAE1;
  margin-bottom: 8px;
  letter-spacing: 2px;
}
.ph-svc-block__name {
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: 28px;
  color: #fff;
  letter-spacing: -1px;
  margin-bottom: 14px;
}
.ph-svc-block__desc {
  font-size: 14px;
  font-weight: 400;
  color: rgba(255,255,255,.82);
  line-height: 1.75;
  margin-bottom: 24px;
}
.ph-svc-block__list { list-style: none; }
.ph-svc-block__list li {
  font-size: 13px;
  font-weight: 400;
  color: rgba(255,255,255,.82);
  padding: 9px 0;
  border-bottom: 1px solid rgba(33,170,225,.07);
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
.ph-svc-block__list li::before { content: '—'; color: #21AAE1; flex-shrink: 0; }
.ph-svc-block__for {
  margin-top: 20px;
  padding: 16px;
  background: rgba(33,170,225,.04);
  border-left: 2px solid #21AAE1;
}
.ph-svc-block__for-label {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #21AAE1;
  margin-bottom: 6px;
}
.ph-svc-block__for-text { font-size: 14px; font-weight: 400; color: rgba(255,255,255,.8); line-height: 1.6; }

/* Visual photo box */
.ph-visual-img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  display: block;
}
.ph-visual-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 16px; }
.ph-vtag {
  font-size: 11px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  border: 1px solid rgba(33,170,225,.2);
  color: rgba(33,170,225,.6);
  padding: 4px 9px;
}

/* For-whom grid */
.ph-forwho {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: rgba(33,170,225,.1);
}
.ph-forwho__item { background: #080810; padding: 28px 24px; }
.ph-forwho__icon { font-size: 24px; color: #21AAE1; margin-bottom: 12px; }
.ph-forwho__title {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 16px;
  color: #fff;
  margin-bottom: 8px;
}
.ph-forwho__text { font-size: 12px; font-weight: 400; color: rgba(255,255,255,.82); line-height: 1.6; }

/* Process timeline */
.ph-process {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0;
}
.ph-process__step {
  padding: 28px 20px;
  border-right: 1px solid rgba(33,170,225,.12);
}
.ph-process__step:last-child { border-right: none; }
.ph-process__dot {
  width: 36px;
  height: 36px;
  border: 1px solid rgba(33,170,225,.35);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  color: #21AAE1;
  margin-bottom: 14px;
  background: #080810;
}
.ph-process__name {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 14px;
  color: #fff;
  margin-bottom: 6px;
}
.ph-process__desc { font-size: 11px; font-weight: 400; color: rgba(255,255,255,.82); line-height: 1.6; }

/* Deliverables grid */
.ph-deliverables {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: rgba(33,170,225,.1);
}
.ph-del {
  background: #0d0d1a;
  padding: 24px 20px;
  display: flex;
  gap: 14px;
  align-items: flex-start;
}
.ph-del__icon { color: #21AAE1; font-size: 20px; flex-shrink: 0; margin-top: 2px; }
.ph-del__title { font-size: 13px; font-weight: 600; color: #fff; margin-bottom: 4px; }
.ph-del__desc { font-size: 12px; font-weight: 400; color: rgba(255,255,255,.82); line-height: 1.55; }

/* Pakiet / CTA box */
.ph-pakiet {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: rgba(33,170,225,.1);
}
.ph-pakiet__left { background: #0d0d1a; padding: 48px 40px; }
.ph-pakiet__right { background: #111125; padding: 48px 40px; border-top: 2px solid #21AAE1; }
.ph-pakiet__title {
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: 26px;
  color: #fff;
  letter-spacing: -1px;
  margin-bottom: 12px;
}
.ph-pakiet__desc { font-size: 14px; font-weight: 400; color: rgba(255,255,255,.82); line-height: 1.7; margin-bottom: 24px; }
.ph-pakiet__list { list-style: none; margin-bottom: 28px; }
.ph-pakiet__list li {
  font-size: 13px;
  font-weight: 400;
  color: rgba(232,228,220,.7);
  padding: 8px 0;
  border-bottom: 1px solid rgba(33,170,225,.07);
  display: flex;
  gap: 10px;
}
.ph-pakiet__list li::before { content: '✓'; color: #21AAE1; flex-shrink: 0; }
.ph-pakiet__price {
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: 22px;
  color: #21AAE1;
  margin-bottom: 6px;
}
.ph-pakiet__note {
  font-size: 11px;
  font-family: 'Montserrat', sans-serif;
  color: rgba(33,170,225,.4);
  margin-bottom: 24px;
}

/* Subpage FAQ */
.ph-sfaq {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: rgba(33,170,225,.08);
}
.ph-sfaq__item { background: #080810; }
.ph-sfaq__q {
  padding: 20px 24px;
  font-size: 14px;
  font-weight: 500;
  color: #fff;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: background .2s;
  gap: 12px;
}
.ph-sfaq__q:hover { background: #0a0a14; }
.ph-sfaq__q i { color: #21AAE1; font-size: 14px; transition: transform .25s; flex-shrink: 0; }
.ph-sfaq__item.is-open .ph-sfaq__q { background: #0a0a14; }
.ph-sfaq__item.is-open .ph-sfaq__q i { transform: rotate(45deg); }
.ph-sfaq__a {
  padding: 0 24px;
  max-height: 0;
  overflow: hidden;
  transition: max-height .35s ease, padding .25s;
  font-size: 13px;
  font-weight: 400;
  color: rgba(255,255,255,.78);
  line-height: 1.7;
}
.ph-sfaq__item.is-open .ph-sfaq__a { max-height: 320px; padding: 0 24px 20px; }

/* Subpage contact CTA */
.ph-scta {
  background: #0d0d1a;
  padding: 72px 48px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: start;
}
.ph-scta__h2 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: clamp(32px, 4vw, 48px);
  color: #fff;
  line-height: .95;
  letter-spacing: -1px;
  margin-bottom: 16px;
}
.ph-scta__h2 em { color: #21AAE1; font-style: normal; }
.ph-scta__p { font-size: 15px; font-weight: 400; color: rgba(255,255,255,.82); line-height: 1.7; margin-bottom: 32px; }
.ph-scta__contact { display: flex; flex-direction: column; gap: 12px; }
.ph-scta__contact a { color: #21AAE1; font-weight: 500; }

/* Testimonials */
.ph-testi-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: rgba(33,170,225,.08);
}
.ph-testi-2__item { background: #080810; padding: 36px 32px; }
.ph-testi-2__co {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #21AAE1;
  margin-bottom: 4px;
}
.ph-testi-2__svc { font-size: 11px; color: rgba(33,170,225,.45); margin-bottom: 14px; }
.ph-testi-2__q {
  font-size: 14px;
  font-weight: 400;
  color: rgba(232,228,220,.75);
  line-height: 1.7;
  font-style: italic;
  margin-bottom: 12px;
}
.ph-testi-2__q::before {
  content: '\201C';
  color: #21AAE1;
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  font-size: 28px;
  line-height: 0;
  vertical-align: -10px;
  margin-right: 3px;
}
.ph-testi-2__author { font-size: 12px; font-weight: 500; letter-spacing: 1px; text-transform: uppercase; color: rgba(255,255,255,.65); }

/* ROI stats */
.ph-roi {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: rgba(33,170,225,.1);
  margin-bottom: 48px;
}
.ph-roi__card { background: #080810; padding: 32px 28px; }
.ph-roi__n {
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  font-size: 40px;
  color: #21AAE1;
  line-height: 1;
  letter-spacing: -2px;
  margin-bottom: 8px;
}
.ph-roi__title { font-size: 13px; font-weight: 600; color: #fff; margin-bottom: 6px; }
.ph-roi__desc { font-size: 12px; font-weight: 400; color: rgba(255,255,255,.82); line-height: 1.6; }

/* Events grid */
.ph-events {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: rgba(33,170,225,.1);
}
.ph-events__item { background: #080810; padding: 24px 20px; position: relative; overflow: hidden; }
.ph-events__icon { font-size: 24px; color: #21AAE1; margin-bottom: 10px; }
.ph-events__name {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 15px;
  color: #fff;
  margin-bottom: 6px;
}
.ph-events__desc { font-size: 11px; font-weight: 400; color: rgba(255,255,255,.82); line-height: 1.6; }
.ph-events__ghost {
  position: absolute;
  bottom: -10px; right: -8px;
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  font-size: 56px;
  color: rgba(33,170,225,.04);
  line-height: 1;
  pointer-events: none;
}

/* Agencje banner */
.ph-agencje {
  background: #111125;
  border: 1px solid rgba(33,170,225,.2);
  padding: 40px 48px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 32px;
  align-items: center;
}
.ph-agencje__badge {
  display: inline-block;
  background: rgba(33,170,225,.1);
  color: #21AAE1;
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 4px 10px;
  margin-bottom: 10px;
}
.ph-agencje h3 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: 26px;
  color: #fff;
  letter-spacing: -1px;
  margin-bottom: 8px;
}
.ph-agencje p { font-size: 14px; font-weight: 400; color: rgba(255,255,255,.82); line-height: 1.7; max-width: 600px; }

/* Stream spec */
.ph-stream-spec {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: rgba(33,170,225,.08);
  margin-top: 32px;
}
.ph-spec-item { background: #111125; padding: 20px 24px; }
.ph-spec-label {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(33,170,225,.5);
  margin-bottom: 6px;
}
.ph-spec-val { font-size: 13px; font-weight: 400; color: #e8e4dc; }

/* Technika grid */
.ph-technika {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: rgba(33,170,225,.1);
}
.ph-technika__item { background: #0d0d1a; padding: 28px 24px; }
.ph-technika__icon { font-size: 26px; color: #21AAE1; margin-bottom: 12px; }
.ph-technika__name {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 16px;
  color: #fff;
  margin-bottom: 6px;
}
.ph-technika__desc { font-size: 12px; font-weight: 400; color: rgba(255,255,255,.82); line-height: 1.6; }

/* Breadcrumb */
.ph-breadcrumb {
  padding: 12px 48px;
  font-size: 11px;
  color: rgba(255,255,255,.6);
  display: flex;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid rgba(33,170,225,.08);
}
.ph-breadcrumb a { color: rgba(33,170,225,.6); transition: color .2s; }
.ph-breadcrumb a:hover { color: #21AAE1; }
.ph-breadcrumb__sep { color: rgba(33,170,225,.25); }

/* ============================================================
   BLOG STYLES
   ============================================================ */

.ph-blog-hero {
  background: #0a0a14;
  padding: 72px 48px 56px;
  border-bottom: 1px solid rgba(33,170,225,.12);
}
.ph-blog-hero__eyebrow {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  letter-spacing: 4px;
  color: #21AAE1;
  text-transform: uppercase;
  margin-bottom: 16px;
}
.ph-blog-hero__h1 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  font-size: clamp(36px, 5vw, 64px);
  color: #fff;
  line-height: .92;
  letter-spacing: -2px;
  margin-bottom: 16px;
}
.ph-blog-hero__h1 em { color: #21AAE1; font-style: normal; }
.ph-blog-hero__sub { font-size: 15px; font-weight: 400; color: rgba(255,255,255,.82); max-width: 540px; line-height: 1.7; }

.ph-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: rgba(33,170,225,.08);
  padding: 48px;
}
.ph-blog-card {
  background: #080810;
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(33,170,225,.06);
  transition: border-color .3s;
  text-decoration: none;
  color: inherit;
}
.ph-blog-card:hover { border-color: rgba(33,170,225,.3); }
.ph-blog-card__thumb {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  display: block;
  opacity: .8;
  transition: opacity .3s;
}
.ph-blog-card:hover .ph-blog-card__thumb { opacity: 1; }
.ph-blog-card__thumb-placeholder {
  width: 100%;
  aspect-ratio: 16/9;
  background: #0d0d1a;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
  color: rgba(33,170,225,.2);
}
.ph-blog-card__body { padding: 24px 20px; flex: 1; display: flex; flex-direction: column; }
.ph-blog-card__cat {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #21AAE1;
  margin-bottom: 8px;
}
.ph-blog-card__title {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 17px;
  color: #fff;
  line-height: 1.3;
  letter-spacing: -.3px;
  margin-bottom: 10px;
  flex: 1;
}
.ph-blog-card__excerpt {
  font-size: 13px;
  font-weight: 400;
  color: rgba(255,255,255,.82);
  line-height: 1.6;
  margin-bottom: 16px;
}
.ph-blog-card__meta {
  font-size: 10px;
  color: rgba(255,255,255,.6);
  letter-spacing: 1px;
  text-transform: uppercase;
  font-family: 'Montserrat', sans-serif;
  display: flex;
  gap: 12px;
  border-top: 1px solid rgba(33,170,225,.07);
  padding-top: 12px;
}

/* Single post */
.ph-post-hero {
  background: #0a0a14;
  padding: 72px 48px 56px;
  border-bottom: 1px solid rgba(33,170,225,.12);
  display: grid;
  grid-template-columns: 1fr 400px;
  gap: 48px;
  align-items: start;
}
.ph-post-cat {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #21AAE1;
  margin-bottom: 16px;
}
.ph-post-h1 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  font-size: clamp(32px, 4.5vw, 56px);
  color: #fff;
  line-height: .92;
  letter-spacing: -2px;
  margin-bottom: 20px;
}
.ph-post-meta {
  font-size: 11px;
  color: rgba(255,255,255,.6);
  font-family: 'Montserrat', sans-serif;
  letter-spacing: 1px;
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}
.ph-post-meta span { color: rgba(33,170,225,.5); }
.ph-post-thumb {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  display: block;
}
.ph-post-content {
  max-width: 760px;
  margin: 0 auto;
  padding: 64px 48px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.85;
  color: rgba(232,228,220,.8);
}
.ph-post-content h2 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: 28px;
  color: #fff;
  margin: 40px 0 16px;
  letter-spacing: -1px;
}
.ph-post-content h3 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 22px;
  color: #fff;
  margin: 32px 0 12px;
  letter-spacing: -.5px;
}
.ph-post-content p { margin-bottom: 20px; }
.ph-post-content ul, .ph-post-content ol { padding-left: 24px; margin-bottom: 20px; }
.ph-post-content li { margin-bottom: 6px; }
.ph-post-content a { color: #21AAE1; text-decoration: underline; text-underline-offset: 3px; }
.ph-post-content strong { color: #fff; font-weight: 600; }
.ph-post-content blockquote {
  border-left: 3px solid #21AAE1;
  padding: 12px 24px;
  margin: 28px 0;
  font-style: italic;
  color: rgba(232,228,220,.6);
  background: rgba(33,170,225,.03);
}
.ph-post-content img { max-width: 100%; margin: 24px 0; }

.ph-post-cta {
  background: #0d0d1a;
  padding: 56px 48px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 32px;
  align-items: center;
  border-top: 1px solid rgba(33,170,225,.12);
}
.ph-post-cta h3 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: 28px;
  color: #fff;
  letter-spacing: -1px;
  margin-bottom: 8px;
}
.ph-post-cta p { font-size: 14px; font-weight: 400; color: rgba(255,255,255,.82); }

/* Latest posts on homepage */
.ph-latest {
  background: #0a0a14;
  padding: 64px 32px;
}
.ph-latest__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  margin-top: 40px;
}
.ph-latest__card {
  background: #0d0d1a;
  padding: 28px;
  border: 1px solid rgba(33,170,225,.06);
  text-decoration: none;
  color: inherit;
  transition: border-color .3s;
  display: block;
}
.ph-latest__card:hover { border-color: rgba(33,170,225,.3); }
.ph-latest__cat {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #21AAE1;
  margin-bottom: 8px;
}
.ph-latest__title {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 16px;
  color: #fff;
  line-height: 1.35;
  margin-bottom: 10px;
}
.ph-latest__excerpt { font-size: 14px; font-weight: 400; color: rgba(255,255,255,.8); line-height: 1.6; }
.ph-latest__more { font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: #21AAE1; margin-top: 40px; display: inline-block; }

/* ── Subpage Responsive ────────────────────────────────────── */
@media (max-width: 960px) {
  .ph-shero { grid-template-columns: 1fr; }
  .ph-shero__right { display: none; }
  .ph-shero__left { padding: 64px 24px; }
  .ph-svc-block, .ph-svc-block--rev { grid-template-columns: 1fr; }
  .ph-svc-block--rev .ph-svc-block__content { order: 0; }
  .ph-svc-block--rev .ph-svc-block__visual { order: 1; }
  .ph-pakiet { grid-template-columns: 1fr; }
  .ph-sfaq { grid-template-columns: 1fr; }
  .ph-scta { grid-template-columns: 1fr; gap: 40px; }
  .ph-forwho { grid-template-columns: 1fr 1fr; }
  .ph-events { grid-template-columns: 1fr 1fr; }
  .ph-process { grid-template-columns: 1fr 1fr; }
  .ph-agencje { grid-template-columns: 1fr; }
  .ph-blog-grid { grid-template-columns: 1fr 1fr; padding: 24px; }
  .ph-post-hero { grid-template-columns: 1fr; }
  .ph-latest__grid { grid-template-columns: 1fr; }
  .ph-s { padding: 56px 24px; }
  .ph-rule { margin: 0 24px; }
  .ph-breadcrumb { padding: 12px 24px; }
  .ph-subnav { padding: 0 24px; }
}

@media (max-width: 640px) {
  .ph-cards-3, .ph-roi { grid-template-columns: 1fr; }
  .ph-deliverables { grid-template-columns: 1fr; }
  .ph-forwho, .ph-events { grid-template-columns: 1fr; }
  .ph-process { grid-template-columns: 1fr; }
  .ph-stream-spec { grid-template-columns: 1fr; }
  .ph-blog-grid { grid-template-columns: 1fr; padding: 16px; }
  .ph-post-content { padding: 40px 16px; }
  .ph-technika { grid-template-columns: 1fr; }
  .ph-testi-2 { grid-template-columns: 1fr; }
}

/* ── FILAR DEEP LINK STRIP ────────────────────────────────── */
.ph-filar-deeplink {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 20px 32px;
  background: rgba(33,170,225,.04);
  border-top: 1px solid rgba(33,170,225,.12);
  flex-wrap: wrap;
}
.ph-filar-deeplink__label {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: rgba(33,170,225,.4);
  margin-bottom: 4px;
}
.ph-filar-deeplink__text {
  font-size: 12px;
  font-weight: 400;
  color: rgba(255,255,255,.82);
  line-height: 1.5;
}
.ph-filar-deeplink__cta {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: transparent;
  border: 1px solid rgba(33,170,225,.3);
  color: #21AAE1;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  padding: 12px 20px;
  text-decoration: none;
  transition: background .2s, border-color .2s, color .2s;
  white-space: nowrap;
  font-family: 'Montserrat', sans-serif;
}
.ph-filar-deeplink__cta:hover {
  background: rgba(33,170,225,.1);
  border-color: #21AAE1;
  color: #fff;
}
.ph-filar-deeplink__cta i { font-size: 14px; transition: transform .2s; }
.ph-filar-deeplink__cta:hover i { transform: translateX(3px); }

/* ============================================================
   BLOG PAGE (home.php + archive.php)
   ============================================================ */

/* ── Blog hero ─────────────────────────────────────────────── */
.ph-blog-page__hero {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 48px;
  align-items: center;
  padding: 72px 48px 56px;
  background: #0a0a14;
  border-bottom: 1px solid rgba(33,170,225,.12);
  position: relative;
  overflow: hidden;
}
.ph-blog-page__hero--archive { grid-template-columns: 1fr 200px; }

.ph-blog-page__h1 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  font-size: clamp(36px, 5vw, 64px);
  color: #fff;
  line-height: .91;
  letter-spacing: -2px;
  margin-bottom: 18px;
}
.ph-blog-page__h1 em { color: #21AAE1; font-style: normal; }

.ph-blog-page__sub {
  font-size: 15px;
  font-weight: 400;
  color: rgba(255,255,255,.82);
  max-width: 520px;
  line-height: 1.75;
}

.ph-blog-page__hero-deco { position: relative; }
.ph-blog-page__hero-num {
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  font-size: 80px;
  color: rgba(33,170,225,.04);
  line-height: 1;
  letter-spacing: -2px;
  position: absolute;
  top: -20px; right: -10px;
  white-space: nowrap;
  pointer-events: none;
}
.ph-blog-page__hero-topics {
  display: flex;
  flex-direction: column;
  gap: 8px;
  position: relative;
  z-index: 1;
}
.ph-blog-page__topic {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 1px;
  color: rgba(255,255,255,.82);
  padding: 8px 14px;
  border: 1px solid rgba(33,170,225,.08);
  background: rgba(33,170,225,.03);
}
.ph-blog-page__topic i { color: rgba(33,170,225,.4); font-size: 14px; }

/* ── Category filter ───────────────────────────────────────── */
.ph-blog-page__filter {
  display: flex;
  gap: 4px;
  padding: 20px 48px;
  background: #080810;
  border-bottom: 1px solid rgba(33,170,225,.08);
  flex-wrap: wrap;
}
.ph-blog-page__filter-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  border: 1px solid rgba(33,170,225,.15);
  background: transparent;
  color: rgba(255,255,255,.82);
  padding: 7px 14px;
  text-decoration: none;
  transition: all .2s;
}
.ph-blog-page__filter-btn:hover,
.ph-blog-page__filter-btn.is-active {
  border-color: #21AAE1;
  color: #21AAE1;
  background: rgba(33,170,225,.06);
}
.ph-blog-page__filter-count {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  color: rgba(33,170,225,.4);
  background: rgba(33,170,225,.08);
  padding: 2px 5px;
}

/* ── Featured post ─────────────────────────────────────────── */
.ph-blog-page__featured {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  background: rgba(33,170,225,.08);
  margin: 0;
  border-bottom: 1px solid rgba(33,170,225,.1);
}
.ph-blog-page__featured-link {
  position: relative;
  display: block;
  overflow: hidden;
  min-height: 380px;
}
.ph-blog-page__featured-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: .75;
  transition: opacity .4s, transform .4s;
}
.ph-blog-page__featured-link:hover .ph-blog-page__featured-img {
  opacity: .9;
  transform: scale(1.02);
}
.ph-blog-page__featured-placeholder {
  width: 100%;
  min-height: 380px;
  background: linear-gradient(135deg, #0d1525, #0d0d1a);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 56px;
  color: rgba(33,170,225,.15);
}
.ph-blog-page__featured-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, transparent 60%, rgba(8,8,16,.6) 100%);
  pointer-events: none;
}
.ph-blog-page__featured-body {
  padding: 48px 44px;
  background: #0d0d1a;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.ph-blog-page__featured-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}
.ph-blog-page__featured-badge {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #21AAE1;
  background: rgba(33,170,225,.1);
  border: 1px solid rgba(33,170,225,.2);
  padding: 4px 10px;
}
.ph-blog-page__featured-title {
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: clamp(22px, 2.5vw, 32px);
  color: #fff;
  line-height: .95;
  letter-spacing: -1px;
  margin-bottom: 18px;
}
.ph-blog-page__featured-title a {
  color: inherit;
  text-decoration: none;
  transition: color .2s;
}
.ph-blog-page__featured-title a:hover { color: #21AAE1; }
.ph-blog-page__featured-excerpt {
  font-size: 14px;
  font-weight: 400;
  color: rgba(255,255,255,.82);
  line-height: 1.75;
  margin-bottom: 28px;
}
.ph-blog-page__featured-footer {
  display: flex;
  align-items: center;
  gap: 20px;
  padding-top: 20px;
  border-top: 1px solid rgba(33,170,225,.1);
  flex-wrap: wrap;
}

/* ── Shared post meta ──────────────────────────────────────── */
.ph-blog-page__post-cat {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #21AAE1;
  text-decoration: none;
  transition: opacity .2s;
}
.ph-blog-page__post-cat:hover { opacity: .7; }
.ph-blog-page__post-date,
.ph-blog-page__post-author {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  letter-spacing: 1px;
  color: rgba(255,255,255,.82);
  display: flex;
  align-items: center;
  gap: 5px;
}
.ph-blog-page__post-date i,
.ph-blog-page__post-author i { font-size: 11px; }

.ph-blog-page__read-more {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #21AAE1;
  text-decoration: none;
  margin-left: auto;
  transition: gap .2s;
}
.ph-blog-page__read-more:hover { gap: 12px; }
.ph-blog-page__read-more i { font-size: 13px; }

/* ── Posts grid ────────────────────────────────────────────── */
.ph-blog-page__grid-wrap {
  background: #080810;
  padding: 48px;
}
.ph-blog-page__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
}

/* ── Post card ─────────────────────────────────────────────── */
.ph-blog-page__card {
  background: #0d0d1a;
  border: 1px solid rgba(33,170,225,.06);
  display: flex;
  flex-direction: column;
  transition: border-color .3s;
}
.ph-blog-page__card:hover { border-color: rgba(33,170,225,.3); }

.ph-blog-page__card-thumb-wrap {
  display: block;
  overflow: hidden;
}
.ph-blog-page__card-thumb {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  display: block;
  opacity: .75;
  transition: opacity .35s, transform .35s;
}
.ph-blog-page__card:hover .ph-blog-page__card-thumb { opacity: 1; transform: scale(1.03); }
.ph-blog-page__card-thumb-placeholder {
  width: 100%;
  aspect-ratio: 16/9;
  background: linear-gradient(135deg, #111, #0d0d1a);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
  color: rgba(33,170,225,.15);
}

.ph-blog-page__card-body {
  padding: 22px 20px 20px;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.ph-blog-page__card-title {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 16px;
  color: #fff;
  line-height: 1.3;
  letter-spacing: -.3px;
  margin: 8px 0 10px;
  flex: 1;
}
.ph-blog-page__card-title a { color: inherit; text-decoration: none; transition: color .2s; }
.ph-blog-page__card-title a:hover { color: #21AAE1; }
.ph-blog-page__card-excerpt {
  font-size: 12px;
  font-weight: 400;
  color: rgba(255,255,255,.82);
  line-height: 1.65;
  margin-bottom: 14px;
}
.ph-blog-page__card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid rgba(33,170,225,.07);
  padding-top: 12px;
  gap: 8px;
}
.ph-blog-page__card-meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.ph-blog-page__card-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(33,170,225,.6);
  text-decoration: none;
  flex-shrink: 0;
  transition: color .2s, gap .2s;
}
.ph-blog-page__card-cta:hover { color: #21AAE1; gap: 9px; }
.ph-blog-page__card-cta i { font-size: 12px; }

/* ── Pagination ────────────────────────────────────────────── */
.ph-blog-page__pagination {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 32px 48px;
  background: #080810;
  border-top: 1px solid rgba(33,170,225,.08);
}
.ph-blog-page__pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 10px;
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  font-weight: 600;
  border: 1px solid rgba(33,170,225,.15);
  background: transparent;
  color: rgba(255,255,255,.82);
  text-decoration: none;
  transition: all .2s;
}
.ph-blog-page__pagination .page-numbers:hover,
.ph-blog-page__pagination .page-numbers.current {
  border-color: #21AAE1;
  color: #21AAE1;
  background: rgba(33,170,225,.08);
}
.ph-blog-page__pagination .prev,
.ph-blog-page__pagination .next {
  gap: 6px;
  font-size: 10px;
  letter-spacing: 1px;
  padding: 0 14px;
}

/* ── Empty state ───────────────────────────────────────────── */
.ph-blog-page__empty {
  padding: 96px 48px;
  text-align: center;
  background: #080810;
}
.ph-blog-page__empty-icon {
  font-size: 48px;
  color: rgba(33,170,225,.2);
  margin-bottom: 24px;
}

/* ── Newsletter CTA ────────────────────────────────────────── */
.ph-blog-page__newsletter {
  background: #0a0a14;
  border-top: 1px solid rgba(33,170,225,.12);
  padding: 64px 48px;
  display: grid;
  grid-template-columns: 1fr 420px;
  gap: 64px;
  align-items: center;
}
.ph-blog-page__newsletter-title {
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: clamp(24px, 3vw, 38px);
  color: #fff;
  line-height: .95;
  letter-spacing: -1.5px;
  margin-bottom: 12px;
}
.ph-blog-page__newsletter-title em { color: #21AAE1; font-style: normal; }
.ph-blog-page__newsletter-sub {
  font-size: 13px;
  font-weight: 400;
  color: rgba(255,255,255,.82);
  line-height: 1.6;
}

/* ── Blog responsive ───────────────────────────────────────── */
@media (max-width: 960px) {
  .ph-blog-page__hero    { grid-template-columns: 1fr; padding: 48px 24px; }
  .ph-blog-page__hero-deco { display: none; }
  .ph-blog-page__filter  { padding: 16px 24px; }
  .ph-blog-page__featured { grid-template-columns: 1fr; }
  .ph-blog-page__featured-link { min-height: 240px; }
  .ph-blog-page__featured-placeholder { min-height: 240px; }
  .ph-blog-page__featured-body { padding: 32px 24px; }
  .ph-blog-page__grid-wrap { padding: 32px 24px; }
  .ph-blog-page__grid    { grid-template-columns: 1fr 1fr; }
  .ph-blog-page__newsletter { grid-template-columns: 1fr; gap: 32px; padding: 48px 24px; }
  .ph-blog-page__pagination { padding: 24px; }
}
@media (max-width: 600px) {
  .ph-blog-page__grid    { grid-template-columns: 1fr; }
  .ph-blog-page__featured-title { font-size: 22px; }
}

/* ============================================================
   NAV ROZSZERZENIE — dropdown, mobile overlay, active states
   ============================================================ */

/* Active link */
.ph-nav__link {
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(232,228,220,.5);
  text-decoration: none;
  transition: color .2s;
  padding: 4px 0;
  position: relative;
}
.ph-nav__link:hover,
.ph-nav__link--active { color: #e8e4dc; }
.ph-nav__link--active::after {
  content: '';
  position: absolute;
  bottom: -2px; left: 0; right: 0;
  height: 1px;
  background: #21AAE1;
}

/* Dropdown parent */
.ph-nav__has-sub { position: relative; }
.ph-nav__has-sub > .ph-nav__link::before {
  content: '';
  position: absolute;
  right: -12px; top: 50%;
  transform: translateY(-50%);
  border: 4px solid transparent;
  border-top-color: rgba(33,170,225,.4);
  border-bottom: none;
  margin-top: 2px;
}

/* Dropdown menu */
.ph-nav__sub {
  display: none;
  position: absolute;
  top: calc(100% + 12px);
  left: -16px;
  min-width: 240px;
  background: #0d0d1a;
  border: 1px solid rgba(33,170,225,.18);
  border-top: 2px solid #21AAE1;
  list-style: none;
  z-index: 300;
  padding: 8px 0;
}
.ph-nav__has-sub:hover .ph-nav__sub { display: block; }
.ph-nav__has-sub > .ph-nav__link { padding-right: 20px; }

.ph-nav__sub-link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 20px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: rgba(232,228,220,.5);
  text-decoration: none;
  transition: background .15s, color .15s;
}
.ph-nav__sub-link i { font-size: 14px; color: rgba(33,170,225,.5); }
.ph-nav__sub-link:hover,
.ph-nav__sub-link.is-current {
  background: rgba(33,170,225,.07);
  color: #e8e4dc;
}
.ph-nav__sub-link.is-current { color: #21AAE1; }

.ph-nav__sub-link--full {
  font-size: 10px;
  color: rgba(33,170,225,.55);
  letter-spacing: 1px;
}
.ph-nav__sub-link--full i { margin-left: auto; }
.ph-nav__sub-link--full:hover { color: #21AAE1; }

.ph-nav__sub-divider {
  height: 1px;
  background: rgba(33,170,225,.1);
  margin: 6px 0;
}

/* PH-Film+ fix (na głównej — anchor) */
.ph-nav--sub .ph-nav__has-sub > .ph-nav__link::before { display: none; }

/* Mobile menu */
.ph-mobile-menu {
  display: none;
  position: fixed;
  inset: 60px 0 0 0;
  background: rgba(8,8,16,.98);
  z-index: 199;
  overflow-y: auto;
  border-top: 1px solid rgba(33,170,225,.15);
}
.ph-mobile-menu.is-open { display: block; }
.ph-mobile-menu__inner { padding: 24px; }
.ph-mobile-menu__links { list-style: none; }
.ph-mobile-menu__links li { border-bottom: 1px solid rgba(33,170,225,.07); }
.ph-mobile-menu__links a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 4px;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 1px;
  color: rgba(255,255,255,.82);
  text-decoration: none;
  transition: color .2s;
}
.ph-mobile-menu__links a:hover { color: #21AAE1; }
.ph-mobile-menu__links a i { font-size: 16px; color: rgba(33,170,225,.4); }

.ph-mobile-menu__group-label {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: rgba(33,170,225,.3);
  padding: 16px 4px 6px;
  border-bottom: none !important;
}
.ph-mobile-menu__cta {
  background: #21AAE1 !important;
  color: #fff !important;
  text-align: center;
  justify-content: center;
  margin-top: 8px;
  font-weight: 600 !important;
  letter-spacing: 2px !important;
}

/* Burger → X animation */
.ph-nav__burger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.ph-nav__burger.is-open span:nth-child(2) { opacity: 0; }
.ph-nav__burger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ============================================================
   TEAM — rozszerzony (4 osoby, placeholder, tagi)
   ============================================================ */

.ph-team-grid--4 { grid-template-columns: repeat(2, 1fr); }

/* Placeholder dla osób bez zdjęcia */
.ph-team-card__placeholder {
  width: 100%;
  aspect-ratio: 3/2;
  background: linear-gradient(135deg, #0d1525 0%, #0d0d1a 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  border-bottom: 1px solid rgba(33,170,225,.1);
  position: relative;
  overflow: hidden;
}
.ph-team-card__placeholder::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 50%, rgba(33,170,225,.05) 0%, transparent 70%);
  pointer-events: none;
}
.ph-team-card__initials {
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  font-size: 52px;
  color: rgba(33,170,225,.2);
  letter-spacing: -2px;
  line-height: 1;
}
.ph-team-card__photo-soon {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: rgba(33,170,225,.25);
  border: 1px solid rgba(33,170,225,.1);
  padding: 4px 10px;
}

/* Skill tags pod bio */
.ph-team-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(33,170,225,.08);
}
.ph-team-card__tags span {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: rgba(33,170,225,.5);
  border: 1px solid rgba(33,170,225,.15);
  padding: 3px 8px;
  background: rgba(33,170,225,.04);
}

@media (max-width: 700px) {
  .ph-team-grid--4 { grid-template-columns: 1fr; }
  .ph-team-card__placeholder { aspect-ratio: 4/3; }
  .ph-team-card__initials { font-size: 40px; }
}

/* ============================================================
   COOKIE CONSENT BANNER
   ============================================================ */
.ph-cookie {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9999;
  background: rgba(8,8,20,.97);
  border-top: 1px solid rgba(33,170,225,.25);
  backdrop-filter: blur(8px);
  animation: ph-cookie-slide-up .4s ease;
}
@keyframes ph-cookie-slide-up {
  from { transform: translateY(100%); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}
.ph-cookie__inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 18px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}
.ph-cookie__title {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 14px;
  color: #fff;
  margin-bottom: 5px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.ph-cookie__title i { color: #21AAE1; font-size: 16px; }
.ph-cookie__desc {
  font-size: 12px;
  font-weight: 400;
  color: rgba(255,255,255,.82);
  line-height: 1.6;
  max-width: 640px;
}
.ph-cookie__link {
  color: rgba(33,170,225,.7);
  text-decoration: none;
  transition: color .2s;
}
.ph-cookie__link:hover { color: #21AAE1; }
.ph-cookie__actions {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
}
.ph-cookie__btn {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 10px 20px;
  border: none;
  cursor: pointer;
  white-space: nowrap;
  transition: all .2s;
}
.ph-cookie__btn--reject {
  background: transparent;
  border: 1px solid rgba(232,228,220,.2);
  color: rgba(232,228,220,.5);
}
.ph-cookie__btn--reject:hover {
  border-color: rgba(255,255,255,.78);
  color: #e8e4dc;
}
.ph-cookie__btn--accept {
  background: #21AAE1;
  color: #fff;
}
.ph-cookie__btn--accept:hover { opacity: .85; }

@media (max-width: 640px) {
  .ph-cookie__inner { padding: 16px; flex-direction: column; align-items: flex-start; }
  .ph-cookie__actions { width: 100%; }
  .ph-cookie__btn { flex: 1; text-align: center; }
}

/* ── Footer logo ────────────────────────────────────────────── */
.ph-footer__logo-link { display: flex; align-items: center; }
.ph-footer__logo-img  { height: 20px; width: auto; opacity: .3; filter: brightness(0) invert(1); }
.ph-footer__logo-text { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 16px; letter-spacing: 3px; color: rgba(255,255,255,.2); }
.ph-footer__logo-text em { color: rgba(33,170,225,.4); font-style: normal; }

/* ============================================================
   POLITYKA PRYWATNOŚCI
   ============================================================ */
.ph-privacy {}
.ph-privacy__hero {
  background: #0a0a14;
  padding: 64px 48px 48px;
  border-bottom: 1px solid rgba(33,170,225,.12);
}
.ph-privacy__hero-inner { max-width: 720px; }
.ph-privacy__h1 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  font-size: clamp(36px, 5vw, 60px);
  color: #fff;
  line-height: .91;
  letter-spacing: -2px;
  margin-bottom: 20px;
}
.ph-privacy__h1 em { color: #21AAE1; font-style: normal; }
.ph-privacy__meta {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  letter-spacing: 1.5px;
  color: rgba(255,255,255,.6);
  text-transform: uppercase;
}
.ph-privacy__meta strong { color: rgba(232,228,220,.6); }

.ph-privacy__body {
  max-width: 860px;
  margin: 0 auto;
  padding: 56px 48px;
}

.ph-privacy__toc {
  background: #0d0d1a;
  border: 1px solid rgba(33,170,225,.12);
  border-left: 3px solid #21AAE1;
  padding: 24px 28px;
  margin-bottom: 48px;
}
.ph-privacy__toc-title {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #21AAE1;
  margin-bottom: 14px;
}
.ph-privacy__toc ol { padding-left: 18px; }
.ph-privacy__toc li { margin-bottom: 6px; }
.ph-privacy__toc a {
  font-size: 14px;
  font-weight: 400;
  color: rgba(255,255,255,.8);
  text-decoration: none;
  transition: color .2s;
}
.ph-privacy__toc a:hover { color: #21AAE1; }

.ph-privacy__section {
  margin-bottom: 48px;
  padding-bottom: 48px;
  border-bottom: 1px solid rgba(33,170,225,.07);
}
.ph-privacy__section:last-child { border-bottom: none; }
.ph-privacy__section h2 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: 22px;
  color: #fff;
  letter-spacing: -.5px;
  margin-bottom: 16px;
  padding-top: 8px;
}
.ph-privacy__section h3 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 15px;
  color: rgba(232,228,220,.8);
  margin: 20px 0 10px;
}
.ph-privacy__section p {
  font-size: 14px;
  font-weight: 400;
  color: rgba(255,255,255,.82);
  line-height: 1.8;
  margin-bottom: 14px;
}
.ph-privacy__section ul, .ph-privacy__section ol {
  padding-left: 20px;
  margin-bottom: 16px;
}
.ph-privacy__section li {
  font-size: 14px;
  font-weight: 400;
  color: rgba(255,255,255,.8);
  line-height: 1.7;
  margin-bottom: 6px;
}
.ph-privacy__section a { color: #21AAE1; text-decoration: underline; text-underline-offset: 3px; }
.ph-privacy__section strong { color: rgba(232,228,220,.8); font-weight: 600; }
.ph-privacy__section code {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  background: rgba(33,170,225,.08);
  border: 1px solid rgba(33,170,225,.15);
  color: rgba(33,170,225,.8);
  padding: 2px 6px;
}

.ph-privacy__box {
  background: #0d0d1a;
  border: 1px solid rgba(33,170,225,.12);
  border-left: 3px solid rgba(33,170,225,.4);
  padding: 18px 22px;
  font-size: 13px;
  font-weight: 400;
  color: rgba(255,255,255,.82);
  line-height: 1.75;
  margin: 16px 0;
}
.ph-privacy__box strong { color: #e8e4dc; font-weight: 600; }
.ph-privacy__box a { color: #21AAE1; }

.ph-privacy__table-wrap { overflow-x: auto; margin: 16px 0; }
.ph-privacy__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
  font-weight: 400;
}
.ph-privacy__table th {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(33,170,225,.6);
  background: rgba(33,170,225,.06);
  padding: 10px 14px;
  text-align: left;
  border-bottom: 1px solid rgba(33,170,225,.15);
}
.ph-privacy__table td {
  padding: 10px 14px;
  color: rgba(232,228,220,.5);
  border-bottom: 1px solid rgba(33,170,225,.06);
  vertical-align: top;
  line-height: 1.6;
}
.ph-privacy__table em {
  font-size: 10px;
  color: rgba(255,255,255,.6);
  font-style: normal;
}
.ph-privacy__table tr:hover td { background: rgba(33,170,225,.02); }

@media (max-width: 760px) {
  .ph-privacy__hero  { padding: 40px 20px 32px; }
  .ph-privacy__body  { padding: 36px 20px; }
}

/* ============================================================
   POLITYKA PRYWATNOŚCI
   ============================================================ */

.ph-policy__hero {
  background: #0a0a14;
  padding: 64px 48px 48px;
  border-bottom: 1px solid rgba(33,170,225,.12);
}
.ph-policy__h1 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  font-size: clamp(32px, 4vw, 52px);
  color: #fff;
  line-height: .93;
  letter-spacing: -2px;
  margin-bottom: 16px;
}
.ph-policy__meta {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  letter-spacing: 1px;
  color: rgba(255,255,255,.82);
  margin-bottom: 20px;
}
.ph-policy__meta strong { color: rgba(232,228,220,.5); }
.ph-policy__intro {
  font-size: 15px;
  font-weight: 400;
  color: rgba(232,228,220,.5);
  max-width: 620px;
  line-height: 1.75;
}

.ph-policy__content { max-width: 860px; margin: 0 auto; padding: 0 48px 80px; }

.ph-policy__section {
  padding: 40px 0;
  border-bottom: 1px solid rgba(33,170,225,.08);
}
.ph-policy__section--last { border-bottom: none; }

.ph-policy__num {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  color: #21AAE1;
  margin-right: 12px;
  letter-spacing: 2px;
}
.ph-policy__h2 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: 22px;
  color: #fff;
  letter-spacing: -.5px;
  margin-bottom: 20px;
  display: flex;
  align-items: center;
}
.ph-policy__h3 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 15px;
  color: rgba(232,228,220,.8);
  margin: 24px 0 10px;
}
.ph-policy__body {
  font-size: 14px;
  font-weight: 400;
  color: rgba(255,255,255,.82);
  line-height: 1.85;
}
.ph-policy__body p { margin-bottom: 14px; }
.ph-policy__body ul {
  padding-left: 20px;
  margin-bottom: 14px;
}
.ph-policy__body ul li { margin-bottom: 6px; }
.ph-policy__body strong { color: rgba(232,228,220,.8); font-weight: 600; }
.ph-policy__body a { color: #21AAE1; }
.ph-policy__body a:hover { text-decoration: underline; }

.ph-policy__info-box {
  background: rgba(33,170,225,.04);
  border: 1px solid rgba(33,170,225,.15);
  border-left: 3px solid #21AAE1;
  padding: 20px 24px;
  margin: 16px 0;
  font-size: 14px;
  line-height: 1.8;
}
.ph-policy__info-box p { margin-bottom: 4px; }
.ph-policy__info-box strong { color: #fff; font-size: 15px; }

.ph-policy__table-wrap { overflow-x: auto; margin: 16px 0 24px; }
.ph-policy__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}
.ph-policy__table th {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(33,170,225,.6);
  background: rgba(33,170,225,.05);
  padding: 10px 14px;
  border: 1px solid rgba(33,170,225,.12);
  text-align: left;
  white-space: nowrap;
}
.ph-policy__table td {
  padding: 10px 14px;
  border: 1px solid rgba(33,170,225,.08);
  color: rgba(255,255,255,.82);
  vertical-align: top;
}
.ph-policy__table td strong { color: rgba(232,228,220,.8); }
.ph-policy__table tr:hover td { background: rgba(33,170,225,.03); }

.ph-policy__rights {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: rgba(33,170,225,.08);
  margin: 16px 0 24px;
}
.ph-policy__right {
  background: #080810;
  padding: 18px 20px;
}
.ph-policy__right h4 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 13px;
  color: #fff;
  margin-bottom: 6px;
}
.ph-policy__right p {
  font-size: 12px;
  font-weight: 400;
  color: rgba(255,255,255,.78);
  line-height: 1.65;
  margin: 0;
}

.ph-policy__contact {
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-size: 14px;
}
.ph-policy__contact p {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
}
.ph-policy__contact i { color: #21AAE1; font-size: 16px; }

@media (max-width: 700px) {
  .ph-policy__hero { padding: 48px 20px 32px; }
  .ph-policy__content { padding: 0 20px 56px; }
  .ph-policy__rights { grid-template-columns: 1fr; }
}

/* ============================================================
   COOKIE CONSENT BANNER
   ============================================================ */

.ph-cookie {
  position: fixed;
  bottom: 24px;
  left: 24px;
  right: 24px;
  max-width: 860px;
  margin: 0 auto;
  background: #0d0d1a;
  border: 1px solid rgba(33,170,225,.25);
  border-top: 2px solid #21AAE1;
  z-index: 9999;
  box-shadow: 0 8px 32px rgba(0,0,0,.6);
}
.ph-cookie__inner {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 20px 24px;
  flex-wrap: wrap;
}
.ph-cookie__text { flex: 1; min-width: 200px; }
.ph-cookie__title {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 14px;
  color: #fff;
  margin-bottom: 6px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.ph-cookie__title i { color: #21AAE1; font-size: 16px; }
.ph-cookie__desc {
  font-size: 12px;
  font-weight: 400;
  color: rgba(255,255,255,.82);
  line-height: 1.6;
}
.ph-cookie__link {
  color: #21AAE1;
  text-decoration: none;
  white-space: nowrap;
}
.ph-cookie__link:hover { text-decoration: underline; }
.ph-cookie__actions {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
  flex-wrap: wrap;
}
.ph-cookie__btn {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  border: none;
  padding: 10px 18px;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity .2s;
}
.ph-cookie__btn--reject {
  background: transparent;
  border: 1px solid rgba(232,228,220,.2);
  color: rgba(232,228,220,.5);
}
.ph-cookie__btn--reject:hover { border-color: rgba(255,255,255,.78); color: #e8e4dc; }
.ph-cookie__btn--accept {
  background: #21AAE1;
  color: #fff;
}
.ph-cookie__btn--accept:hover { opacity: .85; }

@media (max-width: 600px) {
  .ph-cookie { left: 12px; right: 12px; bottom: 12px; }
  .ph-cookie__inner { padding: 16px; }
  .ph-cookie__actions { width: 100%; }
  .ph-cookie__btn { flex: 1; text-align: center; }
}

/* VIDEO HERO */
.ph-hero__video-bg{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;z-index:0;}
.ph-hero__video-bg::after{content:'';position:absolute;inset:0;background:rgba(5,5,15,.55);z-index:1;}
.ph-hero__video-bg iframe{position:absolute;top:50%;left:50%;width:100vw;height:56.25vw;min-height:100%;min-width:177.78vh;transform:translate(-50%,-50%);pointer-events:none;border:none;}
.ph-hero__glow{z-index:2!important;}.ph-hero__content{z-index:3!important;}.ph-hero__stats{z-index:3!important;}
/* YT GRID */
.ph-yt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;}
.ph-yt-card{display:flex;flex-direction:column;gap:10px;}
.ph-yt-thumb{position:relative;display:block;border-radius:2px;overflow:hidden;aspect-ratio:16/9;}
.ph-yt-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s;}
.ph-yt-thumb:hover img{transform:scale(1.03);}
.ph-yt-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.3);transition:background .2s;}
.ph-yt-thumb:hover .ph-yt-play{background:rgba(0,0,0,.5);}
.ph-yt-title{font-size:12px;color:rgba(232,228,220,.6);margin:0;}
/* PLACEHOLDER */
.ph-photo-placeholder{aspect-ratio:4/3;background:#0d0d1a;border:1px dashed rgba(33,170,225,.2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;}
.ph-photo-placeholder__icon{font-size:28px;opacity:.4;}
.ph-photo-placeholder__label{font-size:9px;letter-spacing:2px;color:rgba(232,228,220,.3);text-transform:uppercase;text-align:center;padding:0 12px;}
/* GALLERY GRID */
.ph-gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;}
.ph-gallery-grid img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;display:block;}
/* SVC COLS */
.ph-svc-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px;margin-top:40px;}
.ph-svc-col{background:#0d0d1a;padding:28px;border-left:2px solid rgba(33,170,225,.3);}
.ph-svc-col h3{font-size:16px;font-weight:700;color:#fff;margin-bottom:10px;}
.ph-svc-col p{font-size:13px;color:rgba(232,228,220,.55);line-height:1.6;}
/* FILTER */
.ph-portfolio__filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:32px;}
.ph-filter-btn.active-filter{background:rgba(33,170,225,.15)!important;color:#21AAE1!important;border-color:#21AAE1!important;}
/* PH-FILM+ TEASER */
.ph-filmplus-teaser{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start;}
.ph-filmplus-pill{background:rgba(33,170,225,.1);border:1px solid rgba(33,170,225,.25);color:rgba(232,228,220,.8);font-size:10px;padding:6px 12px;border-radius:2px;display:inline-block;}
.ph-filmplus-teaser__plans{display:flex;flex-direction:column;gap:16px;}
.ph-filmplus-teaser__plans .ph-plan{padding:20px 24px;}
@media(max-width:900px){.ph-filmplus-teaser{grid-template-columns:1fr!important;}.ph-gallery-grid{grid-template-columns:repeat(2,1fr);}.ph-yt-grid{grid-template-columns:1fr;}}

/* ── TEAM HERO SPLIT + 4-COL GRID ──────────────────────────────────── */
.ph-team-section { padding: 0 !important; }
.ph-team-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  overflow: hidden;
  background: #080810;
}
.ph-team-hero__content {
  padding: 64px 48px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.ph-team-hero__content .ph-label { margin-bottom: 12px; }
.ph-team-hero__content .ph-title { margin-bottom: 16px; }
.ph-team-hero__photo {
  position: relative;
  overflow: hidden;
  min-height: 360px;
}
.ph-team-hero__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
  opacity: .35;
  display: block;
}
.ph-team-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, #080810 0%, rgba(8,8,16,.4) 50%, transparent 100%);
}

.ph-team-grid--4col {
  grid-template-columns: repeat(4, 1fr);
}
.ph-team-grid--4col .ph-team-card__photo {
  aspect-ratio: 4/5;
  height: auto;
}

/* CTA link w price card */
.ph-price-card__cta-link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 14px;
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: #21AAE1;
  text-decoration: none;
  transition: opacity .2s;
}
.ph-price-card__cta-link:hover { opacity: .6; }
.ph-price-card__cta-link .ti {
  font-size: 13px;
  transition: transform .2s;
}
.ph-price-card__cta-link:hover .ti { transform: translateX(3px); }

@media (max-width: 960px) {
  .ph-team-hero { grid-template-columns: 1fr; }
  .ph-team-hero__photo { min-height: 220px; }
  .ph-team-hero__content { padding: 40px 32px; }
  .ph-team-grid--4col { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .ph-team-grid--4col { grid-template-columns: 1fr; }
  .ph-team-hero__content { padding: 32px 24px; }
}
