/* BOSS desktop-menu mirror for mobile. The only source for items is the desktop Elementor nav. */
.boss-mirror-open { display: none !important; }
.boss-mirror-shade[hidden], .boss-mirror-panel[hidden] { display: none !important; }
@media (max-width: 1024px) {
  .elementor-widget-nav-menu.boss-mobile-mirror-ready .elementor-menu-toggle,
  .elementor-widget-nav-menu.boss-mobile-mirror-ready .elementor-nav-menu--dropdown {
    display: none !important;
  }
  .elementor-widget-nav-menu.boss-mobile-mirror-ready .boss-mirror-open {
    background: #101010 !important;
    border: 1px solid #393939 !important;
    border-radius: 5px !important;
    color: #f6f4ef !important;
    cursor: pointer;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    padding: 8px 12px;
    width: auto;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .1em;
    line-height: 1;
  }
  .elementor-widget-nav-menu.boss-mobile-mirror-ready .boss-mirror-open:focus-visible,
  .boss-mirror-panel button:focus-visible,
  .boss-mirror-panel a:focus-visible { outline: 2px solid #ff3038 !important; outline-offset: 2px; }
  .boss-mirror-bars { display: flex; flex-direction: column; gap: 4px; width: 19px; }
  .boss-mirror-bars span { display: block; height: 2px; width: 100%; background: #f6f4ef; border-radius: 2px; }
  .boss-mirror-shade {
    position: fixed; inset: 0; z-index: 2147483000;
    background: rgba(0,0,0,.7);
  }
  .boss-mirror-panel {
    position: fixed; top: 0; right: 0; bottom: 0; z-index: 2147483001;
    width: min(92vw, 400px);
    background: #101010;
    color: #f6f4ef;
    border-left: 1px solid #292929;
    display: flex; flex-direction: column;
    box-shadow: -15px 0 40px rgba(0,0,0,.5);
    font-family: Arial, sans-serif;
    max-height: 100dvh;
  }
  .boss-mirror-top { flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between;
    border-bottom: 1px solid #333; padding: 14px 17px; font-size: 13px; letter-spacing: .15em; }
  .boss-mirror-top strong { color: #f6f4ef; }
  .boss-mirror-close { width: 42px; height: 42px; border: 0; border-radius: 2px;
    color: #f6f4ef !important; background: #242424 !important; font-size: 30px; cursor: pointer; }
  .boss-mirror-scroll { flex: 1 1 auto; overflow-y: auto; overscroll-behavior: contain; padding: 10px 12px 30px; }
  .boss-mirror-menu-list, .boss-mirror-sub-menu { list-style: none !important; padding: 0 !important; margin: 0 !important; }
  .boss-mirror-menu-item { position: relative; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center;
    border-bottom: 1px solid #292929; margin: 0 !important; }
  .boss-mirror-menu-item > a { grid-column: 1; display: block; color: #f6f4ef !important;
    font-size: 14px; font-weight: 600; letter-spacing: .02em; line-height: 1.45;
    padding: 14px 12px !important; text-decoration: none !important; white-space: normal; overflow-wrap: anywhere; }
  .boss-mirror-menu-item > a:hover, .boss-mirror-menu-item > a:focus-visible,
  .boss-mirror-menu-item > a.boss-mirror-current { color: #ff3038 !important; }
  .boss-mirror-expand { grid-column: 2; width: 46px; min-height: 47px; border: none; border-left: 1px solid #292929;
    background: #1c1c1c !important; color: #f6f4ef !important; display: grid; place-items: center;
    cursor: pointer; font-size: 22px; }
  .boss-mirror-expand > span { display: inline-block; transform: translateY(-3px); transition: transform .15s; }
  .boss-mirror-expanded > .boss-mirror-expand > span { transform: rotate(180deg) translateY(3px); }
  .boss-mirror-sub-menu { grid-column: 1 / -1; display: none; background: #1c1c1c; border-top: 1px solid #363636; }
  .boss-mirror-expanded > .boss-mirror-sub-menu { display: block; }
  .boss-mirror-sub-menu .boss-mirror-menu-item > a { padding: 12px 13px 12px 26px !important; font-size: 13px; font-weight: 500; }
  .boss-mirror-sub-menu .boss-mirror-sub-menu .boss-mirror-menu-item > a { padding-left: 40px !important; }
  body.boss-mirror-no-scroll { overflow: hidden !important; }
}

/* BOSS 1.2.1: UI-only Services / Portfolio dropdown headings. */
.elementor-widget-nav-menu .elementor-nav-menu--main li[data-boss-dropdown-heading="1"] > a { cursor: pointer; }
@media (min-width: 1025px) {
  .elementor-widget-nav-menu .elementor-nav-menu--main li.boss-menu-parent-open > ul.sub-menu {
    display: block !important; visibility: visible !important; opacity: 1 !important; pointer-events: auto !important;
  }
}
@media (max-width: 1024px) {
  .boss-mirror-menu-item > .boss-mirror-parent-label {
    grid-column: 1 / -1; display: flex !important; align-items: center; justify-content: space-between;
    width: 100%; min-height: 47px; padding: 14px 12px !important; border: 0 !important;
    border-radius: 0 !important; background: transparent !important; color: #f6f4ef !important;
    text-align: left; font-family: inherit; font-size: 14px; font-weight: 600;
    letter-spacing: .02em; line-height: 1.45; cursor: pointer;
  }
  .boss-mirror-menu-item > .boss-mirror-parent-label:hover,
  .boss-mirror-menu-item > .boss-mirror-parent-label:focus-visible { color: #ff3038 !important; }
  .boss-mirror-parent-chevron { font-size: 22px; flex-shrink: 0; margin-left: 12px; transition: transform .15s; }
  .boss-mirror-expanded > .boss-mirror-parent-label .boss-mirror-parent-chevron { transform: rotate(180deg); }
}

/* Ensure the restored Services text remains legible in the existing desktop menu. */
.elementor-widget-nav-menu .elementor-nav-menu--main .boss-restored-services-label {
  display: inline !important;
  color: #f6f4ef !important;
  visibility: visible !important;
  opacity: 1 !important;
  font-size: inherit !important;
  font-weight: inherit !important;
}
