:root {
  --dme-brand-navy: #0F2A3B;
  /* Framer-like expo ease-out */
  --dme-motion-ease: cubic-bezier(0.16, 1, 0.3, 1);
  --dme-motion-ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dme-motion-duration: 1100ms;
  --dme-motion-fast: 420ms;
  --dme-motion-distance: 28px;
  --dme-motion-card-distance: 36px;
  --dme-motion-blur: 6px;
  --dme-hover-shadow: 0 12px 28px rgba(0, 0, 0, 0.08);
}

html.dme-js,
html.dme-js body {
  background-color: var(--dme-brand-navy, #0F2A3B);
}

html.dme-js .dme-reveal {
  --dme-y: var(--dme-motion-distance);
  --dme-scale: 1;
  --dme-blur: 0px;
  opacity: 0;
  transform: translate3d(0, var(--dme-y), 0) scale(var(--dme-scale));
  filter: blur(var(--dme-blur));
  transition:
    opacity var(--dme-motion-duration) var(--dme-motion-ease),
    transform var(--dme-motion-duration) var(--dme-motion-ease),
    filter var(--dme-motion-duration) var(--dme-motion-ease);
  transition-delay: var(--dme-delay, 0ms);
  will-change: opacity, transform, filter;
}

html.dme-js .dme-reveal.dme-reveal-soft {
  transform: none;
  filter: none;
}

html.dme-js .dme-heading {
  --dme-y: 24px;
}

html.dme-js .dme-text {
  --dme-y: 20px;
}

html.dme-js .dme-button {
  --dme-y: 16px;
}

html.dme-js .dme-image {
  --dme-y: 24px;
  --dme-scale: 0.985;
  --dme-blur: var(--dme-motion-blur);
}

html.dme-js .dme-card,
html.dme-js .dme-accordion-item {
  --dme-y: var(--dme-motion-card-distance);
}

html.dme-js .dme-reveal.dme-in-view,
html.dme-js .dme-reveal.dme-revealed {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  filter: blur(0);
}

html.dme-js .dme-reveal.dme-reveal-soft.dme-in-view,
html.dme-js .dme-reveal.dme-reveal-soft.dme-revealed {
  transform: none;
}

/* KPI pair: the card is the only moving unit. Nested widgets stay still. */
html.dme-js .kpi-panel-item.dme-reveal,
html.dme-js .dme-kpi-item.dme-reveal {
  --dme-y: 36px;
  --dme-scale: 0.98;
  --dme-blur: 4px;
  transition-duration: 1250ms;
  transition-timing-function: var(--dme-motion-ease);
}

html.dme-js .kpi-panel-item.dme-reveal .dme-reveal,
html.dme-js .dme-kpi-item.dme-reveal .dme-reveal {
  opacity: 1;
  transform: none;
  filter: none;
  transition: none;
  --dme-y: 0px;
  --dme-scale: 1;
  --dme-blur: 0px;
}

/* Sticky header: hidden until scroll past buffer. Do NOT force children visible — that
   creates a "floating logo" and can revive Elementor's sticky spacer clone. */
#section-1:not(.elementor-sticky__spacer):not(.dme-hero-visible),
.dme-sticky-header:not(.elementor-sticky__spacer):not(.dme-hero-visible),
.elementor-element-ee5fbe4:not(.elementor-sticky__spacer):not(.dme-hero-visible) {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translate3d(0, -120%, 0) !important;
}

#section-1.dme-hero-visible:not(.elementor-sticky__spacer),
.dme-sticky-header.dme-hero-visible:not(.elementor-sticky__spacer),
.elementor-element-ee5fbe4.dme-hero-visible:not(.elementor-sticky__spacer) {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: none !important;
  z-index: 10050;
  transition:
    opacity 900ms var(--dme-motion-ease),
    transform 900ms var(--dme-motion-ease),
    visibility 0s linear 0s;
}

/* Always keep the Elementor sticky spacer clone invisible (placeholder only).
   Collapse its height so it cannot leave a white band above the hero. */
#section-1.elementor-sticky__spacer,
.dme-sticky-header.elementor-sticky__spacer,
.elementor-element-ee5fbe4.elementor-sticky__spacer {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
}

html.dme-js body:not(.elementor-editor-active) #section-2:not(.dme-takeover-from),
html.dme-js body:not(.elementor-editor-active) .dme-emblem-stage {
  margin-top: calc(-1 * var(--dme-header-offset, 0px));
}

html.dme-js body:not(.elementor-editor-active) #section-2:not(.elementor-sticky__spacer):not(.dme-takeover-from),
html.dme-js body:not(.elementor-editor-active) #section-3:not(.elementor-sticky__spacer):not(.dme-takeover-to) {
  min-height: 100vh;
  min-height: 100dvh;
}

body.elementor-editor-active #section-1:not(.elementor-sticky__spacer),
body.elementor-editor-active .dme-sticky-header:not(.elementor-sticky__spacer),
body.elementor-editor-active .elementor-element-ee5fbe4:not(.elementor-sticky__spacer) {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: none !important;
}

/* Prevent image-zoom / reveal effects inside the sticky header only after it shows */
.dme-hero-visible #tdh-logo,
.dme-hero-visible #tdh-logo img,
.dme-hero-visible .elementor-widget-image,
.dme-hero-visible .elementor-widget-image img {
  transform: none !important;
  filter: none !important;
  overflow: visible !important;
}

html.dme-js #section-1 .dme-hero-child,
html.dme-js .dme-sticky-header .dme-hero-child {
  --dme-y: 0px;
}

.dme-section {
  scroll-margin-top: 96px;
}

