/* ==========================================================================
   MOBILE MENU — premium redesign
   Uses existing class names (mob-menu, mm-section, mm-services etc.) so no
   markup changes are required. All rules scoped to ≤960px.
   ========================================================================== */

@media (max-width: 960px){
  .nav-links{ display: none !important; }
  .nav-tel{ display: none !important; }
  .burger{ display: flex !important; flex: 0 0 42px; }
}
@media (max-width: 620px){
  .nav{ padding-left: 20px; padding-right: 20px; gap: 12px; }
  .logo{ font-size: 18px; white-space: nowrap; }
  .nav-cta{ display: none !important; }
  .burger{ margin-left: auto; }
}

/* burger → x transition */
.burger{ position: relative; }
.burger span{ transition: transform .28s ease, opacity .18s ease; }
.burger.open span:nth-child(1){ transform: translateY(6px) rotate(45deg); }
.burger.open span:nth-child(2){ opacity: 0; }
.burger.open span:nth-child(3){ transform: translateY(-6px) rotate(-45deg); }

.mob-menu{ display: none !important; }

@media (max-width: 960px){
  body.menu-lock{ overflow: hidden !important; }
  #hdr{ z-index: 1200 !important; }

  .mob-menu{
    display: none !important;
    position: fixed !important;
    top: var(--header-h) !important;
    inset-inline: 0 !important;
    bottom: 0 !important;
    z-index: 1190 !important;
    width: 100% !important;
    height: calc(100dvh - var(--header-h)) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    background: var(--paper) !important;
    padding: 0 0 calc(120px + env(safe-area-inset-bottom)) !important;
  }
  .mob-menu.open{ display: block !important; }

  /* status band at top */
  .mob-menu::before{
    content: "";
    display: block;
    background:
      linear-gradient(180deg, var(--ink) 0%, var(--ink) 100%);
    height: 46px;
    padding: 0;
  }
  .mob-status{
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 46px;
    display: flex; align-items: center; justify-content: space-between;
    padding: 0 22px;
    background: var(--ink);
    color: rgba(241,243,239,.85);
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: .1em;
    text-transform: uppercase;
    z-index: 1;
    pointer-events: none;
  }
  .mob-status .status-left{ display: flex; align-items: center; gap: 8px; }
  .mob-status .status-dot{
    width: 7px; height: 7px; border-radius: 50%;
    background: var(--green-hi);
    box-shadow: 0 0 0 0 rgba(107,181,229,.4);
    animation: pulseDot 2.2s ease-in-out infinite;
  }
  @keyframes pulseDot{
    0%,100%{ box-shadow: 0 0 0 0 rgba(107,181,229,.5); }
    50%{ box-shadow: 0 0 0 6px rgba(107,181,229,0); }
  }
  .mob-status .status-right{ color: rgba(241,243,239,.55); }

  /* animation: menu items rise on open */
  @media (prefers-reduced-motion: no-preference){
    .mob-menu.open .mm-section,
    .mob-menu.open .mm-cta{
      animation: mmRise .5s cubic-bezier(.2,.8,.3,1) both;
    }
    .mob-menu.open .mm-section:nth-child(2){ animation-delay: .06s; }
    .mob-menu.open .mm-section:nth-child(3){ animation-delay: .12s; }
    .mob-menu.open .mm-section:nth-child(4){ animation-delay: .18s; }
    .mob-menu.open .mm-cta{ animation-delay: .24s; }
  }
  @keyframes mmRise{
    from{ opacity: 0; transform: translateY(14px); }
    to{ opacity: 1; transform: none; }
  }

  /* section layout */
  .mob-menu .mm-section{
    display: block !important;
    margin: 0 !important;
    padding: 26px 22px 12px !important;
    border-top: 1px solid var(--line);
  }
  .mob-menu .mm-section:first-of-type{ border-top: none; padding-top: 24px !important; }

  .mob-menu .mm-label{
    display: flex !important;
    align-items: baseline;
    gap: 10px;
    margin: 0 0 16px !important;
    padding: 0 !important;
    border: 0 !important;
    color: var(--ink-60) !important;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .14em;
    text-transform: uppercase;
  }
  .mob-menu .mm-label::before{
    content: attr(data-num);
    color: var(--green);
    font-weight: 700;
  }

  /* main nav links */
  .mob-menu .mm-section > a{
    position: relative;
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    width: 100% !important;
    margin: 0 !important;
    padding: 16px 4px !important;
    border: 0 !important;
    border-bottom: 1px solid var(--line) !important;
    font-family: 'Archivo', sans-serif !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    color: var(--ink) !important;
    transition: color .15s, padding-left .18s;
  }
  .mob-menu .mm-section > a:last-child{ border-bottom: 0 !important; }
  .mob-menu .mm-section > a::after{
    content: "→";
    color: var(--ink-30);
    font-family: 'JetBrains Mono', monospace;
    font-size: 15px;
    transition: transform .18s, color .18s;
  }
  .mob-menu .mm-section > a:active{ padding-left: 8px !important; color: var(--green) !important; }
  .mob-menu .mm-section > a:active::after{ color: var(--green); transform: translateX(3px); }

  .mob-menu .mm-section > a.mm-sub{
    padding-left: 24px !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    color: var(--ink-60) !important;
  }
  .mob-menu .mm-section > a.mm-sub::before{
    content: "";
    position: absolute;
    left: 4px; top: 50%;
    width: 12px; height: 1px;
    background: var(--ink-30);
    transform: translateY(-50%);
  }

  .mob-menu .mm-section > a.active,
  .mob-menu .mm-section > a[aria-current="page"]{
    color: var(--green) !important;
  }
  .mob-menu .mm-section > a.active::after{ color: var(--green); }

  /* services accordion */
  .mob-menu details.mm-services{
    display: block !important;
    margin: 0 !important;
    padding: 26px 22px 0 !important;
    border-top: none !important;
  }
  .mob-menu .mm-services-toggle{
    list-style: none !important;
    -webkit-user-select: none;
    user-select: none;
    touch-action: manipulation;
    cursor: pointer !important;
    appearance: none;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100%;
    min-height: 56px;
    padding: 0 4px !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--ink) !important;
    font-family: 'Archivo', sans-serif !important;
    font-size: 20px !important;
    font-weight: 800 !important;
    letter-spacing: -.01em;
    text-align: left;
  }
  .mob-menu .mm-services-toggle::-webkit-details-marker{ display: none !important; }

  /* circular chevron */
  .mob-menu .mm-chevron{
    width: 32px !important;
    height: 32px !important;
    margin-right: 0 !important;
    border: 1.5px solid var(--ink-30) !important;
    border-radius: 50% !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transform: none !important;
    transition: background .2s, border-color .2s, color .2s !important;
    background: transparent;
    color: var(--ink);
    position: relative;
  }
  .mob-menu .mm-chevron::before{
    content: "";
    width: 8px; height: 8px;
    border-right: 1.7px solid currentColor;
    border-bottom: 1.7px solid currentColor;
    transform: rotate(45deg) translate(-2px,-2px);
    transition: transform .25s ease;
    display: block;
  }
  .mob-menu details.mm-services[open] .mm-chevron{
    background: var(--ink) !important;
    border-color: var(--ink) !important;
    color: var(--paper) !important;
  }
  .mob-menu details.mm-services[open] .mm-chevron::before{
    transform: rotate(-135deg) translate(-1px,-1px);
  }

  .mob-menu details.mm-services:not([open]) .mm-services-panel{ display: none !important; }
  .mob-menu details.mm-services[open] .mm-services-panel{
    display: block !important;
    padding: 6px 0 0;
    animation: mmPanel .28s ease both;
  }
  @keyframes mmPanel{ from{opacity:0; transform:translateY(-6px)} to{opacity:1; transform:none} }

  .mob-menu .mm-services-panel > a{
    position: relative;
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    width: 100% !important;
    margin: 0 !important;
    padding: 15px 4px !important;
    border: 0 !important;
    border-bottom: 1px solid var(--line) !important;
    font-family: 'Archivo', sans-serif !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    color: var(--ink) !important;
  }
  .mob-menu .mm-services-panel > a::after{
    content: "→"; color: var(--ink-30);
    font-family: 'JetBrains Mono', monospace; font-size: 14px;
  }
  .mob-menu .mm-services-panel > a.mm-sub{
    padding-left: 24px !important;
    font-size: 14.5px !important;
    font-weight: 600 !important;
    color: var(--ink-60) !important;
  }
  .mob-menu .mm-services-panel > a.mm-sub::before{
    content: ""; position: absolute; left: 4px; top: 50%;
    width: 12px; height: 1px; background: var(--ink-30); transform: translateY(-50%);
  }
  .mob-menu .mm-services-panel > a.active,
  .mob-menu .mm-services-panel > a[aria-current="page"]{ color: var(--green) !important; }

  /* CTA — sticky footer feel */
  .mob-menu .mm-cta{
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    margin: 24px 22px 0 !important;
    padding: 22px 0 0 !important;
    border-top: 1px solid var(--line);
    position: relative;
  }
  .mob-menu .mm-cta::before{
    content: "Ready when you are.";
    display: block;
    margin-bottom: 14px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--ink-60);
  }
  .mob-menu .mm-cta > .btn{
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 54px !important;
    margin: 0 !important;
    padding: 15px 18px !important;
    border: 1px solid var(--ink) !important;
    border-radius: 6px !important;
    font-family: 'Archivo', sans-serif !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    text-align: center !important;
  }
  .mob-menu .mm-cta > .btn-green{
    background: var(--green-hi) !important;
    border-color: var(--green-hi) !important;
    color: var(--ink) !important;
  }

  .mob-bar{ z-index: 1210 !important; }
}
