/* ============================================================
   This Is AGI — shared site design system
   Dark spine + two accents:
     --research (red)   = the open research day
     --corporate (teal) = the closed corporate market-analysis evening
   Fonts (Bebas Neue / IBM Plex Sans / IBM Plex Mono) are loaded
   via Google Fonts in inc_site_head.php.
   ============================================================ */

:root{
  --bg:#111118; --surface:#1a1a22; --surface-2:#15151c; --border:#2a2a35;
  --text:#f0f0f0; --dim:#999;
  --research:#e63328; --research-hi:#ff5347; --research-deep:#a3231b;
  --corporate:#2f8fb0; --corporate-hi:#7fc4dd; --corporate-deep:#1a5468;
  --wrap:1080px;

  /* legacy aliases — so older inline styles that reference these keep working */
  --black:var(--bg); --white:var(--text); --red:var(--research);
  --gray:var(--dim); --dark-gray:#1c1c24; --card-bg:var(--surface);
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg); color:var(--text);
  font-family:'IBM Plex Sans',sans-serif; font-weight:300; line-height:1.6;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:var(--wrap); margin:0 auto; padding:0 2rem;}

/* ---------- shared type helpers ---------- */
.display{font-family:'Bebas Neue',sans-serif; letter-spacing:1px; line-height:.9;}
.eyebrow{font-family:'IBM Plex Mono',monospace; font-size:.7rem; letter-spacing:2.5px;
  text-transform:uppercase; color:var(--dim);}
.dot{color:var(--research);}
.label{font-family:'IBM Plex Mono',monospace; font-size:.7rem; letter-spacing:3px;
  text-transform:uppercase; color:var(--dim); display:flex; align-items:center;
  gap:.9rem; margin-bottom:2.6rem;}
.label::after{content:""; flex:1; height:1px; background:var(--border);}
.rule{height:1px; background:var(--border); margin:0 auto; max-width:var(--wrap);}
section.block{padding:6.5rem 0;}

/* ---------- buttons ---------- */
.btn{display:inline-block; font-family:'IBM Plex Mono',monospace; font-size:.72rem;
  letter-spacing:1.5px; text-transform:uppercase; padding:.9rem 1.6rem;
  border:1px solid var(--border); transition:all .25s; cursor:pointer;
  background:transparent; color:var(--text);}
.btn-red{background:var(--research); color:var(--bg); border-color:var(--research);}
.btn-red:hover{background:var(--research-hi); border-color:var(--research-hi);}
.btn-teal{background:var(--corporate); color:var(--bg); border-color:var(--corporate);}
.btn-teal:hover{background:var(--corporate-hi); border-color:var(--corporate-hi);}
.btn-ghost:hover{border-color:var(--text);}

/* ---------- top nav ---------- */
nav.site-nav{position:fixed; top:0; left:0; right:0; z-index:50;
  display:flex; justify-content:space-between; align-items:center;
  padding:1.1rem 2rem; background:rgba(17,17,24,.78);
  backdrop-filter:blur(18px); border-bottom:1px solid var(--border);}
.nav-brand{display:flex; align-items:center; gap:.7rem;}
.nav-logo{font-family:'Bebas Neue',sans-serif; font-size:1.35rem; letter-spacing:2px;}
.nav-by{font-size:.58rem; color:var(--dim); letter-spacing:1px; text-transform:uppercase;}
.nav-gea-logo{height:20px; opacity:.7;}
.nav-links{display:flex; align-items:center; gap:1.5rem;}
.nav-links a{font-family:'IBM Plex Mono',monospace; font-size:.68rem; letter-spacing:1.5px;
  text-transform:uppercase; color:var(--dim); transition:color .25s; white-space:nowrap;}
.nav-links a:hover{color:var(--text);}
.nav-toggle{display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:6px;}
.nav-toggle span{display:block; width:22px; height:2px; background:var(--text); transition:.25s;}
@media(max-width:820px){
  .nav-toggle{display:flex;}
  .nav-links{position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:stretch; gap:0;
    background:rgba(17,17,24,.98); backdrop-filter:blur(18px); border-bottom:1px solid var(--border);
    max-height:0; overflow:hidden; transition:max-height .3s ease;}
  .nav-links.open{max-height:80vh;}
  .nav-links a{padding:1rem 2rem; border-top:1px solid var(--border);}
}

/* ---------- footer ---------- */
footer.site-footer{border-top:1px solid var(--border); padding:4rem 0 3rem; margin-top:2rem;}
.foot-top{display:flex; justify-content:space-between; gap:3rem; flex-wrap:wrap; margin-bottom:3rem;}
.foot-brand .display{font-size:2.2rem; letter-spacing:2px;}
.foot-tag{color:var(--dim); max-width:34ch; font-size:.9rem; margin-top:.8rem;}
.foot-cols{display:flex; gap:3.5rem; flex-wrap:wrap;}
.foot-col h5{font-family:'IBM Plex Mono',monospace; font-size:.62rem; letter-spacing:2px;
  text-transform:uppercase; color:var(--dim); margin-bottom:1rem;}
.foot-col a{display:block; font-size:.85rem; color:#c0c0cc; margin-bottom:.6rem; transition:color .2s;}
.foot-col a:hover{color:var(--text);}
.foot-bottom{display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  font-family:'IBM Plex Mono',monospace; font-size:.62rem; letter-spacing:1px;
  color:var(--dim); text-transform:uppercase; padding-top:2rem; border-top:1px solid var(--border);}

/* ---------- sub-page header (leadership / statements / reports) ---------- */
.subpage{padding:9rem 0 3rem;}
.subpage-eyebrow{margin-bottom:1.2rem;}
.subpage h1{font-family:'Bebas Neue',sans-serif; font-size:clamp(3rem,9vw,6rem);
  letter-spacing:1px; line-height:.86; margin-bottom:1.4rem;}
.subpage-lead{max-width:60ch; color:#c8c8d2; font-size:1.05rem; line-height:1.75;}
.subpage-lead a{color:var(--research);}

/* ---------- motion / a11y ---------- */
.reveal{opacity:0; transform:translateY(16px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1; transform:none;}
:focus-visible{outline:2px solid var(--corporate-hi); outline-offset:3px;}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1; transform:none; transition:none;}
  html{scroll-behavior:auto;}
}