/* Lenis smooth-scroll helpers (Framer-like inertia) */
html.lenis,
html.lenis body {
  height: auto;
}

html.lenis.lenis-smooth {
  scroll-behavior: auto !important;
}

html.lenis.lenis-smooth [data-lenis-prevent] {
  overscroll-behavior: contain;
}

html.lenis.lenis-stopped {
  overflow: hidden;
}

html.dme-smooth-scroll {
  scroll-behavior: auto;
}

.dme-reveal.dme-revealed {
  will-change: auto;
}

.dme-stat .elementor-heading-title,
.dme-stat-value {
  font-variant-numeric: tabular-nums;
}

.dme-button.elementor-button,
.dme-button .elementor-button,
.elementor-button.dme-button {
  transform: translate3d(0, 0, 0);
  transition:
    transform var(--dme-motion-fast) var(--dme-motion-ease),
    box-shadow var(--dme-motion-fast) var(--dme-motion-ease),
    filter var(--dme-motion-fast) var(--dme-motion-ease);
}

@media (hover: hover) and (pointer: fine) {
  .dme-button.elementor-button:hover,
  .dme-button .elementor-button:hover,
  .elementor-button.dme-button:hover {
    transform: translate3d(0, -4px, 0) scale(1.02);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.09);
    filter: saturate(1.05);
  }

  .dme-card {
    transition:
      transform var(--dme-motion-fast) var(--dme-motion-ease),
      box-shadow var(--dme-motion-fast) var(--dme-motion-ease),
      filter var(--dme-motion-fast) var(--dme-motion-ease);
  }

  html.dme-js .kpi-panel-item.dme-reveal:not(.dme-revealed),
  html.dme-js .dme-kpi-item.dme-reveal:not(.dme-revealed) {
    transition:
      opacity 1250ms var(--dme-motion-ease),
      transform 1250ms var(--dme-motion-ease),
      filter 1250ms var(--dme-motion-ease);
  }

  html.dme-js .kpi-panel-item.dme-revealed.dme-card:hover,
  html.dme-js .dme-kpi-item.dme-revealed.dme-card:hover {
    transform: translate3d(0, -6px, 0);
    box-shadow: var(--dme-hover-shadow);
    filter: saturate(1.03);
  }

  /* Comparison table manages its own row hover — never lift the whole widget. */
  #tdh-compare.dme-card:hover,
  #tdh-compare:hover,
  .dme-comparison-enhanced.dme-card:hover,
  .dme-comparison-enhanced:hover,
  .dme-compare-no-card-hover:hover,
  .dme-compare-no-card-hover.dme-card:hover,
  .elementor-widget-ha-advanced-comparison-table.dme-card:hover,
  .elementor-widget-ha-advanced-comparison-table:hover {
    transform: none !important;
    box-shadow: none !important;
    filter: none !important;
  }

  .dme-card:hover {
    transform: translate3d(0, -6px, 0);
    box-shadow: var(--dme-hover-shadow);
    filter: saturate(1.03);
  }

  .dme-image,
  .elementor-widget-image,
  .elementor-widget-video {
    overflow: hidden;
  }

  .dme-image img,
  .elementor-widget-image img,
  .elementor-widget-video video,
  .elementor-widget-video iframe {
    transform: translate3d(0, 0, 0) scale(1);
    transition:
      transform 900ms var(--dme-motion-ease),
      filter 900ms var(--dme-motion-ease);
  }

  .dme-image:hover img,
  .elementor-widget-image:hover img {
    transform: translate3d(0, 0, 0) scale(1.035);
    filter: saturate(1.05) contrast(1.02);
  }

  .elementor-widget-video:hover video,
  .elementor-widget-video:hover iframe,
  .dme-image:hover video {
    transform: none !important;
    filter: none !important;
  }

  .elementor-widget-theme-site-logo:hover img,
  .custom-logo-link:hover img,
  .elementor-widget-image:hover img.custom-logo,
  .elementor-widget-image:hover img[alt*="logo" i],
  .elementor-widget-image:hover img[alt*="The Disruption House" i],
  .elementor-widget-image:hover img[title*="The Disruption House" i],
  .elementor-widget-image:hover img[src*="THD-The-Disruption-House" i],
  .dme-image:hover img[alt*="The Disruption House" i],
  .dme-image:hover img[title*="The Disruption House" i],
  .dme-image:hover img[src*="THD-The-Disruption-House" i],
  #tdh-logo:hover,
  #tdh-logo:hover img,
  .dme-hero-visible .elementor-widget-image:hover img,
  .dme-sticky-header.dme-hero-visible .elementor-widget-image:hover img,
  .elementor-element-ee5fbe4.dme-hero-visible .elementor-widget-image:hover img {
    transform: none !important;
    filter: none !important;
  }
}

.dme-split .word {
  display: inline-block;
  opacity: 0;
  transform: translate3d(0, 0.45em, 0);
  transition:
    opacity 820ms var(--dme-motion-ease),
    transform 820ms var(--dme-motion-ease);
  transition-delay: calc(var(--dme-delay, 0ms) + (var(--word-index, 0) * 42ms));
}

