:root {
  /* Brand hues */
  --niq-cyan:#29ABE2; --niq-green:#6FA82C; --niq-yellow:#FFC400;
  --niq-pink:#EC1E5A; --niq-purple:#7C1F7A; --niq-indigo:#2B3990;
  /* Action */
  --niq-action:#1499D6; --niq-action-hover:#0F7FB4; --niq-link:#0E7FAE; --niq-cyan-light:#7FD3F2;
  /* Neutrals */
  --niq-ink:#0F1B2D; --niq-ink-deep:#0B1422; --niq-ink-panel:#0E1B2E;
  --niq-body:#41546B; --niq-muted:#5A6472; --niq-soft:#8592A4; --niq-faint:#98A4B4;
  /* On-navy text ramp */
  --niq-on-navy-white:#FFFFFF; --niq-on-navy-body:#B9C3D2; --niq-on-navy-2:#A9B4C4;
  --niq-line:#E5E9F0; --niq-line-light:#EDF1F6; --niq-surface:#F6F9FC;
  /* Saturated bands */
  --niq-band-cyan:#1499D6; --niq-band-green:#5F9424; --niq-band-yellow:#FFC400;
  --niq-band-pink:#D6205C; --niq-band-purple:#7C1F7A; --niq-band-indigo:#2B3990;
  /* Tint pairs: bg / border / AA text */
  --tint-cyan-bg:#EAF7FD; --tint-cyan-line:#C6E9F8; --tint-cyan-text:#0B6F9E;
  --tint-green-bg:#F0F8E7; --tint-green-line:#D5EBBB; --tint-green-text:#4C7A1E;
  --tint-yellow-bg:#FFF8DE; --tint-yellow-line:#F4E4A6; --tint-yellow-text:#8A6B00;
  --tint-pink-bg:#FDECF1; --tint-pink-line:#F6C9D8; --tint-pink-text:#A5113C;
  --tint-purple-bg:#F7EDF7; --tint-purple-line:#E5CBE5; --tint-purple-text:#7C1F7A;
  --tint-indigo-bg:#EDEFFA; --tint-indigo-line:#CBD2F0; --tint-indigo-text:#2B3990;
}

/* Keyframes — copied verbatim from ~/Downloads/export/styles.css */
@keyframes niqUp   { from { opacity:0; transform:translateY(22px); } to { opacity:1; transform:none; } }
@keyframes niqPop  { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:none; } }
@keyframes niqFloat{ 0%,100% { transform:translateY(0); } 50% { transform:translateY(-9px); } }
@keyframes niqSweep{ from { background-position:0% 50%; } to { background-position:200% 50%; } }
@keyframes niqGrow { from { transform:scaleX(0); } to { transform:scaleX(1); } }

/* Animation utilities (apply via Elementor CSS Classes field) */
.niq-up  { animation: niqUp .6s ease both; }
.niq-pop { animation: niqPop .55s ease both; }
.niq-d1 { animation-delay:.06s; } .niq-d2 { animation-delay:.12s; }
.niq-d3 { animation-delay:.18s; } .niq-d4 { animation-delay:.24s; }
.niq-float { animation: niqFloat 6s ease-in-out infinite; }
.niq-sweep { background-size:200% 100%; animation: niqSweep 3s linear infinite; }

