/* Identical, gap-free groups make the final frame meet the first exactly. */
.service-marquee{position:relative;background:var(--amber);color:var(--ink);border-block:1px solid rgba(17,26,32,.12)}
.marquee-window{overflow:hidden;width:100%}
.marquee-track{display:flex;width:max-content;transform:translateX(0);will-change:transform}
.service-marquee.has-started .marquee-track{animation:service-loop 32s linear infinite}
.marquee-group{display:flex;align-items:center;justify-content:flex-start;flex-shrink:0;min-width:100vw}
.marquee-group>span{display:flex;flex-grow:1;justify-content:space-between;align-items:center;gap:44px;padding:22px 22px;white-space:nowrap;font-family:var(--font-display);font-size:27px;font-weight:600;line-height:1.2;letter-spacing:.035em;text-transform:uppercase}
.marquee-group>span::after{content:"✳";font-family:Arial,sans-serif;font-size:23px}
@keyframes service-loop{to{transform:translateX(-50%)}}
@keyframes enter-up{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes photo-settle{from{transform:scale(1.07)}to{transform:scale(1)}}
@media (prefers-reduced-motion:no-preference){
  .hero-inner>*{animation:enter-up .85s cubic-bezier(.2,.65,.25,1) both}
  .hero-inner>:nth-child(2){animation-delay:.08s}
  .hero-inner>:nth-child(3){animation-delay:.16s}
  .hero-inner>:nth-child(4){animation-delay:.24s}
  .hero-inner>:nth-child(5){animation-delay:.32s}
  .hero-visual img{animation:photo-settle 1.6s cubic-bezier(.2,.65,.25,1) both}
  .visual-caption{animation:enter-up .85s .3s both}
  .reveal-pending{opacity:0;transform:translateY(26px)}
  .reveal-pending.is-visible{animation:enter-up .75s cubic-bezier(.2,.65,.25,1) both;animation-delay:var(--reveal-delay,0ms)}
  .reveal-pending:focus-within{opacity:1;transform:none;animation:none}
  .primary-nav a{position:relative}
  .primary-nav a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--amber);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
  .primary-nav a:hover::after,.primary-nav a:focus-visible::after{transform:scaleX(1)}
}
@media (max-width:650px){
  .marquee-group>span{padding:19px 16px;gap:32px;font-size:23px}
  .marquee-group>span::after{font-size:19px}
}
@media (prefers-reduced-motion:reduce){
  .marquee-track{animation:none!important;transform:none;will-change:auto;width:auto}
  .marquee-window{margin-right:0}
  .marquee-group{min-width:0;width:100%;flex-wrap:wrap;justify-content:center}
  .marquee-group>span{font-size:20px;padding:12px;gap:24px}
  .marquee-group[aria-hidden]{display:none}
  .reveal-pending{opacity:1;transform:none;animation:none!important}
}
