/* ============================================================
   odNOVA — shared mobile menu overlay + uniform hamburger glyph
   SINGLE SOURCE OF OWNERSHIP for the global editorial overlay.
   Base layout (.menu-frame/.menu-shade/.menu-list/.menu-link/open)
   stays in the shared layout stylesheet; this file is the editorial
   skin + entrance choreography + the one hamburger/close glyph.
   ============================================================ */
#mobileMenu .menu-num{display:none!important;}
#mobileMenu .menu-link{font-size:18px!important;padding:12px 0!important;gap:0!important;justify-content:center;border-top:0!important;border-bottom:0!important;}
/* centred, elevated composition + full-bleed ghost monogram */
#mobileMenu .menu-frame::before{content:"";position:absolute;inset:0;background:url(assets/logo/monogram-oN-on-dark.svg) 60% 64%/125% auto no-repeat;opacity:.028;pointer-events:none;z-index:0;}
#mobileMenu .menu-top{justify-content:center;position:relative;z-index:3;padding-top:38px;}
#mobileMenu .menu-logo{display:inline-block;line-height:0;}
#mobileMenu .menu-logo img{display:block;height:42px;width:auto;}
#mobileMenu .menu-list{flex:1;justify-content:center;align-items:center;text-align:center;position:relative;z-index:2;gap:2px;margin-top:-14px;}
#mobileMenu .menu-foot{text-align:center;position:relative;z-index:2;}
/* grouped items with sub-labels + tap glow */
#mobileMenu .mm2{display:flex!important;flex-direction:column;align-items:center;gap:3px;padding:11px 0!important;transition:transform .18s ease;}
#mobileMenu .mm2 .mm2-n{display:none;}
#mobileMenu .mm2 .mm2-t{font-family:var(--font-serif);font-size:30px;line-height:1.1;color:#EDE8DF;transition:color .2s ease,text-shadow .3s ease;}
#mobileMenu .mm2 .mm2-sub{font-family:var(--font-sans);font-weight:300;font-size:13.5px;letter-spacing:.02em;color:#AAB4C0;margin-top:2px;}
#mobileMenu .mm2--tight .mm2-t{font-size:25px;}
#mobileMenu .mm2:nth-child(3){margin-top:32px;position:relative;}
#mobileMenu .mm2:nth-child(3)::before{content:"";position:absolute;top:-16px;left:50%;transform:translateX(-50%);width:26px;height:1px;background:linear-gradient(90deg,transparent,rgba(201,154,99,.55),transparent);}
#mobileMenu .mm2:hover .mm2-t,#mobileMenu .mm2:focus-visible .mm2-t,#mobileMenu .mm2:active .mm2-t{color:#FBF9F4;text-shadow:0 0 12px rgba(201,154,99,.32);}
#mobileMenu .mm2:active{transform:scale(.98);}
/* practice cluster */
#mobileMenu .mm-practice{margin-top:36px;display:flex;flex-direction:column;align-items:center;gap:8px;position:relative;z-index:2;}
#mobileMenu .mm-practice-lab{font-family:var(--font-mono);font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);}
#mobileMenu .mm-practice-row{display:flex;align-items:center;gap:11px;font-family:var(--font-mono);font-size:13px;letter-spacing:.08em;text-transform:uppercase;}
#mobileMenu .mm-practice-row a{color:#B9C2CE;transition:color .2s ease;}
#mobileMenu .mm-practice-row a:hover,#mobileMenu .mm-practice-row a:active{color:var(--gold-soft);}
#mobileMenu .mm-practice-row span{color:var(--gold);}
#mobileMenu .menu-cta{padding:14px 0!important;font-size:12px!important;letter-spacing:.18em!important;}
#mobileMenu .menu-cta:hover,#mobileMenu .menu-cta:focus,#mobileMenu .menu-cta:focus-visible,#mobileMenu .menu-cta:active{color:var(--navy-card)!important;background:#FBF9F4!important;}
#mobileMenu .menu-contact{font-size:15px!important;line-height:1.9!important;}
#mobileMenu .menu-contact-hi{display:inline-block;font-family:var(--font-mono)!important;font-size:13.5px!important;letter-spacing:.03em;color:#C9D2DC!important;text-decoration:none;border-bottom:1px solid rgba(201,154,99,.3);padding-bottom:3px;margin-bottom:13px;transition:color .2s ease,border-color .2s ease;}
#mobileMenu .menu-contact-hi:hover,#mobileMenu .menu-contact-hi:active{color:#F3E6CE!important;border-color:var(--gold);}
#mobileMenu .menu-contact-sub{font-family:var(--font-mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#8A97A6;}
#mobileMenu .menu-contact-sub span{color:var(--gold);margin:0 5px;}
/* soft fade on open AND close */
#mobileMenu{display:flex!important;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .26s ease,visibility .26s ease;}
#mobileMenu.open{opacity:1;visibility:visible;pointer-events:auto;}
@media(prefers-reduced-motion:reduce){#mobileMenu{transition:none;}}
/* entrance choreography — one signature moment */
@keyframes mmRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}
@keyframes mmLogoWipe{from{opacity:0;clip-path:inset(0 100% 0 0);transform:translateY(-6px);}60%{opacity:1;}to{opacity:1;clip-path:inset(0 0 0 0);transform:none;}}
@keyframes mmGhostIn{from{opacity:0;transform:scale(1.05);}to{opacity:.028;transform:none;}}
@keyframes mmGhostBreathe{0%,100%{opacity:.024;}50%{opacity:.04;}}
#mobileMenu.open .menu-logo img{animation:mmLogoWipe .72s cubic-bezier(.4,0,.2,1) both;}
#mobileMenu.open .menu-frame::before{animation:mmGhostIn 1s ease .1s both,mmGhostBreathe 11s ease-in-out 1.2s infinite;}
#mobileMenu.open .mm2{animation:mmRise .5s cubic-bezier(.22,.61,.36,1) both;}
#mobileMenu.open .menu-list .mm2:nth-child(1){animation-delay:.40s;}
#mobileMenu.open .menu-list .mm2:nth-child(2){animation-delay:.46s;}
#mobileMenu.open .menu-list .mm2:nth-child(3){animation-delay:.57s;}
#mobileMenu.open .menu-list .mm2:nth-child(4){animation-delay:.63s;}
#mobileMenu.open .menu-list .mm2:nth-child(5){animation-delay:.69s;}
#mobileMenu.open .mm-practice{animation:mmRise .5s cubic-bezier(.22,.61,.36,1) .78s both;}
#mobileMenu.open .menu-foot{animation:mmRise .5s cubic-bezier(.22,.61,.36,1) .84s both;}
@media(prefers-reduced-motion:reduce){#mobileMenu.open .menu-logo img,#mobileMenu.open .menu-frame::before,#mobileMenu.open .mm2,#mobileMenu.open .mm-practice,#mobileMenu.open .menu-foot{animation:none!important;}}
/* ---- one uniform hamburger glyph, all states / pages, no background ---- */
#hamburger,.tp-burger{background:none!important;border:0!important;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:44px;height:44px;padding:0;cursor:pointer;}
/* hamburger is for narrow widths; full nav on real desktop (>=1121px). Width-based so phone (incl. width-emulated previews) always shows it. */
@media (min-width:1121px){#hamburger,.tp-burger{display:none!important;}#navLinks{display:flex!important;}}
@media (max-width:1120px){#navLinks{display:none!important;}#hamburger{display:flex!important;margin-left:auto;}}
#hamburger .hamburger-bar,.tp-burger span{display:block;width:20px;height:1.5px;background:#E7EEE7;opacity:.9;border-radius:0;margin:0;}
/* close X — same optical weight as the hamburger bars */
#mobileMenu #menuClose{position:absolute;top:10px;right:22px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:none;border:0;cursor:pointer;}
#mobileMenu #menuClose .menu-x{position:absolute;width:20px;height:1.5px;background:#E7EEE7;opacity:.9;transition:background .2s ease;}
#mobileMenu #menuClose .menu-x--a{transform:rotate(45deg);}
#mobileMenu #menuClose .menu-x--b{transform:rotate(-45deg);}
#mobileMenu #menuClose:hover .menu-x,#mobileMenu #menuClose:focus-visible .menu-x{background:var(--gold-soft);opacity:1;}
