/* ==========================================================================
   QSTEM Network - Shared base stylesheet
   ========================================================================== */

:root{
  --navy:#0d2f6e;
  --navy-2:#143d8f;
  --navy-dark:#082253;
  --navy-deep:#061a3f;
  --green:#17914f;
  --green-dark:#0f7540;
  --orange:#ef8a22;
  --orange-dark:#d97609;
  --gold:#e9b949;
  --gold-2:#f5c443;
  --purple:#6b3fa0;
  --sky:#e8f1fb;

  --text:#1f2a3a;
  --muted:#5d6b7f;
  --line:#e2e8f2;
  --bg:#ffffff;
  --bg-soft:#f4f7fc;

  --radius:10px;
  --radius-sm:6px;
  --shadow-sm:0 1px 3px rgba(13,47,110,.07);
  --shadow:0 6px 22px rgba(13,47,110,.09);
  --shadow-lg:0 14px 40px rgba(13,47,110,.14);

  --container:1290px;
  --ff:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --ff-head:'Poppins',var(--ff);
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--ff);
  font-size:15px;
  line-height:1.65;
  color:var(--text);
  background:var(--bg);
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul,ol{margin:0;padding:0;list-style:none;}
h1,h2,h3,h4,h5,h6{font-family:var(--ff-head);margin:0;line-height:1.25;color:var(--navy);font-weight:700;}
p{margin:0 0 14px;}
button,input,select,textarea{font:inherit;color:inherit;}
:focus-visible{outline:2px solid var(--navy-2);outline-offset:2px;}

