/* =====================================================================
   BodySecretsHub.one — Design System (Clean Clinical)
   Author: BodySecretsHub Editorial / Engineering
   Notes : Layered on top of Bootstrap 5.3. Uses CSS variables so the
           whole palette can be retuned from :root. No external CSS.
   ===================================================================== */

/* ------------------------------------------------------------------ */
/* 1. Tokens                                                           */
/* ------------------------------------------------------------------ */
:root {
  /* Brand palette — clinical blue + teal */
  --bsh-primary:      #0a6cb2;
  --bsh-primary-600:  #085a95;
  --bsh-primary-700:  #064a7c;
  --bsh-primary-050:  #eaf3fb;
  --bsh-teal:         #0f9aa1;
  --bsh-teal-050:     #e7f6f6;

  /* Ink + neutrals */
  --bsh-ink:          #0e1c2b;
  --bsh-ink-soft:     #1f3346;
  --bsh-body:         #3d4d5c;
  --bsh-muted:        #6b7c8d;
  --bsh-line:         #e3ebf2;
  --bsh-line-strong:  #d3dee8;

  /* Surfaces */
  --bsh-bg:           #ffffff;
  --bsh-bg-soft:      #f5f9fc;
  --bsh-bg-tint:      #eef5fb;
  --bsh-bg-ink:       #0c1a29;

  /* States */
  --bsh-danger:       #e5484d;
  --bsh-warn:         #d9822b;
  --bsh-success:      #2e9e6b;
  --bsh-star:         #f5a623;

  /* Typography */
  --font-sans:   'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --font-display:'Sora', var(--font-sans);
  --font-serif:  'Source Serif 4', Georgia, 'Times New Roman', serif;

  /* Radius + shadow + spacing */
  --r-xs: 8px;
  --r-sm: 12px;
  --r:    16px;
  --r-lg: 22px;
  --r-xl: 30px;
  --sh-sm: 0 1px 2px rgba(14,28,43,.06), 0 1px 3px rgba(14,28,43,.05);
  --sh:    0 4px 16px rgba(14,28,43,.07), 0 2px 6px rgba(14,28,43,.05);
  --sh-md: 0 12px 34px rgba(14,28,43,.10), 0 4px 12px rgba(14,28,43,.06);
  --sh-lg: 0 26px 60px rgba(10,60,110,.16), 0 10px 24px rgba(14,28,43,.08);
  --container: 1200px;

  /* Bootstrap overrides */
  --bs-primary: var(--bsh-primary);
  --bs-primary-rgb: 10,108,178;
  --bs-body-color: var(--bsh-body);
  --bs-body-font-family: var(--font-sans);
  --bs-border-color: var(--bsh-line);
  --bs-link-color: var(--bsh-primary);
  --bs-link-hover-color: var(--bsh-primary-700);
}

