/* Shared dropdown navigation: white panel above a softly blurred page. */
.menu-overlay {
 --menu-header-height: 95px;
 position: fixed;
 inset: var(--menu-header-height) 0 0;
 z-index: 19;
 overflow-y: auto;
 overscroll-behavior: contain;
 padding: 16px 24px 28px;
 background: #073d2438;
 color: #073d24;
 -webkit-backdrop-filter: blur(14px);
 backdrop-filter: blur(14px);
 opacity: 0;
 transform: none;
 pointer-events: none;
 transition: opacity .4s ease;
}
.menu-overlay.is-open { opacity: 1; transform: none; pointer-events: auto; }
.menu-sheet {
 display: grid;
 grid-template-columns: .85fr 1.4fr 1fr;
 gap: 32px 40px;
 width: min(100%, 1360px);
 margin: 0 auto;
 padding: 40px;
 border: 1px solid #073d241a;
 border-radius: 16px;
 background: #fff;
 box-shadow: 0 24px 64px #073d242e;
 opacity: 0;
 transform: translateY(-64px);
 transition: transform .4s cubic-bezier(.22,1,.36,1), opacity .3s ease;
}
.menu-overlay.is-open .menu-sheet { opacity: 1; transform: translateY(0); }
.menu-group-title { margin: 0 0 20px; color: #073d24; font-size: 13px; font-weight: 500; letter-spacing: .04em; line-height: 1.4; }
.menu-nav { display: grid; gap: 14px; }
.menu-nav a { width: fit-content; color: #073d24; font-size: 17px; font-weight: 400; line-height: 1.4; text-decoration: none; }
.menu-programme-heading { margin-top: 32px; margin-bottom: 16px; }
.menu-programme-links { display: grid; gap: 14px; }
.menu-programme-links a { display: flex; flex-direction: column; align-items: start; gap: 3px; color: #073d24; text-decoration: none; }
.menu-programme-links strong { font-size: 14px; font-weight: 500; }
.menu-programme-links span { font-size: 12px; line-height: 1.4; }
.menu-work { display: flex; flex-direction: column; align-items: stretch; }
.menu-work-link { display: flex; align-items: flex-start; gap: 16px; margin: 0 -12px 10px; padding: 14px 12px; border-radius: 10px; color: #073d24; text-decoration: none; transition: background .2s ease; }
.menu-work-icon { display: grid; place-items: center; flex: none; width: 46px; height: 46px; border: 1px solid #50b848; border-radius: 50%; color: #073d24; }
.menu-work-icon svg { width: 27px; height: 27px; }
.menu-work-link strong { display: block; margin: 0 0 8px; font-size: 20px; font-weight: 500; line-height: 1.25; letter-spacing: -.025em; }
.menu-work-link small { display: block; font-size: 13px; line-height: 1.6; }
.menu-work-link:hover { background: #50b84812; }
.menu-nav a:hover, .menu-programme-links a:hover strong, .menu-sheet-footer a:hover { text-decoration: underline; text-underline-offset: 5px; }
.menu-sheet a[aria-current="page"] { text-decoration: underline; text-decoration-color: #50b848; text-decoration-thickness: 2px; text-underline-offset: 5px; }
.menu-invitation { min-width: 0; }
.menu-invitation img { display: block; width: 100%; height: 170px; object-fit: cover; border-radius: 10px; }
.menu-invitation h2 { margin: 20px 0 10px; color: #073d24; font-size: 25px; font-weight: 500; line-height: 1.15; letter-spacing: -.04em; }
.menu-invitation p { margin: 0 0 20px; color: #073d24; font-size: 13px; line-height: 1.6; }
.menu-network-link { display: inline-flex; justify-content: center; align-items: center; min-height: 44px; padding: 11px 20px; border: 1px solid #50b848; border-radius: 30px; background: #50b848; color: #073d24; font-size: 13px; font-weight: 500; text-decoration: none; }
.menu-network-link:hover { background: #073d24; border-color: #073d24; color: #fff; }
.menu-sheet-footer { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding-top: 22px; border-top: 1px solid #073d2426; }
.menu-sheet-footer p, .menu-sheet-footer a { margin: 0; color: #073d24; font-size: 12px; line-height: 1.5; }
@media (max-width: 1150px) {
 .menu-overlay { --menu-header-height: 85px; padding: 14px 18px 24px; }
 .menu-sheet { grid-template-columns: .9fr 1.4fr 1fr; padding: 28px; gap: 28px; }
 .menu-work-link { gap: 12px; }
 .menu-work-link strong { font-size: 18px; }
 .menu-work-icon { width: 40px; height: 40px; }
 .menu-invitation img { height: 145px; }
 .menu-invitation h2 { font-size: 23px; }
}
@media (max-width: 800px) {
 .menu-sheet { grid-template-columns: .9fr 1.4fr; }
 .menu-invitation { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 0 24px; padding-top: 24px; border-top: 1px solid #073d2426; }
 .menu-invitation img { display: none; }
 .menu-invitation h2 { margin: 0 0 8px; font-size: 23px; }
 .menu-invitation p { margin: 0; }
 .menu-network-link { grid-column: 2; grid-row: 1 / 3; }
}

@media (prefers-reduced-motion: reduce) {
 .menu-overlay, .menu-sheet { transition: none; transform: none; }
}
/* Keep the source and keyboard order aligned with the mobile layout. */
.menu-explore { grid-column: 1; grid-row: 1; }
.menu-programme-group { grid-column: 1; grid-row: 2; }
.menu-programme-group .menu-group-title { margin: 0 0 16px; }
.menu-work { grid-column: 2; grid-row: 1 / 3; }
.menu-invitation { grid-column: 3; grid-row: 1 / 3; }
.menu-sheet-footer { grid-row: 3; }
@media (max-width: 800px) {
 .menu-invitation { grid-column: 1 / -1; grid-row: 3; }
 .menu-sheet-footer { grid-row: 4; }
}

.menu-nav-icon, .menu-label-short { display: none; }
/* Mobile navigation fits in one view, with clear icons and generous tap targets. */
@media (max-width: 700px) {
 .menu-overlay { --menu-header-height: 78px; padding: 10px 12px 18px; }
 .menu-sheet { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 10px; padding: 18px 16px; border-radius: 14px; }
 .menu-explore { display: block; grid-column: 1 / -1; grid-row: 1; }
 .menu-explore > .menu-group-title { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
 .menu-nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
 .menu-nav a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; width: 100%; min-height: 62px; padding: 8px 3px; border: 1px solid #073d2426; border-radius: 10px; font-size: 12px; font-weight: 500; text-align: center; }
 .menu-nav-icon { display: block; flex: none; width: 22px; height: 22px; }
 .menu-label-long { display: none; }
 .menu-label-short { display: inline; }
 .menu-work { grid-column: 1 / -1; grid-row: 2; gap: 7px; padding: 0; border: 0; }
 .menu-work .menu-group-title, .menu-programme-group .menu-group-title { margin: 0 0 3px; font-size: 11px; line-height: 1.4; }
 .menu-work-link { align-items: center; gap: 10px; min-height: 52px; margin: 0; padding: 8px 10px; border: 1px solid #073d2426; border-radius: 10px; }
 .menu-work-icon { width: 32px; height: 32px; border: 0; border-radius: 8px; background: #073d24; color: #fff; }
 .menu-work-icon svg { width: 23px; height: 23px; }
 .menu-work-link strong { margin: 0; font-size: 14px; line-height: 1.3; }
 .menu-work-link small { display: none; }
 .menu-programme-group { grid-column: 1 / -1; grid-row: 3; }
 .menu-programme-group .menu-group-title { margin-bottom: 9px; }
 .menu-programme-links { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
 .menu-programme-links a { align-items: center; justify-content: center; min-height: 62px; gap: 4px; padding: 8px 4px; border-radius: 10px; background: #073d24; color: #fff; text-align: center; }
 .menu-programme-links strong { font-size: 14px; }
 .menu-programme-links span { font-size: 10px; line-height: 1.3; }
 .menu-sheet > .menu-invitation, .menu-sheet > .menu-sheet-footer { display: contents; }
 .menu-invitation img, .menu-invitation h2, .menu-invitation p, .menu-sheet-footer p { display: none; }
 .menu-network-link, .menu-sheet-footer a { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 44px; padding: 10px 6px; border-radius: 24px; font-size: 12px; font-weight: 500; line-height: 1.4; text-decoration: none; text-align: center; }
 .menu-network-link { grid-column: 1; grid-row: 4; }
 .menu-sheet-footer a { grid-column: 2; grid-row: 4; border: 1px solid #073d24; }
}
/* Short phones keep all destinations visible, with 44px minimum tap targets. */
@media (max-width: 700px) and (max-height: 600px) {
 .menu-overlay { padding: 8px 10px 12px; }
 .menu-sheet { padding: 12px; gap: 12px 8px; }
 .menu-nav a { min-height: 54px; gap: 4px; padding-block: 6px; font-size: 11px; }
 .menu-work { gap: 6px; }
 .menu-work-link { min-height: 46px; padding: 6px 8px; }
 .menu-work-link strong { font-size: 13px; }
 .menu-work-icon { width: 30px; height: 30px; }
 .menu-programme-links a { min-height: 44px; }
 .menu-programme-links span { display: none; }
}
/* Extra-short portrait screens keep the same layout with tighter spacing. */
@media (max-width: 479px) and (max-height: 520px) {
 .menu-sheet { gap: 8px; padding: 10px; }
 .menu-work { gap: 4px; }
 .menu-programme-group .menu-group-title { margin-bottom: 6px; }
}
/* Landscape phones use three compact columns instead of a long vertical panel. */
@media (min-width: 480px) and (max-height: 600px), (min-width: 701px) and (max-width: 800px) and (max-height: 720px) {
 .menu-overlay { padding: 8px 12px 12px; }
 .menu-sheet { grid-template-columns: .9fr 1.5fr .8fr; padding: 12px; gap: 8px 18px; }
 .menu-explore { display: block; grid-column: 1; grid-row: 1; }
 .menu-sheet .menu-group-title { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
 .menu-nav { display: flex; flex-direction: column; gap: 0; }
 .menu-nav a { display: flex; flex-direction: row; align-items: center; justify-content: flex-start; width: auto; min-height: 44px; padding: 0; border: 0; font-size: 12px; text-align: left; }
 .menu-nav-icon { display: none; }
 .menu-label-long { display: none; }
 .menu-label-short { display: inline; }
 .menu-work { grid-column: 2; grid-row: 1; gap: 0; padding: 0; border: 0; }
 .menu-work-link { align-items: center; min-height: 44px; gap: 8px; padding: 4px 6px; margin: 0; border: 0; }
 .menu-work-icon { width: 30px; height: 30px; }
 .menu-work-icon svg { width: 22px; height: 22px; }
 .menu-work-link strong { font-size: 12px; line-height: 1.3; margin: 0; }
 .menu-work-link small { display: none; }
 .menu-programme-group { grid-column: 3; grid-row: 1; }
 .menu-programme-links { display: flex; flex-direction: column; gap: 0; }
 .menu-programme-links a { align-items: flex-start; justify-content: center; min-height: 44px; padding: 0; background: none; color: #073d24; }
 .menu-programme-links span { display: none; }
 .menu-invitation, .menu-sheet-footer { display: contents; }
 .menu-invitation img, .menu-invitation h2, .menu-invitation p, .menu-sheet-footer p { display: none; }
 .menu-network-link { grid-column: 2 / -1; grid-row: 2; justify-self: end; width: auto; min-width: 180px; }
 .menu-sheet-footer a { grid-column: 1; grid-row: 2; display: flex; justify-content: flex-start; align-items: center; width: auto; min-height: 44px; padding: 0; border: 0; font-size: 12px; }
}
/* Balance the shared menu after removing the enterprise programme group. */
.menu-work, .menu-invitation { grid-row: 1; }
.menu-sheet-footer { grid-row: 2; }
@media (max-width: 800px) {
 .menu-invitation { grid-row: 2; }
 .menu-sheet-footer { grid-row: 3; }
}
@media (max-width: 700px) {
 .menu-work { grid-row: 2; }
 .menu-network-link, .menu-sheet-footer a { grid-row: 3; }
}
@media (min-width: 480px) and (max-height: 600px), (min-width: 701px) and (max-width: 800px) and (max-height: 720px) {
 .menu-sheet { grid-template-columns: .9fr 1.5fr; }
 .menu-work { grid-row: 1; }
 .menu-network-link { grid-column: 2; grid-row: 2; }
 .menu-sheet-footer a { grid-row: 2; }
}
/* Direct member access to the Grina Network portal. */
.header-network-login { display: inline-flex; align-items: center; min-height: 44px; color: #e4eade; font-size: 12px; white-space: nowrap; text-decoration: none; }
.header-network-login:hover { color: #80d177; }
.header-network-join { display: inline-flex; align-items: center; gap: 16px; min-height: 44px; padding: 6px 7px 6px 18px; border: 1px solid #66af60; border-radius: 40px; color: #fff; font-size: 12px; white-space: nowrap; text-decoration: none; }
.header-network-join > span { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #50b848; color: #073d24; font-size: 20px; }
.header-network-join:hover { background: #ffffff12; }
.menu-network-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.menu-network-login { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 18px; border: 1px solid #073d24; border-radius: 30px; color: #073d24; font-size: 13px; font-weight: 500; line-height: 1.4; text-decoration: none; text-align: center; }
.menu-network-login:hover { background: #eef6e9; }
@media (max-width: 800px) {
 .menu-network-actions { display: contents; }
 .menu-network-login { grid-column: 2; grid-row: 3; margin-top: 10px; }
}
@media (max-width: 700px) {
 .header-network-join { display: none; }
 .site-header .header-partner { display: none; }
 .header-network-login { font-size: 11px; }
 .menu-network-link { grid-column: 1; grid-row: 3; }
 .menu-network-login { grid-column: 2; grid-row: 3; width: 100%; margin: 0; padding: 10px 6px; font-size: 12px; }
 .menu-sheet-footer a { grid-column: 1 / -1; grid-row: 4; }
}
@media (min-width: 480px) and (max-height: 600px), (min-width: 701px) and (max-width: 800px) and (max-height: 720px) {
 .menu-network-actions { display: contents; }
 .menu-network-link { grid-column: 2; grid-row: 2; justify-self: stretch; min-width: 0; width: 100%; }
 .menu-network-login { grid-column: 2; grid-row: 3; margin-top: 0; }
 .menu-sheet-footer a { grid-column: 1; grid-row: 2; }
}
