/* qbi-website shared base stylesheet — v6.0
   ------------------------------------------------------------------
   Loaded BEFORE each page's remaining inline <style>, so any page-specific
   rule still wins on a tie. index.html's overflow-x fixes, its 12px
   .nav-logo-text, and the dark .btn-g inside .cta-block all rely on that.

   TYPE SYSTEM (v6.0, Manik 2026-08-22 — "System B")
   Archivo for display and UI, IBM Plex Mono for specs, labels and numerals.
   No serif, no italics anywhere.

   The three family variables keep their old names (--fd/--fb/--fm) on purpose:
   they are referenced ~330 times across the 15 pages, so redefining them here
   re-typesets the whole site without touching a single page rule.

   Scale is 1.25 (major third) off a 16px base. The four mid-range steps are the
   point of it — the old site had NOTHING between 14px and 36px, so every jump
   from label to headline was 4x-10x with no step to carry the eye.

   Floor is 11px. The old site used 9px in 47 places; too small to read.
   Weight 300 is gone: light-everything is itself a trend marker, and 300 at
   14px on warm paper was a legibility problem. */

:root{
  /* colour — unchanged from v5.0 */
  --paper:#faf6f0;--paper-2:#f3ece0;--paper-3:#ede3d4;
  --ink:#1a1208;--ink-2:#2e200c;--ink-3:#4a3420;
  --amber:#9a6830;--amber-3:#c49050;--amber-4:#7a5020;
  --muted:#7a6450;--muted-2:#a08060;
  --rule:rgba(154,104,48,0.15);--rule-2:rgba(154,104,48,0.08);

  /* families */
  --fd:'Archivo',system-ui,-apple-system,sans-serif;
  --fb:'Archivo',system-ui,-apple-system,sans-serif;
  --fm:'IBM Plex Mono',ui-monospace,SFMono-Regular,monospace;

  /* scale */
  --t-micro:11px; --t-small:13px; --t-body:16px; --t-lead:20px;
  --t-h4:25px;    --t-h3:31px;    --t-h2:39px;   --t-h1:49px;  --t-display:61px;

  /* fluid display steps — one shared ratio, not thirteen unrelated triples */
  --t-h2-fluid:clamp(28px,4vw,var(--t-h2));
  --t-h1-fluid:clamp(33px,5vw,var(--t-h1));
  --t-display-fluid:clamp(38px,6vw,var(--t-display));

  /* weights */
  --w-body:400; --w-label:500; --w-head:600;

  /* line-heights — 3 values, was 18 */
  --lh-display:1.15; --lh-head:1.35; --lh-body:1.6;

  /* tracking — 2 values, was 12. Archivo needs negative tracking at display
     size or it reads shouty; the specimen's band B used exactly -0.025em. */
  --track-label:0.08em; --track-display:-0.025em;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--paper); color:var(--ink);
  font-family:var(--fb); font-weight:var(--w-body);
  font-size:var(--t-body); line-height:var(--lh-body);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

/* ---------- shared type roles ---------- */
.st{
  font-family:var(--fd); font-size:var(--t-h2-fluid);
  font-weight:var(--w-head); line-height:var(--lh-head);
  letter-spacing:var(--track-display); color:var(--ink);
  margin-bottom:16px; max-width:24ch; text-wrap:balance;
}
.sl{
  font-family:var(--fm); font-size:var(--t-micro);
  font-weight:var(--w-label); letter-spacing:var(--track-label);
  text-transform:uppercase; color:var(--amber);
  display:flex; align-items:center; gap:12px; margin-bottom:20px;
}
.sb{
  font-size:var(--t-body); font-weight:var(--w-body);
  color:var(--ink-3); max-width:64ch; line-height:var(--lh-body);
}

/* ---------- nav ---------- */
nav{position:fixed;top:0;width:100%;z-index:100;padding:0 5vw;height:64px;display:flex;align-items:center;justify-content:space-between;background:rgba(250,246,240,0.96);backdrop-filter:blur(16px);border-bottom:1px solid var(--rule)}
.nav-logo{display:flex;align-items:center;gap:10px;text-decoration:none}
.nav-logo-img{height:41px;width:41px;object-fit:contain}
.nav-logo-text{font-family:var(--fb);font-weight:var(--w-head);font-size:var(--t-small);letter-spacing:-0.005em;color:var(--ink)}
.nav-logo-text span{display:block;font-family:var(--fb);color:var(--muted);font-weight:var(--w-body);font-size:var(--t-micro);letter-spacing:0}
.nav-links{display:flex;gap:20px;list-style:none}
.nav-links a{font-family:var(--fb);font-size:var(--t-small);font-weight:var(--w-body);color:var(--muted);text-decoration:none;transition:color 0.2s}
.nav-links a:hover,.nav-links a.active{color:var(--amber)}
.nav-cta{font-family:var(--fb);font-size:var(--t-small);font-weight:var(--w-label);color:var(--paper);background:var(--ink);padding:9px 20px;text-decoration:none;border-radius:2px;transition:background 0.2s;white-space:nowrap}
.nav-cta:hover{background:var(--ink-2)}
.hbg{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:4px}
.hbg span{display:block;width:22px;height:1px;background:var(--ink)}
.mnav{display:none;position:fixed;top:64px;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--rule);z-index:99;padding:20px 5vw;flex-direction:column}
.mnav.open{display:flex}
.mnav a{font-family:var(--fb);font-size:var(--t-small);color:var(--muted);text-decoration:none;padding:12px 0;border-bottom:1px solid var(--rule)}
.mnav a:hover,.mnav a.active{color:var(--amber)}

/* ---------- footer ---------- */
footer{background:var(--ink);padding:28px 5vw;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
.fcopy{font-family:var(--fm);font-size:var(--t-micro);color:rgba(250,246,240,0.5)}
.flinks{display:flex;gap:22px;list-style:none;flex-wrap:wrap}
.flinks a{font-family:var(--fb);font-size:var(--t-small);color:rgba(250,246,240,0.55);text-decoration:none;transition:color 0.2s}
.flinks a:hover{color:var(--amber-3)}

/* ---------- buttons ---------- */
.btn-p{font-family:var(--fb);font-size:var(--t-small);font-weight:var(--w-label);color:var(--paper);background:var(--ink);padding:13px 26px;text-decoration:none;border-radius:2px;transition:background 0.2s;display:inline-block}
.btn-p:hover{background:var(--ink-2)}

/* ---------- WhatsApp ---------- */
.wa-btn{position:fixed;bottom:22px;right:22px;z-index:95;width:54px;height:54px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,0.25);transition:transform 0.2s}
.wa-btn:hover{transform:scale(1.07)}
.wa-btn svg{width:28px;height:28px;fill:#fff}

/* ---------- breakpoints ---------- */
@media(max-width:768px){.nav-logo-text span{display:none}nav{padding:0 4vw}}
@media(max-width:1150px){.nav-links{display:none}.hbg{display:flex}}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1!important;transform:none!important}
  .fu{animation:none!important;opacity:1!important}
}
