/* © 2026 PremiumAV Private Limited
   ============================================================================
   public.css — MayaBooks PUBLIC marketing site (homepage, about, contact,
   terms, privacy, register). 100% original CSS on vanilla Bootstrap 5.

   v2 "premium" pass: aurora gradient hero, glassmorphism, gradient accent
   system (indigo→violet base + gold + teal), real product screenshots in
   tilted browser frames, micro-interactions and scroll-reveal — all pure
   CSS + one tiny IntersectionObserver in public_foot.php. No webfonts, no
   JS libraries, no external assets: premium but FAST.

   Self-contained on purpose: public pages must stay lean and never pull in
   the app shell, so the core TOKENS below mirror the :root block in app.css
   (single visual system, two independent stylesheets). If a token changes
   in app.css, change it here too. The --pub-* tokens are marketing-only
   extensions (violet/gold/aurora) and deliberately do NOT exist in the app.
   ============================================================================ */

:root{
    /* ── mirrored app.css tokens ── */
    --mb-primary-050:#f1f4fd;
    --mb-primary-100:#e2e9fb;
    --mb-primary-200:#c3d0f5;
    --mb-primary-300:#93aaec;
    --mb-primary-500:#4a69df;
    --mb-primary-600:#3b5bdb;
    --mb-primary-700:#2f4ac0;
    --mb-primary-800:#263c9c;
    --mb-primary-900:#1e2f77;
    --mb-accent:#0e8074;
    --mb-accent-soft:#dcf2ef;
    --mb-bg:#f4f6fa;
    --mb-surface:#ffffff;
    --mb-surface-2:#f8fafc;
    --mb-surface-3:#eef2f7;
    --mb-border:#e4e8ef;
    --mb-border-strong:#cbd3de;
    --mb-text-strong:#1a2332;
    --mb-text:#3e4c63;
    --mb-text-muted:#64748b;
    --mb-text-faint:#98a3b5;
    --mb-success:#1b7f4b;  --mb-success-soft:#e3f4ea;
    --mb-danger:#c0303f;   --mb-danger-soft:#fbe9eb;
    --mb-warning:#9a6403;  --mb-warning-soft:#fcf3dc;
    --dr:#b3362b;          --dr-soft:#f9e9e7;
    --cr:#17694d;          --cr-soft:#e2f2eb;
    --mb-font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,
                   "Helvetica Neue",Arial,"Noto Sans",sans-serif;
    --mb-font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,
                   "Liberation Mono",monospace;
    --mb-radius-sm:6px;
    --mb-radius:10px;
    --mb-radius-lg:14px;
    --mb-radius-pill:999px;
    --mb-shadow-sm:0 1px 2px rgba(26,35,50,.05),0 2px 6px rgba(26,35,50,.05);
    --mb-shadow-md:0 2px 4px rgba(26,35,50,.05),0 6px 16px rgba(26,35,50,.08);
    --mb-shadow-lg:0 4px 8px rgba(26,35,50,.06),0 16px 40px rgba(26,35,50,.14);
    --mb-focus-ring:0 0 0 3px rgba(59,91,219,.28);

    /* ── marketing-only premium extensions ── */
    --pub-violet:#6d55e8;
    --pub-violet-deep:#4b34b8;
    --pub-ink:#141a3a;            /* darkest hero/footer ink */
    --pub-ink-2:#101528;          /* footer base */
    --pub-gold:#e8b64c;
    --pub-gold-deep:#c98f1e;
    --pub-mint:#6fe0c8;           /* teal highlight on dark */
    --pub-radius-xl:20px;
    --pub-radius-2xl:26px;
    --pub-grad-cta:linear-gradient(120deg,var(--mb-primary-600) 0%,var(--pub-violet) 100%);
    --pub-grad-cta-hover:linear-gradient(120deg,var(--mb-primary-700) 0%,var(--pub-violet-deep) 100%);
    --pub-shadow-cta:0 6px 18px rgba(77,73,222,.35),0 2px 6px rgba(30,47,119,.25);
    --pub-shadow-cta-hover:0 10px 28px rgba(77,73,222,.45),0 3px 8px rgba(30,47,119,.3);
    --pub-shadow-float:0 30px 70px rgba(10,14,44,.45),0 10px 24px rgba(10,14,44,.3);
    --pub-shadow-card:0 1px 2px rgba(26,35,50,.04),0 8px 26px rgba(26,35,50,.07);
    --pub-shadow-card-hover:0 2px 6px rgba(26,35,50,.05),0 18px 44px rgba(38,60,156,.16);
}

/* ── Base ────────────────────────────────────────────────────────────────── */
.pub-body{overflow-x:hidden} /* nowrap/tilted visuals must never widen the page */
.pub-body{
    font-family:var(--mb-font-sans);
    color:var(--mb-text);
    background:var(--mb-surface);
    font-size:1rem;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
}
.pub-body h1,.pub-body h2,.pub-body h3,.pub-body h4{
    color:var(--mb-text-strong);
    font-weight:800;
    line-height:1.18;
    letter-spacing:-.015em;
}
/* Unclassed content links only — a:not([class]) keeps this from outranking
   component classes like .pub-btn-primary (a bare `.pub-body a` is 0-1-1 and
   silently beats any single-class color, which is exactly the bug it caused). */
.pub-body a:not([class]){color:var(--mb-primary-600)}
.pub-body a:not([class]):hover{color:var(--mb-primary-700)}
.pub-body :focus-visible{outline:none;box-shadow:var(--mb-focus-ring);border-radius:4px}
.pub-body img{max-width:100%;height:auto}

