/* ==========================================================================
   datavisualization.ca - page styles for the Avada builder pages
   Part of the dv-core plugin (assets/dv.css). Loaded only on pages built
   with the dv section classes. Do not paste into the child theme.

   Everything is scoped under .dv (every builder container carries class "dv"
   plus "dv-dark" or "dv-light" and a "section-<name>" class), so nothing here
   touches the header, footer, blog or any page you build by hand.
   Colours, spacing and column widths live in the builder elements themselves;
   this file adds type scale, small text treatments, cards, focus rings and the
   live visualization frames. Fonts: register Montserrat in Avada Global
   Options > Typography (no font links here).
   ========================================================================== */

:root {
  --dv-navy: #0A1A33;
  --dv-navy-deep: #071226;
  --dv-navy-raised: #12274A;
  --dv-teal: #16BFB4;
  --dv-teal-hover: #3FD3C9;
  --dv-teal-dark: #0A7E76;
  --dv-blue: #1A6FD6;
  --dv-blue-dark: #0F4E9E;
  --dv-page: #F6F8FB;
  --dv-pale-teal: #E6F4F3;
  --dv-ink: #2C3A4F;
  --dv-muted: #4C5A6E;
  --dv-on-dark: #C5D2E3;
  --dv-muted-on-dark: #93A4BC;
  --dv-rule: #D6DEE8;
  --dv-chip-rule: #B9C5D4;
  --dv-rule-dark: #2E4466;
  --dv-outline-dark: #6F86A8;
  --dv-viz-ground: #101417;
}

/* ---------- type scale ---------- */
.dv .fusion-title { margin-top: 0 !important; margin-bottom: 16px !important; }
.dv .fusion-title .fusion-title-heading { font-weight: 800; letter-spacing: -0.02em; text-wrap: balance; }
.dv .dv-h1 .fusion-title-heading { font-size: 54px !important; line-height: 1.08 !important; letter-spacing: -0.025em; }
.dv .dv-h1-compact .fusion-title-heading { font-size: 24px !important; line-height: 1.25 !important; letter-spacing: -0.01em; }
.dv .dv-h2 .fusion-title-heading { font-size: 34px !important; line-height: 1.15 !important; }
.dv .dv-h3 .fusion-title-heading { font-size: 20px !important; line-height: 1.3 !important; font-weight: 700; letter-spacing: 0; }

.dv .fusion-text p { margin: 0 0 1em; }
.dv .fusion-text p:last-child,
.dv .fusion-text ul:last-child { margin-bottom: 0; }
.dv .dv-body,
.dv .dv-body p,
.dv .dv-body li { font-size: 17px; line-height: 1.65; }
.dv .dv-body ul { margin: 0; padding-left: 22px; }
.dv .dv-body li { margin-bottom: 10px; }
.dv .dv-body strong { color: var(--dv-navy); }
.dv .dv-lede p { font-size: 19px; line-height: 1.6; max-width: 40em; }
.dv .dv-small p { font-size: 14px; line-height: 1.55; }
.dv .dv-prose .fusion-builder-column-wrapper,
.dv .dv-prose > .fusion-column-wrapper { max-width: 880px; margin: 0 auto; }
.dv .dv-prose .dv-h2 { margin-top: 24px !important; }