/* Signature accent bar: 44x6, 4 hard-stop segments */
.niq-bar { width:44px; height:6px; border-radius:3px; transform-origin:left;
  background:#29ABE2; }
.niq-bar--light { background:#FFFFFF; }
.niq-bar--onyellow { background:#1A1503; }
.niq-bar-grow { animation: niqGrow .7s ease both; }

/* Card hover lift */
.niq-lift { transition: transform .2s ease, box-shadow .2s ease; }
.niq-lift:hover { transform: translateY(-3px); }

/* Blog post CTA box (wp:group className) — matches export's cyan CTA panel */
.niq-cta-box {
  background: var(--tint-cyan-bg);
  border: 1px solid var(--tint-cyan-line);
  border-radius: 12px;
  padding: 24px;
}

/* Single Post template — category badge (Post Info widget, "terms" item only, no date/author) */
.niq-post-badge .elementor-post-info { display:flex; }
.niq-post-badge .elementor-icon-list-item { padding:0; }
.niq-post-badge .elementor-post-info__terms-list-item {
  display:inline-flex; align-items:center;
  font:700 11px 'Public Sans',sans-serif; letter-spacing:.14em; text-transform:uppercase;
  color:#0B1422; background:#29ABE2; padding:6px 12px; border-radius:999px;
}

/* =====================================================================
   Hover states — ported from export's [data-hv="xN"] attribute system.
   Each semantic class below corresponds to one export hover rule (noted
   in the comment) but is applied as a normal CSS class instead of a
   data-attribute selector, so it can be added via Elementor's CSS
   Classes field. Group headings describe the intended use case.
   ===================================================================== */

/* -- Tint bg + tint text (brand-colored nav/link chips on white) -- */
.niq-hv-tint-cyan:hover   { background:#EAF7FD; color:#0B6F9E; }   /* x0 */
.niq-hv-tint-green:hover  { background:#F0F8E7; color:#4C7A1E; }   /* x2 */
.niq-hv-tint-pink:hover   { background:#FDECF1; color:#A5113C; }   /* x3 */
.niq-hv-tint-purple:hover { background:#F7EDF7; color:#7C1F7A; }   /* x4 */
.niq-hv-tint-indigo:hover { background:#EDEFFA; color:#2B3990; }   /* x5 */
.niq-hv-tint-yellow:hover { background:#FFF8DE; color:#8A6B00; }   /* x7 */

/* -- Neutral bg (generic list rows / menu items on white) -- */
.niq-hv-neutral:hover     { background:#F2F6FA; }                  /* x1 */
.niq-hv-neutral-ink:hover { background:#F2F6FA; color:#0F1B2D; }   /* x6 */

/* -- Tint bg only, no text color change (icon badges / chip fills) -- */
.niq-hv-bg-cyan:hover      { background:#EAF7FD; }                 /* x19 */
.niq-hv-bg-green:hover     { background:#F0F8E7; }                 /* x20 */
.niq-hv-bg-pink:hover      { background:#FDECF1; }                 /* x21 */
.niq-hv-bg-purple:hover    { background:#F7EDF7; }                 /* x22 */
.niq-hv-bg-indigo:hover    { background:#EDEFFA; }                 /* x23 */

/* -- Paler tint variants (secondary buttons / pills) -- */
.niq-hv-bg-cyan-pale:hover    { background:#E4F5FD; }               /* x31 */
.niq-hv-bg-green-pale:hover   { background:#EDF7DE; }               /* x32 */
.niq-hv-bg-pink-pale:hover    { background:#FCE4EC; }               /* x34 */
.niq-hv-bg-purple-pale:hover  { background:#F3E1F3; }               /* x36 */
.niq-hv-bg-purple-mist:hover  { background:#F5E4F5; }               /* x29 */
.niq-hv-bg-cyan-light:hover   { background:#7FD3F2; }               /* x24 */
.niq-hv-bg-green-bright:hover { background:#C2E894; }               /* x25 */
.niq-hv-bg-purple-mid:hover   { background:#DFA0DD; }               /* x37 */

/* -- Solid brand-color bg (buttons/chips on saturated bands) -- */
.niq-hv-action:hover      { background:#0F7FB4; }                  /* x8 — primary button hover */
.niq-hv-cyan:hover        { background:#29ABE2; }                  /* x11 */
.niq-hv-cyan-band:hover   { background:#1499D6; }                  /* x43 */
.niq-hv-green-dark:hover  { background:#4C7A1E; }                  /* x17 */
.niq-hv-purple-dark:hover   { background:#5E175C; }                /* x27 */
.niq-hv-purple-darker:hover { background:#651864; }                /* x28 */
.niq-hv-pink-dark:hover   { background:#A5113C; }                  /* x35 */

/* -- White / overlay states (buttons + nav items on dark or colored bands) -- */
.niq-hv-white:hover       { background:#FFFFFF; }                  /* x9 */
.niq-hv-white-12:hover    { background:rgba(255,255,255,.12); }    /* x10 */
.niq-hv-white-16-text:hover { background:rgba(255,255,255,.16); color:#FFFFFF; } /* x30 */
.niq-hv-white-18:hover    { background:rgba(255,255,255,.18); }    /* x18 */
.niq-hv-white-20:hover    { background:rgba(255,255,255,.2); }     /* x14 */
.niq-hv-white-22:hover    { background:rgba(255,255,255,.22); }    /* x38 */

/* -- Text-only color changes (links/labels on dark bands) -- */
.niq-hv-text-white:hover      { color:#FFFFFF; }                   /* x12 */
.niq-hv-text-cyan-light:hover { color:#7FD3F2; }                   /* x13 */

/* -- Transforms (buttons, badges, cards) -- */
.niq-hv-scale:hover  { transform:scale(1.06); }                    /* x15 */
.niq-hv-lift-4:hover { transform:translateY(-4px); }                /* x16 */
.niq-hv-lift-3:hover { transform:translateY(-3px); }                /* x33 — same as .niq-lift */
.niq-hv-lift-shadow:hover { transform:translateY(-4px); box-shadow:0 24px 44px -28px rgba(16,24,40,.4); } /* x40 */

/* -- Borders -- */
.niq-hv-border-cyan:hover  { background:#EAF7FD; border-color:#29ABE2; } /* x26 */
.niq-hv-border-ink:hover   { border-color:#0F1B2D; }                      /* x41 */
.niq-hv-border-green:hover { border-color:#5F9424; }                      /* x42 */
.niq-hv-underline-ink:hover { color:#0F1B2D; border-bottom-color:#E5E9F0; } /* x39 — footer/legal links */

/* =====================================================================
   Primary navigation — per-item owner-hue tint pairs.
   Ground truth: export index.html nav (data-hv attributes) + styles.css
   x0/x2/x3/x4/x5/x6/x7. Each nav item owns its page's hue and shows that
   hue's tint pair on hover AND while it is the current page (the export
   is static and has no active state; the active styling reuses the item's
   own hover pair so the current page is legible without an ink-dark box).
   Classes are set per menu item via _menu_item_classes on the <li>.
   !important is required because Elementor's Nav Menu widget emits its own
   uniform hover/active colours at higher specificity; the export itself
   uses !important on the same rules.
   ===================================================================== */
.niq-nav-cyan    > a:hover, .niq-nav-cyan.current-menu-item    > a, .niq-nav-cyan.current-menu-ancestor    > a, .niq-nav-cyan.current-page-ancestor    > a,
.niq-nav-cyan    > a:focus { background:#EAF7FD !important; color:#0B6F9E !important; }   /* x0 */
.niq-nav-green   > a:hover, .niq-nav-green.current-menu-item   > a, .niq-nav-green.current-menu-ancestor   > a, .niq-nav-green.current-page-ancestor   > a,
.niq-nav-green   > a:focus { background:#F0F8E7 !important; color:#4C7A1E !important; }   /* x2 */
.niq-nav-pink    > a:hover, .niq-nav-pink.current-menu-item    > a, .niq-nav-pink.current-menu-ancestor    > a, .niq-nav-pink.current-page-ancestor    > a,
.niq-nav-pink    > a:focus { background:#FDECF1 !important; color:#A5113C !important; }   /* x3 */
.niq-nav-purple  > a:hover, .niq-nav-purple.current-menu-item  > a, .niq-nav-purple.current-menu-ancestor  > a, .niq-nav-purple.current-page-ancestor  > a,
.niq-nav-purple  > a:focus { background:#F7EDF7 !important; color:#7C1F7A !important; }   /* x4 */
.niq-nav-indigo  > a:hover, .niq-nav-indigo.current-menu-item  > a, .niq-nav-indigo.current-menu-ancestor  > a, .niq-nav-indigo.current-page-ancestor  > a,
.niq-nav-indigo  > a:focus { background:#EDEFFA !important; color:#2B3990 !important; }   /* x5 */
.niq-nav-yellow  > a:hover, .niq-nav-yellow.current-menu-item  > a, .niq-nav-yellow.current-menu-ancestor  > a, .niq-nav-yellow.current-page-ancestor  > a,
.niq-nav-yellow  > a:focus { background:#FFF8DE !important; color:#8A6B00 !important; }   /* x7 */
.niq-nav-neutral > a:hover, .niq-nav-neutral.current-menu-item > a, .niq-nav-neutral.current-menu-ancestor > a, .niq-nav-neutral.current-page-ancestor > a,
.niq-nav-neutral > a:focus { background:#F2F6FA !important; color:#0F1B2D !important; }   /* x6 */

/* "Book a demo" menu item (niq-nav-demo): CTA that lives ONLY in the collapsed
   dropdown — the horizontal desktop nav already has the header button widget. */
.elementor-nav-menu--main li.niq-nav-demo { display:none !important; } /* Elementor's layout-horizontal li rule outspecifies the bare class pair */
.elementor-nav-menu--dropdown .niq-nav-demo > a,
.elementor-nav-menu--dropdown .niq-nav-demo > a:hover {
  background:#1499D6 !important; color:#FFFFFF !important;
  border-radius:8px; margin:12px 16px; justify-content:center; text-align:center;
  font-weight:700;
}

/* Nav item chips: one radius on the base element so hover, focus, and
   current-page states all share the same curve (buttons/inputs token, 8px). */
.elementor-nav-menu--main .elementor-item { border-radius:8px; }

/* Idle nav items keep the export's base link colour even when "active". */
.elementor-nav-menu--main .elementor-item,
.elementor-nav-menu--main .elementor-item.elementor-item-active { color:#4A5768; }

/* Dropdown children carry a 6x20 rounded hue bar before the label (export). */
.niq-nav-sub > a.elementor-sub-item { display:flex; align-items:center; gap:10px; }
.niq-nav-sub > a.elementor-sub-item::before {
  content:""; width:6px; height:20px; border-radius:3px; flex-shrink:0; background:currentColor;
}
.niq-nav-cyan.niq-nav-sub   > a.elementor-sub-item::before { background:#29ABE2; }
.niq-nav-green.niq-nav-sub  > a.elementor-sub-item::before { background:#6FA82C; }
.niq-nav-pink.niq-nav-sub   > a.elementor-sub-item::before { background:#D6205C; }
.niq-nav-purple.niq-nav-sub > a.elementor-sub-item::before { background:#7C1F7A; }
.niq-nav-indigo.niq-nav-sub > a.elementor-sub-item::before { background:#2B3990; }

@media (prefers-reduced-motion: reduce) {
  .niq-up,.niq-pop,.niq-float,.niq-bar-grow,.niq-sweep { animation:none; }
  .niq-lift,.niq-lift:hover,
  .niq-hv-scale:hover,.niq-hv-lift-4:hover,.niq-hv-lift-3:hover,.niq-hv-lift-shadow:hover {
    transition:none; transform:none; box-shadow:none;
  }
}

/* "90 days in" gradient-clipped numeral (export: linear-gradient(120deg,#29ABE2,#8DC63F 55%,#FFC400) + background-clip:text) */
.niq-90-gradient .elementor-heading-title, .niq-90-gradient {
  background-image: linear-gradient(120deg,#29ABE2,#8DC63F 55%,#FFC400);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}

/* Certifications band — uniform badge treatment (SWaM ships in full colour; match the grayscale set) */
.niq-certs img { filter: grayscale(1); opacity: .8; }

/* Footer logo — hard left align (widget align control not winning) */
.elementor-element-6870066, .elementor-element-6870066 .elementor-widget-container { text-align: left !important; align-self: flex-start; }

/* Kicker pill (export enterprise hero): inline pill hugging its text */
.niq-pill .elementor-heading-title { display:inline-block; background:#29ABE2; color:#FFFFFF; padding:6px 14px; border-radius:999px; }

/* Text-editor paragraphs: the export never carries a trailing bottom margin on a
   body paragraph (spacing comes from the next element's top margin).
   Site-wide: every page build uses explicit `_margin` spacing. */
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* Icon-box title: the theme's heading margin adds an 8px top gap the export
   doesn't have (export stacks title + description with no leading space). */
.elementor-widget-icon-box .elementor-icon-box-title { margin-top: 0; }

/* Borderless text-link buttons ("Explore →"): the inline-block anchor picks up a
   baseline descender gap from the wrapper's line box that the export's inline
   <span> doesn't have. Zero the wrapper's line-height; the anchor sets its own. */
.niq-linkbtn { line-height: 0; }

/* "1 supplier record" circular badge (enterprise architecture header): inner
   cyan ring, inset 7px inside the 118px circle — matches export markup. */
.niq-ring { position: relative; }
.niq-ring::before { content:""; position:absolute; inset:7px; width:auto !important; height:auto !important; border-radius:999px; border:3px solid #1499D6; pointer-events:none; }
/* width/height auto !important: Elementor's .e-con::before overlay rule forces
   width/height to max(100%,...), which turns inset:7px into a 7px down-right
   offset instead of a centered 104px ring. */

/* Enterprise dropdown "Enterprise overview" row — export: bold ink label with a
   hairline divider separating it from the five solution children below. */
.niq-nav-overview > a.elementor-sub-item { font-weight:700; color:#0F1B2D; }
.niq-nav-overview > a.elementor-sub-item { border-bottom:1px solid #EDF1F6; margin-bottom:6px; padding-bottom:11px; }

/* In-post CTA callout (.niq-cta-box — Gutenberg group in all 15 posts).
   Cyan tint card per the design contract; button forced to the primary spec
   because the theme's default wp-element-button hover made the label
   unreadable (light bg + white text). */
.niq-cta-box {
  background: #EAF7FD;
  border: 1px solid #C6E9F8;
  border-radius: 12px;
  padding: 24px 26px;
}
.niq-cta-box p { color: #0F1B2D; font-weight: 600; font-size: 16.5px; }
.niq-cta-box .wp-block-buttons { margin-top: 14px; }
.niq-cta-box .wp-element-button,
.niq-cta-box .wp-block-button__link {
  background: #1499D6 !important;
  color: #FFFFFF !important;
  border: none !important;
  border-radius: 8px !important;
  padding: 12px 22px !important;
  font-weight: 700;
  transition: background-color .2s ease;
}
.niq-cta-box .wp-element-button:hover,
.niq-cta-box .wp-element-button:focus,
.niq-cta-box .wp-block-button__link:hover,
.niq-cta-box .wp-block-button__link:focus {
  background: #0F7FB4 !important;
  color: #FFFFFF !important;
}

/* Orphaned last card in a 3-col auto-fit grid: seat it in the middle column.
   Media-guarded so the single-column mobile grid never gets a forced 2nd track. */
@media (min-width: 700px) {
  .niq-grid-center-orphan { grid-column: 2; }
}

/* Site-wide scroll-to-top button — fixed cyan circle, bottom-right, fades in
   after the page has scrolled past 600px (markup + toggle JS injected via
   functions.php on wp_footer). */
.niq-scrolltop {
  position: fixed;
  right: 22px;
  bottom: 22px;
  width: 46px;
  height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: 999px;
  background: #29ABE2;
  box-shadow: 0 14px 28px -12px rgba(11,20,34,.55);
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity .25s ease, transform .25s ease, background-color .2s ease;
  z-index: 9999;
}
.niq-scrolltop.is-visible { opacity: 1; pointer-events: auto; transform: translateY(0); }
.niq-scrolltop:hover, .niq-scrolltop:focus-visible { background: #1499D6; }
.niq-scrolltop svg { width: 18px; height: 18px; display: block; pointer-events: none; }

@media (prefers-reduced-motion: reduce) {
  .niq-scrolltop { transition: opacity .01s linear; transform: none; }
}

/* Full-width submit button (connect + demo WPForms, forms 74/76 — spec calls for
   a full-card-width "Send message"/"Request your session" button; WPForms Lite's
   per-field size control tops out at "large" and has no native submit-width
   option, so this is applied via the form's own submit_class setting). */
.wpforms-form button.wpforms-submit.niq-submit-full { width: 100%; }

/* Partners "What you get" — export's 4+2 layout: last two cards span two tracks
   at desktop (single column under 560 unaffected; tablet keeps its own floor). */
@media (min-width: 1080px) {
  .niq-span2 { grid-column: span 2; }
}

/* Export forms show no required asterisks (fields are semantically required only). */
.wpforms-form .wpforms-required-label { display: none; }

/* Full-width Elementor button (export: connect demo-card "Book a demo" spans the card). */
.niq-btn-full { width: 100%; }
.niq-btn-full .elementor-button-wrapper,
.niq-btn-full .elementor-button { width: 100%; }

/* Pin a flex-column child to the bottom of its container via margin-top:auto.
   Elementor's own `_margin` "custom" control wraps the bottom value in
   `calc(var(--kit-widget-spacing,0px) + 0)` — a bare unitless 0 added to a
   length inside calc(), which this site's browser rejects as invalid,
   dropping the WHOLE margin shorthand (including the "auto" top value) back
   to 0. Bypass it with a dedicated class (suppliers pricing/plan-card
   buttons, 2026-08-25). Use this variant for a button with real trailing
   content below it (Premium's "No card required" caption) — that caption
   supplies its own gap, so the button needs no extra reserve. */
.niq-btn-pin-bottom { margin-top: auto !important; margin-bottom: 0 !important; }

/* Same as .niq-btn-pin-bottom, but for buttons with NOTHING below them
   (Basic, Prime): reserves a blank 25px footer band — matching Premium's
   caption footprint (10px gap + 15px line = 25px) exactly — so all three
   button BOTTOMS land on one shared baseline across unequal card content. */
.niq-btn-pin-bottom-reserve { margin-top: auto !important; margin-bottom: 25px !important; }

/* Same calc()-invalidation bug (see .niq-btn-pin-bottom above) also breaks plain
   px `_margin` values on widgets whenever the kit auto-appends its bottom-spacing
   calc() — even with no "auto" involved, ANY margin shorthand containing that
   calc() fragment is dropped whole by this browser, silently zeroing margin-top
   too. Suppliers pricing-card "+ Everything in X" rows (2026-08-25). */
.niq-row-spaced { margin-top: 14px !important; margin-bottom: 10px !important; }

/* WPForms compact rhythm per export (connect/demo/report forms): tight label-to-input,
   ~14px between fields, textarea ~110px (WPForms "large" would default it to 220px). */
.elementor-widget-wpforms .wpforms-container .wpforms-field { padding: 7px 0; }
.elementor-widget-wpforms .wpforms-form .wpforms-field-label { margin-bottom: 6px; }
.elementor-widget-wpforms .wpforms-form textarea.wpforms-field-large { height: 112px !important; min-height: 112px !important; }

/* =====================================================================
   Media page — Loop Grid blog/press cards + featured post card.
   Elementor Pro Loop Builder (Loop_Grid widget + `loop-item` documents
   321/322/323), post 24, 2026-08-24.
   ===================================================================== */

/* Card image slot: fixed 180px, clips the featured image (or dynamic bg)
   to fill exactly; when a post has no featured image the widget renders
   nothing and the tinted placeholder panel below shows through. */
.niq-card-image { position: relative; height: 180px; overflow: hidden; }
.niq-card-image img { position: absolute; inset: 0; object-fit: cover; margin: 0; }

/* Card accent bar + tint placeholder + kicker: rotate pink/green/yellow/cyan/purple
   by position within the grid (5-color cycle), scoped to the shared grid wrapper class. */
.niq-loop-cards .e-loop-item:nth-of-type(5n+1) .niq-card-image { background: #FDECF1; }
.niq-loop-cards .e-loop-item:nth-of-type(5n+1) .niq-card-bar   { background: #EC1E5A; }
.niq-loop-cards .e-loop-item:nth-of-type(5n+1) .niq-card-kicker .elementor-heading-title { color: #EC1E5A; }

.niq-loop-cards .e-loop-item:nth-of-type(5n+2) .niq-card-image { background: #F0F8E7; }
.niq-loop-cards .e-loop-item:nth-of-type(5n+2) .niq-card-bar   { background: #6FA82C; }
.niq-loop-cards .e-loop-item:nth-of-type(5n+2) .niq-card-kicker .elementor-heading-title { color: #6FA82C; }

.niq-loop-cards .e-loop-item:nth-of-type(5n+3) .niq-card-image { background: #FFF8DE; }
.niq-loop-cards .e-loop-item:nth-of-type(5n+3) .niq-card-bar   { background: #FFC400; }
.niq-loop-cards .e-loop-item:nth-of-type(5n+3) .niq-card-kicker .elementor-heading-title { color: #FFC400; }

.niq-loop-cards .e-loop-item:nth-of-type(5n+4) .niq-card-image { background: #EAF7FD; }
.niq-loop-cards .e-loop-item:nth-of-type(5n+4) .niq-card-bar   { background: #29ABE2; }
.niq-loop-cards .e-loop-item:nth-of-type(5n+4) .niq-card-kicker .elementor-heading-title { color: #29ABE2; }

.niq-loop-cards .e-loop-item:nth-of-type(5n+5) .niq-card-image { background: #F7EDF7; }
.niq-loop-cards .e-loop-item:nth-of-type(5n+5) .niq-card-bar   { background: #7C1F7A; }
.niq-loop-cards .e-loop-item:nth-of-type(5n+5) .niq-card-kicker .elementor-heading-title { color: #7C1F7A; }

.niq-loop-cards .e-loop-item { height: 100%; }
.niq-loop-cards .e-loop-item > .e-con,
.niq-loop-cards .e-loop-item > .elementor-widget-container > .e-con { height: 100%; }
.niq-card-cta { margin-top: auto; }

/* FEATURED pill badge (media featured post card) — same convention as .niq-pill. */
.niq-pill-featured .elementor-heading-title {
  display: inline-block; background: #FFC400; color: #1A1503;
  padding: 6px 14px; border-radius: 999px;
  font: 700 11.5px 'Public Sans', sans-serif; letter-spacing: .16em; text-transform: uppercase;
}

/* Featured post card — image half fallback tint (single item, no rotation needed). */
.niq-featured-image { position: relative; overflow: hidden; background: #16233A; }
.niq-featured-image img { position: absolute; inset: 0; object-fit: cover; margin: 0; }

/* copy-review 2026-08-30: pin card footers below the hairline to an even baseline */
.niq-push-bottom { margin-top: auto !important; }

/* copy-review 2026-08-30: load-more brand button on media hub */
.elementor-24 .elementor-widget-loop-grid .elementor-button,
.elementor-24 .e-load-more-anchor ~ * .elementor-button {
  background-color: rgb(20,153,214) !important;
  color: #fff !important;
  border-radius: 8px;
  font-weight: 700;
  padding: 12px 26px;
  border: none;
}

/* copy-review 2026-08-30: legal-page list indentation */
.page-id-150 .elementor-widget-theme-post-content ul,
.page-id-150 .elementor-widget-theme-post-content ol,
.page-id-151 .elementor-widget-theme-post-content ul,
.page-id-151 .elementor-widget-theme-post-content ol {
  padding-left: 2.2em;
  margin: 10px 0 18px;
}
.page-id-150 .elementor-widget-theme-post-content li,
.page-id-151 .elementor-widget-theme-post-content li {
  margin: 7px 0;
}
.page-id-150 .elementor-widget-theme-post-content ul ul,
.page-id-151 .elementor-widget-theme-post-content ul ul,
.page-id-150 .elementor-widget-theme-post-content ol ol,
.page-id-151 .elementor-widget-theme-post-content ol ol {
  margin: 6px 0 6px;
  padding-left: 1.8em;
}

/* copy-review 2026-08-30: plan-list checkmarks top-aligned on wrapped lines */
.elementor-element-203f7d2 .elementor-icon-list-item,
.elementor-element-0d4741c .elementor-icon-list-item,
.elementor-element-0db9eed .elementor-icon-list-item {
  align-items: flex-start !important;
}
.elementor-element-203f7d2 .elementor-icon-list-icon,
.elementor-element-0d4741c .elementor-icon-list-icon,
.elementor-element-0db9eed .elementor-icon-list-icon {
  padding-top: 4px;
}

/* copy-review 2026-08-30: legal-page typography */
.page-id-150 .elementor-widget-theme-post-content h2, .page-id-151 .elementor-widget-theme-post-content h2 {
  font-family: 'Public Sans', sans-serif !important; font-size: 24px !important; font-weight: 800 !important; color: #0F1B2D !important;
  margin: 40px 0 12px !important; line-height: 1.25 !important;
}
.page-id-150 .elementor-widget-theme-post-content h3, .page-id-151 .elementor-widget-theme-post-content h3 {
  font-family: 'Public Sans', sans-serif !important; font-size: 19px !important; font-weight: 700 !important; color: #0F1B2D !important;
  margin: 28px 0 10px !important; line-height: 1.3 !important;
}
.page-id-150 .elementor-widget-theme-post-content h4, .page-id-151 .elementor-widget-theme-post-content h4 {
  font-family: 'Public Sans', sans-serif !important; font-size: 16.5px !important; font-weight: 700 !important; color: #0F1B2D !important;
  margin: 22px 0 8px !important;
}
.page-id-150 .elementor-widget-theme-post-content p, .page-id-151 .elementor-widget-theme-post-content p { margin: 0 0 14px !important; }
.page-id-150 .elementor-widget-theme-post-content > .elementor-widget-container > p:first-child,
.page-id-151 .elementor-widget-theme-post-content > .elementor-widget-container > p:first-child {
  color: #6B7788 !important; font-size: 14px !important; text-transform: uppercase !important; letter-spacing: .06em !important; font-weight: 600 !important;
}
.page-id-150 .elementor-widget-theme-post-content a, .page-id-151 .elementor-widget-theme-post-content a { color: #1499D6 !important; }


/* niq-hero-video-crop: oversize hero bg video so the YouTube branding bar sits off-screen */
.elementor-element-65dde96 { overflow: hidden; }
.elementor-element-65dde96 .elementor-background-video-container { transform: scale(1.18); }
