/* Beacon — marketing landing page styles (uses DS tokens & component classes). */

/* ============================================================
   WARM EDITORIAL THEME — overrides Beacon tokens for the marketing
   site. No gradients, warm paper neutrals, one solid teal accent,
   depth via soft shadows instead of hard borders. Matches the app.
   ============================================================ */
:root {
  /* AZURE — clean light, blue primary + green signal. No gradients. */
  --brand-500:#1F6FEB;--primary:#1F6FEB;--primary-hover:#1559C9;--on-primary:#fff;--text-on-brand:#fff;
  --primary-soft:rgba(31,111,235,.08);--primary-soft-border:rgba(31,111,235,.24);
  --ring:0 0 0 3px rgba(31,111,235,.22);--border-focus:#1F6FEB;--shadow-brand:0 10px 28px -8px rgba(31,111,235,.4);
  --signal-300:#86EFAC;--signal-400:#16A34A;--signal-500:#15803D;--signal-600:#166534;--text-on-signal:#fff;
  /* cool light slate scale */
  --slate-0:#fff;--slate-25:#FBFCFE;--slate-50:#F4F7FB;--slate-100:#E9EFF6;--slate-200:#DAE3EE;--slate-300:#C2CEDD;--slate-400:#9AA8BC;--slate-500:#64748B;--slate-600:#475569;--slate-700:#334155;--slate-800:#1E293B;--slate-900:#0F172A;--slate-950:#0A0F1C;
  --bg-app:#F6F9FC;--bg-canvas:#EEF3F9;--surface:#fff;--surface-raised:#fff;--surface-sunken:#EEF3F9;--surface-hover:#F4F7FB;--surface-active:#E9EFF6;
  --text-strong:#0F172A;--text:#334155;--text-muted:#64748B;--text-subtle:#94A3B8;--text-link:#1F6FEB;
  --border:#E4EAF1;--border-strong:#D3DCE6;--border-subtle:#EEF2F7;
  --info-500:#2563EB;--success-500:#16A34A;--success:#16A34A;--warning-500:#E0962A;--danger-500:#E5484D;--danger:#E5484D;--purple-500:#7C5BD0;
  --shadow-xs:0 1px 2px rgba(15,40,80,.05);
  --shadow-sm:0 2px 10px -3px rgba(15,40,80,.1),0 1px 2px rgba(15,40,80,.05);
  --shadow-md:0 12px 32px -10px rgba(15,40,80,.16),0 2px 6px rgba(15,40,80,.06);
  --shadow-lg:0 26px 54px -16px rgba(15,40,80,.2),0 4px 10px rgba(15,40,80,.07);
  --shadow-xl:0 40px 80px -22px rgba(15,40,80,.22);
  --accent-strong:#16A34A;
}

* { box-sizing: border-box; }
body { margin: 0; font-family: var(--font-sans); color: var(--text); background: var(--bg-app); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
.wrap { max-width: 1180px; margin: 0 auto; padding: 0 28px; }
.eyebrow { font: var(--fw-semibold) var(--text-2xs)/1 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--primary); }

/* ---- Nav ---- */
.nav { position: sticky; top: 0; z-index: 20; background: rgba(255,255,255,.82); backdrop-filter: blur(12px); border-bottom: 1px solid var(--border); }
.nav__in { display: flex; align-items: center; gap: 28px; height: 64px; }
.brand { display: flex; align-items: center; gap: 10px; }
.brand__name { font: var(--fw-bold) var(--text-lg)/1 var(--font-display); letter-spacing: -0.02em; color: var(--text-strong); }
.nav__links { display: flex; gap: 26px; margin-left: 8px; }
.nav__links a { font: var(--fw-medium) var(--text-sm)/1 var(--font-sans); color: var(--text-muted); transition: color var(--dur-fast); white-space: nowrap; }
.nav__links a:hover { color: var(--text-strong); }
.nav__cta { margin-left: auto; display: flex; align-items: center; gap: 10px; }

/* ---- Hero ---- */
.hero { padding: 84px 0 40px; text-align: center; position: relative; overflow: hidden; }
.hero__grid { position: absolute; inset: 0; background-image: linear-gradient(var(--border-subtle) 1px, transparent 1px), linear-gradient(90deg, var(--border-subtle) 1px, transparent 1px); background-size: 44px 44px; mask-image: radial-gradient(ellipse 70% 60% at 50% 30%, #000 30%, transparent 75%); opacity: .7; }
.hero__in { position: relative; }
.hero__badge { display: inline-flex; align-items: center; gap: 8px; padding: 5px 12px 5px 6px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-pill); font: var(--fw-medium) var(--text-xs)/1 var(--font-sans); color: var(--text-muted); box-shadow: var(--shadow-xs); margin-bottom: 24px; white-space: nowrap; }
.hero h1 { font: var(--fw-semibold) clamp(40px, 6vw, 68px)/1.02 var(--font-display); letter-spacing: -0.035em; color: var(--text-strong); margin: 0 0 20px; }
.hero h1 .em { color: var(--primary); }
.hero__sub { max-width: 600px; margin: 0 auto 30px; font: var(--fw-regular) var(--text-lg)/1.55 var(--font-sans); color: var(--text-muted); }
.hero__cta { display: flex; gap: 12px; justify-content: center; }
.hero__note { margin-top: 16px; font: var(--text-xs)/1.4 var(--font-mono); color: var(--text-subtle); }

/* ---- Browser frame product shot ---- */
.frame { margin: 52px auto 0; max-width: 1000px; border: 1px solid var(--border); border-radius: var(--radius-xl); background: var(--surface); box-shadow: var(--shadow-xl); overflow: hidden; }
.frame__bar { display: flex; align-items: center; gap: 8px; padding: 11px 14px; border-bottom: 1px solid var(--border); background: var(--surface-sunken); }
.frame__dots { display: flex; gap: 6px; }
.frame__dots i { width: 11px; height: 11px; border-radius: 50%; background: var(--slate-300); }
.frame__url { margin-left: 10px; flex: 1; max-width: 320px; height: 24px; border-radius: var(--radius-pill); background: var(--surface); border: 1px solid var(--border); display: flex; align-items: center; padding: 0 12px; font: 11px/1 var(--font-mono); color: var(--text-subtle); }
.shot { display: flex; min-height: 380px; background: var(--bg-app); text-align: left; }
.shot__side { width: 168px; flex-shrink: 0; border-right: 1px solid var(--border); background: var(--surface); padding: 14px 12px; }
.shot__navitem { display: flex; align-items: center; gap: 9px; padding: 7px 9px; border-radius: var(--radius-sm); font: var(--fw-medium) 12px/1 var(--font-sans); color: var(--text-muted); margin-bottom: 2px; }
.shot__navitem.on { background: var(--primary-soft); color: var(--primary); }
.shot__navitem .d { width: 14px; height: 14px; border-radius: 4px; background: currentColor; opacity: .55; }
.shot__navitem.on .d { opacity: 1; }
.shot__main { flex: 1; padding: 18px; }
.shot__row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 14px; }
.shot__stat { border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); padding: 11px 12px; }
.shot__stat .l { font: var(--fw-semibold) 8px/1 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--text-subtle); }
.shot__stat .v { font: var(--fw-semibold) 22px/1 var(--font-mono); color: var(--text-strong); margin-top: 7px; }
.shot__stat .v.brand { color: var(--primary); }
.shot__panels { display: grid; grid-template-columns: 1.3fr 1fr; gap: 12px; }
.shot__panel { border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); padding: 14px; }
.shot__panel .t { font: var(--fw-semibold) 11px/1 var(--font-display); color: var(--text-strong); margin-bottom: 12px; }
.shot__bars { display: flex; align-items: flex-end; gap: 7px; height: 90px; }
.shot__bars i { flex: 1; background: var(--primary); border-radius: 3px 3px 1px 1px; }
.shot__sov { display: flex; flex-direction: column; gap: 9px; }
.shot__sovrow { display: flex; flex-direction: column; gap: 4px; }
.shot__sovrow .meta { display: flex; justify-content: space-between; font: var(--fw-medium) 10px/1 var(--font-mono); color: var(--text-muted); }
.shot__track { height: 6px; border-radius: 3px; background: var(--surface-sunken); overflow: hidden; }
.shot__track i { display: block; height: 100%; border-radius: 3px; }

