/*
Theme Name:   KnowBetta
Theme URI:    https://knowbetta.com
Description:  Kadence child theme for knowbetta.com — the Wild/Immersive design system (Young Serif / Figtree, cream / ink / amber). Built from the approved mockups in homepage-mockup/.
Author:       Annie
Template:     kadence
Version:      1.0.0
Requires at least: 6.3
Requires PHP: 7.4
Text Domain:  knowbetta
*/

/* ============================================================
   1. TOKENS
   The design system. WCAG-verified values — do not lighten
   --kb-quiet or the focus color without re-checking contrast
   (see homepage-mockup/ audit notes).
   ============================================================ */
:root{
  --kb-cream:#FAF5EA;
  --kb-cream-2:#F3ECDD;
  --kb-ink:#0C141C;
  --kb-amber:#F5A709;
  --kb-amber-hover:#FFBB2E;
  --kb-amber-ink:#8A5E00;    /* links on light, focus ring       */
  --kb-on-amber:#2A1C00;     /* text on amber buttons            */
  --kb-body:#31404C;
  --kb-quiet:#566672;        /* 5.5:1 on cream — min muted text  */
  --kb-faint:#8A94A2;        /* dark surfaces only               */
  --kb-rule:#E5DCCB;
  --kb-on-dark:#F4EFE4;
  --kb-on-dark-quiet:#A8B3BE;
  --kb-foot-muted:#7E8C97;   /* 5.4:1 on ink                     */
  --kb-display:'Young Serif',Georgia,serif;
  --kb-sans:'Figtree',system-ui,-apple-system,sans-serif;
  --kb-focus:#8A5E00;        /* passes 3:1 on every surface      */
  --kb-shadow-pop:0 24px 50px -20px rgba(12,20,28,.4);
  --kb-article-measure:44rem; /* article reading column width    */
  --kb-ink-hover:#1C2B38;    /* hover state for ink surfaces     */
  --kb-on-dark-body:#C9D4DC; /* body text on ink scenes          */
  --kb-callout-bg:#FBF1DE;   /* amber callout family (6.5:1 text)*/
  --kb-callout-border:#EAD9AE;
  --kb-callout-text:#6A5312;
  --kb-callout-strong:#4A3A0A;
  --kb-table-head:#84601D;   /* editorial table header (cream text ~5:1) */
  --kb-table-zebra:#F3F2F0;  /* even rows — deliberately NOT page cream  */
}

/* ============================================================
   2. BASE
   Kadence outputs --global-palette1..9 from the palette option
   (set by the child's kadence_dynamic_css filter), so Kadence
   UI and kadence-blocks inherit the brand automatically.
   ============================================================ */
/* !important: Kadence's dynamic CSS paints the site background white
   from the migrated mods. (Measured load order: the dynamic inline
   block prints BEFORE this sheet — the !important is belt-and-braces
   against optimizers reordering, not a cascade necessity.) */
body,body.site,#wrapper{background:var(--kb-cream) !important}
body{
  color:var(--kb-body);
  font-family:var(--kb-sans);
  font-size:1.0625rem;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
.single-post body,
body.single-post{font-size:1.1875rem;line-height:1.7}
h1,h2,h3,h4,h5,h6{
  font-family:var(--kb-display);
  font-weight:400;
  line-height:1.12;
  color:var(--kb-ink);
  letter-spacing:-.012em;
  text-wrap:balance;
}
/* balance equalizes multi-line headings — right for heroes and cards,
   but in article flow it breaks the first line far from the edge and
   reads as premature wrapping. Natural wrap for content headings. */
.entry-content :is(h2,h3,h4,h5){text-wrap:pretty}
:focus-visible{outline:3px solid var(--kb-focus);outline-offset:3px;border-radius:2px}
/* Kadence stamps .hide-focus-outline on <body> and suppresses ALL
   outlines until its JS removes the class on first keydown — with
   deferred JS (LiteSpeed) that race can eat the first Tab's ring.
   Restate at higher specificity so the ring never depends on JS. */
body.hide-focus-outline :focus-visible{outline:3px solid var(--kb-focus);outline-offset:3px;border-radius:2px}
/* the branding link and Kadence's injected submenu toggle buttons take
   ring colors from parent rules; force the token, amber on the dark header */
.site-branding a:focus-visible,
.dropdown-nav-special-toggle:focus-visible{outline:3px solid var(--kb-focus) !important;outline-offset:3px}
.kb-dark-header.kb-dark-header #masthead :focus-visible{outline-color:var(--kb-amber) !important}
.skip-link:focus{background:var(--kb-ink);color:var(--kb-cream)}
::selection{background:color-mix(in srgb,var(--kb-amber) 35%,transparent)}
.entry-content a:not(.button):not(.wp-block-button__link),
.page .entry-content a:not(.button):not(.wp-block-button__link){
  color:var(--kb-amber-ink);
  text-decoration:none;
  border-bottom:1.5px solid color-mix(in srgb,var(--kb-amber) 50%,transparent);
}
.entry-content a:not(.button):not(.wp-block-button__link):hover{border-bottom-color:var(--kb-amber)}
.entry-content em{font-style:italic}
.entry-content strong{color:var(--kb-ink)}

/* ============================================================
   3. HEADER (Kadence header builder: cream bar, ink nav,
      amber-underline hovers, dropdown panels, pill button)
   ============================================================ */
#masthead,
#masthead .site-header-upper-wrap,
#masthead .site-header-lower-wrap,
#masthead .site-main-header-inner-wrap,
#masthead .site-header-row-container-inner{background:var(--kb-cream) !important}
#masthead .site-main-header-wrap{border-bottom:1px solid var(--kb-rule)}
/* header + footer content aligns with the 1200px content column */
#masthead .site-container,#colophon .site-container{max-width:1200px}
/* logo lockup: mascot cap-height with the wordmark, per the mockups */
.site-branding img,.site-branding .custom-logo{max-height:32px;width:auto}
.site-branding .site-title{
  font-family:var(--kb-display);
  font-size:1.4375rem;
  letter-spacing:-.02em;
  color:var(--kb-ink);
  /* Young Serif has ONE weight; Kadence's mods set 700 and the browser
     faux-bolds it into a smeared heavier-looking wordmark */
  font-weight:400;
}
.header-navigation .header-menu-container > ul > li > a{
  font-family:var(--kb-sans);
  font-size:.9375rem;
  font-weight:600;
  color:var(--kb-ink);
  box-shadow:inset 0 -2px 0 transparent;
  transition:box-shadow .16s ease;
}
.header-navigation .header-menu-container > ul > li > a:hover,
.header-navigation .header-menu-container > ul > li.current-menu-item > a,
.header-navigation .header-menu-container > ul > li.current-menu-ancestor > a{
  box-shadow:inset 0 -2px 0 var(--kb-amber);
  color:var(--kb-ink);
}
/* dropdown panel. Selectors mirror Kadence's dynamic inline CSS
   (.header-menu-container ul ul…) — same specificity, this sheet
   loads later and wins. Anything shorter loses to the dynamic ink
   panel (palette3 bg, palette8 links, 12px). */
.header-navigation .header-menu-container ul ul.sub-menu{
  background:var(--kb-cream);
  border:1px solid var(--kb-rule);
  border-radius:10px;
  box-shadow:var(--kb-shadow-pop);
  padding:9px;
  min-width:252px;
}
.header-navigation .header-menu-container ul ul li.menu-item > a{
  border-radius:8px;
  font-size:.90625rem;
  font-weight:600;
  color:var(--kb-ink);
  padding:9px 13px;
  width:auto;
}
.header-navigation .header-menu-container ul ul li.menu-item > a:hover,
.header-navigation .header-menu-container ul ul li.menu-item.current-menu-item > a{
  background:var(--kb-cream-2);
  color:var(--kb-amber-ink);
}
/* keyboard: Kadence ships a :focus-within open rule, but its nav JS
   adds .menu-item--has-toggle to every parent li at runtime, opting
   them all out of it — this reopens the keyboard path. Hardened for
   the fade reveal modes, which hide via opacity/clip, not display
   (deploy checklist: dropdown reveal must be "none" on production). */
.header-navigation .header-menu-container li.menu-item-has-children:focus-within > ul.sub-menu{
  display:block;opacity:1;visibility:visible;clip:auto;clip-path:none;height:auto;overflow:visible;
}
/* Escape closes a focus-opened submenu (class managed by knowbetta.js) */
.header-navigation li.kb-esc-closed > ul.sub-menu{display:none !important}
/* search toggle */
.search-toggle-open{color:var(--kb-ink)}
.search-toggle-open:hover{color:var(--kb-amber-ink)}
/* search drawer: Kadence's default is a transparent underline field
   (page text bleeds through) with a TEXT submit stacked on top of the
   decorative icon — restyle to the mockup's white pill. */
#search-drawer .drawer-inner{background:rgba(12,20,28,.94)}
#search-drawer .drawer-inner input.search-field{
  font-family:var(--kb-sans);
  background:#fff !important;
  color:var(--kb-ink) !important;
  border:2px solid var(--kb-rule) !important;
  border-radius:10px !important;
  padding:16px 60px 16px 18px !important;
  font-size:1.125rem !important;
}
#search-drawer .drawer-inner input.search-field::placeholder{color:var(--kb-quiet);opacity:1}
#search-drawer .drawer-inner input.search-field:focus{border-color:var(--kb-focus) !important}
/* the text submit stays as the click/AT target (its value names it);
   visually the icon is the button */
#search-drawer .drawer-inner input.search-submit{font-size:0 !important;color:transparent !important;cursor:pointer}
#search-drawer .kadence-search-icon-wrap{color:var(--kb-quiet)}
/* header button — the "Free printables" pill */
.header-button{
  background:var(--kb-ink);
  color:var(--kb-cream);
  border:0;
  border-radius:100px;
  padding:12px 20px;
  font-family:var(--kb-sans);
  font-weight:700;
  font-size:.90625rem;
}
.header-button:hover{background:var(--kb-ink-hover);color:var(--kb-cream)}
/* mobile drawer */
#mobile-drawer .drawer-inner{background:var(--kb-ink)}
#mobile-drawer a,
#mobile-drawer .drawer-nav-drop-wrap a{
  font-family:var(--kb-sans);
  color:var(--kb-on-dark) !important;
}
#mobile-drawer .drawer-nav-drop-wrap a{border-bottom:1px solid rgba(255,255,255,.08)}
#mobile-drawer a:hover,
#mobile-drawer .drawer-nav-drop-wrap a:hover{color:var(--kb-amber) !important}
/* mobile header CTA pill: ink, matching desktop (old mods paint it blue) */
.mobile-header-button,a.button.mobile-header-button{
  background:var(--kb-ink) !important;color:var(--kb-cream) !important;
  border:0;border-radius:100px;font-family:var(--kb-sans);font-weight:700;
}
.mobile-header-button:hover{background:var(--kb-ink-hover) !important}
/* mobile header fit: at phone widths the pill + search + toggle overflow
   the row and push the hamburger off-screen (unreachable at 360px).
   Shrink the pill to one line; below 480px the drawer's own
   Free-printables item carries the CTA. Toggles get 44px targets. */
#mobile-header .mobile-header-button{white-space:nowrap;font-size:.875rem;padding:8px 14px}
@media(max-width:479px){
  #mobile-header .mobile-header-button-wrap{display:none}
}
@media(max-width:374px){
  #mobile-header .site-container{padding:0 16px}
}
#mobile-header .search-toggle-open{min-width:44px;min-height:44px}
#mobile-header .menu-toggle-open,
#mobile-header .mobile-toggle-open{min-width:44px;min-height:44px}

