/* Biovision marketing page styles — external file for CSP `style-src 'self'` */

/* ── device frame ── */
.bv-device{
  position:relative;border-radius:14px;overflow:hidden;
  background:#0e0a07;border:1px solid rgba(24,18,14,.18);
  padding-top:32px;
  box-shadow:0 1px 0 rgba(255,255,255,.04) inset, 0 30px 80px -24px rgba(24,18,14,.45), 0 8px 24px -12px rgba(24,18,14,.3);
}
.bv-device::before{content:"";position:absolute;top:0;left:0;right:0;height:32px;background:linear-gradient(180deg,#1a120c,#120c08);border-bottom:1px solid rgba(255,255,255,.06);z-index:2}
.bv-device::after{content:"";position:absolute;top:12px;left:14px;width:8px;height:8px;border-radius:50%;background:#e8703c;box-shadow:14px 0 0 #f5c542, 28px 0 0 #2da06f;z-index:3}
.bv-device img{width:100%;display:block;background:#0a0907;object-fit:contain}

.bv-device-wrap{position:relative;isolation:isolate}
.bv-device-wrap::before{content:"";position:absolute;inset:-30px -20px -40px -20px;background:radial-gradient(60% 50% at 50% 60%,rgba(232,112,60,.18),transparent 70%);z-index:-1;pointer-events:none}
.bv-device-wrap.is-sticky{position:sticky;top:32px}
.bv-device-wrap.is-old-shot{margin-bottom:22px}

/* ── editorial type ── */
.bv-eyebrow-num{display:inline-flex;align-items:baseline;gap:14px;font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#6b625a;margin-bottom:22px}
.bv-eyebrow-num.is-centered{justify-content:center}
.bv-eyebrow-num b{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;font-weight:600;color:#e8703c;padding:2px 9px;border:1px solid rgba(232,112,60,.4);border-radius:999px;letter-spacing:.12em}
.bv-display{font-size:clamp(42px,5.8vw,72px);line-height:1.04;margin:0 0 26px;font-weight:600;letter-spacing:-.028em;color:#18120e}
.bv-h2{font-size:clamp(32px,4vw,54px);line-height:1.06;margin:0 0 22px;font-weight:600;letter-spacing:-.024em;color:#18120e}
.bv-lead{color:#4a423b;line-height:1.7;font-size:clamp(15px,1.08vw,17.5px);margin:0 0 18px;max-width:54ch}
.bv-lead.is-narrow{max-width:60ch;margin-left:auto;margin-right:auto;margin-bottom:0}
.bv-lead.is-mid{max-width:62ch;margin-left:auto;margin-right:auto;margin-bottom:0}
.bv-lead.is-wide{max-width:64ch;margin-left:auto;margin-right:auto}
.bv-lead.is-amber{color:#f5c542}

/* ── callout ── */
.bv-callout{margin-top:30px;padding:20px 24px;border-left:3px solid #e8703c;background:linear-gradient(90deg,rgba(232,112,60,.07),rgba(232,112,60,.02) 60%,transparent);border-radius:0 12px 12px 0}
.bv-callout-label{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#c05a26;margin-bottom:8px}
.bv-callout p{font-size:14.5px;color:#4a423b;margin:0;line-height:1.65}
.bv-callout code{background:#18120e;color:#f5c542;padding:2px 7px;border-radius:5px;font-size:12.5px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}

/* ── engines grid ── */
.bv-eng-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.bv-eng{padding:22px;background:#fff;border:1px solid rgba(24,18,14,.08);border-radius:14px;display:flex;flex-direction:column;gap:8px;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.bv-eng:hover{transform:translateY(-2px);border-color:rgba(232,112,60,.3);box-shadow:0 12px 28px -16px rgba(24,18,14,.18)}
.bv-eng svg{color:#e8703c}
.bv-eng-name{font-size:14.5px;font-weight:700;color:#18120e;letter-spacing:-.005em}
.bv-eng-desc{font-size:13px;color:#6b625a;line-height:1.55;margin:0}
.bv-eng.span2{grid-column:span 2}
.bv-eng.span2 .bv-eng-desc{max-width:62ch}

/* ── badge ── */
.bv-badge{display:inline-block;padding:6px 20px;border:1.5px solid #e8703c;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#c05a26;background:rgba(232,112,60,.05);margin-bottom:22px}
.bv-center{text-align:center;max-width:880px;margin:0 auto}
.bv-center.is-mb-48{margin-bottom:48px}
.bv-center.is-mb-56{margin-bottom:56px}

/* ── phone mock ── */
.bv-phone{width:200px;height:380px;margin:36px auto 0;border-radius:34px;background:#0e0a07;border:1px solid rgba(24,18,14,.2);padding:10px;box-shadow:0 30px 70px -24px rgba(24,18,14,.4);position:relative}
.bv-phone::before{content:"";position:absolute;top:14px;left:50%;transform:translateX(-50%);width:80px;height:6px;background:#000;border-radius:99px}
.bv-phone-screen{width:100%;height:100%;border-radius:26px;background:radial-gradient(60% 40% at 50% 30%,rgba(232,112,60,.2),transparent 70%),radial-gradient(80% 60% at 50% 80%,rgba(45,160,111,.15),transparent 70%),#0a0907;display:flex;align-items:center;justify-content:center;color:#f5c542;font-size:11px;letter-spacing:.18em;font-weight:600;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}

/* ── section variants ── */
.section-tinted-bv{background:linear-gradient(180deg,#f3f1ec 0%,#ebe7df 100%)}
.section-dark-bv{background:#18120e;color:#eee6dc;position:relative;overflow:hidden}
.section-dark-bv::before{content:"";position:absolute;inset:0;background:radial-gradient(40% 60% at 15% 30%,rgba(232,112,60,.18),transparent 60%),radial-gradient(40% 60% at 85% 70%,rgba(245,197,66,.12),transparent 60%);pointer-events:none}
.section-dark-bv .section-inner{position:relative;z-index:1}
.section-dark-bv .bv-h2,.section-dark-bv .bv-display{color:#fafaf7}
.section-dark-bv .bv-lead{color:#c8beb2}
.section-dark-bv .bv-eyebrow-num{color:#8a7f73}
.section-dark-bv .bv-eyebrow-num b{color:#f5c542;border-color:rgba(245,197,66,.4)}

/* ── chat mock ── */
.bv-chat{background:#0e0a07;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:22px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13.5px;line-height:1.65;box-shadow:0 30px 80px -24px rgba(0,0,0,.5)}
.bv-msg{display:flex;gap:12px;margin-bottom:18px;align-items:flex-start}
.bv-msg:last-child{margin-bottom:0}
.bv-avatar{flex:0 0 28px;width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;letter-spacing:.02em}
.bv-avatar.user{background:rgba(232,112,60,.18);color:#f5c542}
.bv-avatar.ai{background:linear-gradient(135deg,#e8703c,#f5c542);color:#18120e}
.bv-bubble{flex:1;color:#c8beb2}
.bv-bubble strong{color:#fafaf7;font-weight:600}
.bv-bubble .bv-act{display:inline-block;margin-top:8px;padding:4px 10px;background:rgba(245,197,66,.12);color:#f5c542;border:1px solid rgba(245,197,66,.25);border-radius:6px;font-size:11.5px;letter-spacing:.04em}

/* ── chat / macro labels ── */
.bv-flow-label{font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;margin-bottom:10px;display:flex;align-items:center;gap:10px}
.bv-flow-label.is-old{color:#8a7f73}
.bv-flow-label.is-new{color:#f5c542}
.bv-flow-label .is-strike{opacity:.7;text-decoration:line-through}

/* ── bench cards ── */
.bv-bench-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.bv-bench-card{padding:32px;background:#fff;border:1px solid rgba(24,18,14,.08);border-radius:18px;position:relative;overflow:hidden}
.bv-bench-card::before{content:"";position:absolute;top:0;left:0;width:60px;height:3px;background:linear-gradient(90deg,#e8703c,#f5c542)}
.bv-bench-tag{display:inline-block;padding:4px 12px;border-radius:999px;background:rgba(232,112,60,.1);color:#c05a26;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin-bottom:14px}
.bv-bench-card h3{font-size:clamp(22px,2vw,28px);margin:0 0 12px;letter-spacing:-.02em}
.bv-bench-card p{color:#6b625a;line-height:1.65;margin:0 0 12px;font-size:14.5px}
.bv-bench-card p:last-child{margin-bottom:0}

/* ── two-column layouts ── */
.bv-two-col{display:grid;grid-template-columns:1.2fr 0.85fr;gap:64px;align-items:center}
.bv-two-col-rev{display:grid;grid-template-columns:1.05fr 0.95fr;gap:64px;align-items:center}
.bv-two-col-eng{display:grid;grid-template-columns:0.9fr 1.1fr;gap:56px;align-items:start}

/* ── action row in hero ── */
.bv-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}

/* ── open source credits ── */
.bv-credits-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-top:36px}
.bv-credit{padding:18px 20px;background:#fff;border:1px solid rgba(24,18,14,.08);border-radius:12px;transition:border-color .25s ease,transform .25s ease}
.bv-credit:hover{border-color:rgba(232,112,60,.3);transform:translateY(-2px)}
.bv-credit-name{font-size:14.5px;font-weight:700;color:#18120e;margin-bottom:4px}
.bv-credit-desc{font-size:12.5px;color:#6b625a;line-height:1.5}
.bv-thanks{text-align:center;max-width:680px;margin:0 auto 12px;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:#c05a26;font-weight:700}

@media(max-width:900px){
  .bv-two-col,.bv-two-col-rev,.bv-two-col-eng,.bv-bench-grid{grid-template-columns:1fr !important;gap:36px !important}
  .bv-eng-grid{grid-template-columns:1fr}
  .bv-eng.span2{grid-column:span 1}
  .bv-device-wrap.is-sticky{position:static}
}
