/* =========================================================
   CES V1.5.5 - Restored V1.1.2 Moving Logo Treatment
   Visual-only component reused on Home + Current Officers.
   ========================================================= */
.ces-moving-logo-wrap{
  position:relative;
  z-index:3;
  min-height:520px;
  display:grid;
  place-items:center;
  isolation:isolate;
}

.ces-moving-logo-stage{
  --ces-logo-size:360px;
  --ces-halo-size:500px;
  --ces-orbit-w:500px;
  --ces-orbit-h:292px;
  position:relative;
  width:min(100%,590px);
  min-height:520px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  isolation:isolate;
  perspective:900px;
}

.ces-moving-logo-stage .ces-logo-halo{
  position:absolute;
  left:50%;
  top:46%;
  width:var(--ces-halo-size);
  height:var(--ces-halo-size);
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:radial-gradient(circle,
    rgba(255,248,197,.14) 0 14%,
    rgba(255,220,43,.12) 27%,
    rgba(255,190,0,.065) 46%,
    rgba(255,160,0,.025) 58%,
    transparent 74%);
  filter:blur(18px);
  animation:cesLogoHaloBreathe 7s ease-in-out infinite;
  pointer-events:none;
}

.ces-moving-logo-stage .ces-logo-orbit{
  position:absolute;
  left:50%;
  top:46%;
  width:var(--ces-orbit-w);
  height:var(--ces-orbit-h);
  transform:translate(-50%,-50%) rotate(-17deg);
  border:1px solid rgba(255,212,0,.17);
  border-left-color:rgba(255,212,0,.34);
  border-right-color:rgba(255,212,0,.06);
  border-radius:50%;
  animation:cesLogoOrbit 32s linear infinite;
  pointer-events:none;
}

.ces-moving-logo-stage .ces-logo-core{
  position:relative;
  z-index:5;
  width:calc(var(--ces-logo-size) + 30px);
  height:calc(var(--ces-logo-size) + 30px);
  display:grid;
  place-items:center;
  border-radius:50%;
  transform:translate3d(var(--ces-logo-pointer-x,0),var(--ces-logo-pointer-y,0),0)
            rotateX(var(--ces-logo-rotate-x,0deg)) rotateY(var(--ces-logo-rotate-y,0deg));
  transition:transform .16s ease-out;
  transform-style:preserve-3d;
  will-change:transform;
}

.ces-moving-logo-stage .ces-logo-image{
  width:var(--ces-logo-size);
  height:var(--ces-logo-size);
  object-fit:contain;
  border-radius:50%;
  filter:drop-shadow(0 0 10px rgba(255,212,0,.28)) drop-shadow(0 0 30px rgba(255,212,0,.10));
  animation:cesLogoFloat 7s ease-in-out infinite;
  transition:filter .25s ease;
  user-select:none;
  -webkit-user-drag:none;
}

.ces-moving-logo-stage .ces-logo-point{
  position:absolute;
  z-index:6;
  width:5px;
  height:5px;
  border-radius:50%;
  background:#ffd400;
  box-shadow:0 0 10px rgba(255,212,0,.65);
  opacity:.75;
  pointer-events:none;
}
.ces-moving-logo-stage .ces-logo-point.p1{left:18%;top:27%}
.ces-moving-logo-stage .ces-logo-point.p2{right:15%;top:34%}
.ces-moving-logo-stage .ces-logo-point.p3{left:25%;bottom:24%}
.ces-moving-logo-stage .ces-logo-point.p4{right:23%;bottom:20%}

.ces-moving-logo-stage .ces-logo-caption{
  position:absolute;
  bottom:10px;
  z-index:7;
  text-align:center;
  pointer-events:none;
}
.ces-moving-logo-stage .ces-logo-caption strong{
  display:block;
  color:#ffd400;
  font-family:Arial,Helvetica,sans-serif;
  font-size:.82rem;
  font-weight:900;
  letter-spacing:.11em;
}
.ces-moving-logo-stage .ces-logo-caption span{
  display:block;
  margin-top:5px;
  color:#73767a;
  font-family:Arial,Helvetica,sans-serif;
  font-size:.66rem;
  letter-spacing:.08em;
}

.ces-moving-logo-stage:hover .ces-logo-image{
  filter:drop-shadow(0 0 12px rgba(255,236,153,.36)) drop-shadow(0 0 38px rgba(255,212,0,.15));
}
.ces-moving-logo-stage:hover .ces-logo-halo{opacity:.92}

