/* Design tokens ported from the ijara CDC design system. Do not edit by hand. */
:root{
/* Brand — from the ijara CDC mark (green square + globe, orange ribbon) */
--brand-green:#5ca701;--brand-green-light:#8cc63e;--brand-green-dark:#3f7401;
--brand-orange:#ff872b;--brand-orange-dark:#e26a0d;--brand-gray:#949599;

/* Core palette (extracted) */
--color-white:#ffffff;--color-black:#000000;
--palette-1:#ffffff;--palette-2:#090d10;--palette-3:#5ca701;--palette-4:#eef2f5;--palette-5:#dee7ed;
--palette-6:#ff872b;--palette-7:#486d84;--palette-8:#bccfdb;--palette-9:#9bb8ca;

/* Neutrals */
--neutral-25:#f8f7fa;--neutral-50:#eae9f0;--neutral-100:#d8d7e1;--neutral-200:#c7c6d3;--neutral-300:#b6b4c4;
--neutral-400:#a5a3b5;--neutral-500:#8c8a9b;--neutral-600:#737181;--neutral-700:#5a5867;--neutral-800:#403e4d;
--neutral-900:#2a2933;--neutral-1000:#111016;

/* Cool slate family — used for quiet surfaces, chips and secondary text */
--slate-50:#f9fafb;--slate-100:#eef2f5;--slate-200:#dee7ed;--slate-300:#bccfdb;--slate-400:#9bb8ca;--slate-600:#486d84;--slate-900:#1b2932;

/* Semantic aliases */
--color-primary:var(--brand-orange);--color-primary-hover:var(--brand-orange-dark);
--color-secondary:var(--brand-green);--color-secondary-hover:var(--brand-green-dark);
--color-bg:var(--color-white);--color-bg-secondary:var(--palette-2);--surface-quiet:var(--slate-100);
--surface-card:var(--color-white);--surface-card-inverse:var(--palette-2);--surface-sunken:var(--slate-50);
--color-text:var(--neutral-900);--color-text-secondary:var(--slate-600);--color-text-tertiary:var(--neutral-500);
--color-text-inverse:var(--color-white);--color-text-accent:var(--brand-green);
--color-border:var(--slate-100);--color-border-strong:var(--slate-200);--color-divider:#dadfe1;
--color-link:var(--brand-green);--color-link-hover:var(--brand-green-dark);
--color-focus:var(--brand-green);
--color-success:var(--brand-green);--color-success-soft:#eef7e4;
--color-warning:var(--brand-orange);--color-warning-soft:#fff2e6;
--color-danger:#c0392b;--color-danger-soft:#fdeceb;
--color-info:var(--slate-600);--color-info-soft:var(--slate-100);
--fade-overlay:#11101680;

/* Button roles */
--button-primary-bg:var(--brand-orange);--button-primary-bg-hover:var(--brand-orange-dark);--button-primary-text:var(--color-white);
--button-secondary-bg:var(--brand-green);--button-secondary-bg-hover:var(--brand-green-dark);--button-secondary-text:var(--color-white);
--button-quiet-bg:var(--slate-100);--button-quiet-bg-hover:var(--slate-200);--button-quiet-text:var(--slate-600);
}
:root{
/* Sizes — extracted type scale */
--text-display:68px;--text-h1:52px;--text-h2:32px;--text-h3:28px;--text-h4:18px;
--text-body-l:16px;--text-body:14px;--text-small:10px;

/* Line heights (px, as measured) */
--leading-display:68px;--leading-h1:57.2px;--leading-h2:38.4px;--leading-h3:33.6px;--leading-h4:24.3px;
--leading-body-l:21.6px;--leading-body:20px;--leading-small:14px;

/* Tracking — tight on display, near-normal below h4 */
--tracking-display:-3.4px;--tracking-h1:-2.08px;--tracking-h2:-1.28px;--tracking-h3:-0.56px;--tracking-h4:-0.144px;
--tracking-body:normal;--tracking-caps:0.06em;

/* Weights */
--weight-light:300;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;
--weight-heading:600;--weight-body:500;
}
:root{
/* 12px base unit; the 2/4/6/8 steps come from the source's rem spacing scale */
--space-base:12px;
--space-2:2px;--space-4:4px;--space-6:6px;--space-8:8px;--space-12:12px;--space-16:16px;--space-20:20px;
--space-24:24px;--space-32:32px;--space-36:36px;--space-48:48px;--space-64:64px;--space-72:72px;--space-96:96px;--space-128:128px;
--gap-element:12px;--gap-card:24px;--gap-grid:32px;--gap-section:72px;--gap-section-lg:128px;
--pad-card:24px;--pad-card-lg:36px;--pad-input:12px 16px;--pad-button:12px 24px;
--container-max:1280px;--container-gutter:16px;
--z-header:1000; /* @kind other */
--z-dropdown:1000; /* @kind other */
--z-overlay:996; /* @kind other */
--z-menu:250; /* @kind other */
--z-loader:999; /* @kind other */
--z-sticky:100; /* @kind other */
}
:root{
--radius-2:2px;--radius-8:8px;--radius-12:12px;--radius-16:16px;--radius-24:24px;--radius-32:32px;
--radius-pill:100px;--radius-round:9999px;
--radius-button:100px;--radius-button-square:12px;--radius-input:12px;--radius-chip:16px;
--radius-card:16px;--radius-card-lg:24px;--radius-card-xl:32px;--radius-media:24px;
--border-hairline:1px;--border-strong:2px;
}
:root{
/* One measured level in the source: a wide, very low-opacity green-tinted halo. */
--shadow-halo:0 0 0 10.8639px oklab(0.653548 -0.129903 0.134725 / 0.0378685);
--shadow-low:0 1px 2px rgba(17,16,22,0.05),0 2px 8px rgba(17,16,22,0.04);
--shadow-card:0 2px 4px rgba(17,16,22,0.04),0 12px 32px rgba(17,16,22,0.06);
--shadow-overlay:0 24px 64px rgba(17,16,22,0.18);
--ring-focus:0 0 0 3px rgba(92,167,1,0.35);
--gradient-image-scrim:linear-gradient(180deg,rgba(9,13,16,0) 0%,rgba(9,13,16,0.6) 100%); /* @kind color */
--gradient-brand-radial:radial-gradient(50% 1080% at 50% 50%,var(--brand-green-light) 32%,var(--brand-green) 64%,rgba(188,223,24,0) 100%); /* @kind color */
}
:root{
--ease-standard:cubic-bezier(0.4,0,0.2,1); /* @kind other */
--ease-out:cubic-bezier(0.16,1,0.3,1); /* @kind other */
--duration-fast:120ms; /* @kind other */
--duration-base:200ms; /* @kind other */
--duration-slow:320ms; /* @kind other */
--transition-base:all var(--duration-base) var(--ease-standard); /* @kind other */
}
/* Poppins replaces Inter per brand direction. Loaded from Google Fonts;
   no local font binaries were provided with the source material. */