.dme-reveal.dme-in-view .dme-split .word,
.dme-split.dme-in-view .word {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.ha-accordion__item,
.elementor-accordion-item,
.elementor-tab-title,
.elementor-toggle-item,
.e-n-accordion-item-title {
  transition:
    background-color 260ms var(--dme-motion-ease),
    border-color 260ms var(--dme-motion-ease),
    box-shadow 260ms var(--dme-motion-ease),
    transform 260ms var(--dme-motion-ease);
}

/* Flapping TDH emblem replaces accordion title icons */
.dme-flap-host {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 77px !important;
  height: 77px !important;
  min-width: 77px !important;
  min-height: 77px !important;
  margin-left: 18px !important;
  padding-left: 0 !important;
  overflow: visible !important;
  color: #008087;
  line-height: 1 !important;
}

.dme-faq-accordion .e-n-accordion-item-title-icon,
.dme-faq-accordion .e-n-accordion-item-title-icon .e-opened,
.dme-faq-accordion .e-n-accordion-item-title-icon .e-closed,
#faq-accordion .e-n-accordion-item-title-icon,
#faq-accordion .e-n-accordion-item-title-icon .e-opened,
#faq-accordion .e-n-accordion-item-title-icon .e-closed,
#faq-accordian .e-n-accordion-item-title-icon,
#faq-accordian .e-n-accordion-item-title-icon .e-opened,
#faq-accordian .e-n-accordion-item-title-icon .e-closed {
  width: 77px !important;
  height: 77px !important;
  min-width: 77px !important;
  min-height: 77px !important;
  margin-left: 18px !important;
  overflow: visible !important;
}

.dme-faq-accordion .dme-flap-host,
#faq-accordion .dme-flap-host,
#faq-accordian .dme-flap-host {
  color: #111111 !important;
}

.dme-flap-host > svg:not(.dme-flap-svg),
.dme-flap-host .e-font-icon-svg {
  display: none !important;
}

.dme-flap-icon {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 77px !important;
  height: 55px !important;
  overflow: visible !important;
}

.dme-flap-svg {
  width: 77px !important;
  height: auto !important;
  max-width: none !important;
  overflow: visible !important;
  display: block !important;
  color: inherit;
}

.dme-flap-svg path,
.dme-flap-svg circle {
  fill: currentColor !important;
}

/* Required for SVG path rotation to actually animate */
.dme-wing-left,
.dme-wing-right {
  transform-box: view-box;
  transform-origin: 400px 217px;
  will-change: transform;
}

.dme-wing-left {
  animation: dme-flap-left 2.4s ease-in-out infinite !important;
}

.dme-wing-right {
  animation: dme-flap-right 2.4s ease-in-out infinite !important;
}

/* Feature accordion sizing + teal when open, white when closed */
.dme-feature-accordion .dme-flap-host,
#feature-accordian .dme-flap-host,
#feature-accordion .dme-flap-host,
.dme-feature-accordion .e-n-accordion-item-title-icon,
.dme-feature-accordion .e-n-accordion-item-title-icon .e-opened,
.dme-feature-accordion .e-n-accordion-item-title-icon .e-closed {
  width: 62px !important;
  height: 62px !important;
  min-width: 62px !important;
  min-height: 62px !important;
  margin-left: 18px !important;
}

.dme-feature-accordion .dme-flap-icon,
#feature-accordian .dme-flap-icon,
#feature-accordion .dme-flap-icon {
  width: 62px !important;
  height: 46px !important;
}

.dme-feature-accordion .dme-flap-svg,
#feature-accordian .dme-flap-svg,
#feature-accordion .dme-flap-svg {
  width: 62px !important;
}

/* Happy Addons: teal flap when title/content is HA-active */
.dme-feature-accordion .ha-accordion__item .dme-flap-host,
#feature-accordian .ha-accordion__item .dme-flap-host,
#feature-accordion .ha-accordion__item .dme-flap-host {
  color: #ffffff !important;
}

.dme-feature-accordion .ha-accordion__item-title.ha-accordion__item--active .dme-flap-host,
.dme-feature-accordion .ha-accordion__item:has(.ha-accordion__item-content.ha-accordion__item--active) .dme-flap-host,
#feature-accordian .ha-accordion__item-title.ha-accordion__item--active .dme-flap-host,
#feature-accordian .ha-accordion__item:has(.ha-accordion__item-content.ha-accordion__item--active) .dme-flap-host,
#feature-accordion .ha-accordion__item-title.ha-accordion__item--active .dme-flap-host,
#feature-accordion .ha-accordion__item:has(.ha-accordion__item-content.ha-accordion__item--active) .dme-flap-host {
  color: #008087 !important;
}

.dme-feature-accordion .e-closed.dme-flap-host,
.dme-feature-accordion .elementor-accordion-icon-closed.dme-flap-host,
#feature-accordian .e-closed.dme-flap-host,
#feature-accordion .e-closed.dme-flap-host {
  color: #ffffff !important;
}

.dme-feature-accordion .e-opened.dme-flap-host,
.dme-feature-accordion .elementor-accordion-icon-opened.dme-flap-host,
.dme-feature-accordion .e-n-accordion-item[open] .e-opened.dme-flap-host,
.dme-feature-accordion .e-n-accordion-item[aria-expanded="true"] .e-opened.dme-flap-host,
#feature-accordian .e-opened.dme-flap-host,
#feature-accordion .e-opened.dme-flap-host {
  color: #008087 !important;
}

/* Active feature tab group: round outer corners, square join between title and content */
.dme-feature-accordion,
#feature-accordian,
#feature-accordion {
  --dme-feature-tab-radius: 16px;
}

.dme-feature-accordion .ha-accordion__item:has(.ha-accordion__item--active),
#feature-accordian .ha-accordion__item:has(.ha-accordion__item--active),
#feature-accordion .ha-accordion__item:has(.ha-accordion__item--active),
.dme-feature-accordion .e-n-accordion-item[open],
#feature-accordian .e-n-accordion-item[open],
#feature-accordion .e-n-accordion-item[open],
.dme-feature-accordion .elementor-accordion-item:has(.elementor-active),
#feature-accordian .elementor-accordion-item:has(.elementor-active),
#feature-accordion .elementor-accordion-item:has(.elementor-active) {
  border-top-left-radius: var(--dme-feature-tab-radius) !important;
  border-top-right-radius: var(--dme-feature-tab-radius) !important;
  border-bottom-left-radius: var(--dme-feature-tab-radius) !important;
  border-bottom-right-radius: var(--dme-feature-tab-radius) !important;
}