/* ---- Logos strip ---- */
.logos { padding: 40px 0 8px; text-align: center; }
.logos__label { font: var(--fw-medium) var(--text-xs)/1 var(--font-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--text-subtle); margin-bottom: 18px; }
.logos__row { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px 36px; }
.logos__row span { font: var(--fw-semibold) var(--text-md)/1 var(--font-display); color: var(--text-subtle); opacity: .8; }

/* ---- Section scaffolding ---- */
.section { padding: 88px 0; }
.section__head { max-width: 640px; margin: 0 auto 48px; text-align: center; }
.section__head h2 { font: var(--fw-semibold) clamp(28px, 4vw, 40px)/1.1 var(--font-display); letter-spacing: -0.025em; color: var(--text-strong); margin: 14px 0 14px; }
.section__head p { font: var(--text-lg)/1.55 var(--font-sans); color: var(--text-muted); margin: 0; }

/* ---- Feature grid ---- */
.features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.feature { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 24px; box-shadow: var(--shadow-xs); transition: border-color var(--dur), box-shadow var(--dur), transform var(--dur); }
.feature:hover { border-color: var(--border-strong); box-shadow: var(--shadow-md); transform: translateY(-2px); }
.feature__ic { width: 42px; height: 42px; border-radius: var(--radius-md); background: var(--primary-soft); color: var(--primary); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.feature h3 { font: var(--fw-semibold) var(--text-lg)/1.2 var(--font-display); color: var(--text-strong); margin: 0 0 8px; letter-spacing: -0.01em; }
.feature p { font: var(--text-sm)/1.6 var(--font-sans); color: var(--text-muted); margin: 0; }

/* ---- Flagship AEO band (dark) ---- */
.aeo { background: var(--slate-950); color: var(--slate-100); border-radius: var(--radius-2xl); padding: 56px; display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.aeo .eyebrow { color: var(--signal-400); }
.aeo h2 { font: var(--fw-semibold) clamp(28px, 3.6vw, 38px)/1.1 var(--font-display); letter-spacing: -0.025em; color: #fff; margin: 14px 0 16px; }
.aeo p { font: var(--text-md)/1.6 var(--font-sans); color: var(--slate-400); margin: 0 0 22px; }
.aeo__panel { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1); border-radius: var(--radius-lg); padding: 22px; }
.aeo__panel .ph { font: var(--fw-semibold) 10px/1 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--slate-500); margin-bottom: 16px; }
.cited { display: flex; flex-direction: column; gap: 12px; }
.cited__row { display: flex; align-items: center; gap: 12px; }
.cited__dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.cited__name { font: var(--fw-medium) 13px/1 var(--font-mono); color: #fff; width: 150px; }
.cited__bar { flex: 1; height: 6px; border-radius: 3px; background: rgba(255,255,255,.08); overflow: hidden; }
.cited__bar i { display: block; height: 100%; border-radius: 3px; }
.cited__tag { font: var(--fw-semibold) 9px/1 var(--font-mono); padding: 3px 7px; border-radius: var(--radius-xs); }

/* ---- Stats band ---- */
.statsband { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; text-align: center; }
.statsband .n { font: var(--fw-semibold) clamp(32px, 4vw, 46px)/1 var(--font-mono); letter-spacing: -0.02em; color: var(--text-strong); }
.statsband .n em { color: var(--primary); font-style: normal; }
.statsband .l { font: var(--fw-medium) var(--text-sm)/1.3 var(--font-sans); color: var(--text-muted); margin-top: 8px; }

/* ---- Integrations ---- */
.integrations { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; max-width: 760px; margin: 0 auto; }
.chip { display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-pill); font: var(--fw-medium) var(--text-sm)/1 var(--font-sans); color: var(--text); box-shadow: var(--shadow-xs); white-space: nowrap; }
.chip .dot { width: 8px; height: 8px; border-radius: 50%; }

/* ---- CTA ---- */
.cta { text-align: center; background: var(--surface-sunken); border: none; border-radius: var(--radius-2xl); padding: 72px 32px; }
.cta h2 { font: var(--fw-semibold) clamp(30px, 4vw, 44px)/1.08 var(--font-display); letter-spacing: -0.03em; color: var(--text-strong); margin: 0 0 16px; }
.cta p { font: var(--text-lg)/1.5 var(--font-sans); color: var(--text-muted); margin: 0 0 28px; }
.cta__row { display: flex; gap: 12px; justify-content: center; }

/* ---- Footer ---- */
.footer { border-top: 1px solid var(--border); padding: 40px 0; margin-top: 80px; }
.footer__in { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.footer__copy { font: var(--text-xs)/1.5 var(--font-mono); color: var(--text-subtle); }
.footer__links { display: flex; gap: 22px; }
.footer__links a { font: var(--text-sm)/1 var(--font-sans); color: var(--text-muted); }

.section__head h2 em { font-style: normal; color: var(--primary); }

/* ---- Comparison table ---- */
.cmp { max-width: 940px; margin: 0 auto; overflow-x: auto; border: 1px solid var(--border); border-radius: var(--radius-xl); background: var(--surface); box-shadow: var(--shadow-sm); }
.cmp__table { width: 100%; min-width: 660px; border-collapse: collapse; }
.cmp__table th, .cmp__table td { padding: 15px 16px; text-align: center; border-bottom: 1px solid var(--border-subtle); }
.cmp__table tbody tr:last-child td { border-bottom: 0; }
.cmp__table thead th { padding-top: 20px; padding-bottom: 20px; font: var(--fw-semibold) var(--text-sm)/1.2 var(--font-display); color: var(--text-muted); vertical-align: bottom; }
.cmp__feat { text-align: left; width: 38%; }
.cmp__table tbody .cmp__feat { font: var(--fw-medium) var(--text-sm)/1.4 var(--font-sans); color: var(--text-strong); }
.cmp__featlabel { font: var(--fw-semibold) var(--text-2xs)/1 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--text-subtle); }
.cmp__col--us { background: var(--primary-soft); border-left: 1px solid var(--primary-soft-border); border-right: 1px solid var(--primary-soft-border); position: relative; }
.cmp__table thead .cmp__col--us { border-top: 2px solid var(--primary); border-top-left-radius: var(--radius-md); border-top-right-radius: var(--radius-md); }
.cmp__brand { display: block; font: var(--fw-bold) var(--text-lg)/1 var(--font-display); color: var(--primary); letter-spacing: -0.01em; }
.cmp__pill { display: inline-block; margin-top: 7px; font: var(--fw-semibold) 8px/1 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--primary); background: var(--surface); border: 1px solid var(--primary-soft-border); padding: 3px 7px; border-radius: var(--radius-pill); }
.ck { display: inline-flex; align-items: center; justify-content: center; }
.ck svg { width: 17px; height: 17px; }
.ck.yes { color: var(--success); }
.ck.no { color: var(--text-subtle); font: var(--fw-semibold) 15px/1 var(--font-mono); }
.ck.part { font: var(--fw-semibold) 10px/1 var(--font-mono); letter-spacing: .04em; text-transform: uppercase; color: var(--text-muted); background: var(--surface-sunken); border: 1px solid var(--border); padding: 4px 8px; border-radius: var(--radius-pill); }
.cmp__val { font: var(--fw-semibold) var(--text-sm)/1 var(--font-mono); color: var(--text-strong); }
.cmp__val--mut { color: var(--text-muted); font-weight: var(--fw-medium); }
.cmp__col--us .cmp__val { color: var(--primary); }
.cmp__foot { max-width: 940px; margin: 16px auto 0; text-align: center; font: var(--text-2xs)/1.5 var(--font-sans); color: var(--text-subtle); }

/* ---- Alternatives grid ---- */
.alts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.alt { display: block; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 24px; box-shadow: var(--shadow-xs); transition: border-color var(--dur), box-shadow var(--dur), transform var(--dur); }
.alt:hover { border-color: var(--border-strong); box-shadow: var(--shadow-md); transform: translateY(-2px); }
.alt h3 { font: var(--fw-semibold) var(--text-lg)/1.2 var(--font-display); color: var(--text-strong); margin: 0 0 9px; letter-spacing: -0.01em; }
.alt p { font: var(--text-sm)/1.6 var(--font-sans); color: var(--text-muted); margin: 0 0 16px; }
.alt__link { font: var(--fw-semibold) var(--text-xs)/1 var(--font-mono); color: var(--primary); }

