/* ═══════════════════════════════════════════════════════════════
   MyBizC — Global Design System
   This file owns ALL nav/footer/button/layout CSS.
   Page views only contain page-specific CSS via @push('styles').
═══════════════════════════════════════════════════════════════ */

/* ── Tokens ──────────────────────────────────────────────────── */
:root {
  --bg:#fafaf7; --surface:#fff; --surface2:#f3f3ee; --surface3:#e8ead0;
  --border:#e5e5da; --border2:#d0d2b8;
  --accent:#b8e800; --accent-md:#a0cc00; --accent-dk:#6e8c00;
  --accent-bg:rgba(184,232,0,.10); --accent-bg2:rgba(184,232,0,.18);
  --black:#111111; --text:#1c1c18; --text-soft:#3c3c38;
  --muted:#7c7c6c; --muted2:#b0b09c;
  --r-sm:8px; --r-md:16px; --r-lg:24px; --r-xl:32px; --r-pill:999px;
  --shadow:0 1px 12px rgba(0,0,0,.06); --shadow-md:0 4px 24px rgba(0,0,0,.09);
  --font-head:'Sora',sans-serif; --font-body:'DM Sans',sans-serif;
  --safe-top:env(safe-area-inset-top,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);
  --nav-h:64px; --bnav-h:64px;
}

/* ── Reset ───────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--text);font-family:var(--font-body);
  font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{text-decoration:none;color:inherit}
img{max-width:100%;height:auto;display:block}
button{font-family:inherit}

/* ── Utilities ───────────────────────────────────────────────── */
.container{max-width:1160px;margin:0 auto;padding:0 28px}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:10px 22px;border-radius:var(--r-pill);font-family:var(--font-body);
  font-size:.88rem;font-weight:700;cursor:pointer;border:none;transition:all .22s;
  white-space:nowrap;text-decoration:none;line-height:1;
  -webkit-tap-highlight-color:transparent;touch-action:manipulation}
