/* Mobile component: independent selectors, document-flow rows, native dialog. */
.cm-mobile-trigger { display: none; }
.cm-mobile {
    position: fixed; inset: 0 0 0 auto; margin: 0;
    width: min(380px, calc(100vw - 24px)); height: 100dvh;
    max-width: none; max-height: none; padding: 0; border: 0;
    background: #fffdf9; color: #17231e; font-family: inherit;
}
.cm-mobile[open] { display: flex; flex-direction: column; }
.cm-mobile::backdrop { background: rgb(0 0 0 / 38%); }
.cm-mobile-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 16px; border-bottom: 1px solid #e2daca; flex-shrink: 0; }
.cm-mobile-head h2 { margin: 0; font-size: 17px; line-height: 1.5; color: #1f4d3b; }
.cm-mobile .cm-mobile-close { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 6px; background: #f3f0e8; color: #1f4d3b; cursor: pointer; }
.cm-mobile-body { overflow-y: auto; overscroll-behavior: contain; flex: 1; min-height: 0; padding: 0 16px max(16px, env(safe-area-inset-bottom)); }
.cm-mobile-list { display: block; list-style: none; margin: 0; padding: 0; }
.cm-mobile-list > li { display: block; margin: 0; padding: 0; border-bottom: 1px solid #eee8dc; }
.cm-mobile-list > li > a,
.cm-mobile .cm-mobile-disclosure {
    box-sizing: border-box; display: flex; align-items: center; justify-content: space-between;
    gap: 12px; width: 100%; min-height: 48px; padding: 12px 4px;
    border: 0; border-radius: 0; background: transparent; color: #17231e;
    text-align: right; text-decoration: none; font-family: inherit; font-size: 14px;
    font-weight: 600; line-height: 1.7; cursor: pointer;
}
.cm-mobile .cm-mobile-disclosure[aria-expanded="true"] { color: #1f4d3b; background: #f3f0e8; }
.cm-mobile-sublist { margin: 0 12px 8px 0; padding-right: 12px; border-right: 2px solid #ded3c2; }
.cm-mobile-sublist > li > a,
.cm-mobile .cm-mobile-sublist .cm-mobile-disclosure { font-size: 13px; font-weight: 400; }
.cm-mobile [hidden] { display: none; }
.cm-mobile-chevron { flex-shrink: 0; width: 8px; height: 8px; margin: 0 6px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); }
.cm-mobile-disclosure[aria-expanded="true"] > .cm-mobile-chevron { transform: rotate(225deg); }
.cm-mobile a:focus-visible, .cm-mobile button:focus-visible, .cm-mobile-trigger:focus-visible { outline: 2px solid #1f4d3b; outline-offset: -2px; }
.cm-mobile-account { padding-top: 16px; }
.cm-mobile .login_add { position: static; left: auto; display: flex; width: 100%; height: auto; flex-wrap: wrap; gap: 8px; }
.cm-mobile .login_add > a { flex: 1; display: flex; justify-content: center; align-items: center; margin: 0; padding: 10px 12px; min-height: 48px; border: 1px solid #e2daca; border-radius: 6px; background: #f3f0e8; color: #1f4d3b; text-decoration: none; }
.cm-mobile .login_add > a > bdi { font-size: 12px; }
.cm-mobile .login_menu { position: static; width: 100%; max-height: none; margin: 8px 0 0; }
.cm-mobile .login_menu > a { min-height: 48px; }
body.cm-mobile-lock { overflow: hidden; }
@media (hover: hover) {
    .cm-mobile-list a:hover, .cm-mobile .cm-mobile-disclosure:hover { color: #1f4d3b; background: #f3f0e8; }
}
@media screen and (max-width: 1024px) {
    #site-navigation, .contact-next-header .header_nav > .login_add { display: none; }
    .contact-next-header > .container { flex-wrap: nowrap; min-height: 64px; padding: 0; gap: 12px; }
    .contact-next-header .logo_bar { width: auto; padding: 0; }
    .contact-next-header .contact-brand-text { font-size: 17px; }
    .contact-next-header .header_nav { flex-basis: auto; height: 64px; }
    .cm-mobile-trigger { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0; border: 1px solid #ded3c2; border-radius: 8px; background: #fffdf9; color: #1f4d3b; cursor: pointer; }
}

/* Desktop dropdowns open explicitly from native heading buttons. */
.contact-next-header .nav_label { display: inline-flex; align-items: center; min-height: 44px; padding: 0; border: 0; background: transparent; color: var(--nav-green, #1f4d3b); font: inherit; font-weight: 800; cursor: pointer; white-space: nowrap; }

/* Keep all catalog projects reachable in the existing desktop discovery menu. */
@media screen and (min-width:1025px){
    #site-navigation .contact-models-group .contact-model-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
    #site-navigation .contact-models-group .contact-model-links>li{min-width:0;margin:0}
    #site-navigation .contact-models-group .contact-model-links a{display:flex;align-items:center;min-height:44px;height:100%;padding:9px 10px}
}