.dme-feature-accordion .ha-accordion__item-title.ha-accordion__item--active,
#feature-accordian .ha-accordion__item-title.ha-accordion__item--active,
#feature-accordion .ha-accordion__item-title.ha-accordion__item--active,
.dme-feature-accordion .e-n-accordion-item[open] > .e-n-accordion-item-title,
#feature-accordian .e-n-accordion-item[open] > .e-n-accordion-item-title,
#feature-accordion .e-n-accordion-item[open] > .e-n-accordion-item-title,
.dme-feature-accordion .elementor-tab-title.elementor-active,
#feature-accordian .elementor-tab-title.elementor-active,
#feature-accordion .elementor-tab-title.elementor-active {
  border-top-left-radius: var(--dme-feature-tab-radius) !important;
  border-top-right-radius: var(--dme-feature-tab-radius) !important;
  border-bottom-left-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

.dme-feature-accordion .ha-accordion__item-content.ha-accordion__item--active,
#feature-accordian .ha-accordion__item-content.ha-accordion__item--active,
#feature-accordion .ha-accordion__item-content.ha-accordion__item--active,
.dme-feature-accordion .e-n-accordion-item[open] > .e-n-accordion-item-content,
#feature-accordian .e-n-accordion-item[open] > .e-n-accordion-item-content,
#feature-accordion .e-n-accordion-item[open] > .e-n-accordion-item-content,
.dme-feature-accordion .elementor-tab-content.elementor-active,
#feature-accordian .elementor-tab-content.elementor-active,
#feature-accordion .elementor-tab-content.elementor-active {
  border-top-left-radius: 0 !important;
  border-top-right-radius: 0 !important;
  border-bottom-left-radius: var(--dme-feature-tab-radius) !important;
  border-bottom-right-radius: var(--dme-feature-tab-radius) !important;
}

@keyframes dme-flap-left {
  0%, 100% { transform: rotate(18deg); }
  50% { transform: rotate(-15deg); }
}

@keyframes dme-flap-right {
  0%, 100% { transform: rotate(-18deg); }
  50% { transform: rotate(15deg); }
}

/* Mobile only: accordion flap icons at ~50% of desktop/tablet size */
@media (max-width: 767px) {
  .dme-flap-host {
    width: 39px !important;
    height: 39px !important;
    min-width: 39px !important;
    min-height: 39px !important;
    margin-left: 9px !important;
  }

  .dme-faq-accordion .e-n-accordion-item-title-icon,
  .dme-faq-accordion .e-n-accordion-item-title-icon .e-opened,
  .dme-faq-accordion .e-n-accordion-item-title-icon .e-closed,
  #faq-accordion .e-n-accordion-item-title-icon,
  #faq-accordion .e-n-accordion-item-title-icon .e-opened,
  #faq-accordion .e-n-accordion-item-title-icon .e-closed,
  #faq-accordian .e-n-accordion-item-title-icon,
  #faq-accordian .e-n-accordion-item-title-icon .e-opened,
  #faq-accordian .e-n-accordion-item-title-icon .e-closed {
    width: 39px !important;
    height: 39px !important;
    min-width: 39px !important;
    min-height: 39px !important;
    margin-left: 9px !important;
  }

  .dme-flap-icon {
    width: 39px !important;
    height: 28px !important;
  }

  .dme-flap-svg {
    width: 39px !important;
  }

  .dme-feature-accordion .dme-flap-host,
  #feature-accordian .dme-flap-host,
  #feature-accordion .dme-flap-host,
  .dme-feature-accordion .e-n-accordion-item-title-icon,
  .dme-feature-accordion .e-n-accordion-item-title-icon .e-opened,
  .dme-feature-accordion .e-n-accordion-item-title-icon .e-closed {
    width: 31px !important;
    height: 31px !important;
    min-width: 31px !important;
    min-height: 31px !important;
    margin-left: 9px !important;
  }

  .dme-feature-accordion .dme-flap-icon,
  #feature-accordian .dme-flap-icon,
  #feature-accordion .dme-flap-icon {
    width: 31px !important;
    height: 23px !important;
  }

  .dme-feature-accordion .dme-flap-svg,
  #feature-accordian .dme-flap-svg,
  #feature-accordion .dme-flap-svg {
    width: 31px !important;
  }
}

/* FAQ accordion: remove all borders/dividers */
.dme-faq-accordion,
.dme-faq-accordion .e-n-accordion,
.dme-faq-accordion .e-n-accordion-item,
.dme-faq-accordion .e-n-accordion-item-title,
.dme-faq-accordion .e-n-accordion-item-title-header,
.dme-faq-accordion details,
.dme-faq-accordion summary,
#faq-accordion,
#faq-accordion .e-n-accordion,
#faq-accordion .e-n-accordion-item,
#faq-accordion .e-n-accordion-item-title,
#faq-accordion details,
#faq-accordion summary,
#faq-accordian,
#faq-accordian .e-n-accordion,
#faq-accordian .e-n-accordion-item,
#faq-accordian .e-n-accordion-item-title,
#faq-accordian details,
#faq-accordian summary,
.elementor-widget-n-accordion:not(.dme-feature-accordion),
.elementor-widget-n-accordion:not(.dme-feature-accordion) .e-n-accordion,
.elementor-widget-n-accordion:not(.dme-feature-accordion) .e-n-accordion-item,
.elementor-widget-n-accordion:not(.dme-feature-accordion) .e-n-accordion-item-title,
.elementor-widget-n-accordion:not(.dme-feature-accordion) details,
.elementor-widget-n-accordion:not(.dme-feature-accordion) summary {
  border: 0 !important;
  border-width: 0 !important;
  border-style: none !important;
  border-color: transparent !important;
  box-shadow: none !important;
  outline: none !important;
}

