/* ========================================================================== 
   ES-PRO V59.24 — complete excellence icon palette and CTA accent contrast
   ========================================================================== */

/* The excellence strip contains five ARTICLE elements after one DIV heading.
   Target article order directly so the fifth (leaf) card cannot fall back to
   the old pale tile. */
.page-home .excellence-grid>article.excellence-item>span{
  color:#fff!important;
  background:linear-gradient(145deg,#5279d6,#385fc0)!important;
  border:1px solid rgba(255,255,255,.82)!important;
  box-shadow:0 10px 23px rgba(16,42,67,.17),inset 0 1px rgba(255,255,255,.34)!important
}
.page-home .excellence-grid>article.excellence-item:nth-of-type(1)>span{background:linear-gradient(145deg,#5279d6,#385fc0)!important}
.page-home .excellence-grid>article.excellence-item:nth-of-type(2)>span{background:linear-gradient(145deg,#188c93,#0d6f79)!important}
.page-home .excellence-grid>article.excellence-item:nth-of-type(3)>span{background:linear-gradient(145deg,#d39a38,#a96b18)!important}
.page-home .excellence-grid>article.excellence-item:nth-of-type(4)>span{background:linear-gradient(145deg,#7461c4,#5645aa)!important}
.page-home .excellence-grid>article.excellence-item:nth-of-type(5)>span,
.page-home .excellence-grid>article.excellence-item:last-child>span{
  background:linear-gradient(145deg,#34ad6b 0%,#197b49 100%)!important;
  border-color:#d9f5e5!important;
  box-shadow:0 11px 25px rgba(25,123,73,.25),inset 0 1px rgba(255,255,255,.38)!important
}
.page-home .excellence-grid>article.excellence-item>span .ui-icon{
  width:25px!important;height:25px!important;color:#fff!important;
  opacity:1!important;filter:drop-shadow(0 1px 1px rgba(0,45,27,.25))!important;
  stroke-width:2!important
}

/* A compact warm-white marker separates the eyebrow from the blue CTA field.
   It is intentionally the only warm accent in this band. */
.cta-band .eyebrow.light::before{
  width:34px!important;height:3px!important;
  background:linear-gradient(90deg,#fff 0%,#f3c45f 100%)!important;
  border-radius:999px!important;box-shadow:0 2px 8px rgba(5,29,55,.18)!important;
  opacity:1!important
}

/* Mobile carousel progress uses a visible neutral track and a timed brand-blue
   fill. The 4.3 s duration matches the automatic carousel interval. */
@media(max-width:820px){
  .mobile-carousel-progress{
    display:flex!important;align-items:center!important;justify-content:center!important;
    gap:7px!important;margin:14px auto 2px!important
  }
  .mobile-carousel-progress button,
  .mobile-carousel-progress button:not(.active){
    position:relative!important;width:17px!important;height:5px!important;
    overflow:hidden!important;padding:0!important;background:#bccbd8!important;
    border:1px solid #adbfce!important;border-radius:999px!important;
    box-shadow:0 2px 6px rgba(16,42,67,.10)!important;opacity:1!important;
    transition:width .28s cubic-bezier(.16,1,.3,1),background .28s ease!important
  }
  .mobile-carousel-progress button.active{
    width:39px!important;background:#d9e3ec!important;
    border-color:#b8c9d8!important;box-shadow:0 3px 8px rgba(16,42,67,.13)!important
  }
  .mobile-carousel-progress button.active::after{
    position:absolute!important;inset:-1px!important;display:block!important;
    background:var(--theme-primary,#0b4c9c)!important;border-radius:inherit!important;
    content:""!important;transform:scaleX(0);transform-origin:left center;
    animation:v5924-carousel-progress 4.3s linear forwards!important
  }
}

@keyframes v5924-carousel-progress{
  from{transform:scaleX(0)}
  to{transform:scaleX(1)}
}

/* Premium scroll motion: one calm system for headings, cards and split media.
   Everything remains fully visible when JavaScript is unavailable. */
@media(prefers-reduced-motion:no-preference){
  .js .reveal{
    opacity:0!important;filter:saturate(.94)!important;
    transform:translate3d(0,30px,0) scale(.985)!important;
    transform-origin:center bottom;will-change:opacity,transform;
    transition-property:opacity,transform,filter!important;
    transition-duration:.72s,.82s,.68s!important;
    transition-timing-function:ease,cubic-bezier(.16,1,.3,1),ease!important;
    transition-delay:0ms!important
  }
  .js .reveal.visible{
    opacity:1!important;filter:saturate(1)!important;
    transform:translate3d(0,0,0) scale(1)!important
  }
  .js .reveal.reveal--staggered{
    transition-delay:var(--reveal-delay,0ms)!important
  }

  /* Split layouts enter from their natural side by a short distance only. */
  .js .capability-media.reveal,.js .story-image.reveal,
  .js .map-frame.reveal,.js .catalog-gallery.reveal{
    transform:translate3d(-32px,10px,0) scale(.99)!important
  }
  .js .capability-content.reveal,.js .story-copy.reveal,
  .js .map-copy.reveal,.js .catalog-summary.reveal{
    transform:translate3d(32px,10px,0) scale(.99)!important
  }
  .js .capability-media.reveal.visible,.js .story-image.reveal.visible,
  .js .map-frame.reveal.visible,.js .catalog-gallery.reveal.visible,
  .js .capability-content.reveal.visible,.js .story-copy.reveal.visible,
  .js .map-copy.reveal.visible,.js .catalog-summary.reveal.visible{
    transform:translate3d(0,0,0) scale(1)!important
  }

  .cta-band__inner.reveal .eyebrow.light::before{
    transform:scaleX(.18);transform-origin:left center;
    transition:transform .62s cubic-bezier(.16,1,.3,1) .18s!important
  }
  .cta-band__inner.reveal.visible .eyebrow.light::before{transform:scaleX(1)}

  .page-home .excellence-grid>article.excellence-item>span{
    transition:transform .32s cubic-bezier(.16,1,.3,1),box-shadow .32s ease!important
  }
  .page-home .excellence-grid>article.excellence-item:hover>span{
    transform:translateY(-3px) scale(1.045)
  }
}

@media(max-width:820px) and (prefers-reduced-motion:no-preference){
  .js .reveal,
  .js .capability-media.reveal,.js .story-image.reveal,
  .js .map-frame.reveal,.js .catalog-gallery.reveal,
  .js .capability-content.reveal,.js .story-copy.reveal,
  .js .map-copy.reveal,.js .catalog-summary.reveal{
    opacity:0!important;filter:saturate(.96)!important;
    transform:translate3d(0,19px,0) scale(.99)!important;
    transition-duration:.56s,.64s,.5s!important
  }
  .js .reveal.visible,
  .js .capability-media.reveal.visible,.js .story-image.reveal.visible,
  .js .map-frame.reveal.visible,.js .catalog-gallery.reveal.visible,
  .js .capability-content.reveal.visible,.js .story-copy.reveal.visible,
  .js .map-copy.reveal.visible,.js .catalog-summary.reveal.visible{
    opacity:1!important;filter:saturate(1)!important;
    transform:translate3d(0,0,0) scale(1)!important
  }
  .js .reveal.reveal--staggered{
    transition-delay:min(var(--reveal-delay,0ms),195ms)!important
  }
}

@media(prefers-reduced-motion:reduce){
  .js .reveal,.js .reveal.visible{
    opacity:1!important;filter:none!important;transform:none!important;
    transition:none!important;will-change:auto!important
  }
  .cta-band__inner .eyebrow.light::before{transform:none!important;transition:none!important}
  .mobile-carousel-progress button.active::after{
    animation:none!important;transform:scaleX(1)!important
  }
}
