/* Insurer logos (polish spec 7): original colours on a grey band, scrolling right to left. */
.gs-insurers { background: var(--gs-band); padding-block: 14px; }
.gs-insurers__inner { display: flex; align-items: center; gap: 28px; }
.gs-insurers .gs-insurers__label { flex: none; margin: 0; padding-left: 14px; border-left: 4px solid var(--gs-accent); font-size: 0.9375rem; line-height: 1.25; }
.gs-insurers__label span { display: block; }
.gs-insurers__viewport { flex: 1; min-width: 0; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent); mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent); }
.gs-insurers__track { display: flex; gap: 36px; width: max-content; margin: 0; padding: 0; list-style: none; animation: gs-marquee 45s linear infinite; }
.gs-insurers__track li { flex: none; display: grid; place-items: center; }
/* The logo files carry ~20% margins; at 74 px they read like on the old site. */
.gs-insurers__track img { display: block; width: auto; height: 74px; }
.gs-insurers:hover .gs-insurers__track,
.gs-insurers:focus-within .gs-insurers__track,
.gs-insurers--paused .gs-insurers__track { animation-play-state: paused; }
/* The track holds the logos twice: move by one copy plus half the gap between them. */
@keyframes gs-marquee { to { transform: translateX(calc(-50% - 18px)); } }

.gs-insurers__toggle { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--gs-line); border-radius: var(--gs-radius); background: var(--gs-white); color: var(--gs-navy); cursor: pointer; }
.gs-insurers__toggle .gs-icon { width: 18px; height: 18px; }
.gs-insurers__toggle .gs-insurers__play,
.gs-insurers__toggle[aria-pressed="true"] .gs-insurers__pause { display: none; }
.gs-insurers__toggle[aria-pressed="true"] .gs-insurers__play { display: block; }
.gs-insurers__toggle:focus-visible { outline: none; box-shadow: var(--gs-focus); }

@media (max-width: 767px) {
  .gs-insurers__inner { flex-wrap: wrap; gap: 14px; }
  .gs-insurers__viewport { order: 3; flex-basis: 100%; }
  .gs-insurers .gs-insurers__label { flex: 1; }
  .gs-insurers__label span { display: inline; }
  .gs-insurers__track { gap: 24px; }
  .gs-insurers__track img { height: 58px; }
  @keyframes gs-marquee { to { transform: translateX(calc(-50% - 12px)); } }
}
@media (prefers-reduced-motion: reduce) {
  .gs-insurers__track { animation: none; }
  .gs-insurers__viewport { overflow-x: auto; -webkit-mask-image: none; mask-image: none; }
  .gs-insurers__track li[aria-hidden="true"], .gs-insurers__toggle { display: none; }
}

/* On the home page the band under the hero is half as tall again as on product pages
   (client, 23 Oct): 102 → 153 px on desktop, 140 → 210 px on phones. */
.gs-home > section.gs-insurers { position: relative; padding-block: 40px; overflow-x: clip; }
@media (max-width: 767px) {
  .gs-home > section.gs-insurers { padding-block: 49px; }
}

/* Home: the logo's sun rings turn on the band's top edge, centred on the page's right edge.
   z-index 3 puts them over the hero's copy and slider (2 and 1, same stacking context) and
   under the band's logos and button; overflow-x: clip keeps their right half off the page. */
.gs-sun--rings { position: absolute; top: 0; right: 0; z-index: 3; width: 320px; height: 320px; transform: translate(50%, -50%); }
.gs-sun--rings svg { position: absolute; inset: 0; width: 100%; height: 100%; animation: gs-spin 48s linear infinite; will-change: transform; }
.gs-sun--rings svg:nth-child(2) { animation-duration: 34s; animation-direction: reverse; }
.gs-sun--rings svg:nth-child(3) { animation-duration: 24s; }
.gs-home .gs-insurers__inner { position: relative; z-index: 4; }
.gs-insurers--paused .gs-sun--rings svg { animation-play-state: paused; }
@keyframes gs-spin { to { transform: rotate(360deg); } }
@media (max-width: 1199px) { .gs-sun--rings { width: 260px; height: 260px; } }
@media (max-width: 767px) { .gs-sun--rings { width: 200px; height: 200px; } }
@media (prefers-reduced-motion: reduce) { .gs-sun--rings svg { animation: none; } }
