/*
 * Header + footer styles ported from dataplor-v2/assets/css/style.css,
 * limited to the .dpv2-header* / .dpv2-footer* rules (plus the CSS custom
 * properties they depend on) needed by the new header.php / footer.php now
 * in this theme. Nothing else in this theme's existing CSS is touched —
 * this file only adds what those two templates need to render correctly.
 *
 * Also note: this doesn't include the JS that drives the mobile menu
 * toggle, the mega-menu open/close, and the "scrolled" background swap —
 * that lives in dataplor-v2/assets/js/script.js and hasn't been ported.
 * Without it the header/footer will look right but the toggle/mega-menu
 * won't be interactive.
 */

/* Branded header/footer typeface. --font-heading/--font-body below point at
   these two family names — without the actual @font-face src, the browser
   silently falls back to the "sans-serif" at the end of each var() and every
   header/footer element renders in a generic system font at the wrong
   weight, instead of Eina01. Paths match dataplor-v2/assets/css/style.css:
   relative to this file (assets/css/) they resolve to assets/fonts/.
   NOTE: only the .ttf cut of these two weights ships in this theme's
   assets/fonts/ folder today — the .woff2/.woff files below still need to
   be copied over from dataplor-v2/assets/fonts/ (or dataplor-v2's originals)
   into this theme's assets/fonts/ folder for this to actually take effect. */
