/* ============================================================
   SENTINEL — Classified / Terminal Security Landing Template
   Self-hosted. No frameworks, no CDNs, no tracking.
   1.Fonts 2.Tokens 3.Base 4.A11y 5.Layout 6.Nav 7.Buttons
   8.Hero 9.Stats 10.Features 11.Terminal 12.Steps 13.Pricing
   14.FAQ 15.Forms 16.Footer 17.404 18.Responsive 19.Motion
   ============================================================ */

/* ---------- 1. FONTS ---------- */
@font-face { font-family:"Space Mono"; src:url("../fonts/SpaceMono-Regular.woff2") format("woff2"); font-weight:400; font-display:swap; }
@font-face { font-family:"Space Mono"; src:url("../fonts/SpaceMono-Bold.woff2") format("woff2"); font-weight:700; font-display:swap; }
@font-face { font-family:"Inter"; src:url("../fonts/Inter-Regular.woff2") format("woff2"); font-weight:400; font-display:swap; }
@font-face { font-family:"Inter"; src:url("../fonts/Inter-ExtraBold.woff2") format("woff2"); font-weight:800; font-display:swap; }
@font-face { font-family:"Bebas Neue"; src:url("../fonts/BebasNeue-Regular.woff2") format("woff2"); font-weight:400; font-display:swap; }

/* ---------- 2. TOKENS ---------- */
:root {
  --green:#00ff66;
  --green-dim:#0a3d22;
  --red:#ff2d2d;
  --bg:#050505;
  --bg-2:#0a0e0b;
  --panel:#0c120d;
  --line:#15331f;
  --text:#d6f5e0;
  --text-dim:#6f8a78;
  --maxw:1140px;
  --mono:"Space Mono",ui-monospace,monospace;
  --shadow:0 0 0 1px var(--line), 0 0 40px rgba(0,255,102,0.06);
}

/* ---------- 3. BASE ---------- */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body {
  font-family:"Inter",system-ui,Arial,sans-serif;
  background-color:var(--bg);
  background-image:linear-gradient(rgba(0,255,102,0.025) 1px, transparent 1px);
  background-size:100% 3px;
  color:var(--text);
  line-height:1.6; font-size:1rem; overflow-x:hidden; min-height:100vh;
}
img { max-width:100%; height:auto; display:block; }
a { color:inherit; text-decoration:none; }
ul { list-style:none; }
h1,h2,h3 { font-family:"Bebas Neue",Impact,sans-serif; letter-spacing:1px; line-height:0.95; text-transform:uppercase; }
.mono { font-family:var(--mono); }

