/*
Theme Name: Kestrel
Theme URI: https://www.kestrelaudit.com/
Author: Ontrepreneur
Author URI: https://www.kestrelaudit.com/
Description: Marketing theme for Kestrel — the Google Ads health indicator. Clean, self-serve SaaS design with an animated health-score hero, harmonised with the Kestrel portal so the marketing site and the logged-in app read as one product. Pairs with the Kestrel plugin (renders the [adlens_portal], [adlens_login], [adlens_register] pages inside the theme chrome).
Version: 1.7.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: adlens
*/

/* =====================================================================
   Design tokens
   Palette leads with the Kestrel portal blue→violet (cohesion with the
   logged-in app). Swap --brand / --violet to rebrand the whole site.
   ===================================================================== */
:root{
  --ink:#0f1729; --ink-soft:#33405a; --muted:#667087;
  --bg:#ffffff; --bg-alt:#f5f8fc; --panel:#ffffff;
  --line:#e7ecf3; --hair:#eef2f7;
  --brand:#2f6cf6; --brand-deep:#1b4fd1; --brand-soft:#e9f0ff;
  --violet:#6a3ec8; --violet-soft:#f0ebfb;
  --good:#10996a; --good-soft:#e6f6ef;
  --warn:#e0a02e; --warn-soft:#fdf3e2;
  --crit:#e5573f; --crit-soft:#fdece9;
  --grad:linear-gradient(135deg,#2f6cf6 0%,#6a3ec8 100%);
  --grad-soft:linear-gradient(135deg,#eaf1ff 0%,#f2ecfc 100%);
  --radius:18px; --radius-sm:12px; --radius-lg:26px;
  --shadow-sm:0 1px 3px rgba(15,23,41,.05), 0 1px 2px rgba(15,23,41,.04);
  --shadow:0 18px 50px -22px rgba(28,42,90,.30);
  --shadow-lg:0 40px 90px -30px rgba(28,42,90,.42);
  --maxw:1140px;
  --display:'Space Grotesk',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --body:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
}

/* =====================================================================
   Base
   ===================================================================== */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }
body{
  margin:0; background:var(--bg); color:var(--ink-soft);
  font-family:var(--body); font-size:17px; line-height:1.6;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
h1,h2,h3,h4{ font-family:var(--display); color:var(--ink); line-height:1.1; margin:0 0 .4em; font-weight:700; letter-spacing:-.02em; }
a{ color:var(--brand); text-decoration:none; }
img{ max-width:100%; height:auto; display:block; }
.al-wrap{ max-width:var(--maxw); margin:0 auto; padding:0 24px; }
.al-eyebrow{
  display:inline-flex; align-items:center; gap:7px; font-family:var(--body);
  font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  color:var(--brand-deep); background:var(--brand-soft); padding:6px 14px; border-radius:999px;
}
.al-eyebrow .al-spark{ color:var(--violet); }
.al-section{ padding:96px 0; }
.al-section.alt{ background:var(--bg-alt); }
.al-center{ text-align:center; }
.al-lead{ font-size:19px; color:var(--muted); max-width:620px; }
.al-center .al-lead{ margin-left:auto; margin-right:auto; }
.al-h2{ font-size:clamp(30px,4.2vw,46px); }
.al-kicker{ font-size:13px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); }

/* Buttons */
.al-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--body); font-weight:700; font-size:16px; line-height:1;
  padding:15px 26px; border-radius:12px; border:1px solid transparent; cursor:pointer;
  transition:transform .15s, box-shadow .15s, background .15s, color .15s; white-space:nowrap;
}
.al-btn-primary{ background:var(--brand); color:#fff; box-shadow:0 8px 22px -8px rgba(47,108,246,.7); }
.al-btn-primary:hover{ transform:translateY(-2px); box-shadow:0 14px 30px -10px rgba(47,108,246,.75); color:#fff; }
.al-btn-grad{ background:var(--grad); color:#fff; box-shadow:0 10px 26px -8px rgba(86,72,210,.6); }
.al-btn-grad:hover{ transform:translateY(-2px); color:#fff; box-shadow:0 16px 34px -10px rgba(86,72,210,.66); }
.al-btn-ghost{ background:#fff; color:var(--ink); border-color:var(--line); box-shadow:var(--shadow-sm); }
.al-btn-ghost:hover{ transform:translateY(-2px); border-color:#cfd8e6; color:var(--ink); }
.al-btn-lg{ padding:17px 30px; font-size:17px; }

/* =====================================================================
   Header
   ===================================================================== */
.al-header{
  position:sticky; top:0; z-index:50; background:rgba(255,255,255,.82);
  backdrop-filter:saturate(1.4) blur(12px); border-bottom:1px solid transparent;
  transition:border-color .2s, box-shadow .2s;
}
.al-header.scrolled{ border-color:var(--line); box-shadow:0 6px 20px -16px rgba(28,42,90,.4); }
.al-header-inner{ display:flex; align-items:center; gap:28px; height:72px; }
.al-logo{ display:inline-flex; align-items:center; gap:9px; font-family:var(--display); font-weight:700; font-size:21px; color:var(--ink); letter-spacing:-.02em; }
.al-logo-mark{
  width:30px; height:30px; display:grid; place-items:center; border-radius:9px;
  background:var(--grad); color:#fff; font-size:17px; box-shadow:0 4px 12px -2px rgba(47,108,246,.5);
}
.al-nav{ display:flex; align-items:center; gap:28px; margin-left:8px; }
.al-nav a{ color:var(--ink-soft); font-weight:600; font-size:15px; }
.al-nav a:hover{ color:var(--brand); }
.al-header-cta{ margin-left:auto; display:flex; align-items:center; gap:14px; }
.al-header-cta .al-login{ color:var(--ink-soft); font-weight:600; font-size:15px; }
.al-header-cta .al-login:hover{ color:var(--brand); }
.al-burger{ display:none; background:none; border:0; cursor:pointer; padding:8px; }
.al-burger span{ display:block; width:22px; height:2px; background:var(--ink); margin:4px 0; border-radius:2px; transition:.2s; }

/* =====================================================================
   Hero
   ===================================================================== */
.al-hero{ position:relative; overflow:hidden; padding:84px 0 96px; }
.al-hero::before{
  content:''; position:absolute; inset:0; z-index:-1;
  background:radial-gradient(1100px 520px at 78% -8%, var(--violet-soft), transparent 60%),
             radial-gradient(900px 480px at 8% 4%, var(--brand-soft), transparent 58%);
}
.al-hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:54px; align-items:center; }
.al-hero h1{ font-size:clamp(38px,5.2vw,60px); margin:18px 0 20px; }
.al-hero h1 .al-grad-text{
  background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.al-hero-sub{ font-size:20px; color:var(--ink-soft); max-width:520px; margin-bottom:30px; }
.al-hero-cta{ display:flex; flex-wrap:wrap; gap:14px; margin-bottom:22px; }
.al-hero-trust{ display:flex; flex-wrap:wrap; gap:18px; font-size:14px; color:var(--muted); }
.al-hero-trust span{ display:inline-flex; align-items:center; gap:6px; }
.al-tick{ color:var(--good); font-weight:800; }

/* Hero score card (the signature element) */
.al-scorecard{
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg); padding:28px; position:relative;
}
.al-scorecard-top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.al-scorecard-top .t{ font-family:var(--display); font-weight:700; color:var(--ink); }
.al-livedot{ display:inline-flex; align-items:center; gap:7px; font-size:12px; font-weight:700; color:var(--good); }
.al-livedot i{ width:8px; height:8px; border-radius:50%; background:var(--good); box-shadow:0 0 0 4px var(--good-soft); animation:al-pulse 2s infinite; }
@keyframes al-pulse{ 0%,100%{ opacity:1 } 50%{ opacity:.4 } }
.al-gauge{ display:flex; align-items:center; gap:22px; }
.al-gauge svg{ width:132px; height:132px; flex:0 0 auto; transform:rotate(-90deg); }
.al-gauge .ring-bg{ fill:none; stroke:var(--hair); stroke-width:13; }
.al-gauge .ring-fg{ fill:none; stroke:url(#alGrad); stroke-width:13; stroke-linecap:round; transition:stroke-dashoffset 1.6s cubic-bezier(.2,.7,.2,1); }
.al-gauge-num{ display:flex; flex-direction:column; }
.al-gauge-num b{ font-family:var(--display); font-size:46px; font-weight:700; color:var(--ink); line-height:1; }
.al-gauge-num b small{ font-size:18px; color:var(--muted); font-weight:600; }
.al-gauge-num .lab{ color:var(--good); font-weight:700; margin-top:4px; }
.al-chips{ margin-top:22px; display:grid; gap:9px; }
.al-chip{ display:flex; align-items:center; gap:10px; padding:11px 14px; border:1px solid var(--line); border-radius:11px; font-size:14px; font-weight:600; color:var(--ink-soft); background:#fff; }
.al-chip .dot{ width:9px; height:9px; border-radius:50%; flex:0 0 auto; }
.al-chip .dot.ok{ background:var(--good); } .al-chip .dot.warn{ background:var(--warn); } .al-chip .dot.crit{ background:var(--crit); }
.al-chip .meta{ margin-left:auto; font-size:12px; color:var(--muted); font-weight:600; }

/* =====================================================================
   Logos / scan strip
   ===================================================================== */
.al-strip{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--bg-alt); padding:26px 0; }
.al-strip-inner{ display:flex; align-items:center; justify-content:center; gap:14px 34px; flex-wrap:wrap; font-weight:600; color:var(--muted); font-size:15px; }
.al-strip-inner b{ color:var(--ink); }
.al-strip .tag{ display:inline-flex; align-items:center; gap:8px; }

/* =====================================================================
   Problem grid
   ===================================================================== */
.al-grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.al-grid-2{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.al-card{
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius);
  padding:26px; box-shadow:var(--shadow-sm); transition:transform .16s, box-shadow .16s;
}
.al-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
.al-card h3{ font-size:19px; margin:14px 0 8px; }
.al-card p{ margin:0; color:var(--muted); font-size:15.5px; }
.al-card-ico{
  width:46px; height:46px; border-radius:12px; display:grid; place-items:center; font-size:21px;
  background:var(--grad-soft); color:var(--brand-deep);
}
.al-card.warnico .al-card-ico{ background:var(--crit-soft); color:var(--crit); }

/* Section heads */
.al-head{ max-width:680px; margin:0 0 48px; }
.al-center .al-head{ margin-left:auto; margin-right:auto; }
.al-head .al-h2{ margin-top:14px; }

/* =====================================================================
   How it works
   ===================================================================== */
.al-steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; counter-reset:step; }
.al-step{ position:relative; padding:30px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; box-shadow:var(--shadow-sm); }
.al-step .num{ font-family:var(--display); font-weight:700; font-size:15px; color:#fff; background:var(--grad); width:38px; height:38px; border-radius:11px; display:grid; place-items:center; margin-bottom:16px; }
.al-step h3{ font-size:20px; }
.al-step p{ color:var(--muted); margin:6px 0 0; font-size:15.5px; }

/* =====================================================================
   Feature categories
   ===================================================================== */
.al-feat{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.al-feat-col{ border:1px solid var(--line); border-radius:var(--radius); background:#fff; padding:28px; box-shadow:var(--shadow-sm); }
.al-feat-col .cat{ display:inline-flex; align-items:center; gap:8px; font-family:var(--display); font-weight:700; font-size:18px; color:var(--ink); margin-bottom:4px; }
.al-feat-col .catdot{ width:11px; height:11px; border-radius:50%; }
.al-feat-col p.sub{ color:var(--muted); font-size:14.5px; margin:0 0 16px; }
.al-feat-list{ list-style:none; margin:0; padding:0; }
.al-feat-list li{ display:flex; gap:10px; padding:7px 0; font-size:15px; color:var(--ink-soft); border-top:1px solid var(--hair); }
.al-feat-list li:first-child{ border-top:0; }
.al-feat-list li .fi{ color:var(--brand); font-weight:800; }

/* =====================================================================
   Done-for-you band
   ===================================================================== */
.al-dfy{ position:relative; overflow:hidden; border-radius:var(--radius-lg); background:var(--ink); color:#fff; padding:54px; }
.al-dfy::before{ content:''; position:absolute; inset:0; background:radial-gradient(700px 380px at 90% 10%, rgba(106,62,200,.45), transparent 60%), radial-gradient(700px 380px at 0% 110%, rgba(47,108,246,.4), transparent 55%); }
.al-dfy-inner{ position:relative; display:grid; grid-template-columns:1.3fr .7fr; gap:34px; align-items:center; }
.al-dfy h2{ color:#fff; font-size:clamp(26px,3.4vw,38px); }
.al-dfy p{ color:#c7cede; font-size:18px; margin:0 0 8px; }
.al-dfy .al-eyebrow{ background:rgba(255,255,255,.12); color:#dfe6ff; }
.al-dfy-stat{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); border-radius:var(--radius); padding:24px; text-align:center; }
.al-dfy-stat .big{ font-family:var(--display); font-size:50px; font-weight:700; line-height:1; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.al-dfy-stat .lab{ color:#aeb7cc; font-size:14px; margin-top:8px; }

/* =====================================================================
   Pricing
   ===================================================================== */
.al-price{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; align-items:start; }
.al-plan{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:30px; box-shadow:var(--shadow-sm); position:relative; }
.al-plan.pop{ border-color:transparent; box-shadow:var(--shadow); outline:2px solid var(--brand); }
.al-plan .tag{ position:absolute; top:-12px; left:50%; transform:translateX(-50%); background:var(--grad); color:#fff; font-size:12px; font-weight:700; padding:5px 14px; border-radius:999px; letter-spacing:.03em; }
.al-plan .pname{ font-family:var(--display); font-weight:700; font-size:20px; color:var(--ink); }
.al-plan .pdesc{ color:var(--muted); font-size:14.5px; margin:4px 0 16px; min-height:42px; }
.al-plan .price{ font-family:var(--display); font-size:42px; font-weight:700; color:var(--ink); line-height:1; }
.al-plan .price small{ font-size:16px; color:var(--muted); font-weight:600; }
.al-plan .plist{ list-style:none; margin:20px 0 24px; padding:0; }
.al-plan .plist li{ display:flex; gap:10px; padding:8px 0; font-size:15px; color:var(--ink-soft); }
.al-plan .plist li .fi{ color:var(--good); font-weight:800; }
.al-plan .al-btn{ width:100%; }
.al-price-note{ text-align:center; color:var(--muted); font-size:14.5px; margin-top:26px; }

/* =====================================================================
   FAQ
   ===================================================================== */
.al-faq{ max-width:780px; margin:0 auto; }
.al-faq details{ border:1px solid var(--line); border-radius:var(--radius-sm); background:#fff; margin-bottom:12px; box-shadow:var(--shadow-sm); overflow:hidden; }
.al-faq summary{ cursor:pointer; list-style:none; padding:20px 22px; font-family:var(--display); font-weight:700; color:var(--ink); font-size:17px; display:flex; align-items:center; justify-content:space-between; }
.al-faq summary::-webkit-details-marker{ display:none; }
.al-faq summary .pm{ color:var(--brand); font-size:22px; transition:transform .2s; line-height:1; }
.al-faq details[open] summary .pm{ transform:rotate(45deg); }
.al-faq .ans{ padding:0 22px 20px; color:var(--muted); font-size:15.5px; }

/* =====================================================================
   Final CTA
   ===================================================================== */
.al-cta{ text-align:center; }
.al-cta-box{ background:var(--grad); border-radius:var(--radius-lg); padding:62px 40px; color:#fff; position:relative; overflow:hidden; box-shadow:var(--shadow-lg); }
.al-cta-box::after{ content:''; position:absolute; inset:0; background:radial-gradient(600px 300px at 50% -20%, rgba(255,255,255,.22), transparent 60%); }
.al-cta-box h2{ color:#fff; font-size:clamp(28px,4vw,42px); position:relative; }
.al-cta-box p{ color:rgba(255,255,255,.9); font-size:19px; max-width:560px; margin:0 auto 28px; position:relative; }
.al-cta-box .al-btn{ position:relative; background:#fff; color:var(--brand-deep); }
.al-cta-box .al-btn:hover{ background:#f1f4ff; color:var(--brand-deep); }

/* =====================================================================
   Footer
   ===================================================================== */
.al-footer{ background:var(--ink); color:#aeb7cc; padding:56px 0 30px; }
.al-footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:32px; padding-bottom:34px; border-bottom:1px solid rgba(255,255,255,.1); }
.al-footer .al-logo{ color:#fff; margin-bottom:12px; }
.al-footer p{ font-size:15px; max-width:320px; }
.al-footer h4{ color:#fff; font-size:14px; letter-spacing:.04em; text-transform:uppercase; margin:0 0 14px; }
.al-footer ul{ list-style:none; margin:0; padding:0; }
.al-footer ul li{ margin-bottom:9px; }
.al-footer ul a{ color:#aeb7cc; font-size:15px; }
.al-footer ul a:hover{ color:#fff; }
.al-footer-base{ padding-top:22px; display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; font-size:14px; color:#8893a8; }

/* =====================================================================
   Generic page (portal / login / register / content) chrome
   ===================================================================== */
.al-page{ padding:40px 0 72px; min-height:60vh; }
.al-page-narrow{ max-width:820px; margin:0 auto; }
.al-page h1.entry-title{ font-size:34px; margin-bottom:18px; }
.al-page p{ margin:0 0 1em; }
body.adlens-portal-page .al-page{ padding-top:24px; }

/* Scroll reveal */
.al-reveal{ opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease; }
.al-reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .al-reveal{ opacity:1; transform:none; transition:none; } }

/* =====================================================================
   Responsive
   ===================================================================== */
@media (max-width:980px){
  .al-hero-grid{ grid-template-columns:1fr; gap:40px; }
  .al-scorecard{ max-width:440px; }
  .al-grid-3,.al-steps,.al-feat,.al-price{ grid-template-columns:1fr 1fr; }
  .al-dfy-inner{ grid-template-columns:1fr; }
  .al-footer-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:760px){
  .al-nav,.al-header-cta .al-login{ display:none; }
  .al-burger{ display:block; }
  .al-nav.open{
    display:flex; flex-direction:column; position:absolute; top:72px; left:0; right:0;
    background:#fff; border-bottom:1px solid var(--line); padding:18px 24px; gap:16px; box-shadow:var(--shadow);
  }
  .al-section{ padding:64px 0; }
  .al-grid-3,.al-grid-2,.al-steps,.al-feat,.al-price,.al-footer-grid{ grid-template-columns:1fr; }
  .al-dfy{ padding:36px 26px; }
  .al-cta-box{ padding:44px 24px; }
  body{ font-size:16px; }
}

/* =====================================================================
   Module list (all 40 checks)
   ===================================================================== */
.al-modcat{ margin-bottom:34px; }
.al-modcat-head{ display:flex; align-items:center; gap:12px; margin-bottom:18px; flex-wrap:wrap; }
.al-modcat-dot{ width:13px; height:13px; border-radius:50%; flex:0 0 auto; }
.al-modcat-name{ font-family:var(--display); font-weight:700; font-size:22px; color:var(--ink); }
.al-modcat-sub{ color:var(--muted); font-size:15px; }
.al-modcat-count{ margin-left:auto; font-size:12px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); background:#fff; border:1px solid var(--line); padding:5px 12px; border-radius:999px; }
.al-modgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.al-moditem{
  display:flex; gap:12px; align-items:flex-start; background:#fff; border:1px solid var(--line);
  border-radius:var(--radius-sm); padding:15px 16px; box-shadow:var(--shadow-sm);
  transition:transform .14s, box-shadow .14s;
}
.al-moditem:hover{ transform:translateY(-2px); box-shadow:var(--shadow); }
.al-moditem-fi{ font-weight:800; line-height:1.5; flex:0 0 auto; }
.al-moditem b{ display:block; font-family:var(--display); font-weight:700; color:var(--ink); font-size:15.5px; letter-spacing:-.01em; }
.al-moditem span{ display:block; color:var(--muted); font-size:13.5px; margin-top:2px; line-height:1.45; }

/* =====================================================================
   Score bands
   ===================================================================== */
.al-band{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:26px; box-shadow:var(--shadow-sm); transition:transform .16s, box-shadow .16s; }
.al-band:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
.al-band-bar{ height:10px; border-radius:999px; background:var(--hair); overflow:hidden; }
.al-band-bar span{ display:block; height:100%; border-radius:999px; }
.al-band-range{ font-family:var(--display); font-weight:700; font-size:24px; margin:16px 0 2px; }
.al-band h3{ font-size:19px; margin:0 0 6px; }
.al-band p{ margin:0; color:var(--muted); font-size:15px; }

@media (max-width:980px){
  .al-modgrid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:760px){
  .al-modgrid{ grid-template-columns:1fr; }
  .al-modcat-count{ margin-left:0; }
}

/* ---- Chrome-free portal shell (logged-in app) ---- */
body.al-app-bare{ margin:0; background:#fff; }
body.al-app-bare .al-app-main{ min-height:100vh; }

/* =====================================================================
   Dark theme — Unchurnify-style navy canvas (v1.7.0)
   Appended layer: redefines colour tokens + darkens hardcoded surfaces.
   ===================================================================== */
:root{
  --ink:#eef2f9; --ink-soft:#aab6cb; --muted:#8493a8;
  --bg:#0a1018; --bg-alt:#0e1726; --panel:#121b2c;
  --line:#23304a; --hair:#1a2336;
  --brand:#2f6cf6; --brand-deep:#1b4fd1; --brand-soft:#16223c;
  --violet:#6a3ec8; --violet-soft:#1e1730;
  --good:#34c98a; --good-soft:#10301f;
  --warn:#e6b045; --warn-soft:#332811;
  --crit:#f2674f; --crit-soft:#371a14;
  --grad-soft:linear-gradient(135deg,#16223c 0%,#241a3d 100%);
  --shadow-sm:0 1px 2px rgba(0,0,0,.40);
  --shadow:0 18px 50px -22px rgba(0,0,0,.70);
  --shadow-lg:0 40px 90px -30px rgba(0,0,0,.75);
}
body{ background:radial-gradient(1200px 640px at 50% -14%, #0f1a2c 0%, #0a1018 58%); color:var(--ink-soft); }
.al-header{ background:rgba(10,16,24,.82); border-bottom:1px solid var(--line); }
.al-btn-ghost{ background:rgba(255,255,255,.05); color:var(--ink); border-color:var(--line); }
.al-btn-ghost:hover{ background:rgba(255,255,255,.08); border-color:#33415f; color:var(--ink); }
.al-eyebrow{ color:#86abff; background:var(--brand-soft); }
.al-chip{ background:var(--panel); }
.al-step{ background:var(--panel); }
.al-feat-col{ background:var(--panel); }
.al-card{ background:var(--panel); }
.al-card-ico{ background:var(--brand-soft); color:#86abff; }
.al-card.warnico .al-card-ico{ background:var(--crit-soft); color:var(--crit); }
.al-scorecard{ background:var(--panel); }
.al-plan{ background:var(--panel); }
.al-faq details{ background:var(--panel); }
.al-band{ background:var(--panel); }
.al-moditem{ background:var(--panel); }
.al-modcat-count{ background:var(--panel); }
.al-dfy{ background:linear-gradient(135deg,#141d30,#0e1726); border:1px solid var(--line); }
.al-footer{ background:#0c1422; color:#8fa0bb; border-top:1px solid var(--line); }
.al-nav.open{ background:var(--panel); border-bottom:1px solid var(--line); }
.al-hero::before{
  background:radial-gradient(1100px 520px at 78% -8%, rgba(106,62,200,.30), transparent 60%),
            radial-gradient(900px 480px at 8% 14%, rgba(47,108,246,.20), transparent 55%);
}
body.al-app-bare{ background:#0a1018; }