:root{--font-sans:"Poppins",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;--font-display:var(--font-sans);--font-body:var(--font-sans);--font-mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,monospace}

/* Self-hosted Poppins */
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/poppins-pxiGyp8kv8JHgFVrJJLucXtAOvWDSHFF.woff2) format('woff2');
  unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09;
}
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/poppins-pxiGyp8kv8JHgFVrJJLufntAOvWDSHFF.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/poppins-pxiGyp8kv8JHgFVrJJLucHtAOvWDSA.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/poppins-pxiByp8kv8JHgFVrLDz8Z11lFd2JQEl8qw.woff2) format('woff2');
  unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/poppins-pxiByp8kv8JHgFVrLDz8Z1JlFd2JQEl8qw.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/poppins-pxiByp8kv8JHgFVrLDz8Z1xlFd2JQEk.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/poppins-pxiEyp8kv8JHgFVrJJbecnFHGPezSQ.woff2) format('woff2');
  unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/poppins-pxiEyp8kv8JHgFVrJJnecnFHGPezSQ.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/poppins-pxiEyp8kv8JHgFVrJJfecnFHGPc.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/poppins-pxiByp8kv8JHgFVrLGT9Z11lFd2JQEl8qw.woff2) format('woff2');
  unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/poppins-pxiByp8kv8JHgFVrLGT9Z1JlFd2JQEl8qw.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/poppins-pxiByp8kv8JHgFVrLGT9Z1xlFd2JQEk.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/poppins-pxiByp8kv8JHgFVrLEj6Z11lFd2JQEl8qw.woff2) format('woff2');
  unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/poppins-pxiByp8kv8JHgFVrLEj6Z1JlFd2JQEl8qw.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/poppins-pxiByp8kv8JHgFVrLEj6Z1xlFd2JQEk.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/poppins-pxiByp8kv8JHgFVrLCz7Z11lFd2JQEl8qw.woff2) format('woff2');
  unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/poppins-pxiByp8kv8JHgFVrLCz7Z1JlFd2JQEl8qw.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/poppins-pxiByp8kv8JHgFVrLCz7Z1xlFd2JQEk.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* =====================================================================
   Design-system base, scoped to the redesigned regions.

   The parent theme (bb-theme/css/base.min.css) and its generated
   Customizer skin both load AFTER this file and set a different base:
   body at 14px/1.45 in Helvetica, headings with 20px/10px margins,
   paragraphs with a 10px bottom margin. The design's own base.css sets
   16px/21.6px, weight 500, and zero margins on headings and paragraphs.

   Anything in the redesigned templates that does not carry its own
   inline size therefore inherited 14px instead of 16px, which is why the
   local page did not match the design's dimensions.

   These rules reproduce the design's base.css. They are scoped to the
   redesigned roots on purpose: the site's ~521 Beaver Builder pages are
   still styled by the skin and must keep its typography. Scoping also
   means specificity, not load order, decides — a class beats the skin's
   bare element selectors wherever they collide.
   ===================================================================== */

