/* ════════════════════════════════════════════════════════════════
   Moonlight — shared PRODUCT-PAGE template
   One layout grammar for Janus / Caposeo / Launch Sentinel.
   Set a body class to recolor the whole page:
     body.prod-janus   → orange
     body.prod-caposeo → slate-indigo
     body.prod-ls      → signal green
   Sections: hero → problem+how-it-works → proof → use cases (verticals)
   → capabilities (+ matrix) → CTA.  Depends on site.css.
════════════════════════════════════════════════════════════════ */

body.prod-janus  { --accent:#ff5a1f; --accent-2:#ff4a16; --accent-soft:rgba(255,90,31,.06); --accent-line:rgba(255,90,31,.22); }
body.prod-caposeo{ --accent:#2f5fd0; --accent-2:#34466b; --accent-soft:rgba(47,95,208,.06); --accent-line:rgba(47,95,208,.2); }
body.prod-ls     { --accent:#1fa463; --accent-2:#33d17a; --accent-soft:rgba(51,209,122,.07); --accent-line:rgba(51,209,122,.25); }
:root{ --accent:#ff5a1f; --accent-2:#ff4a16; --accent-soft:rgba(255,90,31,.06); --accent-line:rgba(255,90,31,.22); }

/* accent-driven atoms (override site.css neutral defaults on product pages) */
.prod .eyebrow::before{background:var(--accent)}
.prod .accent{color:var(--accent)}
.prod h1 em,.prod h2 em,.prod h3 em{font-style:normal;color:var(--accent)}

.prod .section-label{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:2.5px;text-transform:uppercase;color:var(--accent);display:inline-flex;align-items:center;gap:10px}
.prod .section-label::before{content:"";width:22px;height:1px;background:var(--accent)}
.prod .section-heading{font-family:var(--disp);font-weight:800;letter-spacing:-.02em;line-height:1.06;color:var(--ink);font-size:clamp(28px,3.8vw,46px);margin:16px 0 16px}
.prod .section-sub{color:var(--muted);font-size:clamp(15px,1.2vw,18px);line-height:1.65;max-width:60ch}

/* ───────── HERO (split: copy + framed surface) ───────── */
.prod-hero{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(36px,5vw,64px);align-items:center;
  padding:clamp(108px,13vh,150px) clamp(20px,6vw,80px) clamp(56px,7vw,88px);max-width:1280px;margin:0 auto}
/* prevent grid-item min-content from forcing horizontal overflow on mobile (all product pages) */
.prod-hero>*,.mech-grid>*,.proof-grid>*,.module-grid>*,.verticals-screens>*{min-width:0}
.prod-hero .hero-copy h1{font-family:var(--disp);font-weight:800;line-height:1.02;letter-spacing:-.025em;color:var(--ink);font-size:clamp(34px,4.6vw,58px);margin:16px 0 18px}
.prod-hero .lead{color:var(--muted);font-size:clamp(15px,1.25vw,18px);line-height:1.65;max-width:50ch;margin-bottom:26px}
.prod-hero .lead em{font-style:normal;color:var(--ink);font-weight:600}
.prod-hero .hero-actions{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:34px}
.prod-hero .hero-stats{display:grid;grid-template-columns:repeat(4,auto);gap:clamp(18px,2.4vw,34px);justify-content:start}
.hero-stat .val{font-family:var(--disp);font-weight:800;font-size:clamp(22px,2.6vw,30px);letter-spacing:-.02em;color:var(--accent)}
.hero-stat .val.ink{color:var(--ink)}
.hero-stat .lbl{font-family:var(--mono);font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);margin-top:4px}

/* hero surface: a light screen-well (default) OR a dark .stage (LS terminal) */
.prod-hero .hero-surface{position:relative}
.prod-hero .screen-well{position:relative}
/* overlay callouts on hero screenshot */
.screen-callouts{position:absolute;inset:0;pointer-events:none}
.callout{position:absolute;background:rgba(255,255,255,.92);backdrop-filter:blur(6px);border:1px solid var(--hairline);
  border-radius:10px;padding:8px 11px;box-shadow:var(--card-shadow-sm)}
.callout .ck{font-family:var(--mono);font-size:8.5px;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}
.callout .cv{font-family:var(--disp);font-weight:800;font-size:16px;letter-spacing:-.02em;margin-top:2px}
.callout .cv.copper,.callout .cv.accent{color:var(--accent)}.callout .cv.blue{color:var(--caposeo-lift)}.callout .cv.green{color:var(--ls)}
.callout-live{display:flex;align-items:center;gap:7px;top:14px;left:14px;background:rgba(9,13,21,.82);border-color:var(--stage-edge)}
.callout-live span{font-family:var(--mono);font-size:9px;letter-spacing:1.5px;color:#eaf1fb}
.callout-live .live-dot{width:7px;height:7px;border-radius:50%;background:var(--ls);box-shadow:0 0 8px var(--ls);animation:livePulse 2.4s infinite}
.callout-staff{top:14px;right:14px}.callout-promo{top:80px;right:14px}.callout-people{bottom:64px;left:14px}
.callout-wait{bottom:14px;left:14px}.callout-line{bottom:14px;right:14px}
@media(max-width:1100px){.screen-callouts{display:none}}

/* ───────── PROBLEM + HOW IT WORKS ───────── */
.mech-section .mech-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,5vw,72px);align-items:start}
.pain-block .pain-header{display:flex;gap:14px;align-items:flex-start;margin-bottom:16px}
.pain-block .pain-icon{font-size:26px;flex:none}
.pain-block h3{font-family:var(--disp);font-weight:800;letter-spacing:-.02em;line-height:1.12;font-size:clamp(22px,2.6vw,32px)}
.pain-block p{color:var(--muted);font-size:15.5px;line-height:1.7;margin-bottom:18px}
.pain-block .closes{display:flex;align-items:center;gap:10px;font:600 12px var(--mono);color:var(--accent);letter-spacing:1px;text-transform:uppercase}
.pain-block .closes::before{content:"";width:16px;height:2px;background:var(--accent)}
.mech-flow{display:flex;flex-direction:column;gap:6px}
.mech-step{display:flex;gap:18px;padding:18px;border-radius:14px;border:1px solid var(--hairline);background:var(--paper2);box-shadow:var(--card-shadow-sm)}
.mech-step-num{font-family:var(--mono);font-size:13px;font-weight:500;color:var(--accent);flex:none;padding-top:2px}
.mech-step-text strong{display:block;font-family:var(--disp);font-weight:700;font-size:15.5px;margin-bottom:5px;color:var(--ink)}
.mech-step-text span{color:var(--muted);font-size:14px;line-height:1.55}

/* ───────── PROOF ───────── */
.proof-section{text-align:center}
.proof-section .section-label{justify-content:center}
.proof-grid{max-width:1200px;margin:clamp(36px,5vw,56px) auto 0;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:left}
.proof-card{background:var(--paper2);border:1px solid var(--hairline);border-radius:var(--r-card);padding:24px;box-shadow:var(--card-shadow-sm)}
.proof-card .plbl{font-family:var(--mono);font-size:10.5px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted)}
.proof-card .pval{font-family:var(--disp);font-weight:800;font-size:clamp(30px,3.6vw,42px);letter-spacing:-.025em;color:var(--accent);margin:10px 0 12px}
.proof-card .pval.white,.proof-card .pval.ink{color:var(--ink)}
.proof-card .pdesc{color:var(--muted);font-size:13.5px;line-height:1.55}

/* ───────── USE CASES (vertical screenshots) ───────── */
.verticals-intro{max-width:760px;margin:0 auto clamp(36px,5vw,52px);text-align:center}
.verticals-intro .section-label{justify-content:center}
.verticals-intro .section-sub{margin:0 auto}
.verticals-screens{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:24px}
.vert-screen{position:relative;border:1px solid var(--hairline);border-radius:16px;overflow:hidden;box-shadow:var(--card-shadow);background:var(--paper2)}
.vert-screen img{width:100%;height:auto;display:block}
.vert-screen-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,24,31,.55),transparent 55%)}
.vert-screen-info{position:absolute;left:18px;bottom:16px;right:18px;color:#fff}
.vert-screen-tag{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10.5px;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.85)}
.vert-screen-tag .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent)}
.vert-screen-stat{font-family:var(--disp);font-weight:800;font-size:30px;letter-spacing:-.02em;margin:6px 0 2px;color:#fff}
.vert-screen-label{font-size:12.5px;color:rgba(255,255,255,.8);line-height:1.4}

/* ───────── CAPABILITIES (modules + matrix) ───────── */
.sil-intro{max-width:820px;margin:0 auto clamp(36px,5vw,52px);text-align:center}
.sil-intro .section-label{justify-content:center}
.sil-moat{color:var(--muted);font-size:clamp(15px,1.2vw,18px);line-height:1.7;margin-top:14px}
.sil-moat em{font-style:normal;color:var(--ink);font-weight:600}
.module-grid{max-width:1200px;margin:0 auto clamp(48px,6vw,64px);display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.module-card{background:var(--paper2);border:1px solid var(--hairline);border-radius:var(--r-card);padding:24px;box-shadow:var(--card-shadow-sm)}
.module-card .module-icon{font-size:24px;margin-bottom:12px}
.module-card h4{font-family:var(--disp);font-weight:700;font-size:16px;margin-bottom:8px}
.module-card h4::before{content:"";display:inline-block;width:14px;height:2px;background:var(--accent);vertical-align:middle;margin-right:8px}
.module-card p{color:var(--muted);font-size:13.5px;line-height:1.6}
.matrix-label{display:block;text-align:center;font-family:var(--mono);font-size:12px;letter-spacing:2.5px;text-transform:uppercase;color:var(--ink-soft);margin-bottom:22px}
.matrix-wrap{max-width:1100px;margin:0 auto;overflow-x:auto;border:1px solid var(--hairline);border-radius:16px;box-shadow:var(--card-shadow-sm)}
.matrix-table{width:100%;border-collapse:collapse;background:var(--paper2);min-width:680px}
.matrix-table th{font-family:var(--mono);font-size:10.5px;letter-spacing:1.2px;text-transform:uppercase;color:var(--ink-soft);text-align:left;padding:16px 18px;border-bottom:1px solid var(--hairline);background:var(--paper)}
.matrix-table td{padding:16px 18px;border-bottom:1px solid var(--hairline);font-size:14px;color:var(--ink-soft);vertical-align:top}
.matrix-table td:first-child{font-family:var(--disp);font-weight:700;color:var(--accent)}
.matrix-table tr:last-child td{border-bottom:none}
.matrix-pill{display:inline-block;font-size:12px;color:var(--muted);background:var(--paper);border:1px solid var(--hairline);border-radius:999px;padding:4px 10px;margin:2px 4px 2px 0}

/* ───────── CLOSING CTA ───────── */
.cta-section{text-align:center;background:var(--paper2);margin:0 clamp(20px,6vw,80px);border-radius:28px;border:1px solid var(--hairline);box-shadow:var(--card-shadow)}
.cta-section .section-label{justify-content:center}
.cta-section .section-sub{margin:0 auto 28px}
.cta-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.cta-footnote{font-family:var(--mono);font-size:11.5px;letter-spacing:.5px;color:var(--muted);margin-top:22px}

/* product-page primary button takes the accent */
.prod .btn.primary{background:var(--accent);color:#fff;box-shadow:0 10px 26px var(--accent-soft)}
.prod .btn.primary:hover{background:var(--accent-2)}
body.prod-ls .btn.primary{color:#06210f}

/* reveal-delay aliases used by product markup */
.reveal.reveal-delay-1{transition-delay:.08s}.reveal.reveal-delay-2{transition-delay:.16s}
.reveal.reveal-delay-3{transition-delay:.24s}.reveal.reveal-delay-4{transition-delay:.32s}

/* ───────── responsive ───────── */
@media(max-width:920px){
  .prod-hero{grid-template-columns:1fr;gap:36px}
  .mech-section .mech-grid{grid-template-columns:1fr;gap:32px}
  .proof-grid{grid-template-columns:1fr 1fr}
  .module-grid{grid-template-columns:1fr 1fr}
  .verticals-screens{grid-template-columns:1fr}
}
@media(max-width:560px){
  .prod-hero .hero-stats{grid-template-columns:1fr 1fr;gap:18px}
  .proof-grid,.module-grid{grid-template-columns:1fr}
}