/* ---- FAQ ---- */
.faq { max-width: 760px; margin: 0 auto; display: flex; flex-direction: column; gap: 10px; }
.faq__item { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 2px 22px; box-shadow: var(--shadow-xs); }
.faq__item summary { cursor: pointer; list-style: none; padding: 18px 0; font: var(--fw-semibold) var(--text-md)/1.4 var(--font-display); color: var(--text-strong); display: flex; justify-content: space-between; align-items: center; gap: 18px; }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary::after { content: ""; flex-shrink: 0; width: 11px; height: 11px; border-right: 2px solid var(--text-subtle); border-bottom: 2px solid var(--text-subtle); transform: rotate(45deg); transition: transform var(--dur); margin-bottom: 3px; }
.faq__item[open] summary::after { transform: rotate(-135deg); margin-bottom: -3px; }
.faq__item p { margin: 0 0 20px; font: var(--text-sm)/1.7 var(--font-sans); color: var(--text-muted); }

/* big buttons reused from DS */
.bcn-btn--lg.hero-primary { box-shadow: var(--shadow-brand); }

@media (max-width: 920px) {
  .features { grid-template-columns: 1fr; }
  .alts { grid-template-columns: 1fr; }
  .aeo { grid-template-columns: 1fr; padding: 36px; gap: 32px; }
  .statsband { grid-template-columns: repeat(2, 1fr); gap: 28px 16px; }
  .nav__links { display: none; }
  .shot__row { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================================
   WARM EDITORIAL — depth over edges (loaded last so it wins)
   ============================================================ */
/* Cards lose hard outlines, gain soft warm elevation */
.feature, .alt { border-color: transparent; box-shadow: var(--shadow-sm); }
.feature:hover, .alt:hover { border-color: transparent; box-shadow: var(--shadow-md); transform: translateY(-3px); }
.faq__item { border-color: transparent; box-shadow: var(--shadow-xs); }
.cmp { border-color: transparent; box-shadow: var(--shadow-md); }
.frame { border-color: transparent; box-shadow: var(--shadow-lg); }
.chip { border-color: transparent; box-shadow: var(--shadow-xs); }
.nav { background: rgba(246,249,252,.82); }

/* Confident editorial type */
.hero h1 { letter-spacing: -0.04em; }
.section__head h2, .cta h2 { letter-spacing: -0.03em; }
.eyebrow { letter-spacing: .14em; }

/* Highlighted comparison column → warm accent tint (no gradient) */
.cmp__col--us { background: var(--primary-soft); }

/* ---- Blog / Resources ---- */
.blog { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.post {
  display: flex; flex-direction: column; background: var(--surface);
  border-radius: var(--radius-xl); overflow: hidden; box-shadow: var(--shadow-sm);
  transition: box-shadow var(--dur), transform var(--dur);
}
.post:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); }
.post__cover { height: 150px; background: var(--surface-sunken); position: relative; overflow: hidden; }
.post__cover svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.post__body { padding: 20px 22px 24px; display: flex; flex-direction: column; flex: 1; }
.post__tag { font: var(--fw-semibold) var(--text-2xs)/1 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--primary); margin-bottom: 11px; }
.post__title { font: var(--fw-semibold) var(--text-lg)/1.28 var(--font-display); letter-spacing: -0.015em; color: var(--text-strong); margin: 0 0 9px; }
.post__excerpt { font: var(--text-sm)/1.6 var(--font-sans); color: var(--text-muted); margin: 0 0 16px; flex: 1; }
.post__meta { font: var(--text-xs)/1 var(--font-mono); color: var(--text-subtle); display: flex; gap: 10px; align-items: center; }
.section__headrow { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 36px; flex-wrap: wrap; }
.section__headrow h2 { font: var(--fw-semibold) clamp(26px,3.4vw,34px)/1.1 var(--font-display); letter-spacing: -0.025em; color: var(--text-strong); margin: 10px 0 0; }
.section__headrow .eyebrow { color: var(--primary); }
.link-arrow { font: var(--fw-semibold) var(--text-sm)/1 var(--font-sans); color: var(--primary); white-space: nowrap; }
.link-arrow:hover { text-decoration: underline; }

/* ---- Richer footer ---- */
.footer__cols { display: grid; grid-template-columns: 1.4fr repeat(4, 1fr); gap: 32px; padding-bottom: 36px; }
.footer__brandcol p { font: var(--text-sm)/1.6 var(--font-sans); color: var(--text-muted); margin: 14px 0 0; max-width: 260px; }
.footer__col h4 { font: var(--fw-semibold) var(--text-2xs)/1 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--text-subtle); margin: 0 0 14px; }
.footer__col a { display: block; font: var(--text-sm)/1 var(--font-sans); color: var(--text-muted); padding: 7px 0; transition: color var(--dur-fast); }
.footer__col a:hover { color: var(--text-strong); }
.footer__bottom { border-top: 1px solid var(--border); padding-top: 22px; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }

@media (max-width: 920px) {
  .blog { grid-template-columns: 1fr; }
  .footer__cols { grid-template-columns: 1fr 1fr; gap: 28px; }
}

/* ---- Blog article page ---- */
.article { max-width: 720px; margin: 0 auto; padding: 56px 28px 0; }
.article__back { font: var(--fw-medium) var(--text-sm)/1 var(--font-sans); color: var(--text-muted); display: inline-flex; gap: 6px; margin-bottom: 28px; }
.article__back:hover { color: var(--primary); }
.article__tag { font: var(--fw-semibold) var(--text-2xs)/1 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--primary); }
.article h1 { font: var(--fw-semibold) clamp(30px,4.5vw,46px)/1.1 var(--font-display); letter-spacing: -0.035em; color: var(--text-strong); margin: 14px 0 18px; }
.article__meta { display: flex; align-items: center; gap: 12px; font: var(--text-sm)/1 var(--font-mono); color: var(--text-subtle); padding-bottom: 28px; border-bottom: 1px solid var(--border); margin-bottom: 8px; }
.article__cover { height: 280px; border-radius: var(--radius-xl); overflow: hidden; margin: 32px 0; box-shadow: var(--shadow-md); position: relative; background: var(--surface-sunken); }
.article__cover svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.article__body { font: var(--fw-regular) 17px/1.75 var(--font-sans); color: var(--text); padding-bottom: 64px; }
.article__body h2 { font: var(--fw-semibold) 26px/1.25 var(--font-display); letter-spacing: -0.02em; color: var(--text-strong); margin: 40px 0 14px; }
.article__body h3 { font: var(--fw-semibold) 19px/1.3 var(--font-display); color: var(--text-strong); margin: 28px 0 10px; }
.article__body p { margin: 0 0 18px; }
.article__body a { color: var(--primary); font-weight: 600; }
.article__body a:hover { text-decoration: underline; }
.article__body ul, .article__body ol { margin: 0 0 18px; padding-left: 22px; }
.article__body li { margin: 0 0 9px; }
.article__body strong { color: var(--text-strong); font-weight: 600; }
.article__body blockquote { margin: 24px 0; padding: 4px 0 4px 22px; border-left: 3px solid var(--primary); color: var(--text-strong); font: var(--fw-medium) 19px/1.6 var(--font-display); }
.article__body code { font: 14px/1 var(--font-mono); background: var(--surface-sunken); padding: 2px 6px; border-radius: 5px; color: var(--text-strong); }
.article__cta { background: var(--surface-sunken); border-radius: var(--radius-xl); padding: 36px; text-align: center; margin: 16px 0 56px; }
.article__cta h3 { font: var(--fw-semibold) 24px/1.2 var(--font-display); letter-spacing: -0.02em; color: var(--text-strong); margin: 0 0 8px; }
.article__cta p { font: var(--text-md)/1.5 var(--font-sans); color: var(--text-muted); margin: 0 0 20px; }

/* ============================================================
   CREATIVE LANDING — beacon motif, motion, bento (gradient-free)
   ============================================================ */
@keyframes rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes floaty { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-9px); } }
@keyframes ringpulse { 0% { r: 60px; opacity: .5; } 100% { r: 340px; opacity: 0; } }
@keyframes ping { 0% { transform: scale(.5); opacity: .7; } 100% { transform: scale(2); opacity: 0; } }