.ij-home,
.ij-blog,
.ij-about,
#site-header,
#site-footer,
.ij-calc {
	font-family: var(--font-body);
	font-size: var(--text-body-l);
	line-height: var(--leading-body-l);
	font-weight: var(--weight-body);
	color: var(--color-text);
	-webkit-font-smoothing: antialiased;
}

.ij-home *,
.ij-home *::before,
.ij-home *::after,
.ij-blog *,
.ij-blog *::before,
.ij-blog *::after,
.ij-about *,
.ij-about *::before,
.ij-about *::after,
#site-header *,
#site-header *::before,
#site-header *::after,
#site-footer *,
#site-footer *::before,
#site-footer *::after,
.ij-calc *,
.ij-calc *::before,
.ij-calc *::after { box-sizing: border-box; }

/* The design gives headings and paragraphs no margin of their own; every
   gap in the templates is set explicitly. The parent theme adds 20px/10px
   to headings and 10px under paragraphs, which shifts every section. */
.ij-home h1, .ij-home h2, .ij-home h3, .ij-home h4, .ij-home h5, .ij-home h6,
.ij-blog h1, .ij-blog h2, .ij-blog h3, .ij-blog h4, .ij-blog h5, .ij-blog h6,
.ij-about h1, .ij-about h2, .ij-about h3, .ij-about h4, .ij-about h5, .ij-about h6,
#site-header h1, #site-header h2, #site-header h3, #site-header h4,
#site-footer h1, #site-footer h2, #site-footer h3, #site-footer h4,
.ij-calc h1, .ij-calc h2, .ij-calc h3, .ij-calc h4 {
	font-family: var(--font-display);
	font-weight: var(--weight-heading);
	color: var(--color-text);
	margin: 0;
}

.ij-home p,
.ij-about p,
#site-header p,
#site-footer p,
.ij-calc p { margin: 0; }

/* blog.css already sets the article rhythm with .ij-blog .artbody p, which
   is more specific than this and so still wins inside an article. */
.ij-blog p { margin: 0; }

.ij-home a,
.ij-blog a,
.ij-about a,
.ij-calc a {
	color: var(--color-link);
	text-decoration: none;
	transition: color var(--duration-fast, 150ms) var(--ease-standard, cubic-bezier(0.4, 0, 0.2, 1));
}

.ij-home a:hover,
.ij-blog a:hover,
.ij-about a:hover,
.ij-calc a:hover { color: var(--color-link-hover); }

.ij-home button, .ij-home input, .ij-home select, .ij-home textarea,
.ij-blog button, .ij-blog input, .ij-blog select, .ij-blog textarea,
.ij-about button, .ij-about input, .ij-about select, .ij-about textarea,
#site-header button, #site-footer button,
.ij-calc button, .ij-calc input, .ij-calc select, .ij-calc textarea { font-family: inherit; }