.dme-faq-accordion .e-n-accordion-item + .e-n-accordion-item,
#faq-accordion .e-n-accordion-item + .e-n-accordion-item,
#faq-accordian .e-n-accordion-item + .e-n-accordion-item,
.elementor-widget-n-accordion:not(.dme-feature-accordion) .e-n-accordion-item + .e-n-accordion-item {
  border-top: 0 !important;
}

/* Active FAQ tab group: round outer corners, square join between title and content */
.dme-faq-accordion,
#faq-accordian,
#faq-accordion {
  --dme-faq-tab-radius: 16px;
}

.dme-faq-accordion .ha-accordion__item:has(.ha-accordion__item--active),
#faq-accordian .ha-accordion__item:has(.ha-accordion__item--active),
#faq-accordion .ha-accordion__item:has(.ha-accordion__item--active),
.dme-faq-accordion .e-n-accordion-item[open],
#faq-accordian .e-n-accordion-item[open],
#faq-accordion .e-n-accordion-item[open],
.dme-faq-accordion .elementor-accordion-item:has(.elementor-active),
#faq-accordian .elementor-accordion-item:has(.elementor-active),
#faq-accordion .elementor-accordion-item:has(.elementor-active),
.elementor-widget-n-accordion:not(.dme-feature-accordion) .e-n-accordion-item[open] {
  border-top-left-radius: var(--dme-faq-tab-radius) !important;
  border-top-right-radius: var(--dme-faq-tab-radius) !important;
  border-bottom-left-radius: var(--dme-faq-tab-radius) !important;
  border-bottom-right-radius: var(--dme-faq-tab-radius) !important;
  background: #ffffff !important;
  background-color: #ffffff !important;
  overflow: hidden;
}

.dme-faq-accordion .ha-accordion__item-title.ha-accordion__item--active,
#faq-accordian .ha-accordion__item-title.ha-accordion__item--active,
#faq-accordion .ha-accordion__item-title.ha-accordion__item--active,
.dme-faq-accordion .e-n-accordion-item[open] > .e-n-accordion-item-title,
#faq-accordian .e-n-accordion-item[open] > .e-n-accordion-item-title,
#faq-accordion .e-n-accordion-item[open] > .e-n-accordion-item-title,
.dme-faq-accordion .e-n-accordion-item[open] > .e-n-accordion-item-title .e-n-accordion-item-title-header,
#faq-accordian .e-n-accordion-item[open] > .e-n-accordion-item-title .e-n-accordion-item-title-header,
#faq-accordion .e-n-accordion-item[open] > .e-n-accordion-item-title .e-n-accordion-item-title-header,
.dme-faq-accordion .elementor-tab-title.elementor-active,
#faq-accordian .elementor-tab-title.elementor-active,
#faq-accordion .elementor-tab-title.elementor-active,
.elementor-widget-n-accordion:not(.dme-feature-accordion) .e-n-accordion-item[open] > .e-n-accordion-item-title {
  border-top-left-radius: var(--dme-faq-tab-radius) !important;
  border-top-right-radius: var(--dme-faq-tab-radius) !important;
  border-bottom-left-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
  background: #ffffff !important;
  background-color: #ffffff !important;
  background-image: none !important;
}

.dme-faq-accordion .ha-accordion__item-content.ha-accordion__item--active,
#faq-accordian .ha-accordion__item-content.ha-accordion__item--active,
#faq-accordion .ha-accordion__item-content.ha-accordion__item--active,
.dme-faq-accordion .e-n-accordion-item[open] > .e-n-accordion-item-content,
#faq-accordian .e-n-accordion-item[open] > .e-n-accordion-item-content,
#faq-accordion .e-n-accordion-item[open] > .e-n-accordion-item-content,
.dme-faq-accordion .e-n-accordion-item[open] > .e-n-accordion-item-content > .e-con,
#faq-accordian .e-n-accordion-item[open] > .e-n-accordion-item-content > .e-con,
#faq-accordion .e-n-accordion-item[open] > .e-n-accordion-item-content > .e-con,
.dme-faq-accordion .elementor-tab-content.elementor-active,
#faq-accordian .elementor-tab-content.elementor-active,
#faq-accordion .elementor-tab-content.elementor-active,
.elementor-widget-n-accordion:not(.dme-feature-accordion) .e-n-accordion-item[open] > .e-n-accordion-item-content {
  border-top-left-radius: 0 !important;
  border-top-right-radius: 0 !important;
  border-bottom-left-radius: var(--dme-faq-tab-radius) !important;
  border-bottom-right-radius: var(--dme-faq-tab-radius) !important;
  background: #ffffff !important;
  background-color: #ffffff !important;
  background-image: none !important;
}

@media (prefers-reduced-motion: reduce) {
  html:not(.dme-force-motion) .dme-wing-left,
  html:not(.dme-force-motion) .dme-wing-right {
    animation: none !important;
  }
}

