/* Shared navigation. Keep these rules scoped so the homepage retains its layout. */
.skip{ top: 0; transform: translateY(-110%); }
.skip:focus{ top: 12px; transform: translateY(0); }
.portal-header .header-in{ gap: 20px; }
.portal-header .logo{ flex: 0 0 auto; }
.portal-header .logo img{ width: 210px; height: auto; }
.portal-header .nav{ position: static; gap: 0; margin-left: auto; }
.portal-header [hidden]{ display: none !important; }
.portal-header .nav-list{ display: flex; align-items: center; gap: 20px; }
.portal-header .nav-item{ min-width: 0; }
.portal-header .nav-item-programme{ position: relative; }
.portal-header .nav a{ white-space: normal; }
.portal-header .nav-trigger,.portal-header .language-trigger{ display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 44px; padding: 0; border: 0; background: none; color: inherit; font: inherit; }
.portal-header .nav-trigger,.portal-header .nav-direct{ position: relative; white-space: nowrap !important; }
.portal-header .nav-direct{ display: flex; align-items: center; min-height: 44px; }
.portal-header .nav-trigger::after{ content: ""; position: absolute; left: 0; right: 0; bottom: 5px; height: 3px; background: var(--teal); transform: skewX(-24deg) scaleX(0); transform-origin: left; transition: transform .2s ease; }
.portal-header .nav .nav-direct::after{ bottom: 5px; }
.portal-header .nav-trigger:hover,.portal-header .nav-trigger[aria-expanded="true"],.portal-header .nav-trigger[data-current],.portal-header .nav-direct[data-current]{ color: var(--white); }
.portal-header .nav-trigger:hover::after,.portal-header .nav-trigger[aria-expanded="true"]::after,.portal-header .nav-trigger[data-current]::after,.portal-header .nav-direct[data-current]::after{ transform: skewX(-24deg) scaleX(1); }
.portal-header .nav-chevron{ flex: none; width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s ease; }
.portal-header [aria-expanded="true"] > .nav-chevron{ transform: rotate(180deg); }
.portal-header .nav-panel{ position: absolute; top: calc(100% - 7px); left: var(--gutter); right: var(--gutter); max-height: calc(100dvh - var(--header) - 24px); overflow-y: auto; overscroll-behavior: contain; padding: 26px; color: var(--paper); background: var(--navy); border: 1px solid var(--stroke); border-radius: 20px; box-shadow: 0 28px 64px -22px rgba(0, 0, 0, .65); }
.portal-header .nav-panel-programme{ top: calc(100% + 5px); left: -24px; right: auto; width: 320px; }
.portal-header .nav-caption{ display: block; color: var(--teal); font: 500 11px/1.5 var(--mono); letter-spacing: .12em; text-transform: uppercase; }
.portal-header .nav-links{ display: grid; margin-top: 12px; }
.portal-header .nav-links a{ display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 44px; padding: 9px 0; font-size: 15px; line-height: 1.35; }
.portal-header .nav-links a > span{ flex: none; color: var(--teal); font-size: 16px; }
.portal-header .nav-links a::after{ display: block; right: 24px; height: 2px; bottom: 4px; }
.portal-header .nav-link-divider{ margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--stroke); }
.portal-header .nav-panel-audience{ display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 32px; max-width: 740px; left: auto; }
.portal-header .nav-panel-no-feature{ grid-template-columns: minmax(0, 1fr); width: 400px; }
.portal-header .nav-overview{ display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 44px; margin-bottom: 20px; padding: 0 0 14px !important; border-bottom: 1px solid var(--stroke); color: var(--white); font-size: 20px; line-height: 1.3; }
.portal-header .nav-overview::after,.portal-header .nav-feature::after{ display: none !important; }
.portal-header .nav-overview svg,.portal-header .nav-feature-action svg{ flex: none; width: 18px; height: 18px; fill: none; stroke: var(--teal); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.portal-header .nav .nav-feature{ display: flex; flex-direction: column; align-items: flex-start; gap: 16px; padding: 24px; border: 1px solid var(--stroke); border-radius: 12px; background: var(--navy-2); transition: border-color .2s ease, background-color .2s ease; }
.portal-header .nav-feature:hover{ border-color: var(--teal); background: var(--navy-3); }
.portal-header .nav-feature-title{ color: var(--paper); font: 400 24px/1.16 var(--display); letter-spacing: -.025em; }
.portal-header .nav-feature-summary{ color: var(--soft); font-size: 14px; line-height: 1.55; }
.portal-header .nav-feature-action{ display: flex; align-items: center; justify-content: space-between; gap: 16px; align-self: stretch; margin-top: auto; padding-top: 10px; color: var(--teal); font-size: 13px; }
.portal-header .header-language{ position: relative; flex: none; }
.portal-header .language-trigger{ min-width: 62px; padding-inline: 10px; color: var(--paper); border: 1px solid var(--stroke); border-radius: 999px; font: 500 11px/1 var(--mono); letter-spacing: .04em; }
.portal-header .language-trigger:hover,.portal-header .language-trigger[aria-expanded="true"]{ background: var(--navy-2); border-color: var(--muted); }
.portal-header .language-panel{ position: absolute; top: calc(100% + 8px); left: 0; right: 0; padding: 5px; background: var(--navy); border: 1px solid var(--stroke); border-radius: 12px; box-shadow: 0 18px 40px -16px rgba(0, 0, 0, .7); }
.portal-header .language-panel a{ display: flex; align-items: center; justify-content: center; min-height: 40px; border-radius: 7px; color: var(--soft); font: 500 11px/1 var(--mono); }
.portal-header .language-panel a:hover,.portal-header .language-panel a[aria-current]{ color: var(--paper); background: var(--navy-3); }
.portal-header .header-apply{ flex: none; }
.portal-header .nav-apply{ display: none; }

@media (min-width: 1181px) and (max-width: 1400px){
  .portal-header .header-in{ gap: 16px; }
  .portal-header .nav-list{ gap: 18px; }
  .portal-header .nav{ font-size: 13px; }
  .portal-header .logo img{ width: 200px; }
}

@media (max-width: 1180px){
  html.nav-locked,html.nav-locked body{ overflow: hidden; overscroll-behavior: none; }
  .nav-open .portal-header{ background: var(--navy-deep); }
  .portal-header .header-in{ gap: 12px; }
  .portal-header .header-language{ margin-left: auto; z-index: 3; }
  .portal-header .nav{ position: fixed; inset: var(--header) 0 0; z-index: 1; display: block; margin: 0; padding: 12px var(--gutter) 36px; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; background: var(--navy-deep); font: 400 24px/1.3 var(--display); }
  .portal-header .nav-list{ display: block; max-width: 720px; margin-inline: auto; }
  .portal-header .nav-item{ position: static; border-bottom: 1px solid var(--stroke); }
  .portal-header .nav-trigger,.portal-header .nav-direct{ justify-content: space-between; width: 100%; min-height: 64px; padding-block: 16px !important; text-align: left; }
  .portal-header .nav-trigger::after,.portal-header .nav .nav-direct::after{ display: block; bottom: 10px; right: auto; width: 38px; }
  .portal-header .nav-chevron{ width: 16px; height: 16px; }
  .portal-header .nav-panel{ position: static; width: auto; max-width: none; max-height: none; margin-bottom: 18px; padding: 18px; overflow: visible; border-radius: 12px; box-shadow: none; }
  .portal-header .nav-panel-audience{ gap: 22px; }
  .portal-header .nav-overview{ margin-bottom: 16px; font-size: 18px; }
  .portal-header .nav-links a{ min-height: 46px; font-size: 16px; }
  .portal-header .nav .nav-feature{ padding: 20px; }
  .portal-header .nav-feature-title{ font-size: 22px; }
  .portal-header .nav .nav-apply{ display: flex; width: fit-content; max-width: 100%; min-height: 48px; margin: 28px auto 0; padding: 6px 8px 6px 22px !important; font: 700 15px/1 var(--text); border-radius: 999px; }
  .portal-header .nav-apply::after{ display: none; }
  .portal-header .burger{ flex: none; margin-left: 0; }
}

@media (max-width: 680px){
  .portal-header .logo img{ width: clamp(154px, 43vw, 198px); height: auto; }
  .portal-header .header-in{ gap: 8px; }
  .portal-header .language-trigger{ min-width: 52px; gap: 4px; padding-inline: 8px; }
  .portal-header .nav-panel-audience{ grid-template-columns: minmax(0, 1fr); }
  .portal-header .nav-panel{ padding: 16px; }
  .portal-header .nav .nav-feature{ gap: 12px; padding: 18px; }
  .portal-header .nav-feature-summary{ display: none; }
  .portal-header .nav-feature-title{ font-size: 21px; }
  .portal-header .nav{ font-size: 23px; }
}

@media print{
  .portal-header .nav-panel,.portal-header .language-panel{ display: none !important; }
}
