/* Child-theme shell integration loaded after the approved global stylesheet. */
.dsc-site .site-header,
.dsc-site .site-footer {
  position: relative;
  left: 50%;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-right: -50vw !important;
  margin-left: -50vw !important;
  padding: 0 !important;
}
.dsc-site .site-header { display: block; }
.dsc-site .site-main { min-height: 40vh; }
.dsc-site .site-main > .elementor { width: 100%; }
.dsc-site .brand .custom-logo-link,
.dsc-site .footer-brand .custom-logo-link { display: block; }
.dsc-site .brand .custom-logo { width: 100%; height: auto; }
.dsc-site .footer-brand .custom-logo { width: 245px; height: auto; }
.dsc-site .primary-nav .menu,
.dsc-site .site-footer .menu { margin: 0; padding: 0; list-style: none; }
.dsc-site .primary-nav .sub-menu {
  position: absolute;
  z-index: 60;
  top: calc(100% - 4px);
  min-width: 230px;
  display: none;
  padding: 10px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: var(--shadow-lg);
}
.dsc-site .primary-nav .menu-item-has-children { position: relative; }
.dsc-site .primary-nav .menu-item-has-children:hover > .sub-menu,
.dsc-site .primary-nav .menu-item-has-children:focus-within > .sub-menu { display: grid; }
.dsc-site .primary-nav .sub-menu a { min-height: 44px; padding-inline: 12px; }
.dsc-site .primary-nav .current-menu-item > a,
.dsc-site .primary-nav .current-menu-ancestor > a { color: var(--ink); }
.dsc-site .primary-nav .current-menu-item > a::after,
.dsc-site .primary-nav .current-menu-ancestor > a::after { transform: scaleX(1); }
.dsc-site .screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
@media (max-width: 900px) {
  .dsc-site .primary-nav .sub-menu {
    position: static;
    display: grid;
    padding: 0 0 0 18px;
    border: 0;
    box-shadow: none;
  }
  .dsc-site .primary-nav .sub-menu a { font-size: 13px; }
}
@media (max-width: 600px) {
  .dsc-site .utility-capability,
  .dsc-site .utility-divider { display: none; }
}

/* v1.9: deterministic desktop/mobile navigation layout. */
body.dsc-site{overflow-x:clip}
.dsc-site .nav-toggle{display:none!important}
.dsc-site .nav-bar__inner{display:grid;grid-template-columns:238px minmax(0,1fr);gap:48px}
.dsc-site .primary-nav{justify-self:end;gap:24px}
.dsc-site .primary-nav ul{gap:24px}
@media(max-width:900px){
 .dsc-site .nav-bar__inner{display:flex}
 .dsc-site .nav-toggle{display:inline-flex!important}
}
/* v2.6: compact sticky navigation on desktop and mobile. */
.dsc-site .site-header{position:sticky!important;z-index:1000;top:0;transition:box-shadow 220ms ease}
.dsc-site .site-header .utility-bar{max-height:44px;overflow:hidden;opacity:1;transition:max-height 220ms ease,opacity 160ms ease}
.dsc-site .site-header .nav-bar{background:#fff;transition:box-shadow 220ms ease}
.dsc-site .site-header.is-scrolled .utility-bar{max-height:0;opacity:0}
.dsc-site .site-header.is-scrolled .nav-bar{box-shadow:0 10px 28px rgba(3,28,48,.12)}
.admin-bar.dsc-site .site-header{top:32px}
@media(max-width:782px){
 .admin-bar.dsc-site .site-header{top:46px}
}
@media(prefers-reduced-motion:reduce){
 .dsc-site .site-header,
 .dsc-site .site-header .utility-bar,
 .dsc-site .site-header .nav-bar{transition:none}
}
/* v2.7: prevent the legacy full-width breakout from offsetting the sticky header. */
.dsc-site .site-header{right:auto!important;left:0!important;width:100%!important;max-width:100%!important;margin-right:0!important;margin-left:0!important}
/* v2.30: scalable dropdown navigation for the expanded site structure. */
@media (min-width: 901px) {
  .dsc-site .nav-bar__inner { grid-template-columns: 220px minmax(0, 1fr); gap: 28px; }
  .dsc-site .primary-nav { gap: 16px; }
  .dsc-site .primary-nav > ul { gap: 16px; }
  .dsc-site .primary-nav > ul > li > a { font-size: 14px; }
  .dsc-site .primary-nav .menu-item-has-children > a { padding-right: 18px; }
  .dsc-site .primary-nav .menu-item-has-children > a::before {
    position: absolute;
    top: 50%;
    right: 1px;
    width: 7px;
    height: 7px;
    content: "";
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-70%) rotate(45deg);
  }
  .dsc-site .primary-nav .submenu-toggle { display: none; }
}
@media (max-width: 1120px) and (min-width: 901px) {
  .dsc-site .nav-bar__inner { grid-template-columns: 195px minmax(0, 1fr); gap: 18px; }
  .dsc-site .primary-nav { gap: 10px; }
  .dsc-site .primary-nav > ul { gap: 10px; }
  .dsc-site .primary-nav > ul > li > a { font-size: 12.5px; }
}
@media (max-width: 900px) {
  .dsc-site .primary-nav .menu-item-has-children { position: relative; }
  .dsc-site .primary-nav .menu-item-has-children > a {
    width: calc(100% - 52px);
    padding-right: 0;
    border-bottom: 0;
  }
  .dsc-site .primary-nav .menu-item-has-children:hover > .sub-menu,
  .dsc-site .primary-nav .menu-item-has-children:focus-within > .sub-menu,
  .dsc-site .primary-nav .sub-menu {
    display: none;
  }
  .dsc-site .primary-nav .menu-item-has-children.submenu-open > .sub-menu {
    display: grid;
    padding: 0 0 8px 18px;
    border-bottom: 1px solid var(--line);
  }
  .dsc-site .primary-nav .submenu-toggle {
    position: absolute;
    top: 2px;
    right: 0;
    width: 48px;
    height: 48px;
    display: inline-grid;
    place-items: center;
    padding: 0;
    color: var(--ink);
    background: transparent;
    border: 0;
    border-left: 1px solid var(--line);
    cursor: pointer;
  }
  .dsc-site .primary-nav .submenu-toggle span {
    width: 9px;
    height: 9px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-2px) rotate(45deg);
    transition: transform 160ms ease;
  }
  .dsc-site .primary-nav .submenu-toggle[aria-expanded="true"] span {
    transform: translateY(2px) rotate(225deg);
  }
  .dsc-site .primary-nav .submenu-toggle:focus-visible {
    outline: 3px solid rgba(0, 176, 240, 0.35);
    outline-offset: -3px;
  }
}