/* eyebrow labels */
.dv .dv-eyebrow p { margin: 0 0 12px; font-size: 13px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.dv-dark .dv-eyebrow p { display: inline-block; padding: 6px 12px; border-radius: 6px; background: var(--dv-navy-raised); }

/* breadcrumb */
.dv .dv-crumb p { margin: 0 0 14px; font-size: 14px; }
.dv .dv-crumb a { color: var(--dv-on-dark); text-decoration: underline; text-underline-offset: 3px; }
.dv .dv-crumb a:hover { color: #FFFFFF; }

/* links inside text */
.dv-light .fusion-text a { color: var(--dv-blue-dark); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.dv-dark .fusion-text a { color: #FFFFFF; text-decoration: underline; text-underline-offset: 3px; }
.dv .dv-more p { margin-top: 8px; font-size: 16px; }

/* ---------- focus (WCAG 2.4.7) ---------- */
.dv a:focus-visible,
.dv button:focus-visible,
.dv .fusion-button:focus-visible { outline: 3px solid var(--dv-blue); outline-offset: 3px; }
.dv-dark a:focus-visible,
.dv-dark button:focus-visible,
.dv-dark .fusion-button:focus-visible { outline-color: var(--dv-teal); }

/* ---------- buttons ---------- */
.dv .fusion-button { font-weight: 700; letter-spacing: 0; text-transform: none; min-height: 48px; }
.dv .dv-btnrow .fusion-button-wrapper { margin: 0; }
.dv .dv-btnrow-end > .fusion-column-wrapper { justify-content: flex-end; }

/* ---------- logo, images ---------- */
.dv .dv-logo { max-width: 320px; margin-bottom: 20px; }
.dv .dv-shot img { border-radius: 14px; border: 1px solid var(--dv-rule-dark); }
.dv .dv-chart img { border-radius: 8px; }
.dv .dv-cardimg { display: block; margin-bottom: 18px; }
.dv .dv-cardimg img { width: 100%; aspect-ratio: 1200 / 630; object-fit: cover; border-radius: 10px; background: var(--dv-viz-ground); }

/* ---------- stat tiles ---------- */
.dv .dv-stat p { margin: 0; }
.dv .dv-stat p:first-child { font-size: 30px; font-weight: 800; line-height: 1.1; letter-spacing: -0.02em; }
.dv .dv-stat p:last-child { font-size: 14px; line-height: 1.4; margin-top: 4px; }
.dv-dark .dv-stat p:first-child { color: #FFFFFF; }
.dv-light .dv-stat p:first-child { color: var(--dv-navy); }
.dv.section-hero .dv-stat p:first-child { font-size: 24px; }

/* ---------- cards ---------- */
.dv .dv-card > .fusion-column-wrapper { box-shadow: 0 10px 30px -22px rgba(10, 26, 51, 0.5); }
.dv .dv-linkcard > .fusion-column-wrapper { transition: transform 0.2s ease, box-shadow 0.2s ease; }
.dv .dv-linkcard:hover > .fusion-column-wrapper { transform: translateY(-3px); box-shadow: 0 18px 36px -22px rgba(10, 26, 51, 0.6); }
.dv .dv-linkcard .fusion-column-anchor:focus-visible { outline: 3px solid var(--dv-blue); outline-offset: -3px; border-radius: 14px; }
.dv .dv-linktext { margin-top: auto !important; }
.dv .dv-linktext p { margin: 8px 0 0; font-size: 15px; font-weight: 700; }
.dv .dv-card .fontawesome-icon { margin: 0 0 12px; }

/* "what we stand for" strip */
.dv .dv-point p { margin: 0; font-size: 16px; font-weight: 700; line-height: 1.35; }

/* how it works step numbers */
.dv .dv-stepnum p { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; margin: 0 0 14px; border-radius: 50%; background: var(--dv-teal); color: var(--dv-navy); font-weight: 800; font-size: 17px; }

/* chips */
.dv .dv-chips ul { list-style: none; margin: 0 0 18px; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.dv .dv-chips li { margin: 0; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--dv-chip-rule); background: #FFFFFF; color: var(--dv-navy); font-size: 13px; font-weight: 700; letter-spacing: 0.12em; }
.dv .dv-tagline { margin-top: 18px; }
.dv .dv-tagline p { font-size: 20px; font-weight: 800; line-height: 1.3; }

/* checklist */
.dv .dv-check .fusion-li-item-content p { margin: 0; font-size: 18px; font-weight: 600; }

/* draft / placeholder label */
.dv .dv-note p { margin: 0 0 8px; padding: 14px 18px; border-radius: 10px; background: #FFF6E0; border: 1px solid #E8C770; font-size: 15px; }

/* FAQ + table toggles */
.dv .dv-faq .panel-title a,
.dv .dv-tabletoggle .panel-title a { font-weight: 700; }
.dv .dv-faq .toggle-content p { font-size: 17px; line-height: 1.65; color: var(--dv-ink); }
.dv .dv-tabletoggle table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.dv .dv-tabletoggle caption { text-align: left; font-weight: 700; color: var(--dv-navy); padding: 0 0 8px; }
.dv .dv-tabletoggle th,
.dv .dv-tabletoggle td { padding: 8px 12px; border-bottom: 1px solid var(--dv-rule); text-align: left; color: var(--dv-ink); }
.dv .dv-tabletoggle td { text-align: right; }

/* ---------- live visualizations ---------- */
/* [dataviz] poster-first embed (embed.js injects its base CSS; these win on specificity) */
.dv div.vizembed { border-radius: 16px; border: 1px solid var(--dv-rule-dark); box-shadow: 0 30px 70px -30px rgba(0, 0, 0, 0.75); margin-bottom: 16px; }
.dv div.vizembed .vizbtn { left: auto; right: 20px; bottom: 20px; transform: none; min-height: 52px; padding: 0 24px; background: var(--dv-teal); color: var(--dv-navy); font: 700 16px/1 Montserrat, "Segoe UI", Arial, sans-serif; }
.dv div.vizembed .vizbtn:hover { background: var(--dv-teal-hover); }

/* [dataviz_full] full-page frame */
.dv .dvca-full-bar { display: flex; justify-content: flex-end; margin: 0 0 10px; }
.dv .dvca-full-btn { min-height: 44px; padding: 0 18px; border-radius: 8px; border: 1.5px solid var(--dv-outline-dark); background: transparent; color: #FFFFFF; font: 600 15px Montserrat, "Segoe UI", Arial, sans-serif; cursor: pointer; }
.dv .dvca-full-btn:hover { border-color: #FFFFFF; }
.dv .dvca-full-frame { display: block; width: 100%; height: calc(100vh - 190px); min-height: 620px; border: 1px solid var(--dv-rule-dark); border-radius: 14px; background: var(--dv-viz-ground); }
.dv .dv-stage .dv-small { margin-top: 12px; }
.dv .dv-viz p:empty { display: none; margin: 0; }
.dv.section-live { overflow: hidden; }

/* [dataviz_filters] Examples gallery */
.dv .dvca-filters { display: flex; flex-wrap: wrap; gap: 10px; margin: 4px 0 10px; }
.dv .dvca-filter { transition: background-color .2s ease, border-color .2s ease, color .2s ease, transform .15s ease; min-height: 44px; padding: 0 18px; border-radius: 999px; border: 1px solid var(--dv-chip-rule); background: #FFFFFF; color: var(--dv-navy); font-family: inherit; font-weight: 700; font-size: 15px; cursor: pointer; }
.dv .dvca-filter:hover { border-color: var(--dv-navy); }
.dv .dvca-filter:active { transform: scale(.97); }
.dv .dvca-filter[aria-pressed="true"] { background: var(--dv-navy); border-color: var(--dv-navy); color: #FFFFFF; }
.dv .dvca-count { margin: 0; font-size: 14px; color: var(--dv-muted); }

/* ---------- Book a Discovery Call ---------- */
.dv .dv-formcard .gform_wrapper { margin: 8px 0 0; }
.dv .dv-formcard .gform_wrapper .gform_footer input[type="submit"],
.dv .dv-formcard .gform_wrapper .gform_footer button { min-height: 52px; padding: 0 28px; font-weight: 700; font-size: 16px; border-radius: 8px; }
.dv .dv-formcard .gform_wrapper .gfield_required { color: #4C5A6E; font-weight: 400; }
.dv .dv-form-missing { padding: 14px 18px; border-radius: 10px; background: #FFF6E0; border: 1px solid #E8C770; color: #5A4300; }
.dv .dv-steps .dv-steptitle { margin-bottom: 6px !important; }
.dv .dv-steps .dv-steptitle .fusion-title-heading { font-size: 17px !important; }
.dv .dv-steps .dv-stepnum p { width: 32px; height: 32px; font-size: 15px; margin-bottom: 8px; }
.dv .dv-steps .dv-stepnum { margin-top: 12px; }
.dv .dv-explorecard .fusion-button-wrapper { display: block; margin-top: 10px; }
.dv.section-thanks .dv-btnrow { margin-top: 12px; }

/* ---------- For Agencies: partnership steps, roles, photos ---------- */
.dv .dv-photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 14px; }
.dv.section-whitelabel .fusion-button-wrapper { display: block; margin-top: 18px; }
.dv .dv-credit p { margin: 8px 0 0; font-size: 12px; }
.dv .dv-bignum p { margin: 0 0 10px; font-size: 40px; font-weight: 800; line-height: 1; letter-spacing: -0.02em; color: #0A1A33; }
.dv .dv-role p { display: inline-block; margin: 0 0 12px; padding: 5px 11px; border-radius: 999px; font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.dv .dv-role-you p { background: #E6F4F3; color: #0A7E76; }
.dv .dv-role-us p { background: #EAF2FC; color: #0F4E9E; }
.dv .dv-role-together p { background: #0A1A33; color: #FFFFFF; }
.dv .dv-role-split p { background: linear-gradient(90deg, #EAF2FC 0%, #EAF2FC 50%, #E6F4F3 50%, #E6F4F3 100%); color: #0A1A33; }
.dv .dv-step > .fusion-column-wrapper { border-top-width: 5px !important; }
.dv .dv-step-you > .fusion-column-wrapper { border-top-color: #16BFB4 !important; }
.dv .dv-step-together > .fusion-column-wrapper { border-top-color: #0A1A33 !important; }
.dv .dv-step-split > .fusion-column-wrapper { border-top-color: #1A6FD6 !important; }
.dv .dv-legend p { margin: 18px 0 0; font-size: 14px; line-height: 2.2; color: #4C5A6E; }
.dv .dv-key { display: inline-block; margin: 0 6px 0 0; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; line-height: 1.6; }
.dv .dv-keyitem { display: inline-block; white-space: nowrap; margin: 0 18px 6px 0; }
@media (max-width: 800px) { .dv.section-partner .fusion-layout-column:last-child { margin-bottom: 0 !important; } }
.dv .dv-key-you { background: #E6F4F3; color: #0A7E76; }
.dv .dv-key-us { background: #EAF2FC; color: #0F4E9E; }
.dv .dv-key-together { background: #0A1A33; color: #FFFFFF; }

/* ---------- Accessibility page ---------- */
.dv .dv-std { background: #FFFFFF; border: 1px solid #D6DEE8; border-radius: 14px; padding: 22px 26px; margin-bottom: 16px; }
.dv .dv-std-ours { background: #0A1A33; border-color: #0A1A33; box-shadow: inset 6px 0 0 #16BFB4; margin-bottom: 0; }
.dv .dv-std p { margin: 0; }
.dv .dv-std .dv-std-k { font-size: 12px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #4C5A6E; margin-bottom: 6px; }
.dv .dv-std .dv-std-v { font-size: 34px; font-weight: 800; line-height: 1.1; letter-spacing: -0.01em; color: #0A1A33; margin-bottom: 8px; }
.dv .dv-std .dv-std-n { font-size: 15px; line-height: 1.5; color: #4C5A6E; }
.dv .dv-std-ours .dv-std-k { color: #3FD3C9; }
.dv .dv-std-ours .dv-std-v { color: #FFFFFF; }
.dv .dv-std-ours .dv-std-n { color: #C5D2E3; }
.dv kbd { display: inline-block; padding: 0 7px; margin: 0 1px; border: 1px solid #B9C6D6; border-bottom-width: 2px; border-radius: 5px; background: #F6F8FB; font-family: inherit; font-size: 0.85em; font-weight: 700; line-height: 1.6; color: #0A1A33; }
.dv .dv-feature .fontawesome-icon { margin-bottom: 14px !important; }
.dv .dv-feature-try .dv-linktext-dark p { font-weight: 700; margin: 6px 0 0; }
.dv .dv-checks .dv-check { position: relative; padding: 18px 0 18px 64px; border-top: 1px solid #D6DEE8; }
.dv .dv-checks .dv-check:last-child { border-bottom: 1px solid #D6DEE8; }
.dv .dv-checks p { margin: 0; }
.dv .dv-checks .dv-check-n { position: absolute; left: 0; top: 16px; font-size: 32px; font-weight: 800; line-height: 1; color: #0A7E76; }
.dv .dv-checks .dv-check-t { font-size: 18px; font-weight: 700; color: #0A1A33; margin-bottom: 4px; }
.dv .dv-checks .dv-check-d { font-size: 16px; line-height: 1.6; color: #2C3A4F; }

/* ---------- Try it page: one screen, no oversized stage ---------- */
.dv.section-tryit .dv-tryline p { margin: 4px 0 0; font-size: 15px; }
.dv.section-tryit .dv-fsbtn p { margin: 0; }
.dv.section-tryit .dvca-full-frame { height: calc(100vh - 260px); min-height: 460px; max-height: 860px; }
.dv.section-tryit .dv-h1-compact { margin-bottom: 0 !important; }
.dv.section-tryit .dv-tryline { margin-top: 0 !important; }
.dv.section-tryit .dvca-full-btn { min-height: 48px; }
@media (max-width: 800px) { .dv.section-tryit .dvca-full-frame { height: 78vh; min-height: 480px; } .dv.section-tryit .dv-fsbtn { display: none; } .dv.section-tryit .dv-btnrow-end > .fusion-column-wrapper { justify-content: flex-start; } }

/* ---------- [dataviz_inline]: one chart in the page flow, sized by the chart itself ---------- */
.dv .dvca-inline { width: 100%; }
.dv .dvca-inline-frame { display: block; width: 100%; border: 0; border-radius: 14px; background: var(--dv-viz-ground); transition: height .2s ease; }
@media (prefers-reduced-motion: reduce) { .dv .dvca-inline-frame { transition: none; } }

/* ---------- Audit page: contents list, base badge, finding lead, "Show the numbers" tables ---------- */
.dv .dv-toc { list-style: none; margin: 8px 0 0; padding: 0; counter-reset: none; }
.dv .dv-toc li { margin: 0; border-top: 1px solid #D6DEE8; }
.dv .dv-toc li:last-child { border-bottom: 1px solid #D6DEE8; }
.dv .dv-toc a { display: flex; gap: 12px; align-items: baseline; padding: 11px 4px; font-weight: 600; color: #0A1A33; text-decoration: none; }
.dv .dv-toc a span { min-width: 22px; font-weight: 800; color: #0A7E76; }
.dv .dv-toc a:hover, .dv .dv-toc a:focus-visible { color: #1A6FD6; text-decoration: underline; }
.dv .dv-base { display: inline-block; padding: 3px 10px; border-radius: 999px; background: #E6F4F3; color: #0A7E76; font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.dv .dv-basewrap p { margin: 0 0 6px; }
.dv .dv-finding p { max-width: 820px; font-size: 19px; line-height: 1.6; color: #0A1A33; }
.dv .dv-figcap p { margin: 12px 0 0; max-width: 820px; color: #4C5A6E; }
.dv .dv-numbers { margin-top: 14px; border: 1px solid #D6DEE8; border-radius: 12px; background: #FFFFFF; }
.dv .dv-numbers summary { cursor: pointer; padding: 12px 16px; font-weight: 700; color: #0A1A33; min-height: 44px; display: flex; align-items: center; }
.dv .dv-numbers summary:focus-visible { outline: 3px solid #1A6FD6; outline-offset: 2px; border-radius: 12px; }
.dv .dv-tablewrap { overflow-x: auto; padding: 0 16px 16px; }
.dv .dv-tablebox table { width: 100%; border-collapse: collapse; font-size: 14px; }
.dv .dv-tablebox caption { text-align: left; padding: 4px 0 10px; color: #4C5A6E; }
.dv .dv-tablebox th, .dv .dv-tablebox td { padding: 8px 10px; border-bottom: 1px solid #E3E9F0; text-align: left; vertical-align: top; }
.dv .dv-tablebox thead th { font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; color: #4C5A6E; }
.dv .dv-tablebox tbody th { font-weight: 600; color: #0A1A33; }
.dv .dv-method th { width: 210px; color: #0A7E76 !important; }
.dv .dv-method + p, .dv .dv-tablebox + .fusion-text p { margin-top: 16px; }
@media (max-width: 800px) { .dv .dv-finding p { font-size: 17px; } .dv .dv-method th { width: auto; } .dv .dv-method tr { display: block; padding: 8px 0; } .dv .dv-method th, .dv .dv-method td { display: block; border: 0; padding: 2px 0; } }

/* ---------- Home: "one dataset, four views" morph (dvmorph.js) ---------- */
.dv .dv-morphfig { margin: 28px 0 0; }
.dv .dv-morph { position: relative; width: 100%; aspect-ratio: 4 / 3; border-radius: 16px; overflow: hidden; border: 1px solid #12274A;
  background: radial-gradient(120% 90% at 30% 20%, #12274A 0%, #0A1A33 55%, #071226 100%); box-shadow: 0 24px 48px -28px rgba(10, 26, 51, 0.7); }
.dv .dv-morph canvas { position: absolute; inset: 0; display: block; }
.dv .dv-morph .dv-morph-view { position: absolute; top: 14px; left: 16px; right: 16px; z-index: 1; margin: 0; font-size: 13px; font-weight: 700; color: #FFFFFF; letter-spacing: 0.02em; }
.dv .dv-morph .dv-morph-view span { color: #3FD3C9; margin-right: 6px; font-weight: 800; }
.dv .dv-morph .dv-morph-view em { display: block; font-style: normal; font-weight: 500; color: #93A4BC; font-size: 12px; margin-top: 2px; }
.dv .dv-morphfig figcaption { margin-top: 10px; font-size: 13px; line-height: 1.5; color: #4C5A6E; }
.dv .dv-morph-btn { margin-top: 10px; min-height: 44px; padding: 0 16px; border-radius: 999px; border: 1.5px solid #0A1A33; background: #FFFFFF; color: #0A1A33; font: 700 14px Montserrat, "Segoe UI", Arial, sans-serif; cursor: pointer; }
.dv .dv-morph-btn:hover { background: #0A1A33; color: #FFFFFF; }
.dv .dv-morph-btn:focus-visible { outline: 3px solid #1A6FD6; outline-offset: 2px; }
.dv.section-story .dv-numbers { margin-top: 12px; }

/* ---------- Audit findings as stat blocks: then -> now, colour by direction (arrow + word carry it too) ---------- */
.dv .dv-finding p { font-size: 22px !important; font-weight: 700; line-height: 1.35 !important; color: #0A1A33; margin: 6px 0 0; max-width: 860px; }
.dv .dv-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 14px; margin: 18px 0 6px; }
.dv .dv-kpi { background: #FFFFFF; border: 1px solid #D6DEE8; border-top: 5px solid #1A6FD6; border-radius: 14px; padding: 16px 18px 14px; display: flex; flex-direction: column; }
.dv .dv-kpi-up { border-top-color: #16BFB4; }
.dv .dv-kpi-down { border-top-color: #E0773C; }
.dv .dv-kpi p { margin: 0; }
.dv .dv-kpi .dv-kpi-label { font-size: 14px; font-weight: 600; line-height: 1.35; color: #4C5A6E; margin-bottom: 8px; }
.dv .dv-kpi .dv-kpi-vals { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 10px; margin-bottom: 10px; }
.dv .dv-kpi-from { font-size: 20px; font-weight: 600; color: #4C5A6E; }
.dv .dv-kpi-arrow { font-size: 20px; color: #93A4BC; }
.dv .dv-kpi-to { font-size: 30px; font-weight: 800; line-height: 1.1; letter-spacing: -0.01em; color: #0A1A33; }
.dv .dv-kpi .dv-kpi-foot { margin-top: auto; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.dv .dv-kpi-chg { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 13px; font-weight: 700; }
.dv .dv-kpi-chg.dv-kpi-up { background: #E6F4F3; color: #0A7E76; }
.dv .dv-kpi-chg.dv-kpi-down { background: #FDEDE4; color: #9A3D12; }
.dv .dv-kpi-note { font-size: 12px; color: #4C5A6E; }
.dv .dv-kpi-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.dv .dv-kpi-ends { margin: 4px 0 0 !important; font-size: 13px; color: #4C5A6E; }
.dv .dv-fullfinding { margin: 10px 0 18px; }
.dv .dv-fullfinding summary { cursor: pointer; display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; font-weight: 700; color: #1A6FD6; }
.dv .dv-fullfinding summary:focus-visible { outline: 3px solid #1A6FD6; outline-offset: 2px; border-radius: 6px; }
.dv .dv-fullfinding p { margin: 4px 0 0; max-width: 860px; font-size: 16px; line-height: 1.6; color: #2C3A4F; }
@media (max-width: 800px) { .dv .dv-finding p { font-size: 19px !important; } .dv .dv-kpi-to { font-size: 26px; } }

/* ---------- header grant network (assets/dvhero.js) ---------- */
.dv.dv-anim { position: relative; overflow: hidden; }
.dv.dv-anim > .dv-plot { position: absolute; top: 0; left: 0; pointer-events: none; z-index: 0; }
.dv.dv-anim > .fusion-builder-row { position: relative; z-index: 1; }

/* ---------- responsive type (column stacking is the builder's job) ---------- */
@media (max-width: 1024px) {
  .dv .dv-h1 .fusion-title-heading { font-size: 42px !important; }
  .dv .dv-h2 .fusion-title-heading { font-size: 29px !important; }
}
@media (max-width: 700px) {
  .dv .dv-h1 .fusion-title-heading { font-size: 32px !important; }
  .dv .dv-h1-compact .fusion-title-heading { font-size: 20px !important; }
  .dv .dv-h2 .fusion-title-heading { font-size: 25px !important; }
  .dv .dv-lede p { font-size: 17px; }
  .dv .dv-body, .dv .dv-body p, .dv .dv-body li { font-size: 16px; }
  .dv .dv-stat p:first-child { font-size: 24px; }
  .dv div.vizembed .vizbtn { right: 12px; bottom: 12px; min-height: 46px; padding: 0 18px; font-size: 15px; }
  .dv div.vizembed.is-live .vizframe-ratio { padding-top: 0 !important; height: 80vh; }
  .dv .dvca-full-frame { height: 82vh; min-height: 520px; }
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .dv .dv-linkcard > .fusion-column-wrapper { transition: none; }
  .dv .dv-linkcard:hover > .fusion-column-wrapper { transform: none; }
  .dv .dvca-filter { transition: none; }
  .dv .dvca-filter:active { transform: none; }
}
