/* ==========================================================================
   Behaviour layer.

   duda.css carries the recovered visual design (colours, type, spacing,
   backgrounds). This file supplies only the interaction the original site got
   from Duda's JavaScript runtime — which header shows at which width, the
   hamburger drawer, the nav dropdowns and the FAQ accordions.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Which header is live at which width.

   The original serves three different headers by user-agent. Reproduced here
   as three markup variants gated on Duda's own device breakpoints:
     mobile  <= 767px   tablet 768–1024px   desktop >= 1025px
   -------------------------------------------------------------------------- */
@media (min-width: 1025px) {
  #hamburger-header-container {
    display: none;
  }
}

@media (max-width: 1024px) {
  .d-header-desktop {
    display: none;
  }
}

.d-header-tablet {
  display: none;
}
.d-header-mobile {
  display: none;
}

@media (min-width: 768px) and (max-width: 1024px) {
  .d-header-tablet {
    display: block;
  }
}

@media (max-width: 767px) {
  .d-header-mobile {
    display: block;
  }
}

/* --------------------------------------------------------------------------
   Hamburger and drawer.

   Their appearance, position and open/close animation all come from Duda's own
   recovered rules in duda.css (`.layout-drawer-hamburger`, `.layout-drawer`,
   `.layout-drawer_open`, `hamburger-reverse`). Only two things are added here:
   hiding them above the hamburger breakpoint, and locking body scroll while
   the drawer is open.
   -------------------------------------------------------------------------- */
@media (min-width: 1025px) {
  #hamburger-drawer,
  .layout-drawer-overlay,
  .layout-drawer-hamburger {
    display: none;
  }
}

#dm-outer-wrapper.layout-drawer_open ~ * ,
body:has(#dm-outer-wrapper.layout-drawer_open) {
  overflow: hidden;
}

/* --------------------------------------------------------------------------
   Navigation.

   Desktop: a horizontal bar whose four parent items are clickable links that
   also open a submenu on hover/focus.
   Drawer: the same tree stacked vertically, with the caret acting as the
   submenu toggle so the parent link itself stays tappable.
   -------------------------------------------------------------------------- */
/* The bar's own type, spacing and colours are Duda's — do not restate them
   here or the two sets of rules fight and the item heights drift. What Duda
   left to its JavaScript, and so has to be supplied, is only the submenu
   show/hide. */
.unifiednav__item-wrap {
  position: relative;
}

.unifiednav:not([data-nav-structure="VERTICAL"]) .unav-sub {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 240px;
  z-index: 60;
  background: var(--color_3, #fff);
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
}

.unifiednav:not([data-nav-structure="VERTICAL"]) .unifiednav__item-wrap:hover > .unav-sub,
.unifiednav:not([data-nav-structure="VERTICAL"]) .unifiednav__item-wrap:focus-within > .unav-sub {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* Keep the last dropdowns from running off the right edge. */
.unifiednav:not([data-nav-structure="VERTICAL"]) .unifiednav__item-wrap:nth-last-child(-n + 3) > .unav-sub {
  left: auto;
  right: 0;
}

.unifiednav[data-nav-structure="VERTICAL"] .unav-top {
  display: block;
}

.unifiednav[data-nav-structure="VERTICAL"] .unifiednav__item {
  padding: 12px 20px;
}

.unifiednav[data-nav-structure="VERTICAL"] .nav-item-text {
  justify-content: space-between;
  width: 100%;
}

.unifiednav[data-nav-structure="VERTICAL"] .unav-sub {
  display: none;
  padding-left: 16px;
}

.unifiednav[data-nav-structure="VERTICAL"] .sub-open > .unav-sub {
  display: block;
}

.unifiednav[data-nav-structure="VERTICAL"] .unifiednav__item_has-sub-nav .icon {
  padding: 6px 10px;
  margin: -6px -10px;
  cursor: pointer;
}

/* --------------------------------------------------------------------------
   FAQ accordion — Duda renders this through a styled-components bundle; the
   recovered rules live in duda.css, so this only covers open/closed state.
   -------------------------------------------------------------------------- */
/* Each accordion's real look — padding, borders, colours, arrow geometry —
   comes from its own compiled stylesheet, carried over per widget with the
   page CSS. Only the collapse mechanics and the open state live here. */
[data-accordion] .accordion-container {
  list-style: none;
  margin: 0;
  padding: 0;
}

[data-accordion] .accordion-title-wrapper {
  cursor: pointer;
}

/* The widget's own rules are !important (see styledAccordionCss), so the
   collapse mechanics have to be too. This file loads last, so ties go here. */
[data-accordion] .accordion-panel {
  overflow: hidden !important;
  max-height: 0 !important;
  transition: max-height 0.3s ease-out !important;
}

[data-accordion] .is-open .accordion-panel {
  max-height: 1500px !important;
}

/* Open state: the vertical bar fades out, leaving a minus sign. */
[data-accordion] .is-open .accordion-arrow-bar--v {
  opacity: 0;
}

/* --------------------------------------------------------------------------
   Odds and ends
   -------------------------------------------------------------------------- */

/* The form honeypot must be reachable by bots but invisible to people. */
.dmform-hp {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none;
}

/* Labels the original hides (it relies on placeholders instead) stay hidden,
   but remain available to screen readers. */
.dmforminput label[hidden],
.dmform-title[hidden] {
  display: block !important;
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

/* Duda's share popup ships hidden and only opens on demand. */
#dmPopup {
  display: none;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

/* Uploaded gallery videos sit in a plain responsive box. */
.youtubeExt video {
  width: 100%;
  height: auto;
  display: block;
}