/* nav text: ink, per the mockups. Kadence's dynamic CSS colors the
   top-level anchors palette5 (quiet gray) at (3,3) specificity —
   this (4,3) selector beats it; the kb-dark-header white override
   below ties it at (4,3) and wins on source order. The dropdown
   label span gets inherit, not ink, so it follows its anchor on the
   dark homepage header too. */
.header-navigation .header-menu-container ul a{color:var(--kb-ink)}
.header-navigation .header-menu-container.primary-menu-container > ul > li.menu-item > a{color:var(--kb-ink)}
.header-navigation .nav-drop-title-wrap{color:inherit}

/* Kadence chrome: scroll-to-top + search drawer icon */
.kadence-scroll-to-top{
  background:var(--kb-ink) !important;color:var(--kb-cream) !important;
  border-color:var(--kb-ink) !important;
}
.kadence-scroll-to-top:hover{background:var(--kb-ink-hover) !important;color:var(--kb-cream) !important}

/* article Sources accordion (legacy content block). cursor here, not
   in the fallback scope — kadence-blocks' CSS ships none and the
   headers are <button>s (default arrow cursor) on production too. */
.kt-blocks-accordion-header{color:var(--kb-ink) !important;font-family:var(--kb-sans);cursor:pointer}

/* page-title hero band: ink behind the image/overlay (old mods paint
   the inner container pale blue) */
.page .entry-hero-container-inner,
.single .entry-hero-container-inner{background-color:var(--kb-ink) !important}

/* the tagline never appears in the approved header lockup */
.site-branding .site-description{display:none}

/* transparent/dark header variant for the front page hero.
   !important: kadence-header.min.css loads on demand after this
   sheet and re-asserts position/background on the header chain. */