@media (hover: hover) and (pointer: fine) {
  .ha-accordion__item:hover,
  .elementor-accordion-item:hover,
  .elementor-toggle-item:hover {
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.06);
    transform: translate3d(0, -1px, 0);
  }

  .elementor-widget-ha-accordion.dme-card:hover,
  .elementor-widget-accordion.dme-card:hover,
  .elementor-widget-toggle.dme-card:hover {
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.06);
    transform: translate3d(0, -1px, 0);
  }
}

@media (max-width: 767px) {
  :root {
    --dme-motion-distance: 18px;
    --dme-motion-card-distance: 24px;
    --dme-motion-blur: 3px;
    --dme-motion-duration: 860ms;
  }

  html.dme-js .dme-reveal {
    transition-duration: 760ms;
  }

}

@media (prefers-reduced-motion: reduce) {
  html:not(.dme-force-motion) .dme-reveal,
  html:not(.dme-force-motion) .dme-split .word,
  html:not(.dme-force-motion) .dme-button.elementor-button,
  html:not(.dme-force-motion) .dme-button .elementor-button,
  html:not(.dme-force-motion) .elementor-button.dme-button,
  html:not(.dme-force-motion) .dme-card,
  html:not(.dme-force-motion) .dme-image img,
  html:not(.dme-force-motion) .elementor-widget-image img,
  html:not(.dme-force-motion) .elementor-widget-video video,
  html:not(.dme-force-motion) .elementor-widget-video iframe {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition-duration: 1ms !important;
    animation-duration: 1ms !important;
  }

  /* Keep sticky header gated by scroll even when reduced-motion is preferred. */
}

/* =========================================================================
   Emblem takeover: pin section-2, fade heading + spokes, expand the inner
   circle, then fade in section-3 video + copy. Scroll resumes when complete.
   ========================================================================= */

.dme-emblem-stage {
  position: relative;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  overflow: hidden;
  z-index: 1;
  isolation: isolate;
  background-color: var(--dme-brand-navy, #0F2A3B);
}

.dme-emblem-stage > .e-con.e-parent {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 100%;
  margin: 0;
}

.dme-emblem-stage > .dme-takeover-from {
  z-index: 1;
  overflow: visible;
}

.dme-emblem-stage > .dme-takeover-to {
  z-index: 3;
  overflow: hidden;
  background-color: transparent !important;
  background-image: none !important;
  pointer-events: none;
}

.dme-emblem-bloom {
  position: absolute;
  z-index: 2;
  display: block;
  overflow: visible;
  pointer-events: none;
  border-radius: 50%;
  background-color: #b8934a;
  transform-origin: 50% 50%;
  transform: translateZ(0);
  backface-visibility: hidden;
  will-change: transform, opacity;
}

.dme-emblem-stage .elementor-widget-html:has(.animated-star-svg),
.dme-emblem-stage .elementor-star-wrapper {
  position: relative;
  z-index: 2;
}

.dme-emblem-stage.is-complete > .dme-takeover-to {
  pointer-events: auto;
}

.dme-emblem-stage > .dme-takeover-from .e-con-inner,
.dme-emblem-stage > .dme-takeover-from .elementor-widget-html,
.dme-emblem-stage > .dme-takeover-from .elementor-star-wrapper,
.dme-emblem-stage > .dme-takeover-from .animated-star-svg {
  overflow: visible !important;
}

.dme-emblem-stage .star-center {
  transform-box: fill-box;
  transform-origin: center;
  will-change: transform;
}

.dme-emblem-stage .star-arms,
.dme-emblem-stage .animated-star-svg,
.dme-emblem-stage .dme-takeover-copy,
.dme-emblem-stage .elementor-star-wrapper {
  will-change: opacity, transform;
}

.dme-emblem-stage.is-taking-over .animated-star-svg,
.dme-emblem-stage.is-taking-over .star-arms {
  animation-play-state: paused !important;
}

.dme-emblem-stage .dme-takeover-copy.dme-reveal,
.dme-emblem-stage .dme-takeover-from .dme-reveal,
html.dme-js #section-2 .dme-reveal,
html.dme-js #section-2 .dme-image,
html.dme-js .dme-takeover-from .dme-reveal,
html.dme-js .dme-takeover-from .dme-image {
  opacity: 1;
  transform: none;
  filter: none;
  transition: none;
}

html.dme-js .dme-emblem-stage:not(.is-complete) > .dme-takeover-to .elementor-background-video-container,
html.dme-js .dme-emblem-stage:not(.is-complete) > .dme-takeover-to .elementor-background-overlay {
  opacity: 0;
}

html.dme-js .dme-emblem-stage:not(.is-complete) > .dme-takeover-to .e-con-inner > .elementor-element {
  opacity: 0;
}

.dme-emblem-stage > .dme-takeover-to .elementor-background-video-container,
.dme-emblem-stage > .dme-takeover-to .elementor-background-overlay,
.dme-emblem-stage > .dme-takeover-to video {
  will-change: opacity;
}

@media (prefers-reduced-motion: reduce) {
  html:not(.dme-force-motion) .dme-emblem-stage {
    height: auto;
    overflow: visible;
  }

  html:not(.dme-force-motion) .dme-emblem-stage > .e-con.e-parent {
    position: relative;
    inset: auto;
    height: auto;
  }
}

/* =========================================================================
   data-dme-motion variant helpers (GSAP-driven, these are layout fallbacks)
   Sections opt in via Elementor Advanced > Custom Attributes:
     data-dme-motion | <value>
   ========================================================================= */

[data-dme-motion] { position: relative; }

/* pin-scrub-dashboard: ensure pinned section has height room */
[data-dme-motion="pin-scrub-dashboard"] {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
[data-dme-motion="pin-scrub-dashboard"] [data-dme-laptop],
[data-dme-motion="pin-scrub-dashboard"] .dme-laptop {
  will-change: transform, opacity;
}
[data-dme-motion="pin-scrub-dashboard"] [data-dme-screen],
[data-dme-motion="pin-scrub-dashboard"] .dme-dashboard-screen {
  will-change: transform;
  overflow: hidden;
}

/* video-parallax: overlay sits above bg video */
[data-dme-motion="video-parallax"] { overflow: hidden; }
[data-dme-motion="video-parallax"] video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}
[data-dme-motion="video-parallax"] [data-dme-overlay],
[data-dme-motion="video-parallax"] .dme-overlay,
[data-dme-motion="video-parallax"] .elementor-widget-heading,
[data-dme-motion="video-parallax"] .elementor-widget-text-editor {
  position: relative;
  z-index: 2;
  will-change: transform;
}

/* ticker: seamless horizontal track */
[data-dme-motion="ticker"] [data-dme-ticker],
[data-dme-motion="ticker"] .dme-ticker-track {
  display: flex;
  overflow: hidden;
  white-space: nowrap;
  width: 100%;
}
[data-dme-motion="ticker"] [data-dme-ticker] > *,
[data-dme-motion="ticker"] .dme-ticker-track > * {
  flex: 0 0 auto;
  padding: 0 28px;
  will-change: transform;
}

/* grid-stagger: items hidden until GSAP reveals (no-JS fallback shows them) */
html.dme-js.dme-force-motion [data-dme-motion="grid-stagger"] [data-dme-arc-item],
html.dme-js.dme-force-motion [data-dme-motion="grid-stagger"] .elementor-widget-image {
  /* GSAP sets opacity/transform; no static hiding to avoid FOUC if GSAP fails */
}

/* arc-float items */
[data-dme-motion="arc-float"] {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
}
[data-dme-motion="arc-float"] [data-dme-arc-item],
[data-dme-motion="arc-float"] .elementor-widget-image {
  will-change: transform, opacity;
}

/* carousel-sync: ensure slide videos cover their slide */
[data-dme-motion="carousel-sync"] .swiper-slide video,
[data-dme-motion="carousel-sync"] [data-dme-slide] video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

/* Reduced-motion fade-only override for variant sections */
@media (prefers-reduced-motion: reduce) {
  html:not(.dme-force-motion) [data-dme-motion] video {
    display: none;
  }
}

/* Mobile only: kill Elementor's black video chrome on the laptop clip.
   Elementor sets background-color:#000 on .elementor-wrapper video, which
   shows as a right/bottom outline when the aspect box and pixels disagree. */
@media (max-width: 767px) {
  #tdh-claculate-spending,
  #tdh-calculate-spending,
  #tdh-claculate-spending .elementor-widget-container,
  #tdh-calculate-spending .elementor-widget-container,
  #tdh-claculate-spending .elementor-wrapper,
  #tdh-calculate-spending .elementor-wrapper,
  #tdh-claculate-spending .e-hosted-video,
  #tdh-calculate-spending .e-hosted-video {
    border: 0 !important;
    outline: none !important;
    box-shadow: none !important;
    background: transparent !important;
    background-color: transparent !important;
  }

  #tdh-claculate-spending .elementor-wrapper,
  #tdh-calculate-spending .elementor-wrapper {
    --video-aspect-ratio: auto;
    aspect-ratio: auto !important;
    height: auto !important;
    overflow: hidden !important;
  }

  #tdh-claculate-spending .elementor-wrapper video,
  #tdh-calculate-spending .elementor-wrapper video,
  #tdh-claculate-spending video.elementor-video,
  #tdh-calculate-spending video.elementor-video {
    border: 0 !important;
    outline: none !important;
    box-shadow: none !important;
    background: transparent !important;
    background-color: transparent !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    object-fit: contain !important;
    display: block !important;
  }
}

