/* ═══ 03.11 БАРАБАН ПАРТНЁРОВ (partnery_baraban.js). Подключается после partnery.css; старые правила 02.11 (.pm-*) не используются.
   Механика Vertera: карточки — прямые дети .pb-scena с perspective (НЕ preserve-3d: opacity у соседа тогда безопасна),
   соседи гаснут слоем .pb-ten (не filter). Геометрию (--cw/--ch/--cy) ставит JS. Анимации — WAAPI (reduce-motion
   этой машины гасит CSS-переходы !important). ═══ */
.st-media.pb { left: 0; top: 0; width: 100%; height: 100%; pointer-events: none; --cw: 520px; --ch: 650px; --cy: 54vh; --gap: clamp(28px, 3.2vw, 64px); }
.st-media.pb.pb-zhiv { pointer-events: auto; }
.pb-fon { position: absolute; inset: 0; overflow: hidden;
  background: radial-gradient(ellipse 46% 52% at 50% var(--cy), rgba(176, 138, 69, .20), rgba(176, 138, 69, 0) 70%),
              linear-gradient(180deg, #1c1611 0%, #120e0b 62%, #0d0a08 100%); }
.pb-svet { position: absolute; left: 50%; top: calc(var(--cy) + var(--ch) / 2 - 20px); width: calc(var(--cw) * 1.9); height: 120px; margin-left: calc(var(--cw) * -.95);
  background: radial-gradient(ellipse at 50% 30%, rgba(201, 164, 106, .22), rgba(201, 164, 106, 0) 70%); }
.pb-znak { position: absolute; left: 0; right: 0; top: var(--cy); transform: translateY(-50%); text-align: center; font: 500 clamp(5rem, 15vw, 17rem)/1 var(--serif);
  letter-spacing: .08em; color: rgba(243, 239, 232, .03); white-space: nowrap; user-select: none; }
.pb-scena { position: absolute; inset: 0; perspective: 1500px; perspective-origin: 50% var(--cy); }
.pb-k { position: absolute; left: 50%; top: var(--cy); width: var(--cw); height: var(--ch); margin: 0; cursor: pointer;
  transform-origin: 50% 50%; will-change: transform; background: #241c15;
  box-shadow: 0 40px 90px rgba(0, 0, 0, .55), 0 0 0 1px rgba(201, 164, 106, .42); }
.pb-k img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; user-select: none; -webkit-user-drag: none; }
.pb-k::after { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(13, 10, 8, 0) 62%, rgba(13, 10, 8, .38)); }
.pb-ten { position: absolute; inset: 0; z-index: 1; background: #0d0a08; opacity: 0; pointer-events: none; }
.pb-podpis { position: absolute; left: 0; right: 0; top: calc(var(--cy) + var(--ch) / 2 + 18px); margin: 0; text-align: center; pointer-events: none;
  display: flex; flex-direction: column; align-items: center; gap: 6px; color: #efe7da; }
.pb-podpis .pb-n { font: 600 .7rem/1 var(--sans); letter-spacing: .3em; color: #c9a46a; }
.pb-podpis .pb-t { font: 500 clamp(1.5rem, 2vw, 2.1rem)/1.05 var(--serif); }
.pb-podpis .w, .pb-bok h3 .w, .pb-sboku h3 .w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .1em; margin-bottom: -.1em; }
.pb-podpis .w > span, .pb-bok h3 .w > span, .pb-sboku h3 .w > span { display: inline-block; }
.pb-hint { position: absolute; left: 0; right: 0; top: calc(var(--cy) + var(--ch) / 2 + 92px); margin: 0; text-align: center; pointer-events: none;
  font: 500 .66rem/1.4 var(--sans); letter-spacing: .22em; text-transform: uppercase; color: rgba(239, 231, 218, .5); }
.pb-hint-tel { display: none; }
.pb-str { position: absolute; top: calc(var(--cy) + var(--ch) / 2 + 48px); width: 52px; height: 52px; margin-top: -26px; border-radius: 999px; cursor: pointer; z-index: 3; padding: 0;
  display: grid; place-items: center; color: #efe7da; background: rgba(18, 14, 11, .55); border: 1px solid rgba(201, 164, 106, .45); }
.pb-str svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.4; }
.pb-str:hover, .pb-str:focus-visible { border-color: #c9a46a; background: rgba(201, 164, 106, .18); outline: none; }
.pb-str--l { left: calc(50% - 210px); }
.pb-str--r { left: calc(50% + 158px); }

/* бока: текст отдела выходит из-за фото (WAAPI); видим только .on */
.pb-info { position: absolute; inset: 0; pointer-events: none; visibility: hidden; z-index: 2; }
.pb-info.on { visibility: visible; }
.pb-skrol { display: contents; }
.pb-bok { position: absolute; top: calc(var(--cy) - var(--ch) / 2); height: var(--ch); display: flex; flex-direction: column; justify-content: center;
  overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: rgba(201, 164, 106, .4) transparent; color: #efe7da; pointer-events: auto; }
.pb-bok > * { flex: none; }
.pb-bok--l { left: 4.5vw; right: calc(50% + var(--cw) / 2 + var(--gap)); align-items: flex-end; }
.pb-bok--r { left: calc(50% + var(--cw) / 2 + var(--gap)); right: 4.5vw; align-items: flex-start; }
.pb-bok > * { width: min(100%, 470px); }
.pb-bok .pt-num { margin: 0; font: 600 .72rem/1 var(--sans); letter-spacing: .3em; color: #c9a46a; }
.pb-bok h3 { margin: 12px 0 16px; font: 500 clamp(2rem, 2.9vw, 3.1rem)/1.02 var(--serif); color: #f6f0e6; }
.pb-bok h4 { margin: 0 0 6px; font: 600 1.28rem/1.15 var(--serif); color: #f6f0e6; }
.pb-bok h4:not(:first-child) { margin-top: 18px; }
.pb-bok p { margin: 0 0 12px; font-size: .95rem; line-height: 1.62; color: rgba(239, 231, 218, .84); max-width: none; }
.pb-bok .pt-pod { font-size: .7rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: #c9a46a; line-height: 1.5; }
.pb-vrezka { position: relative; margin: 10px 0 0; aspect-ratio: 16 / 10; overflow: hidden; box-shadow: 0 0 0 1px rgba(201, 164, 106, .4); max-width: 380px; background: #241c15; }
.pb-vrezka img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pb-vrezka figcaption, .pb-kompl span { position: absolute; left: 0; right: 0; bottom: 0; padding: 22px 12px 10px;
  background: linear-gradient(180deg, rgba(13, 10, 8, 0), rgba(13, 10, 8, .78)); font: 600 .62rem/1.3 var(--sans); letter-spacing: .22em; text-transform: uppercase; color: #f3efe8; }
.pt-kompl-list.pb-kompl { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.pt-kompl-list.pb-kompl li { position: relative; aspect-ratio: 3 / 4; overflow: hidden; padding: 0; border: 0; border-radius: 0; box-shadow: 0 0 0 1px rgba(201, 164, 106, .4); background: #241c15; }
.pb-kompl img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pb-liniya { position: absolute; top: var(--cy); height: 1px; width: calc(var(--gap) - 14px); background: #c9a46a; transform: scaleX(0); pointer-events: none; z-index: 2; }
.pb-liniya--l { left: calc(50% - var(--cw) / 2 - var(--gap) + 7px); transform-origin: 100% 50%; }
.pb-liniya--r { left: calc(50% + var(--cw) / 2 + 7px); transform-origin: 0 50%; }
.pb-sboku { display: none; }

/* текст раздела (#stTxt) поверх барабана: шапка слева сверху, кнопки снизу; светлые чернила на тёмном */
.st-txt.st-partnery { top: 0; bottom: 0; left: 0; right: 0; transform: none; width: auto; max-height: none; overflow: visible;
  padding: clamp(18px, 4vh, 44px) 4.5vw clamp(18px, 4vh, 40px); display: flex; flex-direction: column; align-items: flex-start; pointer-events: none; }
.st-partnery > * { pointer-events: auto; }
.st-partnery .st-eyebrow { color: #c9a46a; }
.st-txt.st-partnery h2 { color: #f6f0e6; font-size: clamp(2.2rem, 3.4vw, 3.4rem); }
.st-partnery .pt-tabs { margin: 14px 0 0; padding-bottom: 0; border-bottom: 0; gap: 4px 22px; }
.st-partnery .pt-tabs a { color: rgba(239, 231, 218, .6); }
.st-partnery .pt-tabs a.on, .st-partnery .pt-tabs a:hover, .st-partnery .pt-tabs a:focus-visible { color: #f6f0e6; }
.st-partnery .pt-tabs a::after { background: #c9a46a; }
.st-partnery .st-cta { margin-top: auto; }
.st-partnery .st-btn--main { color: #1b1713; background: #d9bf8c; border-color: #d9bf8c; box-shadow: 0 14px 34px rgba(0, 0, 0, .35); }
.st-partnery .st-btn--main:hover, .st-partnery .st-btn--main:focus-visible { background: #e6cfa1; box-shadow: 0 16px 38px rgba(0, 0, 0, .4), 0 0 0 1px #f3e2bd; }
.st-partnery .st-btn--ghost { color: #efe7da; background: rgba(18, 14, 11, .4); border-color: rgba(239, 231, 218, .4); }
.st-partnery .st-btn--ghost:hover, .st-partnery .st-btn--ghost:focus-visible { border-color: #efe7da; background: rgba(239, 231, 218, .08); }

/* низкие ПК-экраны: текст боков плотнее */
@media (max-height: 820px) and (min-width: 901px) and (min-aspect-ratio: 3/4) {
  .pb-bok h3 { font-size: clamp(1.7rem, 2.4vw, 2.4rem); margin: 8px 0 10px; }
  .pb-bok p { font-size: .86rem; line-height: 1.5; margin-bottom: 8px; }
  .pb-bok h4 { font-size: 1.1rem; }
  .pb-bok h4:not(:first-child) { margin-top: 10px; }
  .pb-hint { top: calc(var(--cy) + var(--ch) / 2 + 80px); }
}

/* телефон / узкий: шапка сверху, фото в центре; тап — фото уезжает в угол уменьшенным, рядом номер и название, ниже текст своей прокруткой */
@media (max-width: 900px), (max-aspect-ratio: 3/4) {
  .pb-znak { font-size: 30vw; }
  .pb-str { width: 44px; height: 44px; margin-top: -22px; top: var(--cy); }
  .pb-str--l { left: 6px; } .pb-str--r { left: auto; right: 6px; }
  .pb-hint-pk { display: none; } .pb-hint-tel { display: inline; }
  .pb-hint { top: calc(var(--cy) + var(--ch) / 2 + 76px); }
  .pb-podpis .pb-t { font-size: 1.6rem; }
  .pb-liniya { display: none; }
  .pb-skrol { display: block; position: absolute; left: 0; right: 0; top: var(--ty, 50%); bottom: var(--by, 80px); overflow-y: auto; overscroll-behavior: contain;
    padding: 6px 22px 22px; pointer-events: auto;
    -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 12px, #000 calc(100% - 20px), transparent); mask-image: linear-gradient(180deg, transparent 0, #000 12px, #000 calc(100% - 20px), transparent); }
  .pb-bok { position: static; height: auto; display: block; overflow: visible; }
  .pb-bok > * { width: auto; }
  .pb-bok--l .pt-num, .pb-bok--l h3 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; margin: 0; }
  .pb-bok p { font-size: .95rem; line-height: 1.58; }
  .pb-sboku { display: flex; flex-direction: column; justify-content: center; position: absolute; left: var(--sx, 50%); right: 18px; top: var(--sy, 0); height: var(--sh, 0);
    pointer-events: none; color: #f6f0e6; z-index: 2; visibility: hidden; }
  .pb-sboku.on { visibility: visible; }
  .pb-sboku .pt-num { margin: 0; font: 600 .68rem/1 var(--sans); letter-spacing: .3em; color: #c9a46a; }
  .pb-sboku h3 { margin: 8px 0 0; font: 500 1.7rem/1.04 var(--serif); }
  .pb-vrezka { max-width: none; margin-bottom: 6px; }
  .st-txt.st-partnery { padding: calc(14px + env(safe-area-inset-top)) 20px calc(14px + env(safe-area-inset-bottom)); -webkit-mask-image: none; mask-image: none; }
  .st-txt.st-partnery h2 { font-size: 2.2rem; margin-top: 6px; }
  .st-partnery .pt-tabs { gap: 0 14px; margin-top: 4px; }
  .st-partnery .pt-tabs a { min-height: 40px; font-size: .62rem; letter-spacing: .12em; }
  .st-partnery .st-cta { width: 100%; gap: 10px; }
}
