/* ============================================================
   Hi Power SITE2 — Blog / long-form article styles
   Additive layer on top of css/site.css (reuses its :root tokens).
   Scoped under .article / .blog-index so it never touches the
   marketing-page components in site.css.
   ============================================================ */

/* ---------- article hero — STANDALONE + short ----------
   Fully self-contained: does NOT use or reuse the site's `.phero`
   marketing hero, so nothing here can affect other pages. Blog pages
   use <section class="bhero"> (no `phero` class).                     */
.bhero{position:relative;overflow:hidden;min-height:360px;display:flex}
.bhero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bhero .scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,20,34,.88) 0%,rgba(8,20,34,.62) 55%,rgba(8,20,34,.34) 100%)}
.bhero .bhero-in{position:relative;z-index:2;align-self:flex-end;width:100%;max-width:var(--wrap);margin:0 auto;padding:116px 40px 44px}
.bhero .crumb{font:500 13px var(--body);color:rgba(255,255,255,.82);margin-bottom:18px}
.bhero .crumb a{color:rgba(255,255,255,.82)}
.bhero .crumb a:hover{color:#fff}
.bhero .crumb .sep{margin:0 8px;color:rgba(255,255,255,.5)}
.bhero .eyebrow{display:block;margin-bottom:16px}
.bhero h1{font:700 42px/1.12 var(--serif);color:#fff;letter-spacing:-.02em;max-width:800px;text-shadow:0 2px 26px rgba(8,20,34,.5)}
.bhero .a-meta{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:22px;color:rgba(255,255,255,.9);font:500 14px var(--body)}
.bhero .a-meta .byline{display:flex;align-items:center;gap:8px}
.bhero .a-meta .ico{font-size:18px;color:var(--amber)}
.bhero .a-meta .dot{width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,.5)}

/* ---------- article body ---------- */
.article{background:var(--paper)}
.article-in{max-width:760px;margin:0 auto;padding:64px 40px 24px}
.prose{color:var(--ink);font:400 18px/1.75 var(--body)}
.prose .lede{font:400 22px/1.6 var(--body);color:var(--navy);margin-bottom:40px}
.prose h2{font:700 32px/1.15 var(--serif);color:var(--navy);letter-spacing:-.01em;margin:52px 0 18px;scroll-margin-top:96px}
.prose h3{font:600 16px var(--body);color:var(--navy);margin:34px 0 12px;text-transform:none}
.prose p{margin:0 0 24px}
.prose p:last-child{margin-bottom:0}
.prose a{color:var(--blue);border-bottom:1px solid var(--line-2)}
.prose a:hover{color:var(--blue-2);border-bottom-color:var(--blue-2)}
.prose strong{color:var(--navy)}
.prose ul{margin:6px 0 24px;padding:0;list-style:none}
.prose ul li{position:relative;padding:9px 0 9px 30px;line-height:1.65}
.prose ul li:before{content:"";position:absolute;left:2px;top:17px;width:9px;height:9px;background:var(--amber);border-radius:2px}
.prose ul.checks li:before{content:"check";font-family:'Material Symbols Rounded';font-size:18px;background:none;color:var(--blue);top:12px;left:0;width:auto;height:auto;border-radius:0}
.prose hr{border:0;border-top:1px solid var(--line);margin:40px 0}

/* ---------- in-article 16:9 figure (image + optional caption) ---------- */
.article-fig{margin:34px 0}
.article-fig .fig-img{position:relative;aspect-ratio:21/9;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:var(--sand)}
.article-fig .fig-img img{width:100%;height:100%;object-fit:cover;display:block}
.article-fig figcaption{font:400 13.5px/1.5 var(--body);color:var(--muted);margin-top:11px;padding-left:2px}
/* placeholder state — swap the .fig-ph div for <img> once real art is slotted */
.article-fig .fig-ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;text-align:center;padding:22px;
  background:repeating-linear-gradient(135deg,var(--sand) 0 14px,#F4F6F7 14px 28px);border:1.5px dashed var(--line-2);border-radius:16px}
.article-fig .fig-ph .ico{font-size:40px;color:var(--slate)}
.article-fig .fig-ph .ph-label{font:600 11px var(--cond);letter-spacing:.14em;text-transform:uppercase;color:var(--slate)}
.article-fig .fig-ph .ph-desc{font:500 15px var(--body);color:var(--muted);max-width:400px}

/* ---------- table of contents ---------- */
.toc{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px 28px;margin:0 0 40px}
.toc .toc-h{font:600 12px var(--cond);letter-spacing:.12em;text-transform:uppercase;color:var(--blue);margin-bottom:14px}
.toc ol{margin:0;padding:0;list-style:none;counter-reset:toc}
.toc li{counter-increment:toc;padding:7px 0;border-bottom:1px solid var(--line)}
.toc li:last-child{border-bottom:0}
.toc a{color:var(--navy);font:500 16px var(--body);border:0;display:flex;gap:12px}
.toc a:before{content:counter(toc,decimal-leading-zero);color:var(--amber);font:600 13px var(--cond)}
.toc a:hover{color:var(--blue)}

/* ---------- callout ---------- */
.callout{background:#fff;border:1px solid var(--line-2);border-left:3px solid var(--amber);border-radius:12px;padding:22px 24px;margin:32px 0}
.callout .c-h{display:flex;align-items:center;gap:9px;font:600 13px var(--cond);letter-spacing:.08em;text-transform:uppercase;color:var(--navy);margin-bottom:8px}
.callout .c-h .ico{font-size:20px;color:var(--amber)}
.callout p{margin:0;font-size:16.5px;line-height:1.7}
.callout.blue{border-left-color:var(--blue)}
.callout.blue .c-h .ico{color:var(--blue)}

/* ---------- comparison table ---------- */
.ctable-wrap{overflow-x:auto;margin:28px 0}
.ctable{width:100%;border-collapse:collapse;min-width:520px;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.ctable th,.ctable td{text-align:left;padding:14px 18px;border-bottom:1px solid var(--line);font-size:15px;vertical-align:top}
.ctable thead th{background:var(--navy);color:#fff;font:600 12px var(--cond);letter-spacing:.06em;text-transform:uppercase}
.ctable tbody th{font:600 13px var(--cond);letter-spacing:.05em;text-transform:uppercase;color:var(--blue);background:var(--sand)}
.ctable tr:last-child td,.ctable tbody tr:last-child th{border-bottom:0}
.ctable td strong{color:var(--navy)}

/* ---------- pros / cons ---------- */
.pc{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:22px 0}
.pc .box{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 22px}
.pc .box h4{display:flex;align-items:center;gap:8px;font:600 13px var(--cond);letter-spacing:.06em;text-transform:uppercase;margin:0 0 10px}
.pc .box.pros h4{color:#1E8E4E}
.pc .box.cons h4{color:#C11620}
.pc .box h4 .ico{font-size:19px}
.pc ul{margin:0;padding:0;list-style:none}
.pc ul li{position:relative;padding:6px 0 6px 24px;font-size:15px;line-height:1.6}
.pc .pros li:before{content:"add";font-family:'Material Symbols Rounded';font-size:16px;color:#1E8E4E;position:absolute;left:0;top:8px}
.pc .cons li:before{content:"remove";font-family:'Material Symbols Rounded';font-size:16px;color:#C11620;position:absolute;left:0;top:8px}

/* ---------- closing CTA band ---------- */
.article-cta{background:var(--blue);color:#fff;margin-top:0}
.article-cta .cta-in{max-width:760px;margin:0 auto;padding:56px 40px;text-align:center}
.article-cta .eyebrow{color:#fff;justify-content:center}
.article-cta h2{font:700 34px/1.15 var(--serif);color:#fff;margin:12px 0 14px}
.article-cta p{color:rgba(255,255,255,.9);font-size:17px;max-width:520px;margin:0 auto 26px}
.article-cta .btn-amber{background:#fff;color:var(--blue)}
.article-cta .btn-amber:hover{background:rgba(255,255,255,.88);color:var(--blue)}

/* ---------- sources + footer nav ---------- */
.sources{max-width:1080px;margin:0 auto;padding:40px 40px 8px calc(40px + 230px + 56px)}
.sources .s-h{font:600 12px var(--cond);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.sources ul{margin:0;padding:0;list-style:none}
.sources li{font-size:13.5px;color:var(--muted);padding:5px 0}
.article-nav{max-width:1080px;margin:0 auto;padding:48px 40px 56px calc(40px + 230px + 56px)}
.article-nav a{display:inline-flex;align-items:center;gap:8px;font:600 15px var(--body);color:var(--blue);border-bottom:2px solid var(--amber);padding-bottom:4px}
.article-nav a .ico{font-size:18px}

/* ---------- blog index (listing) ---------- */
.blog-index{background:var(--paper);padding:64px 0 20px}
.blog-grid{max-width:var(--wrap);margin:0 auto;padding:0 40px;display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.bcard{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s;color:inherit}
.bcard:hover{transform:translateY(-3px);box-shadow:0 16px 40px rgba(12,38,63,.1)}
.bcard .bmedia{aspect-ratio:16/10;overflow:hidden}
.bcard .bmedia img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.bcard:hover .bmedia img{transform:scale(1.05)}
.bcard .bbody{padding:24px 24px 26px;display:flex;flex-direction:column;flex:1}
.bcard .btag{font:600 11px var(--cond);letter-spacing:.1em;text-transform:uppercase;color:var(--blue);margin-bottom:10px}
.bcard h3{font:700 22px/1.2 var(--serif);color:var(--navy);margin:0 0 10px}
.bcard p{font-size:15px;line-height:1.6;color:var(--ink);margin:0 0 18px;flex:1}
.bcard .bmore{font:600 14px var(--body);color:var(--blue);display:inline-flex;align-items:center;gap:7px;border-bottom:2px solid var(--amber);padding-bottom:3px;width:max-content}
.bcard .bmore .ico{font-size:17px}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .blog-grid{grid-template-columns:1fr 1fr}
  /* let the hero flow below the fixed nav (matches site.css .phero mobile fix) */
  .bhero{min-height:0}
  .bhero .bhero-in{padding:104px 22px 40px}
}
@media (max-width:640px){
  .bhero h1{font-size:32px}
  .bhero .bhero-in{padding:100px 22px 36px}
  .article-fig .fig-img{aspect-ratio:16/10}
  .article-fig .fig-ph .ph-desc{font-size:13.5px}
  .article-in{padding:44px 22px 20px}
  .prose{font-size:17px}
  .prose .lede{font-size:20px}
  .prose h2{font-size:27px}
  .article-cta .cta-in,.sources,.article-nav{padding-left:22px;padding-right:22px}
  .pc,.blog-grid{grid-template-columns:1fr}
  .blog-grid{padding:0 22px}
}

/* ============================================================
   Option 3 layout — left sticky rail (anchor TOC + CTA) + reading column
   Blog pages use: .article-in.a3-layout > (.a3-rail + .a3-main>.prose)
   ============================================================ */
.a3-layout{max-width:1080px;margin:0 auto;padding:56px 40px 24px;display:grid;grid-template-columns:230px 1fr;gap:56px;align-items:start}
.a3-rail{position:sticky;top:96px;align-self:start}
.a3-toc .toc-h{font:600 12px var(--cond);letter-spacing:.12em;text-transform:uppercase;color:var(--blue);margin-bottom:14px}
.a3-toc a{display:block;color:var(--muted);font:500 14px/1.35 var(--body);padding:8px 0 8px 14px;border-left:2px solid var(--line);text-decoration:none;transition:color .15s,border-color .15s}
.a3-toc a:hover{color:var(--navy)}
.a3-toc a.active{color:var(--navy);font-weight:700;border-left-color:var(--amber)}
.a3-cta{display:flex;justify-content:center;width:100%;margin-top:22px;padding:13px 20px}
.a3-phone{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px;color:var(--navy);font:700 15px var(--cond);text-decoration:none}
.a3-phone .ico{font-size:18px;color:var(--blue)}
.a3-main{min-width:0}
.a3-main .prose{max-width:none}
@media(max-width:900px){
  .a3-layout{grid-template-columns:1fr;gap:26px;padding:44px 22px 20px}
  .a3-rail{position:static;order:-1;background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 20px}
  /* single-column: nav/sources align to the 22px content edge like the prose */
  .sources,.article-nav{padding-left:22px;padding-right:22px}
}

/* ---------- breadcrumb strip (below hero, above the content grid) ---------- */
.bcrumb{background:var(--paper);border-bottom:1px solid var(--line)}
.bcrumb-in{max-width:1080px;margin:0 auto;padding:15px 40px;font:500 13px var(--body);color:var(--muted);display:flex;align-items:center;flex-wrap:wrap}
.bcrumb-in a{color:var(--muted);text-decoration:none;transition:color .15s}
.bcrumb-in a:hover{color:var(--blue)}
.bcrumb-in .sep{margin:0 9px;color:var(--line-2)}
.bcrumb-in .here{color:var(--navy)}
@media(max-width:640px){.bcrumb-in{padding:13px 22px}}