/* ---------- 4. A11Y ---------- */
.skip-link { position:absolute; left:8px; top:-50px; background:var(--green); color:#000; font-weight:700; padding:10px 18px; z-index:300; transition:top .2s ease; }
.skip-link:focus { top:8px; }
:focus-visible { outline:3px solid var(--green); outline-offset:3px; }
.visually-hidden { position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }

/* ---------- 5. LAYOUT ---------- */
.container { width:100%; max-width:var(--maxw); margin:0 auto; padding:0 24px; }
.section { padding:96px 0; }
.eyebrow { display:inline-block; font-family:var(--mono); font-size:.74rem; text-transform:uppercase; letter-spacing:.28em; color:var(--green); margin-bottom:18px; }
.eyebrow::before { content:"> "; }
.section-title { font-size:clamp(2.4rem,6vw,4.4rem); color:var(--text); }
.section-title .green { color:var(--green); }
.lead { color:var(--text-dim); max-width:60ch; font-size:1.05rem; }
.center { text-align:center; }
.center .lead { margin-inline:auto; }

/* ---------- 6. NAV ---------- */
.site-header { position:sticky; top:0; z-index:100; background:rgba(5,5,5,.9); backdrop-filter:blur(8px); border-bottom:1px solid var(--line); }
.nav { display:flex; align-items:center; justify-content:space-between; padding:16px 24px; max-width:var(--maxw); margin:0 auto; }
.brand { font-family:var(--mono); font-weight:700; font-size:1.3rem; color:var(--green); letter-spacing:1px; }
.brand .cursor { animation:blink 1.1s steps(1) infinite; }
@keyframes blink { 50% { opacity:0; } }
.nav-links { display:flex; align-items:center; gap:30px; }
.nav-links a { font-family:var(--mono); font-size:.78rem; text-transform:uppercase; letter-spacing:.14em; color:var(--text-dim); transition:color .2s; }
.nav-links a:hover, .nav-links a[aria-current="page"] { color:var(--green); }
.nav-toggle { display:none; background:none; border:1px solid var(--line); color:var(--green); width:44px; height:44px; font-size:1.2rem; cursor:pointer; }

/* ---------- 7. BUTTONS ---------- */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; font-family:var(--mono); font-weight:700; font-size:.85rem; text-transform:uppercase; letter-spacing:.1em; padding:15px 28px; border:1px solid var(--green); cursor:pointer; transition:all .2s ease; }
.btn-solid { background:var(--green); color:#021; }
.btn-solid:hover { box-shadow:0 0 24px rgba(0,255,102,0.5); }
.btn-ghost { background:transparent; color:var(--green); }
.btn-ghost:hover { background:var(--green-dim); }
.btn-danger { background:transparent; color:var(--red); border-color:var(--red); }
.btn-danger:hover { background:rgba(255,45,45,0.12); }
.btn-block { width:100%; }

/* ---------- 8. HERO ---------- */
.hero { padding:72px 0; }
.classified-bar { display:inline-flex; align-items:center; gap:10px; border:2px solid var(--red); color:var(--red); font-family:var(--mono); font-weight:700; font-size:.78rem; letter-spacing:.3em; padding:6px 14px; margin-bottom:28px; transform:rotate(-1deg); }
.hero h1 { font-size:clamp(3.4rem,11vw,7rem); color:var(--green); text-shadow:0 0 30px rgba(0,255,102,0.25); margin-bottom:16px; }
.hero .glitch-sub { font-family:var(--mono); background:var(--green-dim); color:var(--green); display:inline-block; padding:6px 14px; font-size:.9rem; letter-spacing:.1em; }
.hero p.tagline { color:var(--text-dim); font-size:1.2rem; max-width:48ch; margin:26px 0 32px; }
.hero-actions { display:flex; gap:14px; flex-wrap:wrap; }
.memo { font-family:var(--mono); color:var(--text-dim); font-size:.82rem; margin-top:26px; border-left:2px solid var(--green); padding-left:14px; }

/* ---------- 9. STATS ---------- */
.stats { display:grid; grid-template-columns:repeat(4,1fr); gap:0; border:1px solid var(--line); margin-top:54px; }
.stat-box { padding:22px; border-right:1px solid var(--line); background:var(--panel); }
.stat-box:last-child { border-right:0; }
.stat-box b { display:block; font-family:var(--mono); font-size:.7rem; text-transform:uppercase; letter-spacing:.16em; color:var(--text-dim); margin-bottom:8px; }
.stat-box span { font-family:var(--mono); color:var(--green); font-weight:700; font-size:.95rem; }

/* ---------- 10. FEATURES ---------- */
.feature-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.feature { background:var(--panel); padding:32px; transition:background .2s; }
.feature:hover { background:var(--bg-2); }
.feature .ico { font-family:var(--mono); color:var(--green); font-size:.9rem; border:1px solid var(--green); display:inline-block; padding:4px 10px; margin-bottom:18px; }
.feature h3 { font-size:1.6rem; color:var(--text); margin-bottom:10px; }
.feature p { color:var(--text-dim); font-size:.95rem; }

/* ---------- 11. TERMINAL READOUT ---------- */
.terminal { border:1px solid var(--green); background:#000; box-shadow:var(--shadow); }
.terminal-bar { display:flex; align-items:center; gap:8px; padding:12px 16px; border-bottom:1px solid var(--line); }
.terminal-bar .d { width:11px; height:11px; border-radius:50%; background:var(--text-dim); }
.terminal-bar .d.g { background:var(--green); }
.terminal-bar .d.r { background:var(--red); }
.terminal-bar .ttl { margin-left:auto; font-family:var(--mono); font-size:.72rem; color:var(--text-dim); letter-spacing:.1em; }
.terminal-body { padding:26px; font-family:var(--mono); font-size:.9rem; line-height:1.8; }
.terminal-body .line .p { color:var(--green); }
.terminal-body .muted { color:var(--text-dim); }
.terminal-body .ok { color:var(--green); }
.terminal-body .warn { color:var(--red); }
.terminal-body .out { color:var(--text); }

/* ---------- 12. STEPS ---------- */
.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; counter-reset:step; }
.step { border:1px solid var(--line); background:var(--panel); padding:28px; }
.step .num { font-family:var(--mono); color:var(--green); font-size:.8rem; letter-spacing:.2em; }
.step h3 { font-size:1.5rem; color:var(--text); margin:10px 0 8px; }
.step p { color:var(--text-dim); font-size:.95rem; }

/* ---------- 13. PRICING ---------- */
.prices { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; align-items:stretch; }
.tier { border:1px solid var(--line); background:var(--panel); padding:34px; display:flex; flex-direction:column; }
.tier.hot { border-color:var(--green); box-shadow:var(--shadow); }
.tier .name { font-family:var(--mono); font-size:.78rem; text-transform:uppercase; letter-spacing:.2em; color:var(--green); }
.tier .amt { font-family:"Bebas Neue",Impact,sans-serif; font-size:3.6rem; line-height:.9; color:var(--text); margin:10px 0; }
.tier .amt small { font-family:var(--mono); font-size:.85rem; color:var(--text-dim); }
.tier ul { margin:16px 0 24px; }
.tier li { font-family:var(--mono); font-size:.85rem; color:var(--text-dim); padding:8px 0; border-bottom:1px solid var(--line); }
.tier li::before { content:"[ok] "; color:var(--green); }
.tier .btn { margin-top:auto; }

/* ---------- 14. FAQ ---------- */
.faq { max-width:820px; margin:0 auto; }
.faq-item { border:1px solid var(--line); margin-bottom:12px; background:var(--panel); }
.faq-q { width:100%; text-align:left; background:none; border:none; font-family:var(--mono); font-weight:700; font-size:1rem; color:var(--text); padding:20px 22px; cursor:pointer; display:flex; justify-content:space-between; gap:14px; align-items:center; }
.faq-q .sign { color:var(--green); font-family:var(--mono); font-size:1.2rem; transition:transform .2s; }
.faq-q[aria-expanded="true"] .sign { transform:rotate(45deg); }
.faq-a { max-height:0; overflow:hidden; transition:max-height .3s ease; }
.faq-a div { padding:0 22px 20px; color:var(--text-dim); }

/* ---------- CTA ---------- */
.cta { border:1px solid var(--green); background:linear-gradient(180deg,var(--panel),#000); text-align:center; padding:72px 24px; box-shadow:var(--shadow); }
.cta h2 { font-size:clamp(2.4rem,7vw,4.6rem); color:var(--green); margin-bottom:16px; }
.cta p { color:var(--text-dim); max-width:46ch; margin:0 auto 28px; }

/* ---------- 15. FORMS ---------- */
.page-hero { padding:64px 0 40px; border-bottom:1px solid var(--line); }
.page-hero h1 { font-size:clamp(2.8rem,8vw,5rem); color:var(--green); }
.prose { max-width:760px; }
.prose h2 { font-size:1.8rem; color:var(--text); margin:36px 0 12px; }
.prose p, .prose li { color:var(--text-dim); margin-bottom:12px; }
.prose ul { padding-left:22px; }
.prose ul li { list-style:square; }
.contact-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:44px; align-items:start; }
.field { margin-bottom:18px; }
.field label { display:block; font-family:var(--mono); font-size:.74rem; text-transform:uppercase; letter-spacing:.16em; color:var(--text-dim); margin-bottom:8px; }
.field label::before { content:"> "; color:var(--green); }
.field input, .field textarea { width:100%; background:#000; border:1px solid var(--line); color:var(--text); padding:13px 15px; font-family:var(--mono); font-size:.95rem; }
.field input:focus, .field textarea:focus { outline:none; border-color:var(--green); box-shadow:0 0 0 3px rgba(0,255,102,0.15); }
.form-status { margin-top:14px; font-family:var(--mono); font-size:.85rem; color:var(--green); }
.form-status:empty { display:none; }
.form-note { color:var(--text-dim); font-size:.84rem; margin-top:10px; font-family:var(--mono); }
.info { border:1px solid var(--line); background:var(--panel); padding:26px; }
.info li { padding:14px 0; border-bottom:1px solid var(--line); font-family:var(--mono); font-size:.88rem; }
.info .k { display:block; font-size:.7rem; text-transform:uppercase; letter-spacing:.16em; color:var(--green); margin-bottom:4px; }

/* ---------- 16. FOOTER ---------- */
.site-footer { border-top:1px solid var(--line); padding:64px 0 28px; margin-top:40px; background:var(--bg-2); }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:36px; margin-bottom:44px; }
.footer-brand .brand { font-size:1.6rem; }
.footer-brand p { color:var(--text-dim); font-size:.9rem; margin-top:12px; max-width:34ch; }
.footer-col h4 { font-family:var(--mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.16em; color:var(--green); margin-bottom:14px; }
.footer-col a { display:block; color:var(--text-dim); font-family:var(--mono); font-size:.85rem; padding:6px 0; transition:color .2s; }
.footer-col a:hover { color:var(--green); }
.footer-bottom { border-top:1px solid var(--line); padding-top:22px; text-align:center; font-family:var(--mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.2em; color:var(--text-dim); }

/* ---------- 17. 404 ---------- */
.error-page { min-height:66vh; display:grid; place-items:center; text-align:center; padding:70px 24px; }
.error-page .code { font-family:"Bebas Neue",Impact,sans-serif; font-size:clamp(6rem,24vw,15rem); line-height:.8; color:var(--green); text-shadow:0 0 40px rgba(0,255,102,0.3); }
.error-page .mono { color:var(--red); }

/* ---------- 18. RESPONSIVE ---------- */
@media (max-width:900px){
  .stats { grid-template-columns:repeat(2,1fr); }
  .stat-box:nth-child(2){ border-right:0; }
  .feature-grid, .steps, .prices { grid-template-columns:1fr; }
  .contact-grid { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:640px){
  .nav-links { position:fixed; inset:62px 0 auto 0; flex-direction:column; gap:0; background:var(--bg); border-bottom:1px solid var(--line); padding:6px 0; transform:translateY(-130%); transition:transform .3s ease; }
  .nav-links.open { transform:translateY(0); }
  .nav-links a { padding:15px 24px; width:100%; }
  .nav-toggle { display:inline-flex; align-items:center; justify-content:center; }
  .section { padding:64px 0; }
  .stats { grid-template-columns:1fr; }
  .stat-box { border-right:0; }
  .footer-grid { grid-template-columns:1fr; }
}

/* ---------- 19. REDUCED MOTION ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}


/* ============================================================
   21. MOBILE REFINEMENTS (overflow + rhythm, baked in)
   ============================================================ */
html, body { overflow-x:clip; }
.search-bar input, .field input, .field textarea, .field select { min-width:0; }

@media (max-width:900px){
  .pdp { grid-template-columns:1fr; padding:44px 20px; gap:34px; }
  .pdp-media { position:static; }
  .product-grid { grid-template-columns:1fr 1fr; }
  .cart-line { grid-template-columns:80px 1fr; }
  .cart-line .th { width:80px; }
  .cart-line .qcol, .cart-line .lp { grid-column:2; }
  .cart-wrap, .acct-wrap, .article-body { padding:44px 20px; }
  .page-head { padding:40px 0 30px; }
  .hero { padding:48px 0; }
}
@media (max-width:640px){
  .product-grid { grid-template-columns:1fr; }
  .page-head h1 { font-size:clamp(2.2rem,10vw,3.2rem); }
  .search-bar { padding:0 20px; }
  .search-bar button { padding:0 16px; }
  .terminal-body { padding:18px; font-size:.8rem; }
  .pdp-info h1 { font-size:clamp(2rem,9vw,2.8rem); }
  .cta { padding:52px 18px; }
  .btn { padding:13px 22px; }
}
