/* ===== Speed Maths Hub — shared site styles ===== */
:root{
  --bg:#0f1115; --card:#171a21; --card2:#1e222b; --accent:#4f8cff; --accent2:#22c55e;
  --danger:#ef4444; --text:#e8eaf0; --muted:#8b93a7; --border:#2a2f3a;
  --maxw:900px;
}
@media (prefers-color-scheme: light){
  :root{ --bg:#f5f6f8; --card:#ffffff; --card2:#f0f2f5; --text:#1a1d24; --muted:#6b7280; --border:#e3e5ea; }
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  background:var(--bg); color:var(--text); line-height:1.6;
}
a{color:var(--accent);text-decoration:none;}
a:hover{text-decoration:underline;}
img{max-width:100%;height:auto;}

/* ---- Header / nav ---- */
.site-header{
  border-bottom:1px solid var(--border);
  position:sticky; top:0; background:var(--bg); z-index:50;
}
.nav-wrap{
  max-width:var(--maxw); margin:0 auto; padding:14px 16px;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.logo{font-weight:800; font-size:18px; color:var(--text); display:flex; align-items:center; gap:6px;}
.logo:hover{text-decoration:none;}
.nav-links{display:flex; gap:20px; align-items:center;}
.nav-links a{color:var(--muted); font-size:15px; font-weight:600;}
.nav-links a.active, .nav-links a:hover{color:var(--text);}
.nav-cta{
  background:var(--accent); color:#fff !important; padding:8px 16px; border-radius:10px;
  font-weight:700; font-size:14px;
}
.nav-toggle{display:none; background:none; border:none; color:var(--text); font-size:24px; cursor:pointer; padding:4px 8px;}

@media (max-width:640px){
  .nav-links{
    position:fixed; top:57px; left:0; right:0; background:var(--card);
    flex-direction:column; align-items:flex-start; padding:16px; gap:14px;
    border-bottom:1px solid var(--border); transform:translateY(-150%); transition:transform .2s ease;
  }
  .nav-links.open{transform:translateY(0);}
  .nav-toggle{display:block;}
}

/* ---- Layout ---- */
.container{max-width:var(--maxw); margin:0 auto; padding:0 16px;}
.section{padding:40px 0;}
.section-narrow{max-width:680px; margin:0 auto;}

/* ---- Hero ---- */
.hero{padding:56px 0 40px; text-align:center;}
.hero h1{font-size:clamp(28px,5vw,42px); margin:0 0 12px; font-weight:800; line-height:1.15;}
.hero p{color:var(--muted); font-size:17px; max-width:560px; margin:0 auto 28px;}
.hero-actions{display:flex; gap:12px; justify-content:center; flex-wrap:wrap;}

.btn{
  display:inline-block; padding:14px 26px; border-radius:12px; font-weight:700; font-size:15px;
  border:none; cursor:pointer;
}
.btn-primary{background:var(--accent); color:#fff;}
.btn-secondary{background:var(--card2); color:var(--text); border:1px solid var(--border);}
.btn-primary:hover, .btn-secondary:hover{text-decoration:none; opacity:.92;}

/* ---- Cards / grid ---- */
.card{background:var(--card); border:1px solid var(--border); border-radius:16px; padding:22px;}
.card-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:24px;}
@media (max-width:720px){ .card-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:480px){ .card-grid{grid-template-columns:1fr;} }

.feature-card{padding:20px;}
.feature-card .icon{font-size:26px; margin-bottom:10px;}
.feature-card h3{margin:0 0 6px; font-size:16px;}
.feature-card p{margin:0; color:var(--muted); font-size:14px;}

/* ---- Article list ---- */
.article-list{display:flex; flex-direction:column; gap:14px; margin-top:20px;}
.article-row{
  display:block; background:var(--card); border:1px solid var(--border); border-radius:14px;
  padding:18px 20px; color:var(--text);
}
.article-row:hover{border-color:var(--accent); text-decoration:none;}
.article-row h3{margin:0 0 6px; font-size:17px;}
.article-row p{margin:0; color:var(--muted); font-size:14px;}
.article-tag{
  display:inline-block; font-size:11px; font-weight:700; color:var(--accent);
  text-transform:uppercase; letter-spacing:.04em; margin-bottom:8px;
}

/* ---- Article page ---- */
.article-header{padding:32px 0 8px;}
.article-header .article-tag{margin-bottom:10px;}
.article-header h1{font-size:clamp(26px,4.5vw,36px); margin:0 0 10px; line-height:1.2;}
.article-meta{color:var(--muted); font-size:14px;}
.article-body{max-width:680px; margin:0 auto; padding:20px 0 40px;}
.article-body h2{font-size:22px; margin:32px 0 12px;}
.article-body h3{font-size:18px; margin:24px 0 10px;}
.article-body p{margin:0 0 16px; font-size:16px;}
.article-body ul,.article-body ol{margin:0 0 16px; padding-left:22px;}
.article-body li{margin-bottom:8px;}
.callout{
  background:var(--card2); border-left:3px solid var(--accent); border-radius:8px;
  padding:14px 18px; margin:20px 0; font-size:15px;
}
.example-box{
  background:var(--card); border:1px solid var(--border); border-radius:12px;
  padding:16px 18px; margin:16px 0; font-family:ui-monospace,'SF Mono',Consolas,monospace; font-size:15px;
}

/* ---- CTA strip ---- */
.cta-strip{
  background:var(--card); border:1px solid var(--border); border-radius:16px;
  padding:32px; text-align:center; margin:40px 0;
}
.cta-strip h2{margin:0 0 8px; font-size:22px;}
.cta-strip p{color:var(--muted); margin:0 0 18px;}

/* ---- Footer ---- */
.site-footer{border-top:1px solid var(--border); padding:32px 0; margin-top:40px;}
.footer-wrap{
  max-width:var(--maxw); margin:0 auto; padding:0 16px;
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px;
}
.footer-links{display:flex; gap:18px; flex-wrap:wrap;}
.footer-links a{color:var(--muted); font-size:14px;}
.footer-note{color:var(--muted); font-size:13px;}

@media (max-width:480px){
  .footer-wrap{flex-direction:column; align-items:flex-start; text-align:left;}
}
