/* ============================================================
   MIY Stay Outside — mobile slide-in nav (brief section 7)
   v1 quality: blur backdrop, focus trap, body-scroll-lock,
   swipe-to-close, in-place accordion. Panel slides from the right.
   ============================================================ */

.miy-menu {
  position: fixed; inset: 0; z-index: 120;
  visibility: hidden;
  pointer-events: none;
}
.miy-menu.open { visibility: visible; pointer-events: auto; }

.miy-menu__backdrop {
  position: absolute; inset: 0;
  background: rgba(15,16,17,.55);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  opacity: 0;
  transition: opacity .35s var(--ease);
}
.miy-menu.open .miy-menu__backdrop { opacity: 1; }

.miy-menu__panel {
  position: absolute; top: 0; right: 0;
  height: 100%;
  width: 88%; max-width: 380px;
  background: var(--ink); /* navy #15465d */
  color: #fff;
  display: flex; flex-direction: column;
  transform: translateX(100%);
  transition: transform .4s var(--ease);
  will-change: transform;
  box-shadow: -24px 0 60px -20px rgba(0,0,0,.6);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.miy-menu.open .miy-menu__panel { transform: translateX(0); }

.miy-menu__top {
  display: flex; align-items: center; justify-content: space-between;
  padding: 24px 20px 20px;
}
.miy-menu__logo { height: 32px; width: auto; filter: brightness(0) invert(1); }
.miy-menu__close {
  width: 44px; height: 44px; border-radius: 6px;
  background: transparent; border: 1.5px solid rgba(255,255,255,.4);
  color: #fff; font-size: 22px; line-height: 1;
  display: grid; place-items: center;
  transition: background .2s var(--ease);
}
.miy-menu__close:hover { background: rgba(255,255,255,.08); }

.miy-menu__nav { padding: 8px 0 0; }
.miy-menu__item { border-top: 1px solid rgba(255,255,255,.12); }
.miy-menu__item:first-child { border-top: none; }

.miy-menu__row {
  width: 100%;
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px;
  padding: 18px 20px;
  background: transparent; border: none; color: #fff;
  font-family: inherit; font-size: 18px; font-weight: 700; letter-spacing: -0.01em;
  text-align: left;
}
a.miy-menu__row { display: flex; }
.miy-menu__row .chev {
  width: 22px; height: 22px; flex-shrink: 0;
  transition: transform .3s var(--ease);
  display: grid; place-items: center;
}
.miy-menu__row .chev svg { width: 14px; height: 14px; stroke: var(--accent); fill: none; stroke-width: 2.5; }
.miy-menu__item.expanded .miy-menu__row .chev { transform: rotate(180deg); }

/* coral underline accent (matches Residential/Commercial tile style) */
.miy-menu__row .label { position: relative; padding-bottom: 3px; }
.miy-menu__row .label::after {
  content: ''; position: absolute; left: 0; bottom: 0; height: 2px; width: 0;
  background: var(--accent); transition: width .3s var(--ease);
}
.miy-menu__item.expanded .miy-menu__row .label::after,
.miy-menu__row:hover .label::after { width: 100%; }

.miy-menu__sub {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .3s var(--ease);
}
.miy-menu__item.expanded .miy-menu__sub { grid-template-rows: 1fr; }
.miy-menu__sub-inner { overflow: hidden; }
.miy-menu__sub a {
  display: block;
  padding: 12px 20px 12px 32px;
  font-size: 15px; font-weight: 500;
  color: rgba(255,255,255,.78);
}
.miy-menu__sub a:last-child { padding-bottom: 18px; }
.miy-menu__sub a:hover { color: #fff; }

.miy-menu__secondary {
  margin-top: 8px;
  padding: 18px 20px;
  border-top: 1px solid rgba(255,255,255,.12);
  display: flex; flex-wrap: wrap; gap: 8px 18px;
}
.miy-menu__secondary a {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase;
  color: rgba(255,255,255,.72);
}
.miy-menu__secondary a:hover { color: #fff; }

.miy-menu__footer {
  margin-top: auto;
  padding: 18px 20px calc(22px + env(safe-area-inset-bottom));
}
.miy-menu__footer .btn { width: 100%; padding: 16px; font-size: 15px; }

/* Lock body scroll while the menu is open */
body.miy-no-scroll { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
  .miy-menu__panel,
  .miy-menu__backdrop,
  .miy-menu__sub { transition: none; }
}
