/* ============ RA BANNER SLIDER ============
   "We Worked With" hover/tap-to-reveal school banner slider.
   Default slide shows on load; hovering (desktop) or tapping (touch)
   swaps in the services slide. Frame ratio is locked to the design's
   1500x450 canvas so the full banner is always visible, never cropped. */

.ra-banner-slider{
  --ra-accent:#c9a24a; /* gold accent used in the designs - change to match your brand color if needed */
  position:relative;
  width:100%;
  overflow:hidden;
  background:#000;
  line-height:0;
}
.ra-banner__track{
  display:flex;
  transition:transform .6s ease;
}
.ra-banner__slide{
  position:relative;
  flex:0 0 100%;
  cursor:pointer;
}
.ra-banner__frame{
  position:relative;
  width:100%;
  aspect-ratio:10/3;
  overflow:hidden;
}
.ra-banner__img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  -webkit-user-select:none;
  user-select:none;
}
.ra-banner__img--hover{
  opacity:0;
  transition:opacity .45s ease;
}
@media (hover:hover) and (pointer:fine){
  .ra-banner__slide:hover .ra-banner__img--hover{ opacity:1; }
}
.ra-banner__slide.is-tapped .ra-banner__img--hover{ opacity:1; }

.ra-banner__tap-hint{
  position:absolute;
  right:14px;
  top:14px;
  background:rgba(0,0,0,.55);
  color:#fff;
  font-size:11px;
  letter-spacing:.05em;
  padding:6px 10px;
  border-radius:20px;
  pointer-events:none;
  opacity:1;
  transition:opacity .3s ease;
}
@media (hover:hover) and (pointer:fine){
  .ra-banner__tap-hint{ display:none; }
}
.ra-banner__slide.is-tapped .ra-banner__tap-hint{ opacity:0; }
@media (max-width:600px){
  .ra-banner__tap-hint{ font-size:9px; padding:4px 8px; right:8px; top:8px; }
}

.ra-banner__arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:5;
  width:40px;
  height:40px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.6);
  background:rgba(0,0,0,.25);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  font-size:18px;
  line-height:1;
}
.ra-banner__arrow:hover{ background:rgba(0,0,0,.5); border-color:#fff; }
.ra-banner__prev{ left:16px; }
.ra-banner__next{ right:16px; }
@media (max-width:600px){
  .ra-banner__arrow{ width:32px; height:32px; font-size:14px; }
  .ra-banner__prev{ left:8px; }
  .ra-banner__next{ right:8px; }
}

.ra-banner__dots{
  position:absolute;
  left:0;
  right:0;
  bottom:14px;
  z-index:5;
  display:flex;
  justify-content:center;
  gap:8px;
}
.ra-banner__dot{
  width:9px;
  height:9px;
  border-radius:50%;
  border:1px solid #fff;
  background:rgba(255,255,255,.35);
  padding:0;
  cursor:pointer;
}
.ra-banner__dot.is-active{ background:var(--ra-accent); border-color:var(--ra-accent); }
/* ============ /RA BANNER SLIDER ============ */
