/* [c178 Journey Phase 3] Shared stage-hub layout — Glassmorphism 2.0.
 * Consistent across /develop /land /perform. Per-stage accent via CSS vars:
 * each hub sets :root { --stage-accent; --stage-accent-2 } in a tiny inline <style>.
 * Loaded as: <link rel="stylesheet" href="/shared/journey-hub.css"> */

:root {
  --jh-bg-1: #0A0E27;
  --jh-text: #F1F5F9;
  --jh-text-dim: #94A3B8;
  --jh-glass: rgba(255, 255, 255, 0.05);
  --jh-glass-hover: rgba(255, 255, 255, 0.09);
  --jh-glass-border: rgba(255, 255, 255, 0.10);
  --jh-nav-bg: rgba(10, 14, 39, 0.72);
  /* defaults (each hub overrides) */
  --stage-accent: #8B5CF6;
  --stage-accent-2: #06B6D4;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Inter', Roboto, Helvetica, Arial, sans-serif;
  color: var(--jh-text);
  line-height: 1.6;
  min-height: 100vh;
  /* stage-neutral glass glow (broad browser support; stage accent drives nav/cards/CTA) */
  background:
    radial-gradient(1100px 560px at 15% -12%, rgba(139, 92, 246, 0.16), transparent 60%),
    radial-gradient(950px 480px at 100% 0%, rgba(6, 182, 212, 0.13), transparent 55%),
    var(--jh-bg-1);
  background-attachment: fixed;
}

/* ── Journey nav ── */
.journey-nav {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  padding: 13px 24px;
  background: var(--jh-nav-bg);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--jh-glass-border);
  position: sticky; top: 0; z-index: 50;
}
.journey-nav-logo {
  font-weight: 800; font-size: 1.15rem; text-decoration: none; white-space: nowrap;
  background: linear-gradient(135deg, var(--stage-accent), var(--stage-accent-2));
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.journey-nav-links { list-style: none; display: flex; gap: 4px; margin: 0; padding: 0; flex-wrap: wrap; flex: 1; }
.journey-nav-links a {
  color: var(--jh-text-dim); text-decoration: none; font-size: 0.9rem; font-weight: 500;
  padding: 7px 13px; border-radius: 9px; transition: color .18s ease, background .18s ease;
}
.journey-nav-links a:hover { color: var(--jh-text); background: var(--jh-glass); }
.journey-nav-links a[aria-current="page"] {
  color: #fff;
  background: linear-gradient(135deg, var(--stage-accent), var(--stage-accent-2));
}
.journey-nav select {
  background: var(--jh-glass); color: var(--jh-text);
  border: 1px solid var(--jh-glass-border); border-radius: 8px; padding: 6px 8px; font-size: 0.82rem; cursor: pointer;
}

/* ── Main ── */
main { max-width: 1080px; margin: 0 auto; padding: 46px 24px 24px; }
main > h1 {
  font-size: clamp(28px, 4vw, 44px); font-weight: 800; letter-spacing: -0.02em; margin: 0 0 8px;
  background: linear-gradient(120deg, var(--jh-text), var(--stage-accent-2));
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
main > p[data-i18n="stageTagline"] { color: var(--jh-text-dim); font-size: 1.06rem; margin: 0 0 6px; max-width: 62ch; }

/* ── Progress breadcrumb ── */
.journey-progress { display: flex; gap: 8px; flex-wrap: wrap; margin: 20px 0 30px; font-size: 0.82rem; }
.journey-progress a, .journey-progress span {
  display: inline-flex; align-items: center; padding: 5px 13px; border-radius: 20px; text-decoration: none;
  border: 1px solid var(--jh-glass-border); color: var(--jh-text-dim); background: var(--jh-glass);
  transition: color .18s ease, background .18s ease;
}
.journey-progress a:hover { color: var(--jh-text); background: var(--jh-glass-hover); }
.journey-progress .current {
  color: #fff; border-color: transparent; font-weight: 600;
  background: linear-gradient(135deg, var(--stage-accent), var(--stage-accent-2));
}

/* ── Card grid ── */
.journey-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.journey-card {
  display: flex; flex-direction: column; gap: 8px; padding: 22px 20px; text-decoration: none;
  background: var(--jh-glass); border: 1px solid var(--jh-glass-border); border-radius: 16px;
  transition: transform .2s ease, border-color .2s ease, background .2s ease, box-shadow .2s ease;
}
.journey-card:hover {
  transform: translateY(-4px); background: var(--jh-glass-hover);
  border-color: var(--stage-accent); box-shadow: 0 14px 34px rgba(0, 0, 0, 0.28);
}
.journey-card:focus-visible { outline: 2px solid var(--stage-accent-2); outline-offset: 3px; }
/* [c179] featured card — the offline/B2B expansion card spans the full row (5-card hubs → 2×2 + 1 wide) */
.journey-card.featured { grid-column: 1 / -1; border-color: var(--stage-accent); }
.journey-card .card-badge {
  align-self: flex-start; font-size: 0.68rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  padding: 3px 9px; border-radius: 20px; color: #fff;
  background: linear-gradient(135deg, var(--stage-accent), var(--stage-accent-2));
}
.journey-card h2 { margin: 0; font-size: 1.1rem; font-weight: 700; color: var(--jh-text); }
.journey-card p { margin: 0; font-size: 0.9rem; color: var(--jh-text-dim); }

/* ── Next-stage CTA ── */
.journey-next {
  display: inline-block; margin-top: 30px; padding: 15px 28px; border-radius: 12px;
  font-weight: 700; font-size: 1.02rem; text-decoration: none; color: #fff;
  background: linear-gradient(135deg, var(--stage-accent), var(--stage-accent-2));
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.22);
  transition: transform .18s ease, box-shadow .18s ease;
}
.journey-next:hover { transform: translateX(3px); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.28); }
.journey-next:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

/* ── Footer ── */
footer { max-width: 1080px; margin: 30px auto 0; padding: 26px 24px 44px; border-top: 1px solid var(--jh-glass-border); }
footer nav { display: flex; gap: 6px; flex-wrap: wrap; color: var(--jh-text-dim); font-size: 0.85rem; }
footer a { color: var(--jh-text-dim); text-decoration: none; }
footer a:hover { color: var(--jh-text); }

/* ── Responsive ── */
@media (max-width: 720px) {
  .journey-cards { grid-template-columns: 1fr; }
  .journey-nav { padding: 12px 16px; gap: 10px; }
  main { padding: 34px 16px 20px; }
}

/* ── Light mode (matches the app's .light-mode convention if a parent sets it) ── */
@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) {
    --jh-bg-1: #F8FAFC; --jh-text: #0F172A; --jh-text-dim: #475569;
    --jh-glass: rgba(255, 255, 255, 0.75); --jh-glass-hover: rgba(255, 255, 255, 0.92);
    --jh-glass-border: rgba(0, 0, 0, 0.08);
    --jh-nav-bg: rgba(255, 255, 255, 0.80);
  }
}
