/* Shared archive/hub design system: the Blog page (home.php, .fp-blog) and the Reports/Case
   Studies/Webinars/Glossary archives (templates/resource-archive.php, .fp-rh) load this same
   file so every resource family reads as one design. Loads after entity.css (eq/eq-i grid)
   and content.css (.fti-collection — the real, existing search/filter/pagination block; kept
   fully functional, only restyled). Prefixes: bh- hero/toolbar/cards/misc. */

.sh-notice { display:flex; gap:12px; align-items:flex-start; margin:22px 0 0!important; padding:14px 18px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.14); border-radius:6px; color:#b7cccd!important; font-size:.875rem!important; line-height:1.55!important; max-width:560px; }
.sh-notice svg { flex:none; width:22px; height:22px; margin-top:1px; fill:none; stroke:#6fd6b4; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }

/* Hero: abstract signal/network motif, kept subtle so it never competes with the heading */
.bh-grid-bg { position:absolute; inset:0; pointer-events:none; opacity:.36; }
.bh-grid-bg svg { display:block; width:100%; height:100%; }
.bh-grid path { fill:none; stroke:rgba(255,255,255,.06); stroke-width:1; }
.bh-orbit circle { fill:none; stroke:rgba(24,199,155,.13); stroke-width:1; }
.bh-signal path { fill:none; stroke:#5fa39a; stroke-width:1.2; opacity:.5; }
.bh-signal circle { fill:#0f4a3d; stroke:#6fd6b4; stroke-width:1.1; opacity:.85; }
.bh-signal circle.on { fill:#18c79b; stroke:#18c79b; opacity:1; filter:drop-shadow(0 0 5px rgba(24,199,155,.5)); }

/* Compact hero: the shared .fp-hero scale reads oversized for a text-led blog index */
.fp-blog .fp-hero-grid { padding-block:clamp(28px,3.6vw,46px) clamp(38px,4.8vw,64px); }
.fp-blog .fp-crumbs { margin-bottom:14px; }
.fp-blog .fp-hero h1 { font-size:clamp(2.5rem,4.2vw,3.75rem); letter-spacing:-.035em; margin-bottom:12px; max-width:15ch; }
.fp-blog .fp-hero-lead { font-size:clamp(1.0625rem,1.3vw,1.1875rem)!important; margin-bottom:18px!important; max-width:520px; }
.fp-blog .bh-chips { margin-top:0; }
.fp-blog .fp-hero-visual { max-width:360px; margin-inline:auto; opacity:.92; }

.bh-chips { list-style:none; margin:0 0 4px; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.bh-chips a { display:inline-block; font-size:.8125rem; font-weight:650; color:#dcebe8; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.18); border-radius:999px; padding:7px 15px; text-decoration:none; }
.bh-chips a:hover { background:rgba(255,255,255,.14); border-color:#6fd6b4; color:#fff; }
.bh-chips a:focus-visible { outline:2px solid #6fd6b4; outline-offset:2px; }

.bh-visual svg { display:block; width:100%; height:auto; }
.bh-v-grid path { fill:none; stroke:rgba(24,199,155,.16); stroke-width:1; }
.bh-v-path path { fill:none; stroke:#18c79b; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.bh-v-nodes circle { fill:#0a2028; stroke:#18c79b; stroke-width:2; }
.bh-v-nodes circle.hub { fill:#18c79b; stroke:#fff; filter:drop-shadow(0 0 10px rgba(24,199,155,.6)); }
.bh-v-doc rect { fill:#0a2028; stroke:rgba(255,255,255,.24); stroke-width:1.4; }
.bh-v-doc path { stroke:rgba(255,255,255,.4); stroke-width:2; stroke-linecap:round; }
.bh-v-doc path.bh-v-check { stroke:#18c79b; stroke-width:2.4; stroke-linejoin:round; }
.bh-v-play-ring { fill:rgba(24,199,155,.1); stroke:#18c79b; stroke-width:1.6; }
.bh-v-play { fill:#18c79b; }

/* Subtle play affordance over webinar thumbnails, in the featured card and the result grid */
.bh-play-badge { position:absolute; inset:0; display:grid; place-items:center; pointer-events:none; }
.bh-play-badge svg { width:44px; height:44px; filter:drop-shadow(0 2px 8px rgba(0,0,0,.35)); }
.bh-play-badge svg circle { fill:rgba(6,20,28,.55); stroke:rgba(255,255,255,.7); stroke-width:1; }
.bh-play-badge svg path { fill:#fff; stroke:none; }

/* Featured article: a single deliberate card, entirely clickable, subtle border, minimal shadow */
#featured.fp-sec, #latest.fp-sec, #topics.fp-sec { padding-block:clamp(56px,6.5vw,88px); }
.bh-feat { position:relative; display:grid; grid-template-columns:1fr 1.1fr; gap:32px; align-items:center; background:#fff; border:1px solid #bfe0d3; border-radius:12px; padding:24px; box-shadow:0 1px 2px rgba(10,40,35,.04); }
.bh-feat:has(a:focus-visible) { outline:2px solid var(--em); outline-offset:2px; }
.bh-feat-media { position:relative; aspect-ratio:16/11; display:grid; place-items:center; background:var(--navy); border-radius:9px; overflow:hidden; }
.bh-feat-media img { width:100%; height:100%; object-fit:cover; }
.bh-feat-media svg { width:60%; height:auto; }
.bh-feat-media svg path { fill:none; stroke:#5fa39a; stroke-width:1.6; }
.bh-feat-media svg circle { fill:#0f4a3d; stroke:#6fd6b4; stroke-width:1.4; }
.bh-feat-media svg circle.on { fill:#18c79b; stroke:#18c79b; }
.fp-blog .fp-sec--mint .fp-eyebrow { color:#075c47!important; }
.fp-blog .fp-sec--mint .fp-eyebrow::before { background:#075c47; }
.bh-type { display:inline-block; font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--em); background:#fff; border:1px solid #bfe0d3; border-radius:4px; padding:4px 10px; margin-bottom:10px; }
.bh-feat-body h3 { margin:0 0 8px; font-size:1.75rem; letter-spacing:-.02em; line-height:1.18; }
.bh-feat-body h3 a { color:inherit; text-decoration:none; } .bh-feat-body h3 a:hover { color:var(--em); }
.bh-feat-body h3 a::after { content:''; position:absolute; inset:0; }
.bh-feat-body h3 a:focus-visible { outline:2px solid var(--em); outline-offset:3px; }
.bh-feat-body > p { font-size:1rem; color:var(--mute); line-height:1.6; margin:0 0 14px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.bh-feat-meta { display:flex; flex-wrap:wrap; gap:16px; margin-bottom:14px; }
.bh-feat-meta span { display:inline-flex; align-items:center; gap:6px; font-size:.8125rem; color:var(--mute); }
.bh-feat-meta svg { width:15px; height:15px; fill:none; stroke:var(--em); stroke-width:1.8; }
.bh-read { position:relative; z-index:1; display:inline-flex; align-items:center; gap:6px; font-weight:650; color:var(--em); text-decoration:none; font-size:.9375rem; }
.bh-read:hover { text-decoration:underline; }
.bh-read:focus-visible { outline:2px solid var(--em); outline-offset:3px; border-radius:2px; }

.bh-empty { text-align:center; padding:48px 32px; background:#fff; border:1px solid #bfe0d3; border-radius:14px; }
.bh-empty-i { display:inline-grid; place-items:center; width:52px; height:52px; border-radius:50%; background:var(--mint-l); color:var(--em); margin-bottom:16px; }
.bh-empty-i svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.7; }
.bh-empty h3 { margin:0 0 8px; font-size:1.25rem; }
.bh-empty p { margin:0 0 20px; color:var(--mute); font-size:.9375rem; max-width:440px; margin-inline:auto; }

/* Section head + subtle, only-when-useful result meta (replaces the old boxed "1 article published" line) */
.bh-latest-head { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:16px 24px; }
.bh-latest-head > div:first-child { flex:1 1 420px; }
.bh-result-meta { display:flex; flex-direction:column; align-items:flex-end; gap:8px; padding-bottom:2px; }
.bh-count { margin:0; font-size:.8125rem; font-weight:600; color:var(--mute); }
.bh-active-chips { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.bh-active-chips li { display:inline-flex; align-items:center; gap:8px; font-size:.8125rem; font-weight:650; color:var(--em); background:#fff; border:1px solid #bfe0d3; border-radius:999px; padding:6px 8px 6px 14px; }
.bh-active-chips a { display:grid; place-items:center; width:18px; height:18px; border-radius:50%; background:var(--mint-l); color:var(--em); }
.bh-active-chips a svg { width:10px; height:10px; fill:none; stroke:currentColor; stroke-width:2.4; }
.bh-active-chips a:hover { background:var(--em); color:#fff; }
.bh-active-chips a:focus-visible { outline:2px solid var(--em); outline-offset:2px; }

.bh-toolbar-wrap { margin-top:28px; }
.bh-collection .fti-collection { margin-block:0; }
.bh-collection .fti-collection-filters { display:flex; flex-wrap:wrap; align-items:end; gap:16px; padding:0 0 22px; margin-bottom:22px; background:none; border:0; border-bottom:1px solid #dce6e3; border-radius:0; }
.bh-collection .fti-collection-filters > div:first-child { flex:2 1 260px; position:relative; }
.bh-collection .fti-collection-filters > div:first-child::before { content:''; position:absolute; left:14px; bottom:13px; width:18px; height:18px; pointer-events:none; opacity:.55; background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23485e6c' stroke-width='1.8'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='M15.5 15.5L21 21'/%3E%3C/svg%3E"); }
.bh-collection .fti-collection-filters label { font-size:.75rem; font-weight:650; text-transform:uppercase; letter-spacing:.05em; color:var(--em); margin-bottom:6px; }
.bh-collection .fti-collection-filters input,
.bh-collection .fti-collection-filters select { width:100%; padding:12px 14px; border:1px solid #c7dcd1; border-radius:8px; font-size:.9375rem; background:#fff; }
.bh-collection .fti-collection-filters > div:first-child input { padding-left:38px; }
.bh-collection .fti-collection-filters input:focus-visible,
.bh-collection .fti-collection-filters select:focus-visible { outline:2px solid var(--em); outline-offset:1px; }
.bh-collection .fti-collection-filters .button { background:var(--em); color:#fff; border:0; border-radius:8px; padding:12px 22px; font-weight:650; font-size:.9375rem; cursor:pointer; }
.bh-collection .fti-collection-filters .button:hover { background:#065f4b; }
.bh-collection .fti-collection-filters .button:focus-visible { outline:2px solid var(--em); outline-offset:2px; }
.bh-collection .fti-collection-filters > a { font-weight:650; color:var(--mute); text-decoration:underline; padding:12px 4px; }
.bh-collection .fti-collection-filters > a:hover { color:var(--em); }
.bh-collection .fti-collection-filters > a:focus-visible { outline:2px solid var(--em); outline-offset:2px; }

.bh-collection .fti-collection-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.bh-collection .fti-collection-grid .is-style-fti-card { background:#fff; border:1px solid #e1ebe7; border-radius:12px; padding:0 0 22px; overflow:hidden; transition:transform .18s,box-shadow .18s,border-color .18s; }
.bh-collection .fti-collection-grid .is-style-fti-card:hover { transform:translateY(-3px); box-shadow:0 20px 36px -28px rgba(10,40,35,.35); border-color:#bfe0d3; }
.bh-collection .fti-collection-grid .is-style-fti-card:has(a:focus-visible) { outline:2px solid var(--em); outline-offset:2px; }
.bh-collection .fti-collection-grid img { border-radius:0; margin-bottom:16px; }
.bh-collection .fti-collection-grid .is-style-fti-card > a:first-child { position:relative; display:block; line-height:0; }
.bh-collection .fti-collection-grid .is-style-fti-card > .bh-type { display:inline-block; margin:16px 18px 8px; }
.bh-collection .fti-collection-grid .is-style-fti-card > a:first-child + .bh-type { margin-top:0; }
.bh-collection .fti-collection-grid h2 { font-size:1.25rem; margin:0 18px 8px; letter-spacing:normal; }
.bh-collection .fti-collection-grid h2 a { color:var(--ink); text-decoration:none; }
.bh-collection .fti-collection-grid h2 a:hover { color:var(--em); }
.bh-collection .fti-collection-grid h2 a:focus-visible { outline:2px solid var(--em); outline-offset:2px; border-radius:2px; }
.bh-collection .fti-collection-grid .fti-entry-meta { margin:0 18px 8px; }
.bh-collection .fti-collection-grid p:not(.fti-entry-meta) { margin:0 18px; color:var(--mute); font-size:.9375rem; line-height:1.5; }
.bh-collection .fti-collection-grid .is-style-fti-card > .bh-read { display:inline-flex; margin:10px 18px 0; }

/* Single-article state: a deliberate wide card, no broken-looking empty grid slots.
   Uses absolute positioning (not CSS grid) for the image: grid auto-placement would
   put each text element into its own row sized to match the tall image, forcing a
   large gap between the title and the fields that follow it. */
.bh-collection .fti-collection-grid:has(> :only-child) { grid-template-columns:1fr; }
.bh-collection .fti-collection-grid:has(> :only-child) .is-style-fti-card { position:relative; padding:20px 20px 20px 372px; min-height:220px; }
.bh-collection .fti-collection-grid:has(> :only-child) .is-style-fti-card:not(:has(> a:first-child)) { padding-left:20px; }
.bh-collection .fti-collection-grid:has(> :only-child) .is-style-fti-card > a:first-child { position:absolute; left:20px; top:20px; width:320px; border-radius:8px; overflow:hidden; line-height:0; }
.bh-collection .fti-collection-grid:has(> :only-child) .is-style-fti-card > a:first-child img { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; height:auto; margin:0; }
.bh-collection .fti-collection-grid:has(> :only-child) .is-style-fti-card > *:not(a) { margin-left:0!important; margin-right:0!important; }
.bh-collection .fti-collection-grid:has(> :only-child) .is-style-fti-card h2 { font-size:1.5rem; }

.bh-collection .empty-state { text-align:left; padding:0; border-radius:0; }
.bh-collection .empty-state p { margin:0; color:var(--mute); font-size:.9375rem; }
.bh-collection.bh-hide-native-empty .fti-collection > .empty-state { display:none; }
.bh-collection .fti-collection-pagination a,
.bh-collection .fti-collection-pagination .current { border-radius:8px; }

/* Glossary keeps the real, working search/topic form above but replaces the card grid
   with its own A-Z index (template-parts/resource-glossary.php); the native grid, empty
   state, and pager still render (the form's query logic is unchanged) but stay hidden. */
.bh-collection.bh-hide-native-grid .fti-collection-grid,
.bh-collection.bh-hide-native-grid .fti-collection > .empty-state,
.bh-collection.bh-hide-native-grid .fti-collection-pagination { display:none; }

/* Honest, minimal replacement for the native empty-state text: accurate for the
   "only the featured article exists" case, which the shared block's own copy doesn't cover. */
.bh-empty-clean { margin-top:4px; }
.bh-empty-clean--plain { margin:0; color:var(--mute); font-size:.9375rem; }
.bh-empty-clean p { margin:0 0 8px; color:var(--mute); font-size:.9375rem; }
.bh-empty-clean a { font-size:.875rem; font-weight:600; color:var(--em); text-decoration:underline; }
.bh-empty-clean a:hover { color:#065f4b; }
.bh-empty-clean a:focus-visible { outline:2px solid var(--em); outline-offset:2px; }

/* Explore by topic: extend the shared .eq grid with an arrow affordance.
   A single topic becomes one wide horizontal link, not a small card lost in empty space. */
.bh-topics li > a { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:16px; }
.bh-arrow { color:var(--em); font-size:1.125rem; transition:transform .18s; }
.bh-topics li > a:hover .bh-arrow { transform:translateX(4px); }
.bh-topics li > a:focus-visible { outline:2px solid var(--em); outline-offset:2px; border-radius:8px; }
.bh-topics:has(> :only-child) { grid-template-columns:1fr; }
.bh-topics:has(> :only-child) li > a { padding:20px 24px; }
.bh-topics:has(> :only-child) li > a > div { display:flex; align-items:baseline; gap:10px; }
.bh-topics:has(> :only-child) li > a h3 { margin:0; }
.bh-topics:has(> :only-child) li > a p { margin:0; color:var(--mute); }
.bh-topics:has(> :only-child) li > a p::before { content:'\2022'; margin-right:10px; color:#bfe0d3; }

/* Glossary A-Z index: compact letter jump-list, then grouped terms in a clean two-column layout */
.bh-az-nav { list-style:none; display:flex; flex-wrap:wrap; gap:6px; margin:0 0 40px; padding:0; }
.bh-az-nav a,
.bh-az-nav span { display:grid; place-items:center; width:32px; height:32px; border-radius:6px; font-size:.8125rem; font-weight:650; }
.bh-az-nav a { color:var(--em); background:var(--mint-l); text-decoration:none; }
.bh-az-nav a:hover { background:var(--mint); }
.bh-az-nav a:focus-visible { outline:2px solid var(--em); outline-offset:2px; }
.bh-az-nav span { color:#b7c4c0; }
.bh-az-list { column-count:2; column-gap:48px; }
.bh-az-group { break-inside:avoid; margin-bottom:28px; }
.bh-az-group h2 { font-size:.875rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--em); margin:0 0 12px; padding-bottom:8px; border-bottom:1px solid #dce6e3; }
.bh-az-term { padding:14px 0; border-bottom:1px solid #eef3f1; }
.bh-az-term:last-child { border-bottom:0; }
.bh-az-term dt { font-weight:650; font-size:1.0625rem; margin:0 0 4px; }
.bh-az-term dt a { color:var(--ink); text-decoration:none; }
.bh-az-term dt a:hover { color:var(--em); }
.bh-az-term dt a:focus-visible { outline:2px solid var(--em); outline-offset:2px; border-radius:2px; }
.bh-az-term dd { margin:0; color:var(--mute); font-size:.9375rem; line-height:1.55; }

/* Final CTA: pale mint, compact */
.bh-cta { background:var(--mint-l); border-top:1px solid #dce6e3; text-align:center; padding-block:clamp(48px,6vw,72px); }
.bh-cta h2 { margin:0 0 8px; font-size:clamp(1.625rem,2.6vw,2.125rem); }
.bh-cta p { margin:0 auto 22px; max-width:560px; color:var(--mute); font-size:1.0625rem; }
.bh-cta-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:14px; }

@media (max-width:1180px) {
	.bh-collection .fti-collection-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.bh-feat { grid-template-columns:1fr; }
	.bh-feat-media { aspect-ratio:16/9; }
}
@media (max-width:900px) {
	.bh-latest-head { align-items:flex-start; }
	.bh-result-meta { align-items:flex-start; }
	.bh-active-chips { justify-content:flex-start; }
}
@media (max-width:768px) {
	#featured.fp-sec, #topics.fp-sec, #latest.fp-sec { padding-block:clamp(32px,7vw,48px); }
	.bh-collection .fti-collection-grid { grid-template-columns:1fr; }
	.bh-collection .fti-collection-filters { flex-direction:column; align-items:stretch; }
	.bh-collection .fti-collection-filters > div:first-child { flex:1 1 auto; }
	.bh-collection .fti-collection-filters .button { width:100%; }
	.bh-collection .fti-collection-filters > a { text-align:center; }
	.bh-collection .fti-collection-grid:has(> :only-child) .is-style-fti-card { padding:20px; min-height:0; }
	.bh-collection .fti-collection-grid:has(> :only-child) .is-style-fti-card > a:first-child { position:static; width:auto; margin-bottom:16px; }
	.bh-topics:has(> :only-child) li > a > div { flex-direction:column; align-items:flex-start; gap:2px; }
	.bh-topics:has(> :only-child) li > a p::before { display:none; }
	.bh-cta-actions { flex-direction:column; align-items:stretch; }
	.bh-az-list { column-count:1; }
	.bh-az-nav a, .bh-az-nav span { width:28px; height:28px; }
}
@media (prefers-reduced-motion:reduce) {
	.bh-signal circle.on { filter:none; }
	.bh-v-nodes circle.hub { filter:none; }
	.bh-collection .fti-collection-grid .is-style-fti-card { transition:none; }
	.bh-collection .fti-collection-grid .is-style-fti-card:hover { transform:none; }
	.bh-topics li > a:hover .bh-arrow { transform:none; }
}
