/* Partners Grid — all styles are instance-scoped; no scroll-jacking or GSAP. */
.rvk-partners-grid {
  --rvk-partners-cols:15; --rvk-partners-rows:6; --rvk-partners-desktop-rows:6;
  --rvk-partners-line:#41413d; --rvk-partners-hover:#ffc32e; --rvk-partners-hover-line:#ffc32e;
  --rvk-partners-border:1px; --rvk-partners-logo-size:68px; --rvk-partners-logo-gap:6px;
  --rvk-partners-duration:.72s;
  background-color:#0a0a0a; color:#fff; isolation:isolate; direction:ltr;
  position:relative; min-height:650px; display:grid; align-items:center; justify-items:center;
  padding:clamp(20px,4vw,65px) 0; width:100%; max-width:100%; overflow:clip;
}
.rvk-partners-grid, .rvk-partners-grid *, .rvk-partners-grid *::before { box-sizing:border-box; }
.rvk-partners-grid .rvk-partners-matrix {
  display:grid; width:100%; max-width:1600px; margin:0 auto;
  grid-template-columns:repeat(var(--rvk-partners-cols),minmax(0,1fr));
  grid-template-rows:repeat(var(--rvk-partners-rows),minmax(0,1fr));
  aspect-ratio:var(--rvk-partners-cols) / var(--rvk-partners-rows);
  position:relative; isolation:isolate;
}
.rvk-partners-grid .rvk-partners-cell {
  position:relative; min-width:0; min-height:0; user-select:none; cursor:pointer;
  background:transparent;
  border:0; outline:0; display:grid; place-items:center;
  transition:background-color var(--rvk-partners-duration) cubic-bezier(.25,.1,.25,1);
}
.rvk-partners-grid .rvk-partners-cell.is-active,
.rvk-partners-grid .rvk-partners-cell:hover,
.rvk-partners-grid .rvk-partners-cell:focus-visible {
  background:var(--rvk-partners-hover);
}
.rvk-partners-grid .rvk-partners-cell:focus-visible .rvk-partners-cell-content { text-decoration:underline; text-decoration-color:currentColor; }
.rvk-partners-grid .rvk-partners-cell-content {
  display:flex; justify-content:center; align-items:center; width:100%; height:100%; padding:6px;
  opacity:0; transform:translateY(7px); pointer-events:none;
  transition:opacity .62s ease, transform .68s cubic-bezier(.25,.1,.25,1);
}
.rvk-partners-grid .rvk-partners-cell.is-active .rvk-partners-cell-content { opacity:1; transform:none; pointer-events:auto; }
.rvk-partners-grid .rvk-partners-cell-info { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:var(--rvk-partners-logo-gap); width:100%; max-width:100%; }
.rvk-partners-grid .rvk-partners-cell-logo { width:min(var(--rvk-partners-logo-size), 78%); height:min(var(--rvk-partners-logo-size), 75%); max-width:100%; max-height:100%; display:block; object-fit:contain; background:transparent; }
.rvk-partners-grid .rvk-partners-cell-name { font-size:clamp(9px,.85vw,13px); line-height:1.35; font-weight:650; text-align:center; color:#14120c; overflow-wrap:anywhere; }
.rvk-partners-grid .rvk-partners-cell-link { display:flex; align-items:center; justify-content:center; height:100%; max-width:100%; color:inherit; text-decoration:none; }
.rvk-partners-grid .rvk-partners-cell-link:focus-visible { outline:2px solid #14120c; outline-offset:2px; }
.rvk-partners-grid .rvk-partners-center {
  display:flex; flex-direction:column; align-items:stretch; justify-content:center;
  margin:0; padding:clamp(8px,1.8vw,34px);
  background:transparent; min-width:0; min-height:0; direction:rtl; text-align:center; border:0; position:relative; z-index:1;
}
.rvk-partners-grid .rvk-partners-center-title { display:flex; flex-direction:column; align-items:stretch; gap:12px; }
.rvk-partners-grid .rvk-partners-first { color:#f4f4ef; font-size:clamp(24px,4.4vw,72px); font-weight:850; line-height:1.2; letter-spacing:-.035em; }
.rvk-partners-grid .rvk-partners-second { color:#ffc32e; font-size:clamp(16px,2.4vw,39px); font-weight:700; line-height:1.35; }
.rvk-partners-grid .rvk-partners-visually-hidden {
  position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important;
  overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important;
}
@media(max-width:1023.98px) { .rvk-partners-grid { --rvk-partners-cols:9; min-height:480px; }
  .rvk-partners-grid .rvk-partners-first { font-size:clamp(22px,5.2vw,52px); }
  .rvk-partners-grid .rvk-partners-second { font-size:clamp(15px,2.9vw,30px); }
}
@media(max-width:767.98px) { .rvk-partners-grid { --rvk-partners-cols:5; min-height:420px; }
  .rvk-partners-grid .rvk-partners-first { font-size:clamp(20px,6vw,30px); }
  .rvk-partners-grid .rvk-partners-second { font-size:clamp(14px,3.9vw,19px); }
  .rvk-partners-grid .rvk-partners-center { padding:8px; }
  .rvk-partners-grid .rvk-partners-cell-name { font-size:9px; }
  .rvk-partners-grid .rvk-partners-cell-logo { width:min(var(--rvk-partners-logo-size), 84%); height:min(var(--rvk-partners-logo-size), 68%); }
}
@media(prefers-reduced-motion:reduce) { .rvk-partners-grid .rvk-partners-cell, .rvk-partners-grid .rvk-partners-cell-content { transition:none!important; transform:none!important; } }

/* V2.6 shared flat grid geometry: the neutral lines are painted exactly once.
   Active and adjacent colors occupy those SAME coordinates, not a second frame.
   Only the decorative matrix pseudo-element is masked: logos, links, and title remain crisp. */
.rvk-partners-grid { --rvk-partners-fade:65%; }
.rvk-partners-grid .rvk-partners-matrix::before {
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background-image:
    linear-gradient(to right, var(--rvk-partners-line) 0 var(--rvk-partners-border), transparent var(--rvk-partners-border)),
    linear-gradient(to bottom, var(--rvk-partners-line) 0 var(--rvk-partners-border), transparent var(--rvk-partners-border));
  background-size:calc(100% / var(--rvk-partners-cols)) calc(100% / var(--rvk-partners-rows));
  background-repeat:repeat;
  border-right:var(--rvk-partners-border) solid var(--rvk-partners-line);
  border-bottom:var(--rvk-partners-border) solid var(--rvk-partners-line);
}
.rvk-partners-grid .rvk-partners-matrix > * { z-index:1; }
/* Grid lines do not continue through the intentionally empty headline area. */
.rvk-partners-grid .rvk-partners-center { background:var(--rvk-partners-background,#0a0a0a); }
.rvk-partners-grid .rvk-partners-cell { isolation:isolate; }
.rvk-partners-grid .rvk-partners-cell-content { position:relative; z-index:2; }
/* Color-only repaint, no width/size/box-shadow animations. Edge width never changes. */
.rvk-partners-grid .rvk-partners-cell::after {
  content:""; position:absolute; inset:0; pointer-events:none; z-index:1;
  border-style:solid;
  border-width:var(--rvk-partners-border) 0 0 var(--rvk-partners-border);
  border-color:var(--rvk-edge-top-color,transparent) var(--rvk-edge-right-color,transparent)
    var(--rvk-edge-bottom-color,transparent) var(--rvk-edge-left-color,transparent);
  transition:border-color .76s cubic-bezier(.25,.1,.25,1);
}
.rvk-partners-grid .rvk-partners-cell.rvk-last-col::after { border-right-width:var(--rvk-partners-border); }
.rvk-partners-grid .rvk-partners-cell.rvk-last-row::after { border-bottom-width:var(--rvk-partners-border); }
.rvk-partners-grid.rvk-partners-fade--vertical .rvk-partners-matrix::before,
.rvk-partners-grid.rvk-partners-fade--all .rvk-partners-matrix::before {
  --rvk-fade-distance:clamp(7%,calc(var(--rvk-partners-fade) * .30),31%);
  -webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 var(--rvk-fade-distance),
      #000 calc(100% - var(--rvk-fade-distance)),transparent 100%);
  mask-image:linear-gradient(to bottom,transparent 0%,#000 var(--rvk-fade-distance),
      #000 calc(100% - var(--rvk-fade-distance)),transparent 100%);
}
.rvk-partners-grid.rvk-partners-fade--all .rvk-partners-matrix::before {
  -webkit-mask-image:
    linear-gradient(to bottom,transparent 0%,#000 var(--rvk-fade-distance),#000 calc(100% - var(--rvk-fade-distance)),transparent 100%),
    linear-gradient(to right,transparent 0%,#000 var(--rvk-fade-distance),#000 calc(100% - var(--rvk-fade-distance)),transparent 100%);
  mask-image:
    linear-gradient(to bottom,transparent 0%,#000 var(--rvk-fade-distance),#000 calc(100% - var(--rvk-fade-distance)),transparent 100%),
    linear-gradient(to right,transparent 0%,#000 var(--rvk-fade-distance),#000 calc(100% - var(--rvk-fade-distance)),transparent 100%);
  -webkit-mask-composite:source-in;
  mask-composite:intersect;
}
.rvk-partners-grid.rvk-partners-fade--none .rvk-partners-matrix::before {
  -webkit-mask-image:none; mask-image:none; -webkit-mask-composite:source-over; mask-composite:add;
}
/* On mobile, grid row 2 is the heading and has flexible height. Draw lines on
   each owned edge so row heights need not be equal for correct alignment. */
@media(max-width:767.98px) {
  .rvk-partners-grid { container-type:inline-size; min-height:0; padding:12px 0 14px; --rvk-partners-duration:.72s; }
  .rvk-partners-grid .rvk-partners-matrix {
    aspect-ratio:auto;
    grid-template-rows:calc(100cqw / var(--rvk-partners-cols)) minmax(92px,auto)
      calc(100cqw / var(--rvk-partners-cols)) calc(100cqw / var(--rvk-partners-cols));
  }
  .rvk-partners-grid .rvk-partners-center { padding:12px 8px; }
  .rvk-partners-grid .rvk-partners-center-title { gap:6px; }
  .rvk-partners-grid .rvk-partners-matrix::before { background:none; border:0; }
  .rvk-partners-grid .rvk-partners-cell::before {
    content:""; position:absolute; inset:0; pointer-events:none; z-index:0;
    border-style:solid; border-color:var(--rvk-partners-line);
    border-width:var(--rvk-partners-border) 0 0 var(--rvk-partners-border);
  }
  /* The heading row is intentionally line-free. The last lower row owns its bottom edges. */
  .rvk-partners-grid .rvk-partners-cell.rvk-last-row::before { border-bottom-width:var(--rvk-partners-border); }
  .rvk-partners-grid .rvk-partners-cell.rvk-last-col::before { border-right-width:var(--rvk-partners-border); }
  .rvk-partners-grid .rvk-partners-cell::after {
    /* Existing top/left edges are overpainted in exactly the same slots. */
    border-width:var(--rvk-partners-border) 0 0 var(--rvk-partners-border);
  }
  .rvk-partners-grid .rvk-partners-cell.rvk-last-row::after { border-bottom-width:var(--rvk-partners-border); }
  .rvk-partners-grid .rvk-partners-cell.rvk-last-col::after { border-right-width:var(--rvk-partners-border); }
  /* Mobile masks are CSS-only and affect line paint, not foreground content. */
  .rvk-partners-grid.rvk-partners-fade--vertical .rvk-partners-cell.rvk-first-row::before,
  .rvk-partners-grid.rvk-partners-fade--all .rvk-partners-cell.rvk-first-row::before { -webkit-mask-image:linear-gradient(to bottom,transparent,#000 clamp(65%,calc(100% - var(--rvk-partners-fade) * .18),92%)); mask-image:linear-gradient(to bottom,transparent,#000 clamp(65%,calc(100% - var(--rvk-partners-fade) * .18),92%)); }
  .rvk-partners-grid.rvk-partners-fade--vertical .rvk-partners-cell.rvk-last-row::before,
  .rvk-partners-grid.rvk-partners-fade--all .rvk-partners-cell.rvk-last-row::before { -webkit-mask-image:linear-gradient(to top,transparent,#000 clamp(65%,calc(100% - var(--rvk-partners-fade) * .18),92%)); mask-image:linear-gradient(to top,transparent,#000 clamp(65%,calc(100% - var(--rvk-partners-fade) * .18),92%)); }
  .rvk-partners-grid.rvk-partners-fade--all .rvk-partners-cell[data-rvk-col="1"]::before { -webkit-mask-image:linear-gradient(to right,transparent,#000 clamp(65%,calc(100% - var(--rvk-partners-fade) * .18),92%)); mask-image:linear-gradient(to right,transparent,#000 clamp(65%,calc(100% - var(--rvk-partners-fade) * .18),92%)); }
  .rvk-partners-grid.rvk-partners-fade--all .rvk-partners-cell.rvk-last-col::before { -webkit-mask-image:linear-gradient(to left,transparent,#000 clamp(65%,calc(100% - var(--rvk-partners-fade) * .18),92%)); mask-image:linear-gradient(to left,transparent,#000 clamp(65%,calc(100% - var(--rvk-partners-fade) * .18),92%)); }
  /* Two crossing masks at mobile corners; no foreground content masked. */
  .rvk-partners-grid.rvk-partners-fade--all .rvk-partners-cell.rvk-first-row[data-rvk-col="1"]::before,
  .rvk-partners-grid.rvk-partners-fade--all .rvk-partners-cell.rvk-first-row.rvk-last-col::before,
  .rvk-partners-grid.rvk-partners-fade--all .rvk-partners-cell.rvk-last-row[data-rvk-col="1"]::before,
  .rvk-partners-grid.rvk-partners-fade--all .rvk-partners-cell.rvk-last-row.rvk-last-col::before {
    -webkit-mask-composite:source-in; mask-composite:intersect;
  }
  .rvk-partners-grid.rvk-partners-fade--all .rvk-partners-cell.rvk-first-row[data-rvk-col="1"]::before {
    -webkit-mask-image:linear-gradient(to bottom,transparent,#000 clamp(65%,calc(100% - var(--rvk-partners-fade) * .18),92%)),linear-gradient(to right,transparent,#000 clamp(65%,calc(100% - var(--rvk-partners-fade) * .18),92%));
    mask-image:linear-gradient(to bottom,transparent,#000 clamp(65%,calc(100% - var(--rvk-partners-fade) * .18),92%)),linear-gradient(to right,transparent,#000 clamp(65%,calc(100% - var(--rvk-partners-fade) * .18),92%));
  }
  .rvk-partners-grid.rvk-partners-fade--all .rvk-partners-cell.rvk-first-row.rvk-last-col::before {
    -webkit-mask-image:linear-gradient(to bottom,transparent,#000 clamp(65%,calc(100% - var(--rvk-partners-fade) * .18),92%)),linear-gradient(to left,transparent,#000 clamp(65%,calc(100% - var(--rvk-partners-fade) * .18),92%));
    mask-image:linear-gradient(to bottom,transparent,#000 clamp(65%,calc(100% - var(--rvk-partners-fade) * .18),92%)),linear-gradient(to left,transparent,#000 clamp(65%,calc(100% - var(--rvk-partners-fade) * .18),92%));
  }
  .rvk-partners-grid.rvk-partners-fade--all .rvk-partners-cell.rvk-last-row[data-rvk-col="1"]::before {
    -webkit-mask-image:linear-gradient(to top,transparent,#000 clamp(65%,calc(100% - var(--rvk-partners-fade) * .18),92%)),linear-gradient(to right,transparent,#000 clamp(65%,calc(100% - var(--rvk-partners-fade) * .18),92%));
    mask-image:linear-gradient(to top,transparent,#000 clamp(65%,calc(100% - var(--rvk-partners-fade) * .18),92%)),linear-gradient(to right,transparent,#000 clamp(65%,calc(100% - var(--rvk-partners-fade) * .18),92%));
  }
  .rvk-partners-grid.rvk-partners-fade--all .rvk-partners-cell.rvk-last-row.rvk-last-col::before {
    -webkit-mask-image:linear-gradient(to top,transparent,#000 clamp(65%,calc(100% - var(--rvk-partners-fade) * .18),92%)),linear-gradient(to left,transparent,#000 clamp(65%,calc(100% - var(--rvk-partners-fade) * .18),92%));
    mask-image:linear-gradient(to top,transparent,#000 clamp(65%,calc(100% - var(--rvk-partners-fade) * .18),92%)),linear-gradient(to left,transparent,#000 clamp(65%,calc(100% - var(--rvk-partners-fade) * .18),92%));
  }
}
@media(prefers-reduced-motion:reduce) {
  .rvk-partners-grid .rvk-partners-cell::after { transition:none!important; }
}
