/* wiseDo Theme v2 "Blueprint" — light industrial, engineering-blue accent.
   Positions the brand as enterprise platform software, not a dark AI-startup
   landing page. Serif display retained. CSS-variable override layer on top of
   the compiled Tailwind theme. */

/* --- 1. Blueprint light tokens --- */
:root,
.dark {
  --background: 240 2% 2%;
  --foreground: 45 12% 94%;
  --card: 240 4% 10%;
  --card-foreground: 45 12% 94%;
  --card-border: 240 5% 18%;
  --popover: 240 4% 8%;
  --popover-foreground: 45 12% 94%;
  --secondary: 240 4% 12%;
  --secondary-foreground: 45 12% 94%;
  --muted: 240 4% 12%;
  --muted-foreground: 45 6% 68%;
  --border: 240 5% 18%;
  --input: 240 5% 18%;
  --primary: 220 9% 85%;
  --accent: 220 9% 85%;
  --ring: 220 9% 85%;
  --primary-foreground: 240 4% 6%;
}
body { background: hsl(42 25% 96%) !important; color: hsl(222 30% 13%) !important; }

/* --- 2. Serif headings for engineering-document credibility --- */
h1, h2, h3, h4, h5, h6,
:root { --app-font-display: "Source Serif 4", Georgia, "Times New Roman", serif; --wd-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; }
.font-display { font-family: var(--app-font-display) !important; letter-spacing: -0.015em; }
h1.font-display, h2.font-display { text-wrap: balance; }
.font-mono, .eyebrow, .role, .week-card .wk, .diagram-cap.mono, code, kbd { font-family: var(--wd-mono) !important; }

/* --- 3. Gradient-text kill: solid blueprint-blue keyword --- */
.text-gradient {
  background: none !important;
  -webkit-text-fill-color: #1d4e9e !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
  color: #1d4e9e !important;
}

/* --- 4. No generic tech-grid backdrop --- */
.bg-grid,
.bg-grid-fade,
[class*="bg-grid"] {
  background-image: none !important;
}

/* --- 5. Crisp, drawing-sheet edges --- */
.rounded-3xl { border-radius: 0.25rem !important; }
.rounded-2xl { border-radius: 0.25rem !important; }
.rounded-xl  { border-radius: 0.25rem !important; }

/* --- 6. Eyebrow labels: plain type, no decorative rules --- */
.font-mono.uppercase.text-primary { letter-spacing: .08em; }

/* --- 6b. Hero: no badge, no scroll gimmick — the headline carries it --- */
#top .inline-flex.rounded-full.font-mono.uppercase { display: none !important; }
#top .absolute.bottom-8.left-1\/2 { display: none !important; }
.wd-hero-stack { width: min(30vw, 430px); height: auto; }
@media (max-width: 1249px) { .wd-hero-stack { display: none !important; } }

/* --- 7. Waitlist stays demoted: ink outline --- */
.wd-waitlist button[type="submit"], .wd-waitlist button {
  background: transparent !important;
  border: 1px solid rgba(29, 78, 158, .45) !important;
  color: #1d4e9e !important;
}
.wd-waitlist button:hover { background: rgba(29, 78, 158, .08) !important; }

/* --- 8. Footer link tap targets --- */
footer a { display: inline-block; padding: .3rem .1rem; }

/* --- 9. Legacy dark-designed embeds shown as framed exhibits on paper --- */
iframe[src*="wisedo-video"] { border-radius: .25rem; }

/* --- 10. Stale cached blue mark fallback (harmless for new wd-logo-ink asset) --- */
img[src*="wisedo-mark"] { filter: saturate(1.1); }