/* scroll reveal (only active when JS is on, so content never hides without it) */
html.js .reveal { opacity: 0; transform: translateY(22px); }
html.js .reveal.in { opacity: 1; transform: none; transition: opacity .7s var(--ease), transform .7s var(--ease); }

/* ---- Hero ---- */
.hero { padding: 92px 0 56px; }
.hero__rings { position: absolute; left: 50%; top: 60px; transform: translateX(-50%); width: 760px; height: 760px; max-width: 124vw; z-index: 0; pointer-events: none; }
.hero__rings circle { fill: none; stroke: var(--primary); stroke-opacity: .12; }
.hero__rings .dot { fill: var(--signal-400); stroke: none; }
.hero__rings .ping { stroke: var(--primary); stroke-opacity: .35; animation: ringpulse 4.6s ease-out infinite; }
.hero__rings .ping.b { animation-delay: 2.3s; }
.hero__in { position: relative; z-index: 1; }
.hero__in > * { animation: rise .7s var(--ease) both; }
.hero__badge { animation-delay: .04s; }
.hero h1 { animation-delay: .1s; }
.hero__sub { animation-delay: .18s; }
.hero__cta { animation-delay: .26s; }
.hero__note { animation-delay: .32s; }
.hero__stage { animation-delay: .42s; }
.hero__badge .pulse { position: relative; width: 7px; height: 7px; border-radius: 50%; background: var(--primary); display: inline-block; }
.hero__badge .pulse::after { content: ""; position: absolute; inset: -3px; border-radius: 50%; border: 1px solid var(--primary); animation: ping 1.8s ease-out infinite; }
.hero h1 { font: var(--fw-semibold) clamp(44px, 7.2vw, 82px)/1.0 var(--font-display); letter-spacing: -0.045em; }
.hero__sub { max-width: 580px; }

/* Hero product stage + floating chips */
.hero__stage { position: relative; max-width: 1000px; margin: 56px auto 0; }
.hero__stage .frame { margin-top: 0; }
.float-chip { position: absolute; z-index: 3; background: var(--surface); border-radius: 16px; box-shadow: var(--shadow-lg); padding: 12px 16px; display: flex; align-items: center; gap: 12px; animation: floaty 6s ease-in-out infinite; text-align: left; }
.float-chip .fc-ic { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; flex-shrink: 0; }
.float-chip .fc-ic svg { width: 18px; height: 18px; }
.float-chip .fc-l { display: block; font: var(--fw-semibold) 9px/1 var(--font-mono); letter-spacing: .07em; text-transform: uppercase; color: var(--text-subtle); }
.float-chip .fc-v { display: block; font: var(--fw-semibold) 18px/1.1 var(--font-mono); color: var(--text-strong); margin-top: 4px; }
.float-chip--a { top: 52px; left: -30px; animation-delay: .2s; }
.float-chip--b { bottom: 76px; right: -32px; animation-delay: 1.7s; }
@media (max-width: 760px) { .float-chip { display: none; } }

