.mobile-menu-layer, .mobile-menu-toggle, .mobile-drawer, .mobile-menu-backdrop { display: none; }

@media (max-width: 820px) {
  nav:has(> .mobile-menu-toggle), nav:has(> .mobile-toggle-placeholder) {
    display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; align-items: center; gap: 12px;
    flex-wrap: nowrap; overflow: visible; z-index: 100;
  }
  nav.mobile-nav-inline { position: relative !important; }
  .site-nav .nav-actions { display: flex; grid-column: 3; grid-row: 1; justify-self: end; }
  .site-nav .nav-actions .nav-account, .site-nav .nav-actions .nav-cta { display: none; }
  .site-nav .nav-mark { grid-column: 2; grid-row: 1; justify-self: center; margin: 0; }
  .site-nav .nav-links, nav .nav-dropdown { display: none; }
  .mobile-menu-toggle {
    display: inline-flex; position: relative; align-items: center; justify-content: center;
    flex: 0 0 44px; width: 44px; height: 44px; padding: 0; border: 0;
    border-radius: 12px; background: transparent; color: var(--cream, #f7f4ee); cursor: pointer;
  }
  .site-nav > .mobile-menu-toggle, .site-nav > .mobile-toggle-placeholder { grid-column: 1; grid-row: 1; justify-self: start; }
  .mobile-toggle-placeholder { flex: 0 0 44px; width: 44px; height: 44px; }
  .mobile-menu-toggle.is-floating { position: fixed; left: var(--toggle-left); top: var(--toggle-top); z-index: 1002; }
  .mobile-menu-line {
    position: absolute; width: 24px; height: 2px; border-radius: 2px; background: currentColor;
    transition: transform var(--motion-base, 240ms) var(--ease-standard, cubic-bezier(.4, 0, .2, 1)), opacity 120ms linear;
  }
  .mobile-menu-line:nth-child(1) { transform: translateY(-7px); }
  .mobile-menu-line:nth-child(3) { transform: translateY(7px); }
  .mobile-menu-toggle[aria-expanded="true"] .mobile-menu-line:nth-child(1) { transform: rotate(45deg); }
  .mobile-menu-toggle[aria-expanded="true"] .mobile-menu-line:nth-child(2) { opacity: 0; transform: scaleX(.5); }
  .mobile-menu-toggle[aria-expanded="true"] .mobile-menu-line:nth-child(3) { transform: rotate(-45deg); }
  .mobile-menu-toggle[aria-expanded="true"] { background: rgba(247,244,238,.08); }
  .mobile-menu-layer:not([hidden]) { display: block; position: fixed; inset: 0; z-index: 1000; pointer-events: none; }
  .mobile-menu-layer > * { pointer-events: auto; }
  .mobile-menu-backdrop:not([hidden]) {
    display: block; position: fixed; inset: 0; z-index: 1000;
    background: rgba(15,13,11,.42); opacity: 0;
    transition: opacity 220ms cubic-bezier(.4,0,.2,1);
    touch-action: none;
  }
  .mobile-menu-backdrop.is-open { opacity: 1; }
  .mobile-drawer:not([hidden]) {
    --drawer-ease: var(--ease-enter, cubic-bezier(.22,1,.36,1));
    display: flex; flex-direction: column; position: fixed; inset: 0 auto 0 0;
    z-index: 1001; width: min(88vw,400px); height: 100vh; height: 100dvh;
    box-sizing: border-box; color: var(--cream,#f7f4ee);
    background: transparent;
    border-right: 1px solid rgba(247,244,238,.2);
    box-shadow: inset 0 1px 0 rgba(247,244,238,.1),24px 0 60px rgba(0,0,0,.25);
    transform: translateX(-100%);
    transition: transform 280ms cubic-bezier(.4,0,1,1);
    overflow: hidden; isolation: isolate;
  }
  /* Keep the glass on its own background layer, separate from the logo/content. */
  .mobile-drawer::before {
    content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
    background: linear-gradient(145deg,rgba(63,56,46,.94),rgba(35,32,28,.97));
    backdrop-filter: blur(24px) saturate(130%);
    -webkit-backdrop-filter: blur(24px) saturate(130%);
  }
  .mobile-drawer.is-open { transform: none; transition: transform 380ms var(--drawer-ease) 35ms; }
  .mobile-drawer.is-animating { will-change: transform; }
  .mobile-drawer-header {
    flex: 0 0 auto; height: var(--nav-header-height, 84px);
    padding: var(--toggle-top, 20px) 24px 0 calc(var(--toggle-left, 20px) + 56px);
    display: flex; align-items: flex-start; box-sizing: border-box;
    border-bottom: var(--nav-divider, 0px solid transparent);
  }
  .mobile-drawer-header a { display: inline-flex; min-height: 44px; align-items: center; }
  .mobile-drawer-header img { display: block; width: 116px; max-width: 100%; height: auto; }
  .mobile-drawer-content {
    flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch; padding: 26px 20px max(24px,env(safe-area-inset-bottom));
    display: flex; flex-direction: column; gap: 40px;
  }
  .mobile-drawer-nav { display: grid; gap: 10px; }
  .mobile-drawer .mobile-nav-trigger {
    display: flex; align-items: center; justify-content: space-between; gap: 16px; box-sizing: border-box;
    width: 100%; min-height: 68px; padding: 18px 12px; border: 1px solid rgba(247,244,238,.14); border-radius: 14px;
    background: rgba(247,244,238,.045); color: var(--cream,#f7f4ee);
    font: 600 17px var(--font-body,sans-serif); letter-spacing: .09em; text-transform: uppercase;
    text-decoration: none; text-align: left; cursor: pointer;
  }
  .mobile-nav-chevron {
    width: 20px; height: 20px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.6;
    stroke-linecap: round; stroke-linejoin: round; transition: transform 260ms var(--drawer-ease);
  }
  .is-expanded .mobile-nav-chevron { transform: rotate(180deg); }
  .mobile-nav-submenu { display: grid; grid-template-rows: 0fr; visibility: hidden; transition: grid-template-rows 260ms var(--drawer-ease), visibility 260ms; }
  .mobile-nav-submenu-inner {
    min-height: 0; overflow: hidden; opacity: 0; transform: translateY(5px);
    transition: opacity 160ms ease-out,transform 260ms var(--drawer-ease);
  }
  .is-expanded .mobile-nav-submenu { grid-template-rows: 1fr; visibility: visible; }
  .is-expanded .mobile-nav-submenu-inner { opacity: 1; transform: translateY(0); }
  .mobile-nav-submenu a {
    display: flex; align-items: center; min-height: 44px; padding: 10px 12px 10px 24px; box-sizing: border-box;
    color: #e1d9cd; font: 400 14px/1.5 var(--font-body,sans-serif); text-decoration: none;
  }
  .mobile-nav-submenu a:first-child { margin-top: 8px; }
  .mobile-nav-submenu a:last-child { margin-bottom: 12px; }
  .mobile-drawer-utilities { margin-top: auto; display: flex; align-items: center; justify-content: space-evenly; gap: 16px; padding: 20px 12px 0; border-top: 1px solid rgba(247,244,238,.14); }
  .mobile-drawer-utilities a { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 48px; width: 48px; height: 48px; box-sizing: border-box; border: 1px solid rgba(247,244,238,.14); border-radius: 50%; background: rgba(247,244,238,.06); color: #fff; text-decoration: none; }
  .mobile-drawer-utilities svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
  .mobile-drawer a:hover, .mobile-drawer button:hover, .mobile-drawer a:active, .mobile-drawer button:active { background: rgba(192,138,62,.16); color: var(--cream,#f7f4ee); }
  .mobile-drawer-utilities a:hover, .mobile-drawer-utilities a:active { color: #fff; }
  .mobile-drawer .is-current, .mobile-drawer [aria-current="page"] { color: #e8bc7a; }
  .mobile-menu-toggle:focus-visible, .mobile-drawer a:focus-visible, .mobile-drawer button:focus-visible { outline: 2px solid #e8bc7a; outline-offset: -3px; }
  .mobile-drawer-nav > *, .mobile-drawer-utilities {
    opacity: 0; transform: translateY(8px);
    transition: opacity 120ms linear, transform 160ms ease-in;
  }
  .mobile-drawer.is-open .mobile-drawer-nav > * { opacity: 1; transform: translateY(0); transition: opacity 180ms ease-out,transform 220ms var(--drawer-ease); transition-delay: calc(170ms + var(--item-index) * 40ms); }
  .mobile-drawer.is-open .mobile-drawer-utilities { opacity: 1; transform: translateY(0); transition: opacity 180ms ease-out 250ms,transform 220ms var(--drawer-ease) 250ms; }
  .footer-about, .footer-services { display: none; }
}

@media (max-width: 360px) {
  .site-nav { gap: 8px; }
  .site-nav .nav-actions { gap: 6px; }
}
@media (max-width: 340px) {
  .site-nav { gap: 6px; }
  .site-nav .nav-actions { gap: 4px; }
}
@media (max-width: 820px) and (prefers-reduced-motion: reduce) {
  .mobile-drawer, .mobile-drawer *, .mobile-menu-backdrop, .mobile-menu-toggle * { transition-duration: 1ms !important; transition-delay: 0ms !important; }
  .mobile-drawer:not([hidden]) { transform: none; }
  .mobile-drawer-header, .mobile-drawer-nav > *, .mobile-drawer-utilities, .mobile-nav-submenu-inner { transform: none; }
}
