/* Bio-Well: the original spacious layout, maintained through /DESIGN.md.
   DESIGN_VARIANCE: 6; MOTION_INTENSITY: 3; VISUAL_DENSITY: 3.
   One blue accent; 16px heroes, 12px images and 4px controls. */
:root {
  --bw-blue:#235bb7; --bw-blue-hover:#17488f; --bw-ink:#102b40;
  --bw-text:#40576a; --bw-muted:#526a7c; --bw-line:#dce4ea;
  --bw-surface:#f7f9fb; --bw-white:#fff; --bw-radius:12px; --bw-hero-radius:16px;
  --bw-control-radius:4px; --bw-width:1280px; --bw-gutter:clamp(20px,4vw,64px);
  --bw-wide:1440px; --bw-reading:780px; --bw-section-space:90px;
  --bw-ease:cubic-bezier(.22,.61,.36,1); color-scheme:light;
  --blue:var(--bw-blue); --ink:var(--bw-ink); --text:var(--bw-text);
  --light:var(--bw-surface); --border:var(--bw-line); --radius:var(--bw-radius);
  --background:var(--bw-white); --foreground:var(--bw-ink); --primary:var(--bw-blue);
  --muted:var(--bw-surface); --muted-foreground:var(--bw-muted);
}
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:100px; -webkit-text-size-adjust:100%; }
body.bw-site { margin:0; background:var(--bw-white); color:var(--bw-ink); font-family:"Helvetica Neue","PingFang SC","Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif; font-size:16px; line-height:1.75; -webkit-font-smoothing:antialiased; }
.bw-site :where(h1,h2,h3,h4,h5,h6,p,figure,blockquote) { margin:0; }
.bw-site :where(h1,h2,h3,h4) { color:var(--bw-ink); font-weight:500; line-height:1.4; overflow-wrap:break-word; text-wrap:balance; }
.bw-site :where(h1) { font-size:clamp(34px,3.6vw,52px); letter-spacing:-.035em; }
.bw-site :where(h2) { font-size:clamp(28px,2.8vw,38px); letter-spacing:-.025em; }
.bw-site :where(h3) { font-size:21px; }
.bw-site :where(p) { color:var(--bw-text); line-height:1.85; overflow-wrap:break-word; }
.bw-site :where(a) { color:inherit; text-decoration:none; }
.bw-site :where(button,input,select,textarea) { font:inherit; }
.bw-site :where(button,summary,a) { -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
.bw-site button { cursor:pointer; }
.bw-site :where(img) { max-width:100%; height:auto; }
.bw-site :where(img,svg) { vertical-align:middle; }
.bw-site svg { flex-shrink:0; }
.bw-site :where(ul,ol) { margin:0; padding:0; }
.bw-site :where(a,button,summary,input,select,textarea):focus-visible { outline:3px solid var(--bw-blue); outline-offset:4px; }
.announcement a:focus-visible,.home-hero a:focus-visible { outline-color:#fff; }
.bw-site :where(input,textarea)::placeholder { color:var(--bw-muted); opacity:1; }
.bw-site main :where([id]) { scroll-margin-top:100px; }
.bw-site main:focus { outline:none; }
.bw-site main { min-width:0; }
.bw-site [hidden] { display:none!important; }
.skip-link { position:fixed; top:-100px; left:20px; z-index:100; padding:12px 18px; background:var(--bw-white); color:var(--bw-blue); }
.skip-link:focus { top:12px; }
.screen-reader-text { position:absolute!important; clip-path:inset(50%); width:1px; height:1px; overflow:hidden; white-space:nowrap; }
.screen-reader-text:focus { position:fixed!important; clip-path:none; width:auto; height:auto; top:8px; left:8px; z-index:100; background:var(--bw-white); padding:12px; }

/* The first layout's generous header, with native accessible navigation. */
.announcement { min-height:32px; background:var(--bw-ink); color:#fff; font-size:12px; }
.announcement a { min-height:32px; display:flex; align-items:center; justify-content:center; gap:32px; padding:4px var(--bw-gutter); letter-spacing:.025em; }
.announcement span { display:inline-flex; align-items:center; gap:6px; color:#dce8f1; }
.site-header { position:relative; z-index:40; background:var(--bw-white); }
.bw-header-inner { position:relative; width:min(var(--bw-wide),calc(100% - var(--bw-gutter)*2)); min-height:116px; margin-inline:auto; display:flex; align-items:center; gap:24px; }
.brand { flex-shrink:0; display:block; }
.brand img { display:block; width:168px; max-height:66px; object-fit:contain; }
.desktop-nav { margin-left:auto; display:flex; align-items:center; gap:24px; font-size:14px; white-space:nowrap; }
.desktop-nav>a,.bw-nav-group>summary { display:flex; align-items:center; min-height:44px; }
.desktop-nav>a { position:relative; }
.desktop-nav>a::after { content:""; position:absolute; bottom:6px; left:0; right:0; height:2px; background:var(--bw-blue); transform:scaleX(0); transform-origin:left; transition:transform 160ms var(--bw-ease); }
.desktop-nav>a:hover { color:var(--bw-blue); }
.desktop-nav>a:hover::after,.desktop-nav>a[aria-current]::after { transform:scaleX(1); }
.desktop-nav a[aria-current],.mobile-nav a[aria-current] { color:var(--bw-blue); }
.header-contact { flex-shrink:0; min-height:44px; display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:8px 16px; border:1px solid #b3c2cd; border-radius:var(--bw-control-radius); font-size:13px; white-space:nowrap; }
.header-contact:hover { color:var(--bw-blue); border-color:var(--bw-blue); background:var(--bw-surface); }
.bw-nav-group { position:relative; }
.bw-nav-group>summary { gap:6px; list-style:none; cursor:pointer; }
.bw-nav-group>summary::-webkit-details-marker,.mobile-nav>summary::-webkit-details-marker { display:none; }
.bw-nav-group>summary>span { color:var(--bw-muted); }
.bw-nav-submenu { position:absolute; left:-16px; top:100%; z-index:45; min-width:216px; padding:8px; background:var(--bw-white); border:1px solid var(--bw-line); border-radius:var(--bw-radius); box-shadow:0 12px 32px #182b4512; }
.bw-nav-submenu a { display:block; padding:10px 12px; border-radius:var(--bw-control-radius); }
.bw-nav-submenu a:hover { background:var(--bw-surface); color:var(--bw-blue); }
.mobile-nav { display:none; }
.mobile-nav>summary { width:44px; height:44px; display:grid; place-content:center; gap:6px; cursor:pointer; list-style:none; border:1px solid var(--bw-line); border-radius:var(--bw-control-radius); }
.mobile-nav>summary span { display:block; width:18px; height:2px; background:var(--bw-ink); transition:transform 160ms var(--bw-ease); }
.mobile-nav[open]>summary span:first-child { transform:translateY(4px) rotate(45deg); }
.mobile-nav[open]>summary span:last-child { transform:translateY(-4px) rotate(-45deg); }
.mobile-nav nav { position:absolute; top:calc(100% + 8px); left:0; right:0; max-height:calc(100dvh - 100px); overflow-y:auto; overscroll-behavior:contain; padding:12px 20px 18px; background:var(--bw-white); border:1px solid var(--bw-line); border-radius:var(--bw-radius); box-shadow:0 12px 32px #182b4512; }
.mobile-nav nav a { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:48px; padding:10px 0; border-bottom:1px solid var(--bw-line); font-size:15px; }
.mobile-nav nav a:last-child { border-bottom:0; }
.bw-mobile-group>span { display:block; padding:16px 0 6px; font-size:12px; color:var(--bw-muted); }

/* Shared controls and page rhythm. */
.button,.wp-block-button__link { display:inline-flex; align-items:center; justify-content:center; gap:22px; min-height:48px; padding:12px 24px; border:1px solid var(--bw-blue); border-radius:var(--bw-control-radius); background:var(--bw-blue); color:#fff!important; font-size:14px; font-weight:500; line-height:1.4; white-space:nowrap; transition:background 180ms var(--bw-ease),border-color 180ms var(--bw-ease),transform 180ms var(--bw-ease); }
.button:hover,.wp-block-button__link:hover { background:var(--bw-blue-hover); border-color:var(--bw-blue-hover); }
.button:active { transform:translateY(1px); }
.button-outline { color:var(--bw-ink)!important; background:transparent; border-color:#b8c7da; }
.button-outline:hover { color:var(--bw-blue)!important; background:var(--bw-surface); border-color:var(--bw-blue); }
.text-link,.read-more { display:inline-flex; align-items:center; gap:12px; color:var(--bw-blue); font-size:14px; }
.button svg,.text-link svg,.read-more svg,.header-contact svg { transition:transform 180ms var(--bw-ease); }
@media(hover:hover) { :is(.button,.text-link,.read-more,.header-contact):hover svg { transform:translate(2px,-2px); } }
.text-link:hover,.read-more:hover { text-decoration:underline; text-underline-offset:4px; }
.text-link { white-space:nowrap; }
.section,.page-body,.intro-strip,.site-footer,.home-hero,.page-hero { width:min(var(--bw-width),calc(100% - var(--bw-gutter)*2)); margin-inline:auto; }
.section { padding-block:var(--bw-section-space); }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:28px; margin-bottom:38px; }
.section-heading>div { min-width:0; }
.section-heading h2 { margin:0; }
.eyebrow { display:block; color:var(--bw-blue); font-size:12px; font-weight:500; letter-spacing:.04em; margin-bottom:12px; }
.page-hero { width:min(var(--bw-wide),92.5%); margin-top:0; padding:55px clamp(28px,6vw,88px) 65px; border:0; border-radius:var(--bw-hero-radius); background:var(--bw-surface); }
.breadcrumb { display:flex; align-items:center; flex-wrap:wrap; gap:9px; margin-bottom:24px; color:var(--bw-muted); font-size:12px; overflow-wrap:anywhere; }
.breadcrumb a:hover { color:var(--bw-blue); }
.page-hero h1 { max-width:1000px; margin-bottom:22px; font-size:clamp(36px,4.5vw,60px); font-weight:400; }
.page-hero .lead { max-width:730px; margin:0; font-size:18px; line-height:1.85; }
.page-body { padding-block:65px var(--bw-section-space); min-width:0; }
.page-body :where(h2) { margin:36px 0 18px; }
.page-body :where(h3) { margin:26px 0 12px; }
.page-body :where(p) { margin-bottom:18px; }
.page-body>h2:first-child,.page-body>section:first-child>h2,.prose>h2:first-child { margin-top:0; }
.page-body .section-heading h2 { margin:0; }

/* Preserve the original photographic hero and its text-over-image composition. */
.home-hero { position:relative; isolation:isolate; display:flex; align-items:center; width:min(var(--bw-wide),92.5%); min-height:clamp(520px,65vw,650px); margin-top:0; border:0; border-radius:var(--bw-hero-radius); background:var(--bw-ink); overflow:hidden; }
.hero-image { position:absolute; inset:0; z-index:-2; display:block; object-fit:cover; object-position:center; width:100%; height:100%; }
.hero-shade { position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,#081e30ed 0%,#081e30d6 31%,#081e3080 56%,#081e3014 100%); }
.hero-copy { position:relative; width:100%; padding:56px clamp(32px,6.4vw,96px) 94px; min-width:0; }
.hero-kicker { display:block; color:#e1ebf2; font-size:13px; letter-spacing:.08em; }
.hero-copy h1 { margin:22px 0 24px; color:#fff; font-size:clamp(48px,5.2vw,76px); font-weight:500; line-height:1.13; letter-spacing:-.025em; }
.hero-copy p { max-width:400px; margin:0 0 28px; color:#edf4f8; font-size:16px; line-height:1.85; }
.hero-copy .button { background:#fff; border-color:#fff; color:var(--bw-ink)!important; }
.hero-copy .button:hover { background:#e8eff5; border-color:#e8eff5; }
.hero-caption { position:absolute; bottom:25px; left:clamp(32px,6.4vw,96px); display:inline-flex; align-items:center; gap:20px; max-width:calc(100% - 64px); padding:8px 0; border-bottom:1px solid #d7e5ef75; color:#edf4f8; font-size:12px; }
.hero-caption:hover { color:#fff; border-color:#fff; }
.intro-strip { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-block:28px; border-bottom:1px solid var(--bw-line); font-size:13px; }
.intro-strip :is(span,a) { display:inline-flex; align-items:center; gap:8px; }
.intro-strip svg { color:var(--bw-blue); width:18px; }
.intro-strip a { color:var(--bw-blue); }
.split-section { display:grid; grid-template-columns:minmax(0,1.13fr) minmax(0,.87fr); align-items:center; gap:clamp(36px,7vw,100px); }
.split-photo { position:relative; overflow:hidden; border-radius:var(--bw-radius); background:var(--bw-surface); }
.split-photo>img { width:100%; height:450px; display:block; object-fit:cover; transition:transform 500ms var(--bw-ease); }
@media(hover:hover) { a.split-photo:hover>img { transform:scale(1.025); } }
.split-copy h2 { margin-bottom:26px; font-size:clamp(30px,3vw,42px); line-height:1.5; }
.split-copy p { margin-bottom:16px; }
.split-copy .button { margin-top:6px; }
.image-caption { position:relative; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 20px; background:var(--bw-surface); font-size:13px; }
.blue-section { width:100%; padding:var(--bw-section-space) max(var(--bw-gutter),calc((100% - var(--bw-width))/2)); border-radius:0; background:var(--bw-surface); }
.feature-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:56px; }
.feature { min-width:0; padding:12px 0 0; }
.feature-top { display:flex; align-items:center; margin:0 0 24px; color:var(--bw-blue); }
.feature-top span { display:none; }
.feature h3 { margin:0 0 16px; font-size:24px; }
.feature p { font-size:16px; }
.comparison-section { padding-top:12px; }
.comparison-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }
.comparison-pair figure { position:relative; margin:0; }
.comparison-pair img { display:block; width:100%; height:380px; object-fit:contain; border:0; border-radius:var(--bw-radius); background:var(--bw-surface); }
.comparison-pair figcaption { padding:16px 0 0; color:var(--bw-muted); font-size:13px; }
.comparison-note { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:18px; }
.comparison-note p { font-size:13px; }
.quote-section { width:min(var(--bw-width),calc(100% - var(--bw-gutter)*2)); margin-inline:auto; padding:42px 0 56px; border-top:1px solid var(--bw-line); border-bottom:1px solid var(--bw-line); text-align:center; }
.quote-mark { display:none; }
.quote-section blockquote { max-width:850px; margin:0 auto 22px; font-size:clamp(28px,3vw,42px); line-height:1.6; font-weight:400; letter-spacing:-.02em; }
.quote-section p { font-size:13px; margin-bottom:18px; }
.bw-home .section>.section-heading .eyebrow,.bw-home .comparison-section .eyebrow,.bw-home .reverse .eyebrow { display:none; }
.bw-home-commerce { border-top:1px solid var(--bw-line); }
.bw-home-learning-link { width:min(var(--bw-width),calc(100% - var(--bw-gutter)*2)); margin:-40px auto 72px; color:var(--bw-muted); font-size:14px; }
.bw-home-learning-link a { color:var(--bw-blue); text-decoration:underline; text-underline-offset:4px; }
.bw-home-courses { padding-top:0; }

/* Content collections and long-form reading. */
.article-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.article-card { display:flex; flex-direction:column; min-width:0; }
.card-image { position:relative; overflow:hidden; margin-bottom:22px; border:0; border-radius:var(--bw-radius); background:var(--bw-surface); }
.card-image>img { display:block; object-fit:cover; width:100%; height:250px; transition:transform 450ms var(--bw-ease); }
@media(hover:hover) { .article-card:hover .card-image>img { transform:scale(1.03); } }
.card-arrow { display:none; }
.article-card .eyebrow { font-size:12px; margin-bottom:8px; letter-spacing:0; }
.article-card h3,.bw-site .bw-card-title { font-size:21px; line-height:1.6; font-weight:500; letter-spacing:-.015em; margin:0 0 12px!important; }
.article-card p,.bw-content-card p { font-size:14px; line-height:1.8; margin-bottom:16px; }
.article-card .read-more { margin-top:auto; padding-top:4px; }
.article-card:hover :is(h2,h3) { color:var(--bw-blue); }
.bw-card-no-image { padding:24px 0; border-top:1px solid var(--bw-line); border-radius:0; }
.bw-imported-related .article-card p { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; }
.content-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.info-card { display:flex; flex-direction:column; align-items:flex-start; min-width:0; padding:28px; border:0; border-radius:var(--bw-radius); background:var(--bw-surface); }
.info-card h3, .info-card h2 { margin:10px 0 12px; font-size:20px; }
.info-card p { font-size:14px; }
.info-card img { display:block; width:100%; height:190px; object-fit:contain; margin-bottom:18px; }
.info-card .button,.info-card .read-more { margin-top:auto; }
.info-card .read-more { padding-top:12px; }
.info-card:hover h3 { color:var(--bw-blue); }
.card-number { color:var(--bw-blue); font-size:12px; }
.reading-layout { display:grid; grid-template-columns:minmax(0,1fr) 216px; gap:64px; max-width:1120px; margin-inline:auto; }
.prose { width:100%; max-width:var(--bw-reading); min-width:0; }
.bw-editor-content>.prose { margin-inline:auto; }
.prose :is(p,li) { font-size:17px; line-height:1.95; }
.prose :is(ul,ol) { margin:18px 0 24px; padding-left:24px; color:var(--bw-text); list-style:revert; }
.prose li { padding-left:3px; margin-bottom:8px; }
.prose :is(ul,ol) :is(ul,ol) { margin-block:8px; }
.prose strong { color:var(--bw-ink); }
.prose a:not(.button):not(.read-more):not(.info-card):not(.article-card) { color:var(--bw-blue); text-decoration:underline; text-underline-offset:4px; overflow-wrap:anywhere; }
.prose blockquote { margin:26px 0; padding:20px 24px; border-left:3px solid var(--bw-blue); background:var(--bw-surface); }
.prose figure { margin:28px 0; }
.prose figcaption { margin-top:10px; color:var(--bw-muted); font-size:13px; }
.prose img { max-width:100%; border-radius:var(--bw-radius); }
.prose .content-grid { grid-template-columns:repeat(2,minmax(0,1fr)); margin-block:24px; }
.prose .info-card p { font-size:14px; }
.prose .info-card h3 { margin-top:8px; }
.prose .info-card img { height:170px; }
.side-nav { position:sticky; top:100px; align-self:start; border-left:1px solid var(--bw-line); padding-left:24px; }
.side-nav h3 { font-size:14px; margin:0 0 16px; }
.side-nav>a { display:block; font-size:13px; line-height:1.65; color:var(--bw-muted); margin:12px 0; }
.side-nav>a:hover { color:var(--bw-blue); }
.side-contact { background:var(--bw-surface); padding:18px; margin-top:24px; border-radius:var(--bw-radius); font-size:13px; }
.side-contact strong { display:block; color:var(--bw-blue); font-size:21px; margin:8px 0; }
.bw-inline-toc { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 32px; margin:0 0 48px; padding:0 0 32px; background:transparent; border:0; border-bottom:1px solid var(--bw-line); border-radius:0; font-size:14px; }
.bw-inline-toc strong { grid-column:1/-1; font-weight:500; margin-bottom:4px; }
.bw-inline-toc a { display:flex; align-items:center; min-height:44px; overflow-wrap:anywhere; }
.bw-related { margin-top:48px; }
.content-image { display:block; width:100%; max-height:440px; object-fit:cover; border-radius:var(--bw-radius); margin-bottom:28px; }
.bw-about-page .prose>.content-image { aspect-ratio:16/9; max-height:none; margin-bottom:48px; }
.bw-about-page .prose>section+section { margin-top:48px; }
.bw-about-page .prose .content-grid { grid-template-columns:minmax(0,1fr); gap:0; margin-block:32px; }
.bw-about-page .prose .info-card { display:grid; grid-template-columns:112px minmax(0,1fr); column-gap:24px; row-gap:8px; padding:28px 0; border-top:1px solid var(--bw-line); border-radius:0; background:transparent; }
.bw-about-page .prose .info-card>img { grid-column:1; grid-row:1/5; width:112px; height:148px; object-fit:cover; border-radius:var(--bw-radius); margin:0; }
.bw-about-page .prose .info-card>:not(img) { grid-column:2; margin:0; padding:0; }
.bw-about-page .prose .info-card:not(:has(img)) { grid-template-columns:minmax(0,1fr); }
.bw-about-page .prose .info-card:not(:has(img))>* { grid-column:1; }
.bw-about-page .prose .info-card h3 { font-size:20px; }
.bw-about-page .prose .info-card p { font-size:14px; }
.bw-article-page .prose h2 { margin-top:56px; }
.bw-article-page .prose figure { margin-block:40px; }
.note { margin:28px 0; padding:20px 24px; border-left:3px solid var(--bw-blue); border-radius:0 var(--bw-radius) var(--bw-radius) 0; background:var(--bw-surface); font-size:14px; }
.note p:last-child { margin:0; }
.resource-row { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:24px 0; border-bottom:1px solid var(--bw-line); }
.resource-row>div { min-width:0; }
.resource-row :is(h2,h3) { font-size:20px; margin:0 0 8px; }
.resource-row p { font-size:14px; margin:0; }
.resource-row .button,.resource-row .read-more { flex-shrink:0; }
.pill-row { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:32px; }
.pill { display:inline-flex; align-items:center; min-height:44px; padding:8px 16px; border:1px solid var(--bw-line); border-radius:var(--bw-control-radius); font-size:14px; }
.pill.active { color:#fff; background:var(--bw-blue); border-color:var(--bw-blue); }
.pagination { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:8px; margin-top:40px; }
.pagination a,.pagination span { display:grid; place-items:center; min-width:42px; min-height:42px; padding:6px 12px; border:1px solid var(--bw-line); border-radius:var(--bw-control-radius); font-size:13px; }
.pagination [aria-current],.pagination .current { background:var(--bw-blue); border-color:var(--bw-blue); color:#fff; }
.filter-note { margin-top:24px; font-size:13px; color:var(--bw-muted); }
.article-meta { display:flex; flex-wrap:wrap; gap:8px 20px; margin-top:18px; font-size:13px; color:var(--bw-muted); }
.article-bottom { display:flex; justify-content:space-between; gap:20px; border-top:1px solid var(--bw-line); padding-top:24px; margin-top:40px; font-size:14px; color:var(--bw-blue); }
.table-wrap,.wp-block-table { max-width:100%; overflow-x:auto; margin:24px 0; }
.prose table,.table-wrap table { width:100%; border-collapse:collapse; text-align:left; font-size:14px; }
.prose :is(th,td),.table-wrap :is(th,td) { padding:12px 14px; border-bottom:1px solid var(--bw-line); }
.prose th,.table-wrap th { background:var(--bw-surface); font-weight:500; }
.timeline { border-left:1px solid var(--bw-line); padding-left:26px; }
.timeline>div { position:relative; padding-bottom:24px; }
.timeline>div::before { content:""; position:absolute; left:-30px; top:9px; width:7px; height:7px; border-radius:50%; background:var(--bw-blue); }
.timeline strong { color:var(--bw-blue); font-weight:500; }
.two-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }
.sources { margin-top:32px; padding-top:20px; border-top:1px solid var(--bw-line); color:var(--bw-muted); font-size:13px; overflow-wrap:anywhere; }
.sources a { text-decoration:underline; text-underline-offset:4px; }
.download-icon { margin-bottom:18px; color:var(--bw-blue); font-size:30px; }
.faq-group { margin:24px 0 36px; }
.faq-item { border-bottom:1px solid var(--bw-line); }
.faq-trigger { display:flex; width:100%; align-items:center; justify-content:space-between; gap:16px; text-align:left; background:transparent; color:var(--bw-ink); border:0; min-height:48px; padding:20px 0; font-size:16px; }
.faq-content { padding-bottom:20px; color:var(--bw-text); font-size:15px; line-height:1.85; }
.empty-page { text-align:center; padding:80px 24px; }
.empty-page h1 { color:var(--bw-blue); font-size:64px; margin-bottom:20px; }
.empty-page p { margin-bottom:24px; }
.bw-empty-state { max-width:760px; padding:28px; border:1px solid var(--bw-line); border-radius:var(--bw-radius); background:var(--bw-surface); }
.bw-empty-state h2 { margin:0 0 12px; font-size:23px; }
.bw-empty-state p { margin-bottom:20px; }
.contact-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:start; gap:56px; }
.contact-card { text-align:center; padding:36px; border:1px solid var(--bw-line); border-radius:var(--bw-radius); background:var(--bw-surface); }
.contact-card .wechat-id { font-size:clamp(32px,4vw,48px); color:var(--bw-blue); margin:16px 0 24px; overflow-wrap:anywhere; }
.copy-message { display:block; min-height:24px; margin:14px 0 0; font-size:13px; color:var(--bw-blue); }
.steps { counter-reset:steps; }
.step { display:grid; grid-template-columns:36px minmax(0,1fr); gap:20px; padding:24px 0; border-bottom:1px solid var(--bw-line); }
.step::before { counter-increment:steps; content:"0" counter(steps); color:var(--bw-blue); font-size:22px; }
.step h3 { margin:0 0 10px; }
.step p { margin:0; font-size:15px; }

/* Native course/search forms. */
.bw-course-layout { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:48px; }
.bw-course-sidebar { position:sticky; top:100px; align-self:start; }
.bw-purchase-panel { padding:26px; border:1px solid var(--bw-line); border-radius:var(--bw-radius); background:var(--bw-surface); }
.bw-purchase-panel>h2 { margin:0 0 20px; font-size:24px; }
.bw-purchase-panel .bw-empty-state { border:0; background:transparent; padding:0; }
.bw-purchase-panel .bw-empty-state h2 { font-size:20px; }
.bw-purchase-panel label { display:block; font-size:14px; margin:16px 0 7px; }
.bw-purchase-panel :is(input:not([type=checkbox]):not([type=radio]),select,textarea) { width:100%; min-height:44px; padding:10px 12px; background:var(--bw-white); border:1px solid #7c919f; border-radius:var(--bw-control-radius); }
.bw-purchase-panel :is(button,input[type=submit]) { margin-top:18px; min-height:44px; border:1px solid var(--bw-blue); border-radius:var(--bw-control-radius); padding:10px 18px; background:var(--bw-blue); color:#fff; }
.bw-purchase-panel :is(input[type=checkbox],input[type=radio]) { accent-color:var(--bw-blue); width:18px; height:18px; margin-right:8px; }
.bw-purchase-panel .bw-session,.bw-course-session { padding:18px 0; border-bottom:1px solid var(--bw-line); }
.bw-purchase-panel .price,.bw-course-price { color:var(--bw-blue); font-size:24px; }
.bw-purchase-panel [role=alert],.bw-purchase-panel .bw-error { padding:12px; background:#fff5f3; color:#a23428; border-left:3px solid #a23428; margin:18px 0; }
.bw-purchase-panel :disabled { opacity:.6; cursor:not-allowed; }
.bw-search-form { margin-bottom:36px; max-width:760px; }
.search-form>label { display:block; font-size:14px; margin-bottom:10px; }
.bw-search-controls { display:flex; gap:12px; }
.bw-search-controls input { flex:1; min-width:0; min-height:46px; border:1px solid #7c919f; border-radius:var(--bw-control-radius); padding:10px 14px; background:var(--bw-white); }
.bw-search-controls button { flex-shrink:0; }
.bw-profile-offer { padding-top:0; }
.bw-product-offer { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:26px; background:var(--bw-surface); border:1px solid var(--bw-line); border-radius:var(--bw-radius); }
.bw-product-offer h3 { font-size:22px; margin-bottom:10px; }
.bw-product-offer .price { color:var(--bw-blue); font-size:22px; }
.bw-product-grid .card-image { background:var(--bw-surface); padding:22px; }
.bw-product-grid .card-image img { object-fit:contain; aspect-ratio:4/3; height:auto; background:var(--bw-surface); mix-blend-mode:multiply; }
.bw-product-grid .price { font-size:23px; color:var(--bw-ink); margin:4px 0 18px; font-variant-numeric:tabular-nums; }
.bw-product-grid .bw-catalog-price-label { color:var(--bw-muted); font-size:12px; }

/* A quiet brand colophon, with the existing contact and policy information. */
.site-footer { width:100%; margin-top:16px; padding:64px max(var(--bw-gutter),calc((100% - var(--bw-width))/2)) 28px; border-top:1px solid var(--bw-line); background:var(--bw-surface); }
.footer-grid { display:grid; grid-template-columns:1.45fr repeat(3,minmax(0,1fr)); gap:56px; margin-bottom:48px; }
.footer-brand img { display:block; width:150px; height:auto; margin-bottom:22px; }
.footer-brand p { font-size:14px; line-height:1.9; }
.wechat-inline { display:inline-flex; align-items:center; gap:8px; margin-top:14px; color:var(--bw-blue); font-size:13px; }
.footer-grid h3 { margin:0 0 20px; font-size:14px; font-weight:500; }
.footer-grid ul { list-style:none; }
.footer-grid li { font-size:13px; color:var(--bw-muted); margin-bottom:12px; }
.footer-grid a:hover { color:var(--bw-blue); }
.footer-bottom { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-top:20px; border-top:1px solid var(--bw-line); color:var(--bw-muted); font-size:12px; }
.footer-bottom>div { display:flex; flex-wrap:wrap; gap:20px; }
.disclaimer { max-width:940px; margin-top:16px; color:var(--bw-muted); font-size:12px; line-height:1.8; }

@media (max-width:1120px) {
  .desktop-nav { display:none; } .mobile-nav { display:block; }
  .brand { margin-right:auto; } .bw-header-inner { min-height:90px; gap:12px; }
  .split-section { gap:40px; }
  .reading-layout { gap:36px; grid-template-columns:minmax(0,1fr) 190px; }
  .bw-course-layout { grid-template-columns:minmax(0,1fr) 300px; gap:32px; }
}
@media (max-width:850px) {
  .home-hero { width:92%; min-height:580px; }
  .hero-copy { padding:48px 40px 88px; } .hero-copy h1 { font-size:54px; }
  .hero-caption { left:40px; }
  .split-photo>img { height:340px; }
  .reading-layout,.bw-course-layout { grid-template-columns:minmax(0,1fr); gap:32px; }
  .side-nav { position:static; padding:24px 0 0; border-left:0; border-top:1px solid var(--bw-line); }
  .side-nav>a { display:inline-block; margin:8px 18px 8px 0; } .side-contact { display:none; }
  .bw-course-sidebar { position:static; }
  .article-grid,.content-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .footer-grid { gap:28px; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .footer-brand { grid-column:1/-1; } .contact-layout { gap:32px; }
}
@media (max-width:767px) {
  :root { --bw-gutter:20px; --bw-section-space:56px; --bw-hero-radius:12px; }
  .home-hero { width:92%; min-height:565px; margin-top:0; }
  .hero-copy { padding:40px 28px 92px; } .hero-copy h1 { font-size:52px; margin:22px 0; }
  .hero-copy p { font-size:15px; margin-bottom:28px; } .hero-image { height:100%; object-position:58% center; }
  .hero-shade { background:linear-gradient(90deg,#081e30ed,#081e30cc 55%,#081e3066); }
  .hero-kicker { font-size:12px; letter-spacing:.025em; }
  .hero-caption { left:28px; bottom:24px; max-width:calc(100% - 56px); padding:8px 0; font-size:11px; gap:12px; }
  .intro-strip { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 12px; font-size:12px; }
  .split-section,.two-columns,.contact-layout { grid-template-columns:minmax(0,1fr); gap:28px; }
  .reverse .split-copy { order:2; } .split-photo>img { height:320px; }
  .blue-section { padding:var(--bw-section-space) var(--bw-gutter); }
  .feature-grid { grid-template-columns:minmax(0,1fr); gap:32px; }
  .feature { padding:0; } .feature-top { margin-bottom:16px; }
  .feature h3 { font-size:22px; } .feature p { font-size:16px; }
  .section-heading { align-items:start; flex-direction:column; gap:12px; margin-bottom:24px; }
  .comparison-pair { gap:12px; } .comparison-pair img { height:230px; }
  .comparison-note { align-items:start; flex-direction:column; gap:12px; } .quote-section { padding:32px 0; }
  .page-hero { width:92%; margin-top:0; padding:28px 7% 38px; } .page-hero h1 { font-size:35px; } .page-hero .lead { font-size:16px; }
  .page-body { padding-block:40px var(--bw-section-space); }
  .resource-row { align-items:start; flex-direction:column; gap:16px; } .article-bottom { flex-direction:column; }
  .bw-product-offer { align-items:start; flex-direction:column; padding:22px; }
  .footer-bottom { align-items:start; flex-direction:column; gap:12px; }
  .bw-home-learning-link { margin-top:-20px; margin-bottom:48px; }
}
@media (max-width:600px) {
  .announcement span { display:none; } .announcement a { font-size:11px; }
  .bw-header-inner { gap:10px; min-height:82px; } .brand img { width:122px; }
  .header-contact { font-size:12px; gap:6px; padding-inline:10px; } .header-contact svg { width:14px; }
  .article-grid,.content-grid,.prose .content-grid { grid-template-columns:minmax(0,1fr); }
  .article-grid { gap:32px; } .card-image>img { height:230px; } .bw-card-no-image { padding:24px 0; }
  .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; } .footer-brand { grid-column:1/-1; }
  .contact-card { padding:28px 22px; } .comparison-pair img { height:175px; }
  .comparison-pair figcaption { padding-top:12px; font-size:12px; }
  .bw-search-controls { flex-wrap:wrap; } .bw-search-controls input { flex-basis:100%; }
  .bw-inline-toc { grid-template-columns:minmax(0,1fr); padding-bottom:24px; gap:8px; } .prose :is(p,li) { font-size:16px; }
  .bw-about-page .prose .info-card { grid-template-columns:88px minmax(0,1fr); column-gap:18px; }
  .bw-about-page .prose .info-card>img { width:88px; height:116px; }
  .bw-about-page .prose .info-card h3 { font-size:18px; }
  .bw-about-page .prose>.content-image { margin-bottom:32px; }
  .bw-article-page .prose h2 { margin-top:40px; }
  .site-footer { padding-block:40px 24px; }
}
@media (max-width:360px) {
  .hero-copy h1 { font-size:46px; } .page-hero h1 { font-size:32px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .bw-site *,.bw-site *::before,.bw-site *::after { transition:none!important; animation:none!important; }
}
@media print {
  .announcement,.site-header,.site-footer,.bw-course-sidebar { display:none; }
  .page-hero { border:0; background:none; } .page-body,.section { padding:16px 0; width:100%; }
  .reading-layout { display:block; } .side-nav { display:none; }
}

/* Registry service page: reuse the site's palette, type and 4px controls. */
.bw-verification-page { padding-block:48px var(--bw-section-space); }
.bw-footer-registry-link { display:inline-flex; align-items:center; gap:6px; }
.bw-registry { min-width:0; }
.bw-registry-switch { display:flex; flex-wrap:wrap; gap:8px 32px; margin-bottom:40px; border-bottom:1px solid var(--bw-line); }
.bw-registry-switch a { display:flex; align-items:center; min-height:56px; padding:12px 0; margin-bottom:-1px; border-bottom:2px solid transparent; color:var(--bw-muted); font-size:17px; }
.bw-registry-switch a[aria-current] { color:var(--bw-blue); border-bottom-color:var(--bw-blue); }
.bw-registry-switch a:hover { color:var(--bw-blue); }
.bw-registry-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(240px,300px); align-items:start; gap:clamp(32px,5vw,72px); }
.bw-registry-primary { min-width:0; }
.bw-registry h2 { font-size:clamp(25px,2.2vw,32px); }
.bw-registry-intro { margin-top:12px; max-width:68ch; }
.bw-registry-form { margin-top:28px; }
.bw-registry-regions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-bottom:20px; }
.bw-registry-certificate-fields { display:grid; grid-template-columns:minmax(145px,.45fr) minmax(0,1fr); gap:16px; }
.bw-registry-field { min-width:0; }
.bw-registry-field label { display:block; margin-bottom:8px; color:var(--bw-ink); font-size:14px; }
.bw-registry-field input,.bw-registry-field select { width:100%; min-width:0; min-height:48px; padding:10px 12px; border:1px solid #7c919f; border-radius:var(--bw-control-radius); background:var(--bw-white); color:var(--bw-ink); font-size:16px; line-height:1.6; }
.bw-registry-field input[aria-invalid],.bw-registry-field select[aria-invalid] { border-color:#a23428; }
.bw-registry-hint { margin-top:12px; font-size:13px; color:var(--bw-muted); }
.bw-registry-actions { display:flex; flex-wrap:wrap; align-items:center; gap:24px; margin-top:24px; }
.bw-registry-actions .button { min-width:132px; }
.bw-registry-actions .button:disabled { opacity:.7; cursor:wait; }
.bw-registry-results { margin-top:48px; padding-top:32px; border-top:1px solid var(--bw-line); }
.bw-registry-results:focus { outline:none; }
.bw-registry-results h2 { font-size:24px; }
.bw-registry-message { padding:28px; margin-top:20px; background:var(--bw-surface); border:1px solid var(--bw-line); border-radius:var(--bw-radius); }
.bw-registry-message h3 { font-size:19px; margin-bottom:8px; }
.bw-registry-message .text-link { margin-top:16px; }
.bw-registry-error { margin-top:0; margin-bottom:24px; background:#fff5f3; border-color:#a23428; }
.bw-registry-error strong,.bw-registry-error p { color:#a23428; }
.bw-registry-guide { padding:28px; background:var(--bw-surface); border-radius:var(--bw-radius); }
.bw-registry-guide h2 { font-size:21px; margin-bottom:12px; }
.bw-registry-guide p,.bw-registry-guide li { font-size:14px; line-height:1.85; color:var(--bw-text); }
.bw-registry-guide ol { padding-left:20px; margin-top:20px; }
.bw-registry-guide li+li { margin-top:12px; }
.bw-registry-support { margin-top:28px; padding-top:24px; border-top:1px solid var(--bw-line); }
.bw-registry-support h3 { font-size:17px; margin-bottom:8px; }
.bw-registry-support a { margin-top:16px; min-height:44px; }
.bw-registry-result-count { font-size:14px; margin-top:12px; color:var(--bw-muted); }
.bw-registry-result-list { display:grid; gap:20px; margin-top:24px; }
.bw-registry-record { padding:24px; border:1px solid var(--bw-line); border-radius:var(--bw-radius); background:var(--bw-white); min-width:0; }
.bw-registry-record header { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:12px; }
.bw-registry-record h3 { font-size:21px; min-width:0; overflow-wrap:anywhere; }
.bw-registry-status { padding:3px 9px; border-radius:var(--bw-control-radius); background:var(--bw-surface); color:var(--bw-text); font-size:13px; white-space:nowrap; border:1px solid var(--bw-line); }
.bw-registry-status--active { color:var(--bw-blue); border-color:var(--bw-blue); }
.bw-registry-status--revoked,.bw-registry-status--expired { color:#a23428; border-color:#a23428; background:#fff5f3; }
.bw-registry-record dl { margin:20px 0 0; display:grid; gap:12px; }
.bw-registry-record dl>div { display:grid; grid-template-columns:100px minmax(0,1fr); gap:16px; }
.bw-registry-record dt { color:var(--bw-muted); font-size:14px; }
.bw-registry-record dd { margin:0; color:var(--bw-ink); font-size:15px; overflow-wrap:anywhere; }
.bw-registry-record a { color:var(--bw-blue); text-decoration:underline; text-underline-offset:3px; }
.bw-registry-pagination { margin-top:24px; display:flex; gap:16px; flex-wrap:wrap; }
@media(max-width:850px) {
  .bw-registry-layout { grid-template-columns:minmax(0,1fr); gap:40px; }
  .bw-registry-guide { max-width:none; }
}
@media(max-width:600px) {
  .bw-verification-page { padding-top:28px; }
  .bw-registry-switch { gap:8px 24px; margin-bottom:28px; }
  .bw-registry-switch a { font-size:16px; min-height:52px; }
  .bw-registry-regions,.bw-registry-certificate-fields { grid-template-columns:minmax(0,1fr); gap:16px; }
  .bw-registry-message,.bw-registry-record,.bw-registry-guide { padding:20px; }
  .bw-registry-record dl>div { grid-template-columns:84px minmax(0,1fr); gap:12px; }
  .bw-registry-results { margin-top:36px; padding-top:28px; }
}