.btn-primary{background:var(--black);color:#fff}
.btn-primary:hover{background:#2a2a2a;transform:translateY(-1px)}
.btn-lime{background:var(--accent);color:#000}
.btn-lime:hover{background:#caff00}
.btn-soft{background:var(--surface2);color:var(--text-soft);border:1.5px solid var(--border)}
.btn-soft:hover{border-color:var(--black);color:var(--black)}
.btn-dark{background:var(--black);color:#fff}
.btn-border{background:transparent;color:var(--black);border:1.5px solid var(--border)}
.btn-sm{padding:8px 16px;font-size:.8rem}

/* Flash */
.flash{position:fixed;top:80px;left:50%;transform:translateX(-50%);z-index:9999;
  display:flex;align-items:center;gap:10px;padding:12px 20px;border-radius:var(--r-pill);
  font-size:.88rem;font-weight:600;box-shadow:var(--shadow-md);
  animation:flashIn .3s ease;white-space:nowrap;max-width:90vw}
.flash-success{background:#f0fff4;border:1px solid #c6f6d5;color:#276749}
.flash-error{background:#fff5f5;border:1px solid #fed7d7;color:#c53030}
.flash-close{background:none;border:none;cursor:pointer;font-size:1.2rem;color:inherit;margin-left:8px;opacity:.6}
@keyframes flashIn{from{opacity:0;transform:translateX(-50%) translateY(-8px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}

/* Reveal */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .55s ease,transform .55s ease}
.reveal.visible{opacity:1;transform:none}

/* ═══════════════════════════════════════════════════════════════
   DESKTOP NAV  (≥769px — controlled via @media below)
═══════════════════════════════════════════════════════════════ */
.main-nav{
  position:sticky;top:0;z-index:600;
  height:var(--nav-h);
  background:rgba(250,250,247,.96);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid var(--border);
  padding-top:var(--safe-top);
  transition:box-shadow .2s;
}
.nav-inner{height:var(--nav-h);display:flex;align-items:center;justify-content:space-between;gap:1rem}
.nav-logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;line-height:1;flex-shrink:0}
.nav-logo-text{font-family:var(--font-head);font-size:1.35rem;font-weight:800;letter-spacing:-.04em;color:var(--black);line-height:1}
.nav-logo-text span{color:var(--accent)}
.nav-links{display:flex;gap:0;list-style:none}
.nav-links a{display:block;padding:7px 14px;color:var(--muted);font-size:.87rem;font-weight:600;border-radius:var(--r-sm);transition:all .18s;white-space:nowrap}
.nav-links a:hover,.nav-links a.active{color:var(--black);background:var(--surface2)}
.nav-cta{display:flex;gap:10px;align-items:center;flex-shrink:0}

/* ═══════════════════════════════════════════════════════════════
   MOBILE TOP BAR  (≤768px — controlled via @media below)
═══════════════════════════════════════════════════════════════ */
.mobile-nav-top{
  position:sticky;top:0;z-index:600;
  background:rgba(250,250,247,.97);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid var(--border);
  padding-top:var(--safe-top);
  display:none; /* shown via mobile @media */
}
.mnt-inner{height:var(--nav-h);display:flex;align-items:center;justify-content:space-between;padding:0 20px}
.mnt-right{display:flex;gap:8px;align-items:center}
.mnt-signin{padding:8px 14px;border-radius:var(--r-pill);background:var(--surface2);border:1.5px solid var(--border);
  font-family:var(--font-body);font-size:.78rem;font-weight:700;color:var(--text-soft);
  text-decoration:none;display:inline-flex;align-items:center;touch-action:manipulation}
.mnt-cta{padding:9px 16px;border-radius:var(--r-pill);background:var(--black);color:#fff;
  font-family:var(--font-body);font-size:.78rem;font-weight:700;
  text-decoration:none;display:inline-flex;align-items:center;touch-action:manipulation}

/* ═══════════════════════════════════════════════════════════════
   MOBILE BOTTOM NAV  (≤768px — controlled via @media below)
═══════════════════════════════════════════════════════════════ */
.bottom-nav{
  position:fixed;bottom:0;left:0;right:0;z-index:600;
  background:rgba(255,255,255,.98);
  backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);
  border-top:1px solid rgba(0,0,0,.08);
  box-shadow:0 -4px 20px rgba(0,0,0,.08);
  padding-bottom:var(--safe-bottom);
  display:none; /* shown via mobile @media */
}
.bnav-inner{height:var(--bnav-h);display:flex;align-items:stretch;padding:0 4px}

/* Tab items — direct <a> tags, no nesting */
.bnav-item{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  padding:8px 2px;border-radius:12px;
  text-decoration:none;color:inherit;position:relative;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
  cursor:pointer;min-width:0;
  transition:background .15s;
  /* Ensure full tap target */
  -webkit-user-select:none;user-select:none;
}
.bnav-item:active{background:var(--surface2)}
.bnav-item.active{background:rgba(184,232,0,.10)}
.bnav-item.active::after{
  content:'';position:absolute;bottom:5px;left:50%;transform:translateX(-50%);
  width:4px;height:4px;border-radius:50%;background:var(--accent-md)
}
.bnav-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0;pointer-events:none}
.bnav-icon svg{width:22px;height:22px;display:block;stroke:var(--muted);fill:none;
  stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:stroke .15s;pointer-events:none}
.bnav-item.active .bnav-icon svg{stroke:var(--black)}
.bnav-label{font-family:var(--font-body);font-size:.6rem;font-weight:600;color:var(--muted);
  letter-spacing:.02em;white-space:nowrap;line-height:1;pointer-events:none}
.bnav-item.active .bnav-label{color:var(--black);font-weight:700}

/* Launch CTA — centre pill */
.bnav-launch-btn{
  flex:0 0 68px;display:flex;align-items:center;justify-content:center;
  text-decoration:none;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
  cursor:pointer;
}
.bnav-launch-inner{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  width:52px;height:48px;background:var(--black);border-radius:18px;
  box-shadow:0 4px 14px rgba(0,0,0,.25),0 0 0 3px var(--bg);
  position:relative;overflow:hidden;
  transition:transform .15s;pointer-events:none;
}
.bnav-launch-btn:active .bnav-launch-inner{transform:scale(.95)}
.bnav-launch-inner::before{content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(184,232,0,.2) 0%,transparent 60%)}
.bnav-launch-icon{font-size:1rem;line-height:1;position:relative;z-index:1}
.bnav-launch-label{font-family:var(--font-body);font-size:.5rem;font-weight:800;color:var(--accent);
  letter-spacing:.04em;text-transform:uppercase;position:relative;z-index:1;line-height:1}

/* ═══════════════════════════════════════════════════════════════
   FOOTER
═══════════════════════════════════════════════════════════════ */
.main-footer{background:var(--surface);border-top:1px solid var(--border);padding:52px 0 24px}
.ft-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;margin-bottom:36px}
.ft-brand p{color:var(--muted);font-size:.875rem;line-height:1.75;max-width:270px;margin-bottom:18px}
.soc-row{display:flex;gap:8px}
.soc-btn{width:36px;height:36px;border-radius:var(--r-sm);background:var(--surface2);border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;font-size:.82rem;color:var(--muted);
  transition:all .2s;cursor:pointer;text-decoration:none}
.soc-btn:hover{background:var(--black);color:var(--accent);border-color:var(--black)}
.ft-col h4{font-family:var(--font-head);font-size:.76rem;font-weight:800;letter-spacing:.1em;
  text-transform:uppercase;color:var(--black);margin-bottom:16px}
.ft-col ul{list-style:none}
.ft-col ul li{margin-bottom:10px}
.ft-col ul a{color:var(--muted);font-size:.875rem;font-weight:500;transition:color .18s}
.ft-col ul a:hover{color:var(--black)}
.ft-bottom{display:flex;align-items:center;justify-content:space-between;
  padding-top:22px;border-top:1px solid var(--border);font-size:.76rem;color:var(--muted);
  flex-wrap:wrap;gap:10px}
.ft-bottom a{color:var(--muted)}
.ft-bottom a:hover{color:var(--black)}

/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE — SINGLE SOURCE OF TRUTH
   Only this file controls nav show/hide. Page CSS must NOT touch these.
═══════════════════════════════════════════════════════════════ */

/* Desktop ≥769px */
@media (min-width:769px){
  .main-nav{display:block !important}
  .mobile-nav-top{display:none !important}
  .bottom-nav{display:none !important}
}

/* Tablet 769–1060px */
@media (min-width:769px) and (max-width:1060px){
  .nav-links{display:none}
  .ft-grid{grid-template-columns:1fr 1fr}
}

/* Mobile ≤768px */
@media (max-width:768px){
  .main-nav{display:none !important}
  .mobile-nav-top{display:block !important}
  .bottom-nav{display:block !important}
  body{padding-bottom:calc(var(--bnav-h) + var(--safe-bottom) + 8px)}
  .container{padding:0 16px}
  .ft-grid{grid-template-columns:1fr 1fr;gap:24px}
  .ft-bottom{flex-direction:column;text-align:center;gap:6px}
  .policy-sidebar{overflow:hidden}
}

/* Small phones ≤480px */
@media (max-width:480px){
  .ft-grid{grid-template-columns:1fr}
  .mnt-cta{display:none}
  .container{padding:0 14px}
}