#tdh-testimonial-video,
#section-8 .elementor-widget-video,
#section-8 .elementor-wrapper {
  position: relative;
}

.dme-sound-hint {
  position: absolute;
  left: 50%;
  bottom: 18px;
  z-index: 4;
  transform: translateX(-50%);
  appearance: none;
  border: 0;
  border-radius: 999px;
  padding: 10px 16px;
  background: rgba(15, 23, 42, 0.78);
  color: #fff;
  font: 600 13px/1.2 inherit;
  letter-spacing: 0.01em;
  cursor: pointer;
  pointer-events: auto;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
}

.dme-sound-hint:hover,
.dme-sound-hint:focus-visible {
  background: #B8934A;
  color: #fff;
}

/* =========================================================================
   Persistent CTA footer (#dmeb-cat-1 / #dmeb-cat-2)

   Two Elementor containers authored at the bottom of the home page are reused as
   a fixed conversion overlay. They are hidden from the very first paint, then
   the first is pinned to the bottom of the viewport once the scroll reaches the
   measured mid-point of the #section-1 -> #section-2 transition, and at 50% page
   progress it swaps to the second. There is no hand-off: the containers are
   overlays for their whole life, which is what stops them reappearing at the
   bottom of the page.

   JS owns state only (`.is-active`, `.is-current`); every ability to hide the bar
   also requires `html.dme-js`, so a JS failure degrades to the containers simply
   sitting at the bottom of the page, fully visible and clickable.
   ========================================================================= */

/* The CTA pair is an OVERLAY and never a document-flow element. Both containers
   are taken out of flow the moment JS is running, so they can never sit at the
   bottom of the page — that was the failure mode that made the bar look like it
   was doing nothing at all.

   `.dmeb-cta-overlay` marks whichever element is the pinned bar: the shared
   wrapper in wrapper mode, or each CTA itself in direct mode.
   `.is-active` is the single source of truth for "the bar is on screen". */
