/* Interaction styles that were component state in the source templates. */
.mp-btn{transition:opacity .16s ease}
.mp-btn:hover{opacity:.85}
.mp-btn:focus-visible,.mp-acc-btn:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #7FB0EC;outline-offset:2px}
.mp-btn:hover .mp-btn-arrow{transform:translate(2px,-2px)}
.mp-acc-btn:hover{opacity:.85}
input:focus,select:focus,textarea:focus{border-color:#2B6CC6!important}
/* Homepage ticker strip. Content is authored twice back-to-back so a -50%
   translate hands off to an identical copy — width:max-content on the row
   (set inline) makes that midpoint exact at every breakpoint. */
@keyframes mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* Homepage partner-logo strip.
   Desktop (>1180px) keeps the original manually-scrollable row: the duplicate
   set is hidden and the track is a plain flex row, so nothing changes there.
   At tablet and below it becomes a self-scrolling marquee — responsive.css
   otherwise forces `flex-wrap:wrap` on every inline flex div at ≤767px, which
   stacked these eight slots into a vertical column.
   Selectors carry a `div` prefix on purpose: they must out-specify
   responsive.css's `div[style*="display: flex"]` and `section :not(...)`
   !important rules, which this file (loaded last) ties on specificity. */
div.mp-logos-dup{display:none!important}

@media (max-width:1180px){
  div.mp-logos{overflow:hidden!important;padding-left:0!important;padding-right:0!important}
  div.mp-logos-track{width:max-content;max-width:none!important;flex-wrap:nowrap!important;animation:mp-logos 30s linear infinite}
  div.mp-logos-set{max-width:none!important;flex-wrap:nowrap!important}
  div.mp-logos-dup{display:flex!important}
  div.mp-logos:hover div.mp-logos-track,div.mp-logos:focus-within div.mp-logos-track{animation-play-state:paused}
}

/* One set is 8×220px + 7×32px gaps = 1984px, and the two sets sit 32px apart,
   so the seamless hand-off point is 2016px — i.e. half the 4000px track plus
   half a gap. Hence the -16px correction; a bare -50% would drift by 16px. */
@keyframes mp-logos{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 16px))}}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
/* With the animation suppressed above, give the strip its manual scroll back. */
@media (prefers-reduced-motion:reduce){
  div.mp-logos{overflow-x:auto!important}
  div.mp-logos-dup{display:none!important}
}
