/* ===== EXOS shared styles ===== */
@import url('https://fonts.cdnfonts.com/css/quiet-sans');
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{background:#001333;font-family:'Quiet Sans','Plus Jakarta Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased;color:#DAE1E4;}
a{color:inherit;}
::selection{background:rgba(122,180,255,.30);color:#fff;}

/* ----- keyframes ----- */
@keyframes exMarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes exFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes exFloatS{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes exHalo{0%,100%{opacity:.55}50%{opacity:.9}}
@keyframes exCore{0%,100%{transform:translate(-50%,-50%) scale(1);box-shadow:0 0 40px 8px rgba(143,200,255,.7),0 0 120px 30px rgba(79,157,255,.4);}50%{transform:translate(-50%,-50%) scale(1.14);box-shadow:0 0 60px 14px rgba(180,220,255,.9),0 0 180px 50px rgba(79,157,255,.55);}}
@keyframes exRing{0%{transform:translate(-50%,-50%) scale(.3);opacity:.7;}80%{opacity:.06;}100%{transform:translate(-50%,-50%) scale(3.4);opacity:0;}}
@keyframes exShaft{0%,100%{opacity:.35;}50%{opacity:.75;}}
@keyframes exMote{0%{transform:translateY(0);opacity:0;}12%{opacity:.9;}88%{opacity:.7;}100%{transform:translateY(-180px);opacity:0;}}
@keyframes exTwinkle{0%,100%{opacity:.2;transform:scale(.55);}50%{opacity:1;transform:scale(1);}}
@keyframes exScrollDot{0%{transform:translateY(0);opacity:0;}30%{opacity:1;}80%{opacity:.4;}100%{transform:translateY(20px);opacity:0;}}
@keyframes exEllipseSpin{from{transform:translate(-50%,-50%) rotate(0deg);}to{transform:translate(-50%,-50%) rotate(360deg);}}

/* ----- hover behaviours (replacing the design's style-hover) ----- */
.btn-primary{transition:transform .3s ease,box-shadow .3s ease;}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 20px 48px rgba(79,157,255,.6);}
.btn-ghost{transition:all .3s ease;}
.btn-ghost:hover{background:rgba(143,200,255,.14);border-color:rgba(143,200,255,.7);transform:translateY(-3px);}
.link-arrow{transition:gap .25s;}
.link-arrow:hover{gap:16px;}
.cap-card{transition:transform .45s cubic-bezier(.16,1,.3,1),border-color .45s,box-shadow .45s;}
.cap-card:hover{transform:translateY(-8px);border-color:rgba(143,200,255,.5);box-shadow:0 34px 70px rgba(4,12,30,.7);}
.lift-card{transition:transform .4s cubic-bezier(.16,1,.3,1),border-color .4s;}
.lift-card:hover{transform:translateY(-6px);border-color:rgba(143,200,255,.45);}
.feat-card{transition:transform .45s cubic-bezier(.16,1,.3,1),border-color .45s,box-shadow .45s;}
.feat-card:hover{transform:translateY(-6px);border-color:rgba(143,200,255,.45);box-shadow:0 34px 70px rgba(4,12,30,.6);}
/* team grid — max 4 per row, left-to-right order, partial rows centered */
.member-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:28px;margin-bottom:54px;}
.member-grid:last-child{margin-bottom:0;}
.member-card{flex:0 0 260px;max-width:260px;transition:transform .4s cubic-bezier(.16,1,.3,1),border-color .4s;}
@media(max-width:760px){.member-grid{gap:18px;}.member-card{flex-basis:calc(50% - 9px);max-width:none;}}
@media(max-width:430px){.member-card{flex-basis:100%;}}
.member-card:hover{transform:translateY(-6px);border-color:rgba(143,200,255,.42);}
.nav-link{transition:color .25s;}
.nav-link:hover{color:#8fd0ff!important;}
.nav-cta{transition:all .25s;}
.nav-cta:hover{background:rgba(143,200,255,.16)!important;border-color:rgba(143,200,255,.7)!important;}
.drop-item{transition:background .2s;}
.drop-item:hover{background:rgba(143,200,255,.08);}
.foot-cta{transition:transform .25s,box-shadow .25s;}
.foot-cta:hover{transform:translateY(-2px);box-shadow:2px 2px 0 rgba(218,225,228,.35);}
.foot-link{transition:color .2s;}
.foot-link:hover{color:#7CEFA2;}
.dept-btn{transition:color .25s ease,border-color .25s ease;}
.dept-btn:hover{color:#cfe3ff;}
.member-mail{transition:color .25s;}
.member-mail:hover{color:#cfe3ff;}
.member-in{transition:all .25s;}
.member-in:hover{background:rgba(143,200,255,.22)!important;border-color:rgba(143,200,255,.55)!important;color:#fff!important;}
.caro-btn{transition:background .25s,border-color .25s;}
.caro-btn:hover{background:rgba(2,11,30,.78);border-color:rgba(255,255,255,.75);}
.tab{cursor:pointer;}

/* ----- facultative / treaty placement rows ----- */
[data-stat-num]{color:rgba(231,238,251,.06);text-shadow:none;transition:color .35s ease,text-shadow .35s ease;}
[data-stat-row]{transition:background .3s;}
[data-stat-row]:hover{background:rgba(143,200,255,.05);}
[data-stat-row]:hover [data-stat-num]{color:#3ddc84;text-shadow:0 0 7px rgba(61,220,132,.28);}

/* ----- contact form ----- */
.exInput{width:100%;padding:14px 16px;border-radius:12px;border:1px solid rgba(124,170,255,.22);background:rgba(143,200,255,.05);color:#eef3fb;font-family:inherit;font-size:15px;outline:none;transition:border-color .25s,background .25s;}
.exInput:focus{border-color:rgba(143,200,255,.6);background:rgba(143,200,255,.09);}
.exInput::placeholder{color:#5e708f;}
.exLabel{display:block;font-size:13.5px;font-weight:500;color:#DAE1E4;margin-bottom:9px;}

/* ----- article body ----- */
.exP{margin:0 0 24px;font-size:17px;line-height:1.72;color:#DAE1E4;}
.exH{margin:54px 0 22px;font-weight:800;font-size:clamp(24px,2.4vw,30px);letter-spacing:-.01em;color:#8fd0ff;}

/* ===================== RESPONSIVE ===================== */
html{-webkit-text-size-adjust:100%;}
img{max-width:100%;}

/* ----- hamburger button (hidden on desktop) ----- */
.ex-burger{display:none;position:relative;z-index:70;width:44px;height:44px;margin:0 -8px 0 0;padding:0;border:none;background:none;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px;}
.ex-burger span{display:block;width:25px;height:2px;border-radius:2px;background:#eef3fb;transition:transform .3s ease,opacity .2s ease;}
.ex-burger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.ex-burger.is-open span:nth-child(2){opacity:0;}
.ex-burger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ----- mobile slide-in menu ----- */
.ex-mobile-menu{position:fixed;inset:0;z-index:55;display:flex;flex-direction:column;padding:100px 30px 44px;background:rgba(4,10,26,.98);backdrop-filter:blur(18px);transform:translateX(100%);transition:transform .38s cubic-bezier(.16,1,.3,1);overflow-y:auto;visibility:hidden;}
.ex-mobile-menu.is-open{transform:translateX(0);visibility:visible;}
.ex-mobile-menu a{display:block;text-decoration:none;color:#eef3fb;font-weight:700;font-size:22px;padding:16px 0;border-bottom:1px solid rgba(124,170,255,.12);transition:color .2s;}
.ex-mobile-menu a:active,.ex-mobile-menu a:hover{color:#8fd0ff;}
.ex-mobile-menu .mm-label{font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:#7cb4ff;padding:24px 0 2px;}
.ex-mobile-menu .mm-sub{font-size:19px;padding-left:14px;color:#cfe0fb;}
.ex-mobile-menu .mm-cta{margin-top:26px;border:1px solid rgba(143,200,255,.4);border-radius:999px;text-align:center;background:rgba(143,200,255,.08);color:#dceaff;font-size:18px;}
body.ex-menu-open{overflow:hidden;}

/* ----- tablet & below ----- */
@media(max-width:880px){
  .nav-links{display:none!important;}
  .ex-burger{display:flex!important;}
  .grid-2{grid-template-columns:1fr!important;gap:48px!important;}
  .foot-grid{grid-template-columns:1fr!important;gap:40px!important;}
  .cards-grid{grid-template-columns:1fr 1fr!important;}
}

/* ----- phones ----- */
@media(max-width:560px){
  /* tighter horizontal gutters across all section containers */
  [style*="0 40px"],[style*="40px 60px"]{padding-left:22px!important;padding-right:22px!important;}
  /* stack remaining multi-column grids / form rows */
  .cards-grid{grid-template-columns:1fr!important;}
  .form-row{grid-template-columns:1fr!important;gap:16px!important;}
  /* roomier cards on small screens */
  [style*="padding:44px"],[style*="padding:42px"]{padding:28px!important;}
  [style*="46px 44px"]{padding:30px 22px!important;}
  [style*="48px 46px"]{padding:32px 24px!important;}
  [style*="26px 36px"]{padding:20px 22px!important;}
  /* hero principle tabs body needs more height when text wraps */
  .hero-tab-body{min-height:168px!important;}
  /* lines-of-business carousels: stack height so overlaid text fits */
  [data-carousel]{aspect-ratio:auto!important;min-height:240px!important;}
  [style*="top:30px;left:34px"]{right:22px!important;}
  /* featured insight image shorter once stacked */
  [style*="min-height:380px"]{min-height:200px!important;}
  /* footer call-to-action banner */
  .foot-cta-banner{padding:32px 24px!important;}
  /* hide busy hero orbit decoration on small phones */
  [style*="inset:0 0 0 38%"]{display:none!important;}
}
