/* Official marks retain their proportions and colours within one optical grid. */
.carrier-logos { padding:32px 0 22px; background:#fff; }
.carrier-logos-inner { width:89.2%; max-width:1560px; margin:auto; }
.carrier-logos-title {
  margin:0 0 20px; padding:0; text-align:center;
  color:#647e94; font-size:17px; font-weight:500; line-height:1.7; letter-spacing:.08em;
}
.carrier-logos-list {
  display:grid; grid-template-columns:repeat(9,minmax(0,1fr));
  gap:8px; list-style:none; padding:0; margin:0;
}
.carrier-logo { min-width:0; }
.carrier-logo a {
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:13px; min-height:112px; padding:12px 7px; border-radius:10px;
  transition:background .25s ease,transform .25s ease;
}
.carrier-logo-mark { display:flex; align-items:center; justify-content:center; width:100%; height:54px; }
.carrier-logo img {
  width:var(--logo-width,110px); height:var(--logo-height,46px); max-width:100%;
  object-fit:contain; object-position:center; opacity:.92;
  transition:opacity .25s ease,transform .25s ease;
}
.carrier-logo-name { color:#738496; font-size:11px; line-height:1.5; white-space:nowrap; }
.carrier-logo a:focus-visible { outline:2px solid #1677bd; outline-offset:2px; background:#f4f8fc; }
@media(hover:hover) {
  .carrier-logo a:hover { background:#f4f8fc; transform:translateY(-3px); }
  .carrier-logo a:hover img { opacity:1; transform:scale(1.035); }
  .carrier-logo a:hover .carrier-logo-name { color:#0753a2; }
}
.carrier-logos + .capabilities { padding-top:44px; }
@media(max-width:1100px) {
  .carrier-logos { padding:24px 0 12px; }
  .carrier-logos-inner { max-width:780px; }
  .carrier-logos-list { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px 18px; }
  .carrier-logo a { min-height:100px; gap:10px; }
  .carrier-logos + .capabilities { padding-top:34px; }
}
@media(max-width:600px) {
  .carrier-logos { padding:18px 0 10px; }
  .carrier-logos-title { margin-bottom:14px; font-size:14px; letter-spacing:.035em; }
  .carrier-logos-inner { width:calc(100% - 32px); }
  .carrier-logos-list { gap:4px; }
  .carrier-logo a { min-height:88px; padding:10px 7px; gap:8px; }
  .carrier-logo-mark { height:42px; }
  .carrier-logo img { max-height:40px; }
  .carrier-logo-name { font-size:10px; }
  .carrier-logos + .capabilities { padding-top:26px; }
}
@media(prefers-reduced-motion:reduce) {
  .carrier-logo a,.carrier-logo img { transition:none; transform:none!important; }
}

/* Equal-width copies meet at the same position on every loop. */
.carrier-logos.is-marquee .carrier-logos-inner { position:relative; max-width:1560px; }
.carrier-marquee-viewport {
  overflow:hidden; padding:6px 0;
  mask-image:linear-gradient(90deg,transparent,#000 18px,#000 calc(100% - 18px),transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 18px,#000 calc(100% - 18px),transparent);
}
.carrier-marquee-track {
  display:flex; width:max-content; will-change:transform;
  animation:carrier-drift var(--carrier-duration,60s) linear infinite paused;
}
.is-marquee .carrier-logos-list { display:flex; flex:none; gap:0; }
.is-marquee .carrier-logo { flex:0 0 max(140px,calc(min(89.2vw,1560px) / 9)); }
.carrier-logos[data-running="true"] .carrier-marquee-track { animation-play-state:running; }
@keyframes carrier-drift { to { transform:translate3d(-50%,0,0); } }
@media(hover:hover) {
  .carrier-logos.is-marquee:hover .carrier-marquee-track { animation-play-state:paused; }
}
/* Keyboard navigation and reduced-motion preferences expose every original link. */
.carrier-logos:is(.is-static,:has(a:focus-visible)) .carrier-marquee-viewport { overflow:visible; mask-image:none; -webkit-mask-image:none; }
.carrier-logos:is(.is-static,:has(a:focus-visible)) .carrier-marquee-track { display:block; width:100%; animation:none; transform:none; will-change:auto; }
.carrier-logos:is(.is-static,:has(a:focus-visible)) .carrier-logos-list { display:grid; grid-template-columns:repeat(9,minmax(0,1fr)); gap:8px; }
.carrier-logos:is(.is-static,:has(a:focus-visible)) .carrier-logos-copy { display:none; }
@media(max-width:1100px) {
  .carrier-logos:is(.is-static,:has(a:focus-visible)) .carrier-logos-list { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px 18px; }
}
@media(max-width:600px) {
  .carrier-logos:is(.is-static,:has(a:focus-visible)) .carrier-logos-list { gap:4px; }
}
