/* Live Academy hero: balanced copy, circular brand hub and four selectable domains. */
.academy-hero .mesh,.academy-hero .grid-dots{display:none}
.page-hero.academy-hero{background:#0b0f15;padding:0;overflow:visible}
.page-hero .wrap.academy-hero-layout{display:grid;grid-template-columns:1.04fr 1fr;align-items:center;gap:clamp(32px,5vw,76px);padding-block:clamp(76px,8vw,108px)}
.academy-hero-copy{position:relative;max-width:580px;min-width:0}
.academy-hero-copy .kicker{display:block;margin-bottom:22px;color:var(--accent);font-size:.7rem;letter-spacing:.16em}
.academy-hero-copy .kicker::before{display:none}
.academy-hero-copy h1{font-size:clamp(2.6rem,4.5vw,4.8rem);line-height:1.08;letter-spacing:-.045em;margin:0;min-height:2.3em;max-width:13ch}
.academy-hero-copy .lead{font-size:1.06rem;line-height:1.75;color:rgba(255,255,255,.76);margin-top:22px;max-width:44ch;min-height:8.75em}
.academy-hero-copy .hero-actions{margin-top:20px}
.academy-hero-hint{font-size:.77rem;color:rgba(255,255,255,.45);margin-top:22px;max-width:42ch}
.academy-domain-map{position:relative;width:100%;max-width:520px;aspect-ratio:1;justify-self:center;isolation:isolate}
.academy-map-lines{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;overflow:visible}
.academy-wire{opacity:0;fill:none;stroke:rgba(0,147,196,.25);stroke-width:1.5;stroke-linecap:round;transition:opacity .25s,stroke .25s,filter .25s}
.academy-domain-node{position:absolute;display:grid;place-items:center;width:clamp(76px,7.5vw,108px);height:clamp(76px,7.5vw,108px);box-sizing:border-box;background:#101923;color:var(--accent);border:1px solid rgba(0,147,196,.4);border-radius:50%;text-decoration:none;transform:translate(-50%,-50%);transition:background .25s ease,border-color .25s ease,box-shadow .25s ease;z-index:2}
.node-training{left:25%;top:25%}.node-learning{left:75%;top:25%}.node-consulting{left:25%;top:75%}.node-assessments{left:75%;top:75%}
.academy-node-icon{display:block;width:39px;height:39px;pointer-events:none;transition:transform .25s,filter .25s}.academy-node-icon svg{width:100%;height:100%}
.academy-domain-node::after{content:'';position:absolute;inset:-1px;border:1px solid var(--accent);border-radius:50%;opacity:0;pointer-events:none}
.academy-node-label{position:absolute;top:calc(100% + 16px);left:50%;transform:translate(-50%,4px);white-space:nowrap;color:#fff;font-size:.78rem;line-height:1.35;text-align:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,transform .18s ease}
.academy-domain-node:hover,.academy-domain-node:focus-visible,.academy-domain-node.is-active{background:#142b39;border-color:var(--accent);box-shadow:0 0 24px rgba(0,147,196,.24),inset 0 0 18px rgba(0,147,196,.08)}
.academy-domain-node.is-active::after{animation:academy-hover-pulse .75s ease-out 1}
.academy-domain-node.is-active .academy-node-icon{transform:scale(1.06);filter:drop-shadow(0 0 6px rgba(0,147,196,.55))}
.academy-domain-node:hover .academy-node-label,.academy-domain-node:focus-visible .academy-node-label,.academy-domain-node.is-active .academy-node-label{opacity:1;visibility:visible;transform:translate(-50%,0)}
.academy-domain-node:focus-visible{outline:2px solid #fff;outline-offset:6px}
.academy-hub{position:absolute;left:50%;top:50%;width:148px;height:148px;aspect-ratio:1;box-sizing:border-box;transform:translate(-50%,-50%);display:grid;place-items:center;background:#fff;border:6px solid #fff;border-radius:50%;box-shadow:0 0 0 9px rgba(0,147,196,.055),0 18px 40px rgba(0,0,0,.2);pointer-events:none;transition:box-shadow .25s}
.academy-hub img{width:112px;height:112px;object-fit:contain;display:block;flex-shrink:0}
.academy-hero[data-active-domain]:not([data-active-domain="overview"]) .academy-hub{box-shadow:0 0 0 9px rgba(0,147,196,.09),0 0 42px rgba(0,147,196,.18)}
.academy-hero[data-active-domain="training"] .wire-training,.academy-hero[data-active-domain="learning"] .wire-learning,.academy-hero[data-active-domain="consulting"] .wire-consulting,.academy-hero[data-active-domain="assessments"] .wire-assessments{opacity:1;stroke:var(--accent);filter:drop-shadow(0 0 4px rgba(0,147,196,.6));stroke-dasharray:110;animation:academy-wire-light .55s ease-out 1}
@keyframes academy-hover-pulse{0%{opacity:.7;transform:scale(1)}100%{opacity:0;transform:scale(1.28)}}
@keyframes academy-wire-light{0%{stroke-dashoffset:110;opacity:.3}100%{stroke-dashoffset:0;opacity:1}}
@media(max-width:1050px){.academy-hero-copy h1{font-size:clamp(2.6rem,5vw,3.6rem)}.academy-hub{width:120px;height:120px}.academy-hub img{width:90px;height:90px}.academy-node-label{font-size:.7rem}.academy-hero-copy .lead{font-size:1rem;min-height:10.5em}}
@media(max-width:850px){.page-hero .wrap.academy-hero-layout{grid-template-columns:1fr;gap:22px;padding-block:104px 48px}.academy-hero-copy{max-width:none}.academy-hero-copy .kicker{margin-bottom:16px}.academy-hero-copy h1{font-size:clamp(2.4rem,8vw,3.8rem);min-height:2.3em;max-width:none}.academy-hero-copy .lead{margin-top:18px;font-size:1rem;min-height:7em;max-width:53ch}.academy-hero-copy .hero-actions{margin-top:16px}.academy-hero-hint{margin-top:15px}.academy-domain-map{width:min(100%,440px);margin-top:2px}.academy-domain-node{width:78px;height:78px}.academy-node-icon{width:32px;height:32px}.academy-hub{width:116px;height:116px}.academy-hub img{width:88px;height:88px}}
@media(max-width:480px){.academy-hero-copy .lead{min-height:12.25em}.academy-domain-node{width:68px;height:68px}.academy-hub{width:104px;height:104px}.academy-hub img{width:78px;height:78px}.academy-node-label{white-space:normal;width:130px;top:calc(100% + 13px)}}
@media(max-width:380px){.academy-domain-node{width:60px;height:60px}.academy-node-icon{width:28px;height:28px}.academy-hub{width:90px;height:90px}.academy-hub img{width:66px;height:66px}.academy-node-label{font-size:.66rem;width:120px}.academy-hero-copy .lead{min-height:14em}}
@media(prefers-reduced-motion:reduce){.academy-domain-node,.academy-node-label,.academy-node-icon,.academy-wire,.academy-hub{transition:none}.academy-domain-node.is-active::after,.academy-wire{animation:none!important}}
/* Closed contact panel must not intercept the right-hand domain controls. */
body[data-page="academy"] .exc-fab{pointer-events:none}
body[data-page="academy"] .exc-launch,body[data-page="academy"] .exc-fab.is-open .exc-panel{pointer-events:auto}

/* Homepage Circle of Excellence method: rotating containers and glowing pseudo-dots.
   Tracks are invisible; uneven radii, phases and speeds avoid a regimented ring. */
.academy-particles{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.academy-particle-track{position:absolute;inset:var(--inset);border-radius:50%;pointer-events:none;transform:rotate(var(--phase));animation:academy-particle-spin var(--duration) linear infinite;animation-direction:var(--direction);will-change:transform}
.academy-particle-track::before{content:'';position:absolute;left:50%;top:0;width:var(--dot-size);height:var(--dot-size);transform:translate(-50%,-50%);border-radius:50%;background:var(--accent);box-shadow:0 0 12px rgba(0,147,196,.55);opacity:.8}
.academy-particle-track.particle-white::before{background:#fff;box-shadow:0 0 9px rgba(255,255,255,.28);opacity:.42}
.academy-hub{z-index:1}
@keyframes academy-particle-spin{from{transform:rotate(var(--phase))}to{transform:rotate(calc(var(--phase) + 360deg))}}
.academy-hero.is-particles-paused .academy-particle-track{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.academy-particle-track{animation:none!important;will-change:auto}}
/* Let phone copy use its actual height instead of reserving fourteen lines. */
@media(max-width:600px){
  .page-hero .wrap.academy-hero-layout{padding-block:104px 32px;gap:20px}
  .academy-hero-copy .lead{min-height:0;margin-top:16px}
  .academy-hero-hint{margin-top:12px}
  .academy-domain-map{width:min(100%,340px);margin-top:0}
}
