.cph-mobile-menu:not([open]) { display: none; }
.cph-menu-trigger { display: none; }
[data-cph-fallback] a { display: inline-flex; align-items: center; min-height: 44px; padding: .5rem; }
.cph-mobile-menu { position: fixed; inset: 0 auto 0 0; margin: 0; width: min(94vw, 26rem); max-width: 100%; height: 100%; height: 100dvh; max-height: 100%; padding: 0; border: 0; border-radius: 0; color: #20372b; background: #fffdf8; font: inherit; overflow: hidden; }
.cph-mobile-menu[open] { display: flex; flex-direction: column; }
.cph-mobile-menu::backdrop { background: rgb(12 29 20 / 55%); }
.cph-menu-top { display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; padding: max(0.75rem, env(safe-area-inset-top)) 1.25rem 0.75rem; border-bottom: 1px solid #d9e0d9; font-weight: 700; }
.cph-menu-top button { min-width: 48px; min-height: 48px; border: 0; background: transparent; color: inherit; font-size: 2rem; line-height: 1; }
.cph-menu-panels { overflow-y: auto; overscroll-behavior: contain; padding-bottom: max(1.5rem, env(safe-area-inset-bottom)); }
.cph-menu-panels [hidden] { display: none !important; }
.cph-menu-panels h2 { font-family: inherit; font-size: 1.6rem; font-weight: 600; line-height: 1.3; margin: 0; padding: 1.25rem; }
.cph-menu-panels a, .cph-menu-panels button { display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: 100%; min-height: 56px; padding: 1rem 1.25rem; border: 0; border-bottom: 1px solid #d9e0d9; border-radius: 0; background: transparent; color: inherit; text-align: left; text-decoration: none; font-family: inherit; font-size: 1rem; font-weight: 600; line-height: 1.4; overflow-wrap: anywhere; }
.cph-menu-panels .cph-menu-back { font-size: .875rem; font-weight: 500; background: #eef3ee; }
.cph-mobile-menu :focus-visible, .cph-menu-trigger:focus-visible { outline: 3px solid #2e7650; outline-offset: -4px; }
@media (max-width: 820px) { .cph-menu-ready [data-cph-desktop-nav], .cph-menu-ready [data-cph-fallback] { display: none !important; } .cph-menu-ready .cph-menu-trigger { display: inline-flex; align-items: center; min-height: 48px; padding: .75rem; } }
@media (prefers-reduced-motion: no-preference) { .cph-mobile-menu nav:not([hidden]) { animation: cph-menu-enter .15s ease-out; } @keyframes cph-menu-enter { from { opacity: .4; transform: translateX(8px); } to { opacity: 1; transform: none; } } }