.pub-section{padding:5.5rem 0}
.pub-section-alt{background:linear-gradient(180deg,var(--mb-bg) 0%,#fdfdff 100%)}
.pub-kicker{
    display:inline-flex;align-items:center;gap:.45rem;
    font-size:.78rem;
    font-weight:800;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--mb-accent);
    margin-bottom:.85rem;
}
.pub-kicker::before{
    content:"";width:22px;height:2px;border-radius:2px;
    background:linear-gradient(90deg,var(--mb-accent),var(--pub-gold));
}
.pub-h2{font-size:clamp(1.75rem,3.4vw,2.45rem);margin-bottom:.8rem}
.pub-lead{color:var(--mb-text-muted);max-width:44rem;font-size:1.0625rem}

/* Gradient text accent (hero keywords, stats) */
.pub-grad-text{
    background:linear-gradient(94deg,var(--pub-mint) 0%,#a8e6f5 45%,var(--pub-gold) 100%);
    -webkit-background-clip:text;background-clip:text;
    -webkit-text-fill-color:transparent;color:transparent;
}
.pub-grad-text-ink{
    background:linear-gradient(94deg,var(--mb-primary-600),var(--pub-violet) 60%,var(--pub-gold-deep));
    -webkit-background-clip:text;background-clip:text;
    -webkit-text-fill-color:transparent;color:transparent;
}

/* ── Scroll reveal (fade-up; JS in public_foot.php adds .rv-in) ─────────── */
.rv{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.16,.84,.44,1),transform .7s cubic-bezier(.16,.84,.44,1)}
.rv.rv-in{opacity:1;transform:none}
.rv-d1{transition-delay:.08s}.rv-d2{transition-delay:.16s}.rv-d3{transition-delay:.24s}
@media (prefers-reduced-motion: reduce){
    .rv{opacity:1;transform:none;transition:none}
}

/* ── Buttons ─────────────────────────────────────────────────────────────── */
.pub-btn-primary{
    background:var(--pub-grad-cta);
    border:0;
    color:#fff;
    font-weight:700;
    padding:.6rem 1.35rem;
    border-radius:12px;
    box-shadow:var(--pub-shadow-cta);
    transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
}
.pub-btn-primary:hover,.pub-btn-primary:focus{
    background:var(--pub-grad-cta-hover);
    color:#fff;
    transform:translateY(-2px);
    box-shadow:var(--pub-shadow-cta-hover);
}
.pub-btn-primary:active{transform:translateY(0)}
.pub-btn-lg{padding:.85rem 1.8rem;font-size:1.0625rem;border-radius:14px}
.pub-btn-outline{
    background:#fff;
    border:1px solid var(--mb-border-strong);
    color:var(--mb-text-strong);
    font-weight:600;
    padding:.55rem 1.25rem;
    border-radius:12px;
    transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,color .18s ease;
}
.pub-btn-outline:hover{
    border-color:var(--mb-primary-500);color:var(--mb-primary-600);
    transform:translateY(-2px);box-shadow:var(--mb-shadow-md);
}
.pub-btn-hero-ghost{
    background:rgba(255,255,255,.07);
    border:1px solid rgba(255,255,255,.32);
    color:#fff;
    font-weight:600;
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    border-radius:14px;
    transition:transform .18s ease,background .18s ease,border-color .18s ease;
}
.pub-btn-hero-ghost:hover{
    background:rgba(255,255,255,.15);color:#fff;
    border-color:rgba(255,255,255,.55);transform:translateY(-2px);
}
/* Inverse CTA for dark bands — white pill, ink text */
.pub-btn-inverse{
    background:#fff;border:0;color:var(--mb-primary-800);
    font-weight:800;border-radius:14px;
    box-shadow:0 8px 24px rgba(6,10,36,.4);
    transition:transform .18s ease,box-shadow .18s ease;
}
.pub-btn-inverse:hover{color:var(--mb-primary-900);transform:translateY(-2px);box-shadow:0 12px 32px rgba(6,10,36,.5)}

/* ── Promo strip + nav ────────────────────────────────────────────────────── */
.pub-promo-strip{
    background:linear-gradient(90deg,var(--pub-ink) 0%,var(--mb-primary-900) 55%,var(--pub-violet-deep) 100%);
    color:#dbe3fb;
    text-align:center;
    font-size:.8125rem;
    letter-spacing:.01em;
    padding:.45rem .75rem;
}
.pub-promo-strip .bi{color:var(--pub-gold);margin-right:.25rem}
.pub-promo-strip a{color:#fff;font-weight:700;margin-left:.35rem;text-decoration-color:var(--pub-gold)}
.pub-nav-wrap{position:sticky;top:0;z-index:1030}
.pub-nav{
    background:rgba(255,255,255,.92);
    backdrop-filter:blur(18px) saturate(1.6);
    -webkit-backdrop-filter:blur(18px) saturate(1.6);
    border-bottom:1px solid rgba(228,232,239,.7);
    box-shadow:0 6px 24px rgba(26,35,50,.05);
    padding:.55rem 0;
}
.pub-brand{display:inline-flex;align-items:center;gap:.55rem;text-decoration:none}
.pub-brand-mark{ /* inline SVG (mayabooks_mark_svg) — it draws its own gradient */
    display:block;flex:0 0 auto;
    border-radius:9px; /* matches the mark's own corner (15/64 of its size) */
    box-shadow:0 4px 12px rgba(77,73,222,.35);
}
.pub-brand-name{font-weight:800;font-size:1.125rem;letter-spacing:-.02em;color:var(--mb-text-strong)}
.pub-brand-books{
    font-weight:700;
    background:linear-gradient(94deg,var(--mb-primary-600),var(--pub-violet));
    -webkit-background-clip:text;background-clip:text;
    -webkit-text-fill-color:transparent;color:transparent;
}
.pub-nav-links .nav-link{
    position:relative;
    color:#535f79;font-weight:600;font-size:.875rem;letter-spacing:.012em;
    padding:.45rem .95rem;transition:color .18s ease;
}
.pub-nav-links .nav-link::after{ /* gradient underline, grows from the left */
    content:"";position:absolute;left:.95rem;right:.95rem;bottom:.22rem;height:2px;
    border-radius:2px;
    background:linear-gradient(90deg,var(--mb-primary-500),var(--pub-violet));
    transform:scaleX(0);transform-origin:left;
    transition:transform .22s cubic-bezier(.16,.84,.44,1);
}
.pub-nav-links .nav-link:hover,.pub-nav-links .nav-link.active{color:var(--mb-primary-700)}
.pub-nav-links .nav-link:hover::after,.pub-nav-links .nav-link.active::after{transform:scaleX(1)}
.pub-nav .pub-btn-primary{padding:.5rem 1.15rem;font-size:.875rem;border-radius:11px}
.pub-toggler{border:1px solid var(--mb-border);border-radius:10px;font-size:1.4rem;color:var(--mb-text-strong);padding:.15rem .5rem}
/* Language selector (lib/i18n.php i18n_selector()) — quiet, premium select */
.mb-lang-form{display:inline-flex;align-items:center}
.pub-lang-select{
    border:1px solid var(--mb-border);border-radius:10px;
    background:rgba(255,255,255,.7);color:#535f79;
    font-size:.8125rem;font-weight:600;
    padding:.35rem 1.6rem .35rem .6rem;cursor:pointer;
    appearance:none;-webkit-appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%2364748b' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:right .55rem center;
}
.pub-lang-select:hover{border-color:var(--mb-primary-300);color:var(--mb-primary-700)}

/* ── Hero: aurora gradient + floating orbs ───────────────────────────────── */
.pub-hero{
    position:relative;
    color:#fff;
    background:
        radial-gradient(70rem 26rem at 50% -14rem,rgba(122,140,255,.4),transparent 68%),
        radial-gradient(58rem 34rem at 88% -18%,rgba(109,85,232,.65),transparent 62%),
        radial-gradient(44rem 30rem at -12% 8%,rgba(14,128,116,.5),transparent 58%),
        radial-gradient(30rem 20rem at 60% 108%,rgba(75,52,184,.55),transparent 65%),
        linear-gradient(158deg,#232c63 0%,#1b2456 16%,var(--mb-primary-900) 46%,#31307f 74%,#403493 100%);
    padding:2.75rem 0 0; /* tight on purpose — content starts right under the nav */
    overflow:hidden;
    text-align:left; /* two-column hero: copy left, live dashboard right */
}
/* top spotlight — bridges the light nav into the dark hero so the cut
   doesn't feel abrupt, and fills the area above the badge */
.pub-hero::after{
    content:"";position:absolute;pointer-events:none;
    top:-160px;left:50%;transform:translateX(-50%);
    width:1100px;height:340px;
    background:radial-gradient(closest-side,rgba(148,163,255,.32),rgba(148,163,255,.08) 55%,transparent 75%);
    filter:blur(24px);
}
/* below lg the columns stack (viz under the copy) — recenter everything */
@media (max-width: 991.98px){
    .pub-hero{text-align:center}
    .pub-hero h1,.pub-hero-sub{margin-left:auto;margin-right:auto}
    .pub-hero .d-flex{justify-content:center}
    .pub-hero-trust{justify-content:center}
    .pub-hero-viz{margin:0 auto}
}
.pub-hero::before{ /* faint ledger-grid texture */
    content:"";position:absolute;inset:0;pointer-events:none;
    background-image:
        linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
        linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
    background-size:46px 46px;
    mask-image:linear-gradient(to bottom,rgba(0,0,0,.85),transparent 78%);
    -webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.85),transparent 78%);
}
/* soft floating glow orbs */
.pub-orb{
    position:absolute;border-radius:50%;pointer-events:none;
    filter:blur(70px);opacity:.5;
    animation:pub-float 14s ease-in-out infinite;
}
.pub-orb-1{width:420px;height:420px;top:-140px;right:-90px;
    background:radial-gradient(circle,rgba(139,110,255,.75),transparent 65%)}
.pub-orb-2{width:340px;height:340px;left:-120px;top:34%;
    background:radial-gradient(circle,rgba(20,160,143,.6),transparent 65%);
    animation-delay:-5s}
.pub-orb-3{width:260px;height:260px;right:16%;top:52%;
    background:radial-gradient(circle,rgba(232,182,76,.32),transparent 65%);
    animation-delay:-9s;animation-duration:18s}
@keyframes pub-float{
    0%,100%{transform:translate3d(0,0,0) scale(1)}
    50%{transform:translate3d(0,-34px,0) scale(1.06)}
}
/* slowly rotating aurora sheet under the orbs — the hero never sits still */
.pub-aurora{
    position:absolute;left:50%;top:50%;
    width:150vmax;height:150vmax;margin:-75vmax 0 0 -75vmax;
    pointer-events:none;border-radius:50%;
    background:conic-gradient(from 0deg,
        rgba(109,85,232,.20),rgba(20,160,143,.12) 25%,rgba(232,182,76,.08) 50%,
        rgba(122,140,255,.18) 75%,rgba(109,85,232,.20));
    filter:blur(70px);opacity:.55;
    animation:pub-aurora-spin 60s linear infinite;
    will-change:transform;
}
@keyframes pub-aurora-spin{to{transform:rotate(1turn)}}
@media (prefers-reduced-motion: reduce){.pub-orb,.pub-aurora{animation:none}}

.pub-hero .container{position:relative;z-index:1}
.pub-hero-badge{
    display:inline-flex;align-items:center;gap:.45rem;
    background:rgba(255,255,255,.09);
    border:1px solid rgba(255,255,255,.22);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    color:#eef2ff;
    border-radius:var(--mb-radius-pill);
    font-size:.8125rem;font-weight:600;
    padding:.34rem .95rem;margin-bottom:1.4rem;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
}
.pub-hero-badge .bi{color:var(--pub-mint)}
.pub-hero h1{
    color:#fff;
    font-size:clamp(2.1rem,3vw,2.95rem); /* sized for a half-width column */
    font-weight:800;letter-spacing:-.03em;line-height:1.1;
    max-width:18ch;
}
.pub-hero-sub{
    color:#c3cef4;font-size:clamp(1.02rem,1.4vw,1.17rem);
    max-width:34rem;margin:1.25rem 0 1.9rem;line-height:1.6;
}
.pub-hero-trust{
    display:flex;flex-wrap:wrap;gap:.6rem;
    margin-top:1.75rem;padding:0;list-style:none;
}
.pub-hero-trust li{
    display:inline-flex;align-items:center;gap:.4rem;
    background:rgba(255,255,255,.07);
    border:1px solid rgba(255,255,255,.16);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    border-radius:var(--mb-radius-pill);
    color:#dbe4fb;font-size:.845rem;font-weight:500;
    padding:.34rem .85rem;
}
.pub-hero-trust .bi{color:var(--pub-mint)}

/* ── Product frame (real screenshot in a floating browser mockup) ────────── */
.pub-hero-shot{margin-top:4rem;display:flex;justify-content:center;perspective:1400px}
.pub-frame{
    width:min(980px,100%);
    border-radius:18px 18px 0 0;
    background:rgba(255,255,255,.06);
    border:1px solid rgba(255,255,255,.18);
    border-bottom:0;
    padding:10px 10px 0;
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    box-shadow:var(--pub-shadow-float);
    transform:rotateX(7deg) scale(.985);
    transform-origin:50% 100%;
    transition:transform .6s cubic-bezier(.16,.84,.44,1);
    will-change:transform;
}
.pub-hero-shot:hover .pub-frame{transform:rotateX(1.5deg) scale(1)}
.pub-frame-bar{
    display:flex;align-items:center;gap:.45rem;
    padding:.55rem .8rem;
}
.pub-frame-dot{width:10px;height:10px;border-radius:50%}
.pub-frame-dot:nth-child(1){background:#f26d5f}
.pub-frame-dot:nth-child(2){background:#f0b95c}
.pub-frame-dot:nth-child(3){background:#57c25c}
.pub-frame-url{
    margin-left:.7rem;flex:1;max-width:320px;
    background:rgba(255,255,255,.1);
    border:1px solid rgba(255,255,255,.14);
    border-radius:99px;padding:.14rem .8rem;
    color:#c9d2f2;font-family:var(--mb-font-mono);font-size:.68rem;
    white-space:nowrap;overflow:hidden;
}
.pub-frame img{
    display:block;width:100%;height:auto;
    border-radius:10px 10px 0 0;
    border:1px solid rgba(255,255,255,.1);border-bottom:0;
}
@media (prefers-reduced-motion: reduce){
    .pub-frame{transform:none;transition:none}
    .pub-hero-shot:hover .pub-frame{transform:none}
}

/* ── Live hero dashboard (the hero's centerpiece) ────────────────────────────
   A big frosted-glass MayaBooks dashboard mockup filling the hero's right
   column — fictional demo figures animated by the tiny script at the bottom
   of index.php. Purely decorative (aria-hidden); transform/opacity
   animations only, static for reduced-motion users. */
.pub-hero-viz{
    position:relative;
    max-width:560px;margin-left:auto;
    perspective:1600px;
}
.pub-hero-viz::before{ /* mint→violet glow halo behind the card */
    content:"";position:absolute;inset:-9% -7%;pointer-events:none;
    background:radial-gradient(closest-side,rgba(111,224,200,.26),rgba(109,85,232,.22) 55%,transparent 78%);
    filter:blur(46px);
}
.pub-viz-card{
    position:relative;text-align:left;color:#dbe4fb;
    border-radius:22px;
    padding:1.35rem 1.4rem 1.4rem;
    background:linear-gradient(165deg,rgba(38,48,110,.92),rgba(17,22,58,.95));
    border:1px solid rgba(255,255,255,.18);
    backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
    box-shadow:0 40px 90px rgba(6,10,38,.6),inset 0 1px 0 rgba(255,255,255,.14);
    transform:rotateY(-7deg) rotateX(2deg);
    transform-origin:85% 50%;
    transition:transform .6s cubic-bezier(.16,.84,.44,1);
    animation:pub-card-float 12s ease-in-out infinite;
    will-change:transform;
}
.pub-hero-viz:hover .pub-viz-card{transform:rotateY(-1.5deg) rotateX(0deg)}
/* float via the separate `translate` property so it composes with the tilt */
@keyframes pub-card-float{0%,100%{translate:0 0}50%{translate:0 -13px}}
.pub-viz-head{display:flex;align-items:center;gap:.65rem}
.pub-viz-mark{ /* inline SVG (mayabooks_mark_svg) — draws its own gradient */
    flex:0 0 auto;display:block;border-radius:8px;
    box-shadow:0 4px 12px rgba(77,73,222,.4);
}
.pub-viz-title{display:flex;flex-direction:column;line-height:1.25;color:#eef2ff;font-weight:700;font-size:.9rem}
.pub-viz-title small{color:#8fa0d6;font-weight:600;font-size:.68rem}
.pub-viz-head .pub-live-chip{margin-left:auto}
.pub-viz-stats{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin-top:1.05rem}
.pub-viz-stat{
    background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);
    border-radius:14px;padding:.7rem .85rem;
}
/* direct child only — the ₹ value inside <b> also contains a <span> */
.pub-viz-stat>span{font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#9fb0e8}
.pub-viz-stat b{
    display:block;margin-top:.1rem;
    font-size:clamp(1.3rem,1.7vw,1.6rem);font-weight:800;letter-spacing:-.02em;
    font-variant-numeric:tabular-nums;
    background:linear-gradient(94deg,#fff 25%,var(--pub-mint));
    -webkit-background-clip:text;background-clip:text;
    -webkit-text-fill-color:transparent;color:transparent;
}
.pub-viz-stat b.alt{background:linear-gradient(94deg,#fff 25%,var(--pub-gold));-webkit-background-clip:text;background-clip:text}
.pub-viz-panel{
    margin-top:.8rem;
    background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);
    border-radius:14px;padding:.8rem .9rem;
}
.pub-viz-panel-head{
    display:flex;align-items:center;justify-content:space-between;gap:1rem;
    font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#9fb0e8;
}
.pub-viz-panel-head b{color:#7ee3a2;font-size:.72rem;letter-spacing:.02em}
.pub-viz-bars{ /* taller chart + faint ruled lines behind the bars */
    height:92px;gap:6px;margin-top:.6rem;
    background:repeating-linear-gradient(180deg,rgba(255,255,255,.05) 0 1px,transparent 1px 23px);
}
.pub-viz-inv{
    margin-left:auto;white-space:nowrap;
    font-family:var(--mb-font-mono);font-size:.64rem;letter-spacing:0;text-transform:none;
    color:#c9d2f2;background:rgba(255,255,255,.07);
    border:1px solid rgba(255,255,255,.12);border-radius:99px;
    padding:.08rem .5rem;
}
.pub-viz-toast{ /* floating activity toast, hangs off the card's bottom-left */
    position:absolute;left:-1.25rem;bottom:-.8rem;z-index:2;
    display:flex;align-items:center;gap:.5rem;max-width:88%;
    background:linear-gradient(160deg,rgba(30,40,96,.96),rgba(16,21,50,.97));
    border:1px solid rgba(255,255,255,.16);border-radius:12px;
    padding:.55rem .85rem;font-size:.78rem;color:#dbe4fb;
    box-shadow:0 18px 40px rgba(6,10,38,.55);
    opacity:0;translate:0 8px;
    transition:opacity .45s ease,translate .45s ease;
}
.pub-viz-toast.show{opacity:1;translate:0 0}
.pub-viz-toast .bi{color:#4ade80;flex:0 0 auto}
@media (max-width: 991.98px){
    .pub-viz-card{transform:none;transform-origin:50% 50%}
    .pub-viz-toast{left:.5rem}
}
.pub-live-dot{
    flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:#4ade80;
    animation:pub-live-pulse 2.2s ease-out infinite;
}
@keyframes pub-live-pulse{
    0%{box-shadow:0 0 0 0 rgba(74,222,128,.55)}
    70%{box-shadow:0 0 0 8px rgba(74,222,128,0)}
    100%{box-shadow:0 0 0 0 rgba(74,222,128,0)}
}
.pub-live-chip{
    margin-left:auto;display:inline-flex;align-items:center;gap:.32rem;
    font-size:.6rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
    color:#4ade80;background:rgba(74,222,128,.12);
    border:1px solid rgba(74,222,128,.4);border-radius:99px;
    padding:.12rem .5rem;
}
.pub-live-chip .pub-live-dot{width:6px;height:6px}
.pub-live-bars{display:flex;gap:5px;align-items:flex-end;height:46px;margin-top:.7rem}
.pub-live-bars i{
    flex:1;height:calc(var(--h)*100%);border-radius:3px;
    transform-origin:bottom;opacity:.85;
    background:linear-gradient(180deg,var(--pub-mint),rgba(111,224,200,.18));
    animation:pub-bar-pulse 3.4s ease-in-out infinite;
    animation-delay:calc(var(--i)*.28s);
}
.pub-live-bars i:last-child{ /* current period, gold highlight */
    background:linear-gradient(180deg,var(--pub-gold),rgba(232,182,76,.2));opacity:1;
}
@keyframes pub-bar-pulse{0%,100%{transform:scaleY(1)}50%{transform:scaleY(1.16)}}
.pub-live-rows{margin-top:.55rem;font-size:.8rem}
.pub-live-row{display:flex;justify-content:space-between;gap:1rem;padding:.18rem 0;color:#aab8ea}
.pub-live-row b{color:#eef2ff;font-weight:600;font-variant-numeric:tabular-nums}
.pub-live-row.total{
    border-top:1px solid rgba(255,255,255,.14);
    margin-top:.3rem;padding-top:.42rem;color:#dbe4fb;font-weight:700;
}
.pub-live-row.total b{color:var(--pub-gold);font-weight:800;font-size:.95rem}
.pub-frame-live{
    margin-left:.7rem;display:inline-flex;align-items:center;gap:.35rem;
    font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
    color:#7ee3a2;white-space:nowrap;
}
@media (prefers-reduced-motion: reduce){
    .pub-viz-card{animation:none;transform:none;transition:none}
    .pub-hero-viz:hover .pub-viz-card{transform:none}
    .pub-live-bars i,.pub-live-dot{animation:none}
    .pub-viz-toast{opacity:1;translate:0 0;transition:none}
}

/* ── Stats band ──────────────────────────────────────────────────────────── */
.pub-stats{
    background:linear-gradient(180deg,#fdfdff,var(--mb-bg));
    border-bottom:1px solid var(--mb-border);
    padding:2.6rem 0;
}
.pub-stat{text-align:center;padding:.5rem 0}
.pub-stat b{
    display:block;font-size:clamp(1.7rem,3vw,2.3rem);font-weight:800;letter-spacing:-.02em;
    background:linear-gradient(94deg,var(--mb-primary-600),var(--pub-violet) 60%,var(--pub-gold-deep));
    -webkit-background-clip:text;background-clip:text;
    -webkit-text-fill-color:transparent;color:transparent;
}
.pub-stat span{color:var(--mb-text-muted);font-size:.9rem;font-weight:600}

/* ── Feature grid ────────────────────────────────────────────────────────── */
.pub-feature{
    position:relative;
    height:100%;
    background:linear-gradient(180deg,#fff,#fbfcff);
    border:1px solid var(--mb-border);
    border-radius:var(--pub-radius-xl);
    padding:1.75rem 1.6rem;
    box-shadow:var(--pub-shadow-card);
    transition:box-shadow .22s ease,transform .22s ease,border-color .22s ease;
}
.pub-feature::after{ /* gradient hairline reveal on hover */
    content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
    border:1px solid transparent;
    background:linear-gradient(130deg,rgba(59,91,219,.5),rgba(109,85,232,.4),rgba(232,182,76,.35)) border-box;
    -webkit-mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);
    -webkit-mask-composite:xor;mask-composite:exclude;
    opacity:0;transition:opacity .22s ease;
}
.pub-feature:hover{
    box-shadow:var(--pub-shadow-card-hover);
    transform:translateY(-5px);
    border-color:transparent;
}
.pub-feature:hover::after{opacity:1}
.pub-feature-icon{
    display:inline-flex;align-items:center;justify-content:center;
    width:48px;height:48px;border-radius:14px;
    font-size:1.3rem;margin-bottom:1rem;color:#fff;
    background:var(--pub-grad-cta);
    box-shadow:0 5px 14px rgba(77,73,222,.32);
}
/* rotate chip gradients for visual rhythm (grid order: 1..9) */
.pub-feature-icon.ic-teal{background:linear-gradient(130deg,#0e8074,#12a893);box-shadow:0 5px 14px rgba(14,128,116,.32)}
.pub-feature-icon.ic-gold{background:linear-gradient(130deg,var(--pub-gold-deep),var(--pub-gold));box-shadow:0 5px 14px rgba(201,143,30,.32)}
.pub-feature h3{font-size:1.09rem;margin-bottom:.45rem;font-weight:700}
.pub-feature p{color:var(--mb-text-muted);font-size:.92rem;margin:0}

.pub-tally-band{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1.5rem;
    padding:2rem;
    background:linear-gradient(180deg,#fff,#fbfcff);
    border:1px solid var(--mb-border);
    border-radius:var(--pub-radius-xl);
    box-shadow:var(--pub-shadow-card);
}
.pub-tally-band h2{font-size:clamp(1.35rem,2.4vw,1.9rem);margin:0 0 .45rem}
.pub-tally-band p{max-width:46rem;margin:0;color:var(--mb-text-muted)}
.pub-tally-band-actions{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:flex-end}
@media (max-width: 767.98px){
    .pub-tally-band{display:block;padding:1.5rem}
    .pub-tally-band-actions{justify-content:flex-start;margin-top:1.25rem}
    .pub-tally-band-actions .btn{width:100%}
}

.pub-tally-steps{counter-reset:tallyStep;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.pub-tally-step{
    position:relative;
    background:#fff;
    border:1px solid var(--mb-border);
    border-radius:var(--pub-radius-xl);
    padding:1.25rem;
    box-shadow:var(--pub-shadow-card);
}
.pub-tally-step::before{
    counter-increment:tallyStep;
    content:counter(tallyStep);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:2rem;
    height:2rem;
    border-radius:50%;
    background:var(--pub-grad-cta);
    color:#fff;
    font-weight:800;
    margin-bottom:.75rem;
}
.pub-tally-step h3{font-size:1rem;margin-bottom:.35rem}
.pub-tally-step p{font-size:.9rem;color:var(--mb-text-muted);margin:0}
.pub-tally-download-card{
    background:#fff;
    border:1px solid var(--mb-border);
    border-radius:var(--pub-radius-xl);
    box-shadow:var(--pub-shadow-card);
    padding:1.5rem;
}
.pub-tally-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:1rem 0}
.pub-tally-meta div{background:var(--mb-surface-2);border:1px solid var(--mb-border);border-radius:12px;padding:.75rem}
.pub-tally-meta span{display:block;color:var(--mb-text-muted);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.pub-tally-meta b{display:block;color:var(--mb-text-strong);font-size:.95rem;margin-top:.15rem;word-break:break-word}
.pub-tally-list{list-style:none;margin:1rem 0 0;padding:0}
.pub-tally-list li{display:flex;gap:.55rem;align-items:flex-start;padding:.32rem 0;color:var(--mb-text)}
.pub-tally-list .bi{color:var(--mb-accent);margin-top:.15rem;flex:0 0 auto}
@media (max-width: 991.98px){.pub-tally-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 575.98px){
    .pub-tally-steps{grid-template-columns:1fr}
    .pub-tally-meta{grid-template-columns:1fr}
}

/* ── Showcase: alternating screenshot rows ───────────────────────────────── */
.pub-show-row{display:flex;align-items:center;gap:3rem;padding:3.2rem 0}
.pub-show-row+.pub-show-row{border-top:1px solid var(--mb-border)}
.pub-show-media{flex:1 1 55%;min-width:0;perspective:1200px}
.pub-show-copy{flex:1 1 45%;min-width:0}
.pub-show-frame{
    border-radius:16px;
    background:#fff;
    border:1px solid var(--mb-border);
    box-shadow:var(--mb-shadow-lg);
    overflow:hidden;
    transform:rotateY(-6deg) rotateX(2deg);
    transition:transform .6s cubic-bezier(.16,.84,.44,1),box-shadow .6s ease;
    will-change:transform;
}
.pub-show-row.flip .pub-show-frame{transform:rotateY(6deg) rotateX(2deg)}
.pub-show-media:hover .pub-show-frame{transform:none;box-shadow:0 24px 60px rgba(38,60,156,.22)}
.pub-show-frame img{display:block;width:100%;height:auto}
.pub-show-copy h3{font-size:clamp(1.3rem,2.4vw,1.7rem);margin-bottom:.7rem}
.pub-show-copy p{color:var(--mb-text-muted)}
.pub-show-list{list-style:none;padding:0;margin:1.1rem 0 0}
.pub-show-list li{display:flex;gap:.6rem;align-items:flex-start;padding:.32rem 0;color:var(--mb-text)}
.pub-show-list .bi{color:var(--mb-accent);margin-top:.15rem;flex:0 0 auto}
@media (prefers-reduced-motion: reduce){
    .pub-show-frame,.pub-show-row.flip .pub-show-frame{transform:none;transition:none}
}
@media (max-width: 991.98px){
    .pub-show-row{flex-direction:column;gap:1.75rem;padding:2.5rem 0}
    .pub-show-row .pub-show-media{order:1;width:100%}
    .pub-show-row .pub-show-copy{order:2}
    .pub-show-frame,.pub-show-row.flip .pub-show-frame{transform:none}
}

/* ── Why strip (dark premium band, glass cards) ──────────────────────────── */
.pub-why{
    position:relative;overflow:hidden;
    background:
        radial-gradient(46rem 26rem at 108% -10%,rgba(109,85,232,.5),transparent 60%),
        radial-gradient(36rem 24rem at -8% 112%,rgba(14,128,116,.45),transparent 60%),
        linear-gradient(150deg,#121843,var(--mb-primary-900) 55%,#2c2a74);
    color:#c7d3f5;
}
.pub-why .pub-h2,.pub-why h3{color:#fff}
.pub-why .pub-kicker{color:var(--pub-mint)}
.pub-why .pub-kicker::before{background:linear-gradient(90deg,var(--pub-mint),var(--pub-gold))}
.pub-why-item{
    display:flex;gap:1rem;align-items:flex-start;
    background:rgba(255,255,255,.055);
    border:1px solid rgba(255,255,255,.13);
    border-radius:var(--pub-radius-xl);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    padding:1.3rem 1.35rem;height:100%;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
    transition:background .2s ease,transform .2s ease,border-color .2s ease;
}
.pub-why-item:hover{background:rgba(255,255,255,.09);transform:translateY(-3px);border-color:rgba(255,255,255,.24)}
.pub-why-item .bi{
    flex:0 0 auto;font-size:1.2rem;color:var(--pub-mint);
    background:rgba(111,224,200,.13);border:1px solid rgba(111,224,200,.25);
    border-radius:12px;
    width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;
}
.pub-why-item h3{font-size:1.02rem;margin-bottom:.25rem;font-weight:700}
.pub-why-item p{font-size:.9rem;margin:0;color:#a9b6e4}

/* ── Pricing ─────────────────────────────────────────────────────────────── */
.pub-price-card{
    position:relative;
    max-width:460px;margin:0 auto;
    background:linear-gradient(#fff,#fff) padding-box,
               linear-gradient(130deg,var(--mb-primary-600),var(--pub-violet) 55%,var(--pub-gold)) border-box;
    border:2px solid transparent;
    border-radius:var(--pub-radius-2xl);
    box-shadow:0 24px 60px rgba(38,60,156,.16),0 4px 14px rgba(26,35,50,.08);
    padding:2.4rem 2.1rem;text-align:center;
}
.pub-price-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:1rem;
    align-items:stretch;
}
.pub-price-grid .pub-price-card{max-width:none;width:100%;height:100%;display:flex;flex-direction:column}
.pub-price-card h3{font-size:1.08rem;font-weight:800;margin:0 0 .75rem;color:var(--mb-text-strong)}
.pub-price-flag{
    position:absolute;top:-15px;left:50%;transform:translateX(-50%);
    background:linear-gradient(120deg,var(--pub-gold-deep),var(--pub-gold));
    color:#fff;
    border-radius:var(--mb-radius-pill);
    font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
    padding:.32rem 1.05rem;white-space:nowrap;
    box-shadow:0 6px 16px rgba(201,143,30,.4);
}
.pub-price-amount{font-size:3.4rem;font-weight:800;color:var(--mb-text-strong);letter-spacing:-.035em}
.pub-price-amount small{font-size:1rem;font-weight:600;color:var(--mb-text-muted);letter-spacing:0}
.pub-price-list{list-style:none;padding:0;margin:1.4rem 0 1.6rem;text-align:left}
.pub-price-grid .pub-price-list{flex:1 1 auto}
.pub-price-list li{padding:.44rem 0;display:flex;gap:.65rem;align-items:flex-start}
.pub-price-list .bi{color:var(--mb-success);flex:0 0 auto;margin-top:.1rem}
.pub-ms-store-link{display:inline-flex;text-decoration:none}
.pub-ms-store-link-center{justify-content:center}
.pub-ms-store-badge{
    display:inline-flex;align-items:center;gap:.7rem;
    min-height:52px;padding:.55rem .9rem;
    border-radius:8px;background:#111;color:#fff;
    border:1px solid rgba(255,255,255,.2);
    box-shadow:0 8px 18px rgba(0,0,0,.18);
}
.pub-ms-store-copy{display:flex;flex-direction:column;line-height:1.05;text-align:left}
.pub-ms-store-copy small{font-size:.68rem;color:#d7dbe0}
.pub-ms-store-copy strong{font-size:.94rem;color:#fff}
.pub-store-cta{display:flex;justify-content:center}
.pub-store-cta-dark .pub-ms-store-badge{border-color:rgba(255,255,255,.38)}
@media (max-width: 991.98px){.pub-price-grid{grid-template-columns:1fr}.pub-price-card{padding:2.15rem 1.6rem}}

/* ── FAQ ─────────────────────────────────────────────────────────────────── */
.pub-faq{max-width:47rem;margin:0 auto}
.pub-faq details{
    background:#fff;
    border:1px solid var(--mb-border);
    border-radius:var(--mb-radius-lg);
    margin-bottom:.8rem;
    overflow:hidden;
    box-shadow:var(--pub-shadow-card);
    transition:border-color .2s ease,box-shadow .2s ease;
}
.pub-faq details:hover{border-color:var(--mb-primary-200)}
.pub-faq summary{
    cursor:pointer;list-style:none;
    display:flex;justify-content:space-between;align-items:center;gap:1rem;
    font-weight:700;color:var(--mb-text-strong);
    padding:1.05rem 1.25rem;
}
.pub-faq summary::-webkit-details-marker{display:none}
.pub-faq summary::after{
    content:"\F282"; /* bootstrap-icons chevron-down */
    font-family:"bootstrap-icons";
    color:var(--mb-text-faint);
    transition:transform .18s ease;
}
.pub-faq details[open] summary::after{transform:rotate(180deg)}
.pub-faq details[open]{border-color:var(--mb-primary-300);box-shadow:var(--pub-shadow-card-hover)}
.pub-faq .pub-faq-a{padding:0 1.25rem 1.05rem;color:var(--mb-text-muted)}

/* ── CTA band ────────────────────────────────────────────────────────────── */
.pub-cta{
    position:relative;overflow:hidden;
    background:
        radial-gradient(40rem 22rem at 112% 130%,rgba(14,128,116,.55),transparent 60%),
        radial-gradient(30rem 18rem at -10% -30%,rgba(232,182,76,.25),transparent 55%),
        linear-gradient(135deg,#1b2260,var(--mb-primary-700) 55%,var(--pub-violet));
    border-radius:var(--pub-radius-2xl);
    color:#fff;padding:3.6rem 2rem;text-align:center;
    box-shadow:0 30px 70px rgba(30,47,119,.35);
}
.pub-cta::before{
    content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;
    background-image:
        linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
        linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
    background-size:42px 42px;
    mask-image:radial-gradient(closest-side at 50% 50%,rgba(0,0,0,.8),transparent);
    -webkit-mask-image:radial-gradient(closest-side at 50% 50%,rgba(0,0,0,.8),transparent);
}
.pub-cta>*{position:relative}
.pub-cta h2{color:#fff;font-size:clamp(1.6rem,3.2vw,2.2rem)}
.pub-cta p{color:#d3dcf8;max-width:36rem;margin:.6rem auto 1.75rem}

/* ── Waitlist / forms ────────────────────────────────────────────────────── */
.pub-form-card{
    background:#fff;
    border:1px solid var(--mb-border);
    border-radius:var(--pub-radius-xl);
    box-shadow:0 18px 50px rgba(38,60,156,.12),0 3px 10px rgba(26,35,50,.06);
    padding:2.2rem 2rem;
}
.pub-form-card .form-control{
    border-color:var(--mb-border-strong);
    padding:.65rem .9rem;font-size:.9375rem;border-radius:10px;
}
.pub-form-card .form-control:focus{border-color:var(--mb-primary-500);box-shadow:var(--mb-focus-ring)}
.pub-hp-field{position:absolute !important;left:-9999px !important;width:1px;height:1px;overflow:hidden} /* honeypot */

/* ── Static/legal pages ──────────────────────────────────────────────────── */
/* Page head = a compact slice of the homepage hero (same aurora family) so
   every public page opens with the premium dark band, not a pale strip. */
.pub-page-head{
    position:relative;overflow:hidden;color:#c3cef4;
    background:
        radial-gradient(46rem 20rem at 85% -30%,rgba(109,85,232,.55),transparent 62%),
        radial-gradient(34rem 18rem at -6% 130%,rgba(14,128,116,.42),transparent 58%),
        linear-gradient(158deg,#232c63 0%,#1b2456 30%,var(--mb-primary-900) 70%,#31307f 100%);
    padding:3.8rem 0 3.2rem;
}
.pub-page-head::before{ /* faint ledger grid, fading down — same as the hero */
    content:"";position:absolute;inset:0;pointer-events:none;
    background-image:
        linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
        linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
    background-size:46px 46px;
    mask-image:linear-gradient(to bottom,rgba(0,0,0,.85),transparent 85%);
    -webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.85),transparent 85%);
}
.pub-page-head>.container{position:relative}
.pub-page-head h1{font-size:clamp(1.8rem,3.6vw,2.5rem);color:#fff}
.pub-page-head .pub-kicker{color:var(--pub-mint)}
.pub-page-head .pub-kicker::before{background:linear-gradient(90deg,var(--pub-mint),var(--pub-gold))}
.pub-page-head .pub-lead,.pub-page-head p{color:#c3cef4}
.pub-prose{max-width:46rem}
.pub-prose h2{font-size:1.3rem;margin:2.2rem 0 .65rem}
.pub-prose h3{font-size:1.08rem;margin:1.5rem 0 .5rem}
.pub-prose p,.pub-prose li{color:var(--mb-text)}
.pub-prose .pub-updated{color:var(--mb-text-faint);font-size:.875rem}

/* ── Contact cards ───────────────────────────────────────────────────────── */
.pub-contact-card{
    background:linear-gradient(180deg,#fff,#fbfcff);
    border:1px solid var(--mb-border);
    border-radius:var(--pub-radius-xl);
    padding:1.9rem 1.6rem;height:100%;
    text-align:center;
    box-shadow:var(--pub-shadow-card);
    transition:transform .2s ease,box-shadow .2s ease;
}
.pub-contact-card:hover{transform:translateY(-4px);box-shadow:var(--pub-shadow-card-hover)}
.pub-contact-card .bi{
    font-size:1.5rem;color:#fff;
    width:52px;height:52px;border-radius:15px;
    display:inline-flex;align-items:center;justify-content:center;
    background:var(--pub-grad-cta);
    box-shadow:0 6px 16px rgba(77,73,222,.3);
}
.pub-contact-card h3{font-size:1.09rem;margin:.9rem 0 .3rem}
.pub-contact-card p{color:var(--mb-text-muted);font-size:.9rem}

/* ── Footer ──────────────────────────────────────────────────────────────── */
.pub-footer{
    position:relative;
    background:linear-gradient(180deg,#131a35,var(--pub-ink-2));
    color:#93a1c9;
    padding:3.8rem 0 2rem;margin-top:0;
}
.pub-footer::before{ /* gradient top hairline */
    content:"";position:absolute;top:0;left:0;right:0;height:2px;
    background:linear-gradient(90deg,var(--mb-primary-600),var(--pub-violet) 40%,var(--pub-mint) 75%,var(--pub-gold));
    opacity:.85;
}
.pub-footer a{color:#b9c4e8;text-decoration:none;transition:color .15s ease}
.pub-footer a:hover{color:#fff}
.pub-brand-footer .pub-brand-name{color:#fff}
.pub-brand-footer .pub-brand-books{ /* lighter gradient for the dark footer */
    background:linear-gradient(94deg,#a8bbff,#c9b8ff);
    -webkit-background-clip:text;background-clip:text;
}
.pub-footer-tag{font-size:.9rem;margin:.9rem 0 .5rem;max-width:20rem}
.pub-footer-since{font-size:.8125rem;color:var(--pub-mint)}
.pub-footer-since .bi{margin-right:.3rem}
.pub-footer .pub-footer-head{ /* .pub-footer prefix outranks the base .pub-body h2 color */
    font-size:.8125rem;font-weight:800;color:#fff;
    text-transform:uppercase;letter-spacing:.1em;margin-bottom:.95rem;
}
.pub-footer-links{list-style:none;padding:0;margin:0}
.pub-footer-links li{padding:.24rem 0;font-size:.9rem}
.pub-footer-legal{
    border-top:1px solid rgba(255,255,255,.09);
    margin-top:2.6rem;padding-top:1.5rem;
    font-size:.8125rem;color:#6c7aa6;
    display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;justify-content:space-between;align-items:center;
}
.pub-footer-social{display:flex;gap:.6rem}
.pub-footer-social a{
    display:inline-flex;align-items:center;justify-content:center;
    width:34px;height:34px;border-radius:10px;
    background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);
    color:#b9c4e8;font-size:1rem;
    transition:background .15s ease,transform .15s ease,color .15s ease;
}
.pub-footer-social a:hover{background:rgba(255,255,255,.14);color:#fff;transform:translateY(-2px)}

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 991.98px){
    .pub-nav-links{padding:.75rem 0 .25rem}
    .pub-nav-links .nav-item{padding:.1rem 0}
}
@media (max-width: 767.98px){
    .pub-section{padding:3.5rem 0}
    .pub-hero{padding-top:2rem}
    .pub-hero-shot{margin-top:2.75rem}
    .pub-frame{transform:none}
    .pub-stats .row>div{padding:.4rem 0}
}
@media (max-width: 575.98px){
    .pub-promo-strip{font-size:.74rem;line-height:1.35}
    .pub-hero{padding-top:1.35rem}
    .pub-hero h1{font-size:clamp(1.85rem,11vw,2.35rem);max-width:14ch}
    .pub-hero-sub{font-size:.98rem}
    .pub-hero .d-flex .btn{width:100%;justify-content:center}
    .pub-hero-trust{align-items:stretch}
    .pub-hero-trust li{width:100%;justify-content:center;border-radius:14px}
    .pub-viz-card{padding:1rem;border-radius:18px}
    .pub-viz-stats{grid-template-columns:1fr}
    .pub-viz-panel-head{flex-wrap:wrap;gap:.35rem}
    .pub-viz-toast{position:static;margin:.75rem .5rem 0;max-width:none}
    .pub-frame-bar{padding:.45rem .5rem}
    .pub-frame-url{max-width:150px;margin-left:.35rem}
    .pub-frame-live{display:none}
    .pub-price-card{padding:2rem 1.05rem}
    .pub-price-amount{font-size:2.35rem}
    .pub-form-card{padding:1.45rem 1.1rem;border-radius:18px}
    .pub-page-head{padding:2.8rem 0 2.4rem}
    .pub-contact-card{padding:1.35rem 1.1rem}
    .pub-footer-legal{display:block;text-align:center}
    .pub-footer-social{justify-content:center;margin-top:.75rem}
}
@media (prefers-reduced-motion: reduce){
    .pub-feature,.pub-faq summary::after,.pub-btn-primary,.pub-btn-outline,
    .pub-btn-hero-ghost,.pub-btn-inverse,.pub-why-item,.pub-contact-card{transition:none}
    .pub-feature:hover,.pub-why-item:hover,.pub-contact-card:hover,
    .pub-btn-primary:hover,.pub-btn-outline:hover,.pub-btn-hero-ghost:hover,.pub-btn-inverse:hover{transform:none}
}
