/* BBO project styles · chrome + page components · enqueued after style.css (functions.php) */

/* ===== BBO chrome + furniture re-skin · official brand (royal blue + coral + DNA) ===== */
@font-face{font-family:'Poppins';font-style:normal;font-weight:400;font-display:swap;src:url('https://en.bbobiology.org.cn/wp-content/themes/hanlin-portal-base/assets/fonts/poppins-400-normal.woff2') format('woff2')}
@font-face{font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;src:url('https://en.bbobiology.org.cn/wp-content/themes/hanlin-portal-base/assets/fonts/poppins-500-normal.woff2') format('woff2')}
@font-face{font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;src:url('https://en.bbobiology.org.cn/wp-content/themes/hanlin-portal-base/assets/fonts/poppins-600-normal.woff2') format('woff2')}
@font-face{font-family:'Poppins';font-style:normal;font-weight:700;font-display:swap;src:url('https://en.bbobiology.org.cn/wp-content/themes/hanlin-portal-base/assets/fonts/poppins-700-normal.woff2') format('woff2')}

/* 1 · re-skin baseline furniture via preset vars → whole article/news/TOC/CTA system goes BBO */
:root{
  --wp--preset--color--background:#ffffff;
  --wp--preset--color--surface:#ffffff;
  --wp--preset--color--surface-alt:#f6f8fc;
  --wp--preset--color--border:#e6e9f2;
  --wp--preset--color--muted:#6a7080;
  --wp--preset--color--body:#2b2f3a;
  --wp--preset--color--heading:#1f2430;
  --wp--preset--color--ink:#1f2bd4;        /* royal — CTA card bg / back-to-top / table head / dark bands */
  --wp--preset--color--accent:#1f2bd4;     /* royal — links / list markers / TOC active / hovers */
  --wp--preset--color--accent-soft:#e6e9ff;
  --hl-content-max:1200px;
  --hl-content-narrow:760px;
  /* BBO palette tokens */
  --bbo-blue:#1f2bd4;--bbo-blue2:#1620a8;--bbo-sky:#2ea0ff;--bbo-coral:#f98a7d;--bbo-coral-d:#f0654f;
  --bbo-coralink:#3a1410;--bbo-green:#56b178;--bbo-ink:#1f2430;--bbo-mut:#6a7080;--bbo-line:#e6e9f2;--bbo-soft:#f6f8fc;
}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif;background:#fff}
h1,h2,h3,h4,.bbo-wordmark,.hl-news-title,.hl-archive-title,.hl-related-title,.hl-article-cta-title{font-family:'Poppins','Inter',sans-serif}
.hl-prose h2,.hl-prose h3,.hl-prose h4{font-family:'Poppins','Inter',sans-serif}
.hl-prose a{text-decoration-color:var(--bbo-sky)}