.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 24px;}
.container-wide{width:100%;max-width:1440px;margin:0 auto;padding:0 24px;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  padding:12px 22px;border-radius:var(--radius-sm);border:1.5px solid transparent;
  font-family:var(--ff-head);font-size:13.5px;font-weight:600;letter-spacing:.2px;
  cursor:pointer;transition:.22s ease;white-space:nowrap;text-align:center;
}
.btn i{font-size:.92em;}
.btn-navy{background:var(--navy);color:#fff;}
.btn-navy:hover{background:var(--navy-dark);transform:translateY(-2px);box-shadow:var(--shadow);}
.btn-navy-dark{background:var(--navy-deep);color:#fff;}
.btn-navy-dark:hover{background:#04122c;transform:translateY(-2px);}
.btn-green{background:var(--green);color:#fff;}
.btn-green:hover{background:var(--green-dark);transform:translateY(-2px);box-shadow:var(--shadow);}
.btn-orange{background:var(--orange);color:#fff;}
.btn-orange:hover{background:var(--orange-dark);transform:translateY(-2px);box-shadow:var(--shadow);}
.btn-purple{background:var(--purple);color:#fff;}
.btn-purple:hover{filter:brightness(.9);transform:translateY(-2px);}
.btn-outline{background:transparent;color:var(--navy);border-color:var(--navy);}
.btn-outline:hover{background:var(--navy);color:#fff;}
.btn-white{background:#fff;color:var(--navy);}
.btn-white:hover{background:var(--sky);transform:translateY(-2px);}
.btn-ghost-white{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.6);}
.btn-ghost-white:hover{background:#fff;color:var(--navy);}
.btn-sm{padding:9px 16px;font-size:12px;}
.btn-block{width:100%;}

/* ---------- Section headers ---------- */
.section{padding:52px 0;}
.section-soft{background:var(--bg-soft);}
.sec-title{
  font-size:22px;text-align:center;letter-spacing:.4px;text-transform:uppercase;
  color:var(--navy);margin-bottom:26px;position:relative;
}
.sec-title.has-rule{display:flex;align-items:center;justify-content:center;gap:16px;}
.sec-title.has-rule::before,.sec-title.has-rule::after{
  content:"";height:1px;width:64px;background:var(--gold);
}
.eyebrow{
  font-family:var(--ff-head);font-size:12px;font-weight:600;letter-spacing:1.6px;
  text-transform:uppercase;color:var(--gold);margin-bottom:8px;
}

/* ---------- Stats bar ---------- */
.statsbar{background:var(--navy);color:#fff;}
.statsbar .stats-grid{
  display:grid;grid-template-columns:repeat(5,1fr);
}
.statsbar.cols-4 .stats-grid{grid-template-columns:repeat(4,1fr);}
.stat{
  display:flex;align-items:center;justify-content:center;gap:14px;
  padding:20px 10px;position:relative;
}
.stat + .stat::before{
  content:"";position:absolute;left:0;top:26%;height:48%;width:1px;background:rgba(255,255,255,.22);
}
.stat-ico{font-size:28px;color:#fff;opacity:.95;line-height:1;}
.stat-num{font-family:var(--ff-head);font-size:25px;font-weight:700;line-height:1.1;}
.stat-lbl{font-size:12.5px;color:rgba(255,255,255,.82);}

/* ---------- Check lists ---------- */
.checklist li{display:flex;gap:10px;align-items:flex-start;margin-bottom:9px;font-size:13.5px;color:var(--muted);}
.checklist li i{color:var(--green);font-size:14px;margin-top:3px;flex:0 0 auto;}
.checklist.navy li i{color:var(--navy-2);}

/* ---------- News / events / generic small lists ---------- */
.mini-head{
  font-family:var(--ff-head);font-size:13px;font-weight:600;letter-spacing:1.2px;
  text-transform:uppercase;color:var(--navy);padding-bottom:9px;margin-bottom:14px;
  border-bottom:2px solid var(--line);position:relative;
}
.mini-head::after{content:"";position:absolute;left:0;bottom:-2px;width:52px;height:2px;background:var(--gold);}

.event-item{display:flex;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line);}
.event-item:last-child{border-bottom:0;}
.event-date{
  flex:0 0 46px;text-align:center;background:var(--navy);color:#fff;border-radius:var(--radius-sm);
  padding:6px 2px;line-height:1.1;
}
.event-date b{display:block;font-family:var(--ff-head);font-size:17px;}
.event-date span{font-size:10px;letter-spacing:.6px;text-transform:uppercase;opacity:.85;}
.event-info h4{font-size:13.5px;font-weight:600;color:var(--navy);margin-bottom:2px;}
.event-info p{margin:0;font-size:12px;color:var(--muted);}

.news-item{display:flex;gap:11px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line);}
.news-item:last-child{border-bottom:0;}
.news-item img{width:54px;height:44px;object-fit:cover;border-radius:var(--radius-sm);flex:0 0 auto;}
.news-item h4{font-size:13.5px;font-weight:600;color:var(--navy);margin-bottom:2px;}
.news-item span{font-size:11.5px;color:var(--muted);}

/* ---------- Footer shared ---------- */
.site-footer{background:var(--navy-deep);color:rgba(255,255,255,.72);font-size:13px;}
.site-footer h4{
  color:#fff;font-size:13px;letter-spacing:1.1px;text-transform:uppercase;margin-bottom:14px;
}
.site-footer a{color:rgba(255,255,255,.72);transition:.2s;}
.site-footer a:hover{color:var(--gold);}
.footer-grid{display:grid;gap:30px;padding:44px 0 34px;}
.footer-links li{margin-bottom:7px;}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.12);padding-block:14px;
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  font-size:12.5px;
}
.footer-bottom-links{display:flex;gap:22px;flex-wrap:wrap;}

/* ---------- Social icons ---------- */
.socials{display:flex;gap:8px;align-items:center;}
.socials a{
  width:30px;height:30px;border-radius:50%;display:grid;place-items:center;
  color:#fff;font-size:13px;transition:.22s;
}
.socials a:hover{transform:translateY(-3px);color:#fff;}
.s-fb{background:#1877f2;} .s-li{background:#0a66c2;} .s-tw{background:#1da1f2;}
.s-yt{background:#ff0000;} .s-ig{background:linear-gradient(45deg,#f09433,#dc2743,#bc1888);}
.s-wa{background:#25d366;}

/* ---------- Generic nav (desktop) ---------- */
.nav-toggle{
  display:none;background:none;border:0;font-size:22px;color:var(--navy);cursor:pointer;padding:6px;
}
.menu{display:flex;align-items:center;}
.menu > li{position:relative;}
.menu > li > a{
  display:flex;align-items:center;gap:6px;font-family:var(--ff-head);font-weight:500;
  font-size:13.5px;transition:.2s;
}
.dropdown{
  position:absolute;top:100%;left:0;min-width:238px;background:#fff;border-radius:0 0 8px 8px;
  box-shadow:var(--shadow-lg);padding:8px 0;opacity:0;visibility:hidden;transform:translateY(10px);
  transition:.22s;z-index:60;border-top:3px solid var(--gold);
}
.menu > li:hover > .dropdown{opacity:1;visibility:visible;transform:translateY(0);}
.dropdown li a{
  display:block;padding:8px 18px;font-size:13px;color:var(--text);transition:.18s;
}
.dropdown li a:hover{background:var(--sky);color:var(--navy);padding-left:23px;}

/* ---------- Utilities ---------- */
.text-center{text-align:center;}
.mt-0{margin-top:0;}
.mb-0{margin-bottom:0;}
.muted{color:var(--muted);}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);}
.no-scroll{overflow:hidden;}

/* Reveal on scroll */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease;}
.reveal.is-visible{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none;}
  html{scroll-behavior:auto;}
}

/* ---------- Scroll to top ---------- */
.to-top{
  position:fixed;right:18px;bottom:18px;width:42px;height:42px;border-radius:50%;
  background:var(--navy);color:#fff;border:0;display:grid;place-items:center;cursor:pointer;
  opacity:0;visibility:hidden;transform:translateY(12px);transition:.25s;z-index:80;box-shadow:var(--shadow);
}
.to-top.show{opacity:1;visibility:visible;transform:none;}
.to-top:hover{background:var(--navy-2);}

/* ==========================================================================
   Responsive - shared
   ========================================================================== */
@media (max-width:1100px){
  .statsbar .stats-grid{grid-template-columns:repeat(3,1fr);}
  .statsbar.cols-4 .stats-grid{grid-template-columns:repeat(2,1fr);}
  .stat + .stat::before{display:none;}
}
@media (max-width:992px){
  .nav-toggle{display:block;}
  .section{padding:40px 0;}
  .sec-title{font-size:19px;}
}
@media (max-width:640px){
  body{font-size:14.5px;}
  .container,.container-wide{padding:0 16px;}
  .statsbar .stats-grid,.statsbar.cols-4 .stats-grid{grid-template-columns:repeat(2,1fr);}
  .stat{flex-direction:column;text-align:center;gap:6px;padding:16px 6px;}
  .stat-num{font-size:21px;}
  .sec-title.has-rule::before,.sec-title.has-rule::after{width:26px;}
  .footer-bottom{flex-direction:column;text-align:center;}
}