/* --- interactivity pass: card lift + image zoom + nav affordance --- */
.wd-card { transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.wd-card:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(20,30,60,.10); }
.wd-cardimg { transition: transform .5s ease; }
.wd-card:hover .wd-cardimg { transform: scale(1.05); }
header nav a { position: relative; }
header nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -4px; height: 2px; background: #1d4e9e; transition: right .25s ease; }
header nav a:hover::after { right: 0; }
@media (prefers-reduced-motion: reduce) {
  .wd-card, .wd-cardimg, header nav a::after { transition: none !important; }
  .wd-card:hover { transform: none; }
}
a.wd-card { color: inherit; text-decoration: none; cursor: pointer; }
a.wd-card:focus-visible { outline: 2px solid #1d4e9e; outline-offset: 3px; }
/* --- Mobile menu (details/summary, no JS) --- */
.wd-mnav{position:relative}
.wd-mnav summary{list-style:none;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid #c9c2b0;border-radius:.6rem;color:#1c2432;cursor:pointer;background:rgba(247,244,236,.9)}
.wd-mnav summary::-webkit-details-marker{display:none}
.wd-mnav[open] summary{background:#efeadf}
.wd-mnav > nav{position:absolute;right:0;top:calc(100% + 10px);min-width:230px;background:#f7f4ec;border:1px solid #c9c2b0;border-radius:.8rem;box-shadow:0 14px 40px rgba(20,26,38,.14);padding:.5rem;display:flex;flex-direction:column;z-index:80}
.wd-mnav > nav a{display:block;padding:.75rem 1rem;border-radius:.5rem;color:#1c2432;font-size:.95rem;font-weight:500;text-decoration:none;min-height:44px;display:flex;align-items:center}
.wd-mnav > nav a:hover{background:#efeadf;color:#1d4e9e}
.wd-mnav > nav a.wd-mnav-cta{margin-top:.35rem;background:#1d4e9e;color:#fff;justify-content:center}
.wd-mnav > nav a.wd-mnav-cta:hover{background:#193f80;color:#fff}
@media (min-width:768px){.wd-mnav{display:none}}

/* --- Touch targets (WCAG 2.5.8) --- */
header nav[aria-label="Primary"] a{padding-block:.55rem}
footer a{padding-block:.35rem;display:inline-flex;align-items:center}
@media (max-width:767px){
  header a[href*="calendly"]{min-height:44px}
  footer a{min-height:44px}
}



/* ============ Control Room: SPA pages (scoped to the app's .dark root) ============ */
.dark {
  --background: 240 2% 2%;
  --foreground: 240 5% 96%;
  --card: 240 3% 6%;
  --card-foreground: 240 5% 96%;
  --card-border: 240 4% 16%;
  --popover: 240 3% 6%;
  --popover-foreground: 240 5% 96%;
  --secondary: 240 4% 10%;
  --secondary-foreground: 240 5% 96%;
  --muted: 240 4% 10%;
  --muted-foreground: 240 4% 66%;
  --border: 240 4% 16%;
  --input: 240 4% 16%;
  --primary: 220 9% 85%;
  --accent: 220 9% 85%;
  --ring: 220 9% 85%;
  --primary-foreground: 240 4% 6%;
}
body:has(#root .dark) { background: hsl(240 2% 2%) !important; color: hsl(45 12% 94%) !important; }
.dark .wd-card:hover { box-shadow: 0 14px 40px rgba(0,0,0,.5); }
.dark header nav a::after { background: hsl(220 9% 85%); }
.dark .wd-mnav summary { border-color: hsl(240 5% 18%); color: hsl(45 12% 94%); background: rgba(0,0,0,.9); }
.dark .wd-mnav[open] summary { background: hsl(240 4% 8%); }
.dark .wd-mnav > nav { background: hsl(240 4% 8%); border-color: hsl(240 5% 18%); box-shadow: 0 18px 50px rgba(0,0,0,.55); }
.dark .wd-mnav > nav a { color: hsl(45 12% 94%); }
.dark .wd-mnav > nav a:hover { background: hsl(240 4% 10%); color: hsl(220 9% 85%); }
.dark .wd-mnav > nav a.wd-mnav-cta { background: hsl(220 9% 85%); color: hsl(240 2% 2%); }
.dark img[src*="wd-logo-wordmark"] { filter: invert(1) grayscale(1) brightness(1.15); }

/* machined metal light field: one raking lamp at 115deg across the whole black surface */
body::before{content:""; position:fixed; inset:0; z-index:90; pointer-events:none;
  background:
    radial-gradient(120% 85% at 50% -12%, rgba(235,239,246,.085), transparent 55%),
    linear-gradient(115deg, transparent 20%, rgba(220,226,236,.055) 36%, transparent 47%, transparent 60%, rgba(220,226,236,.035) 72%, transparent 84%),
    radial-gradient(160% 120% at 50% 125%, transparent 74%, rgba(0,0,0,.22) 100%)}
body::after{content:""; position:fixed; inset:0; z-index:90; pointer-events:none; opacity:.35;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='420'%3E%3Cfilter id='m'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.006 0.35' numOctaves='2' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 0.85 0 0 0 0 0.87 0 0 0 0 0.9 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='420' height='420' filter='url(%23m)'/%3E%3C/svg%3E")}