/* 2 · header */
.bbo-header{position:fixed;top:0;left:0;right:0;z-index:60;background:#fff;border-bottom:1px solid var(--bbo-line)}
.bbo-header-inner{max-width:1200px;margin:0 auto;padding:0 24px;height:74px;display:flex;align-items:center;gap:26px}
.bbo-brand{display:flex;align-items:center;gap:11px;text-decoration:none;flex-shrink:0}
.bbo-owl{width:40px;height:40px;object-fit:contain;flex-shrink:0}
.bbo-wordmark{font-weight:700;font-size:17px;line-height:1.04;color:var(--bbo-blue);letter-spacing:-.01em}
.bbo-wordmark small{display:block;font-family:'Inter',sans-serif;font-weight:600;font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--bbo-mut);margin-top:3px}
.bbo-nav-desktop{margin-left:auto;display:none;gap:22px;align-items:center}
.bbo-nav-link{font-size:14px;font-weight:600;color:#3a3f52;text-decoration:none;padding:6px 0;border-bottom:2.5px solid transparent;transition:color .15s,border-color .15s}
.bbo-nav-link:hover,.bbo-nav-link.is-current{color:var(--bbo-blue);border-color:var(--bbo-coral)}
.bbo-cta{display:none;flex-shrink:0;background:var(--bbo-coral);color:var(--bbo-coralink);font-family:'Poppins',sans-serif;font-weight:600;font-size:13.5px;padding:11px 18px;border-radius:7px;text-decoration:none;transition:background .15s,color .15s}
.bbo-cta:hover{background:var(--bbo-coral-d);color:#fff}
.bbo-burger{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;background:none;border:0;padding:8px;color:var(--bbo-blue);cursor:pointer}
.bbo-header-spacer{height:74px}
@media(min-width:980px){.bbo-nav-desktop{display:flex}.bbo-cta{display:inline-block}.bbo-burger{display:none}}

/* 3 · mobile drawer (theme.js toggles [hidden]; scrim+close carry data-hl-nav-close) */
.bbo-drawer{position:fixed;inset:0;z-index:70}
.bbo-drawer[hidden]{display:none}
.bbo-drawer-scrim{position:absolute;inset:0;background:rgba(15,18,30,.5)}
.bbo-drawer-panel{position:absolute;top:0;right:0;height:100%;width:min(84vw,330px);box-sizing:border-box;background:#fff;box-shadow:-12px 0 44px rgba(0,0,0,.22);padding:18px 22px 30px;display:flex;flex-direction:column;overflow-y:auto}
.bbo-drawer-close{align-self:flex-end;background:none;border:0;font-size:30px;line-height:1;color:var(--bbo-mut);cursor:pointer;padding:0 2px;margin-bottom:6px}
.bbo-drawer-list{list-style:none;margin:0;padding:0}
.bbo-drawer-link{display:block;font-family:'Poppins',sans-serif;font-weight:500;font-size:16px;color:var(--bbo-ink);text-decoration:none;padding:13px 2px;border-bottom:1px solid var(--bbo-line)}
.bbo-drawer-link:hover,.bbo-drawer-link.is-current{color:var(--bbo-blue)}
.bbo-cta-block{display:block;text-align:center;margin-top:18px}
@media(min-width:980px){.bbo-drawer{display:none!important}}

/* 4 · skip link target offset */
#bbo-content{display:block;position:relative;top:-80px}

/* 5 · news list → full-width editorial rows (通栏矩形 · image left, text right)
   image uses absolute-fill (NOT height:100% on an indefinite grid cell, which made
   the browser fall back to the image's intrinsic height and blow the card up). */
.hl-archive-main{max-width:1040px}
.hl-news-list{display:flex;flex-direction:column;gap:18px;list-style:none;padding:0;margin:0}
.hl-news-list>li{display:grid;grid-template-columns:248px 1fr;background:#fff;border:1px solid var(--bbo-line);border-radius:14px;overflow:hidden;min-height:176px;padding:0;margin:0;transition:transform .16s,box-shadow .16s,border-color .16s}
.hl-news-list>li:hover{transform:translateY(-2px);border-color:var(--bbo-sky);box-shadow:0 16px 38px -26px rgba(46,160,255,.5)}
.hl-news-cover{grid-column:1;grid-row:1/4;position:relative;overflow:hidden;background:#eef2fb;margin:0}
.hl-news-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.hl-news-date{grid-column:2;grid-row:1;margin:0;padding:20px 28px 0;font-size:11.5px;font-weight:700;color:var(--bbo-sky);text-transform:uppercase;letter-spacing:.05em}
.hl-news-title{grid-column:2;grid-row:2;margin:0;padding:8px 28px 0;font-size:20px;font-weight:600;line-height:1.32}
.hl-news-title a{color:var(--bbo-ink);text-decoration:none}
.hl-news-title a:hover{color:var(--bbo-blue)}
.hl-news-excerpt{grid-column:2;grid-row:3;margin:0;padding:9px 28px 22px}
.hl-news-excerpt p{font-size:14px;line-height:1.6;color:var(--bbo-mut);margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.hl-news-list>li:not(:has(.hl-news-cover)){grid-template-columns:1fr;min-height:0}   /* no-image → full-width text row */
.hl-news-list>li:not(:has(.hl-news-cover))>*{grid-column:1}
.hl-archive-title{font-family:'Poppins',sans-serif;color:var(--bbo-blue)}
@media(max-width:680px){
  .hl-news-list>li{grid-template-columns:1fr;min-height:0}
  .hl-news-list>li>*{grid-column:1}
  .hl-news-cover{grid-row:auto;height:178px}
  .hl-news-date{padding-top:16px}
}

/* 5b · news pagination → branded button tiles (was unstyled .page-numbers) */
.hl-pagination.wp-block-query-pagination{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:9px;margin:40px 0 4px}
.hl-pagination .wp-block-query-pagination-numbers{display:flex;flex-wrap:wrap;align-items:center;gap:9px}
.hl-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 7px;box-sizing:border-box;border:1px solid var(--bbo-line);border-radius:12px;background:#fff;color:var(--bbo-ink);font-family:'Poppins',sans-serif;font-weight:600;font-size:15px;text-decoration:none;transition:transform .15s,box-shadow .15s,border-color .15s,background .15s,color .15s}
.hl-pagination a.page-numbers:hover{border-color:var(--bbo-blue);color:var(--bbo-blue);background:var(--bbo-soft);transform:translateY(-2px);box-shadow:0 12px 26px -18px rgba(31,43,212,.55)}
.hl-pagination .page-numbers.current{background:var(--bbo-blue);border-color:var(--bbo-blue);color:#fff;box-shadow:0 12px 26px -16px rgba(31,43,212,.7)}
.hl-pagination .page-numbers.dots{border:0;background:none;min-width:22px;color:var(--bbo-mut);letter-spacing:1px;box-shadow:none;transform:none}
.hl-pagination .wp-block-query-pagination-previous,
.hl-pagination .wp-block-query-pagination-next{display:inline-flex;align-items:center;gap:7px;height:44px;padding:0 18px;border:1px solid var(--bbo-line);border-radius:12px;background:#fff;color:var(--bbo-ink);font-family:'Poppins',sans-serif;font-weight:600;font-size:14.5px;text-decoration:none;transition:transform .15s,box-shadow .15s,border-color .15s,background .15s,color .15s}
.hl-pagination .wp-block-query-pagination-previous:hover,
.hl-pagination .wp-block-query-pagination-next:hover{border-color:var(--bbo-blue);color:var(--bbo-blue);background:var(--bbo-soft);transform:translateY(-2px);box-shadow:0 12px 26px -18px rgba(31,43,212,.55)}
.hl-pagination .wp-block-query-pagination-next::after{content:"\2192";font-size:16px;line-height:1}
.hl-pagination .wp-block-query-pagination-previous::before{content:"\2190";font-size:16px;line-height:1}
@media(max-width:520px){
  .hl-pagination .page-numbers{min-width:40px;height:40px;font-size:14px}
  .hl-pagination .wp-block-query-pagination-previous,
  .hl-pagination .wp-block-query-pagination-next{height:40px;padding:0 14px;font-size:13.5px}
}

/* 6 · article header → centered editorial (@article-archetype centered) */
.hl-article-head{text-align:center;border-bottom:3px solid var(--bbo-coral);padding-bottom:20px;margin-bottom:26px}
.hl-article-head .wp-block-post-title{font-family:'Poppins',sans-serif;color:var(--bbo-blue);font-size:clamp(28px,4vw,40px);line-height:1.16;margin:14px auto 12px;max-width:none}
.hl-article-head .wp-block-post-date{display:block;color:var(--bbo-mut);font-size:13px}
.hl-breadcrumb{justify-content:center}
.hl-post-cat{background:#fff0ee;color:var(--bbo-coral-d)}
.hl-post-cat:hover{background:#ffe2dd}
body.single .hl-prose>p:first-of-type::first-letter{float:left;font-family:'Poppins',sans-serif;font-weight:700;font-size:54px;line-height:.8;color:var(--bbo-coral-d);padding:6px 12px 0 0}

/* 7 · CTA online button → coral (sits on royal CTA card) */
.hl-cta-online-btn{background:var(--bbo-coral);color:var(--bbo-coralink)}
.hl-cta-online-btn:hover{background:var(--bbo-coral-d);color:#fff;opacity:1}
.hl-prose .hl-cta-online-btn{color:var(--bbo-coralink)}

/* 8 · footer · brand(+button) | 2-col quick-nav  (QRs NOT repeated here — every page's CTA above has them) */
.bbo-footer{background:var(--bbo-blue2);color:#c5cbf0;padding:50px 0 22px}
.bbo-footer-grid{max-width:1200px;margin:0 auto;padding:0 24px;display:grid;grid-template-columns:1.25fr 1fr;gap:56px;align-items:start}
.bbo-foot-brand-row{display:flex;align-items:center;gap:11px;margin-bottom:12px}
.bbo-foot-brand-row img{width:38px;height:38px;object-fit:contain}
.bbo-foot-brand-row b{font-family:'Poppins',sans-serif;font-weight:700;color:#fff;font-size:16px;line-height:1.1}
.bbo-footer p.bbo-foot-blurb{font-size:13px;line-height:1.65;color:#aab2e6;margin:0 0 18px;max-width:42ch}
.bbo-foot-brand .bbo-foot-btn{white-space:nowrap}
.bbo-foot-nav{display:grid;grid-template-columns:1fr 1fr;gap:30px}   /* quick-nav = 2 columns (kept on mobile) */
.bbo-footer h5{font-family:'Poppins',sans-serif;font-weight:600;color:#fff;font-size:12px;text-transform:uppercase;letter-spacing:.09em;margin:0 0 15px}
.bbo-footer ul{list-style:none;margin:0;padding:0}
.bbo-footer li{margin-bottom:11px}
.bbo-footer .bbo-foot-list a,.bbo-footer ul a{font-size:13.5px;color:#c5cbf0;text-decoration:none}
.bbo-footer ul a:hover{color:#fff}
.bbo-foot-bottom{max-width:1200px;margin:36px auto 0;padding:20px 24px 0;border-top:1px solid rgba(255,255,255,.15);display:flex;flex-wrap:wrap;gap:8px 16px;font-size:12.5px;color:#8e96cf}
.bbo-foot-bottom a{color:#aab2e6;text-decoration:none}
.bbo-foot-bottom a:hover{color:#fff}
@media(max-width:900px){
  .bbo-footer-grid{grid-template-columns:1fr;gap:32px}
  .bbo-foot-nav{max-width:440px}
}

/* 9 · back-to-top already royal via --ink override; nudge to coral hover */
.hl-back-to-top:hover{background:var(--bbo-coral-d)}

/* ===== PAGE-LEVEL COMPONENTS ===== */
/* ===== BBO page-section CSS (injected site-wide via Site Tools → code_head) =====
   Scoped to project .bbo-h-* / .bbo-btn-* classes — never collides with chrome (.bbo-header/.hl-*).
   All colors via --bbo-* tokens defined on :root by the chrome <style>. */

/* shared buttons */
.bbo-btn-coral{display:inline-block;background:var(--bbo-coral);color:var(--bbo-coralink);font-family:'Poppins',sans-serif;font-weight:600;font-size:14.5px;padding:13px 24px;border-radius:8px;text-decoration:none;transition:background .15s,color .15s}
.bbo-btn-coral:hover{background:var(--bbo-coral-d);color:#fff}
.bbo-btn-out{display:inline-block;border:2px solid var(--bbo-blue);color:var(--bbo-blue);font-family:'Poppins',sans-serif;font-weight:600;font-size:14.5px;padding:11px 22px;border-radius:8px;text-decoration:none;transition:.15s}
.bbo-btn-out:hover{background:var(--bbo-blue);color:#fff}
.bbo-link-arrow{color:var(--bbo-blue);font-weight:700;font-size:14px;text-decoration:none}
.bbo-link-arrow:hover{color:var(--bbo-sky)}
.bbo-h-h2{font-family:'Poppins',sans-serif;font-weight:700;font-size:clamp(24px,3.2vw,30px);color:var(--bbo-blue);letter-spacing:-.01em;margin:0 0 16px}

/* HERO */
.bbo-h-hero{position:relative;background:linear-gradient(180deg,#fff 0%,#eaf3ff 100%);overflow:hidden}
.bbo-h-hero-inner{display:grid;grid-template-columns:1.12fr .88fr;gap:40px;align-items:center;padding-top:52px;padding-bottom:18px}
.bbo-h-kick{font-family:'Inter',sans-serif;font-weight:700;font-size:12.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--bbo-sky)}
.bbo-h-title{font-family:'Poppins',sans-serif;font-weight:700;font-size:clamp(32px,5vw,50px);line-height:1.06;color:var(--bbo-blue);letter-spacing:-.015em;margin:14px 0 10px}
.bbo-h-dates{font-family:'Poppins',sans-serif;font-weight:500;font-size:clamp(16px,2.4vw,20px);color:var(--bbo-ink)}
.bbo-h-sub{font-size:16px;line-height:1.65;color:#454b5a;max-width:46ch;margin:14px 0 0}
.bbo-h-btns{margin-top:24px;display:flex;gap:13px;flex-wrap:wrap;align-items:center}
.bbo-h-badges{margin-top:22px;display:flex;gap:18px;flex-wrap:wrap}
.bbo-h-badge{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:600;color:#454b5a}
.bbo-h-badge-dot{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;color:#fff;font-family:'Poppins',sans-serif;font-weight:700;font-size:11px}
.bbo-h-hero-art{position:relative;display:grid;place-items:center;min-height:300px}
.bbo-h-hero-glow{position:absolute;width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,rgba(46,160,255,.22),transparent 65%)}
.bbo-h-hero-art img{position:relative;width:74%;max-width:290px;height:auto;filter:drop-shadow(0 22px 42px rgba(31,43,212,.2))}
/* DNA band sits directly under the nav (matches v2), above the hero */
.bbo-h-dna{line-height:0;border-bottom:1px solid #e1eaf6;background:#fff}
.bbo-h-dna svg{display:block;width:100%;height:88px}

/* STAT BAND */
.bbo-h-stats{background:var(--bbo-blue)}
.bbo-h-stats-inner{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;padding-top:32px;padding-bottom:32px;text-align:center}
.bbo-h-stat b{display:block;font-family:'Poppins',sans-serif;font-weight:700;font-size:clamp(28px,4vw,38px);color:#fff;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.bbo-h-stat span{font-size:12.5px;color:#c7d6ff;text-transform:uppercase;letter-spacing:.05em;font-weight:600}

/* ABOUT */
.bbo-h-about{background:#fff;padding-top:56px;padding-bottom:56px}
.bbo-h-about-inner{display:grid;grid-template-columns:1fr 1fr;gap:46px;align-items:center}
.bbo-h-about-copy p{font-size:15.5px;line-height:1.75;color:#454b5a;margin:0 0 14px}
.bbo-h-about-links{display:flex;gap:24px;flex-wrap:wrap;margin-top:8px}
.bbo-h-about-ph{margin:0;border-radius:14px;overflow:hidden;border:1px solid var(--bbo-line);box-shadow:0 26px 54px -36px rgba(31,43,212,.4)}
.bbo-h-about-ph img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}

/* FEATURE CARDS */
.bbo-h-feats{background:var(--bbo-soft);padding-top:56px;padding-bottom:56px;border-top:1px solid var(--bbo-line);border-bottom:1px solid var(--bbo-line)}
.bbo-h-feats-head{text-align:center;margin-bottom:30px}
.bbo-h-feats-sub{color:var(--bbo-mut);font-size:15px;margin:6px 0 0}
.bbo-h-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.bbo-h-card{display:block;background:#fff;border:1px solid var(--bbo-line);border-radius:14px;padding:24px;text-decoration:none;transition:transform .16s,box-shadow .16s,border-color .16s}
.bbo-h-card:hover{transform:translateY(-3px);border-color:var(--bbo-sky);box-shadow:0 18px 40px -26px rgba(46,160,255,.6)}
.bbo-h-card-ic{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;margin-bottom:14px}
.bbo-h-card-ic svg{width:24px;height:24px}
.bbo-h-card h3{font-family:'Poppins',sans-serif;font-weight:600;font-size:17px;color:var(--bbo-ink);margin:0 0 7px}
.bbo-h-card p{font-size:13.5px;line-height:1.6;color:var(--bbo-mut);margin:0}

/* PAST PAPERS YEARS */
.bbo-h-papers{background:#fff;padding-top:56px;padding-bottom:56px}
.bbo-h-papers-inner{display:grid;grid-template-columns:.85fr 1.15fr;gap:44px;align-items:center}
.bbo-h-papers-copy p{font-size:15.5px;line-height:1.7;color:#454b5a;margin:0 0 20px}
.bbo-h-years{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.bbo-h-year{display:block;text-align:center;background:var(--bbo-coral);color:var(--bbo-coralink);font-family:'Poppins',sans-serif;font-weight:600;font-size:14px;padding:14px 0;border-radius:8px;text-decoration:none;transition:.14s}
.bbo-h-year:hover{background:var(--bbo-blue);color:#fff;transform:translateY(-2px)}

/* LATEST NEWS (reuses .hl-news-list card styling from chrome) */
.bbo-h-news{background:var(--bbo-soft);padding-top:56px;padding-bottom:56px;border-top:1px solid var(--bbo-line)}
.bbo-h-news-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}
.bbo-h-news-head .bbo-h-h2{margin:0}

/* FAQ accordion */
.bbo-h-faq{background:#fff;padding-top:56px;padding-bottom:56px}
.bbo-h-faq-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}
.bbo-h-faq-head .bbo-h-h2{margin:0}
.bbo-h-qa{border:1px solid var(--bbo-line);border-radius:14px;overflow:hidden;background:#fff}
.bbo-h-q{border-bottom:1px solid var(--bbo-line)}
.bbo-h-q:last-child{border-bottom:0}
.bbo-h-q summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:14px;padding:18px 22px;font-family:'Poppins',sans-serif;font-weight:500;font-size:15.5px;color:var(--bbo-ink)}
.bbo-h-q summary::-webkit-details-marker{display:none}
.bbo-h-q-n{flex:none;width:28px;height:28px;border-radius:50%;background:var(--bbo-coral);color:var(--bbo-coralink);font-family:'Poppins',sans-serif;font-weight:700;font-size:13px;display:grid;place-items:center}
.bbo-h-q-t{flex:1}
.bbo-h-q-x{flex:none;color:var(--bbo-coral-d);font-size:24px;font-weight:300;line-height:1;transition:transform .2s}
.bbo-h-q[open] .bbo-h-q-x{transform:rotate(45deg)}
.bbo-h-a{padding:0 22px 20px 64px;font-size:14.5px;line-height:1.7;color:#454b5a}
.bbo-h-a a{color:var(--bbo-blue);font-weight:600}

/* CTA band (grand · royal) */
.bbo-h-cta{background:var(--bbo-blue)}
.bbo-h-cta-inner{display:grid;grid-template-columns:1.25fr .75fr;gap:44px;align-items:center;padding-top:52px;padding-bottom:52px}
.bbo-h-cta-kick{font-family:'Inter',sans-serif;font-weight:700;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#9ec9ff}
.bbo-h-cta-title{font-family:'Poppins',sans-serif;font-weight:700;font-size:clamp(26px,3.4vw,33px);color:#fff;margin:10px 0 12px;letter-spacing:-.01em}
.bbo-h-cta-sub{font-size:15px;line-height:1.65;color:#c7d6ff;margin:0 0 22px;max-width:50ch}
.bbo-h-cta-btns{display:flex;gap:13px;flex-wrap:wrap}
.bbo-btn-wa{display:inline-flex;align-items:center;gap:8px;background:#25d366;color:#062b13;font-family:'Poppins',sans-serif;font-weight:600;font-size:14.5px;padding:13px 22px;border-radius:8px;text-decoration:none;transition:.15s}
.bbo-btn-wa:hover{background:#1ebe5a}
.bbo-h-cta-qrs{display:flex;gap:16px;justify-content:flex-end;flex-wrap:wrap}
.bbo-h-qrtile{margin:0;background:#fff;border-radius:14px;padding:12px;text-align:center;width:152px;box-shadow:0 14px 36px -22px rgba(0,0,0,.5)}
.bbo-h-qrtile:not(:has(img)){display:none}   /* hide a QR tile until its image is set */
.bbo-h-qrtile-img{width:128px;height:128px;object-fit:contain;display:block;margin:0 auto 8px}
.bbo-h-qrtile figcaption{font-size:12px;font-weight:600;color:var(--bbo-ink)}

/* responsive */
@media(max-width:900px){
  .bbo-h-hero-inner{grid-template-columns:1fr;gap:24px;padding-top:36px}
  .bbo-h-hero-art{min-height:auto;order:-1}
  .bbo-h-hero-art img{max-width:200px;width:200px}
  .bbo-h-about-inner,.bbo-h-papers-inner{grid-template-columns:1fr;gap:26px}
  .bbo-h-cards{grid-template-columns:1fr 1fr}
  .bbo-h-stats-inner{grid-template-columns:1fr 1fr;gap:24px 16px}
  .bbo-h-cta-inner{grid-template-columns:1fr;gap:28px}
  .bbo-h-cta-qrs{justify-content:flex-start}
}
@media(max-width:560px){
  .bbo-h-cards{grid-template-columns:1fr}
  .bbo-h-years{grid-template-columns:repeat(3,1fr)}
  .bbo-h-news-head,.bbo-h-faq-head{flex-direction:column;align-items:flex-start;gap:8px}
  .bbo-h-a{padding-left:22px}
}

/* ============================================================
   INNER-PAGE COMPONENT KIT (reused by all content pages)
   ============================================================ */
/* page hero */
.bbo-ph{background:linear-gradient(180deg,#fff 0%,#eaf3ff 100%);border-bottom:1px solid #e1eaf6}
.bbo-ph-inner{padding-top:46px;padding-bottom:40px;max-width:880px}
.bbo-ph-kick{font-family:'Inter',sans-serif;font-weight:700;font-size:12.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--bbo-sky)}
.bbo-ph h1{font-family:'Poppins',sans-serif;font-weight:700;font-size:clamp(30px,4.4vw,44px);line-height:1.08;color:var(--bbo-blue);letter-spacing:-.015em;margin:12px 0 14px}
.bbo-ph-lead{font-size:17px;line-height:1.65;color:#454b5a;margin:0;max-width:60ch}
.bbo-ph-btns{margin-top:24px;display:flex;gap:13px;flex-wrap:wrap;align-items:center}
/* sections */
.bbo-sec{padding-top:54px;padding-bottom:54px}
.bbo-sec--soft{background:var(--bbo-soft);border-top:1px solid var(--bbo-line);border-bottom:1px solid var(--bbo-line)}
.bbo-sec-head{margin-bottom:26px}
.bbo-sec-head.center{text-align:center}
.bbo-sec-kick{font-family:'Inter',sans-serif;font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--bbo-coral-d)}
.bbo-sec h2{font-family:'Poppins',sans-serif;font-weight:700;font-size:clamp(23px,3vw,30px);color:var(--bbo-blue);letter-spacing:-.01em;margin:8px 0 0}
.bbo-sec-sub{color:var(--bbo-mut);font-size:15px;margin:8px 0 0}
/* rich text body */
.bbo-rich{font-size:16px;line-height:1.8;color:#3a4150;max-width:780px}
.bbo-rich>p{margin:0 0 1.1rem}
.bbo-rich h3{font-family:'Poppins',sans-serif;font-weight:600;font-size:19px;color:var(--bbo-ink);margin:1.8rem 0 .6rem}
.bbo-rich ul,.bbo-rich ol{margin:0 0 1.1rem;padding-left:1.4rem}
.bbo-rich li{margin-bottom:.5rem}
.bbo-rich li::marker{color:var(--bbo-blue)}
.bbo-rich a{color:var(--bbo-blue);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.bbo-rich strong{color:var(--bbo-ink);font-weight:700}
/* grids + info cards */
.bbo-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.bbo-grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.bbo-icard{background:#fff;border:1px solid var(--bbo-line);border-radius:14px;padding:24px}
.bbo-icard .ic{width:46px;height:46px;border-radius:12px;background:#e9f3ff;color:var(--bbo-blue);display:grid;place-items:center;font-family:'Poppins',sans-serif;font-weight:700;font-size:18px;margin-bottom:13px}
.bbo-icard .ic svg{width:24px;height:24px}
.bbo-icard h3{font-family:'Poppins',sans-serif;font-weight:600;font-size:17px;color:var(--bbo-ink);margin:0 0 7px}
.bbo-icard p{font-size:14px;line-height:1.62;color:var(--bbo-mut);margin:0}
.bbo-icard--coral .ic{background:#fff0ee;color:var(--bbo-coral-d)}
.bbo-icard--green .ic{background:#eafaf0;color:var(--bbo-green)}
/* numbered steps */
.bbo-steps{display:grid;gap:16px;counter-reset:bstep}
.bbo-step{display:grid;grid-template-columns:46px 1fr;gap:18px;align-items:start;background:#fff;border:1px solid var(--bbo-line);border-radius:14px;padding:20px 22px}
.bbo-step::before{counter-increment:bstep;content:counter(bstep);width:46px;height:46px;border-radius:50%;background:var(--bbo-blue);color:#fff;font-family:'Poppins',sans-serif;font-weight:700;font-size:18px;display:grid;place-items:center}
.bbo-step h3{font-family:'Poppins',sans-serif;font-weight:600;font-size:17px;color:var(--bbo-ink);margin:6px 0 5px}
.bbo-step p{font-size:14.5px;line-height:1.62;color:#54596a;margin:0}
/* table */
.bbo-tbl{width:100%;border-collapse:collapse;font-size:15px;background:#fff;border-radius:12px;overflow:hidden;border:1px solid var(--bbo-line)}
.bbo-tbl th{background:var(--bbo-blue);color:#fff;font-family:'Poppins',sans-serif;font-weight:600;text-align:left;padding:13px 16px;font-size:13.5px}
.bbo-tbl td{padding:12px 16px;border-top:1px solid var(--bbo-line);color:#3a4150}
.bbo-tbl tr:nth-child(even) td{background:#fafbfe}
.bbo-tbl td:first-child{font-weight:700;color:var(--bbo-ink)}
/* callout */
.bbo-callout{display:flex;gap:16px;align-items:flex-start;background:#eaf3ff;border:1px solid #cfe2fb;border-left:4px solid var(--bbo-sky);border-radius:0 12px 12px 0;padding:18px 22px}
.bbo-callout .ic{flex:none;width:30px;height:30px;color:var(--bbo-sky)}
.bbo-callout p{margin:0;font-size:14.5px;line-height:1.65;color:#33405a}
.bbo-callout--coral{background:#fff3f0;border-color:#fbd5cd;border-left-color:var(--bbo-coral-d)}
.bbo-callout--coral .ic{color:var(--bbo-coral-d)}
/* past-paper download grid */
.bbo-papers{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.bbo-paper{display:flex;flex-direction:column;gap:4px;background:#fff;border:1px solid var(--bbo-line);border-radius:12px;padding:16px 18px;text-decoration:none;transition:.15s}
.bbo-paper:hover{border-color:var(--bbo-coral);box-shadow:0 14px 30px -22px var(--bbo-coral);transform:translateY(-2px)}
.bbo-paper .yr{font-family:'Poppins',sans-serif;font-weight:700;font-size:22px;color:var(--bbo-blue)}
.bbo-paper .dl{font-size:12.5px;font-weight:600;color:var(--bbo-coral-d);display:flex;align-items:center;gap:5px}
/* stat row (compact) */
.bbo-statrow{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;text-align:center}
.bbo-statrow b{display:block;font-family:'Poppins',sans-serif;font-weight:700;font-size:clamp(26px,3.4vw,34px);color:#fff;font-variant-numeric:tabular-nums}
.bbo-statrow span{font-size:12.5px;color:#c7d6ff;text-transform:uppercase;letter-spacing:.05em;font-weight:600}
@media(max-width:900px){
  .bbo-grid3,.bbo-papers{grid-template-columns:1fr 1fr}
  .bbo-statrow{grid-template-columns:1fr 1fr;gap:24px 16px}
}
@media(max-width:560px){
  .bbo-grid3,.bbo-grid2{grid-template-columns:1fr}
  .bbo-papers{grid-template-columns:1fr 1fr;gap:12px}   /* year tiles: 2 per row on mobile */
  .bbo-step{grid-template-columns:38px 1fr;gap:14px}
  .bbo-step::before{width:38px;height:38px;font-size:16px}
}

/* ===== past-papers scan-to-claim modal (pure CSS · #bbo-paper-toggle) ===== */
.bbo-paper{cursor:pointer}            /* year tiles are now <label> triggers */
.bbo-paper .dl{color:var(--bbo-coral-d)}
.bbo-modal{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;padding:20px}
.bbo-modal-toggle:checked ~ .bbo-modal{display:flex}
.bbo-modal-scrim{position:absolute;inset:0;background:rgba(10,14,30,.62);backdrop-filter:blur(2px);cursor:pointer}
.bbo-modal-card{position:relative;z-index:1;background:#fff;border-radius:18px;max-width:430px;width:100%;padding:34px 30px 26px;text-align:center;box-shadow:0 40px 90px -28px rgba(0,0,0,.55)}
.bbo-modal-x{position:absolute;top:10px;right:16px;font-size:28px;line-height:1;color:var(--bbo-mut);cursor:pointer}
.bbo-modal-x:hover{color:var(--bbo-ink)}
.bbo-modal-kick{font-family:'Inter',sans-serif;font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--bbo-coral-d)}
.bbo-modal-card h3{font-family:'Poppins',sans-serif;font-weight:700;font-size:24px;color:var(--bbo-blue);margin:8px 0 10px}
.bbo-modal-card p{font-size:14.5px;line-height:1.6;color:#4a5163;margin:0 0 20px}
.bbo-modal-qrs{display:flex;gap:18px;justify-content:center;margin-bottom:20px}
.bbo-modal-qrs figure{margin:0}
.bbo-modal-qrs figure:not(:has(img)){display:none}
.bbo-modal-qr{width:148px;height:148px;object-fit:contain;background:#fff;border:1px solid var(--bbo-line);border-radius:10px;padding:6px;box-sizing:border-box;display:block}
.bbo-modal-qrs figcaption{margin-top:7px;font-size:12px;font-weight:600;color:var(--bbo-ink)}
.bbo-modal-dismiss{display:inline-block;margin-top:14px;font-size:13px;color:var(--bbo-mut);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.bbo-modal-dismiss:hover{color:var(--bbo-ink)}
@media(max-width:460px){.bbo-modal-qr{width:120px;height:120px}.bbo-modal-qrs{gap:12px}}

/* ===== article detail: hide featured cover (user req · kept in DOM for Article JSON-LD) ===== */
body.single .hl-article-cover{display:none}

/* ===== compact contact-CTA card (user: too big) · affects post auto-CTA + page [hl_contact_cta] (not the home band) ===== */
.hl-article-cta{gap:20px;padding:22px 24px;margin:30px 0;border-radius:14px}
.hl-article-cta-title{font-size:18px}
.hl-article-cta-sub{font-size:13px;margin-bottom:10px}
.hl-article-cta-bullets{font-size:12.5px;margin-bottom:12px}
.hl-article-cta-bullets li{margin-bottom:3px}
.hl-article-cta .hl-cta-online-btn{padding:10px 18px;font-size:13.5px}
.hl-article-cta .hl-cta-scan-img{width:118px;height:118px}
.hl-article-cta .hl-cta-qr-dual{gap:12px}
.hl-article-cta .hl-cta-qr-dual .hl-cta-qr-panel figcaption{font-size:11px;margin-top:6px}
@media(min-width:640px){.hl-article-cta{gap:26px}}
