/* Base element styles + layout primitives. Kept small so it coexists with Bootstrap 5 reboot. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;font-family:var(--bh-font-body);font-size:var(--bh-text-body);line-height:var(--bh-leading-body);color:var(--bh-color-text);background:var(--bh-color-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
[data-theme]{color:var(--bh-color-text);background:var(--bh-color-bg)}
body,.bh-site{container:bh-site / inline-size}
h1,h2,h3,h4,h5,h6{font-family:var(--bh-font-heading);color:var(--bh-color-text-strong);margin:0;font-weight:var(--bh-weight-semibold);text-wrap:balance}
p{margin:0;text-wrap:pretty}
img,svg{display:block;max-width:100%}
a{color:var(--bh-color-link);text-decoration-thickness:1px;text-underline-offset:.18em}
a:hover{color:var(--bh-color-link-hover)}
::selection{background:var(--bh-color-selection)}
:focus-visible{outline:var(--bh-focus-width) solid var(--bh-color-focus);outline-offset:var(--bh-focus-offset)}
button,input,select,textarea{font:inherit;color:inherit}
.bh-visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.bh-skip{position:absolute;left:12px;top:-60px;z-index:var(--bh-z-cookie);background:var(--bh-color-primary);color:var(--bh-color-on-primary);padding:10px 16px;border-radius:var(--bh-radius-md);font-weight:600}
.bh-skip:focus{top:12px}
.bh-container{width:100%;max-width:calc(var(--bh-container-max) + 2 * var(--bh-page-margin));margin-inline:auto;padding-inline:var(--bh-page-margin)}
.bh-container--wide{max-width:calc(var(--bh-container-wide) + 2 * var(--bh-page-margin))}
.bh-container--text{max-width:calc(var(--bh-container-text) + 2 * var(--bh-page-margin))}
.bh-section{padding-block:var(--bh-section-md)}
.bh-section--sm{padding-block:var(--bh-section-sm)}
.bh-section--lg{padding-block:var(--bh-section-lg)}
.bh-section--subtle{background:var(--bh-color-bg-subtle)}
.bh-section--rule{border-top:1px solid var(--bh-color-border)}
.bh-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--bh-gutter)}
@container bh-site (min-width:768px){.bh-grid{grid-template-columns:repeat(8,minmax(0,1fr))}}
@container bh-site (min-width:1024px){.bh-grid{grid-template-columns:repeat(12,minmax(0,1fr))}}
.bh-stack{display:flex;flex-direction:column;gap:var(--bh-stack-md)}
.bh-cluster{display:flex;flex-wrap:wrap;gap:var(--bh-space-3);align-items:center}
.bh-auto-grid{display:grid;gap:var(--bh-gutter);grid-template-columns:repeat(auto-fill,minmax(min(100%,var(--bh-auto-min,280px)),1fr))}
.bh-split{display:grid;gap:var(--bh-stack-lg);align-items:start}
@container bh-site (min-width:1024px){.bh-split{grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:64px}}
.bh-with-aside{display:grid;gap:48px;align-items:start}
@container bh-site (min-width:1024px){.bh-with-aside{grid-template-columns:minmax(0,1fr) minmax(280px,360px);column-gap:72px}.bh-with-aside--left{grid-template-columns:minmax(200px,240px) minmax(0,1fr)}.bh-sticky{position:sticky;top:96px}}
.bh-page-title{font-size:var(--bh-text-h1);line-height:var(--bh-leading-heading);letter-spacing:var(--bh-tracking-heading);max-width:22ch}
.bh-page-lead{font-size:var(--bh-text-lead);line-height:1.55;color:var(--bh-color-text-secondary);max-width:60ch}
.bh-eyebrow{font-family:var(--bh-font-mono);font-size:var(--bh-text-label);font-weight:500;letter-spacing:var(--bh-tracking-label);text-transform:uppercase;color:var(--bh-color-text-secondary);display:inline-flex;align-items:center;gap:10px}
.bh-eyebrow::before{content:"";width:8px;height:8px;background:var(--bh-color-accent);flex:none}
.bh-placeholder{font-family:var(--bh-font-mono);font-size:var(--bh-text-xs);color:var(--bh-color-accent-text);background:var(--bh-color-accent-subtle);padding:1px 6px;border-radius:var(--bh-radius-xs)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