/* ---- Parent-theme overrides --------------------------------------------
   bb-theme/css/base.min.css is Bootstrap-derived and is enqueued AFTER these
   sheets. Two of its rules contradict the design on every redesigned page:

     a:hover, a:focus { color:#23527c; text-decoration:underline }
     a:focus          { outline:5px auto -webkit-focus-ring-color; outline-offset:-2px }

   The first is why a whole card underlines on hover: a .postcard is an <a>
   wrapping the image, category, title, excerpt and date, and text-decoration
   propagates to all of them. The design's ONLY underline in its entire
   stylesheet is `.postcard:hover .postcard-t` — the title alone.

   The second paints the system-blue focus ring on every link, including the
   header nav.

   Scoped to the redesigned regions so the other 521 Beaver Builder pages,
   which still expect the parent theme's behaviour, are untouched.

   The leading `body` is load-bearing, not decoration. Beaver Builder's
   generated skin (wp-content/uploads/bb-theme/skin-*.css) carries
   `.fl-page-content a:hover { text-decoration: underline }`, and
   .fl-page-content wraps <main class="ij-blog">. That selector scores the
   same 0-2-1 as a bare `.ij-blog a:hover`, and the skin is enqueued after
   this file — so an exact tie is decided by load order and the underline
   wins. `body` adds one element to the score and settles it outright.
   tests/test-css-cascade.php measures this against the real skin file and
   treats a tie as a failure. */
body .ij-blog a:hover,     body .ij-blog a:focus,
body .ij-home a:hover,     body .ij-home a:focus,
body .ij-about a:hover,    body .ij-about a:focus,
body .ij-programs a:hover, body .ij-programs a:focus,
body .ij-contact a:hover,  body .ij-contact a:focus,
body #site-header a:hover, body #site-header a:focus,
body #site-footer a:hover, body #site-footer a:focus { text-decoration: none; }

body .ij-blog a:focus,
body .ij-home a:focus,
body .ij-about a:focus,
body .ij-programs a:focus,
body .ij-contact a:focus,
body #site-header a:focus,
body #site-footer a:focus { outline: none; }

/* The design specifies no focus styling at all. Reproducing that literally
   would leave keyboard users with no visible focus, so the blue ring is
   replaced with the theme's existing focus-visible convention rather than
   simply deleted — a mouse click shows nothing, a Tab key shows the ring. */
.ij-blog a:focus-visible,
.ij-home a:focus-visible,
.ij-about a:focus-visible,
.ij-programs a:focus-visible,
.ij-contact a:focus-visible,
#site-header a:focus-visible,
#site-footer a:focus-visible {
  outline: 2px solid var(--brand-green-dark);
  outline-offset: 2px;
  border-radius: 4px;
}

/* ---- Grid floor on the narrowest phones ----------------------------------
   Every redesigned template sets its grids inline, mostly as
   `repeat(auto-fit, minmax(340px, 1fr))`. auto-fit collapses to a single
   column but that column keeps its 340px minimum, so at 32px of page padding
   the track ends at 372px — fine on a 390px phone, 52px over the edge on a
   320px one. Pages that need to reflow earlier set their own breakpoints;
   this is only the floor beneath all of them, where one column is always
   right. The attribute selector is what makes it reachable: the declaration
   is inline, so nothing short of !important on the element itself wins. */
@media (max-width: 420px) {
	main[class^="ij"] [style*="grid-template-columns"] {
		grid-template-columns: minmax(0, 1fr) !important;
	}
}

/* ---- reCAPTCHA on the narrowest phones ------------------------------------
   Google renders the widget as an iframe at a fixed 304px and gives no way to
   ask for it narrower. At 320px, behind the page's 32px padding, there are
   256px to put it in — so it hangs 48px past the edge. Scaling is the only
   lever the widget offers; the wrapper takes the matching height so it does
   not leave a gap beneath itself. */
@media (max-width: 400px) {
	.ginput_recaptcha {
		transform: scale(0.82);
		transform-origin: 0 0;
		height: 64px;
	}
}

/* Editor content wraps some links in <u> (17 pages, 2026-10-20). Links are
   not underlined at rest; the hover underline still comes from the link rules. */
u:has(> a), a u { text-decoration: none; }
a:hover u, a:focus-visible u { text-decoration: underline; }

/* Sitewide (2026-10-20): no link is underlined at rest. !important so it beats
   page stylesheets, plugins and inline styles; on hover/focus each page's own
   rule (usually an underline) applies again. */
a:not(:hover):not(:focus-visible),
a:not(:hover):not(:focus-visible) u { text-decoration: none !important; }