/* Home keeps the current cinematic grid, but the old moving CES seal replaces the photo stack. */
.ces-cinematic-home .cinematic-hero__visual.ces-logo-hero-visual{
  min-height:590px;
  display:grid;
  place-items:center;
}
.ces-cinematic-home .ces-logo-hero-visual .ces-moving-logo-stage{
  --ces-logo-size:380px;
  --ces-halo-size:530px;
  --ces-orbit-w:520px;
  --ces-orbit-h:302px;
}
.ces-cinematic-home .ces-logo-hero-visual .hero-scroll-cue{
  right:6px;
  bottom:4px;
}


/* V1.5.6 Home positioning: keep the restored seal visually anchored and slightly higher. */
.ces-cinematic-home .cinematic-hero__visual.ces-logo-hero-visual{
  top:-34px;
  align-self:start;
  position:relative;
}
.ces-cinematic-home .ces-logo-hero-visual .ces-moving-logo-stage{
  position:sticky;
  top:92px;
}

/* Current Officers uses the same motion, sized as a supporting hero object. */
.officers-page .officers-moving-logo-wrap{
  justify-self:center;
  width:min(35vw,460px);
  min-height:480px;
}
.officers-page .officers-moving-logo-wrap .ces-moving-logo-stage{
  --ces-logo-size:300px;
  --ces-halo-size:430px;
  --ces-orbit-w:425px;
  --ces-orbit-h:248px;
  width:100%;
  min-height:470px;
}
.officers-page .officers-moving-logo-wrap .ces-logo-caption{
  bottom:8px;
}

@keyframes cesLogoHaloBreathe{
  0%,100%{opacity:.58;transform:translate(-50%,-50%) scale(.97)}
  50%{opacity:.86;transform:translate(-50%,-50%) scale(1.035)}
}
@keyframes cesLogoOrbit{
  to{transform:translate(-50%,-50%) rotate(343deg)}
}
@keyframes cesLogoFloat{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-7px)}
}

@media(max-width:1100px){
  .ces-cinematic-home .ces-logo-hero-visual .ces-moving-logo-stage{
    --ces-logo-size:330px;
    --ces-halo-size:470px;
    --ces-orbit-w:460px;
    --ces-orbit-h:268px;
    min-height:500px;
  }
  .officers-page .officers-moving-logo-wrap{
    width:min(72vw,410px);
    min-height:450px;
  }
}

@media(max-width:760px){
  .ces-cinematic-home .cinematic-hero__visual.ces-logo-hero-visual{top:-12px;align-self:auto}
  .ces-cinematic-home .ces-logo-hero-visual .ces-moving-logo-stage{position:relative;top:auto}
  .ces-moving-logo-wrap{min-height:390px}
  .ces-moving-logo-stage{
    --ces-logo-size:245px;
    --ces-halo-size:350px;
    --ces-orbit-w:340px;
    --ces-orbit-h:200px;
    min-height:385px;
  }
  .ces-cinematic-home .cinematic-hero__visual.ces-logo-hero-visual{min-height:390px}
  .ces-cinematic-home .ces-logo-hero-visual .ces-moving-logo-stage{
    --ces-logo-size:245px;
    --ces-halo-size:350px;
    --ces-orbit-w:340px;
    --ces-orbit-h:200px;
    min-height:385px;
  }
  .officers-page .officers-moving-logo-wrap{
    width:100%;
    min-height:390px;
    margin-bottom:24px;
  }
  .officers-page .officers-moving-logo-wrap .ces-moving-logo-stage{
    --ces-logo-size:235px;
    --ces-halo-size:340px;
    --ces-orbit-w:330px;
    --ces-orbit-h:194px;
    min-height:380px;
  }
  .ces-moving-logo-stage .ces-logo-caption strong{font-size:.72rem}
  .ces-moving-logo-stage .ces-logo-caption span{font-size:.6rem}
}

@media(max-width:480px){
  .ces-moving-logo-stage,
  .ces-cinematic-home .ces-logo-hero-visual .ces-moving-logo-stage,
  .officers-page .officers-moving-logo-wrap .ces-moving-logo-stage{
    --ces-logo-size:205px;
    --ces-halo-size:300px;
    --ces-orbit-w:290px;
    --ces-orbit-h:170px;
  }
}

@media(prefers-reduced-motion:reduce){
  .ces-logo-halo,.ces-logo-orbit,.ces-logo-image{animation:none!important}
  .ces-logo-core{transform:none!important;transition:none!important}
}