html.dme-js .dmeb-cta-shell,
html.dme-js .dmeb-cta.dmeb-cta-overlay {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  box-sizing: border-box;
  isolation: isolate;
  color-scheme: only light;
  z-index: 10040;
  /* Never let the bar eat the viewport on a short screen or at 200% zoom. */
  max-height: 45dvh;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  opacity: 0;
  visibility: hidden;
  transform: translate3d(0, 100%, 0);
  pointer-events: none;
  transition:
    opacity var(--dme-cta-fade, 520ms) var(--dme-motion-ease),
    transform var(--dme-cta-fade, 520ms) var(--dme-motion-ease),
    visibility 0s linear var(--dme-cta-fade, 520ms);
}

html.dme-js .dmeb-cta-shell.is-active,
html.dme-js .dmeb-cta.dmeb-cta-overlay.is-active {
  opacity: 1;
  visibility: visible;
  transform: translate3d(0, 0, 0);
  pointer-events: auto;
  transition:
    opacity var(--dme-cta-fade, 520ms) var(--dme-motion-ease),
    transform var(--dme-cta-fade, 520ms) var(--dme-motion-ease),
    visibility 0s linear 0s;
}

/* --- Crossfade between #dmeb-cat-1 and #dmeb-cat-2 (wrapper mode only) ----- */

html.dme-js .dmeb-cta-shell > .dmeb-cta.is-current {
  position: relative;
  opacity: 1;
  visibility: inherit;
  transform: translate3d(0, 0, 0);
  transition:
    opacity var(--dme-cta-fade, 520ms) var(--dme-motion-ease),
    transform var(--dme-cta-fade, 520ms) var(--dme-motion-ease),
    visibility 0s linear 0s;
}

html.dme-js .dmeb-cta-shell > .dmeb-cta:not(.is-current) {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  opacity: 0;
  visibility: hidden;
  transform: translate3d(0, 14px, 0);
  pointer-events: none;
  transition:
    opacity var(--dme-cta-fade, 520ms) var(--dme-motion-ease),
    transform var(--dme-cta-fade, 520ms) var(--dme-motion-ease),
    visibility 0s linear var(--dme-cta-fade, 520ms);
}

/* The CTA in front of the visitor must never be held invisible by the
   entrance-reveal pipeline — a CTA added after the reveal pass would otherwise
   sit at opacity:0 while pinned at the bottom of the viewport.

   `visibility` is deliberately NOT forced here. It is inherited, and forcing it
   to `visible` on a descendant of a hidden bar would leak the CTA contents back
   on screen at the bottom of the page. */
html.dme-js .dmeb-cta-shell .dme-reveal,
html.dme-js .dmeb-cta.dmeb-cta-overlay .dme-reveal,
html.dme-js .dmeb-cta.dmeb-cta-overlay.dme-reveal {
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
}

/* --- Close control ------------------------------------------------------- */

.dmeb-cta-shell > .dmeb-cta-close,
.dmeb-cta.dmeb-cta-overlay > .dmeb-cta-close {
  position: absolute;
  top: max(8px, env(safe-area-inset-top, 0px));
  right: 8px;
  z-index: 5;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  margin: 0;
  padding: 0;
  appearance: none;
  border: 0;
  border-radius: 50%;
  background: rgba(15, 42, 59, 0.16);
  color: currentColor;
  cursor: pointer;
  line-height: 1;
  transition:
    background-color 200ms var(--dme-motion-ease),
    transform 200ms var(--dme-motion-ease);
}

.dmeb-cta-close svg {
  width: 15px;
  height: 15px;
  display: block;
  pointer-events: none;
}

.dmeb-cta-close:hover {
  background: rgba(15, 42, 59, 0.3);
  transform: scale(1.06);
}

.dmeb-cta-close:active {
  transform: scale(0.94);
}

.dmeb-cta-close:focus-visible {
  outline: 3px solid #008087;
  outline-offset: 2px;
}

/* Keep container copy clear of the close control without reflowing the layout. */
.dmeb-cta-has-close > .e-con-inner {
  padding-right: max(46px, var(--dme-cta-close-gutter, 46px));
}

@media (max-width: 767px) {
  .dmeb-cta-close {
    width: 30px;
    height: 30px;
    top: max(6px, env(safe-area-inset-top, 0px));
    right: 6px;
  }

  .dmeb-cta-close svg {
    width: 13px;
    height: 13px;
  }

  .dmeb-cta-has-close > .e-con-inner {
    padding-right: max(40px, var(--dme-cta-close-gutter, 40px));
  }

  html.dme-js .dmeb-cta-shell,
  html.dme-js .dmeb-cta.dmeb-cta-overlay {
    max-height: 52dvh;
  }
}

/* Home-indicator spacing on iOS, only while the bar is actually pinned. */
@supports (padding: max(0px)) {
  html.dme-js .dmeb-cta-shell.is-active,
  html.dme-js .dmeb-cta.dmeb-cta-overlay.is-active {
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }
}

@media (prefers-reduced-motion: reduce) {
  html:not(.dme-force-motion) .dmeb-cta-shell,
  html:not(.dme-force-motion) .dmeb-cta.dmeb-cta-overlay,
  html:not(.dme-force-motion) .dmeb-cta-shell .dmeb-cta,
  html:not(.dme-force-motion) .dmeb-cta-close {
    transition-duration: 1ms !important;
  }

  html:not(.dme-force-motion) .dmeb-cta-close:hover {
    transform: none;
  }
}

