/* Partners block */
.partners {
  --p-bg: #00050B;
  --p-text: #F8FCFF;
  --p-muted: #9AA7B6;
  --p-blue: #009CFF;
  --p-card-base: #161E2A;  /* цвет карточек (меняется из поля блока) */
  --p-card: color-mix(in srgb, var(--p-card-base) 82%, transparent);
  --p-card-hover: color-mix(in srgb, var(--p-card-base) 92%, #fff 6%);
  --p-line: rgba(248, 252, 255, .08);
  /* меняются из полей блока */
  --p-box: #08121D;       /* цвет плашки */
  --p-glow: #009CFF;      /* цвет свечения сверху */
  --p-dots: #78AADC;      /* цвет точек */
  --p-dots-opacity: .9;   /* прозрачность точек (0 — без точек) */
  --p-bg-opacity: .45;    /* прозрачность фоновой картинки */
  padding: 56px 24px;
  background: var(--p-bg);
  color: var(--p-text);
  font-family: Arial, Helvetica, sans-serif;
}
.partners__box {
  position: relative;
  max-width: 1200px;
  margin: 0 auto;
  padding: 48px 24px 24px;
  border-radius: 36px;
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(120% 90% at 50% 0%, color-mix(in srgb, var(--p-glow) 12%, transparent), transparent 60%),
    linear-gradient(180deg, var(--p-box) 0%, color-mix(in srgb, var(--p-box) 60%, #000) 100%);
}
/* dotted texture, like the official block */
.partners__box::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: radial-gradient(color-mix(in srgb, var(--p-dots) 28%, transparent) 1.2px, transparent 1.4px);
  background-size: 7px 7px;
  -webkit-mask-image: radial-gradient(90% 80% at 50% 40%, #000 30%, transparent 85%);
          mask-image: radial-gradient(90% 80% at 50% 40%, #000 30%, transparent 85%);
  opacity: var(--p-dots-opacity);
}
/* optional background image from the block field */
.partners__box--image::before { opacity: calc(var(--p-dots-opacity) * .4); }
.partners__bg {
  position: absolute; inset: 0; z-index: -2;
  width: 100%; height: 100%; object-fit: cover; opacity: var(--p-bg-opacity);
}

.partners__head { text-align: center; max-width: 680px; margin: 0 auto 36px; }
.partners__tag {
  display: inline-block;
  padding: 9px 14px;
  border: 1px solid var(--p-line);
  border-radius: 10px;
  background: rgba(22, 30, 42, .9);
  font: 600 13px/1 "Courier New", monospace;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--p-text);
}
.partners__title {
  margin: 18px 0 0;
  font-size: clamp(28px, 4vw, 44px);
  line-height: 1.1;
  font-weight: 600;
  letter-spacing: -.03em;
  color: var(--p-text);
}
.partners__lead { margin: 14px 0 0; font-size: 18px; line-height: 1.5; color: rgba(248, 252, 255, .78); }

.partners__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.partners__item { margin: 0; }
/* 4 карточки (или 2) — сетка 2×2 вместо 3+1 */
.partners__grid:has(> li:nth-child(4):last-child),
.partners__grid:has(> li:nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.partners__card {
  display: flex;
  gap: 18px;
  align-items: flex-start;
  height: 100%;
  box-sizing: border-box;
  padding: 20px;
  border-radius: 20px;
  background: var(--p-card);
  border: 1px solid var(--p-line);
  color: inherit;
  text-decoration: none;
  transition: background .2s, transform .2s, border-color .2s;
}
a.partners__card:hover { background: var(--p-card-hover); border-color: rgba(0, 156, 255, .3); transform: translateY(-2px); }

.partners__logo {
  flex: 0 0 62px;
  width: 62px; height: 62px;
  border-radius: 14px;
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  background: #111A25;
}
.partners__logo img { width: 100%; height: 100%; object-fit: cover; display: block; }

.partners__body { min-width: 0; }
.partners__name {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  margin: 4px 0 0;
  font-size: 21px; line-height: 1.2; font-weight: 500; color: var(--p-text);
}
.partners__arrow { width: 9px; height: 9px; border-right: 1.5px solid currentColor; border-top: 1.5px solid currentColor; transform: rotate(45deg); opacity: .6; margin-left: 2px; }
.partners__badge {
  padding: 4px 8px;
  border-radius: 6px;
  background: rgba(0, 156, 255, .16);
  color: #6CC4FF;
  font: 600 11px/1 "Courier New", monospace;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.partners__desc { display: block; margin: 8px 0 0; font-size: 15px; line-height: 1.5; color: rgba(248, 252, 255, .72); }

.partners__note { margin: 20px 0 0; text-align: center; font-size: 13px; color: var(--p-muted); }

@media (max-width: 1024px) { .partners__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) {
  .partners { padding: 32px 12px; }
  .partners__box { padding: 32px 14px 14px; border-radius: 24px; }
  .partners__grid { grid-template-columns: 1fr; gap: 12px; }
  .partners__card { padding: 16px; gap: 14px; }
  .partners__logo { flex-basis: 52px; width: 52px; height: 52px; }
  .partners__name { font-size: 19px; }
  .partners__lead { font-size: 16px; }
}

/* fix: на телефоне всегда 1 колонка (правило :has для 4 карточек было сильнее медиа-запроса) */
@media (max-width: 640px) {
  .partners__grid,
  .partners__grid:has(> li:nth-child(4):last-child),
  .partners__grid:has(> li:nth-child(2):last-child) { grid-template-columns: 1fr; }
}
.partners__name { overflow-wrap: anywhere; }
.partners__body { flex: 1 1 auto; }

/* защита от регистра заголовков темы */
.partners h1, .partners h2, .partners h3 { text-transform: none; }