/* ---- Bento features ---- */
.bento { display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; }
.tile { background: var(--surface); border-radius: 20px; box-shadow: var(--shadow-sm); padding: 26px 26px 28px; display: flex; flex-direction: column; min-height: 178px; transition: box-shadow var(--dur), transform var(--dur); }
.tile:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); }
.tile__ic { width: 44px; height: 44px; border-radius: 13px; background: var(--primary-soft); color: var(--primary); display: grid; place-items: center; }
.tile__ic svg { width: 22px; height: 22px; }
.tile__txt { margin-top: auto; padding-top: 22px; }
.tile h3 { font: var(--fw-semibold) var(--text-lg)/1.2 var(--font-display); letter-spacing: -0.01em; color: var(--text-strong); margin: 0 0 7px; }
.tile p { font: var(--text-sm)/1.6 var(--font-sans); color: var(--text-muted); margin: 0; }
.tile--c4 { grid-column: span 4; } .tile--c3 { grid-column: span 3; } .tile--c2 { grid-column: span 2; }
.tile--dark { background: var(--slate-900); }
.tile--dark h3 { color: #fff; } .tile--dark p { color: var(--slate-300); }
.tile--dark .tile__ic { background: rgba(255,255,255,.1); color: var(--signal-400); }
.sov-mini { display: flex; flex-direction: column; gap: 10px; margin-top: 20px; }
.sov-mini .row { display: flex; flex-direction: column; gap: 5px; }
.sov-mini .meta { display: flex; justify-content: space-between; font: var(--fw-medium) 11px/1 var(--font-mono); color: var(--slate-300); }
.sov-mini .track { height: 7px; border-radius: 4px; background: rgba(255,255,255,.1); overflow: hidden; }
.sov-mini .track i { display: block; height: 100%; border-radius: 4px; }
@media (max-width: 920px) { .bento { grid-template-columns: repeat(2, 1fr); } .tile--c4, .tile--c3, .tile--c2 { grid-column: span 2; } }

/* ============================================================
   AZURE LIGHT — component treatments (blue primary + green signal)
   ============================================================ */
body { background: var(--bg-app); }
.nav { background: rgba(246,249,252,.82); border-bottom: 1px solid var(--border); }
.hero h1 .em { color: var(--signal-400); }  /* "and AI" pops green */
.hero__rings circle { stroke: var(--primary); stroke-opacity: .1; }
.hero__rings .ping { stroke: var(--primary); stroke-opacity: .35; }
.hero__rings .dot { fill: var(--signal-400); }
.hero__badge { background: var(--surface); border-color: var(--border); color: var(--text-muted); box-shadow: var(--shadow-xs); }
.hero-primary, .bcn-btn--primary { box-shadow: var(--shadow-brand); }
.bcn-btn--primary:hover { box-shadow: 0 14px 34px -8px rgba(31,111,235,.5); }
.frame { box-shadow: var(--shadow-xl), 0 0 0 1px var(--border); }
.float-chip { background: var(--surface); box-shadow: var(--shadow-lg), 0 0 0 1px var(--border); }
.logos__row span { color: var(--text-subtle); }

/* Bento */
.tile { background: var(--surface); box-shadow: var(--shadow-sm), inset 0 0 0 1px var(--border-subtle); }
.tile:hover { box-shadow: var(--shadow-md); }
.tile__ic { background: var(--primary-soft); color: var(--primary); }
/* AI Visibility hero tile stays a deep navy block for contrast on light */
.tile--dark { background: var(--slate-900); box-shadow: 0 24px 60px -24px rgba(15,40,80,.4); }
.tile--dark .tile__ic { background: rgba(22,163,74,.18); color: #4ADE80; }
.tile--dark h3 { color: #fff; } .tile--dark p { color: var(--slate-300); }
.sov-mini .meta { color: var(--slate-300); }
.sov-mini .track { background: rgba(255,255,255,.1); }

/* AEO band: deep navy band on the light page (intentional contrast) */
.aeo { background: var(--slate-900); }
.aeo .eyebrow { color: #4ADE80; }
.aeo h2 { color: #fff; } .aeo p { color: var(--slate-300); }
.aeo__panel { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.1); }

/* CTA: soft blue card */
.cta { background: var(--primary-soft); box-shadow: inset 0 0 0 1px var(--primary-soft-border); }

/* Comparison highlight */
.cmp__col--us { background: var(--primary-soft); }
.cmp__table thead .cmp__col--us { border-top-color: var(--primary); }

/* ============================================================
   NEW SECTIONS — social proof, pricing, product viz
   ============================================================ */
.proofbar { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; padding: 36px; background: var(--surface); border-radius: var(--radius-2xl); box-shadow: var(--shadow-sm), inset 0 0 0 1px var(--border-subtle); text-align: center; }
.proofbar .n { font: var(--fw-semibold) clamp(30px,4vw,46px)/1 var(--font-mono); letter-spacing: -.02em; color: var(--text-strong); }
.proofbar .n em { color: var(--primary); font-style: normal; }
.proofbar .l { font: var(--fw-medium) var(--text-sm)/1.3 var(--font-sans); color: var(--text-muted); margin-top: 8px; }

.tcards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.tcard { background: var(--surface-raised); border-radius: var(--radius-xl); padding: 26px; box-shadow: var(--shadow-sm), inset 0 0 0 1px var(--border-subtle); display: flex; flex-direction: column; }
.tcard .stars { color: var(--signal-400); font-size: 13px; letter-spacing: 2px; margin-bottom: 14px; }
.tcard p { font: var(--fw-medium) var(--text-md)/1.6 var(--font-sans); color: var(--text-strong); margin: 0 0 20px; flex: 1; }
.tcard__who { display: flex; align-items: center; gap: 12px; }
.tcard__av { width: 40px; height: 40px; border-radius: 50%; background: var(--primary); color: #fff; display: grid; place-items: center; font: var(--fw-bold) 14px/1 var(--font-display); flex-shrink: 0; }
.tcard__n { font: var(--fw-semibold) var(--text-sm)/1.2 var(--font-sans); color: var(--text-strong); }
.tcard__r { font: var(--text-xs)/1.2 var(--font-sans); color: var(--text-muted); margin-top: 2px; }

.pricing { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; align-items: start; }
.plan { background: var(--surface-raised); border-radius: var(--radius-2xl); padding: 30px 28px 32px; box-shadow: var(--shadow-sm), inset 0 0 0 1px var(--border-subtle); position: relative; }
.plan--hot { box-shadow: 0 0 0 2px var(--primary), 0 28px 60px -24px rgba(31,111,235,.4); transform: translateY(-6px); }
.plan__badge { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); background: var(--primary); color: #fff; font: var(--fw-semibold) 10px/1 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; padding: 6px 12px; border-radius: var(--radius-pill); white-space: nowrap; }
.plan__name { font: var(--fw-semibold) var(--text-lg)/1 var(--font-display); color: var(--text-strong); }
.plan__price { display: flex; align-items: baseline; gap: 4px; margin: 16px 0 4px; }
.plan__price .amt { font: var(--fw-semibold) 44px/1 var(--font-display); letter-spacing: -.03em; color: var(--text-strong); }
.plan__price .per { font: var(--text-sm)/1 var(--font-sans); color: var(--text-muted); }
.plan__sub { font: var(--text-sm)/1.5 var(--font-sans); color: var(--text-muted); margin: 0 0 22px; min-height: 40px; }
.plan ul { list-style: none; margin: 0 0 26px; padding: 0; }
.plan li { display: flex; gap: 10px; align-items: flex-start; font: var(--text-sm)/1.5 var(--font-sans); color: var(--text); padding: 7px 0; }
.plan li svg { width: 16px; height: 16px; flex-shrink: 0; color: var(--success); margin-top: 2px; }
.plan .bcn-btn { width: 100%; justify-content: center; }

.kwviz { background: var(--surface); border-radius: var(--radius-xl); box-shadow: var(--shadow-md), inset 0 0 0 1px var(--border); overflow: hidden; }
.kwviz__bar { display: flex; align-items: center; gap: 8px; padding: 13px 16px; border-bottom: 1px solid var(--border); background: var(--surface-sunken); font: var(--fw-medium) 12px/1 var(--font-mono); color: var(--text-muted); }
.kwviz table { width: 100%; border-collapse: collapse; }
.kwviz th { text-align: left; font: var(--fw-semibold) 9px/1 var(--font-mono); letter-spacing: .07em; text-transform: uppercase; color: var(--text-subtle); padding: 11px 16px; background: var(--surface-sunken); }
.kwviz td { padding: 13px 16px; border-top: 1px solid var(--border); font: var(--fw-medium) 13px/1.2 var(--font-sans); color: var(--text-strong); }
.kwviz .vol { font: var(--fw-semibold) 13px/1 var(--font-mono); }
.kwviz .badge { font: var(--fw-semibold) 9px/1 var(--font-mono); text-transform: uppercase; letter-spacing: .04em; padding: 3px 7px; border-radius: 5px; }
.kwviz .g-meas { color: var(--success); background: rgba(52,211,153,.14); }
.kwviz .g-cal { color: var(--info-500); background: rgba(84,168,255,.14); }
.kwviz .g-mod { color: #B45309; background: rgba(224,150,42,.16); }
.split { display: grid; grid-template-columns: 1fr 1.1fr; gap: 48px; align-items: center; }
.split h2 { font: var(--fw-semibold) clamp(26px,3.6vw,38px)/1.12 var(--font-display); letter-spacing: -.025em; color: var(--text-strong); margin: 14px 0 14px; }
.split p { font: var(--text-md)/1.6 var(--font-sans); color: var(--text-muted); margin: 0 0 14px; }
.split .ticks { list-style: none; margin: 18px 0 0; padding: 0; }
.split .ticks li { display: flex; gap: 10px; font: var(--fw-medium) var(--text-sm)/1.5 var(--font-sans); color: var(--text); padding: 7px 0; }
.split .ticks svg { width: 18px; height: 18px; color: var(--primary); flex-shrink: 0; }

@media (max-width: 920px) {
  .proofbar { grid-template-columns: repeat(2, 1fr); gap: 24px 16px; }
  .tcards, .pricing { grid-template-columns: 1fr; }
  .plan--hot { transform: none; }
  .split { grid-template-columns: 1fr; gap: 28px; }
}

/* ---- Integrations (real third-party) ---- */
.intgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.intcard { display: flex; align-items: center; gap: 13px; background: var(--surface); border-radius: 14px; padding: 15px 17px; box-shadow: var(--shadow-xs), inset 0 0 0 1px var(--border-subtle); transition: box-shadow var(--dur), transform var(--dur); }
.intcard:hover { box-shadow: var(--shadow-sm); transform: translateY(-2px); }
.intcard__logo { width: 40px; height: 40px; border-radius: 11px; display: grid; place-items: center; flex-shrink: 0; }
.intcard__logo svg { width: 20px; height: 20px; }
.intcard__n { font: var(--fw-semibold) var(--text-sm)/1.2 var(--font-sans); color: var(--text-strong); }
.intcard__c { font: 9px/1.2 var(--font-mono); color: var(--text-subtle); letter-spacing: .05em; text-transform: uppercase; margin-top: 4px; }
.logos__row span { font: var(--fw-semibold) var(--text-md)/1 var(--font-display); }
@media (max-width: 920px) { .intgrid { grid-template-columns: repeat(2, 1fr); } }

/* ============================================================
   HERO V2 — asymmetric, layered, depth (overrides earlier hero)
   ============================================================ */
.hero { padding: 64px 0 64px; text-align: left; overflow: visible; }
.hero__grid2 { display: grid; grid-template-columns: 1.05fr .95fr; gap: 56px; align-items: center; position: relative; z-index: 1; }
.hero__grid2 > * { animation: rise .8s var(--ease) both; }
.hero__visual { animation-delay: .14s; }
.hero__copy h1 { font: var(--fw-semibold) clamp(38px,4.8vw,62px)/1.04 var(--font-display); letter-spacing: -0.04em; color: var(--text-strong); margin: 18px 0 18px; }
.hero__copy .hero__sub { margin: 0 0 26px; max-width: 520px; }
.hero__copy .hero__cta { justify-content: flex-start; }
.hero__social { display: flex; align-items: center; gap: 14px; margin-top: 28px; }
.avstack { display: flex; }
.avstack span { width: 34px; height: 34px; border-radius: 50%; border: 2px solid var(--surface); margin-left: -9px; display: grid; place-items: center; color: #fff; font: 800 12px/1 var(--font-display); box-shadow: var(--shadow-xs); }
.avstack span:first-child { margin-left: 0; }
.hero__social .stars { color: var(--signal-400); letter-spacing: 1px; font-size: 12px; }
.hero__social .rt { font: var(--text-xs)/1.4 var(--font-sans); color: var(--text-muted); margin-top: 3px; }
.hero__social .rt b { color: var(--text-strong); }

.hero__visual { position: relative; min-height: 380px; }
.hv-main { background: var(--surface); border-radius: 18px; box-shadow: var(--shadow-lg), 0 0 0 1px var(--border); overflow: hidden; }
.hv-bar { display: flex; gap: 6px; padding: 12px 15px; background: var(--surface-sunken); border-bottom: 1px solid var(--border); }
.hv-bar i { width: 10px; height: 10px; border-radius: 50%; background: var(--slate-300); }
.hv-body { padding: 18px; }
.hv-kpis { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin-bottom: 16px; }
.hv-kpi { border: 1px solid var(--border); border-radius: 11px; padding: 12px; }
.hv-kpi .l { font: 700 8px/1 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--text-subtle); }
.hv-kpi .v { font: 700 21px/1 var(--font-mono); color: var(--text-strong); margin-top: 8px; }
.hv-kpi .v.b { color: var(--primary); }
.hv-chart { display: flex; align-items: flex-end; gap: 8px; height: 112px; }
.hv-chart i { flex: 1; background: var(--primary); border-radius: 4px 4px 2px 2px; }
.hv-chart i.g { background: var(--signal-400); }

.hv-float { position: absolute; background: var(--surface); border-radius: 14px; box-shadow: var(--shadow-lg), 0 0 0 1px var(--border); padding: 14px 16px; z-index: 2; animation: floaty 6s ease-in-out infinite; }
.hv-score { top: -26px; right: -22px; display: flex; align-items: center; gap: 13px; }
.hv-score .ring { width: 50px; height: 50px; position: relative; flex-shrink: 0; }
.hv-score .ring svg { width: 100%; height: 100%; }
.hv-score .ring b { position: absolute; inset: 0; display: grid; place-items: center; font: 800 12px/1 var(--font-mono); color: var(--text-strong); }
.hv-score .l { font: 700 8px/1 var(--font-mono); letter-spacing: .07em; text-transform: uppercase; color: var(--text-subtle); }
.hv-score .s { font: 700 13px/1.2 var(--font-sans); color: var(--text-strong); margin-top: 4px; }
.hv-sov { bottom: -26px; left: -24px; width: 212px; animation-delay: 1.7s; }
.hv-sov .t { font: 700 9px/1 var(--font-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--text-subtle); margin-bottom: 12px; }
.hv-sov .row { display: flex; flex-direction: column; gap: 5px; margin-bottom: 9px; }
.hv-sov .row:last-child { margin-bottom: 0; }
.hv-sov .meta { display: flex; justify-content: space-between; font: 600 10px/1 var(--font-mono); color: var(--text-muted); }
.hv-sov .track { height: 6px; border-radius: 3px; background: var(--surface-sunken); overflow: hidden; }
.hv-sov .track i { display: block; height: 100%; border-radius: 3px; }

@media (max-width: 920px) {
  .hero { text-align: center; padding-top: 40px; }
  .hero__grid2 { grid-template-columns: 1fr; gap: 70px; }
  .hero__copy .hero__cta, .hero__social { justify-content: center; }
  .hero__visual { max-width: 440px; margin: 10px auto 0; }
}

/* ============================================================
   UPGRADE PASS — richness: spotlight, texture, mini-viz, polish
   ============================================================ */
/* Soft spotlight + dot texture behind the hero (lighting, not a color fill) */
.hero { position: relative; }
.hero::before { content: ""; position: absolute; top: -180px; left: 50%; transform: translateX(-50%); width: 1100px; height: 720px; background: radial-gradient(ellipse at center, rgba(31,111,235,.10), rgba(22,163,74,.05) 40%, transparent 66%); pointer-events: none; z-index: 0; }
.hero::after { content: ""; position: absolute; inset: 0; background-image: radial-gradient(circle, var(--border) 1px, transparent 1.4px); background-size: 26px 26px; -webkit-mask-image: radial-gradient(ellipse 65% 55% at 50% 32%, #000, transparent 76%); mask-image: radial-gradient(ellipse 65% 55% at 50% 32%, #000, transparent 76%); opacity: .55; pointer-events: none; z-index: 0; }

/* Eyebrow becomes a chip */
.eyebrow { display: inline-flex; align-items: center; gap: 7px; background: var(--primary-soft); color: var(--primary); padding: 6px 13px; border-radius: var(--radius-pill); box-shadow: inset 0 0 0 1px var(--primary-soft-border); }
.eyebrow::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.aeo .eyebrow { background: rgba(74,222,128,.14); color: #4ADE80; box-shadow: inset 0 0 0 1px rgba(74,222,128,.25); }

/* Bigger, more confident hero type */
.hero__copy h1 { font-size: clamp(40px, 5.2vw, 66px); }

/* Card polish — crisper depth + hairline ring + lift */
.tile, .tcard, .plan, .post, .intcard, .cmp, .kwviz, .proofbar, .faq__item { box-shadow: var(--shadow-sm), 0 0 0 1px var(--border-subtle); }
.tile:hover, .post:hover, .intcard:hover, .alt:hover, .feature:hover { box-shadow: var(--shadow-md), 0 0 0 1px var(--border); }

/* ---- Bento mini-visualizations ---- */
.tile { padding: 24px; }
.tile__head { display: flex; align-items: center; gap: 11px; margin-bottom: 16px; }
.tile__head .tile__ic { width: 38px; height: 38px; border-radius: 10px; margin: 0; }
.tile__head .tile__ic svg { width: 19px; height: 19px; }
.tile__head h3 { font: var(--fw-semibold) var(--text-md)/1.2 var(--font-display); color: var(--text-strong); margin: 0; }
.tile > p { font: var(--text-sm)/1.55 var(--font-sans); color: var(--text-muted); margin: 14px 0 0; }
.tile--dark > p { color: var(--slate-300); }
.tile--dark .tile__head h3 { color: #fff; }
.mv { border-radius: 12px; background: var(--surface-sunken); padding: 14px; }
.tile--dark .mv { background: rgba(255,255,255,.06); }
.mv-bars { display: flex; align-items: flex-end; gap: 7px; height: 60px; }
.mv-bars i { flex: 1; background: var(--primary-soft); border-radius: 4px 4px 2px 2px; }
.mv-bars i.on { background: var(--primary); }
.mv-checks { display: flex; flex-direction: column; gap: 7px; }
.mv-checks span { display: inline-flex; align-items: center; gap: 6px; width: max-content; font: 600 10px/1 var(--font-mono); color: var(--success); background: var(--surface); padding: 6px 9px; border-radius: 7px; box-shadow: var(--shadow-xs); }
.mv-doc { display: flex; flex-direction: column; gap: 6px; }
.mv-doc span { height: 6px; border-radius: 3px; background: var(--slate-200); }
.mv-doc .h { width: 42%; height: 8px; background: var(--primary); }
.mv-ticket { display: flex; align-items: center; gap: 9px; }
.mv-ticket .tag { font: 700 9px/1 var(--font-mono); color: #fff; background: #2684FF; padding: 4px 7px; border-radius: 5px; flex-shrink: 0; }
.mv-ticket .ln { flex: 1; height: 7px; border-radius: 4px; background: var(--slate-200); }
.mv svg { display: block; width: 100%; height: 60px; }
.sov-mini { margin-top: 0; }

/* ============================================================
   HERO V3 — input-led, centered (Ahrefs / Semrush pattern)
   ============================================================ */
.hero { padding: 58px 0 64px; text-align: center; }
.hero__in { position: relative; z-index: 1; max-width: 940px; margin: 0 auto; }
.hero__in > * { animation: rise .7s var(--ease) both; }
.hero__in h1 { animation-delay: .05s; } .hero__sub { animation-delay: .12s; }
.hero__search { animation-delay: .2s; } .hero__trust { animation-delay: .26s; }
.hero__g2 { display: inline-flex; align-items: center; gap: 9px; margin-bottom: 24px; font: var(--fw-medium) var(--text-sm)/1 var(--font-sans); color: var(--text-muted); background: var(--surface); border: 1px solid var(--border); padding: 7px 15px; border-radius: var(--radius-pill); box-shadow: var(--shadow-xs); }
.hero__g2 .stars { color: var(--signal-400); letter-spacing: 1.5px; }
.hero__g2 b { color: var(--text-strong); }
.hero h1 { font: var(--fw-semibold) clamp(40px, 5.4vw, 70px)/1.03 var(--font-display); letter-spacing: -0.04em; color: var(--text-strong); margin: 0 0 18px; }
.hero h1 .em { color: var(--signal-400); }
.hero__sub { max-width: 600px; margin: 0 auto 30px; font: var(--fw-regular) var(--text-lg)/1.55 var(--font-sans); color: var(--text-muted); }
.hero__search { display: flex; align-items: center; gap: 10px; background: var(--surface); border: 1.5px solid var(--border-strong); border-radius: 16px; box-shadow: var(--shadow-md); padding: 7px 7px 7px 18px; max-width: 600px; margin: 0 auto; transition: border-color .15s, box-shadow .15s; }
.hero__search:focus-within { border-color: var(--primary); box-shadow: var(--shadow-md), var(--ring); }
.hero__search > svg { width: 20px; height: 20px; color: var(--text-subtle); flex-shrink: 0; }
.hero__search input { flex: 1; min-width: 0; border: none; outline: none; background: none; font: var(--fw-medium) 15px/1 var(--font-sans); color: var(--text-strong); padding: 13px 0; }
.hero__search input::placeholder { color: var(--text-subtle); font-weight: 400; }
.hero__search .bcn-btn { flex-shrink: 0; }
.hero__trust { margin-top: 16px; font: var(--text-xs)/1.5 var(--font-mono); color: var(--text-subtle); }
.hero__shot { max-width: 1000px; margin: 60px auto 0; position: relative; z-index: 1; }
@media (max-width: 620px) {
  .hero__search { flex-wrap: wrap; padding: 12px; }
  .hero__search input { width: 100%; padding: 6px 4px; }
  .hero__search .bcn-btn { width: 100%; }
}

/* ============================================================
   PREMIUM — 3D tilt, glow orbs, glass, motion
   ============================================================ */
.hero { overflow: hidden; }
.hero__orb { position: absolute; border-radius: 50%; filter: blur(72px); z-index: 0; pointer-events: none; }
.orb-1 { width: 360px; height: 360px; background: #1F6FEB; opacity: .16; top: -90px; left: -70px; animation: orbFloat 10s ease-in-out infinite; }
.orb-2 { width: 320px; height: 320px; background: #16A34A; opacity: .14; top: 20px; right: -80px; animation: orbFloat 13s ease-in-out infinite reverse; }
.orb-3 { width: 300px; height: 300px; background: #1F6FEB; opacity: .09; bottom: -80px; left: 42%; animation: orbFloat 16s ease-in-out infinite; }
@keyframes orbFloat { 0%,100% { transform: translate(0,0); } 50% { transform: translate(22px,-28px); } }

/* 3D tilted, floating product card */
.tilt3d-wrap { perspective: 1700px; }
.tilt3d { transform-style: preserve-3d; transform: rotateX(7deg) rotateY(-9deg); transition: transform .25s ease-out; will-change: transform; }
.tilt3d .frame { animation: heroFloat 7s ease-in-out infinite; box-shadow: 0 50px 90px -28px rgba(15,40,80,.42), 0 0 0 1px var(--border); }
@keyframes heroFloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }

/* Glassmorphism chips, popped forward in 3D space */
.tilt3d .float-chip { animation: none; transform: translateZ(72px); background: rgba(255,255,255,.72); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); border: 1px solid rgba(255,255,255,.7); box-shadow: 0 22px 44px -12px rgba(15,40,80,.32); }

/* Shimmer sweep on the primary CTA */
.hero-primary { position: relative; overflow: hidden; }
.hero-primary::after { content: ""; position: absolute; top: 0; left: -60%; width: 38%; height: 100%; background: rgba(255,255,255,.28); transform: skewX(-20deg); animation: shine 5s ease-in-out infinite; pointer-events: none; }
@keyframes shine { 0%,62% { left: -60%; } 84%,100% { left: 135%; } }

@media (prefers-reduced-motion: reduce) {
  .tilt3d .frame, .hero__orb, .hero-primary::after { animation: none; }
}

/* ============================================================
   PREMIUM v2 — cursor spotlight, 3rd card, reflection, depth
   ============================================================ */
/* cursor-following spotlight over the hero */
.hero__spot { position: absolute; top: 0; left: 0; width: 540px; height: 540px; margin: -270px 0 0 -270px; border-radius: 50%; background: radial-gradient(circle, rgba(31,111,235,.16), rgba(22,163,74,.05) 48%, transparent 64%); pointer-events: none; opacity: 0; transition: opacity .35s ease; z-index: 0; will-change: transform; }

/* stronger ambient orbs */
.orb-1 { opacity: .2; } .orb-2 { opacity: .17; }

/* third floating glass card (organic clicks sparkline) */
.hv3 { position: absolute; right: -24px; top: 35%; z-index: 3; transform: translateZ(54px); width: 176px; background: rgba(255,255,255,.74); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); border: 1px solid rgba(255,255,255,.72); border-radius: 14px; box-shadow: 0 24px 46px -12px rgba(15,40,80,.32); padding: 13px 15px; }
.hv3 .l { font: 700 8px/1 var(--font-mono); letter-spacing: .07em; text-transform: uppercase; color: var(--text-subtle); }
.hv3 .v { display: flex; align-items: baseline; gap: 7px; margin-top: 7px; }
.hv3 .v b { font: 800 18px/1 var(--font-mono); color: var(--text-strong); }
.hv3 .v em { font: 700 11px/1 var(--font-sans); color: var(--success); font-style: normal; }
.hv3 svg { display: block; width: 100%; height: 30px; margin-top: 9px; }

/* deeper layered shadow + ground reflection under the tilted card */
.tilt3d .frame { position: relative; }
.tilt3d .frame::before { content: ""; position: absolute; left: 8%; right: 8%; bottom: -48px; height: 74px; background: radial-gradient(ellipse at center, rgba(15,40,80,.3), transparent 68%); filter: blur(17px); z-index: -1; }

@media (max-width: 760px) { .hv3 { display: none; } .hero__spot { display: none; } }

/* ============================================================
   SECTION UPGRADE — premium hover, glow, glass, motion
   ============================================================ */
/* Unified premium hover lift + glow ring on all cards */
.tile, .tcard, .plan, .post, .intcard, .alt, .feature, .kwviz {
  transition: transform .25s var(--ease), box-shadow .25s var(--ease);
}
.tile:hover, .tcard:hover, .post:hover, .intcard:hover, .alt:hover, .feature:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md), 0 0 0 1px var(--primary-soft-border);
}

/* AEO band — ambient glow + glass cited panel + animated bars */
.aeo { position: relative; overflow: hidden; }
.aeo::before { content: ""; position: absolute; width: 440px; height: 440px; border-radius: 50%; background: #1F6FEB; opacity: .24; filter: blur(95px); top: -150px; right: -90px; pointer-events: none; }
.aeo::after { content: ""; position: absolute; width: 380px; height: 380px; border-radius: 50%; background: #16A34A; opacity: .16; filter: blur(95px); bottom: -170px; left: -70px; pointer-events: none; }
.aeo > * { position: relative; z-index: 1; }
.aeo__panel { background: rgba(255,255,255,.07); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border: 1px solid rgba(255,255,255,.13); box-shadow: var(--shadow-lg); }
.aeo.in .cited__bar i { animation: growW 1.1s var(--ease) both; }
.aeo.in .cited__row:nth-child(2) .cited__bar i { animation-delay: .1s; }
.aeo.in .cited__row:nth-child(3) .cited__bar i { animation-delay: .2s; }
.aeo.in .cited__row:nth-child(4) .cited__bar i { animation-delay: .3s; }
@keyframes growW { from { width: 0; } }

/* Pricing — glow halo + lift + circular check badges */
.plan { transition: transform .25s var(--ease), box-shadow .25s var(--ease); }
.plan:hover { transform: translateY(-5px); box-shadow: var(--shadow-md), 0 0 0 1px var(--primary-soft-border); }
.plan--hot { box-shadow: 0 0 0 2px var(--primary), 0 0 54px -10px rgba(31,111,235,.4), var(--shadow-lg); }
.plan--hot:hover { transform: translateY(-11px); box-shadow: 0 0 0 2px var(--primary), 0 0 70px -8px rgba(31,111,235,.5), var(--shadow-lg); }
.plan li svg { background: var(--success); color: #fff; border-radius: 50%; padding: 3px; box-sizing: border-box; }

/* Testimonials — avatar ring + faint quote mark */
.tcard { position: relative; overflow: hidden; }
.tcard::before { content: "\201C"; position: absolute; top: 8px; right: 22px; font: 800 64px/1 var(--font-display); color: var(--primary); opacity: .1; }
.tcard__av { box-shadow: 0 0 0 3px var(--surface), 0 0 0 4px var(--primary-soft-border); }

/* Comparison + keyword table — row hover */
.cmp__table tbody tr, .kwviz tbody tr { transition: background .15s; }
.cmp__table tbody tr:hover, .kwviz tbody tr:hover { background: var(--surface-hover); }
.kwviz { transition: transform .3s var(--ease), box-shadow .3s var(--ease); }
.kwviz:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg), inset 0 0 0 1px var(--border); }

/* Bento mini-bars grow on reveal */
.bento .mv-bars i { transform-origin: bottom; }
.bento.in .mv-bars i { animation: growH .7s var(--ease) both; }
.bento.in .mv-bars i:nth-child(2) { animation-delay: .06s; }
.bento.in .mv-bars i:nth-child(3) { animation-delay: .12s; }
.bento.in .mv-bars i:nth-child(4) { animation-delay: .18s; }
.bento.in .mv-bars i:nth-child(5) { animation-delay: .24s; }
.bento.in .mv-bars i:nth-child(6) { animation-delay: .3s; }
@keyframes growH { from { transform: scaleY(0); } }

/* CTA — premium glowing panel */
.cta { position: relative; overflow: hidden; }
.cta::before { content: ""; position: absolute; width: 520px; height: 520px; border-radius: 50%; background: #1F6FEB; opacity: .12; filter: blur(95px); top: -210px; left: -110px; pointer-events: none; }
.cta::after { content: ""; position: absolute; width: 440px; height: 440px; border-radius: 50%; background: #16A34A; opacity: .1; filter: blur(95px); bottom: -220px; right: -90px; pointer-events: none; }
.cta > * { position: relative; z-index: 1; }

/* Section heads + scroll reveal: gentle upward, with a touch more travel */
html.js .reveal { transform: translateY(26px); }

/* ============================================================
   STACK — sticky stacking branded panels (Semrush-style scroll)
   Each panel pins, the next slides up over it with its own brand bg.
   ============================================================ */
.stack { position: relative; }
.stack-panel { position: sticky; top: 0; min-height: 100vh; display: grid; align-items: center; border-radius: 36px 36px 0 0; box-shadow: 0 -28px 70px -30px rgba(15,40,80,.3); overflow: hidden; padding: 72px 0; }
.stack-panel:first-child { border-radius: 0; box-shadow: none; }
.sp__in { display: grid; grid-template-columns: 1.05fr 1fr; gap: 60px; align-items: center; position: relative; z-index: 1; }
.sp__step { font: 800 13px/1 var(--font-mono); letter-spacing: .14em; color: var(--primary); }
.sp__copy h2 { font: var(--fw-semibold) clamp(30px,3.9vw,48px)/1.08 var(--font-display); letter-spacing: -0.03em; color: var(--text-strong); margin: 16px 0 16px; }
.sp__copy > p { font: var(--text-lg)/1.6 var(--font-sans); color: var(--text-muted); margin: 0 0 22px; max-width: 480px; }
.sp__copy .ticks { list-style: none; margin: 0 0 28px; padding: 0; }
.sp__copy .ticks li { display: flex; gap: 11px; align-items: center; padding: 8px 0; font: var(--fw-medium) var(--text-md)/1.4 var(--font-sans); color: var(--text); }
.sp__copy .ticks svg { width: 20px; height: 20px; flex-shrink: 0; color: var(--success); }
.sp__viz { position: relative; }
.sp__viz .hv-main, .sp__viz .kwviz, .sp__viz .aeo__panel { box-shadow: var(--shadow-xl), 0 0 0 1px var(--border); }

/* glow accents per panel */
.stack-panel::before { content: ""; position: absolute; width: 460px; height: 460px; border-radius: 50%; filter: blur(110px); opacity: .5; pointer-events: none; }
.sp--1::before { background: #1F6FEB; opacity: .1; top: -160px; left: -100px; }
.sp--2::before { background: #1F6FEB; opacity: .35; top: -140px; right: -120px; }
.sp--2::after { content: ""; position: absolute; width: 420px; height: 420px; border-radius: 50%; filter: blur(110px); background: #16A34A; opacity: .22; bottom: -180px; left: -90px; pointer-events: none; }
.sp--3::before { background: #16A34A; opacity: .12; bottom: -160px; right: -100px; }

/* panel themes (branded backgrounds) */
.sp--1 { background: var(--surface); }
.sp--2 { background: #0F172A; }
.sp--2 .sp__copy h2 { color: #fff; }
.sp--2 .sp__copy > p { color: var(--slate-300); }
.sp--2 .sp__step { color: #4ADE80; }
.sp--2 .sp__copy .ticks li { color: var(--slate-100); }
.sp--3 { background: #EAF2FF; }

@media (max-width: 920px) {
  .stack-panel { position: relative; min-height: auto; padding: 64px 0; border-radius: 28px 28px 0 0; }
  .sp__in { grid-template-columns: 1fr; gap: 36px; }
}

/* ============================================================
   SECTION BANDS — distinct branded backgrounds + accents
   ============================================================ */
.sec-white { background: #ffffff; }
.sec-blue  { background: #EEF4FF; }
.sec-mint  { background: #ECFAF1; }
.sec-slate { background: #F0F4F9; }

/* soft floating accent orb in tinted bands (subtle life) */
.sec-blue, .sec-mint { position: relative; overflow: hidden; }
.sec-blue .wrap, .sec-mint .wrap { position: relative; z-index: 1; }
.sec-blue::before  { content: ""; position: absolute; width: 360px; height: 360px; border-radius: 50%; background: #1F6FEB; opacity: .07; filter: blur(85px); top: -110px; right: -70px; animation: orbFloat 14s ease-in-out infinite; pointer-events: none; }
.sec-mint::before  { content: ""; position: absolute; width: 340px; height: 340px; border-radius: 50%; background: #16A34A; opacity: .08; filter: blur(85px); bottom: -120px; left: -70px; animation: orbFloat 16s ease-in-out infinite reverse; pointer-events: none; }

/* Bold blue CTA band (strong finish) */
.cta { background: #1F6FEB; box-shadow: var(--shadow-lg); }
.cta::before { background: #ffffff; opacity: .08; }
.cta::after  { background: #16A34A; opacity: .25; }
.cta h2 { color: #fff; }
.cta p { color: rgba(255,255,255,.85); }
.cta .bcn-btn--primary, .cta .hero-primary { background: #fff; color: #1F6FEB; border-color: #fff; }
.cta .bcn-btn--primary:hover { background: #EAF1FF; border-color: #EAF1FF; }
.cta .bcn-btn--secondary { background: transparent; color: #fff; border-color: rgba(255,255,255,.45); }
.cta .bcn-btn--secondary:hover { background: rgba(255,255,255,.12); border-color: #fff; }

/* ============================================================
   STAGGERED CARD REVEAL — cards enter one-by-one
   ============================================================ */
html.js :where(.bento,.tcards,.pricing,.intgrid,.alts,.blog).reveal { opacity: 1; transform: none; }
html.js :where(.bento,.tcards,.pricing,.intgrid,.alts,.blog).reveal > * { opacity: 0; transform: translateY(24px); transition: opacity .6s var(--ease), transform .6s var(--ease); }
html.js :where(.bento,.tcards,.pricing,.intgrid,.alts,.blog).in > * { opacity: 1; transform: none; }
:where(.bento,.tcards,.pricing,.intgrid,.alts,.blog).in > *:nth-child(2) { transition-delay: .06s; }
:where(.bento,.tcards,.pricing,.intgrid,.alts,.blog).in > *:nth-child(3) { transition-delay: .12s; }
:where(.bento,.tcards,.pricing,.intgrid,.alts,.blog).in > *:nth-child(4) { transition-delay: .18s; }
:where(.bento,.tcards,.pricing,.intgrid,.alts,.blog).in > *:nth-child(5) { transition-delay: .24s; }
:where(.bento,.tcards,.pricing,.intgrid,.alts,.blog).in > *:nth-child(6) { transition-delay: .30s; }
:where(.bento,.tcards,.pricing,.intgrid,.alts,.blog).in > *:nth-child(7) { transition-delay: .36s; }
:where(.bento,.tcards,.pricing,.intgrid,.alts,.blog).in > *:nth-child(8) { transition-delay: .42s; }

/* animated underline accent under section headings */
.section__head h2, .section__headrow h2 { position: relative; }
@media (prefers-reduced-motion: reduce) {
  .sec-blue::before, .sec-mint::before { animation: none; }
  html.js :where(.bento,.tcards,.pricing,.intgrid,.alts,.blog).reveal > * { transition: none; opacity: 1; transform: none; }
}