.kb-dark-header.kb-dark-header #masthead{position:absolute !important;top:0;left:0;right:0;z-index:30;background:transparent !important}
.kb-dark-header.kb-dark-header #masthead .site-header-upper-wrap,
.kb-dark-header.kb-dark-header #masthead .site-header-lower-wrap,
.kb-dark-header.kb-dark-header #masthead .site-header-row-container-inner,
.kb-dark-header.kb-dark-header #masthead .site-main-header-inner-wrap,
.kb-dark-header.kb-dark-header #masthead .site-header-row{background:transparent !important}
.kb-dark-header.kb-dark-header #masthead .site-main-header-wrap{border-bottom:0}
.kb-dark-header.kb-dark-header .site-branding .site-title,
.kb-dark-header.kb-dark-header .header-navigation .header-menu-container > ul > li > a,
.kb-dark-header.kb-dark-header .search-toggle-open{color:#fff}
.kb-dark-header.kb-dark-header .site-branding .site-title{color:var(--kb-amber)}
.kb-dark-header.kb-dark-header .header-button{background:#fff;color:var(--kb-ink)}
.kb-dark-header.kb-dark-header .header-button:hover{background:var(--kb-cream)}

/* ============================================================
   4. FOOTER (Kadence footer builder: ink, three columns)
   ============================================================ */
#colophon{background:var(--kb-ink);color:var(--kb-foot-muted)}
#colophon .site-footer-wrap{border-top:1px solid rgba(255,255,255,.1)}
#colophon .widget-title,#colophon h2{
  font-family:var(--kb-sans);
  font-weight:700;
  font-size:.6875rem;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:var(--kb-foot-muted);
}
#colophon a{color:var(--kb-on-dark-body);text-decoration:none;font-size:.9375rem}
#colophon a:hover{color:var(--kb-amber)}
#colophon .footer-html,#colophon p{font-size:.90625rem;line-height:1.6}
#colophon .site-title{color:var(--kb-amber);font-family:var(--kb-display)}
/* bottom row: hairline divider, left-aligned copyright (mockup) */
#colophon .site-bottom-footer-wrap .site-container{border-top:1px solid #1D2833;padding-top:24px}
#colophon .footer-html,#colophon .footer-html-inner{text-align:left;font-size:.8125rem;color:var(--kb-foot-muted)}
#colophon .kb-foot-links{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
#colophon .kb-foot-brand p{margin-top:14px;max-width:34ch;line-height:1.6}

/* ============================================================
   5. SINGLE POST — dark split hero (child entry_hero.php)
   ============================================================ */
.kb-ahero{background:var(--kb-ink);color:var(--kb-on-dark)}
.kb-ahero .kb-ahero-inner{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:clamp(28px,4vw,56px);
  align-items:center;
  padding:clamp(40px,5vw,68px) var(--global-content-edge-padding,1.5rem);
  max-width:var(--global-content-width,1200px);
  margin-inline:auto;
}
@media(max-width:820px){
  .kb-ahero .kb-ahero-inner{grid-template-columns:1fr}
  .kb-ahero figure{order:-1}
}
.kb-ahero .kb-crumb{
  display:flex;gap:10px;align-items:center;flex-wrap:wrap;
  font-family:var(--kb-sans);font-size:.8125rem;
  color:var(--kb-on-dark-quiet);margin-bottom:20px;
}
.kb-ahero .kb-crumb a{color:var(--kb-on-dark-quiet);text-decoration:none}
.kb-ahero .kb-crumb a:hover{color:#fff}
.kb-ahero .kb-chip{
  display:inline-block;background:rgba(245,167,9,.16);color:var(--kb-amber);
  font-family:var(--kb-sans);font-weight:700;font-size:.6875rem;
  letter-spacing:.13em;text-transform:uppercase;
  padding:6px 12px;border-radius:100px;text-decoration:none;
}
.kb-ahero .kb-chip:hover{background:rgba(245,167,9,.28)}
.kb-ahero h1{color:#fff;font-size:clamp(2.1rem,4.2vw,3.35rem);line-height:1.05;margin:14px 0 0}
.kb-ahero .kb-deck{font-size:1.1875rem;color:var(--kb-on-dark-quiet);margin-top:18px;max-width:38ch;line-height:1.55}
.kb-ahero .kb-byline{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:28px;
  font-family:var(--kb-sans);font-size:.875rem;color:var(--kb-on-dark-quiet);
}
.kb-ahero .kb-byline .kb-who{display:flex;align-items:center;gap:10px;color:#fff;font-weight:600}
.kb-ahero .kb-byline .kb-who img{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.08)}
.kb-ahero .kb-byline .kb-dot{width:3px;height:3px;border-radius:50%;background:var(--kb-faint)}
.kb-ahero figure{margin:0}
.kb-ahero figure img{
  width:100%;border-radius:8px;aspect-ratio:4/3;object-fit:cover;
  box-shadow:0 24px 60px -30px rgba(0,0,0,.7);
}
.kb-ahero figcaption{font-family:var(--kb-sans);font-size:.75rem;color:var(--kb-faint);margin-top:10px}

/* ---------- article reading column ---------- */
.single-post .content-area{padding-top:clamp(40px,5vw,72px)}
/* Kadence's narrow-content mode caps this at 842px — the article layout
   (rail + measure) manages its own width, so give it the full container */
.single-post .content-container.site-container{max-width:1290px !important}
.single-post .entry-content{font-size:1.1875rem;line-height:1.7}
.single-post .entry-content > *{max-width:var(--kb-article-measure);margin-left:auto;margin-right:auto}
.single-post .entry-content > .alignwide{max-width:58rem}
.single-post .entry-content > .alignfull{max-width:none}
.single-post .entry-content h2{font-size:clamp(1.6rem,2.6vw,2.1rem);margin:1.9em auto .55em;scroll-margin-top:24px}
.single-post .entry-content h3{font-size:1.375rem;margin:1.6em auto .5em;scroll-margin-top:24px}
/* h4/h5 need their own steps — Kadence's defaults render them at h3 size */
.single-post .entry-content h4{font-size:1.125rem;margin:1.4em auto .5em;scroll-margin-top:24px}
.single-post .entry-content h5{font-size:1rem;margin:1.3em auto .4em}
/* drop cap: knowbetta.js tags the first substantial prose paragraph in
   reading order (.kb-dropcap) — :first-of-type only saw direct children
   and drop-capped mid-article paragraphs on row-block-led posts */
.single-post .entry-content .kb-dropcap::first-letter{
  font-family:var(--kb-display);float:left;font-size:3.6rem;line-height:.82;
  padding:6px 10px 0 0;color:var(--kb-ink);
}
.single-post .entry-content ul li{margin-bottom:.65em}
.single-post .entry-content sup{
  color:var(--kb-amber-ink);font-family:var(--kb-sans);font-weight:700;font-size:.62em;
}
.single-post .entry-content > ul li::marker{color:var(--kb-amber)}
.single-post .entry-content sup a{
  color:var(--kb-amber-ink);font-family:var(--kb-sans);font-weight:700;
  text-decoration:none;border-bottom:0;
  /* citation links are ~12px — pad the hit area without shifting text */
  padding:6px 3px;margin:-6px -2px;
}
.single-post .entry-content figure figcaption{
  font-family:var(--kb-sans);font-size:.8125rem;color:var(--kb-quiet);
  margin-top:10px;padding-left:14px;border-left:2px solid var(--kb-amber);text-align:left;
}
.single-post .entry-content img{border-radius:8px}

/* One ToC system everywhere (Annie, 2026-08-19): the theme's H2-built
   rail (kb-rail-layout, §5b below) runs on ALL posts. Existing Kadence
   ToC blocks are retired by JS; the restyled block remains only as the
   no-JS fallback. Do NOT reintroduce a second grid path — the dual-path
   divergence caused the launch-day spacing bug. */
.kb-toc-retired{display:none !important}
/* old-theme rows carry their own large vertical padding; this design's
   rhythm comes from margins — strip it (boxes get the standard padding
   back from the kb-box rules, which are !important too and later) */
.single-post .entry-content .kb-row-layout-wrap:not(.kb-box) > .kt-row-column-wrap{
  padding-top:0 !important;padding-bottom:0 !important;
}
.single-post .entry-content > .kb-row-layout-wrap{margin-bottom:1.35em}
.kb-tocrow-emptied > .kt-row-column-wrap{padding:0 !important}
/* Kadence ToC block → the quiet rail. !important throughout: the
   block ships per-block inline CSS (boxed panel, bullets, dividers,
   its own fonts) from the old theme's block settings — the content
   stays untouched, the theme rewrites the presentation. */
.single-post .wp-block-kadence-tableofcontents,
.single-post .wp-block-kadence-tableofcontents .kb-table-of-content-wrap{
  background:none !important;border:0 !important;padding:0 !important;
  box-shadow:none !important;max-width:none !important;
}
.wp-block-kadence-tableofcontents .kb-table-of-contents-title{
  font-family:var(--kb-sans) !important;font-size:.6875rem !important;font-weight:700;
  letter-spacing:.15em;text-transform:uppercase;color:var(--kb-quiet) !important;
}
.wp-block-kadence-tableofcontents .kb-table-of-contents-icon-trigger{display:none !important}
.wp-block-kadence-tableofcontents .kb-table-of-content-list{
  list-style:none !important;padding:0 !important;margin:14px 0 0 !important;
}
.wp-block-kadence-tableofcontents .kb-table-of-content-list li{
  margin:0 !important;padding:0 !important;border:0 !important;list-style:none !important;
}
.wp-block-kadence-tableofcontents .kb-table-of-content-list li::marker{content:""}
.wp-block-kadence-tableofcontents .kb-table-of-content-list a{
  display:block;font-family:var(--kb-sans) !important;font-size:.875rem !important;line-height:1.35;
  color:var(--kb-quiet) !important;text-decoration:none !important;padding:7px 0 7px 20px !important;
  border:0 !important;border-left:2px solid var(--kb-rule) !important;
  transition:color .15s ease,border-color .15s ease;
}
.wp-block-kadence-tableofcontents .kb-table-of-content-list a:hover{color:var(--kb-ink) !important}
.wp-block-kadence-tableofcontents .kb-table-of-content-list a[aria-current],
.wp-block-kadence-tableofcontents .kb-table-of-content-list li.kb-active > a{
  color:var(--kb-ink) !important;border-left-color:var(--kb-amber) !important;font-weight:600;
}
/* the two-column row the ToC was relocated out of: give the intro the
   full measure again */
.kb-tocrow-emptied .kt-row-column-wrap{display:block !important}
.kb-tocrow-emptied .wp-block-kadence-column{width:100% !important;max-width:none !important}

/* author band (child entry_author.php) — full-bleed ink, per the mockups */
.kb-authorband{
  background:var(--kb-ink);margin-top:clamp(40px,5vw,64px);
  width:100vw;margin-left:calc(50% - 50vw);
}
.kb-authorband-inner{
  max-width:920px;margin-inline:auto;
  display:grid;grid-template-columns:auto 1fr;gap:32px;align-items:center;
  padding:clamp(40px,5vw,64px) var(--global-content-edge-padding,1.5rem);
}
@media(max-width:640px){.kb-authorband-inner{grid-template-columns:1fr;gap:20px}}
.kb-authorband .kb-pic{
  width:104px;height:104px;border-radius:50%;background:rgba(255,255,255,.07);
  display:grid;place-items:center;
}
.kb-authorband .kb-pic img{width:78%}
.kb-authorband .kb-kicker-a{
  font-family:var(--kb-sans);font-weight:700;font-size:.6875rem;letter-spacing:.15em;
  text-transform:uppercase;color:var(--kb-amber);display:block;margin-bottom:10px;
}
.kb-authorband h2{color:#fff;font-size:1.6rem;margin:0}
.kb-authorband p{color:var(--kb-on-dark-quiet);font-size:1rem;margin-top:12px;max-width:60ch}
.kb-authorband a{
  font-family:var(--kb-sans);font-weight:700;font-size:.9375rem;color:#fff;
  text-decoration:none;border-bottom:2px solid var(--kb-amber);padding-bottom:2px;
  display:inline-block;margin-top:16px;
}
.kb-authorband a:hover{color:var(--kb-amber)}

/* related posts ("Keep reading"): flat cards on cream, per the mockup.
   Markup is the child's static entry_related.php (no splide carousel). */
.entry-related{background:var(--kb-cream);border-top:0;margin:0 !important;padding:clamp(40px,5vw,64px) 0 !important}
/* the related band closes the page — no extra content-area tail */
.single-post .content-area,.single-post #main{padding-bottom:0 !important;margin-bottom:0 !important}
.entry-related .entry-related-inner-content{
  max-width:min(1200px,100%) !important;
  margin:0 auto !important;padding:0 !important;
}
.kb-related-grid{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(3,1fr);gap:30px;
}
.kb-related-grid > li{margin:0}
@media(max-width:860px){.kb-related-grid{grid-template-columns:1fr}}
.entry-related .post-thumbnail img{width:100%;aspect-ratio:3/2;object-fit:cover}
/* mockup card = image + kicker + title only */
.entry-related .entry-summary,
.entry-related .entry-footer{display:none}
/* heading row: title left, "All … guides →" right, per the mockup */
.entry-related .kb-related-head{
  display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px 20px;
  margin-bottom:34px;
}
.entry-related .kb-related-head .entry-related-title{margin:0}
.kb-related-all{
  font-family:var(--kb-sans);font-weight:700;font-size:.9375rem;color:var(--kb-amber-ink);
  text-decoration:none;white-space:nowrap;border-bottom:2px solid var(--kb-amber);padding-bottom:2px;
}
.kb-related-all:hover{color:var(--kb-ink)}
.entry-related .entry-related-title{font-size:clamp(1.6rem,3vw,2.2rem)}
.entry-related .entry.loop-entry{background:none;border:0;border-radius:0;overflow:visible;box-shadow:none}
.entry-related .post-thumbnail img{border-radius:8px}
.entry-related .entry-title{font-size:1.25rem;line-height:1.2;margin-top:14px}
.entry-related .entry-title a{text-decoration:none}
.entry-related .entry-title a:hover{color:var(--kb-amber-ink)}
.entry-related .entry-meta{display:none}
/* search/paged: WP pagination markup nests items in .nav-links */
.pagination .nav-links{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center}

/* ============================================================
   6. BLOCK STYLES (registered in functions.php; authored with
      the block editor — the article system from the mockups)
   ============================================================ */
/* (the legacy ink At-a-Glance treatment was retired 2026-08-19 —
   Annie standardized ALL legacy boxed sections, At-a-Glance included,
   on the cream-2 .kb-box card below. is-style-key-facts remains as an
   editor choice for new content.) */

/* group: is-style-key-facts — the ink At-a-Glance card */
.is-style-key-facts{
  background:var(--kb-ink);color:var(--kb-on-dark-quiet);
  border-radius:12px;padding:clamp(24px,3vw,34px);
}
.is-style-key-facts h2,.is-style-key-facts h3{color:#fff;margin-top:0}
.is-style-key-facts strong{color:#fff}
.is-style-key-facts ul{list-style:none;padding:0;margin:18px 0 0;display:flex;flex-direction:column;gap:14px}
.is-style-key-facts li{font-size:1rem;line-height:1.55;padding-left:20px;position:relative}
.is-style-key-facts li::before{
  content:"";position:absolute;left:0;top:.6em;width:7px;height:7px;
  border-radius:50%;background:var(--kb-amber);
}
.is-style-key-facts a{color:#fff !important;border-bottom-color:color-mix(in srgb,var(--kb-amber) 55%,transparent) !important}
.is-style-key-facts a:hover{border-bottom-color:var(--kb-amber) !important}

/* group: is-style-short-answer — featured-snippet box */
.is-style-short-answer{
  background:#fff;border:1px solid var(--kb-rule);border-left:4px solid var(--kb-amber);
  border-radius:10px;padding:22px 26px;
}
.is-style-short-answer p{font-size:1.125rem;line-height:1.6;margin:0}
.is-style-short-answer p + p{margin-top:.8em}

/* group: is-style-callout — the amber note/tip/warning box */
.is-style-callout{
  background:var(--kb-callout-bg);border:1px solid var(--kb-callout-border);border-left:4px solid var(--kb-amber);
  border-radius:8px;padding:20px 24px;
  font-family:var(--kb-sans);font-size:1rem;line-height:1.55;color:var(--kb-callout-text);
}
.is-style-callout strong{color:var(--kb-callout-strong)}

/* table: is-style-editorial — ink header, zebra rows */
.wp-block-table.is-style-editorial{border:1px solid var(--kb-rule);border-radius:10px;overflow-x:auto;overflow-y:hidden;background:#fff}
.wp-block-table.is-style-editorial table{border-collapse:collapse;font-family:var(--kb-sans);font-size:.9375rem;border:0}
/* WP core draws a 3px gray thead divider — invisible on the old ink
   header, jarring under the bronze one */
.wp-block-table.is-style-editorial thead{border-bottom:0}
.wp-block-table.is-style-editorial thead th{
  background:var(--kb-table-head);color:var(--kb-cream);text-align:left;font-weight:700;
  padding:12px 16px;font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase;border:0;
}
.wp-block-table.is-style-editorial tbody td{padding:13px 16px;border:0;border-top:1px solid var(--kb-rule);vertical-align:top;line-height:1.5}
.wp-block-table.is-style-editorial tbody tr:nth-child(even){background:var(--kb-table-zebra)}

/* list: is-style-protocol — numbered steps with display numerals */
ol.is-style-protocol{list-style:none;padding:0;margin:1.4em 0 0;border-top:1px solid var(--kb-rule);counter-reset:kbst}
ol.is-style-protocol > li{
  display:grid;grid-template-columns:52px 1fr;gap:18px;align-items:baseline;
  padding:18px 0;border-bottom:1px solid var(--kb-rule);counter-increment:kbst;margin:0;
}
ol.is-style-protocol > li::before{
  content:"0" counter(kbst);font-family:var(--kb-display);
  font-size:1.5rem;color:var(--kb-amber-ink);line-height:1;
}

/* paragraph: is-style-readmore — inline read-more nudge */
.is-style-readmore{
  font-family:var(--kb-sans);font-size:.9375rem !important;background:var(--kb-cream-2);
  border-radius:8px;padding:14px 18px;line-height:1.5;
}
.is-style-readmore strong,.is-style-readmore b{
  font-weight:700;color:var(--kb-quiet);text-transform:uppercase;
  font-size:.6875rem;letter-spacing:.1em;margin-right:6px;
}

/* legacy boxed sections (Quick Answer / Key Takeaways / Quick Recap /
   Checklist / At-a-Glance …): knowbetta.js tags any row-layout carrying
   a background — palette class OR per-block inline CSS — as .kb-box.
   The plugin CSS that supplies row padding never loads for this
   content, and inner layers stack their own padding + the article h2
   margin, so everything is normalized to ONE cream-2 card standard
   (Annie's directive: the Quick Answer look is the standard). */
.single-post .kb-box{
  background:var(--kb-cream-2) !important;border-radius:12px;overflow:hidden;
  border:0 !important; /* old-theme block attrs draw an amber border on live */
}
.single-post .kb-box .kt-row-column-wrap,
.single-post .kb-box .kt-inside-inner-col{background:none !important;border:0 !important}
.single-post .kb-box > .kt-row-column-wrap{padding:clamp(24px,3vw,34px) !important}
.single-post .kb-box .kt-inside-inner-col{padding:0 !important}
.single-post .kb-box :is(p,li){color:var(--kb-body) !important}
.single-post .kb-box :is(h2,h3,h4,strong){color:var(--kb-ink) !important}
.single-post .kb-box a:not(.kb-button){color:var(--kb-amber-ink) !important}
.single-post .kb-box .kt-inside-inner-col > :first-child{margin-top:0 !important}
.single-post .kb-box .kt-inside-inner-col > :last-child{margin-bottom:0 !important}

/* article CTA buttons (Kadence button blocks): design-system amber pill
   — the per-block inline CSS ships a 3px radius and thin padding */
.single-post .entry-content .kb-button{
  background:var(--kb-amber) !important;color:var(--kb-on-amber) !important;
  border-radius:100px !important;border:0 !important;
  font-family:var(--kb-sans);font-weight:700;font-size:.96875rem;
  padding:14px 24px !important;text-decoration:none;
}
.single-post .entry-content .kb-button:hover{
  background:var(--kb-amber-hover) !important;color:var(--kb-on-amber) !important;
}

/* article callout (JS tags whole-<em> paragraphs) — the amber note box */
.single-post .kb-callout{
  background:var(--kb-callout-bg);border:1px solid var(--kb-callout-border);border-left:4px solid var(--kb-amber);
  border-radius:8px;padding:20px 24px !important;
  font-family:var(--kb-sans);font-size:1rem !important;line-height:1.55;color:var(--kb-callout-text);
}
.single-post .kb-callout em{color:inherit}

/* article tables get the editorial treatment automatically */
.single-post .entry-content .wp-block-table,
.single-post .entry-content figure.wp-block-table{
  border:1px solid var(--kb-rule);border-radius:10px;overflow-x:auto;overflow-y:hidden;background:#fff;
}
.single-post .entry-content .wp-block-table table{border-collapse:collapse;font-family:var(--kb-sans);font-size:.9375rem;border:0;margin:0}
.single-post .entry-content .wp-block-table thead{border-bottom:0}
.single-post .entry-content .wp-block-table thead th,
.single-post .entry-content .wp-block-table tr:first-child th{
  background:var(--kb-table-head);color:var(--kb-cream);text-align:left;font-weight:700;
  padding:12px 16px;font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase;border:0;
}
.single-post .entry-content .wp-block-table td{padding:13px 16px;border:0;border-top:1px solid var(--kb-rule);vertical-align:top;line-height:1.5}
.single-post .entry-content .wp-block-table tbody tr:nth-child(even){background:var(--kb-table-zebra)}
/* core's "Stripes" table style (saved in old content) paints odd rows
   flat #f0f0f0 and adds its own bottom border — neutralize both so the
   white/zebra rhythm holds */
.single-post .entry-content .wp-block-table.is-style-stripes{border-bottom:1px solid var(--kb-rule)}
.single-post .entry-content .wp-block-table.is-style-stripes tbody tr:nth-child(odd){background-color:#fff}
.single-post .entry-content .wp-block-table.is-style-stripes tbody tr:nth-child(even){background-color:var(--kb-table-zebra)}

/* accordion fallback: honor closed state (scoped to .kb-acc-fallback
   so Kadence's own assets never double up) */
.kb-acc-fallback .kt-accordion-panel-hidden{display:none}

/* accordion toggle icon: a real chevron arrow. The block's per-post
   inline CSS (kt-accordion-id… selectors, shipped inside the content
   on live too) paints the trigger's pseudo-elements as solid #555
   bars — a filled square that reads as a diamond under the chevron —
   so the backgrounds and the second bar need !important kills. */
.single-post .kt-blocks-accordion-header .kt-blocks-accordion-icon-trigger{
  width:14px;height:14px;position:relative;flex:none;background:none !important;
}
.single-post .kt-blocks-accordion-header .kt-blocks-accordion-icon-trigger::before{
  content:"" !important;position:absolute;inset:0;margin:auto;width:9px !important;height:9px !important;
  background:none !important;
  border-right:2px solid var(--kb-amber-ink);border-bottom:2px solid var(--kb-amber-ink);
  transform:rotate(45deg) translateY(-2px);transition:transform .18s ease;
}
.single-post .kt-blocks-accordion-header .kt-blocks-accordion-icon-trigger::after{display:none !important}
.single-post .kt-blocks-accordion-header[aria-expanded="true"] .kt-blocks-accordion-icon-trigger::before,
.single-post .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger::before{
  transform:rotate(225deg) translateY(-2px);
}

/* Sources accordion: quiet panel, amber number chips */
.single-post .wp-block-kadence-accordion .kt-accordion-pane{border:1px solid var(--kb-rule);border-radius:10px;overflow:hidden}
/* breathing room between stacked panes (FAQ), per the pillar mockup */
.single-post .kt-accordion-inner-wrap .kt-accordion-pane + .kt-accordion-pane{margin-top:12px}
.single-post .kt-accordion-pane .kt-accordion-header-wrap{margin:0}
.single-post .kt-blocks-accordion-header{
  background:var(--kb-cream-2) !important;border:0 !important;
  width:100%;display:flex;justify-content:space-between;align-items:center;
  padding:16px 20px !important;font-size:1.1875rem;text-align:left;
  transition:background-color .16s ease;
}
.single-post .kt-blocks-accordion-header:hover{
  background:color-mix(in srgb,var(--kb-cream-2) 92%,var(--kb-ink)) !important;
}
.single-post .kt-accordion-panel-inner{background:#fff}
.single-post .kt-accordion-panel-inner ol{
  list-style:none;counter-reset:kbs;padding:0;margin:0;
  display:flex;flex-direction:column;gap:10px;
}
.single-post .kt-accordion-panel-inner ol li{
  counter-increment:kbs;font-family:var(--kb-sans);font-size:.875rem;line-height:1.5;
  color:var(--kb-quiet);padding-left:30px;position:relative;margin:0;
}
.single-post .kt-accordion-panel-inner ol li::before{
  content:counter(kbs);position:absolute;left:0;top:0;width:20px;height:20px;
  background:var(--kb-cream-2);border-radius:4px;font-size:.6875rem;font-weight:700;
  color:var(--kb-amber-ink);display:grid;place-items:center;
}

/* article sticky rail (theme JS builds it from the H2s) */
@media(min-width:1041px){
  .single-post.kb-rail-layout .entry-content{
    display:grid;grid-template-columns:210px minmax(0,var(--kb-article-measure));
    gap:0 clamp(56px,6vw,96px);justify-content:center;max-width:none;
  }
  .single-post.kb-rail-layout .entry-content > *{grid-column:2;max-width:none;margin:0 0 1.35em}
  .single-post.kb-rail-layout .entry-content > h2{margin:1.4em 0 .55em}
  .single-post.kb-rail-layout .entry-content > h3{margin:1.1em 0 .5em}
  .single-post.kb-rail-layout .entry-content > .kb-box{margin-bottom:2em}
  .single-post.kb-rail-layout .entry-content > .kb-toc-rail{
    grid-column:1;grid-row:1 / span 500;position:sticky;top:28px;align-self:start;margin:0;
  }
}

/* ============================================================
   7. ARCHIVES (child archive.php + entry.php: ink hero, chips,
      card grid, symptom-first variant for Diseases)
   ============================================================ */
.kb-chero{background:var(--kb-ink);color:var(--kb-on-dark)}
/* archive/posts breadcrumb: quiet on ink (unstyled it inherited the
   amber-ink link color — unreadable on the dark hero — and no gap) */
.kb-chero .kb-crumb{
  display:flex;gap:10px;align-items:center;flex-wrap:wrap;
  font-family:var(--kb-sans);font-size:.8125rem;
  color:var(--kb-on-dark-quiet);margin-bottom:20px;
}
.kb-chero .kb-crumb a{color:var(--kb-on-dark-quiet);text-decoration:none}
.kb-chero .kb-crumb a:hover{color:#fff}
.kb-chero-inner{
  max-width:var(--global-content-width,1200px);margin-inline:auto;
  padding:clamp(44px,6vw,76px) var(--global-content-edge-padding,1.5rem);
}
.kb-chero h1{color:#fff;font-size:clamp(2.4rem,5vw,4rem);line-height:1.02;margin:0}
.kb-chero .kb-dek{font-size:1.1875rem;color:var(--kb-on-dark-quiet);margin-top:18px;max-width:54ch;line-height:1.55}
.kb-chero .kb-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:26px;font-size:.875rem;color:var(--kb-on-dark-quiet)}
.kb-chero .kb-meta b{color:#fff}
.kb-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.kb-chips a{
  font-family:var(--kb-sans);font-size:.875rem;font-weight:700;text-decoration:none;
  color:var(--kb-on-dark-quiet);border:1.5px solid rgba(255,255,255,.28);
  border-radius:100px;padding:9px 18px;transition:border-color .15s ease,color .15s ease;
}
.kb-chips a:hover{border-color:var(--kb-amber);color:#fff}
.kb-chips a[aria-current]{background:var(--kb-amber);border-color:var(--kb-amber);color:var(--kb-on-amber)}

#archive-container.kb-grid{
  list-style:none;padding:clamp(44px,6vw,72px) var(--global-content-edge-padding,1.5rem);
  margin:0 auto;max-width:var(--global-content-width,1200px);
  display:grid;grid-template-columns:repeat(3,1fr);gap:34px 30px;
}
@media(max-width:960px){#archive-container.kb-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){#archive-container.kb-grid{grid-template-columns:1fr}}
.kb-card{margin:0}
.kb-card > a{text-decoration:none;display:block;border-bottom:0}
.kb-card .kb-shot{overflow:hidden;border-radius:8px}
.kb-card .kb-shot img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:0;transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.kb-card > a:hover .kb-shot img{transform:scale(1.05)}
.kb-card .kb-k{
  font-family:var(--kb-sans);font-weight:700;font-size:.6875rem;letter-spacing:.13em;
  text-transform:uppercase;color:var(--kb-amber-ink);margin-top:16px;display:block;
}
.kb-card h3{font-size:1.25rem;margin-top:8px;line-height:1.2}
.kb-card > a:hover h3{color:var(--kb-amber-ink)}
.kb-card .kb-cdek{font-size:.9375rem;color:var(--kb-quiet);margin-top:8px;line-height:1.5}
.kb-card .kb-date{display:block;font-family:var(--kb-sans);font-size:.8125rem;color:var(--kb-quiet);margin-top:10px}

/* Diseases: symptom-first two-up white cards */
.category-diseases #archive-container.kb-grid{grid-template-columns:1fr 1fr}
@media(max-width:820px){.category-diseases #archive-container.kb-grid{grid-template-columns:1fr}}
.category-diseases .kb-card > a{
  background:#fff;border:1px solid var(--kb-rule);border-radius:12px;overflow:hidden;
  transition:border-color .2s ease,transform .2s ease;
}
.category-diseases .kb-card > a:hover{border-color:var(--kb-amber);transform:translateY(-3px)}
.category-diseases .kb-card .kb-shot{border-radius:0}
.category-diseases .kb-card .kb-shot img{aspect-ratio:16/9}
.category-diseases .kb-card .kb-t{display:block;padding:24px 26px 28px}
.kb-sym{display:block;font-family:var(--kb-sans);font-weight:700;font-size:.9375rem;color:var(--kb-amber-ink);line-height:1.4}
.kb-sym::before{
  content:"Looks like:";display:block;font-size:.6875rem;letter-spacing:.13em;
  text-transform:uppercase;color:var(--kb-quiet);margin-bottom:4px;
}
.category-diseases .kb-card h3{font-size:1.375rem;margin-top:12px}

/* ------------------------------------------------------------
 * Pillar pages (block-built category landing pages, Annie 2026-08-19).
 * The archive components render as ordinary blocks inside page
 * content; [kb_guide_grid] outputs ul.kb-guides with the same
 * kb-card markup the archives use. Everything below scopes to the
 * component classes so any page can host them.
 * ---------------------------------------------------------- */
.kb-pillar-main{max-width:var(--global-content-width,1200px);margin-inline:auto;
  padding:clamp(44px,6vw,72px) var(--global-content-edge-padding,1.5rem)}
.kb-guides{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:34px 30px;padding:0;margin:0}
@media(max-width:960px){.kb-guides{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.kb-guides{grid-template-columns:1fr}}
.kb-guides--symptoms{grid-template-columns:1fr 1fr}
@media(max-width:820px){.kb-guides--symptoms{grid-template-columns:1fr}}
.kb-guides--symptoms .kb-card > a{
  background:#fff;border:1px solid var(--kb-rule);border-radius:12px;overflow:hidden;
  transition:border-color .2s ease,transform .2s ease;
}
.kb-guides--symptoms .kb-card > a:hover{border-color:var(--kb-amber);transform:translateY(-3px)}
.kb-guides--symptoms .kb-card .kb-shot{border-radius:0}
.kb-guides--symptoms .kb-card .kb-shot img{aspect-ratio:16/9}
.kb-guides--symptoms .kb-card .kb-t{display:block;padding:24px 26px 28px}
.kb-guides--symptoms .kb-card h3{font-size:1.375rem;margin-top:12px}
/* undo the page-prose link treatment inside the components */
.page .entry-content .kb-guides .kb-card a{color:inherit;border-bottom:0;text-decoration:none}
.page .entry-content .kb-chero a{color:var(--kb-on-dark-quiet);border-bottom:0;text-decoration:none}
.page .entry-content .kb-chero a:hover{color:#fff}
.page .entry-content .kb-vet a{color:inherit;border-bottom:0;text-decoration:underline;text-underline-offset:3px}
.page .entry-content .kb-vet a:hover{color:var(--kb-callout-strong)}
.page .entry-content .kb-path li a{color:var(--kb-ink);border:1px solid var(--kb-rule);text-decoration:none}
.page .entry-content .kb-path li a:hover{border-color:var(--kb-amber)}
.kb-nudge .wp-block-image{margin:0;flex:none}
.kb-chero .wp-block-heading{margin:0}
/* the block layout engine injects 24px block-gap margins between the
   flex row's children — the archive design has none. The figure needs
   (0,3,0): Kadence's own entry-content figure margin outranks two
   classes. */
.kb-nudge .kb-nudge-inner > *{margin-block:0}
.kb-nudge .kb-nudge-inner .wp-block-image{margin:0}
/* re-assert the symptom card's box border (the link-neutralize rule
   above zeroes border-bottom, which is part of the card border) */
.page .entry-content .kb-guides--symptoms .kb-card > a{border:1px solid var(--kb-rule)}
.page .entry-content .kb-guides--symptoms .kb-card > a:hover{border-color:var(--kb-amber)}

/* strips hooked under the category hero */
.kb-vet{background:var(--kb-callout-bg);border-bottom:1px solid var(--kb-callout-border)}
.kb-vet-inner{
  max-width:var(--global-content-width,1200px);margin-inline:auto;
  display:flex;gap:14px;align-items:baseline;flex-wrap:wrap;
  padding:18px var(--global-content-edge-padding,1.5rem);
  font-family:var(--kb-sans);font-size:1rem;line-height:1.55;color:var(--kb-callout-text);
}
.kb-vet b{color:var(--kb-callout-strong)}
.kb-vet a{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.kb-vet a:hover{color:var(--kb-callout-strong)}
.kb-path{background:var(--kb-cream-2);border-bottom:1px solid var(--kb-rule)}
.kb-path-inner{max-width:var(--global-content-width,1200px);margin-inline:auto;padding:clamp(28px,4vw,44px) var(--global-content-edge-padding,1.5rem)}
.kb-path .kb-path-lead{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:22px}
.kb-path h2{font-size:1.375rem;margin:0}
.kb-path .kb-path-lead p{font-family:var(--kb-sans);font-size:.9375rem;color:var(--kb-quiet);margin:0}
.kb-path ol{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;counter-reset:kbp;padding:0;margin:0}
@media(max-width:920px){.kb-path ol{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.kb-path ol{grid-template-columns:1fr}}
.kb-path li{counter-increment:kbp;margin:0}
.kb-path li a{
  display:flex;gap:14px;align-items:baseline;text-decoration:none;padding:14px 16px;
  background:var(--kb-cream);border:1px solid var(--kb-rule);border-radius:10px;height:100%;
  transition:border-color .15s ease,transform .15s ease;
  font-family:var(--kb-sans);font-weight:700;font-size:.9375rem;color:var(--kb-ink);line-height:1.3;
}
.kb-path li a:hover{border-color:var(--kb-amber);transform:translateY(-2px)}
.kb-path li a::before{
  content:"0" counter(kbp);font-family:var(--kb-display);font-size:1.25rem;
  color:var(--kb-amber-ink);flex:none;line-height:1;
}

/* grid lead (Diseases) + grid eyebrow (other categories) */
.kb-grid-lead{margin:0 0 34px}
.kb-grid-lead h2{font-size:clamp(1.5rem,2.6vw,2rem);margin:0}
.kb-grid-lead p{font-family:var(--kb-sans);color:var(--kb-quiet);margin-top:10px;font-size:1rem;max-width:60ch}
.kb-kicker{font-family:var(--kb-sans);font-weight:700;font-size:.6875rem;letter-spacing:.15em;
  text-transform:uppercase;color:var(--kb-quiet)}
.kb-grid-label{display:block;margin:0 0 30px}

/* pre-footer nudge strips (full-bleed) */
.kb-nudge{background:var(--kb-cream-2);border-top:1px solid var(--kb-rule)}
.kb-nudge-inner{
  max-width:1200px;margin-inline:auto;display:flex;flex-wrap:wrap;align-items:center;
  gap:18px 28px;padding:30px var(--global-content-edge-padding,1.5rem);
}
.kb-nudge img{width:44px;height:44px;flex:none}
.kb-nudge p{flex:1;min-width:260px;font-family:var(--kb-sans);font-size:1rem;color:var(--kb-body);margin:0}
.kb-nudge p b{color:var(--kb-ink)}
.kb-nudge-btn,.kb-nudge .wp-block-button__link{
  padding:13px 22px;border-radius:100px;border:none;font-family:var(--kb-sans);font-weight:700;
  font-size:.90625rem;line-height:1.4;text-decoration:none;white-space:nowrap;
}
.kb-nudge--amber-btn .kb-nudge-btn,.kb-nudge--amber-btn .wp-block-button__link{background:var(--kb-amber);color:var(--kb-on-amber)}
.kb-nudge--amber-btn .kb-nudge-btn:hover,.kb-nudge--amber-btn .wp-block-button__link:hover{background:var(--kb-amber-hover)}
.kb-nudge--ink-btn .kb-nudge-btn,.kb-nudge--ink-btn .wp-block-button__link{background:var(--kb-ink);color:var(--kb-cream)}
.kb-nudge--ink-btn .kb-nudge-btn:hover,.kb-nudge--ink-btn .wp-block-button__link:hover{background:var(--kb-ink-hover)}

/* editable-copy slots (synced patterns): the core-block markup a
   pattern emits must land on the same design as the PHP fallbacks */
.kb-vet-inner p{margin:0}
.kb-vet strong{color:var(--kb-callout-strong)}
.kb-nudge p strong{color:var(--kb-ink)}
.kb-nudge .wp-block-buttons,.kb-nudge .wp-block-button{flex:none;margin:0}
.kb-path-inner > .wp-block-heading{margin-bottom:22px}

/* pagination */
.kb-pager,.pagination{
  display:flex;justify-content:center;align-items:center;gap:8px;
  padding-bottom:clamp(40px,5vw,60px);font-family:var(--kb-sans);
}
.pagination .page-numbers{
  font-weight:700;font-size:.9375rem;text-decoration:none;min-width:44px;height:44px;
  display:grid;place-items:center;border-radius:100px;color:var(--kb-body);border:0;background:none;
}
.pagination a.page-numbers:hover{background:var(--kb-cream-2)}
.pagination .page-numbers.current{background:var(--kb-ink);color:var(--kb-cream)}
.pagination .next,.pagination .prev{padding-inline:20px;border:1.5px solid var(--kb-rule)}
.pagination .next:hover,.pagination .prev:hover{border-color:var(--kb-amber);background:none}

/* ============================================================
   8. FRONT PAGE (child front-page.php — classes ported from
      wild-2-immersive.html)
   ============================================================ */
.kb-home{font-size:1.0625rem;line-height:1.6;color:var(--kb-ink)}
.kb-home .kb-wrap{width:100%;max-width:1180px;margin-inline:auto;padding-inline:clamp(24px,3.5vw,40px)}
.kb-home .kb-bleed{width:100vw;margin-left:calc(50% - 50vw)}
.kb-home .kb-kicker{
  font-family:var(--kb-sans);font-weight:700;font-size:.71875rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--kb-amber);
}
.kb-home .kb-kicker--dark{color:var(--kb-quiet)}
.kb-home .kb-btn{
  display:inline-flex;align-items:center;font-family:var(--kb-sans);font-weight:700;
  font-size:.96875rem;text-decoration:none;padding:16px 24px;border-radius:100px;
  transition:transform .16s ease,background .16s ease;border-bottom:0;
}
.kb-home .kb-btn--amber{background:var(--kb-amber);color:var(--kb-on-amber)}
.kb-home .kb-btn--amber:hover{background:var(--kb-amber-hover);transform:translateY(-2px)}
.kb-home .kb-btn--ghost{color:#fff;border:1.5px solid rgba(255,255,255,.5)}
.kb-home .kb-btn--ghost:hover{background:rgba(255,255,255,.14)}

.kb-hero{position:relative;height:min(100vh,880px);height:min(100svh,880px);min-height:600px;display:flex;align-items:flex-end;background:#05090E;overflow:hidden}
.kb-hero > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:64% 46%}
.kb-hero::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(to right,rgba(5,9,14,.9) 0%,rgba(5,9,14,.55) 36%,rgba(5,9,14,0) 68%),
    linear-gradient(to top,rgba(5,9,14,.9) 0%,rgba(5,9,14,.3) 42%,rgba(5,9,14,.45) 100%);
}
.kb-hero .kb-wrap{position:relative;z-index:2;padding-bottom:64px}
.kb-hero h1{color:#fff;font-size:clamp(3rem,8vw,6.6rem);line-height:.96;max-width:13ch;margin:16px 0 0;letter-spacing:-.03em}
.kb-hero p{color:#DCE4E8;font-size:clamp(1.05rem,1.7vw,1.3rem);max-width:46ch;margin-top:24px;line-height:1.5}
.kb-acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}

.kb-passage{padding-block:clamp(64px,8vw,128px)}
.kb-passage--tail{padding-bottom:clamp(64px,8vw,96px)}
.kb-passage .kb-h2-snug{margin-top:12px}
.kb-passage:has(+ .kb-bleed){padding-bottom:clamp(24px,3vw,48px)}
.kb-passage h2{max-width:20ch;font-size:clamp(2.1rem,4.8vw,3.5rem);margin:0}
.kb-passage .kb-kicker{display:block;margin-bottom:16px}
.kb-passage p{color:#4C5765;font-size:1.14rem;line-height:1.68;margin-top:24px;max-width:60ch}
.kb-passage--split .kb-wrap{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(24px,4vw,64px);align-items:center}
.kb-passage--split .kb-leap{margin:0}
.kb-passage--split .kb-leap img{width:100%;mix-blend-mode:multiply}
@media(max-width:860px){
  .kb-passage--split .kb-wrap{grid-template-columns:1fr}
  .kb-passage--split .kb-leap{max-width:360px;margin-inline:auto}
}

.kb-scene{position:relative;min-height:min(94vh,860px);display:flex;align-items:center;overflow:hidden;background:#08111A;color:#fff;padding-block:96px}
.kb-scene > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
#kb-start > img{object-position:0% center}
.kb-scene::after{content:"";position:absolute;inset:0;background:linear-gradient(to right,rgba(8,17,26,.93) 0%,rgba(8,17,26,.7) 42%,rgba(8,17,26,.25) 100%)}
.kb-scene .kb-wrap{position:relative;z-index:2}
.kb-scene h2{color:#fff;font-size:clamp(2.2rem,5vw,3.9rem);max-width:22ch;margin:0}
.kb-scene .kb-dek{color:var(--kb-on-dark-body);font-size:1.1rem;margin-top:16px;max-width:50ch;line-height:1.6}
.kb-scene .kb-kicker{display:block;margin-bottom:16px}
.kb-scene--auto{min-height:auto;padding-block:96px}

.kb-steps{margin-top:48px;max-width:720px;border-top:1px solid rgba(255,255,255,.28)}
.kb-step{
  display:grid;grid-template-columns:66px 1fr auto;gap:24px;align-items:center;
  padding:24px 0;border-bottom:1px solid rgba(255,255,255,.28);text-decoration:none;
  transition:padding-left .2s ease;color:#fff;border-bottom-style:solid;
}
.kb-step:hover{padding-left:12px}
.kb-step .kb-n{font-family:var(--kb-display);font-size:1.8rem;color:var(--kb-amber);line-height:1}
.kb-step h3{font-size:1.42rem;color:#fff;margin:0}
.kb-step p{color:#B9C6CF;font-size:.95rem;margin:4px 0 0}
.kb-step .kb-go{color:var(--kb-amber);font-size:1.4rem;transition:transform .2s ease}
.kb-step:hover .kb-go{transform:translateX(7px)}
@media(max-width:700px){.kb-step{grid-template-columns:46px 1fr}.kb-step .kb-go{display:none}}

.kb-keeper{
  display:flex;gap:16px;align-items:center;border-left:4px solid var(--kb-amber);
  padding:32px;margin-top:48px;max-width:680px;background:rgba(255,255,255,.08);
}
.kb-keeper img{width:54px;height:54px;flex:none}
.kb-keeper p{font-size:1.02rem;line-height:1.55;color:var(--kb-on-dark-body);margin:0}
.kb-keeper b{color:#fff}

.kb-duo{display:grid;grid-template-columns:1fr 1fr}
@media(max-width:860px){.kb-duo{grid-template-columns:1fr}}
.kb-duo > a{
  position:relative;text-decoration:none;overflow:hidden;
  min-height:clamp(360px,44vw,540px);display:flex;align-items:flex-end;color:#fff;border-bottom:0;
}
.kb-duo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.3,1)}
.kb-duo > a:hover img{transform:scale(1.05)}
.kb-duo > a::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(8,17,26,.92) 4%,rgba(8,17,26,.3) 56%,rgba(8,17,26,.1) 100%)}
.kb-duo .kb-t{position:relative;z-index:2;padding:clamp(24px,4vw,48px)}
.kb-duo > a:first-child .kb-t{padding-left:max(clamp(24px,4vw,48px),calc((100vw - 1180px)/2 + clamp(24px,3.5vw,40px)))}
.kb-duo h3{font-size:clamp(1.5rem,2.4vw,2rem);color:#fff;margin:0}
.kb-duo p{color:var(--kb-on-dark-body);font-size:1rem;margin-top:8px;max-width:40ch}
.kb-duo .kb-more{display:inline-block;margin-top:12px;font-family:var(--kb-sans);font-weight:700;font-size:.90625rem;border-bottom:2px solid var(--kb-amber);padding-bottom:2px}

.kb-posts{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:48px}
@media(max-width:900px){.kb-posts{grid-template-columns:1fr}}
.kb-post{text-decoration:none;display:block;border-bottom:0}
.kb-post .kb-shot{overflow:hidden}
.kb-post img{width:100%;aspect-ratio:3/2;object-fit:cover;transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.kb-post:hover img{transform:scale(1.05)}
.kb-post .kb-kicker{display:block;margin-top:16px;color:var(--kb-quiet)}
.kb-post h3{font-size:1.32rem;margin-top:8px;line-height:1.16;color:var(--kb-ink)}
.kb-post:hover h3{color:var(--kb-amber-ink)}

.kb-author{display:grid;grid-template-columns:auto 1fr;gap:32px;align-items:center}
@media(max-width:760px){.kb-author{grid-template-columns:1fr;gap:24px}}
.kb-author .kb-pic{width:140px;height:140px;border-radius:50%;background:rgba(255,255,255,.1);display:grid;place-items:center;flex:none}
.kb-author .kb-pic img{width:78%}
.kb-author h2{font-size:clamp(1.9rem,3.4vw,2.6rem);margin-top:12px;color:#fff;max-width:none}
.kb-author p{color:var(--kb-on-dark-body);max-width:60ch;margin-top:16px;font-size:1.05rem}
.kb-author a{font-family:var(--kb-sans);font-weight:700;border-bottom:2px solid var(--kb-amber);text-decoration:none;padding-bottom:2px;display:inline-block;margin-top:16px;color:#fff}
.kb-author a:hover{color:var(--kb-amber)}

/* homepage author band: cream-2, so it reads as its own section instead
   of blending into the ink footer (two near-identical darks) */
.kb-scene--auto{background:var(--kb-cream-2)}
.kb-scene--auto::after{display:none}
.kb-scene--auto .kb-kicker{color:var(--kb-amber-ink)}
.kb-scene--auto .kb-author h2{color:var(--kb-ink)}
.kb-scene--auto .kb-author p{color:var(--kb-body)}
.kb-scene--auto .kb-author a{color:var(--kb-ink)}
.kb-scene--auto .kb-author a:hover{color:var(--kb-amber-ink)}
.kb-scene--auto .kb-author .kb-pic{background:#fff;border:1px solid var(--kb-rule)}

/* ------------------------------------------------------------
   8b. BLOCK-BUILT HOMEPAGE TWIN (/home-blocks/): maps core-block
   markup onto the same kb-* design. Where the coded template uses
   markup blocks can't express (whole-tile links, bare <img> bg),
   these adaptations restyle the block equivalents.
   ------------------------------------------------------------ */
.page-slug-home-blocks .content-area{padding:0 !important;margin:0 !important}
.page-slug-home-blocks .content-container.site-container{max-width:none !important;padding:0 !important}
.page-slug-home-blocks .entry-content{max-width:none;margin:0}
.page-slug-home-blocks .entry-content > *{max-width:none;margin:0}
.page-slug-home-blocks .entry-hero,.page-slug-home-blocks .entry-header{display:none}
/* kickers are paragraphs in block form */
.kb-home p.kb-kicker{margin:0 0 16px}
/* background images: block <figure> instead of bare <img> */
.kb-home .kb-hero > .wp-block-image,
.kb-home .kb-scene > .wp-block-image{position:absolute;inset:0;margin:0;z-index:0}
.kb-home .kb-hero > .wp-block-image img,
.kb-home .kb-scene > .wp-block-image img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;border-radius:0}
.kb-home .kb-hero > .wp-block-image img{object-position:64% 46%}
.kb-home #kb-start > .wp-block-image img{object-position:0% center}
/* buttons block → kb pill buttons. The kb-btn-- classes land on the
   block WRAPPER, which the coded page's .kb-btn rules also match —
   neutralize the wrapper so only the link renders the pill. */
.kb-home .wp-block-button.kb-btn--amber,
.kb-home .wp-block-button.kb-btn--ghost{background:none !important;border:0 !important;padding:0 !important;transform:none !important;font-size:0}
.kb-home .wp-block-buttons.kb-acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.kb-home .kb-acts .wp-block-button__link{
  display:inline-flex;align-items:center;font-family:var(--kb-sans);font-weight:700;
  font-size:.96875rem;text-decoration:none;padding:16px 24px;border-radius:100px;
  transition:transform .16s ease,background .16s ease;border:0;
}
.kb-home .kb-acts .kb-btn--amber .wp-block-button__link{background:var(--kb-amber);color:var(--kb-on-amber)}
.kb-home .kb-acts .kb-btn--amber .wp-block-button__link:hover{background:var(--kb-amber-hover);transform:translateY(-2px)}
.kb-home .kb-acts .kb-btn--ghost .wp-block-button__link{background:none;color:#fff;border:1.5px solid rgba(255,255,255,.5)}
.kb-home .kb-acts .kb-btn--ghost .wp-block-button__link:hover{background:rgba(255,255,255,.14)}
/* split passage: image block inside the grid */
.kb-home .kb-passage--split .kb-wrap > .wp-block-image{margin:0}
.kb-home .kb-passage--split .kb-wrap > .wp-block-image img{width:100%;mix-blend-mode:multiply}
/* steps as groups (title carries the link instead of the whole row).
   .entry-content prefix: the article link treatment (amber-ink +
   underline) out-specifies shorter selectors. Block-gap margins are
   zeroed so rows sit flush and the dividers read as one list. */
.kb-home .wp-block-group.kb-steps{margin-top:48px !important}
.kb-home .kb-steps > .wp-block-group.kb-step{margin:0 !important}
.kb-home .wp-block-group.kb-step{grid-template-columns:66px 1fr}
.kb-home .kb-step p.kb-n{margin:0}
.kb-home .entry-content .kb-steps .kb-step h3 a{color:#fff;text-decoration:none;border-bottom:0}
.kb-home .entry-content .kb-steps .kb-step h3 a:hover{color:var(--kb-amber)}
.kb-home .kb-keeper .wp-block-image{margin:0;flex:none;width:54px}
.kb-home .kb-keeper .wp-block-image img{width:54px;height:54px}
/* blocks emit <strong>, the coded page used <b> — keep it white on ink */
.kb-home .entry-content .kb-keeper strong{color:#fff}
/* duo tiles as groups */
.kb-home .kb-duo > .wp-block-group{
  position:relative;overflow:hidden;min-height:clamp(360px,44vw,540px);
  display:flex;align-items:flex-end;color:#fff;padding:0;
  margin:0 !important; /* default block-gap margins break equal-height tiles */
}
.kb-home .kb-duo > .wp-block-group > .wp-block-image{position:absolute;inset:0;margin:0}
.kb-home .kb-duo > .wp-block-group > .wp-block-image img{
  width:100%;height:100%;object-fit:cover;position:absolute;inset:0;border-radius:0;
  transition:transform .6s cubic-bezier(.2,.7,.3,1);
}
.kb-home .kb-duo > .wp-block-group:hover > .wp-block-image img{transform:scale(1.05)}
.kb-home .kb-duo > .wp-block-group::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(8,17,26,.92) 4%,rgba(8,17,26,.3) 56%,rgba(8,17,26,.1) 100%);
}
.kb-home .kb-duo > .wp-block-group .kb-t{position:relative;z-index:2;padding:clamp(24px,4vw,48px)}
.kb-home .kb-duo > .wp-block-group:first-child .kb-t{padding-left:max(clamp(24px,4vw,48px),calc((100vw - 1180px)/2 + clamp(24px,3.5vw,40px)))}
.kb-home .entry-content .kb-duo .kb-t h3 a{color:#fff;text-decoration:none;border-bottom:0}
.kb-home .entry-content .kb-duo .kb-t .kb-more a{color:#fff;text-decoration:none;border-bottom:2px solid var(--kb-amber);padding-bottom:2px;font-family:var(--kb-sans);font-weight:700;font-size:.90625rem}
/* Recently published as a Query Loop */
.kb-home ul.wp-block-post-template.kb-posts{list-style:none;padding:0;margin-top:48px}
.kb-home .kb-posts > li{margin:0}
.kb-home .kb-posts .wp-block-post-featured-image{overflow:hidden;margin:0}
.kb-home .kb-posts .wp-block-post-featured-image img{width:100%;aspect-ratio:3/2;object-fit:cover;transition:transform .5s cubic-bezier(.2,.7,.3,1);border-radius:0}
.kb-home .kb-posts > li:hover .wp-block-post-featured-image img{transform:scale(1.05)}
.kb-home .entry-content .kb-posts a{border-bottom:0;text-decoration:none}
.kb-home .entry-content .kb-posts .wp-block-post-featured-image a{border-bottom:0}
.kb-home .entry-content .kb-posts .wp-block-post-date{display:block;margin-top:16px;font-family:var(--kb-sans);font-weight:700;font-size:.71875rem;letter-spacing:.16em;text-transform:uppercase;color:var(--kb-quiet)}
.kb-home .entry-content .kb-posts .wp-block-post-title{font-size:1.32rem;margin-top:8px;line-height:1.16}
.kb-home .entry-content .kb-posts .wp-block-post-title a{color:var(--kb-ink);text-decoration:none;border-bottom:0}
.kb-home .entry-content .kb-posts .wp-block-post-title a:hover{color:var(--kb-amber-ink)}
/* author band: pic as a group-wrapped image; link matches the coded band */
.kb-home .kb-author .kb-pic .wp-block-image{margin:0}
.kb-home .entry-content .kb-scene--auto .kb-author a{
  font-family:var(--kb-sans);font-weight:700;font-size:.9375rem;color:var(--kb-ink);
  text-decoration:none;border-bottom:2px solid var(--kb-amber);padding-bottom:2px;
  display:inline-block;margin-top:4px;
}
.kb-home .entry-content .kb-scene--auto .kb-author a:hover{color:var(--kb-amber-ink)}

/* ============================================================
   9. SEARCH RESULTS (child search.php)
   ============================================================ */
.kb-shero{background:var(--kb-ink);color:var(--kb-on-dark)}
.kb-shero-inner{max-width:calc(46rem + 3rem);margin-inline:auto;padding:clamp(40px,5vw,60px) var(--global-content-edge-padding,1.5rem)}
.kb-shero .kb-kicker-a{
  font-family:var(--kb-sans);font-weight:700;font-size:.6875rem;letter-spacing:.15em;
  text-transform:uppercase;color:var(--kb-amber);display:block;margin-bottom:14px;
}
.kb-shero h1{color:#fff;font-size:clamp(1.9rem,3.8vw,2.9rem);line-height:1.08;margin:0}
.kb-shero .kb-count{margin-top:14px;font-family:var(--kb-sans);font-size:.9375rem;color:var(--kb-on-dark-quiet)}
.kb-bigsearch{margin-top:26px}
.kb-searchform{display:flex;align-items:center;gap:12px;background:#fff;border:2px solid var(--kb-rule);border-radius:10px;padding:6px 6px 6px 16px}
.kb-searchform:focus-within{border-color:var(--kb-focus);box-shadow:0 0 0 1px var(--kb-focus)}
.kb-searchform svg{color:var(--kb-quiet);flex:none}
.kb-searchform input[type=search]{flex:1;border:0;background:none;font:inherit;font-family:var(--kb-sans);font-size:1.125rem;color:var(--kb-ink);min-width:0;outline:none;padding:8px 0}
.kb-searchform button{
  background:var(--kb-ink);color:var(--kb-cream);border:0;font-family:var(--kb-sans);font-weight:700;
  font-size:.9375rem;padding:12px 22px;border-radius:8px;cursor:pointer;
}
.kb-searchform button:hover{background:var(--kb-ink-hover)}
.kb-results{max-width:calc(46rem + 3rem);margin-inline:auto;padding:clamp(40px,5vw,64px) var(--global-content-edge-padding,1.5rem)}
.kb-results .kb-rows{border-top:1px solid var(--kb-rule);list-style:none;margin:0;padding:0}
.kb-results .kb-rows > li{margin:0}
.kb-result{display:block;padding:26px 0;border-bottom:1px solid var(--kb-rule);text-decoration:none}
.kb-result .kb-k{font-family:var(--kb-sans);font-weight:700;font-size:.6875rem;letter-spacing:.13em;text-transform:uppercase;color:var(--kb-amber-ink);display:block}
.kb-result h2{font-size:1.375rem;margin:8px 0 0;line-height:1.2}
.kb-result:hover h2{color:var(--kb-amber-ink)}
.kb-result p{font-family:var(--kb-sans);font-size:.96875rem;color:var(--kb-quiet);margin-top:8px;line-height:1.55;max-width:64ch}
.kb-result mark{background:color-mix(in srgb,var(--kb-amber) 30%,transparent);color:inherit;padding:1px 3px;border-radius:3px;font-weight:600}
.kb-result .kb-date{display:block;font-family:var(--kb-sans);font-size:.8125rem;color:var(--kb-quiet);margin-top:10px}
.kb-empty{text-align:center;padding-block:clamp(24px,4vw,48px)}
.kb-empty img{width:88px;margin-inline:auto;opacity:.9}
.kb-empty h2{font-size:clamp(1.5rem,2.6vw,1.9rem);margin-top:18px}
.kb-empty p{color:var(--kb-quiet);margin-top:12px;max-width:44ch;margin-inline:auto}
.kb-empty .kb-paths{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:24px}
.kb-empty .kb-paths a{
  font-family:var(--kb-sans);font-size:.875rem;font-weight:700;text-decoration:none;
  color:var(--kb-body);border:1.5px solid var(--kb-rule);border-radius:100px;padding:9px 18px;
}
.kb-empty .kb-paths a:hover{border-color:var(--kb-amber);color:var(--kb-ink)}

/* ============================================================
   10. 404 (child 404.php)
   ============================================================ */
.kb-lost{display:grid;place-items:center;text-align:center;padding-block:clamp(48px,8vw,96px)}
.kb-lost-inner{max-width:calc(38rem + 3rem);padding-inline:var(--global-content-edge-padding,1.5rem)}
.kb-lost .kb-fish{width:132px;margin-inline:auto;animation:kb-bob 3.4s ease-in-out infinite}
@keyframes kb-bob{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-14px) rotate(3deg)}}
.kb-lost .kb-bubbles{display:flex;gap:7px;justify-content:center;margin-top:10px}
.kb-lost .kb-bubbles i{width:7px;height:7px;border-radius:50%;border:1.5px solid var(--kb-faint);opacity:.7}
.kb-lost .kb-bubbles i:nth-child(2){width:5px;height:5px;opacity:.5}
.kb-lost .kb-bubbles i:nth-child(3){width:4px;height:4px;opacity:.35}
.kb-lost .kb-kicker-a{
  display:block;margin-top:28px;font-family:var(--kb-sans);font-weight:700;font-size:.6875rem;
  letter-spacing:.15em;text-transform:uppercase;color:var(--kb-amber-ink);
}
.kb-lost h1{font-size:clamp(2.2rem,5vw,3.4rem);margin-top:12px}
.kb-lost p{color:var(--kb-quiet);margin-top:16px;font-size:1.125rem;max-width:42ch;margin-inline:auto}
.kb-lost .kb-home-btn{
  display:inline-flex;align-items:center;gap:10px;margin-top:30px;background:var(--kb-amber);
  color:var(--kb-on-amber);padding:16px 28px;border-radius:100px;font-family:var(--kb-sans);
  font-weight:700;font-size:1rem;text-decoration:none;transition:background .16s ease,transform .16s ease;
}
.kb-lost .kb-home-btn:hover{background:var(--kb-amber-hover);transform:translateY(-2px)}
.kb-lost .kb-searchform{margin-top:34px;text-align:left}

/* ============================================================
   11. PAGES — targeting the real Kadence page markup.
   Body classes page-slug-{slug} are added in functions.php.
   ============================================================ */
/* multi-column Kadence rows: the plugin layout CSS never loads for
   synced content, so columns stack. knowbetta.js probes each row and
   tags actually-stacked ones .kb-cols-fallback (on production the
   plugin lays them out and the probe never fires). */
.kt-row-column-wrap.kb-cols-fallback{
  display:grid !important;grid-template-columns:1fr 1fr;
  gap:clamp(24px,4vw,48px);align-items:center;
}
@media(max-width:820px){
  .kt-row-column-wrap.kb-cols-fallback{grid-template-columns:1fr}
}
/* printables: mockup proportions + alternating paper side.
   !important: the per-block inline CSS declares its own 33/66 template
   that starves the paper column and lets the image overlap the text */
.page-slug-free-betta-care-printables .entry-content > .kb-row-layout-wrap{max-width:min(1100px,100%)}
.page-slug-free-betta-care-printables .kb-cols-fallback{grid-template-columns:.9fr 1.1fr !important}
@media(min-width:821px){
  .page-slug-free-betta-care-printables .entry-content > .kb-row-layout-wrap:nth-of-type(even) .kb-cols-fallback{grid-template-columns:1.1fr .9fr !important}
  .page-slug-free-betta-care-printables .entry-content > .kb-row-layout-wrap:nth-of-type(even) .kb-cols-fallback > .wp-block-kadence-column:first-of-type{order:2}
}
@media(max-width:820px){
  .page-slug-free-betta-care-printables .kb-cols-fallback{grid-template-columns:1fr !important}
}
/* section rail (built by knowbetta.js from the page's H2s) */
.kb-toc-rail .kb-rail-title{
  font-family:var(--kb-sans);font-size:.6875rem;font-weight:700;
  letter-spacing:.15em;text-transform:uppercase;color:var(--kb-quiet);margin-bottom:14px;
}
.kb-toc-rail ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.kb-toc-rail a{
  display:block;font-family:var(--kb-sans);font-size:.875rem;line-height:1.35;
  color:var(--kb-quiet);text-decoration:none;padding:7px 0 7px 20px;
  border-left:2px solid var(--kb-rule);border-bottom:0;
  transition:color .15s ease,border-color .15s ease;
}
.kb-toc-rail a:hover{color:var(--kb-ink)}
.kb-toc-rail a[aria-current]{color:var(--kb-ink);border-left-color:var(--kb-amber);font-weight:600}
@media(min-width:1041px){
  .kb-rail-layout .entry-content{
    display:grid;grid-template-columns:210px minmax(0,46rem);
    gap:0 clamp(56px,6vw,96px);justify-content:center;max-width:none;
  }
  /* grid items don't margin-collapse — single-direction margins keep the
     rhythm from doubling (the 3x-tall-page bug the reviewers caught) */
  .kb-rail-layout .entry-content > *{grid-column:2;max-width:none;margin-block:0 1.35em}
  .kb-rail-layout .entry-content > h2{margin:1.2em 0 .6em}
  .kb-rail-layout .entry-content > h2:first-of-type{margin-top:0}
  .kb-rail-layout .entry-content > .kb-toc-rail{
    grid-column:1;grid-row:1 / span 500;position:sticky;top:28px;align-self:start;margin:0;
  }
  .kb-rail-layout.page-slug-recommended-betta-supplies .entry-content{
    grid-template-columns:220px minmax(0,48rem);
  }
}
/* rail links must beat the generic entry-content link treatment */
.entry-content .kb-toc-rail a{
  color:var(--kb-quiet) !important;border-bottom:0 !important;
  border-left:2px solid var(--kb-rule);
}
.entry-content .kb-toc-rail a:hover{color:var(--kb-ink) !important}
.entry-content .kb-toc-rail a[aria-current]{color:var(--kb-ink) !important;border-left-color:var(--kb-amber)}
/* reference-page section headings at mockup scale */
.page-slug-betta-fish-care-glossary .entry-content h2,
.page-slug-recommended-betta-supplies .entry-content h2,
.page-slug-research-library .entry-content h2{font-size:clamp(1.65rem,2.9vw,2.25rem)}
@media(max-width:1040px){
  .kb-toc-rail{display:none}
  .page-slug-betta-fish-care-glossary .entry-content > *,
  .page-slug-recommended-betta-supplies .entry-content > *,
  .page-slug-research-library .entry-content > *{max-width:48rem;margin-inline:auto}
}
/* mobile "On this page": collapsed disclosure standing in for the rail
   below its breakpoint (JS builds it alongside the rail). Styled to
   match the FAQ accordion cards. */
.kb-toc-mobile{display:none}
@media(max-width:1040px){
  .kb-toc-mobile{display:block;margin:0 0 28px;border:1px solid var(--kb-rule);border-radius:10px;background:var(--kb-cream-2)}
  .kb-toc-mobile summary{
    cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:14px;
    padding:14px 18px;font-family:var(--kb-sans);font-weight:700;font-size:.9375rem;color:var(--kb-ink);
  }
  .kb-toc-mobile summary::-webkit-details-marker{display:none}
  .kb-toc-mobile summary::after{
    content:"";width:9px;height:9px;flex:none;
    border-right:2px solid var(--kb-amber-ink);border-bottom:2px solid var(--kb-amber-ink);
    transform:rotate(45deg) translateY(-2px);transition:transform .18s ease;
  }
  .kb-toc-mobile[open] summary::after{transform:rotate(225deg) translateY(-2px)}
  .kb-toc-mobile ol,.kb-toc-mobile ul{list-style:none !important;margin:0 !important;padding:2px 18px 14px !important;display:flex;flex-direction:column;gap:2px}
  .kb-toc-mobile li{list-style:none !important;border:0 !important;padding:0 !important}
  .kb-toc-mobile li::marker{content:""}
  .kb-toc-mobile li{margin:0}
  .entry-content .kb-toc-mobile a{
    display:block;font-family:var(--kb-sans);font-size:.9375rem;line-height:1.4;
    color:var(--kb-body) !important;text-decoration:none;padding:7px 0;border-bottom:0 !important;
  }
  .entry-content .kb-toc-mobile a:hover{color:var(--kb-ink) !important}
}
.entry-content h2{scroll-margin-top:24px}
/* shared page hero tint comes from Kadence title settings; page-specific: */
.page-slug-about .entry-content > *{max-width:40rem;margin-left:auto;margin-right:auto}
/* about: mockup treatments applied to the live markup (JS adds the classes) */
.page-slug-about .entry-content .kb-dropcap::first-letter{
  font-family:var(--kb-display);float:left;font-size:3.6rem;line-height:.82;
  padding:6px 10px 0 0;color:var(--kb-ink);
}
/* (kb-promise card removed 2026-08-19 — Annie wants a plain paragraph) */
.page-slug-about .kb-touch{
  background:var(--kb-cream-2);border-top:1px solid var(--kb-rule);
  width:100vw;margin-left:calc(50% - 50vw);max-width:none !important;
  margin-top:clamp(40px,5vw,64px);
  display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:start;
  padding:clamp(44px,6vw,72px) max(var(--global-content-edge-padding,1.5rem),calc(50vw - 20rem));
}
@media(max-width:700px){.page-slug-about .kb-touch{grid-template-columns:1fr}}
.page-slug-about .kb-touch-pic{
  width:88px;height:88px;border-radius:50%;background:var(--kb-cream);
  border:1px solid var(--kb-rule);display:grid;place-items:center;
}
.page-slug-about .kb-touch-pic img{width:72%}
.page-slug-about .kb-touch h2{font-size:clamp(1.6rem,2.6vw,2.1rem);margin:0}
.page-slug-about .kb-touch p{margin:14px 0 0;max-width:none}
.page-slug-about .kb-mail{font-weight:700}
.page-slug-betta-fish-care-glossary .entry-content p > strong:first-child{color:var(--kb-ink)}
.page-slug-betta-fish-care-glossary .entry-content p.kb-term,
.page-slug-betta-fish-care-glossary .entry-content p:has(> strong:first-child){
  padding-left:18px;border-left:2px solid var(--kb-rule);transition:border-color .15s ease;
}
.page-slug-betta-fish-care-glossary .entry-content p:has(> strong:first-child):hover{border-left-color:var(--kb-amber)}
.page-slug-betta-fish-care-glossary .entry-content h2{border-top:1px solid var(--kb-rule);padding-top:1.3em;margin-top:2.1em}
.page-slug-betta-fish-care-glossary .entry-content h2:first-of-type{border-top:0;padding-top:0}

/* research library (block page, seeded from assets/seed/research-library.html):
   glossary-style bordered sections; kb-cite = the bold citation paragraph
   opening each source entry (extra air above, snug to its annotation).
   The (0,3,0) selectors beat the rail grid's single-direction margins. */
.page-slug-research-library .entry-content h2{border-top:1px solid var(--kb-rule);padding-top:1.3em;margin-top:2.1em}
.page-slug-research-library .entry-content h2:first-of-type{border-top:0;padding-top:0}
.kb-rail-layout.page-slug-research-library .entry-content > .kb-cite{margin-top:1.4em;margin-bottom:.55em}
.page-slug-research-library .kb-cite{line-height:1.5}
/* supplies: affiliate pills + product imagery */
.page-slug-recommended-betta-supplies .wp-block-button__link,
.page-slug-recommended-betta-supplies .kb-button{
  background:var(--kb-ink);color:var(--kb-cream);border-radius:100px;
  font-family:var(--kb-sans);font-weight:700;font-size:.875rem;padding:9px 18px;
}
.page-slug-recommended-betta-supplies .wp-block-button__link:hover,
.page-slug-recommended-betta-supplies .kb-button:hover{background:var(--kb-ink-hover);color:var(--kb-cream)}
/* top-align every product row, per the mockup (align-items:start) —
   four rows carried a vertical-center setting from old block
   attributes, so images bobbed relative to their headings */
.page-slug-recommended-betta-supplies .entry-content .wp-block-columns:has(.wp-block-image.is-resized){
  align-items:flex-start !important;
}
.page-slug-recommended-betta-supplies .wp-block-columns:has(.wp-block-image.is-resized) > .wp-block-column{
  align-self:flex-start !important;
}
/* the description sits a touch closer to its own retailer pills than
   to the next product (32px → 20px) */
.page-slug-recommended-betta-supplies .wp-block-column p:has(+ .wp-block-buttons){margin-bottom:20px !important}
/* breathing room between products: the flow rhythm's 1.35em reads tight
   between one product's retailer pills and the next one's heading */
.page-slug-recommended-betta-supplies .entry-content > .wp-block-columns:has(.wp-block-image.is-resized){
  margin-block:0 clamp(40px,5vw,60px) !important;
}
/* product rows are core wp-block-columns; the image column's flex-basis
   (inline, from block attributes) pins it too narrow for a square card */
@media(min-width:782px){
  .page-slug-recommended-betta-supplies .wp-block-columns > .wp-block-column:has(.wp-block-image.is-resized){
    flex-basis:256px !important;flex-grow:0 !important;min-width:256px;
  }
  /* the text column keeps a 66% basis from its block attributes — with
     the wider image column that overflows the row and wraps the text
     underneath; let it fill the remainder instead */
  .page-slug-recommended-betta-supplies .wp-block-columns:has(.wp-block-image.is-resized) > .wp-block-column:not(:has(.wp-block-image.is-resized)){
    flex-basis:0 !important;flex-grow:1 !important;
  }
}
@media(max-width:781px){
  /* phones: the inline basis leaves a 68px micro-frame — stack instead */
  .page-slug-recommended-betta-supplies .wp-block-columns:has(.wp-block-image.is-resized) > .wp-block-column{
    flex-basis:100% !important;
  }
}
/* uniform product frames: square cards on desktop, images centered inside */
.page-slug-recommended-betta-supplies .wp-block-image,
.page-slug-recommended-betta-supplies .wp-block-kadence-image{
  background:#fff;border:1px solid var(--kb-rule);border-radius:10px;padding:16px;
  display:grid;place-items:center;
  /* !important: the per-block inline CSS pins the figure to the image's
     natural width, which kept the frames tall instead of square */
  aspect-ratio:1/1;width:min(240px,100%) !important;max-width:none !important;margin-inline:auto;
}
.page-slug-recommended-betta-supplies .wp-block-image img,
.page-slug-recommended-betta-supplies .wp-block-kadence-image img{
  background:none;border:0;padding:0;max-height:200px;max-width:100%;width:auto;object-fit:contain;
}
/* PDF download CTA is amber (retailer pills stay ink) */
.page-slug-recommended-betta-supplies .kb-button[href$=".pdf"]{
  background:var(--kb-amber) !important;color:var(--kb-on-amber) !important;
}
.page-slug-recommended-betta-supplies .kb-button[href$=".pdf"]:hover{background:var(--kb-amber-hover) !important}
/* the checklist section's row: re-tint cream-2 (old inline block CSS
   carries an off-palette bg) + the standard box treatment */
.page-slug-recommended-betta-supplies .kb-row-layout-wrap:has(.kb-button[href$=".pdf"]){
  background:var(--kb-cream-2) !important;border-radius:12px;overflow:hidden;
}
.page-slug-recommended-betta-supplies .kb-row-layout-wrap:has(.kb-button[href$=".pdf"]) > .kt-row-column-wrap{
  background:none !important;padding:clamp(24px,3vw,34px) !important;
}
.page-slug-recommended-betta-supplies .kb-row-layout-wrap:has(.kb-button[href$=".pdf"]) .kt-inside-inner-col{padding:0 !important}
.page-slug-recommended-betta-supplies .kb-row-layout-wrap:has(.kb-button[href$=".pdf"]) .kt-inside-inner-col > :first-child{margin-top:0 !important}
.page-slug-recommended-betta-supplies .kb-row-layout-wrap:has(.kb-button[href$=".pdf"]) .kt-inside-inner-col > :last-child{margin-bottom:0 !important}
/* the checklist thumbnail: paper card, not the product frame */
.page-slug-recommended-betta-supplies .kb-row-layout-wrap:has(.kb-button[href$=".pdf"]) :is(.wp-block-image,.wp-block-kadence-image){
  background:none;border:0;padding:0;min-height:0;aspect-ratio:auto;width:auto;
}
.page-slug-recommended-betta-supplies .kb-row-layout-wrap:has(.kb-button[href$=".pdf"]) img{
  background:#fff;padding:8px;border:1px solid var(--kb-rule);border-radius:4px;
  box-shadow:0 2px 4px rgba(12,20,28,.08),0 20px 40px -20px rgba(12,20,28,.35);
  max-height:none;max-width:min(300px,92%);display:block;margin:0 auto;transform:rotate(-1.5deg);
}
/* (disclosure callout removed 2026-08-19 — Annie wants a plain paragraph) */
/* printables: paper treatment for the sheet previews + reading measure */
.page-slug-free-betta-care-printables .entry-content > *{max-width:46rem;margin-left:auto;margin-right:auto}
.page-slug-free-betta-care-printables .wp-block-image img,
.page-slug-free-betta-care-printables .wp-block-kadence-image img{
  background:#fff;padding:10px;border:1px solid var(--kb-rule);border-radius:4px;
  box-shadow:0 2px 4px rgba(12,20,28,.08),0 28px 50px -24px rgba(12,20,28,.4);
  /* border-box + min(): padding/border count toward the cap and the
     paper can never outgrow its grid column */
  box-sizing:border-box;max-width:min(340px,100%);display:block;margin-inline:auto;
  transform:rotate(-1.5deg);
}
.page-slug-free-betta-care-printables .wp-block-kadence-image:nth-of-type(even) img,
.page-slug-free-betta-care-printables .wp-block-image:nth-of-type(even) img{transform:rotate(1.2deg)}
.page-slug-free-betta-care-printables .kb-button::before,
.page-slug-free-betta-care-printables .wp-block-button__link::before{content:"↓  "}
/* the download pills: the block's own inline unique-id CSS sets the old
   blue, so these need !important to re-brand it amber */
.page-slug-free-betta-care-printables .wp-block-button__link,
.page-slug-free-betta-care-printables .kb-button{
  background:var(--kb-amber) !important;color:var(--kb-on-amber) !important;
  border-radius:100px !important;font-family:var(--kb-sans);font-weight:700;
}
.page-slug-free-betta-care-printables .wp-block-button__link:hover,
.page-slug-free-betta-care-printables .kb-button:hover{background:var(--kb-amber-hover) !important;color:var(--kb-on-amber) !important}

/* ============================================================
   12. MISC
   ============================================================ */
@media(prefers-reduced-motion:reduce){
  *{transition-duration:.001ms !important;animation:none !important}
}