/* ------------------------------------------------------------------ */
/* 2. Base                                                             */
/* ------------------------------------------------------------------ */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body.bsh {
  font-family: var(--font-sans);
  color: var(--bsh-body);
  background: var(--bsh-bg);
  font-size: 1.02rem;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

h1,h2,h3,h4,h5,h6 { font-family: var(--font-display); color: var(--bsh-ink); font-weight: 700; line-height: 1.18; letter-spacing: -.012em; }
p { margin: 0 0 1rem; }
a { color: var(--bsh-primary); text-decoration: none; transition: color .18s ease; }
a:hover { color: var(--bsh-primary-700); }
img, svg { max-width: 100%; }
strong { color: var(--bsh-ink-soft); font-weight: 700; }
hr { border: 0; border-top: 1px solid var(--bsh-line); opacity: 1; margin: 2.5rem 0; }
:focus-visible { outline: 3px solid rgba(10,108,178,.45); outline-offset: 2px; border-radius: 4px; }

.container { max-width: var(--container); }

.bsh-skip {
  position: absolute; left: -999px; top: 0; z-index: 2000;
  background: var(--bsh-primary); color: #fff; padding: .7rem 1.1rem; border-radius: 0 0 var(--r-xs) 0; font-weight: 600;
}
.bsh-skip:focus { left: 0; color:#fff; }

/* Icons */
.bsh-ico { width: 1.35em; height: 1.35em; display: inline-block; vertical-align: -.2em; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.bsh-ico-sm { width: 1.05em; height: 1.05em; display: inline-block; vertical-align: -.15em; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* ------------------------------------------------------------------ */
/* 3. Buttons                                                          */
/* ------------------------------------------------------------------ */
.bsh-btn { font-family: var(--font-display); font-weight: 600; border-radius: 999px; padding: .72rem 1.5rem; letter-spacing: -.01em; box-shadow: none; transition: transform .16s ease, box-shadow .16s ease, background-color .16s ease; }
.bsh-btn:hover { transform: translateY(-2px); }
.btn-primary { --bs-btn-bg: var(--bsh-primary); --bs-btn-border-color: var(--bsh-primary); --bs-btn-hover-bg: var(--bsh-primary-700); --bs-btn-hover-border-color: var(--bsh-primary-700); --bs-btn-active-bg: var(--bsh-primary-700); box-shadow: 0 8px 20px rgba(10,108,178,.25); }
.btn-primary:hover { box-shadow: 0 14px 30px rgba(10,108,178,.32); }
.btn-outline-primary { --bs-btn-color: var(--bsh-primary); --bs-btn-border-color: var(--bsh-primary); --bs-btn-hover-bg: var(--bsh-primary); --bs-btn-hover-border-color: var(--bsh-primary); }
.btn-ghost { background: var(--bsh-primary-050); color: var(--bsh-primary-700); border: 0; }
.btn-ghost:hover { background: #dcecf9; color: var(--bsh-primary-700); }

/* ------------------------------------------------------------------ */
/* 4. Top bar + header + nav                                           */
/* ------------------------------------------------------------------ */
.bsh-topbar { background: var(--bsh-bg-ink); color: #cde3f2; font-size: .84rem; }
.bsh-topbar__inner { display: flex; align-items: center; justify-content: space-between; min-height: 40px; gap: 1rem; }
.bsh-topbar__note { margin: 0; display: flex; align-items: center; gap: .45rem; color: #b9d3e6; }
.bsh-topbar__note a { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
.bsh-topbar__links { display: flex; gap: 1.25rem; }
.bsh-topbar__links a { color: #cde3f2; }
.bsh-topbar__links a:hover { color: #fff; }
@media (max-width: 575px){ .bsh-topbar__links { display: none; } }

.bsh-header { position: sticky; top: 0; z-index: 1030; background: rgba(255,255,255,.92); backdrop-filter: saturate(1.4) blur(10px); border-bottom: 1px solid var(--bsh-line); }
.bsh-header.is-scrolled { box-shadow: var(--sh); }
.bsh-navbar { padding-top: .5rem; padding-bottom: .5rem; }
.bsh-navbar .container { position: relative; }

.bsh-brand { display: inline-flex; align-items: center; gap: .6rem; font-family: var(--font-display); font-weight: 800; font-size: 1.28rem; color: var(--bsh-ink); letter-spacing: -.02em; }
.bsh-brand:hover { color: var(--bsh-ink); }
.bsh-brand__mark { display: inline-flex; filter: drop-shadow(0 4px 10px rgba(10,108,178,.28)); }
.bsh-brand__accent { color: var(--bsh-primary); }
.bsh-brand__tld { color: var(--bsh-teal); font-weight: 700; }

.bsh-nav .nav-link { font-family: var(--font-display); font-weight: 600; color: var(--bsh-ink-soft); padding: .55rem .9rem; border-radius: 10px; position: relative; }
.bsh-nav .nav-link:hover, .bsh-nav .nav-link:focus { color: var(--bsh-primary); background: var(--bsh-primary-050); }
.bsh-nav .nav-link.active { color: var(--bsh-primary); }
.bsh-nav .dropdown-toggle::after { margin-left: .4em; vertical-align: .12em; border-top-color: currentColor; opacity: .7; }

.bsh-nav__actions { margin-left: 1rem; }
.bsh-search-btn { display: inline-flex; align-items: center; gap: .5rem; font-family: var(--font-display); font-weight: 600; color: var(--bsh-ink-soft); background: var(--bsh-bg-soft); border: 1px solid var(--bsh-line); padding: .5rem 1rem; border-radius: 999px; }
.bsh-search-btn:hover { color: var(--bsh-primary); border-color: var(--bsh-primary); background: #fff; }

.bsh-toggler { border: 0; padding: .4rem; width: 44px; height: 44px; border-radius: 12px; background: var(--bsh-bg-soft); }
.bsh-toggler:focus { box-shadow: none; }
.bsh-toggler__bar { display: block; width: 22px; height: 2.4px; background: var(--bsh-ink); border-radius: 2px; margin: 4px auto; transition: .25s; }

/* Mega menu */
.bsh-mega { border: 1px solid var(--bsh-line); border-radius: 18px; box-shadow: var(--sh-lg); padding: 1.4rem; margin-top: .6rem; background: #fff; }
.bsh-mega__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem 1.4rem; }
.bsh-mega__intro { grid-column: span 2; padding-right: 1rem; }
.bsh-mega__eyebrow { font-family: var(--font-display); text-transform: uppercase; letter-spacing: .12em; font-size: .72rem; font-weight: 700; color: var(--bsh-primary); margin: 0 0 .3rem; }
.bsh-mega__lead { color: var(--bsh-muted); font-size: .92rem; margin: 0 0 .6rem; }
.bsh-mega__all { font-family: var(--font-display); font-weight: 600; display: inline-flex; align-items: center; gap: .35rem; }
.bsh-mega__cat { display: flex; align-items: center; gap: .45rem; font-family: var(--font-display); font-weight: 700; color: var(--bsh-ink); margin: 0 0 .5rem; font-size: .96rem; }
.bsh-mega__cat-icon { color: var(--cat-color, var(--bsh-primary)); display: inline-flex; }
.bsh-mega__cat:hover { color: var(--cat-color, var(--bsh-primary)); }
.bsh-mega__list { list-style: none; padding: 0; margin: 0; display: grid; gap: .28rem; }
.bsh-mega__list a { color: var(--bsh-body); font-size: .9rem; }
.bsh-mega__list a:hover { color: var(--bsh-primary); }

@media (min-width: 992px) {
  .bsh-navbar .bsh-has-mega { position: static; }
  .bsh-mega {
    position: absolute !important;
    inset: 100% 0 auto 0 !important;
    transform: none !important;
    width: auto !important;
    max-width: none;
  }
  .bsh-mega__grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; }
  .bsh-mega__intro { grid-column: span 1; border-right: 1px solid var(--bsh-line); }
  .bsh-mega--tools .bsh-mega__grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; }
}
@media (max-width: 991.98px) {
  .bsh-collapse { padding: .5rem 0 1rem; }
  .bsh-nav .nav-link { padding: .7rem .2rem; border-bottom: 1px solid var(--bsh-line); border-radius: 0; }
  .bsh-mega { box-shadow: none; border: 0; border-radius: 0; padding: .4rem 0 1rem; margin: 0; background: transparent; }
  .bsh-mega__grid { grid-template-columns: 1fr 1fr; }
  .bsh-mega__intro { grid-column: span 2; border: 0; padding: 0 0 .4rem; }
  .bsh-nav__actions { margin: 1rem 0 0; }
  .bsh-search-btn { width: 100%; justify-content: center; }
}

/* ------------------------------------------------------------------ */
/* 5. Breadcrumb                                                       */
/* ------------------------------------------------------------------ */
.bsh-breadcrumb { background: var(--bsh-bg-soft); border-bottom: 1px solid var(--bsh-line); padding: .6rem 0; font-size: .88rem; }
.bsh-breadcrumb .breadcrumb { --bs-breadcrumb-divider: '›'; margin: 0; }
.bsh-breadcrumb .breadcrumb-item + .breadcrumb-item::before { color: var(--bsh-muted); }
.bsh-breadcrumb a { color: var(--bsh-muted); font-weight: 500; }
.bsh-breadcrumb a:hover { color: var(--bsh-primary); }
.bsh-breadcrumb .breadcrumb-item.active { color: var(--bsh-ink-soft); font-weight: 600; }

/* ------------------------------------------------------------------ */
/* 6. Sections + headings                                              */
/* ------------------------------------------------------------------ */
.bsh-section { padding: 4.5rem 0; }
.bsh-section--tight { padding: 3rem 0; }
.bsh-section--soft { background: var(--bsh-bg-soft); }
.bsh-section--tint { background: linear-gradient(180deg, var(--bsh-bg-tint), #fff); }
.bsh-eyebrow { font-family: var(--font-display); text-transform: uppercase; letter-spacing: .14em; font-size: .76rem; font-weight: 700; color: var(--bsh-primary); margin: 0 0 .6rem; }
.bsh-eyebrow--light { color: #bfe0ff; }
.bsh-section-title { font-size: clamp(1.7rem, 3vw, 2.5rem); margin: 0 0 .7rem; }
.bsh-section-lead { color: var(--bsh-muted); font-size: 1.1rem; max-width: 60ch; margin: 0 auto; }
.bsh-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin-bottom: 2.2rem; }
.bsh-section-head .bsh-section-lead { margin: 0; }
.bsh-section-head__link { font-family: var(--font-display); font-weight: 600; white-space: nowrap; display: inline-flex; align-items: center; gap: .35rem; }
.bsh-center { text-align: center; }
.bsh-center .bsh-section-lead { margin-left: auto; margin-right: auto; }
@media (max-width: 767px){ .bsh-section { padding: 3rem 0; } .bsh-section-head { flex-direction: column; align-items: flex-start; gap: .6rem; } }

/* ------------------------------------------------------------------ */
/* 7. Hero                                                             */
/* ------------------------------------------------------------------ */
.bsh-hero { position: relative; overflow: hidden; background: radial-gradient(1200px 600px at 82% -10%, #e3f1fb 0%, rgba(227,241,251,0) 60%), linear-gradient(180deg, #fbfdff 0%, #f2f8fc 100%); border-bottom: 1px solid var(--bsh-line); }
.bsh-hero__inner { display: grid; grid-template-columns: 1.05fr .95fr; gap: 3rem; align-items: center; padding: 4rem 0 4.5rem; }
.bsh-hero__badge { display: inline-flex; align-items: center; gap: .5rem; background: #fff; border: 1px solid var(--bsh-line); color: var(--bsh-primary-700); font-weight: 600; font-family: var(--font-display); font-size: .85rem; padding: .4rem .9rem; border-radius: 999px; box-shadow: var(--sh-sm); margin-bottom: 1.3rem; }
.bsh-hero__badge .bsh-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--bsh-success); box-shadow: 0 0 0 4px rgba(46,158,107,.16); }
.bsh-hero h1 { font-size: clamp(2.2rem, 5vw, 3.6rem); line-height: 1.06; margin: 0 0 1.1rem; color: var(--bsh-ink); }
.bsh-hero h1 .bsh-hl { background: linear-gradient(120deg, var(--bsh-primary), var(--bsh-teal)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.bsh-hero__lead { font-size: 1.2rem; color: var(--bsh-ink-soft); max-width: 52ch; margin: 0 0 1.7rem; }
.bsh-hero__actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-bottom: 1.8rem; }
.bsh-hero__stats { display: flex; gap: 2rem; flex-wrap: wrap; border-top: 1px solid var(--bsh-line); padding-top: 1.4rem; }
.bsh-hero__stat b { font-family: var(--font-display); font-size: 1.6rem; color: var(--bsh-ink); display: block; line-height: 1; }
.bsh-hero__stat span { font-size: .85rem; color: var(--bsh-muted); }
.bsh-hero__art { position: relative; }
.bsh-hero__art svg { width: 100%; height: auto; filter: drop-shadow(0 30px 50px rgba(10,60,110,.18)); }
.bsh-hero__float { position: absolute; background: #fff; border: 1px solid var(--bsh-line); border-radius: 14px; box-shadow: var(--sh-md); padding: .7rem .9rem; display: flex; align-items: center; gap: .55rem; font-size: .82rem; font-weight: 600; font-family: var(--font-display); color: var(--bsh-ink-soft); }
.bsh-hero__float .bsh-ico { color: var(--bsh-primary); }
.bsh-hero__float--1 { top: 8%; left: -4%; }
.bsh-hero__float--2 { bottom: 12%; right: -3%; }
.bsh-hero__float--3 { bottom: -2%; left: 12%; }
@media (max-width: 991px){ .bsh-hero__inner { grid-template-columns: 1fr; gap: 2.2rem; padding: 2.6rem 0 3rem; } .bsh-hero__art { order: -1; max-width: 460px; margin: 0 auto; } .bsh-hero__float--1{left:0;} .bsh-hero__float--2{right:0;} }

/* ------------------------------------------------------------------ */
/* 8. Cards + covers                                                   */
/* ------------------------------------------------------------------ */
.bsh-grid { display: grid; gap: 1.4rem; }
.bsh-grid--3 { grid-template-columns: repeat(3, 1fr); }
.bsh-grid--4 { grid-template-columns: repeat(4, 1fr); }
.bsh-grid--2 { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 991px){ .bsh-grid--4 { grid-template-columns: repeat(2,1fr); } .bsh-grid--3 { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 575px){ .bsh-grid--4, .bsh-grid--3, .bsh-grid--2 { grid-template-columns: 1fr; } }

.bsh-card { background: #fff; border: 1px solid var(--bsh-line); border-radius: var(--r); overflow: hidden; box-shadow: var(--sh-sm); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; height: 100%; }
.bsh-card:hover { transform: translateY(-4px); box-shadow: var(--sh-md); border-color: var(--bsh-line-strong); }
.bsh-card__link { display: flex; flex-direction: column; height: 100%; color: inherit; }
.bsh-card__link:hover { color: inherit; }
.bsh-card__media { position: relative; }
.bsh-card__body { padding: 1.15rem 1.25rem 1.25rem; display: flex; flex-direction: column; flex: 1; }
.bsh-card__meta { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .6rem; }
.bsh-card__time { color: var(--bsh-muted); font-size: .82rem; font-weight: 500; display: inline-flex; align-items: center; gap: .3rem; }
.bsh-card__title { font-size: 1.16rem; margin: 0 0 .5rem; color: var(--bsh-ink); }
.bsh-card__excerpt { color: var(--bsh-body); font-size: .93rem; margin: 0 0 1rem; flex: 1; }
.bsh-card__foot { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-top: auto; }
.bsh-card__cta { font-family: var(--font-display); font-weight: 600; color: var(--bsh-primary); font-size: .9rem; display: inline-flex; align-items: center; gap: .3rem; }
.bsh-card:hover .bsh-card__cta { gap: .55rem; }
.bsh-card__toolhead { display: flex; align-items: center; justify-content: space-between; margin-bottom: .9rem; }
.bsh-card__toolicon { width: 46px; height: 46px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; background: var(--bsh-primary-050); color: var(--bsh-primary); }
.bsh-card--tool .bsh-card__body { padding-top: 1.25rem; }
.bsh-card__byline { display: flex; align-items: center; gap: .5rem; font-size: .82rem; color: var(--bsh-muted); margin-top: .4rem; }
.bsh-card__author { font-weight: 600; color: var(--bsh-ink-soft); }
.bsh-card__dot { color: var(--bsh-line-strong); }
.bsh-avatar { width: 26px; height: 26px; border-radius: 50%; background: linear-gradient(135deg,var(--bsh-primary),var(--bsh-teal)); color:#fff; font-weight:700; font-size:.78rem; display:inline-flex; align-items:center; justify-content:center; font-family: var(--font-display); }

/* Themed covers (no external images) */
.bsh-cover { position: relative; aspect-ratio: 16 / 9; display: flex; align-items: center; justify-content: center; background:
    radial-gradient(120% 120% at 20% 0%, color-mix(in srgb, var(--cover-color) 26%, #fff) 0%, color-mix(in srgb, var(--cover-color) 10%, #fff) 55%, #fff 100%);
  overflow: hidden; }
.bsh-cover--wide { aspect-ratio: 16 / 9; }
.bsh-cover__icon { width: 54px; height: 54px; color: var(--cover-color); stroke-width: 1.7; filter: drop-shadow(0 6px 12px color-mix(in srgb, var(--cover-color) 30%, transparent)); position: relative; z-index: 2; }
.bsh-cover__glow { position: absolute; width: 160px; height: 160px; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--cover-color) 30%, transparent), transparent 70%); top: -30px; right: -30px; }
.bsh-cover__grid { position: absolute; inset: 0; background-image: linear-gradient(color-mix(in srgb, var(--cover-color) 12%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--cover-color) 12%, transparent) 1px, transparent 1px); background-size: 22px 22px; opacity: .5; mask-image: radial-gradient(circle at center, #000 30%, transparent 78%); }
.bsh-cover__label { position: absolute; bottom: .6rem; left: .8rem; z-index: 2; font-family: var(--font-display); font-weight: 700; color: color-mix(in srgb, var(--cover-color) 70%, #123); font-size: .8rem; }

/* Pills + badges */
.bsh-pill { display: inline-flex; align-items: center; font-family: var(--font-display); font-weight: 600; font-size: .72rem; letter-spacing: .02em; text-transform: uppercase; padding: .28rem .6rem; border-radius: 999px; color: var(--pill-color, var(--bsh-primary)); background: color-mix(in srgb, var(--pill-color, var(--bsh-primary)) 12%, #fff); border: 1px solid color-mix(in srgb, var(--pill-color, var(--bsh-primary)) 22%, #fff); }
.bsh-pill--soft { color: var(--bsh-teal); background: var(--bsh-teal-050); border-color: #cdeaea; }

/* Stars */
.bsh-stars { display: inline-flex; letter-spacing: 1px; color: #d8dee6; }
.bsh-star { color: #d8dee6; }
.bsh-star.is-full { color: var(--bsh-star); }
.bsh-star.is-half { position: relative; color: #d8dee6; }
.bsh-star.is-half::before { content: '★'; position: absolute; left: 0; width: 50%; overflow: hidden; color: var(--bsh-star); }
.bsh-stars-mini { display: inline-flex; align-items: center; gap: .35rem; font-size: .82rem; font-weight: 600; color: var(--bsh-ink-soft); }
.bsh-stars-mini .bsh-stars { font-size: .82rem; }

/* Category cards */
.bsh-cat-card { display: flex; gap: 1rem; align-items: flex-start; padding: 1.3rem; background: #fff; border: 1px solid var(--bsh-line); border-radius: var(--r); box-shadow: var(--sh-sm); transition: transform .2s ease, box-shadow .2s ease; height: 100%; }
.bsh-cat-card:hover { transform: translateY(-4px); box-shadow: var(--sh-md); }
.bsh-cat-card__icon { flex: none; width: 52px; height: 52px; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center; color: #fff; background: linear-gradient(135deg, var(--cat-color), color-mix(in srgb, var(--cat-color) 55%, #0e1c2b)); box-shadow: 0 8px 18px color-mix(in srgb, var(--cat-color) 34%, transparent); }
.bsh-cat-card__body { display: flex; flex-direction: column; }
.bsh-cat-card__name { font-family: var(--font-display); font-weight: 700; color: var(--bsh-ink); font-size: 1.08rem; }
.bsh-cat-card__blurb { color: var(--bsh-muted); font-size: .88rem; margin: .25rem 0 .5rem; }
.bsh-cat-card__count { font-family: var(--font-display); font-weight: 600; color: var(--cat-color); font-size: .85rem; display: inline-flex; align-items: center; gap: .3rem; margin-top: auto; }

/* ------------------------------------------------------------------ */
/* 9. Editorial blocks: infobox, stat, tables, timeline, comparison    */
/* ------------------------------------------------------------------ */
.bsh-infobox { display: flex; gap: 1rem; padding: 1.15rem 1.25rem; border-radius: var(--r-sm); border: 1px solid var(--bsh-line); background: var(--bsh-bg-soft); margin: 1.6rem 0; }
.bsh-infobox__icon { flex: none; color: var(--bsh-primary); }
.bsh-infobox__title { font-family: var(--font-display); font-weight: 700; color: var(--bsh-ink); margin: 0 0 .25rem; }
.bsh-infobox__text { margin: 0; }
.bsh-infobox__text :last-child { margin-bottom: 0; }
.bsh-infobox--tip { background: var(--bsh-teal-050); border-color: #cceaea; }
.bsh-infobox--tip .bsh-infobox__icon { color: var(--bsh-teal); }
.bsh-infobox--key { background: var(--bsh-primary-050); border-color: #cfe6f8; }
.bsh-infobox--warning { background: #fdf3e7; border-color: #f4dcbd; }
.bsh-infobox--warning .bsh-infobox__icon { color: var(--bsh-warn); }

.bsh-stats-row { display: grid; grid-template-columns: repeat(4,1fr); gap: 1rem; }
@media (max-width: 767px){ .bsh-stats-row { grid-template-columns: repeat(2,1fr); } }
.bsh-stat { background: #fff; border: 1px solid var(--bsh-line); border-radius: var(--r-sm); padding: 1.3rem; text-align: center; box-shadow: var(--sh-sm); }
.bsh-stat__icon { color: var(--bsh-primary); display: inline-flex; margin-bottom: .4rem; }
.bsh-stat__value { display: block; font-family: var(--font-display); font-weight: 800; font-size: 1.7rem; color: var(--bsh-ink); line-height: 1; }
.bsh-stat__label { display: block; color: var(--bsh-muted); font-size: .85rem; margin-top: .3rem; }

/* Data tables */
.bsh-table-wrap { overflow-x: auto; border: 1px solid var(--bsh-line); border-radius: var(--r-sm); margin: 1.6rem 0; box-shadow: var(--sh-sm); -webkit-overflow-scrolling: touch; }
.bsh-table { width: 100%; border-collapse: collapse; font-size: .95rem; min-width: 460px; }
.bsh-table caption { caption-side: top; text-align: left; font-family: var(--font-display); font-weight: 600; color: var(--bsh-muted); padding: .8rem 1rem; font-size: .85rem; }
.bsh-table thead th { background: var(--bsh-bg-tint); color: var(--bsh-ink); font-family: var(--font-display); font-weight: 700; text-align: left; padding: .8rem 1rem; border-bottom: 2px solid var(--bsh-line-strong); font-size: .85rem; text-transform: uppercase; letter-spacing: .03em; }
.bsh-table tbody td { padding: .8rem 1rem; border-bottom: 1px solid var(--bsh-line); vertical-align: top; }
.bsh-table tbody tr:nth-child(even) { background: #fafcfe; }
.bsh-table tbody tr:last-child td { border-bottom: 0; }
.bsh-table th[scope="row"] { font-weight: 600; color: var(--bsh-ink-soft); }

/* Timeline */
.bsh-timeline { list-style: none; padding: 0; margin: 1.8rem 0; position: relative; }
.bsh-timeline::before { content: ''; position: absolute; left: 15px; top: 6px; bottom: 6px; width: 2px; background: linear-gradient(var(--bsh-primary), var(--bsh-teal)); }
.bsh-timeline li { position: relative; padding: 0 0 1.5rem 3rem; }
.bsh-timeline li::before { content: ''; position: absolute; left: 8px; top: 4px; width: 16px; height: 16px; border-radius: 50%; background: #fff; border: 3px solid var(--bsh-primary); box-shadow: 0 0 0 4px var(--bsh-primary-050); }
.bsh-timeline b { font-family: var(--font-display); color: var(--bsh-ink); display: block; }
.bsh-timeline span { color: var(--bsh-muted); font-size: .82rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; }

/* Comparison two-column */
.bsh-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 1.6rem 0; }
@media (max-width: 575px){ .bsh-compare { grid-template-columns: 1fr; } }
.bsh-compare__col { border: 1px solid var(--bsh-line); border-radius: var(--r-sm); padding: 1.2rem; background: #fff; }
.bsh-compare__col h4 { display: flex; align-items: center; gap: .5rem; margin: 0 0 .7rem; }
.bsh-compare__col--a { border-top: 4px solid var(--bsh-primary); }
.bsh-compare__col--b { border-top: 4px solid var(--bsh-teal); }
.bsh-compare__col ul { margin: 0; padding-left: 1.1rem; }
.bsh-compare__col li { margin-bottom: .4rem; }

/* Roadmap steps */
.bsh-roadmap { display: grid; grid-template-columns: repeat(4,1fr); gap: 1.1rem; counter-reset: step; }
@media (max-width: 991px){ .bsh-roadmap { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 575px){ .bsh-roadmap { grid-template-columns: 1fr; } }
.bsh-roadmap__step { position: relative; background: #fff; border: 1px solid var(--bsh-line); border-radius: var(--r-sm); padding: 1.4rem 1.2rem 1.2rem; box-shadow: var(--sh-sm); }
.bsh-roadmap__step::before { counter-increment: step; content: counter(step); position: absolute; top: -16px; left: 1.2rem; width: 34px; height: 34px; border-radius: 50%; background: linear-gradient(135deg,var(--bsh-primary),var(--bsh-teal)); color: #fff; font-family: var(--font-display); font-weight: 700; display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 14px rgba(10,108,178,.3); }
.bsh-roadmap__step h3 { font-size: 1.05rem; margin: .6rem 0 .4rem; }
.bsh-roadmap__step p { font-size: .9rem; color: var(--bsh-body); margin: 0; }

/* Fact list */
.bsh-facts { display: grid; grid-template-columns: repeat(2,1fr); gap: .9rem; margin: 1.5rem 0; padding: 0; list-style: none; }
@media (max-width: 767px){ .bsh-facts { grid-template-columns: 1fr; } }
.bsh-facts li { display: flex; gap: .7rem; padding: 1rem 1.1rem; background: #fff; border: 1px solid var(--bsh-line); border-radius: var(--r-sm); box-shadow: var(--sh-sm); }
.bsh-facts li .bsh-ico { color: var(--bsh-teal); flex: none; margin-top: .1rem; }
.bsh-facts b { font-family: var(--font-display); color: var(--bsh-ink); }

/* Myth vs fact */
.bsh-myth { border-left: 4px solid var(--bsh-danger); background: #fdf0f0; padding: 1rem 1.2rem; border-radius: 0 var(--r-xs) var(--r-xs) 0; margin: 1rem 0; }
.bsh-myth b { color: var(--bsh-danger); }
.bsh-truth { border-left: 4px solid var(--bsh-success); background: #eef8f2; padding: 1rem 1.2rem; border-radius: 0 var(--r-xs) var(--r-xs) 0; margin: 1rem 0 1.6rem; }
.bsh-truth b { color: var(--bsh-success); }

/* ------------------------------------------------------------------ */
/* 10. System explainer rows (homepage)                                */
/* ------------------------------------------------------------------ */
.bsh-systems { display: grid; gap: 1.1rem; }
.bsh-system { display: grid; grid-template-columns: 64px 1fr; gap: 1.1rem; align-items: start; background: #fff; border: 1px solid var(--bsh-line); border-radius: var(--r); padding: 1.3rem 1.4rem; box-shadow: var(--sh-sm); transition: box-shadow .2s ease, transform .2s ease; scroll-margin-top: 120px; }
.bsh-system:hover { box-shadow: var(--sh-md); transform: translateY(-2px); }
.bsh-system__icon { width: 56px; height: 56px; border-radius: 15px; display: inline-flex; align-items: center; justify-content: center; color: #fff; background: linear-gradient(135deg, var(--sys-color, var(--bsh-primary)), color-mix(in srgb, var(--sys-color, var(--bsh-primary)) 55%, #0e1c2b)); box-shadow: 0 8px 18px color-mix(in srgb, var(--sys-color, var(--bsh-primary)) 32%, transparent); }
.bsh-system__title { font-size: 1.2rem; margin: 0 0 .35rem; display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.bsh-system__title .bsh-pill { text-transform: none; }
.bsh-system p { margin: 0 0 .5rem; }
.bsh-system__link { font-family: var(--font-display); font-weight: 600; font-size: .9rem; display: inline-flex; align-items: center; gap: .3rem; }
@media (max-width: 575px){ .bsh-system { grid-template-columns: 1fr; } .bsh-system__icon { width: 48px; height: 48px; } }

/* ------------------------------------------------------------------ */
/* 11. FAQ                                                             */
/* ------------------------------------------------------------------ */
.bsh-faq { max-width: 820px; margin: 0 auto; }
.bsh-faq__head { text-align: center; margin-bottom: 2rem; }
.bsh-accordion .accordion-item { border: 1px solid var(--bsh-line); border-radius: var(--r-sm) !important; margin-bottom: .8rem; overflow: hidden; box-shadow: var(--sh-sm); }
.bsh-accordion .accordion-button { font-family: var(--font-display); font-weight: 600; color: var(--bsh-ink); background: #fff; padding: 1.1rem 1.25rem; font-size: 1.03rem; }
.bsh-accordion .accordion-button:not(.collapsed) { color: var(--bsh-primary); background: var(--bsh-primary-050); box-shadow: none; }
.bsh-accordion .accordion-button:focus { box-shadow: none; border-color: var(--bsh-primary); }
.bsh-accordion .accordion-button::after { background-size: 1.1rem; }
.bsh-accordion .accordion-body { color: var(--bsh-body); padding: 0 1.25rem 1.25rem; }
.bsh-accordion .accordion-body :last-child { margin-bottom: 0; }

/* Rating widget */
.bsh-rating { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.4rem; padding: 1rem 1.2rem; background: #fff; border: 1px solid var(--bsh-line); border-radius: var(--r-sm); box-shadow: var(--sh-sm); }
.bsh-rating__agg { display: inline-flex; align-items: center; gap: .5rem; }
.bsh-rating__score { font-family: var(--font-display); font-weight: 800; font-size: 1.3rem; color: var(--bsh-ink); }
.bsh-rating__count { color: var(--bsh-muted); font-size: .85rem; }
.bsh-rating__interactive { display: inline-flex; align-items: center; gap: .55rem; margin-left: auto; }
.bsh-rating__label { font-size: .85rem; color: var(--bsh-muted); font-weight: 600; font-family: var(--font-display); }
.bsh-rating__input { display: inline-flex; gap: .1rem; }
.bsh-rating__btn { border: 0; background: none; cursor: pointer; font-size: 1.4rem; line-height: 1; color: #d8dee6; padding: 0 .05rem; transition: color .12s ease, transform .12s ease; }
.bsh-rating__btn:hover { transform: scale(1.14); }
.bsh-rating__btn.is-on { color: var(--bsh-star); }
.bsh-rating__thanks { color: var(--bsh-success); font-weight: 600; font-size: .85rem; font-family: var(--font-display); }
@media (max-width: 575px){ .bsh-rating__interactive { margin-left: 0; width: 100%; } }

/* ------------------------------------------------------------------ */
/* 12. Testimonials                                                    */
/* ------------------------------------------------------------------ */
.bsh-quote { background: #fff; border: 1px solid var(--bsh-line); border-radius: var(--r); padding: 1.6rem 1.5rem; box-shadow: var(--sh-sm); height: 100%; display: flex; flex-direction: column; }
.bsh-quote__mark { color: var(--bsh-primary); opacity: .25; font-family: var(--font-serif); font-size: 3rem; line-height: .6; margin-bottom: .4rem; }
.bsh-quote__text { font-family: var(--font-serif); font-size: 1.05rem; color: var(--bsh-ink-soft); margin: 0 0 1.1rem; flex: 1; }
.bsh-quote__who { display: flex; align-items: center; gap: .7rem; }
.bsh-quote__who b { font-family: var(--font-display); color: var(--bsh-ink); display: block; font-size: .95rem; }
.bsh-quote__who span { color: var(--bsh-muted); font-size: .82rem; }

/* ------------------------------------------------------------------ */
/* 13. Newsletter + CTA                                                */
/* ------------------------------------------------------------------ */
.bsh-newsletter { background: linear-gradient(135deg, var(--bsh-primary-050), #fff); border: 1px solid var(--bsh-line); border-radius: var(--r-lg); padding: 2.4rem; display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: center; }
.bsh-newsletter__inner { display: contents; }
.bsh-newsletter__row { display: flex; gap: .6rem; }
.bsh-newsletter__row .form-control { border-radius: 999px; border: 1px solid var(--bsh-line-strong); padding: .8rem 1.2rem; }
.bsh-newsletter__note { font-size: .82rem; color: var(--bsh-muted); margin: .7rem 0 0; }
.bsh-newsletter__form.is-done .bsh-newsletter__row { opacity: .5; pointer-events: none; }
@media (max-width: 767px){ .bsh-newsletter { grid-template-columns: 1fr; padding: 1.8rem; } .bsh-newsletter__row { flex-direction: column; } .bsh-newsletter__row .btn { width: 100%; } }

.bsh-cta { background: radial-gradient(900px 500px at 90% -20%, rgba(15,154,161,.4), transparent 60%), linear-gradient(135deg, var(--bsh-primary-700), var(--bsh-primary)); color: #fff; border-radius: var(--r-lg); padding: 2.6rem; }
.bsh-cta--plain { border-radius: 0; }
.bsh-cta__inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.bsh-cta__title { color: #fff; font-size: clamp(1.5rem,3vw,2.1rem); margin: 0 0 .4rem; }
.bsh-cta__text { color: #dcefff; margin: 0; max-width: 52ch; }
.bsh-cta__actions { display: flex; gap: .7rem; flex-wrap: wrap; }
.bsh-cta .btn-light { color: var(--bsh-primary-700); font-weight: 700; }
@media (max-width: 767px){ .bsh-cta { padding: 1.8rem; } .bsh-cta__inner { flex-direction: column; align-items: flex-start; } }

/* ------------------------------------------------------------------ */
/* 14. Footer                                                          */
/* ------------------------------------------------------------------ */
.bsh-footer { background: var(--bsh-bg-ink); color: #a9c2d6; padding: 3.5rem 0 1.6rem; margin-top: 0; }
.bsh-footer__grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr 1fr; gap: 2rem; padding-bottom: 2.2rem; border-bottom: 1px solid rgba(255,255,255,.1); }
.bsh-footer__brand .bsh-brand--footer { color: #fff; margin-bottom: 1rem; }
.bsh-footer__brand .bsh-brand__accent { color: #6fd0ff; }
.bsh-footer__about { font-size: .9rem; color: #93aec4; max-width: 34ch; }
.bsh-footer__title { font-family: var(--font-display); font-size: .8rem; text-transform: uppercase; letter-spacing: .12em; color: #fff; margin: 0 0 1rem; }
.bsh-footer__links { list-style: none; padding: 0; margin: 0; display: grid; gap: .55rem; }
.bsh-footer__links a { color: #a9c2d6; font-size: .92rem; }
.bsh-footer__links a:hover { color: #fff; }
.bsh-social { list-style: none; padding: 0; margin: 1.2rem 0 0; display: flex; gap: .5rem; }
.bsh-social a { width: 38px; height: 38px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; background: rgba(255,255,255,.08); color: #cfe2f0; }
.bsh-social a:hover { background: var(--bsh-primary); color: #fff; }
.bsh-footer__disclaimer { display: flex; gap: .7rem; align-items: flex-start; padding: 1.3rem 0; color: #8fa9be; font-size: .84rem; border-bottom: 1px solid rgba(255,255,255,.1); }
.bsh-footer__disclaimer .bsh-ico-sm { color: #6fd0ff; flex: none; margin-top: .15rem; }
.bsh-footer__disclaimer p { margin: 0; }
.bsh-footer__disclaimer strong { color: #d7e6f2; }
.bsh-footer__bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: 1.3rem; font-size: .84rem; color: #7f9ab0; flex-wrap: wrap; }
@media (max-width: 991px){ .bsh-footer__grid { grid-template-columns: 1fr 1fr 1fr; } .bsh-footer__brand { grid-column: span 3; } }
@media (max-width: 575px){ .bsh-footer__grid { grid-template-columns: 1fr 1fr; } .bsh-footer__brand { grid-column: span 2; } }

/* ------------------------------------------------------------------ */
/* 15. Back to top + misc                                              */
/* ------------------------------------------------------------------ */
.bsh-totop { position: fixed; right: 20px; bottom: 20px; z-index: 1040; width: 46px; height: 46px; border-radius: 50%; border: 0; background: var(--bsh-primary); color: #fff; box-shadow: var(--sh-md); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; opacity: 0; transform: translateY(12px); transition: opacity .25s, transform .25s; }
.bsh-totop.is-visible { opacity: 1; transform: translateY(0); }
.bsh-totop:hover { background: var(--bsh-primary-700); }

.bsh-lead-xl { font-size: 1.15rem; color: var(--bsh-ink-soft); }
.bsh-anchor { scroll-margin-top: 110px; }
.text-balance { text-wrap: balance; }
.bsh-divider-label { display:flex; align-items:center; gap:1rem; color:var(--bsh-muted); font-family:var(--font-display); font-weight:600; font-size:.8rem; text-transform:uppercase; letter-spacing:.1em; margin: 2.4rem 0 1.4rem; }
.bsh-divider-label::before, .bsh-divider-label::after { content:''; height:1px; background:var(--bsh-line); flex:1; }

/* Prose (long-form guides/blog — used in Phase 2/3) */
.bsh-prose { font-family: var(--font-serif); font-size: 1.12rem; line-height: 1.8; color: var(--bsh-ink-soft); }
.bsh-prose h2 { font-family: var(--font-display); font-size: 1.7rem; margin: 2.4rem 0 1rem; padding-top: .4rem; }
.bsh-prose h3 { font-family: var(--font-display); font-size: 1.3rem; margin: 1.8rem 0 .7rem; }
.bsh-prose p { margin: 0 0 1.15rem; }
.bsh-prose ul, .bsh-prose ol { margin: 0 0 1.2rem; padding-left: 1.3rem; }
.bsh-prose li { margin-bottom: .5rem; }
.bsh-prose a { text-decoration: underline; text-underline-offset: 2px; text-decoration-color: rgba(10,108,178,.35); }
.bsh-prose blockquote { border-left: 4px solid var(--bsh-primary); background: var(--bsh-bg-soft); padding: 1rem 1.3rem; margin: 1.5rem 0; border-radius: 0 var(--r-xs) var(--r-xs) 0; font-style: italic; }

/* ------------------------------------------------------------------ */
/* 16. Inner pages (Phase 2): page hero, doc layout, hubs, search, 404 */
/* ------------------------------------------------------------------ */
.bsh-page-hero { background: linear-gradient(180deg, var(--bsh-bg-tint), #fff); border-bottom: 1px solid var(--bsh-line); padding: 2.8rem 0 2.4rem; }
.bsh-page-hero h1 { font-size: clamp(1.9rem, 4vw, 2.8rem); margin: 0 0 .6rem; }
.bsh-page-hero__lead { color: var(--bsh-muted); font-size: 1.14rem; max-width: 68ch; margin: 0; }
.bsh-page-hero__meta { display: flex; gap: 1.2rem; flex-wrap: wrap; margin-top: 1.1rem; color: var(--bsh-muted); font-size: .85rem; }
.bsh-page-hero__meta span { display: inline-flex; align-items: center; gap: .35rem; }
.bsh-page-hero__meta .bsh-ico-sm { color: var(--bsh-primary); }

/* Document (legal / policy / prose) layout with sticky TOC */
.bsh-doc { padding: 3rem 0; }
.bsh-doc__grid { display: grid; grid-template-columns: 260px 1fr; gap: 3rem; align-items: start; }
.bsh-doc__body { max-width: 76ch; }
.bsh-toc { position: sticky; top: 96px; border: 1px solid var(--bsh-line); border-radius: var(--r-sm); padding: 1.2rem 1.3rem; background: var(--bsh-bg-soft); font-size: .9rem; }
.bsh-toc h2 { font-size: .74rem; text-transform: uppercase; letter-spacing: .12em; color: var(--bsh-muted); margin: 0 0 .8rem; font-family: var(--font-display); }
.bsh-toc ol { list-style: none; padding: 0; margin: 0; display: grid; gap: .5rem; counter-reset: toc; }
.bsh-toc ol li { counter-increment: toc; }
.bsh-toc ol li::before { content: counter(toc) ". "; color: var(--bsh-primary); font-weight: 700; }
.bsh-toc a { color: var(--bsh-body); }
.bsh-toc a:hover { color: var(--bsh-primary); }
@media (max-width: 991px){ .bsh-doc__grid { grid-template-columns: 1fr; gap: 1.5rem; } .bsh-toc { position: static; } }

/* Hub pages */
.bsh-hub-count { color: var(--bsh-muted); font-size: .92rem; margin: 0 0 1.4rem; }
.bsh-hub-filters { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.8rem; }
.bsh-chip { border: 1px solid var(--bsh-line); background: #fff; border-radius: 999px; padding: .45rem 1rem; font-family: var(--font-display); font-weight: 600; font-size: .85rem; color: var(--bsh-ink-soft); cursor: pointer; transition: .15s; text-decoration: none; }
.bsh-chip:hover, .bsh-chip.is-active { background: var(--bsh-primary); color: #fff; border-color: var(--bsh-primary); }
.bsh-hub-group { margin-bottom: 2.6rem; }
.bsh-hub-group__title { display: flex; align-items: center; gap: .6rem; margin: 0 0 1.2rem; font-size: 1.35rem; }
.bsh-hub-group__title .bsh-ico { color: var(--bsh-primary); }

/* Search */
.bsh-searchbar { display: flex; gap: .6rem; max-width: 640px; margin-bottom: .6rem; }
.bsh-searchbar .form-control { border-radius: 999px; padding: .8rem 1.2rem; border: 1px solid var(--bsh-line-strong); }
.bsh-result { display: block; padding: 1.1rem 1.25rem; border: 1px solid var(--bsh-line); border-radius: var(--r-sm); margin-bottom: .8rem; background: #fff; box-shadow: var(--sh-sm); transition: box-shadow .18s, transform .18s; }
.bsh-result:hover { box-shadow: var(--sh); transform: translateY(-2px); }
.bsh-result__type { font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: var(--bsh-primary); font-weight: 700; font-family: var(--font-display); }
.bsh-result h3 { margin: .2rem 0 .3rem; font-size: 1.1rem; }
.bsh-result p { margin: 0; color: var(--bsh-body); font-size: .92rem; }
.bsh-search-empty { text-align: center; padding: 2.5rem 1rem; color: var(--bsh-muted); }
mark { background: #fff2b8; color: inherit; padding: 0 .1em; border-radius: 3px; }

/* 404 */
.bsh-404 { text-align: center; padding: 3.5rem 0 4rem; }
.bsh-404__code { font-family: var(--font-display); font-weight: 800; font-size: clamp(4.5rem, 15vw, 9rem); line-height: 1; background: linear-gradient(120deg, var(--bsh-primary), var(--bsh-teal)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.bsh-404__links { display: flex; gap: .7rem; flex-wrap: wrap; justify-content: center; margin-top: 1.6rem; }

/* Contact form */
.bsh-form label { font-family: var(--font-display); font-weight: 600; color: var(--bsh-ink-soft); margin-bottom: .3rem; display: block; }
.bsh-form .form-control { border-radius: var(--r-xs); padding: .75rem .95rem; border: 1px solid var(--bsh-line-strong); }
.bsh-form .form-control:focus { border-color: var(--bsh-primary); box-shadow: 0 0 0 .2rem rgba(10,108,178,.15); }
.bsh-alert-success { background: #eef8f2; border: 1px solid #bfe3cf; color: #1c6b43; padding: 1.1rem 1.3rem; border-radius: var(--r-sm); display: flex; gap: .6rem; align-items: flex-start; }
.bsh-alert-success .bsh-ico { color: var(--bsh-success); flex: none; }
.bsh-contact-card { border: 1px solid var(--bsh-line); border-radius: var(--r); background: var(--bsh-bg-soft); padding: 1.5rem; }
.bsh-contact-card ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .9rem; }
.bsh-contact-card li { display: flex; gap: .7rem; align-items: flex-start; }
.bsh-contact-card .bsh-ico { color: var(--bsh-primary); flex: none; margin-top: .15rem; }

/* Author cards (About) */
.bsh-author { display: flex; gap: 1rem; padding: 1.3rem; border: 1px solid var(--bsh-line); border-radius: var(--r); background: #fff; box-shadow: var(--sh-sm); height: 100%; }
.bsh-author__avatar { flex: none; width: 58px; height: 58px; border-radius: 50%; background: linear-gradient(135deg, var(--bsh-primary), var(--bsh-teal)); color: #fff; font-weight: 700; font-size: 1.35rem; display: flex; align-items: center; justify-content: center; font-family: var(--font-display); }
.bsh-author__name { font-family: var(--font-display); font-weight: 700; color: var(--bsh-ink); margin: 0; font-size: 1.05rem; }
.bsh-author__role { color: var(--bsh-primary); font-size: .82rem; font-weight: 600; margin: 0 0 .5rem; }
.bsh-author__bio { font-size: .9rem; margin: 0 0 .5rem; }
.bsh-tag { display: inline-block; background: var(--bsh-bg-tint); color: var(--bsh-ink-soft); border-radius: 999px; padding: .18rem .6rem; font-size: .74rem; margin: .15rem .2rem 0 0; }

/* Value/feature grid (resources, about) */
.bsh-feature { display: flex; gap: 1rem; padding: 1.3rem; border: 1px solid var(--bsh-line); border-radius: var(--r-sm); background: #fff; box-shadow: var(--sh-sm); height: 100%; }
.bsh-feature__icon { flex: none; width: 46px; height: 46px; border-radius: 12px; background: var(--bsh-primary-050); color: var(--bsh-primary); display: inline-flex; align-items: center; justify-content: center; }
.bsh-feature h3 { font-size: 1.05rem; margin: 0 0 .35rem; }
.bsh-feature p { margin: 0; font-size: .92rem; }

/* Definition/reference list */
.bsh-deflist { display: grid; gap: .8rem; }
.bsh-deflist__item { border: 1px solid var(--bsh-line); border-radius: var(--r-sm); padding: 1rem 1.2rem; background: #fff; }
.bsh-deflist__term { font-family: var(--font-display); font-weight: 700; color: var(--bsh-ink); }

/* ------------------------------------------------------------------ */
/* 17. Article (guide / blog detail)                                   */
/* ------------------------------------------------------------------ */
.bsh-article__figure { margin: 1.6rem 0 0; }
.bsh-article__figure img { width: 100%; height: auto; border-radius: var(--r-lg); border: 1px solid var(--bsh-line); box-shadow: var(--sh); display: block; }
.bsh-authorbox { display: flex; gap: 1rem; align-items: flex-start; margin: 2.4rem 0 0; padding: 1.3rem; border: 1px solid var(--bsh-line); border-radius: var(--r); background: var(--bsh-bg-soft); }
.bsh-authorbox .bsh-author__avatar { flex: none; }
.bsh-authorbox .bsh-author__name { font-family: var(--font-display); font-weight: 700; color: var(--bsh-ink); margin: 0 0 .25rem; }

.bsh-share { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; margin: 1.6rem 0; }
.bsh-share span { font-family: var(--font-display); font-weight: 600; color: var(--bsh-muted); font-size: .85rem; }
.bsh-share a, .bsh-share button { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--bsh-line-strong); background: #fff; color: var(--bsh-ink-soft); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: .15s; }
.bsh-share a:hover, .bsh-share button:hover { background: var(--bsh-primary); color: #fff; border-color: var(--bsh-primary); }

.bsh-prevnext { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 2.5rem 0 0; }
@media (max-width: 575px){ .bsh-prevnext { grid-template-columns: 1fr; } }
.bsh-prevnext a { display: block; padding: 1.1rem 1.3rem; border: 1px solid var(--bsh-line); border-radius: var(--r-sm); background: #fff; transition: .18s; }
.bsh-prevnext a:hover { box-shadow: var(--sh); border-color: var(--bsh-line-strong); }
.bsh-prevnext small { color: var(--bsh-muted); font-family: var(--font-display); font-weight: 600; text-transform: uppercase; letter-spacing: .05em; font-size: .72rem; }
.bsh-prevnext b { display: block; color: var(--bsh-ink); font-family: var(--font-display); margin-top: .2rem; }
.bsh-prevnext .bsh-pn--next { text-align: right; }

.bsh-article__byline { display: flex; align-items: center; gap: .7rem; margin: 0; }
.bsh-article__byline .bsh-avatar { width: 40px; height: 40px; font-size: 1rem; }

/* Print */
@media print {
  .bsh-topbar, .bsh-header, .bsh-footer, .bsh-totop, .bsh-newsletter, .bsh-cta, .bsh-breadcrumb { display: none !important; }
  body.bsh { font-size: 12pt; color: #000; }
  .bsh-card, .bsh-infobox { box-shadow: none; break-inside: avoid; }
}