@font-face { font-family: 'Eina01-SemiBold'; src: url('../fonts/Eina01-SemiBold.woff2') format('woff2'), url('../fonts/Eina01-SemiBold.woff') format('woff'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Eina01-Regular'; src: url('../fonts/Eina01-Regular.woff2') format('woff2'), url('../fonts/Eina01-Regular.woff') format('woff'); font-weight: normal; font-style: normal; font-display: swap; }

.no-listed { list-style: none; }
.dpv2-header__cta, body .dpv2-header__cta { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.75rem 1.375rem; color: #2E3000; background-color: var(--color-hi-vis); border-radius: var(--radius-btn); font-size: 1rem; font-weight: 400; line-height: 1; text-decoration: none; font-family: var(--font-heading); white-space: nowrap; transition: 0.2s ease all; }
.dpv2-header__cta::after { content: ""; width: 0.9375rem; height: 0.75rem; display: inline-block; background: url("data:image/svg+xml,%3Csvg%20width%3D%2715%27%20height%3D%2712%27%20viewBox%3D%270%200%2015%2012%27%20fill%3D%27none%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cpath%20d%3D%27M14.8623%205.95459C15.0439%205.77295%2015.0439%205.47412%2014.8623%205.29248L9.70605%200.13623C9.52441-0.0454102%209.22559-0.0454102%209.04395%200.13623C8.86231%200.317871%208.86231%200.616699%209.04395%200.79834L13.4004%205.15479H0.46875C0.210938%205.15479%200%205.36572%200%205.62354C0%205.88135%200.210938%206.09229%200.46875%206.09229H13.4004L9.04395%2010.4487C8.86231%2010.6304%208.86231%2010.9292%209.04395%2011.1108C9.22559%2011.2925%209.52441%2011.2925%209.70605%2011.1108L14.8623%205.95459Z%27%20fill%3D%27%232E3000%27/%3E%3C/svg%3E") center/contain no-repeat; }
.dpv2-header__cta:hover { gap: 0.75rem; }

:root{ --color-data: #4152F3; --color-data-900: #0d1031; --color-data-indigo: #3D3DC8; --color-data-navy: #1a1f6e; --color-glass: #E0E0E0; --color-glass-500: #00cdc3; --color-glass-900: #002927; --color-glass-100: #f5f9f9; --color-glass-150: #f0faf9; --color-glass-200: #ccf5f3; --color-glass-300: #99ebe7; --color-glass-600: #00a49c; --color-glass-700: #00524e; --color-glass-800: #004d49; --color-glass-bright: #00d8d0; --color-border-soft: #e4e4ef; --color-text-slate: #3b3a4f; --color-dusk: #b585e0; --color-hi-vis: #DFF114; --color-brick: #f24b16; --color-white: #FFFFFF; --color-black: #000000; --color-sidewalk: #F1EEEC; --color-concrete: #8b8886; --color-iron: #3f3c3a; --color-cool-gray-90: #21272a; --color-hero-start: #3D62F5; --color-hero-end: #8388F3; --font-heading: "Eina01-SemiBold", sans-serif; --font-body: "Eina01-Regular", sans-serif; --radius-btn: 3.125rem; --radius-card: 1.25rem; --radius-card-inner: 2rem; --dpv2-header-height: 5rem; }

/* The header is position:fixed, so the page needs top padding equal to its
   height or the header will sit on top of/hide the first bit of content. */
body { padding-top: var(--dpv2-header-height); }

/* Header CSS */
.dpv2-header { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; height: var(--dpv2-header-height); background-color: transparent; transition: background-color 0.3s ease; }
.dpv2-header--scrolled { background-color: rgba(255, 255, 255, 0.85); backdrop-filter: blur(0.625rem); -webkit-backdrop-filter: blur(0.625rem); }
.dpv2-header--light { background-color: var(--color-white); }
.dpv2-header--light.dpv2-header--scrolled { background-color: rgba(255, 255, 255, 0.85); }
.dpv2-header--light.dpv2-header--mega-open,
.dpv2-header--light.dpv2-header--scrolled.dpv2-header--mega-open { background-color: var(--color-white); }

.dpv2-header--light .dpv2-header__logo-img--inverse { display: none; }
.dpv2-header--light .dpv2-header__logo-img--default { display: block; }
.dpv2-header--light .dpv2-header__toggle-bar { background-color: var(--color-iron); }
.dpv2-header--light .dpv2-header__nav-link { color: var(--color-iron); }
.dpv2-header--light .dpv2-header__cta { background-color: var(--color-hi-vis) !important; color: #2E3000 !important; }

/* Single post pages — light header via WordPress body.single class */
body.single .dpv2-header { background-color: var(--color-white); }
body.single .dpv2-header.dpv2-header--scrolled { background-color: rgba(255, 255, 255, 0.85); }
body.single .dpv2-header.dpv2-header--mega-open,
body.single .dpv2-header.dpv2-header--scrolled.dpv2-header--mega-open { background-color: var(--color-white); }
body.single .dpv2-header .dpv2-header__logo-img--inverse { display: none; }
body.single .dpv2-header .dpv2-header__logo-img--default { display: block; }
body.single .dpv2-header .dpv2-header__toggle-bar { background-color: var(--color-iron); }
body.single .dpv2-header .dpv2-header__nav-link { color: var(--color-iron); }
body.single .dpv2-header .dpv2-header__cta { background-color: var(--color-hi-vis) !important; color: #2E3000 !important; }
.dpv2-header--menu-open { background-color: var(--color-white); }
.dpv2-header--mega-open { background-color: var(--color-white); }
.dpv2-header__container { position: relative; z-index: 1; height: 100%; max-width: 90rem; }
.dpv2-header__inner { display: flex; align-items: center; justify-content: space-between; height: 100%; gap: 1.875rem; }
/* .without-header — logo-only header for Google Ads landing pages etc.
   (set via the "Add Class Name" ACF field, applied to <body> in
   functions.php). The old navbar-based header hid itself via
   ".without-header .nav-links{display:none}" in custom-2.css, targeting
   markup that no longer exists now that header.php uses the dpv2-header
   design — this is the equivalent for the new markup, hiding the nav/CTA
   menu and the mobile toggle, then centering the lone logo in the bar. */
.without-header .dpv2-header__menu,
.without-header .dpv2-header__toggle { display: none; }
.without-header .dpv2-header__inner { justify-content: center; }
.dpv2-header__logo { display: flex; align-items: center; flex-shrink: 0; width: 10rem; text-decoration: none; }
.dpv2-header__logo:focus-visible { opacity: 0.85; }
.dpv2-header__logo-img { display: block; width: 8.6875rem; height: 2.25rem; }
.dpv2-header__logo-img--inverse { display: block; }
.dpv2-header__logo-img--default { display: none; }
.dpv2-header--scrolled .dpv2-header__logo-img--inverse,
.dpv2-header--menu-open .dpv2-header__logo-img--inverse,
.dpv2-header--mega-open .dpv2-header__logo-img--inverse { display: none; }
.dpv2-header--scrolled .dpv2-header__logo-img--default,
.dpv2-header--menu-open .dpv2-header__logo-img--default,
.dpv2-header--mega-open .dpv2-header__logo-img--default { display: block; }
.dpv2-header__toggle { display: none; flex-direction: column; justify-content: center; align-items: center; gap: 0.375rem; width: 1.5rem; height: 1.125rem; padding: 0; border: 0; border-radius: 0.25rem; background: transparent; cursor: pointer; transition: background-color 0.3s ease; }
.dpv2-header__toggle:focus-visible { outline: 0.125rem solid var(--color-data); outline-offset: 0.125rem; }
.dpv2-header__toggle-bar { display: block; width: 1.5rem; height: 0.0625rem; background-color: var(--color-white); border-radius: 0.0625rem; transition: transform 0.3s ease, opacity 0.3s ease, background-color 0.3s ease; }
.dpv2-header--scrolled .dpv2-header__toggle-bar,
.dpv2-header--menu-open .dpv2-header__toggle-bar { background-color: var(--color-iron); }
.dpv2-header__toggle[aria-expanded="true"] .dpv2-header__toggle-bar:nth-child(1) { transform: translateY(0.21875rem) rotate(45deg); }
.dpv2-header__toggle[aria-expanded="true"] .dpv2-header__toggle-bar:nth-child(2) { transform: translateY(-0.21875rem) rotate(-45deg); }
/* Menu CSS */
.dpv2-header__menu { display: flex; align-items: center; justify-content: flex-end; flex: 1; gap: 1.875rem; }
.dpv2-header__nav { display: flex; align-items: center; }
.dpv2-header__nav-list { display: flex; align-items: center; gap: 1.875rem; margin: 0; padding: 0; }
.dpv2-header__nav-link { display: inline-flex; align-items: center; min-height: 2.8125rem; font-family: var(--font-heading); font-size: 1rem; font-weight: 400; line-height: 2.8125rem; color: var(--color-white); text-decoration: none; white-space: nowrap; transition: color 0.3s ease, opacity 0.3s ease; }
.dpv2-header--scrolled .dpv2-header__nav-link,
.dpv2-header--menu-open .dpv2-header__nav-link,
.dpv2-header--mega-open .dpv2-header__nav-link { color: var(--color-iron); }
.dpv2-header__nav-link--solutions,
.dpv2-header__nav-item--has-children > .dpv2-header__nav-link { display: inline-flex; }
.dpv2-header__nav-link:focus-visible { outline: 0.125rem solid var(--color-data); outline-offset: 0.125rem; border-radius: 0.125rem; }
.dpv2-header__actions { display: flex; align-items: center; justify-content: flex-end; flex-shrink: 0; width: 8.5rem; }
body .dpv2-header__cta { white-space: nowrap; padding: 0.75rem 1.375rem; }
body .dpv2-header__cta:focus-visible { outline: 0.125rem solid var(--color-data); outline-offset: 0.125rem; }
.dpv2-header__nav-trigger { display: none; align-items: center; width: 100%; min-height: auto; padding: 0; border: 0; background: transparent; font-family: var(--font-heading); font-size: 2rem; font-weight: 400; line-height: 1.15; letter-spacing: -0.02em; color: var(--color-iron); text-align: left; cursor: pointer; }
.dpv2-header__nav-trigger:focus-visible { outline: 0.125rem solid var(--color-data); outline-offset: 0.125rem; border-radius: 0.125rem; }
.dpv2-header__menu-panel { display: contents; }
.dpv2-header__menu-panel--solutions,
.dpv2-header__menu-panel--submenu { display: none; }
.dpv2-header__solutions-title,
.dpv2-header__submenu-title { margin: 0; padding: 0; border: 0; background: transparent; font-family: var(--font-heading); font-size: 2rem; font-weight: 400; line-height: 1.15; letter-spacing: -0.02em; color: var(--color-iron); text-align: left; cursor: pointer; }
.dpv2-header__solutions-title:focus-visible,
.dpv2-header__submenu-title:focus-visible { outline: 0.125rem solid var(--color-data); outline-offset: 0.125rem; border-radius: 0.125rem; }
.dpv2-header__solutions-sub,
.dpv2-header__submenu-sub { display: flex; flex-direction: column; gap: 1.875rem; width: 100%; }
.dpv2-header__nav--solutions-extra,
.dpv2-header__nav--submenu-extra { width: 100%; }
.dpv2-header__mega-cards > .dpv2-header__mega-menu-item { display: flex; flex: 1 1 0; min-width: 0; margin: 0; padding: 0; }
.dpv2-header__mega-cards > .dpv2-header__mega-menu-item > .dpv2-header__mega-card { width: 100%; }
/* Mega menu CSS */
.dpv2-header__backdrop { position: fixed; top: var(--dpv2-header-height); left: 0; right: 0; bottom: 0; z-index: 999; background-color: rgba(255, 255, 255, 0.55); backdrop-filter: blur(1rem); -webkit-backdrop-filter: blur(1rem); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity var(--dpv2-header-mega-duration, 0.32s) cubic-bezier(0.4, 0, 0.6, 1), visibility 0s linear var(--dpv2-header-mega-duration, 0.32s); }
.dpv2-header__backdrop.is-visible { opacity: 1; visibility: visible; pointer-events: auto; transition: opacity var(--dpv2-header-mega-duration, 0.32s) cubic-bezier(0.4, 0, 0.6, 1), visibility 0s step-start 0s; }
.dpv2-header__mega {display: block; position: fixed; top: var(--dpv2-header-height); left: 0; right: 0; z-index: 1001; height: 0; overflow: hidden; background-color: var(--color-white); border-radius: 0; visibility: hidden; pointer-events: none; transition: height var(--dpv2-header-mega-duration, 0.32s) cubic-bezier(0.4, 0, 0.6, 1), visibility 0s linear var(--dpv2-header-mega-duration, 0.32s); }
.dpv2-header__mega.is-visible { visibility: visible; pointer-events: auto; transition: height var(--dpv2-header-mega-duration, 0.32s) cubic-bezier(0.4, 0, 0.6, 1), visibility 0s step-start 0s; }
.dpv2-header__mega-container { max-width: 90rem; padding-top: 2rem; padding-bottom: 2.5rem; }
.dpv2-header__mega-cards { display: flex; gap: 2.5rem; width: 100%;padding-left: 0; }
.dpv2-header__mega-card { position: relative; display: flex; flex: 1; flex-direction: column; justify-content: space-between; min-height: 12.5rem; padding: 1.25rem; overflow: hidden; text-decoration: none; transition: transform 0.3s ease; }
.dpv2-header__mega-card--platform { background-color: var(--color-glass-500); border-radius: 0.75rem; }
.dpv2-header__mega-card--dataset { background-color: var(--color-data); border-radius: 0.75rem; }
/* Matches .dpv2-approach-cards__card-hero--lottie's own pattern: the canvas
   is a real sibling DOM element (not a ::before), pulled out of flow and
   positioned behind the title/desc text via position:absolute + a lower
   stacking order, rather than the card showing only a full-bleed canvas
   with no text at all. Text stays on top via the existing z-index:1 on
   .dpv2-header__mega-card-title/-desc above. */
.dpv2-header__mega-card--lottie { position: relative; overflow: hidden; }
.dpv2-header__mega-card-lottie {
    position: absolute;
    left: 38%;
    right: 0;
    top: -10px;
    bottom: auto;
    display: block;
    pointer-events: none;
    width: 90%;
}
.dpv2-header__mega-cards > .dpv2-header__mega-menu-item:nth-child(2) .dpv2-header__mega-card-lottie {
    transform: scale(1.1);
    top: -30px;
}
.dpv2-header__mega-card-title { position: relative; z-index: 1; margin: 0; font-family: var(--font-heading); font-weight: 400; line-height: 1.2; letter-spacing: -0.02em; }
.dpv2-header__mega-card--platform .dpv2-header__mega-card-title { font-size: 2rem; color: var(--color-glass-900); }
.dpv2-header__mega-card--dataset .dpv2-header__mega-card-title { font-size: 2rem; color: var(--color-white); }
.dpv2-header__mega-card-desc { position: relative; z-index: 1; margin: 0; max-width: 11.25rem; font-family: var(--font-body); font-size: 1rem; font-weight: 400; line-height: 1.4; }
.dpv2-header__mega-card--platform .dpv2-header__mega-card-desc { color: var(--color-glass-900); }
.dpv2-header__mega-card--dataset .dpv2-header__mega-card-desc { color: var(--color-white); }
.dpv2-header__mega-card-graphic--platform { position: absolute; right: -0.625rem; bottom: 1.25rem; width: 17.3125rem; height: auto; pointer-events: none; }
.dpv2-header__mega-card-graphic--platform img { display: block; width: 100%; height: auto; }
.dpv2-header__mega-tags { position: absolute; right: -4.8125rem; bottom: 0.625rem; display: flex; flex-direction: column; align-items: center; gap: 0.625rem; pointer-events: none; }
.dpv2-header__mega-tags-row { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.625rem; }
.dpv2-header__mega-tag { display: inline-flex; align-items: center; justify-content: center; padding: 0.75rem 0.75rem 0.5625rem; border: 0.0625rem solid var(--color-white); border-radius: 0.375rem; font-family: var(--font-body); font-size: 0.9375rem; font-weight: 400; line-height: 1.02; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-white); white-space: nowrap; }
body.dpv2-header-mega-open { overflow: hidden; }

/* Footer CSS */
.dpv2-footer { background-color: var(--color-data-900); color: var(--color-white); }
.dpv2-footer__container { display: flex; flex-direction: column; max-width: 90rem; padding-top: 3.75rem; padding-bottom: 1.25rem; }
.dpv2-footer__bottom-container{display: flex; flex-direction: column; max-width: 90rem;}
.dpv2-footer__main { display: flex; align-items: flex-start; justify-content: space-between; gap: 2.5rem; width: 100%; }
.dpv2-footer__logo { display: flex; flex-shrink: 0; align-items: center; justify-content: center; width: 2.375rem; height: 2.875rem; padding: 0; border: 0; background: transparent; cursor: pointer; transition: opacity 0.3s ease; }
.dpv2-footer__logo:hover,
.dpv2-footer__logo:focus-visible { opacity: 0.85; }
.dpv2-footer__logo:focus-visible { outline: 0.125rem solid var(--color-data); outline-offset: 0.25rem; border-radius: 0.125rem; }
.dpv2-footer__logo-img { display: block; width: 2.375rem; height: 2.875rem; }
.dpv2-footer__links { display: flex; flex: 1; justify-content: flex-end; gap: 2.5rem; max-width: 65.58%; }

.dpv2-footer__col { flex: 1 1 0; min-width: 0; }
.dpv2-footer__col--split { display: flex; flex-direction: column; gap: 2.5rem; }
.dpv2-footer__heading { margin: 0; font-family: var(--font-heading); font-size: 0.875rem; font-weight: 400; line-height: 1.15; color: var(--color-white); }
.dpv2-footer__list { display: flex; flex-direction: column; gap: 0.875rem; margin: 0.875rem 0 0; padding: 0; }
.dpv2-footer__col--split .dpv2-footer__list { margin-top: 0.875rem; }
.dpv2-footer__link { display: inline-block; font-family: var(--font-body); font-size: 0.875rem; font-weight: 400; line-height: 1.15; color: var(--color-white); text-decoration: none; transition: opacity 0.3s ease; }
.dpv2-footer__link:hover,
.dpv2-footer__link:focus-visible { opacity: 0.7; }
.dpv2-footer__link:focus-visible { outline: 0.125rem solid var(--color-data); outline-offset: 0.125rem; border-radius: 0.125rem; }
.dpv2-footer__bottom { margin-top: 6.25rem; padding: 1.25rem 0; border-top: 0.0625rem solid var(--color-data); }
.dpv2-footer__legal { display: flex; flex-wrap: wrap; align-items: center; gap: 2.5rem; margin: 0; padding: 0; }
.dpv2-footer__legal-item { font-family: var(--font-body); font-size: 0.875rem; font-weight: 400; line-height: 1.15; color: var(--color-data); white-space: nowrap; }
.dpv2-footer__legal-link { color: inherit; text-decoration: none; transition: opacity 0.3s ease; }
.dpv2-footer__legal-link:hover,
.dpv2-footer__legal-link:focus-visible { opacity: 0.7; }
.dpv2-footer__legal-link:focus-visible { outline: 0.125rem solid var(--color-data); outline-offset: 0.125rem; border-radius: 0.125rem; }
.dpv2-header__nav-list li {
    display: inline-flex;
}

.dpv2-header__nav-list li a {
    font-weight: 500;
    font-family: "Eina01-SemiBold", sans-serif;
}

.dpv2-footer__link:hover {
    color: var(--color-white);
}

.dpv2-footer__list li {
    display: inline-block;
}

.dpv2-footer__legal-item {
    display: inline-block;
}

.dpv2-footer__legal-link:hover {
    color: inherit;
}

footer.dpv2-footer {
    padding: 0;
}

@media (max-width: 1024px) {
  /* Variables */
  :root { --dpv2-header-height: 4.5rem; }
  /* Header */
  .dpv2-header__container { padding-left: 1.5rem; padding-right: 1.5rem; }
  .dpv2-header__logo { width: 6.75rem; }
  .dpv2-header__logo-img { width: 6.75rem; height: 1.75rem; }
  .dpv2-header__toggle { display: flex; }
  .dpv2-header__nav-link--solutions,
  .dpv2-header__nav-item--has-children > .dpv2-header__nav-link { display: none; }
  .dpv2-header__nav-trigger { display: inline-flex; justify-content: space-between; }
  .dpv2-header__nav-trigger::after { display: none; }
  .dpv2-header__nav-item--has-children { display: flex; flex-direction: column; align-items: flex-start; width: 100%; gap: 0; transition: gap 380ms ease; }
  .dpv2-header__nav-item--has-children.is-content-visible { gap: 1.875rem; }
  .dpv2-header__nav-item--has-children > .dpv2-header__mega { display: none; position: static; top: auto; left: auto; right: auto; width: 100%; height: 0; overflow: hidden; opacity: 1; visibility: visible; pointer-events: auto; transform: none; background: transparent; transition: height 380ms ease; }
  .dpv2-header__nav-item--has-children.is-open > .dpv2-header__mega { display: block; }
  .dpv2-header__nav-item--has-children.is-open > .dpv2-header__mega .dpv2-header__mega-cards > * { opacity: 0; transform: translateY(-0.75rem); transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
  .dpv2-header__nav-item--has-children.is-open > .dpv2-header__mega .dpv2-header__mega-cards > *:nth-child(1) { transition-delay: 0.08s; }
  .dpv2-header__nav-item--has-children.is-open > .dpv2-header__mega .dpv2-header__mega-cards > *:nth-child(2) { transition-delay: 0s; }
  .dpv2-header__nav-item--has-children.is-open.is-content-visible > .dpv2-header__mega .dpv2-header__mega-cards > * { opacity: 1; transform: translateY(0); }
  .dpv2-header__nav-item--has-children.is-open.is-content-visible > .dpv2-header__mega .dpv2-header__mega-cards > *:nth-child(1) { transition-delay: 0s; }
  .dpv2-header__nav-item--has-children.is-open.is-content-visible > .dpv2-header__mega .dpv2-header__mega-cards > *:nth-child(2) { transition-delay: 0.08s; }
  .dpv2-header__nav-item--has-children.is-open > .dpv2-header__mega .dpv2-header__mega-container { padding: 0; max-width: none; }
  .dpv2-header__nav-item--has-children.is-open > .dpv2-header__mega .dpv2-header__mega-cards { flex-direction: column; gap: 1.25rem; padding-left: 0; }
  .dpv2-header__nav-item--has-children.is-open > .dpv2-header__mega .dpv2-header__mega-card { position: relative; height: 14rem; min-height: 14rem; padding: 1.25rem; gap: 0.75rem; justify-content: flex-start; }
  .dpv2-header__nav-item--has-children.is-open > .dpv2-header__mega .dpv2-header__mega-card--lottie { height: 14rem; min-height: 14rem; padding: 1.25rem; overflow: hidden; border-radius: 1rem; }
  .dpv2-header__nav-item--has-children.is-open > .dpv2-header__mega .dpv2-header__mega-card--lottie .dpv2-header__mega-card-title { font-size: 1.625rem; letter-spacing: -0.01625em; }
  .dpv2-header__nav-item--has-children.is-open > .dpv2-header__mega .dpv2-header__mega-card-lottie { position: absolute;
        left: 48%;
        right: 0;
        top: -50px;
        bottom: 0;
        display: block;
        pointer-events: none;
        width: 70%;}
  .dpv2-header__nav-item--has-children.is-open > .dpv2-header__mega .dpv2-header__mega-cards > .dpv2-header__mega-menu-item:nth-child(2) .dpv2-header__mega-card-lottie { transform: scale(1.1);
        top: -40px; }
  .dpv2-header__nav-item--has-children.is-open > .dpv2-header__mega .dpv2-header__mega-card--platform { display: flex; flex-direction: column; gap: 1.25rem; }
  .dpv2-header__nav-item--has-children.is-open > .dpv2-header__mega .dpv2-header__mega-card--dataset .dpv2-header__mega-card-title { margin-bottom: 1.25rem; }
  .dpv2-header__nav-item--has-children.is-open > .dpv2-header__mega .dpv2-header__mega-card--platform .dpv2-header__mega-card-title { font-size: 1.75rem; letter-spacing: -0.0175em; }
  .dpv2-header__nav-item--has-children.is-open > .dpv2-header__mega .dpv2-header__mega-card-desc { max-width: 14rem; font-size: 1.125rem; }
  .dpv2-header__nav-item--has-children.is-open > .dpv2-header__mega .dpv2-header__mega-card--platform .dpv2-header__mega-card-desc, .dpv2-header__nav-item--has-children.is-open > .dpv2-header__mega .dpv2-header__mega-card--dataset .dpv2-header__mega-card-desc { line-height: 1.45; }
  .dpv2-header__nav-item--has-children.is-open > .dpv2-header__mega .dpv2-header__mega-card-graphic--platform { right: -0.5rem; bottom: -1.5rem; width: 13.375rem; height: 7.6875rem; }
  .dpv2-header__nav-item--has-children.is-open > .dpv2-header__mega .dpv2-header__mega-card-graphic--platform img { width: 100%; height: 100%; object-fit: contain; object-position: right bottom; }
  .dpv2-header__nav-item--has-children.is-open > .dpv2-header__mega .dpv2-header__mega-tags { right: -3.5rem; bottom: -2.5rem; align-items: center; gap: 0.464375rem; }
  .dpv2-header__nav-item--has-children.is-open > .dpv2-header__mega .dpv2-header__mega-tags-row { justify-content: flex-end; gap: 0.464375rem; }
  .dpv2-header__nav-item--has-children.is-open > .dpv2-header__mega .dpv2-header__mega-tag { padding: 0.556875rem 0.556875rem 0.4175rem; border-width: 0.0464375rem; border-radius: 0.2784375rem; font-size: 0.696125rem; letter-spacing: 0.0696125em; }
  .dpv2-header__menu { position: fixed; top: calc(var(--dpv2-header-height) - 1px); left: 0; right: 0; height: calc(100dvh - var(--dpv2-header-height)); max-height: calc(100dvh - var(--dpv2-header-height)); flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 0; padding: 0; background-color: var(--color-white); visibility: hidden; pointer-events: none; clip-path: inset(0 0 100% 0); transition: clip-path 0.4s ease, visibility 0s linear 0.4s; overflow: hidden; z-index: 1000; }
  .dpv2-header__menu.is-open { visibility: visible; pointer-events: auto; clip-path: inset(0 0 0% 0); transition: clip-path 0.4s ease, visibility 0s linear 0s; }
  .dpv2-header__menu-panel { display: none; position: relative; flex: 1; width: 100%; min-height: 0; height: 100%; overflow: hidden; opacity: 0; transition: opacity 0.3s ease; }
  .dpv2-header__menu-panel.is-active { display: block; }
  .dpv2-header__menu.is-open .dpv2-header__menu-panel.is-active { opacity: 1; transition: opacity 0.3s ease 0.15s; }
  .dpv2-header__menu-scroll { height: 100%; overflow-x: hidden; overflow-y: auto; padding: 3.75rem 1.5rem; -webkit-overflow-scrolling: touch; }
  .dpv2-header__nav-list { flex-direction: column; align-items: flex-start; gap: 3.125rem; width: 100%; }
  .dpv2-header__nav-link { width: 100%; min-height: auto; font-size: 2rem; line-height: 1.15; letter-spacing: -0.02em; color: var(--color-iron); padding: 0; }
  .dpv2-header__actions { position: absolute; right: 0; bottom: 0; left: 0; z-index: 10; width: 100%; padding: 1.25rem 1.5rem 2.5rem; margin-top: 0; justify-content: flex-start; background-color: transparent; pointer-events: none; }
  body .dpv2-header__cta { width: auto; justify-content: center; pointer-events: auto; padding: 1.125rem 1.375rem; }
  body.dpv2-header-menu-open { overflow: hidden; }
  /* Footer */
  .dpv2-footer__container { gap: 3.75rem; padding-left: 1.5rem; padding-right: 1.5rem; }
  .dpv2-footer__main { flex-direction: column; gap: 3.75rem; }
  .dpv2-footer__links { align-items: flex-start; max-width: none; width: 100%; gap: 2.5rem; justify-content: space-between; flex-wrap: wrap;}
  .dpv2-footer__col { flex: none; width: 47%; }
  .dpv2-footer__col--split { gap: 2.5rem; }
  .dpv2-footer__bottom{margin-top: 2.5rem;}
  .dpv2-footer__bottom-container{padding-left: 1.5rem;padding-right: 1.5rem;}
}

@media (max-width: 767px) {
  /* Mega menu — lottie card position tweak for narrower phones, on top of
     the ≤1024px block's mobile lottie rules above. */
  .dpv2-header__nav-item--has-children.is-open > .dpv2-header__mega .dpv2-header__mega-card-lottie {
        position: absolute;
        left: 28%;
        right: auto;
        top: auto;
        bottom: -30px;
        display: block;
        pointer-events: none;
        width: 100%;
    }
    .dpv2-header__nav-item--has-children.is-open > .dpv2-header__mega .dpv2-header__mega-cards > .dpv2-header__mega-menu-item:nth-child(2) .dpv2-header__mega-card-lottie {
        transform: scale(1.1);
        top: auto;
        bottom: -40px;
    }
  /* Footer */
  .dpv2-footer__links{flex-direction: column;}
  .dpv2-footer__col{width: 100%;}
  .dpv2-footer__legal { flex-direction: column; align-items: flex-start; gap: 0.875rem; }
  .dpv2-footer__legal-item--copyright { order: 3; }
  .dpv2-footer__legal-item:nth-child(2) { order: 1; }
  .dpv2-footer__legal-item:nth-child(3) { order: 2; }
}

@media (max-width: 380px) {
  .dpv2-header__nav-item--has-children.is-open > .dpv2-header__mega .dpv2-header__mega-tags{right: -4rem; bottom: -2.8125rem; scale: 0.85;}
}

@media (min-width: 1025px) {
  :root { --dpv2-header-mega-duration: 0.32s; --dpv2-header-mega-ease: cubic-bezier(0.4, 0, 0.6, 1); }
  .dpv2-header { transition: background-color var(--dpv2-header-mega-duration) var(--dpv2-header-mega-ease); }
  .dpv2-header--mega-open { background-color: var(--color-white); }
  .dpv2-header--mega-open .dpv2-header__logo-img--inverse { display: none; }
  .dpv2-header--mega-open .dpv2-header__logo-img--default { display: block; }
  .dpv2-header--mega-open .dpv2-header__toggle-bar { background-color: var(--color-iron); }
  .dpv2-header--mega-open .dpv2-header__nav-link { color: var(--color-iron); transition: color var(--dpv2-header-mega-duration) var(--dpv2-header-mega-ease); }
  .dpv2-header__menu-panel--solutions,
  .dpv2-header__menu-panel--submenu { display: none !important; }
}

@media (min-width: 1440px) {
  .dpv2-header__container { padding-left: 7.5rem; padding-right: 7.5rem; }
  .dpv2-header__mega-container { padding-left: 7.5rem; padding-right: 7.5rem; }
  .dpv2-footer__container { padding-left: 7.5rem; padding-right: 7.5rem; }
  .dpv2-footer__bottom-container { padding-left: 7.5rem; padding-right: 7.5rem; }
}

@media (prefers-reduced-motion: reduce) {
  .dpv2-header__mega, .dpv2-header__backdrop, .dpv2-header__nav-item--has-children, .dpv2-header__nav-item--has-children .dpv2-header__mega-cards > * { transition: none !important; }
  .dpv2-header__nav-item--has-children.is-open > .dpv2-header__mega .dpv2-header__mega-cards > * { opacity: 1 !important; transform: none !important; }
}
.page a.dpv2-footer__link{
    color: var(--color-white);
}
.page a.dpv2-footer__link:hover, .page a.dpv2-footer__link:focus, .page a.dpv2-footer__link:focus-visible {
    color: var(--color-white);
    opacity: 0.7;
}
.dpv2-header__mega[hidden] {
    display: block !important;
}
.btn-check:checked+.btn:focus-visible, .btn.active:focus-visible, 
.btn.show:focus-visible, .btn:first-child:active:focus-visible, :not(.btn-check)+.btn:active:focus-visible {
    box-shadow: none;
    outline: none;
    border: none;
}
.dpv2-header__actions .dpv2-header__cta:focus-visible, .dpv2-header__actions .dpv2-header__cta:focus {
    box-shadow: none;
    outline: none;
    border: none;
}