
:root {
    --green-950: #06281b;
    --green-900: #087348;
    --green-800: #118257;
    --green-700: #209365;
    --olive: #9ca325;
    --olive-soft: #c1c536;
    --flag-red: #b3272d;
    --flag-red-soft: #d86a5f;
    --flag-gold: #d8b11e;
    --flag-gold-soft: #ecd57d;
    --flag-black: #181819;
    --flag-black-soft: #34353a;
    --ink: #1d2431;
    --muted: #5f6977;
    --line: #d7dde5;
    --panel: #ffffff;
    --panel-soft: #f6f8fb;
    --dark-panel: #262332;
    --shadow: 0 22px 54px rgba(17, 29, 46, 0.11);
    --shadow-soft: 0 14px 34px rgba(17, 29, 46, 0.08);
    --radius: 22px;
}

/* v90 - secure portal authentication */
.portal-auth-page {
  margin: 0;
  min-height: 100vh;
  background: #0b2d24;
  color: #17352c;
}

.portal-auth-shell {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: clamp(1rem, 4vw, 3rem);
  background:
    linear-gradient(115deg, rgba(3, 28, 22, .92), rgba(3, 28, 22, .72)),
    url("../images/logos/zimbabwe-national-flag.svg");
  background-size: cover;
  background-position: center;
}

.portal-auth-card {
  width: min(100%, 30rem);
  background: #ffffff;
  border: 1px solid rgba(12, 62, 47, .18);
  border-radius: 8px;
  box-shadow: 0 24px 70px rgba(0, 0, 0, .24);
  padding: clamp(1.25rem, 4vw, 2rem);
}

.portal-auth-brand {
  display: grid;
  gap: .45rem;
  text-align: center;
  margin-bottom: 1.25rem;
}

.portal-auth-logo {
  width: 4.75rem;
  height: 4.75rem;
  object-fit: contain;
  justify-self: center;
}

.portal-auth-brand p {
  margin: 0;
  color: #5b6f67;
  font-size: .82rem;
  line-height: 1.35;
}

.portal-auth-brand h1 {
  margin: .2rem 0 0;
  color: #0b2d24;
  font-size: clamp(1.45rem, 4vw, 2rem);
  line-height: 1.1;
}

.portal-auth-brand span {
  color: #586c65;
  font-size: .95rem;
  line-height: 1.45;
}

.portal-auth-form {
  display: grid;
  gap: .75rem;
}

.portal-auth-form label,
.portal-auth-form p label {
  font-weight: 700;
  color: #17352c;
  font-size: .92rem;
}

.portal-auth-form p {
  display: grid;
  gap: .45rem;
  margin: 0;
}

.portal-auth-form input {
  width: 100%;
  min-height: 2.9rem;
  border: 1px solid #bac8c2;
  border-radius: 6px;
  padding: .72rem .85rem;
  font: inherit;
  color: #102b24;
  background: #ffffff;
}

.portal-auth-form input:focus {
  outline: 3px solid rgba(185, 139, 47, .25);
  border-color: #9b7023;
}

.portal-auth-form button {
  min-height: 3rem;
  border: 0;
  border-radius: 6px;
  background: #0d4f3b;
  color: #ffffff;
  font-weight: 800;
  cursor: pointer;
}

.portal-auth-form button:hover,
.portal-auth-form button:focus-visible {
  background: #093a2c;
}

.portal-auth-actions {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-top: 1rem;
  font-size: .9rem;
}

.portal-auth-actions a {
  color: #0d4f3b;
  font-weight: 700;
}

.portal-auth-notice {
  margin: 1.2rem 0 0;
  padding: .85rem;
  border-left: 4px solid #b98b2f;
  background: #f7f1e5;
  color: #314a42;
  font-size: .9rem;
  line-height: 1.45;
}

.portal-auth-messages {
  display: grid;
  gap: .5rem;
  margin-bottom: 1rem;
}

.portal-auth-messages p {
  margin: 0;
  padding: .75rem .85rem;
  border-radius: 6px;
  background: #eef6f2;
  color: #17352c;
  font-size: .9rem;
}

.portal-auth-messages .error {
  background: #fff0f0;
  color: #822626;
}

.portal-user-strip {
  background: #08261f;
  color: #ffffff;
  font-size: .9rem;
}

.portal-user-strip-inner {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1rem;
  padding-block: .65rem;
}

.portal-user-strip a {
  color: #f1d58c;
  font-weight: 700;
}

.error-page-section {
  min-height: 54vh;
  display: grid;
  align-items: center;
  background: #f6f8f5;
}

.error-page-panel {
  max-width: 48rem;
  padding-block: clamp(2rem, 6vw, 4rem);
}

.error-page-panel h1 {
  margin: .35rem 0 .75rem;
  color: #0b2d24;
  font-size: clamp(2rem, 6vw, 4rem);
  line-height: 1;
}

.error-page-panel p {
  max-width: 40rem;
  color: #42564f;
  font-size: 1.05rem;
  line-height: 1.6;
}

@media (max-width: 640px) {
  .portal-auth-shell {
    align-items: stretch;
    padding: 1rem;
  }

  .portal-auth-card {
    align-self: center;
  }

  .portal-user-strip-inner {
    align-items: flex-start;
    flex-direction: column;
    gap: .4rem;
  }
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; }
body {
    font-family: "Segoe UI", Arial, sans-serif;
    color: var(--ink);
    background:
        radial-gradient(circle at 16% 8%, rgba(216, 177, 30, 0.06), transparent 20%),
        radial-gradient(circle at 84% 18%, rgba(179, 39, 45, 0.05), transparent 18%),
        radial-gradient(circle at top right, rgba(156, 163, 37, 0.09), transparent 22%),
        linear-gradient(180deg, #ffffff 0%, #f7faf9 100%);
    line-height: 1.65;
    overflow-x: hidden;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
.container { width: min(1180px, 92%); margin: 0 auto; }
.pattern-section {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}
.pattern-section > .container {
    position: relative;
    z-index: 1;
}
.pattern-section::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    opacity: .28;
    background-repeat: repeat;
    background-position: center;
    background-size: cover;
    filter: saturate(.86) contrast(.98);
}
.pattern-section::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background: linear-gradient(180deg, rgba(255,255,255,.58), rgba(255,255,255,.42) 26%, rgba(246,250,248,.64) 100%);
}
.pattern-emboss-birds::before {
    background-image: url('/static/images/background/freepik__design-a-seamless-whiteonwhite-abstract-background__67676.png');
}
.pattern-emboss-waves::before {
    background-image: url('/static/images/background/freepik__design-a-seamless-whiteonwhite-abstract-background__67677.png');
}
.pattern-emboss-crest::before {
    background-image: url('/static/images/background/freepik__design-a-seamless-whiteonwhite-abstract-background__67678.png');
}
.pattern-emboss-orbit::before {
    background-image: url('/static/images/background/Copilot_20260322_163014.png');
    background-size: cover;
    opacity: .2;
}
.pattern-emboss-relief::before {
    background-image: url('/static/images/background/freepik__design-a-seamless-whiteonwhite-abstract-background__67676.png');
    background-size: 360px auto;
    opacity: .22;
}
.feature-band.pattern-section::after,
.management-strip.pattern-section::after,
.news-section.pattern-section::after {
    background: linear-gradient(180deg, rgba(6,40,27,.74), rgba(6,40,27,.58) 26%, rgba(6,40,27,.68) 100%);
}
.feature-band.pattern-section::before,
.management-strip.pattern-section::before,
.news-section.pattern-section::before {
    opacity: .24;
    mix-blend-mode: screen;
    background-size: 500px auto;
}

.skip-link { position: absolute; left: -9999px; }
.skip-link:focus { left: 1rem; top: 1rem; z-index: 999; background: #000; color: #fff; padding: .65rem .8rem; }
.topbar {
    background:
        linear-gradient(90deg, rgba(24,24,25,.22), transparent 12%, transparent 88%, rgba(216,177,30,.12)),
        linear-gradient(90deg, var(--green-900), var(--green-800));
    color: #fff;
    max-height: 64px;
    overflow: hidden;
    transition: max-height .28s ease, opacity .22s ease, transform .28s ease;
}
.topbar-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .52rem 0;
    width: min(1880px, calc(100% - 2rem));
}
.topbar-list, .topbar-socials { display: flex; flex-wrap: wrap; gap: 1rem; }
.topbar-utility-group {
    align-items: center;
    justify-content: flex-end;
}
.topbar-item {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    min-width: 0;
}
.topbar-icon {
    display: inline-grid;
    place-items: center;
    width: 1.1rem;
    height: 1.1rem;
    color: rgba(255,255,255,.85);
    font-size: .88rem;
    flex: 0 0 auto;
}
.topbar-text { min-width: 0; }
.language-switcher {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding-right: .35rem;
}
.language-switcher select,
.language-switcher button {
    min-height: 34px;
    border: 1px solid rgba(255,255,255,.18);
    background: rgba(255,255,255,.1);
    color: #fff;
    border-radius: 999px;
    font: inherit;
}
.language-switcher select {
    min-width: 130px;
    padding: .35rem .85rem;
    appearance: none;
}
.language-switcher select option {
    color: #132531;
}
.language-switcher button {
    padding: .35rem .8rem;
    font-weight: 700;
    cursor: pointer;
}
.topbar-socials a::before { content: ""; margin-right: 0; }
.site-header { position: sticky; top: 0; z-index: 40; backdrop-filter: blur(12px); transition: box-shadow .25s ease; }
.site-header.is-compact { box-shadow: 0 14px 34px rgba(17,29,46,.12); }
.site-header.is-compact .topbar {
    max-height: 0;
    opacity: 0;
    transform: translateY(-14px);
}
.masthead {
    background: rgba(255,255,255,.98);
    border-bottom: 1px solid rgba(15,106,67,.08);
    transition: border-color .25s ease, box-shadow .25s ease;
}
.masthead-inner {
    display: grid;
    grid-template-columns: 80px minmax(0, 1fr) auto;
    align-items: center;
    gap: 0;
    padding: .28rem 0;
    transition: padding .26s ease, gap .26s ease;
    width: min(1920px, calc(100% - 1rem));
    min-width: 0;
}
.site-header.is-compact .masthead-inner {
    padding: .12rem 0;
    gap: .42rem;
}
.crest-mark, .seal-mark {
    width: 80px;
    aspect-ratio: 1;
    border-radius: 50%;
    background: #fff;
    padding: .38rem;
    display: grid;
    place-items: center;
    box-shadow: var(--shadow-soft);
    border: 1px solid rgba(15,106,67,.1);
}
.crest-mark img, .seal-mark img { width: 100%; height: 100%; object-fit: contain; }
.masthead-kicker {
    margin: 0 0 .18rem;
    text-transform: uppercase;
    letter-spacing: .14em;
    color: var(--green-800);
    font-size: .6rem;
    font-weight: 700;
    white-space: nowrap;
}
.masthead-title h1 {
    margin: 0;
    font-size: clamp(1.14rem, 2.3vw, 2.6rem);
    line-height: 1.02;
    color: var(--green-900);
    /* allow wrapping so long titles (eg. '... Affairs') don't get hidden */
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    overflow-wrap: break-word;
    word-break: normal;
    text-wrap: wrap;
    max-width: 100%;
    width: 100%;
    letter-spacing: -.01em;
    padding-right: 0;
}
.masthead-title {
    padding-right: 1rem !important;
    min-width: 0;
}
.masthead-tools,
.masthead-tools > * {
    min-width: 0;
}
.masthead-title h1 {
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
}
.masthead-meta {
    margin: .28rem 0 0;
    color: #5c685f;
    font-size: .68rem;
    letter-spacing: .02em;
    max-width: none;
}
.site-header.is-compact .crest-mark,
.site-header.is-compact .seal-mark {
    width: 64px;
}
.site-header.is-compact .masthead-title h1 {
    font-size: clamp(.84rem, 1.1vw, 1.08rem);
}
.site-header.is-compact .masthead-meta {
    margin-top: .1rem;
    font-size: .64rem;
}
.masthead-tools { display: flex; align-items: center; justify-content: flex-end; gap: 0; }
.seal-mark-inline {
    margin-right: .28rem;
    margin-left: .8rem; /* create visible gap between title text and seal */
}
.portal-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 .92rem;
    background: var(--green-900);
    color: #fff;
    font-size: .88rem;
    font-weight: 700;
    border-radius: 0;
}
.portal-link.is-active {
    background: #0c7a50;
}
.masthead-search-form {
    position: relative;
    display: flex;
    align-items: stretch;
    gap: 0;
}
.masthead-search-form input {
    min-height: 48px;
    padding: .54rem 2.8rem .54rem .5rem;
    border-radius: 0;
    border: 0;
    background: #efefef;
    font: inherit;
    min-width: 65px;
    width: 65px;
    font-size: .88rem;
}
.masthead-search-form button {
    position: absolute;
    top: 0;
    right: 0;
    width: 42px;
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #68737a;
    padding: 0;
}
.masthead-search-form button svg {
    width: 1rem;
    height: 1rem;
}
.site-header.is-compact .portal-link,
.site-header.is-compact .masthead-search-form input,
.site-header.is-compact .masthead-search-form button {
    min-height: 38px;
    height: 38px;
}
.site-header.is-compact .masthead-search-form button {
    width: 36px;
}
.webmail-link, .menu-toggle, .portal-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: .8rem 1rem;
    border-radius: 14px;
    font-weight: 800;
}
.menu-toggle {
    display: none;
    gap: .72rem;
    border: 1px solid rgba(1,98,63,.16);
    background: rgba(255,255,255,.96);
    color: var(--green-900);
    box-shadow: 0 16px 36px rgba(1, 64, 38, 0.08);
}
.menu-toggle-box {
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
    width: 18px;
    height: 16px;
}
.menu-toggle-box span {
    display: block;
    width: 18px;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
    transition: transform .24s ease, opacity .2s ease;
}
.menu-toggle-label {
    font-size: .92rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.menu-toggle.is-open .menu-toggle-box span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.menu-toggle.is-open .menu-toggle-box span:nth-child(2) { opacity: 0; }
.menu-toggle.is-open .menu-toggle-box span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
.primary-nav, .subnav { background: rgba(255,255,255,.98); }
.nav-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0;
    justify-content: center;
    width: min(1880px, calc(100% - 2rem));
    padding: 1.1rem 0 .45rem;
}
.primary-nav {
    background: #fff;
    border-top: 0;
    border-bottom: 1px solid rgba(15,106,67,.08);
}
.nav-inner > .nav-item,
.nav-inner > .nav-item-mega {
    flex: 0 1 auto;
    min-width: 0;
}
.nav-item, .nav-item-mega {
    position: relative;
    padding: 0;
    font-size: .84rem;
    color: #26315b;
    transition: color .22s ease, transform .22s ease;
}
.nav-inner > a.nav-item {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: auto;
    padding: .12rem 1.1rem;
    text-align: center;
    font-weight: 500;
    box-shadow: none;
}
.nav-inner > a.nav-item:first-of-type {
    box-shadow: none;
}
.nav-link-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: .15rem;
    min-height: auto;
    padding-left: 1.1rem;
    box-shadow: none;
}
.nav-inner > .nav-item-mega:first-child .nav-link-row {
    box-shadow: none;
}
.nav-link-row > a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: auto;
    text-align: center;
    font-weight: 500;
    padding-right: .2rem;
}
.nav-drawer-head,
.nav-scrim,
.nav-close {
    display: none;
}
.mega-toggle {
    width: 2.15rem;
    height: 2.15rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: 0;
    background: transparent;
    color: #26315b;
    transition: transform .2s ease, background .2s ease, color .2s ease;
}
.mega-toggle svg {
    width: 1rem;
    height: 1rem;
}
.nav-item + .nav-item::before, .nav-item-mega + .nav-item::before, .nav-item + .nav-item-mega::before, .nav-item-mega + .nav-item-mega::before {
    content: none;
}
.nav-item.is-active, .nav-item:hover, .nav-item-mega:hover .nav-link-row > a, .nav-item-mega.is-open .nav-link-row > a { color: var(--olive); transform: none; }
.nav-item.is-active,
.nav-inner > a.nav-item:hover { background: transparent; }
.nav-item-mega:hover .mega-toggle,
.nav-item-mega.is-open .mega-toggle {
    background: transparent;
    color: #26315b;
}
.nav-item-mega.is-open .mega-toggle {
    transform: rotate(180deg);
}
.nav-item + .nav-item::before,
.nav-item-mega + .nav-item::before,
.nav-item + .nav-item-mega::before,
.nav-item-mega + .nav-item-mega::before {
    content: "|";
    position: absolute;
    left: 0;
    color: #6f6f73;
    top: 50%;
    transform: translateY(-50%);
}
.nav-item-mega { position: relative; }
.mega-menu {
    position: absolute;
    left: 0;
    top: calc(100% + 1rem);
    width: min(980px, 90vw);
    background: rgba(255,255,255,.99);
    border: 1px solid rgba(15,106,67,.08);
    box-shadow: var(--shadow);
    display: none;
    z-index: 30;
    border-radius: 18px;
    overflow: hidden;
}
.nav-item-mega:hover .mega-menu,
.nav-item-mega.is-open .mega-menu,
.nav-item-mega:focus-within .mega-menu { display: block; }
.mega-menu-intro {
    padding: 1.15rem 1.35rem;
    background: linear-gradient(135deg, rgba(1,98,63,.08), rgba(161,174,34,.15));
    border-bottom: 1px solid rgba(15,106,67,.08);
}
.mega-menu-intro h3 {
    margin: 0 0 .35rem;
    color: var(--green-900);
    font-size: 1.2rem;
}
.mega-menu-intro p:last-child {
    margin: 0;
    color: #435147;
}
.mega-column-operational strong,
.mega-column-operational a {
    color: var(--green-900);
}
.mega-column-supporting {
    background: linear-gradient(180deg, rgba(249,246,234,.98), rgba(245,239,216,.92));
}
.mega-column-supporting strong,
.mega-column-supporting a {
    color: #8a5a0a;
}
.mega-tabs { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); }
.mega-tabs > div { padding: 1.25rem 1.4rem; }
.mega-tabs > div:first-child { background: #fbfcfd; border-right: 1px solid #ececec; }
.mega-tabs strong { display: block; margin-bottom: .9rem; color: var(--olive); font-size: 1.02rem; }
.mega-tabs ul, .support-list, .simple-list, .footer-links { list-style: none; margin: 0; padding: 0; }
.mega-tabs li, .support-list li, .simple-list li, .footer-links li { margin-bottom: .75rem; }
.subnav { border-top: 1px solid rgba(15,106,67,.06); }
.subnav-inner {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 1.25rem;
    padding: .15rem 0 .65rem;
    overflow-x: auto;
    white-space: nowrap;
    -ms-overflow-style: none;
    scrollbar-width: none;
    width: min(1880px, calc(100% - 2rem));
}
.subnav-inner::-webkit-scrollbar { display: none; }
.subnav-inner a { color: #364162; flex: 0 0 auto; }
.official-subnav a {
    position: relative;
    font-size: .84rem;
}
.official-subnav a.is-active {
    color: var(--olive);
}
.official-subnav a + a::before {
    content: "|";
    position: absolute;
    left: -1rem;
    color: #6f6f73;
}
[data-reveal] {
    opacity: 0;
    transform: translateY(26px);
    transition: opacity .72s ease, transform .72s ease;
    transition-delay: var(--reveal-delay, 0ms);
}
[data-reveal].is-visible {
    opacity: 1;
    transform: translateY(0);
}
[data-reveal="left"] {
    transform: translateX(-26px);
}
[data-reveal="right"] {
    transform: translateX(26px);
}
[data-reveal="left"].is-visible,
[data-reveal="right"].is-visible {
    transform: translateX(0);
}
.hero-slider { position: relative; min-height: 82vh; overflow: hidden; background: radial-gradient(circle at top left, rgba(167,181,35,.12), transparent 30%), #0d1f1a; isolation: isolate; }
.hero-slider::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 18% 16%, rgba(255,255,255,.1), transparent 26%), radial-gradient(circle at 84% 18%, rgba(161,174,34,.14), transparent 22%), linear-gradient(180deg, rgba(6,24,18,.02), rgba(6,24,18,.16)); z-index: 0; pointer-events: none; }
.hero-slider::after { content: ""; position: absolute; inset: auto 0 0; height: 28%; background: linear-gradient(180deg, rgba(6,24,18,0), rgba(6,24,18,.42)); z-index: 0; pointer-events: none; }
.hero-slide {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: end;
    background-size: cover;
    background-position: var(--hero-position, center top);
    opacity: 0;
    visibility: hidden;
    transform: translateY(0);
    transition: opacity .7s ease, visibility .7s ease;
}
.hero-slide.is-active { opacity: 1; visibility: visible; }
.hero-slide-inner { color: #fff; padding: 10.2rem 0 11rem; width: 100%; position: relative; z-index: 1; }
.hero-slide::before { content: ""; position: absolute; inset: 0; background: linear-gradient(108deg, rgba(6,24,18,.68) 4%, rgba(6,24,18,.28) 32%, rgba(6,24,18,.04) 72%), radial-gradient(circle at 74% 24%, rgba(255,255,255,.1), transparent 20%); pointer-events: none; }
.hero-copy-shell {
    width: min(860px, calc(100% - 1.5rem));
    position: relative;
    display: grid;
    gap: 1rem;
    padding: 1.5rem 1.65rem 1.65rem;
}
.hero-copy-shell::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 34px;
    background: linear-gradient(145deg, rgba(7,28,21,.52), rgba(7,28,21,.18));
    box-shadow: 0 28px 80px rgba(0,0,0,.16);
    border: 1px solid rgba(255,255,255,.12);
    z-index: -1;
}
.hero-slide-inner > * {
    opacity: 0;
    transform: translateY(22px);
    transition: opacity .55s ease, transform .55s ease;
}
.hero-slide.is-active .hero-slide-inner > * {
    opacity: 1;
    transform: translateY(0);
}
.hero-slide.is-active .hero-slide-inner > *:nth-child(2) { transition-delay: .16s; }
.hero-kicker, .section-kicker, .mini-kicker {
    margin: 0 0 .55rem;
    font-size: .82rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    font-weight: 800;
    color: color-mix(in srgb, var(--green-900) 76%, var(--flag-gold) 24%);
}
.hero-kicker {
    color: color-mix(in srgb, #ffffff 82%, var(--flag-gold) 18%);
}
.hero-slide h2, .page-banner h2 { margin: 0; font-size: clamp(1.9rem, 3.4vw, 3.35rem); line-height: 1.08; }
.hero-copy { max-width: 58ch; font-size: 1.02rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.2rem; }
.hero-glance-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.15rem;
}
.hero-glance-tag,
.hero-glance-metric {
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    padding: .72rem .95rem;
    border-radius: 999px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.14);
    backdrop-filter: blur(10px);
}
.hero-glance-dot {
    width: .7rem;
    height: .7rem;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--flag-gold), var(--flag-red-soft), var(--green-800));
    box-shadow: 0 0 0 .3rem rgba(216,177,30,.14);
}
.hero-glance-tag span:last-child,
.hero-glance-metric strong {
    color: #fff;
    font-size: .88rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.hero-glance-label {
    font-size: .7rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(255,255,255,.72);
}
.hero-dots {
    position: absolute;
    left: 50%;
    bottom: 1.25rem;
    transform: translateX(-50%);
    display: flex;
    gap: .65rem;
    z-index: 2;
}
.hero-dot {
    width: 12px; height: 12px; border-radius: 999px; border: 0; background: rgba(255,255,255,.35); cursor: pointer;
}
.hero-dot.is-active { background: var(--olive-soft); }
.hero-nav {
    position: absolute;
    right: clamp(1rem, 3vw, 2.25rem);
    bottom: 1.5rem;
    z-index: 2;
    display: flex;
    gap: .7rem;
}
.hero-arrow {
    width: 3.15rem;
    height: 3.15rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.16);
    background: rgba(6,24,18,.32);
    color: #fff;
    backdrop-filter: blur(10px);
    transition: transform .22s ease, background-color .22s ease, border-color .22s ease;
}
.hero-arrow:hover,
.hero-arrow:focus-visible {
    transform: translateY(-2px);
    background: rgba(6,24,18,.5);
    border-color: rgba(255,255,255,.24);
}
.hero-arrow svg {
    width: 1.15rem;
    height: 1.15rem;
}
.hero-progress {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    height: 4px;
    background: rgba(255,255,255,.12);
}
.hero-progress span {
    display: block;
    width: 100%;
    height: 100%;
    transform-origin: left center;
    transform: scaleX(0);
    background: linear-gradient(90deg, rgba(216,177,30,.32), rgba(179,39,45,.62), rgba(255,255,255,.72));
}
@keyframes heroProgress {
    from { transform: scaleX(0); }
    to { transform: scaleX(1); }
}
.home-intro-strip { padding-top: 2.25rem; padding-bottom: 1rem; }
.home-intro-layout { grid-template-columns: minmax(0, 1.3fr) minmax(280px, .7fr); }
.quick-link-panel {
    padding: 1.25rem;
    position: relative;
    border-radius: 24px;
    background:
        linear-gradient(135deg, rgba(216,177,30,.08), transparent 42%),
        linear-gradient(180deg, rgba(243,247,244,.98), rgba(233,239,236,.94));
    border: 1px solid rgba(1,98,63,.08);
    box-shadow: var(--shadow-soft);
}
.quick-link-list { display: grid; gap: .7rem; }
.quick-link-list a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .88rem 1rem;
    border-radius: 16px;
    background: #fff;
    border: 1px solid rgba(17,29,46,.06);
    font-weight: 700;
    color: var(--ink);
}
.quick-link-list a::after {
    content: "↗";
    color: var(--green-800);
    font-size: .95rem;
}
.quick-link-list-text {
    gap: .9rem;
}
.quick-link-copy {
    display: grid;
    gap: .35rem;
    padding: .95rem 1rem;
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(248, 250, 248, .98), rgba(239, 245, 241, .94));
    border: 1px solid rgba(15, 106, 67, .08);
}
.quick-link-copy strong {
    color: var(--green-900);
    font-size: 1rem;
}
.quick-link-copy span {
    color: var(--ink-600);
    line-height: 1.6;
}
.quick-link-copy-link {
    text-decoration: none;
    color: inherit;
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.quick-link-copy-link:hover,
.quick-link-copy-link:focus-visible {
    transform: translateY(-2px);
    border-color: rgba(15,106,67,.16);
    box-shadow: var(--shadow-soft);
}
.feature-band { background: linear-gradient(180deg, #262332, #302b41); padding: 2rem 0 2.4rem; }
.feature-grid, .management-grid, .news-grid, .gallery-grid, .principals-grid, .card-grid-4 { display: grid; gap: 1.35rem; }
.feature-grid.three-up, .news-grid, .principals-grid, .gallery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.feature-grid.feature-grid-two-up { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.feature-grid.about-leaders-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; }
.card-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.feature-card, .management-card, .news-card, .stack-card, .resource-card, .sidebar-card, .contact-panel, .principal-card, .gallery-card {
    position: relative;
    background: var(--panel);
    border: 1px solid rgba(17,29,46,.07);
    box-shadow: var(--shadow-soft);
    border-radius: var(--radius);
    overflow: hidden;
}
.feature-card::before, .management-card::before, .news-card::before, .stack-card::before, .resource-card::before, .sidebar-card::before, .contact-panel::before, .principal-card::before, .gallery-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 4px;
    background: linear-gradient(90deg, rgba(1,98,63,.9), rgba(216,177,30,.84), rgba(179,39,45,.45), rgba(1,98,63,.35));
}
.feature-card::after, .management-card::after, .news-card::after, .stack-card::after, .resource-card::after, .sidebar-card::after, .contact-panel::after, .principal-card::after, .gallery-card::after {
    content: "";
    position: absolute;
    inset: 1px;
    border-radius: calc(var(--radius) - 1px);
    pointer-events: none;
    background: linear-gradient(180deg, rgba(255,255,255,.22), transparent 22%, transparent 78%, rgba(179,39,45,.04));
}
.feature-card {
    background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.18));
    color: #fff;
    padding: 1.8rem;
    border-color: rgba(255,255,255,.08);
}
.feature-icon {
    width: 74px;
    height: 74px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 18px;
    background:
        radial-gradient(circle at 28% 24%, rgba(255,255,255,.42), transparent 36%),
        linear-gradient(135deg, var(--flag-gold-soft), var(--flag-gold), var(--flag-red-soft));
    color: #102920;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 18px 34px rgba(0,0,0,.18);
}
.feature-icon svg {
    width: 2.45rem;
    height: 2.45rem;
}
.feature-card h3 { margin: .8rem 0; font-size: clamp(1.55rem, 2.7vw, 2.5rem); text-transform: uppercase; line-height: 1.04; }
.feature-link { color: #fff; font-weight: 700; }
.feature-card {
    transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.feature-card:hover,
.feature-card:focus-within {
    transform: translateY(-6px);
    box-shadow: 0 26px 54px rgba(0,0,0,.26);
    border-color: rgba(255,255,255,.18);
}
.welcome-section, .content-section, .management-strip, .news-section { padding: 2.6rem 0; }
.split-panel, .two-column-layout, .department-columns, .three-panel-layout { display: grid; gap: 1.5rem; }
.split-panel { grid-template-columns: minmax(260px, .85fr) minmax(0, 1fr); align-items: center; }
.split-panel-prominent { gap: 2rem; }
.about-principals-preview { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.1rem; }
.rich-list {
    margin: 0;
    padding-left: 1.2rem;
    display: grid;
    gap: .75rem;
}
.rich-list li { color: var(--ink-700); }
.devolution-role-note {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(17,29,46,.08);
}
.devolution-duty-card {
    display: grid;
    gap: .9rem;
    min-height: 100%;
}
.devolution-duty-card h3 {
    margin: 0;
    font-size: 1.2rem;
}
.site-search-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .8rem;
    align-items: center;
}
.site-search-form input {
    width: 100%;
    min-height: 52px;
    border-radius: 16px;
    border: 1px solid rgba(17,29,46,.1);
    background: #fff;
    padding: .9rem 1rem;
    font: inherit;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}
.site-search-form button {
    min-height: 52px;
    padding: .85rem 1.3rem;
    border: 0;
    border-radius: 16px;
    background: linear-gradient(135deg, var(--green-900), var(--green-700) 58%, var(--flag-gold));
    color: #fff;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
    transition: transform .22s ease, box-shadow .22s ease, filter .22s ease;
}
.site-search-form button:hover,
.site-search-form button:focus-visible {
    transform: translateY(-1px);
    box-shadow: 0 14px 28px rgba(1,98,63,.18);
    filter: saturate(1.03);
}
.site-search-form-wide {
    max-width: 860px;
    margin: 0 auto;
}
.home-flow-card {
    min-height: 100%;
}
.search-result-card h3 {
    margin: 0 0 .65rem;
}
.search-result-card h3 a {
    color: #fff;
    text-decoration: none;
}
.search-result-card h3 a:hover {
    text-decoration: underline;
}
.screen-reader-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.two-column-layout { grid-template-columns: minmax(0, 1.5fr) minmax(300px, .7fr); align-items: start; }
.department-columns { grid-template-columns: minmax(0, 1.4fr) minmax(280px, .8fr); }
.three-panel-layout { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; }
.portrait-photo-wrap {
    background: linear-gradient(180deg, rgba(255,255,255,.55), rgba(255,255,255,.92));
    padding: 1rem;
    border: 1px solid rgba(17,29,46,.07);
    box-shadow: var(--shadow);
    border-radius: 26px;
}
.portrait-photo, .principal-photo, .person-photo, .gallery-photo, .news-image { width: 100%; object-fit: cover; }
.portrait-photo { border-radius: 20px; min-height: 420px; }
.portrait-photo-large { max-height: 620px; }
.about-visual-stack {
    background: linear-gradient(180deg, rgba(248,250,249,.96), rgba(240,245,242,.92));
    border: 1px solid rgba(17,29,46,.06);
    box-shadow: var(--shadow-soft);
    border-radius: 28px;
    padding: 1rem;
}
.about-photo-large {
    width: 100%;
    display: block;
    border-radius: 22px;
    object-fit: cover;
    max-height: 620px;
}
.about-photo-portrait {
    width: 108px;
    height: 132px;
    border-radius: 18px;
    object-fit: cover;
    flex: 0 0 auto;
    box-shadow: var(--shadow-soft);
}
.about-visual-note {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-top: 1rem;
    padding: 1rem;
    border-radius: 22px;
    background: linear-gradient(180deg, rgba(255,255,255,.94), rgba(246,249,247,.92));
    border: 1px solid rgba(17,29,46,.06);
}
.about-visual-note h3 { margin: .2rem 0 .45rem; }
.about-visual-note p:last-child { margin-bottom: 0; }
.about-values-image,
.about-leader-photo {
    width: 100%;
    display: block;
    border-radius: 18px;
    object-fit: cover;
}
.about-values-image {
    margin-bottom: 1rem;
    border: 1px solid rgba(17,29,46,.06);
    background: #fff;
}
.about-leader-card {
    overflow: hidden;
    padding: .85rem;
}
.about-leader-card-hierarchy {
    padding: 1rem;
    background: linear-gradient(180deg, rgba(255,255,255,.99), rgba(244,248,245,.96));
}
.about-leader-photo {
    aspect-ratio: 4 / 4.1;
    margin-bottom: .8rem;
    background: linear-gradient(180deg, rgba(245,248,246,.96), rgba(235,241,237,.92));
    object-position: center 18%;
}
.about-leader-card h3 {
    margin: 0 0 .35rem;
    font-size: 1.08rem;
    line-height: 1.18;
}
.about-leader-card p:last-child {
    margin-bottom: 0;
    font-size: .93rem;
}
.leadership-statement-card {
    display: grid;
    gap: 1rem;
    padding: 1.2rem;
}
.leadership-statement-head {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
    gap: 1rem;
    align-items: center;
}
.leadership-statement-role {
    margin: .35rem 0 0;
    color: #516154;
    font-size: .94rem;
}
.about-inline-art {
    background: linear-gradient(180deg, rgba(248,250,249,.96), rgba(240,245,242,.92));
    border: 1px solid rgba(17,29,46,.06);
    box-shadow: var(--shadow-soft);
    border-radius: 28px;
    padding: 1rem;
}
.welcome-copy h2, .section-header h2, .content-section h2 { margin: 0 0 1rem; font-size: clamp(2rem, 4vw, 3.2rem); }
.section-header { margin-bottom: 1rem; }
.timeline-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.15rem;
}
.timeline-card {
    padding: 1.2rem;
    border-radius: 24px;
    border: 1px solid rgba(17,29,46,.06);
    background: #fff;
    box-shadow: var(--shadow-soft);
}
.timeline-card h3 { margin: 0 0 .65rem; font-size: 1.15rem; }
.page-banner-rich {
    position: relative;
    overflow: hidden;
    background-position: center;
    background-size: cover;
}
.page-banner-rich::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 18% 18%, rgba(255,255,255,.08), transparent 22%), radial-gradient(circle at 82% 20%, rgba(216,177,30,.12), transparent 18%);
    pointer-events: none;
}
.page-banner-rich .page-banner-content {
    position: relative;
    z-index: 1;
}
.action-card {
    min-height: 100%;
}
.action-card h3 {
    font-size: clamp(1.28rem, 2vw, 1.7rem);
}
.listing-board {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
}
.listing-card {
    position: relative;
    padding: 1.2rem;
    border-radius: 24px;
    border: 1px solid rgba(15,106,67,.08);
    background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(246,249,247,.95));
    box-shadow: var(--shadow-soft);
}
.listing-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 4px;
    border-radius: 24px 24px 0 0;
    background: linear-gradient(90deg, rgba(1,98,63,.9), rgba(216,177,30,.84), rgba(179,39,45,.45));
}
.listing-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .8rem;
}
.listing-card h3 {
    margin: .35rem 0 .7rem;
    font-size: clamp(1.25rem, 2vw, 1.65rem);
    color: var(--green-900);
}
.listing-meta {
    display: grid;
    gap: .35rem;
    margin-top: 1rem;
    color: var(--ink-700);
    font-size: .95rem;
}
.status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: .35rem .8rem;
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    border: 1px solid transparent;
    white-space: nowrap;
}
.status-open {
    background: rgba(15,106,67,.11);
    color: var(--green-900);
    border-color: rgba(15,106,67,.18);
}
.status-closing-soon,
.status-shortlisting-soon {
    background: rgba(216,177,30,.14);
    color: #7c5200;
    border-color: rgba(216,177,30,.22);
}
.status-closed {
    background: rgba(179,39,45,.1);
    color: #8f1f25;
    border-color: rgba(179,39,45,.18);
}
.management-strip { background: linear-gradient(180deg, #17392d, var(--green-900)); }
.management-strip .section-header, .management-strip .section-header p, .management-strip .section-header h2 { color: #fff; }
.section-link-button { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: .72rem 1.1rem; border-radius: 999px; border: 1px solid rgba(255,255,255,.22); background: rgba(255,255,255,.1); color: #fff; font-weight: 700; text-decoration: none; transition: background .2s ease, border-color .2s ease, transform .2s ease; }
.section-link-button:hover { background: rgba(255,255,255,.18); border-color: rgba(255,255,255,.34); transform: translateY(-1px); }
.management-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.management-grid-page {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
}
.grouped-management-block { margin-top: 2rem; }
.grouped-management-header { margin-bottom: 1rem; }
.grouped-management-header h3 { margin: 0; font-size: clamp(1.4rem, 2.6vw, 2rem); color: var(--green-900); }
.management-board-summary { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, .9fr); gap: 1.2rem; }
.board-summary-card { min-height: 100%; }
.board-summary-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .9rem; align-items: stretch; }
.board-summary-metrics div { display: grid; gap: .2rem; place-items: center; text-align: center; padding: 1rem .6rem; border-radius: 20px; background: linear-gradient(180deg, rgba(245,248,246,.96), rgba(235,241,237,.92)); border: 1px solid rgba(15,106,67,.08); }
.board-summary-metrics strong { font-size: clamp(1.35rem, 2.6vw, 2rem); color: var(--green-900); }
.board-summary-metrics span { color: var(--ink-600); font-weight: 600; }
.grouped-management-block-rich { padding-top: .25rem; }
.grouped-management-header-rich { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding-bottom: .8rem; border-bottom: 1px solid rgba(15,106,67,.12); }
.grouped-management-count { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; padding: .45rem .85rem; border-radius: 999px; background: rgba(1,98,63,.08); color: var(--green-900); font-weight: 700; white-space: nowrap; }
.management-grid-rich { gap: 1.55rem; }
.management-card-rich { display: flex; flex-direction: column; text-align: left; padding: 0; border: 1px solid rgba(15,106,67,.08); background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(247,250,248,.96)); }
.management-photo-frame { position: relative; padding: 1rem 1rem 0; }
.person-photo-rich, .avatar-circle-rich { width: 100%; aspect-ratio: 4 / 4.35; height: auto; min-height: 280px; max-height: 320px; margin: 0; border-radius: 18px; border: 1px solid rgba(15,106,67,.08); box-shadow: 0 14px 28px rgba(17,29,46,.08); background: linear-gradient(180deg, #f7f8fb, #eef2f4); }
.person-photo-rich { display: block; object-fit: contain; object-position: center center; padding: .35rem; background: #fff; }
.management-card-rich .person-photo, .management-card-rich .person-photo-rich { width: 100%; height: auto; min-height: 280px; max-height: 320px; margin: 0; border-radius: 18px; border: 1px solid rgba(15,106,67,.08); box-shadow: 0 14px 28px rgba(17,29,46,.08); }
.management-card-rich .avatar-circle, .management-card-rich .avatar-circle-rich { width: 100%; aspect-ratio: 4 / 4.35; margin: 0; border-radius: 18px; }
.avatar-circle-rich { display: grid; place-items: center; font-size: clamp(2rem, 3.2vw, 2.8rem); font-weight: 800; color: #394256; }
.management-card-body { display: grid; gap: .4rem; padding: 1rem 1rem 1.15rem; }
.management-card-label { margin: 0; font-size: .75rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #7a8566; }
.management-role { margin: 0; color: var(--ink-700); font-weight: 600; line-height: 1.55; }
.management-card-rich h3 { margin: 0; font-size: clamp(1.16rem, 2.1vw, 1.4rem); color: #132531; }
.department-block .grouped-management-header p:last-of-type { margin-bottom: .75rem; }
.department-block-rich {
    display: grid;
    grid-template-columns: minmax(0, .92fr) minmax(280px, .78fr) minmax(0, 1.08fr);
    align-items: stretch;
    gap: 1.1rem;
}
.supporting-detail-grid {
    align-items: start;
}
.supporting-summary-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    margin: .9rem 0 1rem;
}
.supporting-scope-chip {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: .42rem .8rem;
    border-radius: 999px;
    background: rgba(1,98,63,.08);
    border: 1px solid rgba(1,98,63,.1);
    color: var(--green-900);
    font-size: .8rem;
    font-weight: 700;
}
.supporting-focus-panel,
.supporting-lead-card {
    height: 100%;
}
.department-head-card {
    margin: .9rem 0 1rem;
    background: linear-gradient(135deg, rgba(8,115,72,.06), rgba(8,115,72,.02));
    border: 1.5px solid rgba(8,115,72,.14);
    border-radius: 16px;
    padding: 1.2rem 1.4rem;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .45rem;
}
.department-head-inline {
    display: inline-flex;
    align-items: center;
    gap: .75rem;
    margin: .5rem 0 1rem;
    padding: .6rem .8rem;
    border-radius: 18px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.14);
}
.department-head-inline strong,
.department-head-inline span {
    display: block;
}
.department-head-inline strong {
    color: #fff;
    font-size: .96rem;
}
.department-head-inline span {
    color: rgba(255,255,255,.82);
    font-size: .86rem;
}
.department-head-inline-photo {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid rgba(255,255,255,.22);
}
.supporting-focus-panel {
    padding: 1.1rem 1.15rem;
}
.supporting-focus-list {
    margin: .35rem 0 0;
    padding-left: 1.1rem;
    display: grid;
    gap: .6rem;
}
.supporting-focus-list li {
    color: var(--ink-700);
}
.supporting-lead-card {
    display: grid;
    align-content: start;
    gap: .55rem;
    padding: 1.2rem;
}
.supporting-lead-card h3 {
    margin: 0;
    color: var(--green-900);
    font-size: clamp(1.06rem, 2vw, 1.28rem);
}
.supporting-digital-panel {
    margin-bottom: 1.6rem;
}
.department-direct-links {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin-top: 1rem;
}
.supporting-accordion-list {
    display: grid;
    gap: .8rem;
    margin-top: 1rem;
}
.supporting-accordion {
    border: 1px solid rgba(1,98,63,.1);
    border-radius: 18px;
    background: rgba(248,251,249,.95);
    overflow: hidden;
}
.supporting-accordion summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .8rem;
    cursor: pointer;
    list-style: none;
    padding: .95rem 1rem;
    font-weight: 800;
    color: var(--green-900);
}
.supporting-accordion summary::-webkit-details-marker {
    display: none;
}
.supporting-accordion summary::after {
    content: "+";
    font-size: 1.15rem;
    line-height: 1;
    color: var(--green-900);
}
.supporting-accordion[open] summary::after {
    content: "-";
}
.supporting-accordion .compact-list {
    padding: 0 1.1rem 1rem 2rem;
}
.department-detail-head {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 1rem;
    margin: .4rem 0 1rem;
}
.department-panel { padding: 1.35rem 1.4rem; }
.department-list { margin: 0; padding-left: 1.15rem; display: grid; gap: .65rem; }
.department-list li { color: var(--ink-700); }
.department-slider-section { padding-top: 0; }
.department-slider-shell,
.department-slide,
.department-slide .resource-slide-inner { min-height: 470px; }
.department-slider-caption { max-width: 700px; }
.department-media-card {
    position: relative;
    min-height: 280px;
    border-radius: 24px;
    overflow: hidden;
    background-color: #12261e;
    background-position: center;
    background-size: cover;
    box-shadow: var(--shadow-soft);
    border: 1px solid rgba(255,255,255,.08);
}
.department-media-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(6,24,18,.16) 38%, rgba(6,24,18,.7));
    pointer-events: none;
}
.department-media-card-copy {
    position: absolute;
    inset: auto 1rem 1rem 1rem;
    z-index: 1;
    color: #fff;
    padding: 1rem;
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(8,29,20,.52), rgba(8,29,20,.24));
    backdrop-filter: blur(6px);
}
.department-media-card-copy h4 {
    margin: 0 0 .45rem;
    font-size: 1.05rem;
}
.department-media-card-copy p:last-child {
    margin-bottom: 0;
    color: rgba(255,255,255,.9);
}
.department-visual-stack {
    display: grid;
    gap: 1rem;
    align-content: start;
}
.department-media-card-detail { min-height: 330px; }
.department-detail-banner {
    background-position: center center;
    background-size: cover;
}
.operational-accordion-list {
    margin-bottom: 1rem;
}
.department-full-list {
    margin-top: 1rem;
}
.department-related-card {
    display: grid;
    gap: .9rem;
    background: linear-gradient(180deg, rgba(255,255,255,.985), rgba(247,250,248,.96));
    color: var(--ink-700);
}
.department-related-image {
    height: 180px;
    border-radius: 18px;
    background-position: center;
    background-size: cover;
    box-shadow: var(--shadow-soft);
}
.department-related-card .mini-kicker {
    color: var(--olive);
}
.department-related-card h3 {
    color: var(--green-900);
    font-size: clamp(1.28rem, 2vw, 1.75rem);
    line-height: 1.18;
    text-transform: none;
}
.department-related-card p {
    color: var(--ink-700);
}
.department-related-card .feature-link {
    color: var(--green-900);
}
.department-related-card .feature-link:hover,
.department-related-card .feature-link:focus-visible {
    color: var(--flag-red);
}
.management-card, .principal-card { text-align: center; padding: 1.35rem 1.1rem; }
.management-card { background: rgba(255,255,255,.97); transition: transform .2s ease, box-shadow .2s ease; }
.management-card:hover, .news-card:hover, .gallery-card:hover, .principal-card:hover, .dept-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.news-card,
.gallery-card,
.principal-card,
.dept-card,
.stack-card,
.resource-card,
.sidebar-card,
.contact-panel {
    transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}
.person-photo { width: 138px; height: 138px; border-radius: 50%; margin: 0 auto 1rem; border: 6px solid #f3f5f9; box-shadow: 0 10px 24px rgba(17,29,46,.12); }
.avatar-circle { width: 118px; aspect-ratio: 1; border-radius: 50%; margin: 0 auto 1rem; display: grid; place-items: center; background: linear-gradient(135deg, #ece9de, #c7c9d2); color: #394256; font-size: 2rem; font-weight: 800; }
.management-card h3, .principal-card h3, .news-card h3, .stack-card h4, .resource-card h3, .gallery-card h3 { margin: 0 0 .55rem; }
.news-header { text-align: center; margin-bottom: 1.2rem; }
.news-header h2 { margin: .3rem 0 0; font-size: clamp(2rem, 4vw, 3.9rem); text-transform: uppercase; }
.news-card { display: flex; flex-direction: column; }
.news-image { min-height: 240px; max-height: 240px; }
.news-card:hover .news-image,
.gallery-card:hover .gallery-photo,
.principal-card:hover .principal-photo,
.management-card:hover .person-photo {
    transform: scale(1.02);
}
.news-image,
.gallery-photo,
.principal-photo,
.person-photo {
    transition: transform .32s ease;
}
.news-body { padding: 1.25rem; }
.news-meta { color: #5f6770; font-weight: 600; margin-bottom: .55rem; }
.feature-news-grid {
    grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr);
    align-items: stretch;
}
.news-card-featured {
    display: grid;
    grid-template-columns: minmax(280px, .95fr) minmax(0, 1.05fr);
    overflow: hidden;
    padding: 0;
}
.news-card-featured .news-image {
    min-height: 100%;
    max-height: none;
    border-radius: 0;
}
.news-card-featured .news-body {
    display: grid;
    align-content: center;
    padding: 1.6rem;
}
.news-intro-layout {
    grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
    align-items: start;
}
.news-detail-card {
    padding: 0;
    overflow: hidden;
}
.news-detail-image {
    min-height: 420px;
    max-height: none;
    border-radius: 0;
    object-fit: cover;
    object-position: center 24%;
}
.news-detail-body {
    padding: 1.7rem;
}
.news-detail-body h2 {
    margin-top: .35rem;
    font-size: clamp(2rem, 4vw, 3rem);
}
.principals-grid-large { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.principal-card-rich { padding: 1rem 1rem 1.4rem; }
.principal-photo { border-radius: 20px; height: 360px; margin-bottom: 1rem; }
.principal-role { color: var(--green-800); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: .82rem; }
.outline-panel { border: 2px solid rgba(1,98,63,.18); padding: 1rem; background: #fff; border-radius: 20px; box-shadow: var(--shadow-soft); }
.outline-panel h3 { margin: 0 0 .85rem; font-size: clamp(1.7rem, 3vw, 2.6rem); text-transform: uppercase; }
.table-panel table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.table-panel th, .table-panel td { border: 1px solid #d8dee6; padding: .8rem; text-align: left; vertical-align: top; }
.tinted-section { background: linear-gradient(180deg, #ffffff 0, #ffffff 55%, rgba(21,119,77,.12) 100%); }
.stack-grid, .resource-list { display: grid; gap: 1rem; }
.stack-card, .resource-card, .sidebar-card, .contact-panel { padding: 1.15rem; }
.dept-card .mini-kicker { color: var(--olive); margin-bottom: .45rem; }
.dept-card-full ul { margin: .85rem 0 1rem; }
.department-sidebar { display: grid; gap: 1rem; align-content: start; }
.workflow-list { display: grid; gap: .9rem; }
.workflow-step {
    padding-bottom: .9rem;
    border-bottom: 1px solid rgba(17,29,46,.08);
}
.workflow-step:last-child { border-bottom: 0; padding-bottom: 0; }
.workflow-step h4 { margin: 0 0 .4rem; font-size: 1rem; }
.compact-list li { margin-bottom: .45rem; }
.supporting-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.home-highlight-card, .service-category-card, .support-card { padding: 1.2rem; }
.resource-card-rich {
    padding: 1.4rem;
    display: grid;
    gap: 1rem;
}
.resource-detail-card {
    grid-template-columns: minmax(280px, .9fr) minmax(0, 1.1fr);
    align-items: start;
}
.resource-detail-image {
    height: 320px;
    margin-bottom: 0;
    object-fit: cover;
    object-position: center 18%;
}
.resource-slider-section {
    padding-top: 1.2rem;
    padding-bottom: .5rem;
}
.resource-slider-shell {
    position: relative;
    min-height: 500px;
    border-radius: 30px;
    overflow: hidden;
    box-shadow: var(--shadow);
    background: #10231a;
}
.resource-slide {
    min-height: 500px;
    background-position: center;
    background-size: cover;
}
.resource-slide-inner {
    display: flex;
    align-items: center;
    min-height: 500px;
    padding: 2rem 0 4rem;
}
.resource-slider-caption {
    max-width: 640px;
    color: #fff;
    padding: 1.4rem;
    border-radius: 28px;
    background: linear-gradient(180deg, rgba(8, 29, 20, .56), rgba(8, 29, 20, .18));
}
.resource-slider-caption h2 {
    margin: 0 0 .8rem;
    font-size: clamp(2rem, 4.5vw, 3.3rem);
    line-height: 1.06;
}
.resource-slider-caption p:last-of-type {
    margin-bottom: 0;
    font-size: 1rem;
    max-width: 56ch;
}
.resource-slide-dots {
    bottom: 1.4rem;
}
.resource-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}
.resource-sidebar, .contact-form-stack {
    display: grid;
    gap: 1rem;
}
.resource-group-list {
    display: grid;
    gap: 1rem;
}
.resource-group-card {
    padding: 1.15rem;
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(250, 251, 250, .98), rgba(241, 246, 242, .94));
    border: 1px solid rgba(15, 106, 67, .08);
    box-shadow: var(--shadow-soft);
}
.resource-group-card h4 {
    margin: 0 0 .65rem;
    color: var(--green-900);
}
.resource-group-card p {
    margin: 0;
    color: var(--ink-600);
}
.gallery-card-featured .gallery-photo {
    height: 260px;
}
.contact-channel-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.contact-channel-card {
    min-height: 100%;
}
.contact-channel-value {
    margin: 0;
    color: var(--green-900);
    font-weight: 800;
    font-size: 1.05rem;
}
.centred-actions {
    margin-top: 1.4rem;
    display: flex;
    justify-content: center;
}
.narrow-copy { width: min(1100px, 92%); margin: 0 auto; }
.intro-copy { font-size: 1.05rem; color: var(--muted); }
.duty-box { margin-top: 1.2rem; padding: 1.2rem; background: #dee1a4; border: 3px solid rgba(0,0,0,.12); border-radius: 18px; }
.duty-box ol { margin: 0; padding-left: 1.2rem; }
.gallery-card-photo { padding: 1rem; }
.gallery-photo { height: 230px; border-radius: 18px; margin-bottom: 1rem; box-shadow: var(--shadow-soft); }
.page-banner {
    position: relative;
    min-height: 340px;
    background:
        linear-gradient(90deg, rgba(6, 24, 18, 0.84), rgba(6, 24, 18, 0.52)),
        url('../images/gallery/gallery-2.jpeg') center 32%/cover;
    display: flex;
    align-items: end;
    isolation: isolate;
    border-bottom: 1px solid rgba(255,255,255,.08);
}
.page-banner::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 18% 18%, rgba(255,255,255,.1), transparent 20%),
        linear-gradient(180deg, rgba(6,24,18,.04), rgba(6,24,18,.42) 54%, rgba(6,24,18,.68));
    pointer-events: none;
    z-index: 0;
}
.page-banner::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 38%;
    background:
        linear-gradient(180deg, rgba(6,24,18,0), rgba(6,24,18,.74)),
        linear-gradient(90deg, rgba(179,39,45,.08), rgba(216,177,30,.08), rgba(1,98,63,.1));
    pointer-events: none;
    z-index: 0;
}
.page-banner-content { position: relative; z-index: 1; color: #fff; padding: 4.35rem 0 2.75rem; }
.internal-hero-surface .page-banner-content { max-width: 960px; }
.internal-hero-surface .page-banner-content h2 { text-wrap: balance; }
.page-banner-content .section-kicker {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .58rem .9rem;
    border-radius: 999px;
    background: linear-gradient(135deg, rgba(255,255,255,.16), rgba(255,255,255,.08));
    border: 1px solid rgba(255,255,255,.14);
    backdrop-filter: blur(10px);
}
.page-banner-content p:last-child {
    max-width: 780px;
    color: rgba(255,255,255,.92);
    font-size: 1.02rem;
}
.banner-dark { background:
    linear-gradient(90deg, rgba(6, 24, 18, 0.84), rgba(6, 24, 18, 0.5)),
    url('../images/gallery/gallery-3.jpeg') center 34%/cover; }
.banner-flag { background:
    linear-gradient(90deg, rgba(6, 24, 18, 0.82), rgba(6, 24, 18, 0.46)),
    url('../images/gallery/gallery-1.jpeg') center 24%/cover; }
.about-banner-veterans { background:
    linear-gradient(90deg, rgba(6, 24, 18, 0.84), rgba(6, 24, 18, 0.46)),
    url('../images/gallery/gallery-2.jpeg') center 25%/cover; }
.portrait-frame, .portrait-group, .stone-art, .stone-wall {
    min-height: 320px;
    border-radius: 24px;
    background: linear-gradient(135deg, rgba(156,163,37,.22), rgba(1,98,63,.08));
    border: 1px solid rgba(1,98,63,.12);
}
.site-footer { position: relative; margin-top: 2rem; background: radial-gradient(circle at top center, rgba(161,174,34,.14), transparent 26%), linear-gradient(180deg, #211f2c, #17151f); color: #fff; overflow: hidden; }
.site-footer::before { content: ""; position: absolute; inset: 0; background: url('../images/background/freepik__design-a-seamless-whiteonwhite-abstract-background__67677.png') center/520px auto repeat; opacity: .1; mix-blend-mode: screen; pointer-events: none; }
.footer-hero { position: relative; height: 170px; background: linear-gradient(90deg, rgba(1,98,63,.82), rgba(24,24,25,.54) 58%, rgba(179,39,45,.28)), url('../images/live/footer-bg.png') center/cover; }
.footer-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255,255,255,.05), transparent 30%, rgba(6,24,18,.28)); }
.footer-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.2fr 1.05fr .9fr .9fr 1fr; gap: 1.5rem; padding: 2.3rem 0 1.6rem; }
.footer-seal { width: 132px; height: 132px; object-fit: contain; margin-bottom: 1rem; background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(244,247,245,.92)); border-radius: 24px; padding: .5rem; box-shadow: 0 24px 40px rgba(0,0,0,.22); }
.footer-name { font-size: 1.1rem; font-weight: 700; }
.footer-contact-list {
    display: grid;
    gap: .6rem;
    margin-top: 1rem;
    color: rgba(255, 255, 255, .88);
}
.footer-contact-list a {
    color: inherit;
    text-decoration: none;
}
.footer-contact-list a:hover,
.footer-contact-list a:focus-visible {
    color: #fff;
    text-decoration: underline;
}
.footer-contact-list span {
    color: #fff;
    font-weight: 700;
}
.footer-links a { color: rgba(255,255,255,.88); }
.footer-search-form {
    grid-template-columns: 1fr;
    margin-top: .8rem;
    padding: 1rem;
    border-radius: 20px;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.08);
}
.footer-search-form input {
    background: rgba(255,255,255,.96);
}
.footer-utility-actions {
    display: grid;
    gap: .55rem;
    margin-top: 1rem;
}
.footer-utility-actions a,
.footer-cookie-manage {
    color: rgba(255,255,255,.9);
    text-decoration: none;
    font-weight: 600;
    padding: .72rem .9rem;
    border-radius: 14px;
    background: rgba(255,255,255,.05);
    border: 1px solid rgba(255,255,255,.06);
    font: inherit;
    cursor: pointer;
    appearance: none;
    text-align: left;
}
.footer-utility-actions a:hover,
.footer-utility-actions a:focus-visible,
.footer-cookie-manage:hover,
.footer-cookie-manage:focus-visible {
    text-decoration: none;
    background: rgba(255,255,255,.1);
}
.map-card { overflow: hidden; border: 1px solid rgba(255,255,255,.1); border-radius: 20px; background: #dfe3e8; }
.map-card iframe { width: 100%; min-height: 170px; border: 0; display: block; }
.map-card-large iframe { min-height: 360px; }
.contact-map-panel { margin-top: 1rem; }
.contact-form { display: grid; gap: .9rem; }
.contact-form input, .contact-form textarea {
    width: 100%; border: 1px solid #ced6df; border-radius: 14px; background: #fff; padding: .95rem 1rem; font: inherit;
}
.footer-bottom { position: relative; z-index: 1; border-top: 1px solid rgba(255,255,255,.14); padding: 1rem 0 1.4rem; color: rgba(255,255,255,.82); text-align: center; }
.footer-developer { margin: .55rem 0 0; font-size: .75rem; color: rgba(255,255,255,.45); letter-spacing: .015em; }
.back-to-top { position: fixed; right: 1.15rem; bottom: 1.15rem; width: 60px; height: 60px; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(135deg, var(--green-900), var(--flag-gold) 68%, var(--flag-red)); color: #fff; font-size: 1.5rem; box-shadow: var(--shadow); }
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: .8rem 1.15rem; font-weight: 800; border-radius: 14px; }
.btn-primary { background: linear-gradient(135deg, var(--green-900), var(--green-700) 58%, var(--flag-gold)); color: #fff; }
.btn-secondary { background: linear-gradient(135deg, rgba(1,98,63,.08), rgba(216,177,30,.08)); color: var(--green-900); border: 1px solid rgba(1,98,63,.16); }
.btn {
    transition: transform .22s ease, box-shadow .22s ease, background .22s ease, border-color .22s ease;
}
.btn:hover,
.btn:focus-visible {
    transform: translateY(-1px);
    box-shadow: 0 14px 28px rgba(0,0,0,.12);
}
.btn-secondary:hover,
.btn-secondary:focus-visible {
    background: linear-gradient(135deg, rgba(1,98,63,.12), rgba(216,177,30,.12));
    border-color: rgba(1,98,63,.24);
}
.left-align { text-align: left; }
@media (max-width: 1080px) {
    .masthead-inner { grid-template-columns: 64px minmax(0,1fr) 64px; }
    .management-board-summary { grid-template-columns: 1fr; }
    .masthead-tools { grid-column: 1 / -1; justify-content: space-between; }
    .masthead-title h1 { white-space: normal; overflow: visible; text-overflow: unset; }
    .masthead-title { padding-right: 0 !important; }
    .masthead-title h1 { max-width: 100% !important; }
    .masthead-tools { gap: .65rem; }
    .seal-mark-inline { margin-left: .8rem; }
    .management-grid, .management-grid-page, .card-grid-4, .contact-channel-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .feature-grid.three-up, .news-grid, .gallery-grid, .principals-grid-large, .three-panel-layout, .news-intro-layout, .feature-grid.about-leaders-grid, .listing-board { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .timeline-grid, .supporting-grid, .home-intro-layout, .feature-news-grid, .news-card-featured { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .department-block-rich { grid-template-columns: 1fr 1fr; }
    .department-block-rich .department-panel { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
    .about-visual-note {
        grid-template-columns: 1fr;
        display: grid;
        justify-items: start;
    }
    .about-photo-portrait {
        width: 132px;
        height: 156px;
    }
    .site-search-form {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 820px) {
    .pattern-section::before { opacity: .34; background-size: 140px 140px, 140px 140px, 180px 180px, 180px 180px, 140px 140px, 140px 140px; }

    .resource-slider-shell, .resource-slide, .resource-slide-inner { min-height: 420px; }
    .resource-slider-caption { padding: 1rem; border-radius: 22px; }
    .resource-slider-caption h2 { font-size: clamp(1.7rem, 7vw, 2.35rem); }
    .department-block-rich { grid-template-columns: 1fr; }
    .department-media-card,
    .department-media-card-detail {
        min-height: 240px;
    }
    .department-related-image {
        height: 220px;
    }
    .resource-detail-card {
        grid-template-columns: 1fr;
    }
    .resource-detail-image {
        width: 100%;
        height: auto;
        max-height: 340px;
        object-fit: cover;
        margin-bottom: 0;
    }
    .news-meta {
        display: flex;
        flex-wrap: wrap;
        gap: .35rem;
        line-height: 1.5;
        word-break: break-word;
    }

    .menu-toggle { display: inline-flex; }
    .masthead-search-form,
    .portal-link {
        display: none;
    }
    .portal-link { min-width: unset; }
    body.nav-open { overflow: hidden; }
    .nav-scrim {
        display: block;
        position: fixed;
        inset: 0;
        border: 0;
        padding: 0;
        background: rgba(4, 16, 11, 0.46);
        opacity: 0;
        pointer-events: none;
        transition: opacity .24s ease;
        z-index: 44;
    }
    .nav-scrim.is-visible {
        opacity: 1;
        pointer-events: auto;
    }
    .primary-nav {
        display: block;
        position: fixed;
        inset: 0 0 0 auto;
        width: min(360px, 88vw);
        min-height: 100svh;
        border-left: 1px solid rgba(1,98,63,.08);
        border-top: 0;
        background:
            linear-gradient(180deg, rgba(244, 249, 246, 0.98), rgba(255,255,255,0.98)),
            linear-gradient(135deg, rgba(15, 106, 67, 0.06), transparent 42%);
        box-shadow: none;
        overflow-y: auto;
        z-index: 50;
        transform: translateX(108%);
        transition: transform .28s ease, box-shadow .28s ease;
        backdrop-filter: blur(18px);
    }
    .primary-nav.is-open {
        transform: translateX(0);
        box-shadow: -18px 0 54px rgba(6, 38, 26, 0.18);
    }
    .nav-inner {
        flex-direction: column;
        align-items: stretch;
        gap: .7rem;
        width: 100%;
        padding: 1rem 1rem 1.35rem;
    }
    .nav-drawer-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        padding: 5.8rem 1rem 0;
    }
    .nav-drawer-head strong {
        color: var(--green-900);
        font-size: 1.05rem;
    }
    .nav-close {
        display: inline-flex;
        width: 2.8rem;
        height: 2.8rem;
        align-items: center;
        justify-content: center;
        border-radius: 16px;
        border: 1px solid rgba(15,106,67,.12);
        background: rgba(255,255,255,.8);
        color: var(--green-900);
    }
    .nav-close svg {
        width: 1.05rem;
        height: 1.05rem;
    }
    .subnav-inner { flex-direction: row; align-items: center; justify-content: flex-start; gap: .9rem; padding: .65rem 1rem 1rem; overflow-x: auto; white-space: nowrap; }
    .nav-item, .nav-item-mega { padding: 0; }
    .nav-item > a,
    .nav-link-row > a {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: .92rem 1rem;
        border-radius: 16px;
        background: linear-gradient(135deg, rgba(241, 246, 243, 0.95), rgba(229, 238, 234, 0.9));
        box-shadow: inset 0 0 0 1px rgba(15,106,67,.06);
    }
    .nav-link-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: .5rem;
    }
    .mega-toggle {
        width: 3rem;
        height: auto;
        border-radius: 16px;
    }
    .nav-item.is-active,
    .nav-item.is-active > a,
    .nav-item-mega.is-active .nav-link-row > a {
        background: linear-gradient(135deg, rgba(15, 106, 67, 0.14), rgba(161, 174, 34, 0.16));
    }
    .nav-item + .nav-item::before, .nav-item-mega + .nav-item::before, .nav-item + .nav-item-mega::before, .nav-item-mega + .nav-item-mega::before { content: none; }
    .mega-menu {
        position: static;
        display: none;
        width: 100%;
        box-shadow: none;
        border-radius: 18px;
        margin-top: .5rem;
        padding: .85rem;
        background: rgba(248, 250, 249, 0.95);
    }
    .mega-column-supporting {
        margin-top: .85rem;
        border-radius: 16px;
    }
    .nav-item-mega.is-open .mega-menu { display: block; }
    .mega-tabs { grid-template-columns: 1fr; }
    .subnav { display: block; }
    .split-panel, .two-column-layout, .department-columns, .three-panel-layout, .footer-grid, .feature-grid.three-up, .news-grid, .management-grid, .management-grid-page, .card-grid-4, .gallery-grid, .principals-grid-large, .timeline-grid, .supporting-grid, .home-intro-layout, .news-intro-layout, .feature-news-grid, .news-card-featured, .contact-channel-grid, .listing-board { grid-template-columns: 1fr; }
    .grouped-management-header-rich { align-items: start; flex-direction: column; }
    .board-summary-metrics { grid-template-columns: 1fr; }
    .person-photo-rich, .avatar-circle-rich { min-height: 240px; max-height: none; }
    .hero-slider { min-height: 88svh; }
    .hero-slider::before { background: radial-gradient(circle at 20% 14%, rgba(255,255,255,.06), transparent 24%), radial-gradient(circle at 84% 16%, rgba(161,174,34,.12), transparent 22%), linear-gradient(180deg, rgba(6,24,18,.06), rgba(6,24,18,.34)); }
    .hero-slide-inner { padding: 7.25rem 0 10.25rem; }
    .hero-copy-shell { width: min(100%, 100%); padding: 1.25rem 1.05rem 1.2rem; }
    .hero-copy-shell::before { border-radius: 24px; }
    .hero-slide h2, .page-banner h2 { font-size: clamp(1.65rem, 6.8vw, 2.2rem); }
    .hero-slide h2 { max-width: 14ch; }
    .hero-actions {
        position: relative;
        z-index: 3;
        margin-top: .95rem;
        margin-bottom: .25rem;
    }
    .hero-state-rail,
    .hero-state-pill {
        display: none;
    }
    .masthead-title h1 { font-size: 1.1rem; line-height: 1.08; }
    .masthead-meta { display: none; }
    .topbar-inner { flex-direction: row; align-items: center; justify-content: space-between; gap: .6rem; }
    .topbar-list {
        flex-direction: row;
        align-items: center;
        flex-wrap: nowrap;
        gap: .4rem;
        overflow-x: auto;
        -ms-overflow-style: none;
        scrollbar-width: none;
    }
    .topbar-list::-webkit-scrollbar { display: none; }
    .topbar-item {
        width: 2.1rem;
        height: 2.1rem;
        justify-content: center;
        border-radius: 999px;
        background: rgba(255,255,255,.12);
        flex: 0 0 auto;
    }
    .topbar-item-address {
        display: none;
    }
    .topbar-text { display: none; }
    .topbar-socials { display: flex; gap: .45rem; }
    .topbar-socials a { display: none; }
    .language-switcher {
        padding-right: 0;
    }
    .language-switcher select {
        min-width: 112px;
        padding-inline: .7rem;
    }
    .language-switcher button {
        display: none;
    }
    .page-banner {
        min-height: 284px;
    }
    .page-banner-content {
        padding: 3.2rem 0 2.1rem;
    }
    .page-banner-content p:last-child {
        font-size: .96rem;
    }
    .footer-search-form {
        padding: .9rem;
    }
    .footer-utility-actions {
        gap: .45rem;
    }
}
@media (max-width: 560px) {
    .container { width: min(1180px, 94%); }
    .masthead-inner {
        grid-template-columns: 64px minmax(0, 1fr) 64px;
        gap: .55rem;
        padding: .62rem 0;
    }
    .masthead-tools {
        grid-column: 1 / -1;
        gap: .55rem;
    }
    .masthead-title h1 {
        font-size: clamp(1rem, 5.5vw, 1.4rem) !important;
        line-height: 1.15 !important;
        white-space: normal !important;
        word-break: break-word !important;
        overflow-wrap: anywhere !important;
    }
    .menu-toggle { min-height: 42px; padding: .66rem .8rem; gap: .5rem; }
    .menu-toggle-label { font-size: .8rem; }
    .crest-mark, .seal-mark { width: 64px; }
    .person-photo { width: 112px; height: 112px; }
    .hero-copy { font-size: .96rem; }
    .hero-slide-inner { padding: 3.9rem 0 4.5rem; }
    .hero-copy-shell {
        width: calc(100% - .5rem);
        gap: .8rem;
        padding: .4rem .95rem 1.1rem;
    }
    .hero-copy-shell::before {
        background: none;
        box-shadow: none;
        border: 0;
    }
    .hero-actions {
        position: relative;
        z-index: 3;
        margin-top: .95rem;
        margin-bottom: .25rem;
    }
    .hero-glance-bar {
        display: none;
    }
    .hero-slide h2, .page-banner h2 {
        font-size: clamp(1.35rem, 7.6vw, 1.9rem);
    }
    .hero-slide h2 {
        max-width: 13ch;
    }
    .resource-card-rich {
        padding: 1.15rem;
    }
    .resource-detail-card {
        gap: .85rem;
        padding: 1rem;
    }
    .resource-detail-image {
        max-height: 260px;
        border-radius: 16px;
    }
    .resource-detail-card h2 {
        font-size: clamp(1.6rem, 8vw, 2rem);
        line-height: 1.16;
        word-break: break-word;
    }
    .page-banner {
        min-height: 240px;
    }
    .page-banner-content {
        padding: 2.55rem 0 1.65rem;
    }
    .page-banner-content .section-kicker {
        padding: .48rem .72rem;
        font-size: .72rem;
        letter-spacing: .13em;
    }
    .news-meta {
        font-size: .92rem;
        gap: .2rem .4rem;
    }
    .resource-actions {
        display: grid;
        grid-template-columns: 1fr;
    }
    .about-principals-preview {
        display: grid;
        grid-template-columns: 1fr;
    }
    .about-principals-preview .btn {
        width: 100%;
    }
    .resource-actions .btn,
    .resource-read-link {
        width: 100%;
    }
    .feature-card { padding: 1.35rem; }
    .footer-hero { height: 98px; }
    .footer-search-form {
        padding: .8rem;
    }
    .footer-utility-actions a {
        padding: .68rem .82rem;
    }
    .topbar { display: block; max-height: 64px; }
    .site-header.is-compact .topbar { max-height: 64px; opacity: 1; transform: none; }
    .topbar-inner { padding: .35rem 0; }
    .topbar-item {
        width: 1.95rem;
        height: 1.95rem;
        border-radius: 10px;
    }
    .topbar-socials { display: none; }
    .hero-glance-bar {
        flex-direction: column;
        align-items: flex-start;
    }
    .hero-nav {
        right: 1rem;
        bottom: 1.2rem;
    }
    .hero-dots {
        bottom: 1.35rem;
    }
}

.faq-list { display: grid; gap: 1rem; }
.faq-card { background: var(--panel); border: 1px solid rgba(17,29,46,.07); box-shadow: var(--shadow-soft); border-radius: var(--radius); padding: 1.2rem; }
.faq-card h3 { margin: 0 0 .55rem; font-size: 1.15rem; color: var(--green-900); }
.faq-side-btn { margin-top: .75rem; }


.hero-state-rail {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 4.3rem;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .85rem;
}
.hero-state-pill {
    padding: .95rem 1rem;
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,.06));
    border: 1px solid rgba(255,255,255,.14);
    backdrop-filter: blur(10px);
    box-shadow: 0 18px 36px rgba(0,0,0,.18);
}
.hero-state-value {
    display: block;
    font-size: 1rem;
    font-weight: 800;
    color: #fff;
}
.hero-state-label {
    display: block;
    margin-top: .28rem;
    color: rgba(255,255,255,.82);
    font-size: .82rem;
    line-height: 1.45;
}
.hero-slide h2 {
    text-wrap: balance;
    max-width: 17ch;
    line-height: 1.12;
    text-shadow: 0 16px 42px rgba(0,0,0,.36);
}
.hero-copy {
    font-size: 1.05rem;
    color: rgba(255,255,255,.9);
    text-shadow: 0 10px 24px rgba(0,0,0,.3);
}
.hero-copy-shell::before {
    background: linear-gradient(145deg, rgba(8,29,20,.66), rgba(8,29,20,.24));
}
.hero-copy-shell > * {
    opacity: 0;
    transform: translateY(24px);
}
.hero-slide.is-active .hero-copy-shell > * {
    opacity: 1;
    transform: translateY(0);
    transition: opacity .65s ease, transform .65s ease;
}
.hero-slide.is-active .hero-copy-shell > *:nth-child(1) { transition-delay: .08s; }
.hero-slide.is-active .hero-copy-shell > *:nth-child(2) { transition-delay: .16s; }
.hero-slide.is-active .hero-copy-shell > *:nth-child(3) { transition-delay: .24s; }
.hero-slide.is-active .hero-copy-shell > *:nth-child(4) { transition-delay: .32s; }
.hero-slide.is-active .hero-copy-shell > *:nth-child(5) { transition-delay: .4s; }
@media (min-width: 1100px) {
    .hero-slide-inner {
        padding: 8.6rem 0 9.1rem;
    }
    .hero-copy-shell {
        width: min(980px, calc(100% - 1.5rem));
    }
    .hero-slide h2 {
        font-size: clamp(1.6rem, 2.55vw, 2.55rem);
        max-width: 20ch;
    }
    .hero-copy {
        max-width: 62ch;
    }
}
.contact-layout-upgraded {
    grid-template-columns: minmax(0, 1.55fr) minmax(320px, .72fr);
}
.contact-directory-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1rem;
}
.contact-summary-card h3 {
    margin: 0 0 .45rem;
    color: var(--green-900);
}
.contact-directory-list {
    display: grid;
    gap: 1rem;
    margin-top: 1rem;
}
.province-directory-card {
    overflow: hidden;
}
.province-directory-summary {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 1rem;
    cursor: pointer;
    list-style: none;
}
.province-directory-summary::-webkit-details-marker {
    display: none;
}
.province-directory-summary::after {
    content: "+";
    margin-left: auto;
    align-self: start;
    font-size: 1.6rem;
    font-weight: 500;
    color: var(--green-900);
}
.province-directory-card[open] .province-directory-summary::after {
    content: "−";
}
.province-directory-summary h3 {
    margin: 0 0 .3rem;
    color: var(--green-900);
}
.province-directory-summary p:last-child {
    margin: 0;
}
.province-directory-meta {
    min-width: 180px;
    display: grid;
    gap: .45rem;
    align-content: start;
    justify-items: end;
}
.province-directory-meta span,
.province-directory-meta strong {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .62rem .85rem;
    border-radius: 999px;
    background: linear-gradient(135deg, rgba(240,245,241,.96), rgba(226,235,230,.96));
    border: 1px solid rgba(15,106,67,.08);
}
.province-directory-meta strong {
    color: var(--green-900);
}
.province-directory-table-wrap {
    overflow-x: auto;
    margin-top: 1rem;
}
.province-directory-table {
    width: 100%;
    min-width: 760px;
    border-collapse: collapse;
}
.province-directory-table th,
.province-directory-table td {
    padding: .9rem .85rem;
    text-align: left;
    border-top: 1px solid rgba(15,106,67,.08);
    vertical-align: top;
}
.province-directory-table th {
    font-size: .76rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #6b785d;
    background: rgba(242,246,243,.86);
}
.province-directory-table td {
    color: #2f3b35;
    background: rgba(255,255,255,.72);
}
.contact-primary-card {
    background: linear-gradient(160deg, rgba(6,24,18,.96), rgba(15,63,46,.92));
    color: #fff;
}
.contact-primary-card h3 {
    margin: 0 0 .9rem;
}
.contact-primary-list {
    display: grid;
    gap: .8rem;
}
.contact-primary-list a,
.contact-primary-list p {
    margin: 0;
    color: rgba(255,255,255,.92);
}
@media (max-width: 1080px) {
    .contact-layout-upgraded,
    .contact-directory-summary {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 820px) {
    .province-directory-meta {
        justify-items: start;
    }
}
@media (max-width: 900px) {
    .hero-glance-bar {
        flex-direction: column;
        align-items: flex-start;
    }
    .hero-state-rail {
        grid-template-columns: 1fr;
    }
}
@media (prefers-reduced-motion: reduce) {
    .hero-slide,
    .hero-slide-inner > *,
    .hero-copy-shell > *,
    .feature-card,
    .hero-progress span {
        transition: none !important;
        animation: none !important;
    }
}
.site-footer .footer-links a:hover,
.site-footer .footer-links a:focus-visible {
    color: #fff;
    text-decoration: underline;
}
.site-footer .map-card {
    box-shadow: 0 20px 38px rgba(0,0,0,.22);
}
.editorial-news-surface .news-grid {
    align-items: stretch;
}
.news-card-editorial {
    display: grid;
    grid-template-rows: auto 1fr;
}
.news-card-editorial .news-body {
    display: grid;
    align-content: start;
    gap: .7rem;
}
.news-card-editorial h3 {
    font-size: clamp(1.4rem, 2vw, 1.8rem);
    line-height: 1.28;
}
.news-card-editorial .btn {
    margin-top: .4rem;
    justify-self: start;
}
.story-fact-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .8rem;
    margin: 1rem 0 1.25rem;
}
.story-fact {
    padding: .9rem 1rem;
    border-radius: 16px;
    background: linear-gradient(180deg, rgba(247,250,248,.96), rgba(238,244,240,.92));
    border: 1px solid rgba(15,106,67,.08);
    box-shadow: 0 12px 22px rgba(17,29,46,.06);
}
.story-fact-label {
    display: block;
    margin-bottom: .2rem;
    font-size: .74rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #71806c;
    font-weight: 800;
}
.story-pull-quote {
    margin-top: 1.25rem;
    padding: 1.2rem 1.25rem;
    border-left: 4px solid var(--olive);
    background: linear-gradient(180deg, rgba(225,231,180,.32), rgba(255,255,255,.9));
    border-radius: 0 18px 18px 0;
}
.story-pull-quote p {
    margin: 0;
    font-size: 1.18rem;
    line-height: 1.6;
    color: var(--green-900);
    font-weight: 700;
}
.exhibition-surface .gallery-grid,
.exhibition-detail-grid .gallery-grid,
.exhibition-related-grid .gallery-grid {
    align-items: stretch;
}
.gallery-card-exhibit {
    background: linear-gradient(180deg, rgba(255,255,255,.985), rgba(249,249,246,.96));
}
.gallery-card-tag {
    margin: 0 0 .4rem;
    font-size: .72rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #7e885f;
    font-weight: 800;
}
.gallery-card-exhibit .gallery-photo,
.gallery-card-exhibit-detail .gallery-photo {
    box-shadow: 0 20px 34px rgba(17,29,46,.12);
}
.gallery-card-exhibit-detail .news-body {
    display: grid;
    gap: .45rem;
}
.exhibition-fact-strip {
    margin-top: 1rem;
}
.site-footer {
    box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}
.footer-brand p,
.site-footer p,
.site-footer li {
    color: rgba(255,255,255,.86);
}
.site-footer h3,
.site-footer h4,
.site-footer .footer-name,
.site-footer .section-kicker,
.site-footer .mini-kicker,
.site-footer .contact-item-label {
    color: #fff;
}
.site-footer .footer-search-form button,
.site-footer .footer-utility-actions a {
    color: #fff;
}
@media (max-width: 820px) {
    .hero-state-rail,
    .story-fact-strip {
        grid-template-columns: 1fr;
    }
    .hero-state-pill {
        padding: .85rem .95rem;
    }
    .news-card-editorial h3 {
        font-size: 1.5rem;
    }
}

/* Frontend refinement layer */
:root {
    --page-max: 1280px;
    --page-wide: 1440px;
    --hero-shell: 1320px;
    --display-font: "Aptos Display", "Trebuchet MS", "Segoe UI", sans-serif;
    --body-font: "Aptos", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
    --radius-lg: 28px;
    --radius-md: 18px;
    --shadow-lift: 0 28px 60px rgba(9, 25, 21, 0.12);
    --shadow-card: 0 18px 38px rgba(17, 29, 46, 0.08);
}

body {
    font-family: var(--body-font);
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    background:
        radial-gradient(circle at 14% 8%, rgba(216, 177, 30, 0.08), transparent 18%),
        radial-gradient(circle at 84% 12%, rgba(1, 98, 63, 0.07), transparent 22%),
        linear-gradient(180deg, #ffffff 0%, #f5f9f7 52%, #f8fafc 100%);
}

.container { width: min(var(--page-max), 92%); }
.topbar-inner,
.masthead-inner,
.nav-inner,
.subnav-inner,
.hero-slide-inner { width: min(var(--page-wide), calc(100% - 2rem)); }
.hero-slide-inner { width: min(var(--hero-shell), calc(100% - 2rem)); }

.content-section {
    position: relative;
    padding-block: clamp(3.8rem, 6vw, 6.25rem);
}

.content-section + .content-section::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: min(88%, 1120px);
    height: 1px;
    transform: translateX(-50%);
    background: linear-gradient(90deg, transparent, rgba(1,98,63,.12), transparent);
}

.topbar {
    border-bottom: 1px solid rgba(255,255,255,.1);
    box-shadow: inset 0 -1px 0 rgba(255,255,255,.06);
}

.topbar-socials a {
    position: relative;
    font-weight: 700;
    letter-spacing: .01em;
    opacity: .92;
}

.topbar-socials a:hover,
.topbar-socials a:focus-visible { opacity: 1; }

.topbar-socials a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -.18rem;
    width: 100%;
    height: 1px;
    background: rgba(255,255,255,.7);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .22s ease;
}

.topbar-socials a:hover::after,
.topbar-socials a:focus-visible::after { transform: scaleX(1); }

.site-header {
    background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.84));
}

.site-header.is-compact {
    background: rgba(255,255,255,.92);
    box-shadow: 0 18px 44px rgba(9,25,21,.1);
}

.masthead {
    background:
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(250,252,251,.96));
}

.masthead-inner {
    gap: .8rem;
    padding: .45rem 0;
}

.masthead-title h1,
.hero-slide h2,
.page-banner h2,
.section-header h2,
.content-section h2,
.outline-panel h3,
.welcome-copy h2 {
    font-family: var(--display-font);
}

.masthead-title h1 {
    letter-spacing: -.03em;
    text-shadow: 0 1px 0 rgba(255,255,255,.7);
}

.masthead-meta {
    max-width: 78ch;
    font-size: .72rem;
}

.portal-link {
    min-height: 46px;
    padding-inline: 1rem;
    box-shadow: inset 0 -1px 0 rgba(255,255,255,.12);
}

.portal-link:hover,
.portal-link:focus-visible {
    background: linear-gradient(135deg, var(--green-900), #0d7a50);
}

.masthead-search-form input {
    border-left: 1px solid rgba(15,106,67,.08);
    background: linear-gradient(180deg, #f1f2f1, #e8ebea);
    color: var(--ink);
}

.masthead-search-form input::placeholder { color: #6b7478; }

.primary-nav {
    background: rgba(255,255,255,.94);
    box-shadow: inset 0 -1px 0 rgba(1,98,63,.08);
}

.nav-inner {
    gap: .45rem;
    padding-block: .85rem;
}

.nav-item,
.nav-item-mega .nav-link-row > a {
    position: relative;
    font-size: .92rem;
    font-weight: 700;
    letter-spacing: -.01em;
}

.nav-item::after,
.nav-item-mega .nav-link-row > a::after,
.official-subnav a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -.32rem;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--olive), var(--green-800));
    transform: scaleX(0);
    transform-origin: center;
    transition: transform .22s ease;
}

.nav-item:hover::after,
.nav-item.is-active::after,
.nav-item-mega:hover .nav-link-row > a::after,
.nav-item-mega.is-open .nav-link-row > a::after,
.official-subnav a:hover::after,
.official-subnav a.is-active::after {
    transform: scaleX(1);
}

.subnav-inner {
    padding-top: .3rem;
    padding-bottom: 1rem;
}

.official-subnav a {
    position: relative;
    padding-bottom: .2rem;
    font-size: .86rem;
    font-weight: 700;
}

.hero-slider {
    min-height: min(76vh, 920px);
    background:
        radial-gradient(circle at 16% 12%, rgba(255,255,255,.08), transparent 22%),
        linear-gradient(180deg, #0b1f18 0%, #12241e 100%);
}

.hero-slide::before {
    background:
        linear-gradient(104deg, rgba(6,24,18,.8) 0%, rgba(6,24,18,.34) 34%, rgba(6,24,18,.08) 76%),
        radial-gradient(circle at 74% 18%, rgba(255,255,255,.12), transparent 22%);
}

.hero-slide-inner {
    padding: 8.7rem 0 9.8rem;
    align-items: end;
}

.hero-copy-shell {
    max-width: 760px;
    padding: clamp(1.2rem, 2vw, 1.5rem);
    border-radius: var(--radius-lg);
    background: linear-gradient(180deg, rgba(6,24,18,.18), rgba(6,24,18,.12));
    backdrop-filter: blur(5px);
}

.hero-glance-bar,
.hero-state-pill {
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255,255,255,.14);
    box-shadow: 0 16px 34px rgba(0,0,0,.14);
}

.hero-state-rail {
    max-width: 300px;
    gap: .8rem;
}

.hero-slide h2 {
    max-width: 12ch;
    font-size: clamp(2.35rem, 4vw, 4.2rem);
    letter-spacing: -.04em;
}

.hero-copy {
    max-width: 60ch;
    color: rgba(255,255,255,.92);
    font-size: 1rem;
}

.hero-actions,
.about-principals-preview,
.resource-actions {
    gap: .75rem;
}

.btn {
    min-height: 48px;
    padding: .82rem 1.2rem;
    border-radius: 999px;
    letter-spacing: .01em;
    transition: transform .18s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
}

.btn:hover,
.btn:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 16px 28px rgba(9,25,21,.14);
}

.btn-primary {
    background: linear-gradient(135deg, var(--green-900), var(--green-700));
}

.btn-secondary {
    border-color: rgba(1,98,63,.18);
    background: rgba(255,255,255,.88);
}

.section-header {
    margin-bottom: 1.4rem;
    max-width: 880px;
}

.section-header h2,
.content-section h2 {
    letter-spacing: -.035em;
    text-wrap: balance;
}

.section-kicker,
.mini-kicker {
    letter-spacing: .14em;
}

.outline-panel,
.feature-card,
.management-card,
.news-card,
.stack-card,
.resource-card,
.sidebar-card,
.contact-panel,
.principal-card,
.gallery-card {
    border-radius: 24px;
    box-shadow: var(--shadow-card);
    border: 1px solid rgba(1,98,63,.08);
    background:
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,251,249,.95));
}

.outline-panel:hover,
.feature-card:hover,
.management-card:hover,
.news-card:hover,
.stack-card:hover,
.resource-card:hover,
.sidebar-card:hover,
.contact-panel:hover,
.principal-card:hover,
.gallery-card:hover {
    box-shadow: var(--shadow-lift);
}

.feature-card,
.stack-card,
.resource-card,
.contact-panel,
.sidebar-card,
.outline-panel {
    padding: 1.25rem;
}

.feature-card h3,
.stack-card h3,
.resource-card h3,
.gallery-card h3,
.news-card h3,
.management-card h3,
.principal-card h3 {
    line-height: 1.18;
    letter-spacing: -.025em;
}

.news-image,
.gallery-photo,
.person-photo,
.principal-photo {
    border-radius: 18px;
}

.quick-link-panel,
.contact-primary-card,
.resource-sidebar .sidebar-card:first-child {
    background:
        linear-gradient(180deg, rgba(255,255,255,.96), rgba(243,248,244,.96));
    border: 1px solid rgba(1,98,63,.08);
    box-shadow: var(--shadow-card);
}

.site-search-form {
    gap: .55rem;
    align-items: stretch;
}

.site-search-form input {
    border-radius: 16px;
    border: 1px solid rgba(1,98,63,.12);
    background: linear-gradient(180deg, #fff, #f6faf8);
    min-height: 50px;
    padding-inline: 1rem;
}

.site-search-form input:focus {
    outline: none;
    border-color: rgba(15,122,82,.38);
    box-shadow: 0 0 0 4px rgba(15,122,82,.08);
}

.page-banner {
    border-bottom: 1px solid rgba(255,255,255,.08);
}

.page-banner-content {
    padding: 4.85rem 0 3rem;
    max-width: 900px;
}

.page-banner-content p:last-child {
    font-size: 1.02rem;
    color: rgba(255,255,255,.9);
}

.site-footer {
    position: relative;
    background:
        radial-gradient(circle at 14% 14%, rgba(216,177,30,.12), transparent 20%),
        linear-gradient(180deg, #0b2018 0%, #081610 100%);
}

.footer-grid {
    gap: 1.7rem;
    padding-top: 2.8rem;
    padding-bottom: 1.85rem;
}

.footer-brand,
.footer-links,
.footer-utility-actions,
.footer-contact-list {
    font-size: .94rem;
}

.back-to-top {
    right: 1.25rem;
    bottom: 1.25rem;
    width: 58px;
    height: 58px;
    border: 1px solid rgba(255,255,255,.18);
    backdrop-filter: blur(8px);
}

@media (max-width: 980px) {
    .content-section { padding-block: 3.25rem; }
    .hero-slide-inner { padding: 6.25rem 0 7.5rem; }
    .hero-copy-shell { max-width: 100%; }
    .masthead-meta { max-width: 54ch; }
}

@media (max-width: 820px) {
    .container,
    .topbar-inner,
    .masthead-inner,
    .nav-inner,
    .subnav-inner,
    .hero-slide-inner { width: min(100%, calc(100% - 1.1rem)); }
    .hero-slider { min-height: 84svh; }
    .hero-slide-inner { padding: 6.4rem 0 7.2rem; }
    .hero-copy-shell {
        padding: 1rem;
        background: linear-gradient(180deg, rgba(6,24,18,.3), rgba(6,24,18,.12));
    }
    .hero-slide h2 { max-width: 11ch; }
    .page-banner-content { padding: 3.6rem 0 2.35rem; }
}

/* Secondary frontend polish pass */
.home-status-band {
    padding-top: clamp(2.4rem, 4vw, 3.4rem);
    padding-bottom: clamp(2.4rem, 4vw, 3.4rem);
}

.home-status-band::before { opacity: .18; }

.home-status-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(420px, .95fr);
    gap: 1.25rem;
    align-items: stretch;
}

.home-status-intro,
.home-status-card,
.home-journey-card {
    border-radius: 24px;
    border: 1px solid rgba(1,98,63,.08);
    box-shadow: var(--shadow-card);
}

.home-status-intro {
    padding: 1.45rem 1.5rem;
    background:
        radial-gradient(circle at top right, rgba(156,163,37,.12), transparent 26%),
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(246,250,247,.96));
}

.home-status-intro h2 {
    margin: 0 0 .9rem;
    font-size: clamp(2rem, 3vw, 3rem);
    line-height: 1.06;
}

.home-status-intro p:last-child {
    margin-bottom: 0;
    max-width: 62ch;
}

.home-status-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .95rem;
}

.home-status-card {
    display: grid;
    align-content: start;
    gap: .55rem;
    padding: 1.15rem 1rem;
    background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,251,249,.94));
}

.home-status-value {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    font-family: var(--display-font);
    font-size: clamp(1.3rem, 2vw, 2rem);
    font-weight: 800;
    letter-spacing: -.03em;
    color: var(--green-900);
}

.home-status-card strong {
    font-size: 1rem;
    color: #152732;
}

.home-status-card p {
    margin: 0;
    font-size: .92rem;
    color: var(--muted);
}

.home-journey-section::before { opacity: .16; }

.home-journey-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.home-journey-card {
    position: relative;
    padding: 1.2rem 1.15rem 1.25rem;
    background:
        linear-gradient(180deg, rgba(255,255,255,.985), rgba(247,250,248,.95));
}

.home-journey-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    border-radius: 24px 0 0 24px;
    background: linear-gradient(180deg, var(--green-800), var(--olive));
}

.home-journey-step {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 56px;
    min-height: 34px;
    padding: .3rem .7rem;
    margin-bottom: .7rem;
    border-radius: 999px;
    background: rgba(1,98,63,.08);
    color: var(--green-900);
    font-size: .84rem;
    font-weight: 800;
    letter-spacing: .08em;
}

.home-journey-card h3 {
    margin: 0 0 .6rem;
    font-size: 1.18rem;
    line-height: 1.18;
}

.home-journey-card p {
    margin: 0 0 .9rem;
    color: var(--muted);
}

.home-journey-card .feature-link {
    font-weight: 800;
}

.management-board-summary,
.grouped-management-block,
.province-directory-card,
.contact-summary-card,
.department-media-card,
.department-media-card-detail {
    box-shadow: var(--shadow-card);
}

.grouped-management-block-rich,
.province-directory-card,
.contact-summary-card {
    border-radius: 24px;
    border: 1px solid rgba(1,98,63,.08);
    background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(247,250,248,.95));
}

.grouped-management-block-rich {
    padding: 1.1rem 1.15rem 1.2rem;
}

.grouped-management-header-rich {
    margin-bottom: 1.1rem;
    padding-bottom: 1rem;
}

.management-grid-rich {
    gap: 1rem;
}

.province-directory-summary {
    gap: 1rem;
    padding: 1.2rem 1.25rem;
    background:
        linear-gradient(180deg, rgba(255,255,255,.96), rgba(246,249,247,.94));
}

.province-directory-card[open] .province-directory-summary {
    border-bottom: 1px solid rgba(1,98,63,.08);
}

.province-directory-table-wrap {
    padding: 0 1.1rem 1.1rem;
}

.province-directory-table {
    overflow: hidden;
    border-radius: 18px;
    border: 1px solid rgba(1,98,63,.08);
}

.province-directory-table th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: linear-gradient(180deg, #eef5f1, #e4efe9);
    color: var(--green-900);
}

.province-directory-table tr:nth-child(even) td {
    background: rgba(246,250,248,.72);
}

.department-media-card,
.department-media-card-detail {
    border-radius: 24px;
    overflow: hidden;
}

.news-header {
    margin-bottom: 1.45rem;
}

.news-header .section-kicker {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .45rem .8rem;
    border-radius: 999px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.12);
}

.hero-progress {
    height: 4px;
    border-radius: 999px;
    background: rgba(255,255,255,.1);
    overflow: hidden;
}

.hero-progress span {
    background: linear-gradient(90deg, var(--flag-gold), var(--olive), #fff);
}

@media (max-width: 1080px) {
    .home-status-grid,
    .home-journey-grid {
        grid-template-columns: 1fr;
    }
    .home-status-cards {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .home-status-cards {
        grid-template-columns: 1fr;
    }
    .home-status-intro,
    .home-status-card,
    .home-journey-card {
        border-radius: 20px;
    }
    .province-directory-summary {
        padding: 1rem;
    }
    .province-directory-table-wrap {
        padding: 0 .75rem .85rem;
    }
}

/* Page refinement and mobile-nav pass */
.about-signature-band {
    padding-top: 2.8rem;
    padding-bottom: 3rem;
}

.about-signature-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(360px, .9fr);
    gap: 1.2rem;
    align-items: stretch;
}

.about-signature-copy,
.about-signature-card,
.departments-index-card {
    border-radius: 24px;
    border: 1px solid rgba(1,98,63,.08);
    box-shadow: var(--shadow-card);
}

.about-signature-copy {
    padding: 1.45rem 1.5rem;
    background:
        radial-gradient(circle at top right, rgba(156,163,37,.12), transparent 26%),
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(247,250,248,.96));
}

.about-signature-copy h2 {
    margin: 0 0 .9rem;
    font-size: clamp(2rem, 3vw, 2.9rem);
    line-height: 1.05;
}

.about-signature-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .9rem;
}

.about-signature-card {
    display: grid;
    align-content: start;
    gap: .45rem;
    padding: 1rem;
    background: linear-gradient(180deg, rgba(255,255,255,.985), rgba(246,250,248,.94));
}

.about-signature-card strong {
    font-family: var(--display-font);
    font-size: clamp(1.4rem, 2vw, 2rem);
    letter-spacing: -.03em;
    color: var(--green-900);
}

.about-signature-card span {
    color: var(--muted);
    font-size: .92rem;
}

.about-leader-card-hierarchy {
    background:
        linear-gradient(180deg, rgba(255,255,255,.985), rgba(247,250,248,.94));
}

.leadership-statement-card {
    background:
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(245,249,247,.94));
}

.departments-index-band {
    padding-top: 2.6rem;
    padding-bottom: 2.8rem;
}

.departments-index-shell {
    display: grid;
    gap: 1rem;
}

.departments-index-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .95rem;
}

.departments-index-card {
    display: grid;
    gap: .45rem;
    padding: 1rem 1rem 1.05rem;
    background: linear-gradient(180deg, rgba(255,255,255,.985), rgba(246,249,247,.94));
    transition: transform .18s ease, box-shadow .22s ease, border-color .22s ease;
}

.departments-index-card:hover,
.departments-index-card:focus-visible {
    transform: translateY(-2px);
    border-color: rgba(15,122,82,.18);
    box-shadow: var(--shadow-lift);
}

.departments-index-label {
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #7d885f;
}

.departments-index-card strong {
    line-height: 1.22;
    color: var(--green-900);
}

.department-block-rich {
    gap: 1.1rem;
}

.department-block .grouped-management-header,
.department-block-rich .grouped-management-header {
    padding: 1rem 1.05rem 0;
}

.department-panel {
    margin-top: 0;
}

.contact-primary-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
    margin-top: 1rem;
}

.contact-primary-actions .btn {
    flex: 1 1 180px;
}

.contact-channel-card {
    background:
        linear-gradient(180deg, rgba(255,255,255,.985), rgba(247,250,248,.95));
}

.contact-channel-value {
    word-break: break-word;
}

@media (max-width: 980px) {
    .about-signature-grid,
    .departments-index-grid {
        grid-template-columns: 1fr 1fr;
    }
    .about-signature-stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .supporting-summary-meta {
        margin-bottom: .85rem;
    }
}

@media (max-width: 820px) {
    .primary-nav {
        width: min(100%, 370px);
        background:
            linear-gradient(180deg, rgba(255,255,255,.985), rgba(246,249,247,.985));
        box-shadow: -18px 0 42px rgba(9,25,21,.16);
    }
    .nav-drawer-head {
        position: sticky;
        top: 0;
        z-index: 2;
        padding: 1rem 1rem .9rem;
        background:
            linear-gradient(180deg, rgba(255,255,255,.98), rgba(247,250,248,.98));
        border-bottom: 1px solid rgba(1,98,63,.08);
        backdrop-filter: blur(10px);
    }
    .nav-inner {
        padding-top: .8rem;
        padding-bottom: .8rem;
    }
    .nav-inner > a.nav-item,
    .nav-item-mega .nav-link-row {
        min-height: 50px;
        border-radius: 14px;
        background: rgba(247,250,248,.88);
        border: 1px solid rgba(1,98,63,.06);
        padding-inline: .9rem;
    }
    .subnav-inner {
        gap: .7rem;
        padding-top: .2rem;
    }
    .official-subnav a {
        padding: .7rem .9rem;
        border-radius: 999px;
        background: rgba(247,250,248,.92);
        border: 1px solid rgba(1,98,63,.08);
    }
    .about-signature-grid,
    .departments-index-grid,
    .about-signature-stats {
        grid-template-columns: 1fr;
    }
    .about-signature-copy,
    .about-signature-card,
    .departments-index-card {
        border-radius: 20px;
    }
    .department-block .grouped-management-header,
    .department-block-rich .grouped-management-header {
        padding: .8rem .85rem 0;
    }
    .supporting-focus-panel,
    .supporting-lead-card,
    .department-panel {
        padding: 1rem;
    }
    .department-detail-head {
        grid-template-columns: 1fr;
        justify-items: start;
    }
    .contact-primary-actions .btn {
        flex-basis: 100%;
    }
}

/* Homepage hero redesign pass */
.hero-slide-inner {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(280px, .62fr);
    gap: 1.15rem;
    align-items: end;
}

.hero-copy-shell {
    max-width: 100%;
    padding: clamp(1.3rem, 2vw, 1.65rem);
}

.hero-copy-shell::before {
    border-radius: 30px;
    background:
        linear-gradient(145deg, rgba(7,28,21,.62), rgba(7,28,21,.22)),
        radial-gradient(circle at top right, rgba(216,177,30,.14), transparent 28%);
    box-shadow: 0 30px 84px rgba(0,0,0,.18);
}

.hero-brandline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 1rem;
    margin-bottom: .2rem;
    border-bottom: 1px solid rgba(255,255,255,.12);
}

.hero-brandline-copy {
    display: grid;
    gap: .2rem;
}

.hero-brandline-label {
    font-size: .72rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: rgba(255,255,255,.72);
    font-weight: 800;
}

.hero-brandline-copy strong {
    font-size: .94rem;
    color: #fff;
    font-weight: 800;
    letter-spacing: .02em;
}

.hero-brandline-seal {
    width: 54px;
    aspect-ratio: 1;
    display: grid;
    place-items: center;
    padding: .45rem;
    border-radius: 50%;
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.16);
    box-shadow: 0 12px 28px rgba(0,0,0,.16);
}

.hero-brandline-seal img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.hero-guidance-strip {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    margin-top: .35rem;
}

.hero-guidance-strip span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: .42rem .72rem;
    border-radius: 999px;
    background: rgba(255,255,255,.07);
    border: 1px solid rgba(255,255,255,.1);
    color: rgba(255,255,255,.88);
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .04em;
}

.hero-side-shell {
    display: grid;
    gap: .9rem;
    align-self: stretch;
}

.hero-service-panel {
    display: grid;
    gap: .8rem;
    padding: 1rem 1rem 1.05rem;
    border-radius: 26px;
    background:
        linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.06));
    border: 1px solid rgba(255,255,255,.14);
    box-shadow: 0 18px 42px rgba(0,0,0,.15);
    backdrop-filter: blur(12px);
    color: #fff;
}

.hero-service-panel h3 {
    margin: 0;
    font-size: 1.15rem;
    line-height: 1.18;
}

.hero-service-links {
    display: grid;
    gap: .55rem;
}

.hero-service-links a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 44px;
    padding: .72rem .85rem;
    border-radius: 15px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.1);
    color: #fff;
    font-weight: 700;
    transition: transform .18s ease, background .2s ease, border-color .2s ease;
}

.hero-service-links a::after {
    content: "→";
    font-size: .96rem;
    opacity: .84;
}

.hero-service-links a:hover,
.hero-service-links a:focus-visible {
    transform: translateX(2px);
    background: rgba(255,255,255,.12);
    border-color: rgba(255,255,255,.18);
}

.hero-state-rail {
    max-width: none;
}

.hero-state-pill {
    background: rgba(255,255,255,.08);
}

@media (max-width: 1080px) {
    .hero-slide-inner {
        grid-template-columns: 1fr;
    }
    .hero-side-shell {
        grid-template-columns: 1fr 1fr;
        align-self: auto;
    }
}

@media (max-width: 820px) {
    .hero-slide-inner {
        gap: .9rem;
    }
    .hero-brandline {
        align-items: start;
    }
    .hero-side-shell {
        grid-template-columns: 1fr;
    }
    .hero-guidance-strip span {
        font-size: .72rem;
    }
}

/* Mobile nav and editorial section pass */
.nav-mobile-utility {
    display: none;
}
.nav-mobile-language {
    display: block;
}
.nav-mobile-language select {
    width: 100%;
    min-height: 44px;
    padding: .7rem .8rem;
    border-radius: 14px;
    background: rgba(247,250,248,.92);
    border: 1px solid rgba(1,98,63,.08);
    color: var(--green-900);
    font: inherit;
    font-weight: 800;
    font-size: .86rem;
}

.news-command-band,
.gallery-command-band,
.resource-command-band {
    padding-top: 2.7rem;
    padding-bottom: 2.9rem;
}

.news-command-grid,
.gallery-command-grid,
.resource-command-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(360px, .9fr);
    gap: 1.2rem;
    align-items: stretch;
}

.news-command-copy,
.gallery-command-copy,
.resource-command-copy,
.news-command-card,
.gallery-command-card,
.resource-command-card {
    border-radius: 24px;
    border: 1px solid rgba(1,98,63,.08);
    box-shadow: var(--shadow-card);
}

.news-command-copy,
.gallery-command-copy,
.resource-command-copy {
    padding: 1.4rem 1.45rem;
    background:
        radial-gradient(circle at top right, rgba(156,163,37,.12), transparent 26%),
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(247,250,248,.96));
}

.news-command-copy h2,
.gallery-command-copy h2,
.resource-command-copy h2 {
    margin: 0 0 .9rem;
    font-size: clamp(2rem, 3vw, 2.9rem);
    line-height: 1.05;
}

.news-command-stats,
.gallery-command-stats,
.resource-command-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .9rem;
}

.news-command-card,
.gallery-command-card,
.resource-command-card {
    display: grid;
    align-content: start;
    gap: .45rem;
    padding: 1rem;
    background: linear-gradient(180deg, rgba(255,255,255,.985), rgba(246,250,248,.94));
}

.news-command-card strong,
.gallery-command-card strong,
.resource-command-card strong {
    font-family: var(--display-font);
    font-size: clamp(1.3rem, 2vw, 1.9rem);
    color: var(--green-900);
    letter-spacing: -.03em;
}

.news-command-card span,
.gallery-command-card span,
.resource-command-card span {
    color: var(--muted);
    font-size: .92rem;
}

.news-grid-toolbar,
.gallery-grid-toolbar,
.resource-grid-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .1rem 0 .95rem;
    color: var(--muted);
}

.news-grid-toolbar span,
.gallery-grid-toolbar span,
.resource-grid-toolbar span {
    font-size: .94rem;
}

.news-card-featured {
    overflow: hidden;
    border-radius: 28px;
    border: 1px solid rgba(1,98,63,.08);
    box-shadow: var(--shadow-lift);
}

.news-card-featured .news-image {
    min-height: 360px;
    object-fit: cover;
}

.news-card-editorial {
    overflow: hidden;
}

.news-card-editorial .news-body {
    padding-top: .95rem;
}

.gallery-card-exhibit {
    overflow: hidden;
    border-radius: 24px;
}

.gallery-card-exhibit .news-body {
    display: grid;
    gap: .55rem;
}

.resource-slider-shell {
    border-radius: 30px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.08);
    box-shadow: var(--shadow-lift);
}

.resource-slider-shell .resource-slide-inner {
    width: min(1220px, calc(100% - 2rem));
}

.resource-slider-caption {
    max-width: 720px;
    padding: 1.35rem 1.45rem;
    border-radius: 26px;
    background: linear-gradient(180deg, rgba(6,24,18,.44), rgba(6,24,18,.18));
    border: 1px solid rgba(255,255,255,.12);
    backdrop-filter: blur(8px);
}

.resource-list {
    gap: 1rem;
}

.resource-card-rich {
    padding: 1.2rem 1.2rem 1.25rem;
}

.resource-group-card {
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(246,249,247,.94));
    border: 1px solid rgba(1,98,63,.08);
}

@media (max-width: 1080px) {
    .news-command-grid,
    .gallery-command-grid,
    .resource-command-grid {
        grid-template-columns: 1fr;
    }
    .news-command-stats,
    .gallery-command-stats,
    .resource-command-stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .nav-mobile-utility {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: .55rem;
        padding: .4rem 1rem 1rem;
        border-top: 1px solid rgba(1,98,63,.08);
        background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(246,249,247,.98));
    }
    .nav-mobile-utility a,
    .nav-mobile-utility button,
    .nav-mobile-language select {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 44px;
        padding: .7rem .8rem;
        border-radius: 14px;
        background: rgba(247,250,248,.92);
        border: 1px solid rgba(1,98,63,.08);
        color: var(--green-900);
        font-weight: 800;
        font-size: .86rem;
    }
    .primary-nav {
        display: flex;
        flex-direction: column;
    }
    .nav-inner,
    .subnav-inner {
        width: calc(100% - 2rem);
        margin-inline: auto;
    }
    .subnav-inner {
        padding-bottom: .8rem;
    }
    .news-command-stats,
    .gallery-command-stats,
    .resource-command-stats {
        grid-template-columns: 1fr;
    }
    .news-grid-toolbar,
    .gallery-grid-toolbar,
    .resource-grid-toolbar {
        flex-direction: column;
        align-items: start;
    }
    .resource-slider-shell .resource-slide-inner {
        width: min(100%, calc(100% - 1.2rem));
    }
    .resource-slider-caption {
        padding: 1rem;
        border-radius: 22px;
    }
}

/* Compactness and slider correction pass */
.content-section {
    padding-block: clamp(2.1rem, 3.6vw, 3.8rem);
}

.feature-band,
.management-strip,
.news-section {
    padding: 1.8rem 0 2rem;
}

.split-panel,
.two-column-layout,
.three-panel-layout,
.feature-grid,
.management-grid,
.news-grid,
.gallery-grid,
.card-grid-4,
.timeline-grid,
.contact-directory-summary,
.contact-layout-upgraded,
.news-intro-layout,
.home-intro-layout {
    gap: 1rem;
}

.section-header {
    margin-bottom: .85rem;
}

.section-header h2,
.content-section h2,
.welcome-copy h2 {
    margin-bottom: .7rem;
    font-size: clamp(1.65rem, 3vw, 2.55rem);
    line-height: 1.08;
}

.content-section p,
.outline-panel p,
.stack-card p,
.resource-card p,
.contact-panel p,
.news-body p,
.gallery-card p {
    margin-top: 0;
    margin-bottom: .7rem;
}

.outline-panel,
.feature-card,
.stack-card,
.resource-card,
.contact-panel,
.sidebar-card,
.principal-card,
.gallery-card,
.news-card {
    padding: 1rem;
}

.hero-slider {
    min-height: min(64vh, 760px);
}

.hero-slide-inner {
    grid-template-columns: minmax(0, 1fr) 250px;
    gap: .9rem;
    padding: 6.2rem 0 5rem;
    align-items: center;
}

.hero-copy-shell {
    min-width: 0;
    padding: 1rem 1.05rem 1.05rem;
    gap: .75rem;
}

.hero-copy-shell::before {
    border-radius: 24px;
}

.hero-brandline {
    padding-bottom: .7rem;
}

.hero-brandline-seal {
    width: 44px;
    padding: .35rem;
}

.hero-glance-bar {
    margin-bottom: .45rem;
    gap: .65rem;
}

.hero-glance-tag,
.hero-glance-metric {
    padding: .55rem .75rem;
}

.hero-kicker {
    margin-bottom: .3rem;
}

.hero-slide h2 {
    max-width: 16ch;
    font-size: clamp(1.9rem, 3vw, 3.15rem);
    line-height: 1.02;
}

.hero-copy {
    max-width: 58ch;
    font-size: .94rem;
    line-height: 1.5;
}

.hero-actions {
    margin-top: .45rem;
    gap: .55rem;
}

.hero-guidance-strip {
    gap: .4rem;
    margin-top: .1rem;
}

.hero-guidance-strip span {
    min-height: 30px;
    padding: .34rem .62rem;
    font-size: .7rem;
}

.hero-side-shell {
    gap: .65rem;
}

.hero-state-rail {
    gap: .55rem;
}

.hero-state-pill,
.hero-service-panel {
    padding: .8rem .85rem;
}

.hero-state-value {
    font-size: 1.15rem;
}

.hero-state-label {
    font-size: .76rem;
    line-height: 1.35;
}

.hero-service-panel h3 {
    font-size: 1rem;
}

.hero-service-links {
    gap: .45rem;
}

.hero-service-links a {
    min-height: 38px;
    padding: .58rem .72rem;
    font-size: .84rem;
}

.hero-nav {
    bottom: 1rem;
    right: 1rem;
}

.hero-arrow {
    width: 2.7rem;
    height: 2.7rem;
}

.hero-dots {
    bottom: .95rem;
}

.home-status-band,
.home-journey-section,
.about-signature-band,
.departments-index-band,
.news-command-band,
.gallery-command-band,
.resource-command-band {
    padding-top: 2rem;
    padding-bottom: 2.15rem;
}

.home-status-intro,
.about-signature-copy,
.news-command-copy,
.gallery-command-copy,
.resource-command-copy {
    padding: 1.15rem 1.2rem;
}

.home-status-intro h2,
.about-signature-copy h2,
.news-command-copy h2,
.gallery-command-copy h2,
.resource-command-copy h2 {
    font-size: clamp(1.7rem, 2.7vw, 2.4rem);
    margin-bottom: .65rem;
}

.home-status-cards,
.about-signature-stats,
.news-command-stats,
.gallery-command-stats,
.resource-command-stats,
.departments-index-grid,
.home-journey-grid {
    gap: .75rem;
}

.home-status-card,
.about-signature-card,
.news-command-card,
.gallery-command-card,
.resource-command-card,
.departments-index-card,
.home-journey-card {
    padding: .9rem;
}

.page-banner-content {
    padding: 3.5rem 0 2.15rem;
}

.page-banner-content p:last-child {
    font-size: .94rem;
}

.grouped-management-block-rich,
.province-directory-card,
.contact-summary-card {
    border-radius: 20px;
}

.grouped-management-block-rich {
    padding: .9rem .95rem 1rem;
}

.province-directory-summary {
    padding: 1rem;
}

.province-directory-table-wrap {
    padding: 0 .9rem .9rem;
}

.resource-slider-caption {
    padding: 1rem 1.05rem;
    max-width: 640px;
}

.resource-slider-shell {
    border-radius: 24px;
}

.footer-grid {
    gap: 1.2rem;
    padding-top: 2rem;
    padding-bottom: 1.3rem;
}

@media (max-width: 1180px) {
    .hero-slide-inner {
        grid-template-columns: 1fr;
        gap: .75rem;
        padding: 5.8rem 0 4.5rem;
    }
    .hero-side-shell {
        grid-template-columns: 1fr 1fr;
    }
    .hero-slide h2 {
        max-width: 14ch;
    }
}

@media (max-width: 820px) {
    .content-section {
        padding-block: 1.8rem;
    }
    .hero-slider {
        min-height: auto;
    }
    .hero-slide-inner {
        padding: 4.8rem 0 4rem;
    }
    .hero-side-shell {
        grid-template-columns: 1fr;
    }
    .hero-slide h2 {
        max-width: 100%;
        font-size: clamp(1.65rem, 6vw, 2.2rem);
    }
    .hero-copy {
        font-size: .9rem;
    }
    .page-banner-content {
        padding: 2.8rem 0 1.65rem;
    }
}

/* Accessibility and interaction polish pass */
:root {
    --focus-ring: 0 0 0 3px rgba(216, 177, 30, 0.35), 0 0 0 6px rgba(1, 98, 63, 0.2);
}

html {
    scroll-behavior: smooth;
}

main[id],
section[id],
article[id],
div[id] {
    scroll-margin-top: 7rem;
}

.skip-link {
    border-radius: 999px;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring);
}

.topbar-item:focus-visible,
.topbar-socials a:focus-visible,
.portal-link:focus-visible,
.menu-toggle:focus-visible,
.nav-close:focus-visible,
.nav-mobile-utility a:focus-visible,
.nav-inner > a.nav-item:focus-visible,
.nav-link-row > a:focus-visible,
.mega-toggle:focus-visible,
.subnav-inner a:focus-visible,
.masthead-search-form input:focus-visible,
.masthead-search-form button:focus-visible,
.site-search-form input:focus-visible,
.site-search-form button:focus-visible,
.hero-dot:focus-visible,
.hero-arrow:focus-visible,
.quick-link-list a:focus-visible,
.footer-links a:focus-visible,
.back-to-top:focus-visible {
    box-shadow: var(--focus-ring);
}

.nav-inner > a.nav-item:focus-visible,
.nav-link-row > a:focus-visible,
.subnav-inner a:focus-visible,
.footer-links a:focus-visible {
    border-radius: 12px;
}

.menu-toggle:focus-visible,
.nav-close:focus-visible,
.mega-toggle:focus-visible,
.hero-dot:focus-visible,
.hero-arrow:focus-visible,
.back-to-top:focus-visible,
.masthead-search-form button:focus-visible,
.site-search-form button:focus-visible {
    outline: none;
}

.masthead-search-form input:focus-visible,
.site-search-form input:focus-visible {
    background: #fff;
}

.hero-dot {
    transition: transform .2s ease, background-color .2s ease, box-shadow .2s ease;
}

.hero-dot:hover,
.hero-dot:focus-visible {
    transform: scale(1.08);
    background: rgba(255,255,255,.88);
}

.hero-dot.is-active {
    background: var(--olive-soft);
}

.nav-item-mega.is-open .mega-menu a:focus-visible,
.mega-tabs a:focus-visible {
    border-radius: 10px;
    color: var(--green-900);
}

.primary-nav[aria-hidden="true"] {
    visibility: hidden;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }

    [data-reveal] {
        opacity: 1 !important;
        transform: none !important;
    }

    .hero-progress,
    .hero-progress span {
        animation: none !important;
        transition: none !important;
    }

    .hero-slide,
    .hero-slide-inner > *,
    .mega-menu,
    .primary-nav,
    .nav-scrim,
    .menu-toggle-box span {
        transition: none !important;
    }
}

/* State card contrast correction */
.hero-state-pill,
.hero-service-panel,
.home-status-card,
.about-signature-card,
.news-command-card,
.gallery-command-card,
.resource-command-card {
    background:
        radial-gradient(circle at top right, rgba(156, 163, 37, 0.16), transparent 34%),
        linear-gradient(165deg, rgba(5, 22, 16, 0.96), rgba(9, 44, 31, 0.94) 54%, rgba(16, 78, 54, 0.9));
    border: 1px solid rgba(150, 190, 121, 0.18);
    box-shadow: 0 18px 40px rgba(4, 17, 12, 0.22);
}

.hero-state-value,
.home-status-value,
.about-signature-card strong,
.news-command-card strong,
.gallery-command-card strong,
.resource-command-card strong,
.hero-service-panel h3,
.home-status-card strong {
    color: #f3f7ef;
}

.hero-state-label,
.home-status-card p,
.about-signature-card span,
.news-command-card span,
.gallery-command-card span,
.resource-command-card span {
    color: rgba(237, 244, 236, 0.84);
}

.hero-service-links a {
    background: rgba(255,255,255,.06);
    border-color: rgba(255,255,255,.12);
    color: #f7faf6;
}

.hero-service-links a:hover,
.hero-service-links a:focus-visible {
    background: rgba(255,255,255,.12);
    border-color: rgba(220, 231, 217, 0.24);
}

/* Feature card readability and lighter rendering pass */
.feature-band {
    background: linear-gradient(180deg, #17392d, #133126);
}

.feature-band.pattern-section::before {
    opacity: .1;
    mix-blend-mode: normal;
    background-size: 360px auto;
}

.feature-band.pattern-section::after {
    background: linear-gradient(180deg, rgba(10, 28, 20, .88), rgba(10, 28, 20, .78));
}

.feature-card {
    background: linear-gradient(180deg, rgba(246, 249, 247, .98), rgba(236, 242, 238, .96));
    color: #132531;
    border-color: rgba(16, 60, 42, .12);
    box-shadow: 0 10px 24px rgba(8, 23, 18, .1);
    transition: border-color .18s ease, box-shadow .18s ease;
}

.feature-card::after {
    background: none;
}

.feature-card h3 {
    color: #173425;
    text-shadow: none;
}

.feature-card p {
    color: #445347;
}

.feature-link {
    color: var(--green-900);
}

.feature-card:hover,
.feature-card:focus-within {
    transform: none;
    box-shadow: 0 12px 26px rgba(8, 23, 18, .12);
    border-color: rgba(16, 60, 42, .18);
}

.feature-icon {
    box-shadow: inset 0 1px 0 rgba(255,255,255,.16), 0 8px 18px rgba(0,0,0,.12);
}

/* Simpler government-style hero pass */
.hero-slider {
    min-height: min(58vh, 660px);
    background: #10261d;
}

.hero-slider::before {
    background: linear-gradient(180deg, rgba(6,24,18,.08), rgba(6,24,18,.18));
}

.hero-slider::after {
    height: 22%;
    background: linear-gradient(180deg, rgba(6,24,18,0), rgba(6,24,18,.3));
}

.hero-slide::before {
    background: linear-gradient(96deg, rgba(6,24,18,.78) 6%, rgba(6,24,18,.42) 42%, rgba(6,24,18,.18) 76%);
}

.hero-slide-inner {
    grid-template-columns: minmax(0, 1.48fr) minmax(250px, .42fr);
    gap: .8rem;
    padding: 5.25rem 0 4.2rem;
    align-items: stretch;
}

.hero-copy-shell {
    padding: 1.1rem 1.15rem 1rem;
}

.hero-copy-shell::before {
    border-radius: 20px;
    background: linear-gradient(180deg, rgba(8,27,20,.84), rgba(8,27,20,.7));
    box-shadow: 0 10px 22px rgba(0,0,0,.14);
    border: 1px solid rgba(255,255,255,.08);
}

.hero-copy-shell > * {
    transition-duration: .32s;
}

.hero-brandline {
    gap: .8rem;
    padding-bottom: .55rem;
    border-bottom: 1px solid rgba(255,255,255,.1);
}

.hero-brandline-copy strong {
    font-size: .88rem;
}

.hero-brandline-seal {
    width: 42px;
    padding: .3rem;
    background: rgba(255,255,255,.08);
    box-shadow: none;
}

.hero-glance-bar {
    margin-bottom: .3rem;
}

.hero-glance-tag,
.hero-glance-metric {
    background: rgba(255,255,255,.05);
    border-color: rgba(255,255,255,.1);
}

.hero-slide h2 {
    max-width: 21ch;
    font-size: clamp(2rem, 2.8vw, 3.25rem);
    line-height: 1.04;
    text-wrap: balance;
}

.hero-copy {
    max-width: 62ch;
    font-size: 1rem;
    line-height: 1.48;
}

.hero-actions {
    gap: .65rem;
}

.hero-guidance-strip {
    gap: .35rem;
    margin-top: .2rem;
}

.hero-guidance-strip span {
    min-height: 28px;
    padding: .28rem .55rem;
    background: rgba(255,255,255,.05);
    border-color: rgba(255,255,255,.08);
    font-size: .68rem;
}

.hero-side-shell {
    gap: .55rem;
}

.hero-state-pill,
.hero-service-panel {
    border-radius: 18px;
    box-shadow: 0 8px 18px rgba(4, 17, 12, 0.14);
}

.hero-service-panel {
    gap: .65rem;
    backdrop-filter: none;
}

.hero-service-links {
    gap: .38rem;
}

.hero-service-links a {
    min-height: 36px;
    padding: .52rem .68rem;
    border-radius: 12px;
    transition: background .16s ease, border-color .16s ease;
}

.hero-service-links a:hover,
.hero-service-links a:focus-visible {
    transform: none;
}

.hero-nav {
    right: .85rem;
    bottom: .85rem;
}

.hero-arrow {
    width: 2.45rem;
    height: 2.45rem;
    backdrop-filter: none;
}

.hero-dots {
    bottom: .8rem;
}

@media (max-width: 1180px) {
    .hero-slide-inner {
        grid-template-columns: 1fr;
        padding: 4.8rem 0 3.8rem;
    }
    .hero-slide h2 {
        max-width: 100%;
    }
    .hero-side-shell {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 820px) {
    .hero-slider {
        min-height: auto;
    }
    .hero-slide-inner {
        padding: 4.2rem 0 3.4rem;
    }
    .hero-side-shell {
        grid-template-columns: 1fr;
    }
    .hero-slide h2 {
        font-size: clamp(1.8rem, 6vw, 2.3rem);
    }
}

/* Homepage simplification and performance pass */
.home-status-band,
.home-journey-section,
.home-intro-strip,
.welcome-section,
.management-strip,
.news-section {
    background: #f7faf8;
}

.feature-band,
.management-strip,
.news-section {
    padding: 1.8rem 0 2rem;
}

.pattern-section::before,
.pattern-section::after,
.feature-band.pattern-section::before,
.feature-band.pattern-section::after,
.management-strip.pattern-section::before,
.management-strip.pattern-section::after,
.news-section.pattern-section::before,
.news-section.pattern-section::after,
.home-status-band::before,
.home-journey-section::before {
    opacity: 0 !important;
    background: none !important;
}

.content-section + .content-section::before {
    background: linear-gradient(90deg, transparent, rgba(1,98,63,.08), transparent);
}

.section-header h2,
.welcome-copy h2,
.content-section h2,
.outline-panel h3 {
    color: #173425;
    letter-spacing: -.01em;
}

.section-kicker,
.mini-kicker {
    color: #49654f;
}

.home-status-intro,
.outline-panel,
.stack-card,
.home-journey-card,
.quick-link-panel,
.dept-card,
.home-flow-card,
.management-card,
.news-card {
    background: #ffffff;
    border: 1px solid rgba(18, 58, 41, .1);
    box-shadow: 0 8px 20px rgba(9, 27, 20, .06);
}

.outline-panel,
.stack-card,
.resource-card,
.sidebar-card,
.contact-panel,
.principal-card,
.gallery-card,
.feature-card,
.management-card,
.news-card {
    border-radius: 18px;
}

.home-status-intro,
.quick-link-panel {
    background: #f2f7f4;
}

.quick-link-copy,
.quick-link-list a {
    background: #fff;
    border: 1px solid rgba(18, 58, 41, .08);
    box-shadow: none;
}

.home-status-card,
.about-signature-card,
.news-command-card,
.gallery-command-card,
.resource-command-card {
    background: #113627;
    border-color: rgba(150, 190, 121, 0.16);
    box-shadow: 0 10px 22px rgba(4, 17, 12, 0.12);
}

.home-status-card strong,
.home-status-value {
    color: #f5f7f2;
}

.home-status-card p {
    color: rgba(239, 244, 237, .84);
}

.home-journey-card::before,
.feature-card::before,
.feature-card::after,
.stack-card::after,
.news-card::after,
.management-card::after {
    display: none;
}

.home-journey-card {
    gap: .55rem;
    padding: 1rem;
}

.home-journey-step {
    width: 2.4rem;
    height: 2.4rem;
    background: #e9f1ec;
    color: var(--green-900);
    box-shadow: none;
}

.home-journey-card h3,
.stack-card h3,
.stack-card h4,
.news-card h3,
.management-card h3 {
    color: #173425;
}

.home-journey-card p,
.stack-card p,
.outline-panel p,
.welcome-copy p,
.news-body p,
.management-card p {
    color: #4c5a50;
}

.feature-card {
    background: #ffffff;
    box-shadow: 0 8px 18px rgba(9, 27, 20, .06);
}

.feature-icon {
    width: 64px;
    height: 64px;
    border-radius: 14px;
}

.feature-card h3 {
    font-size: clamp(1.35rem, 2.1vw, 2rem);
    line-height: 1.08;
    text-transform: none;
}

.feature-link {
    color: var(--green-900);
}

.portrait-photo-wrap {
    background: #eef4f0;
    border: 1px solid rgba(18, 58, 41, .08);
    box-shadow: 0 10px 22px rgba(9, 27, 20, .06);
}

.portrait-photo,
.person-photo,
.news-image {
    box-shadow: none;
}

.management-strip .section-header,
.management-strip .section-header p,
.management-strip .section-header h2 {
    color: inherit;
}

.section-link-button {
    background: #0f5d3f;
    border-color: #0f5d3f;
    color: #fff;
}

.section-link-button:hover,
.section-link-button:focus-visible {
    background: #0d5238;
    border-color: #0d5238;
    transform: none;
}

.management-card:hover,
.news-card:hover,
.gallery-card:hover,
.principal-card:hover,
.dept-card:hover,
.feature-card:hover,
.stack-card:hover,
.outline-panel:hover {
    transform: none;
    box-shadow: 0 10px 22px rgba(9, 27, 20, .08);
}

/* Final homepage formalization pass */
.home-status-intro,
.outline-panel,
.stack-card,
.home-journey-card,
.quick-link-panel,
.quick-link-copy,
.quick-link-list a,
.dept-card,
.home-flow-card,
.feature-card,
.management-card,
.news-card,
.section-link-button,
.btn {
    border-radius: 12px;
}

.content-section,
.welcome-section,
.management-strip,
.news-section,
.feature-band {
    padding-top: 1.6rem;
    padding-bottom: 1.8rem;
}

.section-header {
    margin-bottom: .8rem;
}

.section-header h2,
.welcome-copy h2,
.content-section h2 {
    font-size: clamp(1.65rem, 2.5vw, 2.35rem);
    line-height: 1.1;
}

.hero-brandline-label,
.section-kicker,
.mini-kicker {
    letter-spacing: .12em;
}

.quick-link-panel,
.home-status-intro,
.portrait-photo-wrap {
    background: #f5f8f6;
}

.feature-card,
.stack-card,
.outline-panel,
.management-card,
.news-card {
    padding: .95rem;
}

.feature-card h3,
.stack-card h3,
.stack-card h4,
.news-card h3,
.management-card h3,
.home-journey-card h3 {
    font-size: clamp(1.05rem, 1.7vw, 1.35rem);
    line-height: 1.2;
}

.btn,
.section-link-button,
.hero-actions .btn,
.about-principals-preview .btn {
    min-height: 40px;
    padding: .58rem .95rem;
    font-weight: 700;
    box-shadow: none;
}

.btn-primary,
.section-link-button {
    background: #0f5d3f;
    border: 1px solid #0f5d3f;
}

.btn-primary:hover,
.btn-primary:focus-visible,
.section-link-button:hover,
.section-link-button:focus-visible {
    background: #0c4d34;
    border-color: #0c4d34;
}

.btn-secondary {
    background: #ffffff;
    border: 1px solid rgba(18, 58, 41, .18);
    color: #173425;
}

.btn-secondary:hover,
.btn-secondary:focus-visible {
    background: #f4f8f5;
    border-color: rgba(18, 58, 41, .24);
}

.management-grid,
.news-grid,
.feature-grid,
.card-grid-4,
.home-journey-grid,
.home-status-cards {
    gap: .8rem;
}

.cookie-banner {
    position: fixed;
    left: 1rem;
    right: 1rem;
    bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
    z-index: 60;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
    max-width: 1080px;
    margin: 0 auto;
    padding: .95rem 1rem;
    border-radius: 12px;
    background: rgba(255,255,255,.98);
    border: 1px solid rgba(18, 58, 41, .12);
    box-shadow: 0 14px 32px rgba(8, 23, 18, .12);
}

.cookie-banner[hidden] {
    display: none !important;
}

.cookie-banner-copy {
    min-width: 0;
}

.cookie-banner strong {
    display: block;
    margin-bottom: .25rem;
    color: #173425;
}

.cookie-banner p {
    margin: 0;
    color: #4c5a50;
    font-size: .92rem;
    overflow-wrap: anywhere;
}

.cookie-banner a {
    color: var(--green-900);
    text-decoration: underline;
}

.cookie-banner-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    justify-content: flex-end;
}

@media (max-width: 820px) {
    .masthead-search-form input,
    .site-search-form input,
    .site-search-form button,
    .masthead-search-form button,
    .btn {
        font-size: 16px;
    }

    .cookie-banner {
        grid-template-columns: 1fr;
        left: .5rem;
        right: .5rem;
        bottom: calc(.5rem + env(safe-area-inset-bottom, 0px));
        padding: .82rem;
        gap: .7rem;
        max-height: min(58vh, 320px);
        overflow-y: auto;
    }

    .cookie-banner-actions {
        justify-content: stretch;
        gap: .45rem;
    }

    .cookie-banner-actions .btn {
        width: 100%;
        min-height: 42px;
    }

    .cookie-banner strong {
        font-size: .98rem;
    }

    .cookie-banner p {
        font-size: .88rem;
        line-height: 1.45;
    }
}

/* Final mobile hero visibility pass */
@media (max-width: 820px) {
    .hero-slider {
        min-height: 68svh;
        background: #173328;
    }

    .hero-slider::before {
        background: linear-gradient(180deg, rgba(6,24,18,.04), rgba(6,24,18,.14));
    }

    .hero-slider::after {
        height: 18%;
        background: linear-gradient(180deg, rgba(6,24,18,0), rgba(6,24,18,.22));
    }

    .hero-slide {
        background-position: center center !important;
        background-size: cover;
    }

    .hero-slide::before {
        background: linear-gradient(180deg, rgba(6,24,18,.28) 0%, rgba(6,24,18,.16) 34%, rgba(6,24,18,.28) 100%);
    }

    .hero-slide-inner {
        width: min(100%, calc(100% - 1rem));
        min-height: 68svh;
        align-items: end;
        padding: 5rem 0 4rem;
    }

    .hero-copy-shell {
        width: min(100%, 32rem);
        gap: .7rem;
        padding: .8rem .9rem .95rem;
    }

    .hero-copy-shell::before {
        background: linear-gradient(180deg, rgba(8,27,20,.54), rgba(8,27,20,.38));
        box-shadow: none;
        border: 1px solid rgba(255,255,255,.06);
        backdrop-filter: none;
    }

    .hero-brandline,
    .hero-glance-bar,
    .hero-guidance-strip,
    .hero-side-shell {
        display: none;
    }

    .hero-kicker {
        margin-bottom: .2rem;
    }

    .hero-slide h2 {
        max-width: 12ch;
        font-size: clamp(1.7rem, 7vw, 2.3rem);
        line-height: 1.06;
        text-wrap: balance;
    }

    .hero-copy {
        max-width: 30ch;
        font-size: .98rem;
        line-height: 1.45;
    }

    .hero-actions {
        gap: .5rem;
        margin-top: .45rem;
    }

    .hero-actions .btn {
        min-height: 44px;
        padding: .72rem 1rem;
    }

    .hero-nav {
        right: .75rem;
        bottom: .85rem;
    }

    .hero-dots {
        left: 50%;
        right: auto;
        bottom: .95rem;
        transform: translateX(-50%);
    }
}

@media (max-width: 560px) {
    .hero-slider,
    .hero-slide-inner {
        min-height: 62svh;
    }

    .hero-slide-inner {
        padding: 4.4rem 0 3.5rem;
    }

    .hero-copy-shell {
        width: calc(100% - .25rem);
        padding: .75rem .8rem .9rem;
    }

    .hero-slide h2 {
        max-width: 11ch;
        font-size: clamp(1.52rem, 7.4vw, 1.95rem);
    }

    .hero-copy {
        font-size: .94rem;
        max-width: 28ch;
    }
}

@media (max-width: 640px) {
    .masthead-inner {
        grid-template-columns: 52px minmax(0, 1fr) 52px;
        grid-template-areas:
            "crest title seal"
            "menu menu menu";
        gap: .5rem;
        align-items: center;
    }

    .crest-mark {
        grid-area: crest;
    }

    .masthead-title {
        grid-area: title;
        min-width: 0;
    }

    .masthead-tools {
        display: contents;
    }

    .seal-mark-inline {
        grid-area: seal;
        margin-right: 0;
        justify-self: end;
    }

    .portal-link,
    .masthead-search-form {
        display: none;
    }

    .menu-toggle {
        grid-area: menu;
        justify-self: end;
        margin-top: .15rem;
    }

    .masthead-title h1 {
        white-space: normal;
        text-wrap: balance;
        line-height: 1.08;
    }
}

.leadership-strip {
    background: #f4f8f5;
    padding-top: 1.2rem;
    padding-bottom: 1.3rem;
}

.leadership-strip-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .8rem;
}

.leadership-strip-card {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
    gap: .8rem;
    align-items: start;
    padding: 1rem;
    border-radius: 14px;
    background: #fff;
    border: 1px solid rgba(8, 115, 72, .1);
    box-shadow: 0 8px 18px rgba(9, 27, 20, .05);
}
.leadership-strip-link {
    color: inherit;
    text-decoration: none;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.leadership-strip-link:hover,
.leadership-strip-link:focus-visible {
    border-color: rgba(8, 115, 72, .22);
    box-shadow: 0 12px 24px rgba(9, 27, 20, .08);
    transform: translateY(-1px);
}

.leadership-strip-media {
    display: grid;
    gap: .45rem;
    justify-items: start;
}

.leadership-strip-index {
    display: inline-grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 12px;
    background: rgba(8, 115, 72, .1);
    color: var(--green-900);
    font-size: 1rem;
    font-weight: 800;
}

.leadership-strip-photo {
    width: 96px;
    height: 96px;
    object-fit: cover;
    border-radius: 14px;
    border: 1px solid rgba(8, 115, 72, .12);
    background: #eef4f0;
}

.leadership-strip-copy h3 {
    margin: 0 0 .25rem;
    color: var(--green-900);
    font-size: clamp(1.02rem, 1.8vw, 1.24rem);
    line-height: 1.18;
}

.leadership-strip-copy p:last-child {
    margin: 0;
    color: #4c5a50;
}
.home-expand-card summary {
    cursor: pointer;
    list-style: none;
}
.home-expand-card summary::-webkit-details-marker {
    display: none;
}
.home-expand-card summary::after {
    content: "View more";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: .38rem .8rem;
    margin-top: .5rem;
    border-radius: 999px;
    background: rgba(1,98,63,.08);
    color: var(--green-900);
    font-size: .78rem;
    font-weight: 800;
}
.home-expand-card[open] summary::after {
    content: "View less";
}
.home-expand-list {
    margin: 1rem 0 0;
    padding-left: 1.1rem;
    display: grid;
    gap: .55rem;
}
.home-card-lead {
    display: grid;
    grid-template-columns: 84px 1fr;
    gap: .8rem;
    align-items: center;
    margin-top: 1rem;
}
.home-card-lead strong,
.home-card-lead span {
    display: block;
}
.home-card-lead strong {
    color: var(--green-900);
}
.home-card-lead span {
    color: var(--ink-600);
    font-size: .92rem;
}
.news-card-surface {
    color: inherit;
    text-decoration: none;
}
.news-card-surface:hover,
.news-card-surface:focus-visible {
    color: inherit;
}

@media (max-width: 980px) {
    .leadership-strip-grid {
        grid-template-columns: 1fr;
    }
}

.support-head-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .8rem;
}

.support-head-card {
    padding: 1rem;
    border-radius: 14px;
    background: #fff;
    border: 1px solid rgba(8, 115, 72, .1);
    box-shadow: 0 8px 18px rgba(9, 27, 20, .05);
}

.support-head-photo {
    width: 120px;
    height: 120px;
    border-radius: 16px;
    object-fit: cover;
    margin-bottom: .8rem;
    background: #eef4f0;
}

.support-head-card h3 {
    margin: 0 0 .25rem;
    color: var(--green-900);
    font-size: 1.05rem;
}

.support-head-role,
.support-head-tags {
    color: #4c5a50;
}

.support-head-tags {
    font-size: .92rem;
}

.digital-links-panel {
    margin-top: 1rem;
}

.digital-links-grid {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
}

.digital-link-chip {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: .55rem .9rem;
    border-radius: 999px;
    background: #fff;
    border: 1px solid rgba(8, 115, 72, .12);
    color: var(--green-900);
    font-weight: 700;
}

@media (max-width: 1080px) {
    .support-head-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .support-head-grid {
        grid-template-columns: 1fr;
    }
}

/* Final homepage hero height pass */
.hero-slider {
    min-height: min(74vh, 780px);
}

.hero-slide-inner {
    min-height: min(74vh, 780px);
    align-items: center;
    padding: 6.4rem 0 4.6rem;
}

.hero-copy-shell {
    align-self: center;
    overflow: visible;
}

.hero-slide h2 {
    max-width: 22ch;
    line-height: 1.08;
}

.home-critical-links {
    background: #f5f8f6;
}

.home-link-card {
    min-height: 100%;
}

.core-values-panel {
    display: grid;
    gap: .9rem;
}

.core-values-list {
    display: grid;
    gap: .7rem;
}

.core-value-item {
    padding: .9rem 1rem;
    border-radius: 14px;
    background: #f7faf8;
    border: 1px solid rgba(8, 115, 72, .08);
}

.core-value-item strong {
    display: block;
    margin-bottom: .25rem;
    color: var(--green-900);
}

.core-value-item p {
    margin: 0;
    color: #4c5a50;
}

.digital-suite-band {
    background: #f4f8f5;
}

.digital-suite-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .8rem;
}

.digital-suite-card {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: .75rem;
    align-items: center;
    padding: 1rem;
    border-radius: 14px;
    background: #fff;
    border: 1px solid rgba(8, 115, 72, .1);
    box-shadow: 0 8px 18px rgba(9, 27, 20, .05);
}

.digital-suite-card.is-active {
    border-color: rgba(8, 115, 72, .28);
    background: linear-gradient(180deg, #ffffff, #f4fbf7);
}

.digital-suite-step {
    display: inline-grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: rgba(8, 115, 72, .1);
    color: var(--green-900);
    font-weight: 800;
}

.digital-suite-copy {
    display: grid;
    gap: .12rem;
}

.digital-suite-copy strong {
    color: var(--green-900);
}

.digital-suite-copy span {
    color: #4c5a50;
    font-size: .94rem;
}

.portal-command-band {
    background: #f4f8f5;
}

.portal-command-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(280px, .8fr);
    gap: 1rem;
    align-items: start;
}

.portal-command-copy h2 {
    margin: 0;
    font-size: clamp(1.4rem, 2.5vw, 2rem);
    line-height: 1.18;
    color: var(--green-900);
}

.portal-command-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .7rem;
}

.portal-command-stat {
    padding: 1rem;
    border-radius: 14px;
    background: #fff;
    border: 1px solid rgba(8, 115, 72, .1);
    box-shadow: 0 8px 18px rgba(9, 27, 20, .05);
    text-align: center;
}

.portal-command-stat strong {
    display: block;
    color: var(--green-900);
    font-size: clamp(1.2rem, 2vw, 1.7rem);
}

.portal-command-stat span {
    color: #4c5a50;
}

.portal-systems-grid {
    justify-content: flex-start;
}

.portal-system-chip {
    min-height: 46px;
    padding-inline: 1rem;
}

.portal-lane-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .9rem;
}

.portal-lane-card {
    padding: 1rem;
    border-radius: 16px;
    background: #fff;
    border: 1px solid rgba(8, 115, 72, .1);
    box-shadow: 0 8px 18px rgba(9, 27, 20, .05);
}

.portal-lane-card h3 {
    margin: 0 0 .35rem;
    color: var(--green-900);
}

.portal-lane-card p {
    color: #4c5a50;
}

.portal-lane-links {
    display: grid;
    gap: .5rem;
    margin-top: .8rem;
}

.portal-lane-links a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 44px;
    padding: .7rem .9rem;
    border-radius: 12px;
    background: #f5f8f6;
    border: 1px solid rgba(8, 115, 72, .08);
    color: var(--green-900);
    font-weight: 700;
}

.portal-lane-links a::after {
    content: "→";
    color: rgba(8, 115, 72, .82);
}

@media (max-width: 980px) {
    .portal-command-grid,
    .portal-lane-grid,
    .digital-suite-grid {
        grid-template-columns: 1fr;
    }

    .portal-command-stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .portal-command-stats {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   PROTOCOL STRIP — homepage leadership hierarchy bar
   ============================================================ */
.protocol-strip {
    background: linear-gradient(90deg, var(--green-950) 0%, #0a3d26 50%, var(--green-950) 100%);
    border-bottom: 2px solid var(--flag-gold);
    padding: .6rem 0;
    position: relative;
    z-index: 1;
}

.protocol-strip-inner {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.protocol-strip-label {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-shrink: 0;
}

.protocol-strip-kicker {
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: var(--flag-gold);
    white-space: nowrap;
}

.protocol-strip-rule {
    width: 1px;
    height: 28px;
    background: rgba(216,177,30,.3);
    display: block;
}

.protocol-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 0;
    flex: 1;
    flex-wrap: wrap;
}

.protocol-item {
    display: flex;
    align-items: center;
    gap: 0;
}

.protocol-card {
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: .35rem .75rem;
    border-radius: 8px;
    text-decoration: none;
    transition: background .18s;
}

.protocol-card:hover,
.protocol-card:focus-visible {
    background: rgba(255,255,255,.08);
    outline: none;
}

.protocol-rank {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--flag-gold);
    color: var(--green-950);
    font-size: .62rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    letter-spacing: 0;
}

.protocol-avatar-wrap {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    border: 2px solid rgba(216,177,30,.5);
}

.protocol-avatar {
    width: 36px;
    height: 36px;
    object-fit: cover;
    display: block;
}

.protocol-copy {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.protocol-role {
    font-size: .6rem;
    letter-spacing: .04em;
    color: rgba(255,255,255,.6);
    text-transform: uppercase;
    font-weight: 500;
    line-height: 1.2;
    max-width: 160px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.protocol-name {
    font-size: .78rem;
    font-weight: 700;
    color: #fff;
    line-height: 1.3;
    white-space: nowrap;
}

.protocol-arrow {
    color: rgba(216,177,30,.6);
    flex-shrink: 0;
}

.protocol-connector {
    display: block;
    width: 20px;
    height: 1px;
    background: rgba(216,177,30,.2);
    margin: 0 .1rem;
}

.protocol-view-all {
    margin-left: auto;
    font-size: .72rem;
    font-weight: 600;
    color: var(--flag-gold);
    text-decoration: none;
    white-space: nowrap;
    padding: .3rem .65rem;
    border: 1px solid rgba(216,177,30,.3);
    border-radius: 6px;
    transition: background .18s, color .18s;
    flex-shrink: 0;
}

.protocol-view-all:hover,
.protocol-view-all:focus-visible {
    background: var(--flag-gold);
    color: var(--green-950);
    outline: none;
}

@media (max-width: 820px) {
    .protocol-strip {
        padding: .5rem 0;
    }
    .protocol-strip-inner {
        gap: .75rem;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        flex-wrap: nowrap;
        scrollbar-width: none;
    }
    .protocol-strip-inner::-webkit-scrollbar { display: none; }
    .protocol-strip-rule { display: none; }
    .protocol-role { display: none; }
    .protocol-name { font-size: .72rem; }
    .protocol-connector { width: 10px; }
    .protocol-view-all { display: none; }
}

/* ============================================================
   QUICK ACCESS GRID — homepage service shortcuts
   ============================================================ */
.home-quick-access {
    background: var(--panel);
}

.quick-access-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 1rem;
    margin-top: 2rem;
}

.quick-access-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: .55rem;
    padding: 1.4rem 1rem;
    border: 1.5px solid var(--line);
    border-radius: 14px;
    text-decoration: none;
    color: var(--ink);
    background: var(--panel);
    transition: border-color .18s, box-shadow .18s, transform .16s;
}

.quick-access-card:hover,
.quick-access-card:focus-visible {
    border-color: var(--green-800);
    box-shadow: 0 6px 20px rgba(8,115,72,.1);
    transform: translateY(-3px);
    outline: none;
}

.quick-access-icon {
    width: 52px;
    height: 52px;
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(8,115,72,.1), rgba(8,115,72,.06));
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--green-900);
    flex-shrink: 0;
    transition: background .18s;
}

.quick-access-card:hover .quick-access-icon {
    background: linear-gradient(135deg, rgba(8,115,72,.18), rgba(8,115,72,.1));
}

.quick-access-label {
    font-size: .88rem;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.3;
}

.quick-access-sub {
    font-size: .74rem;
    color: var(--muted);
    line-height: 1.3;
}

@media (max-width: 1024px) {
    .quick-access-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 600px) {
    .quick-access-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: .75rem;
    }
    .quick-access-card {
        padding: 1rem .75rem;
    }
}

/* ============================================================
   HOME DEPARTMENTS SECTION
   ============================================================ */
.home-departments-section {
    padding-top: 3.5rem;
    padding-bottom: 3.5rem;
}

/* ============================================================
   HOME MAGAZINE TEASER SECTION
   ============================================================ */
.home-magazine-section {
    background: var(--panel);
    padding: 4rem 0;
}

.home-magazine-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3.5rem;
    align-items: center;
}

.home-magazine-copy .section-kicker {
    margin-bottom: .5rem;
}

.home-magazine-copy h2 {
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    margin: .4rem 0 1rem;
    line-height: 1.2;
    color: var(--green-950);
}

.home-magazine-copy p {
    color: var(--muted);
    line-height: 1.7;
    margin-bottom: 1rem;
}

.home-magazine-latest {
    margin: 1.25rem 0;
    padding: 1.1rem 1.2rem;
    background: linear-gradient(135deg, rgba(8,115,72,.06), rgba(8,115,72,.02));
    border-left: 3px solid var(--green-900);
    border-radius: 0 10px 10px 0;
}

.home-magazine-latest .magazine-meta-chip { margin-bottom: .5rem; display: inline-block; }

.home-magazine-latest p { margin: .25rem 0; font-size: .9rem; }

.home-magazine-desc {
    font-size: .84rem !important;
    color: var(--muted) !important;
}

.home-magazine-actions {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
    margin-top: 1.5rem;
}

.home-magazine-covers {
    display: flex;
    gap: 1rem;
    align-items: flex-end;
    justify-content: center;
}

.home-magazine-cover-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .4rem;
    text-decoration: none;
    position: relative;
    transition: transform .18s;
}

.home-magazine-cover-card img {
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0,0,0,.18);
    object-fit: cover;
    display: block;
    width: 120px;
    height: 160px;
    transition: box-shadow .18s;
}

.home-magazine-cover-card.is-main img {
    width: 160px;
    height: 210px;
    box-shadow: 0 12px 36px rgba(0,0,0,.25);
}

.home-magazine-cover-card:hover {
    transform: translateY(-4px);
}

.home-magazine-cover-card:hover img {
    box-shadow: 0 14px 40px rgba(0,0,0,.28);
}

.home-magazine-cover-caption {
    font-size: .66rem;
    color: var(--muted);
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
}

@media (max-width: 900px) {
    .home-magazine-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    .home-magazine-covers {
        justify-content: flex-start;
    }
}

@media (max-width: 600px) {
    .home-magazine-cover-card img { width: 90px; height: 120px; }
    .home-magazine-cover-card.is-main img { width: 120px; height: 160px; }
}

/* ============================================================
   MAGAZINE PAGE — featured section
   ============================================================ */
.magazine-featured-section {
    padding: 4rem 0;
    background: var(--panel);
}

.magazine-featured-grid {
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 3rem;
    align-items: start;
}

.magazine-featured-cover {
    position: relative;
}

.magazine-cover-wrap {
    position: relative;
    display: inline-block;
}

.magazine-cover-img {
    width: 100%;
    max-width: 320px;
    height: auto;
    border-radius: 12px;
    box-shadow: 0 16px 48px rgba(0,0,0,.22);
    display: block;
    object-fit: cover;
}

.magazine-latest-badge {
    position: absolute;
    top: -10px;
    left: -10px;
    background: var(--flag-gold);
    color: var(--green-950);
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
    padding: .28rem .65rem;
    border-radius: 6px;
    box-shadow: 0 2px 8px rgba(0,0,0,.18);
}

.magazine-featured-copy h2 {
    font-size: clamp(1.5rem, 3vw, 2rem);
    margin: .5rem 0 1rem;
    line-height: 1.2;
    color: var(--green-950);
}

.magazine-meta-row {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
    margin-bottom: 1.2rem;
}

.magazine-meta-chip {
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    padding: .22rem .65rem;
    border-radius: 20px;
    background: rgba(8,115,72,.08);
    color: var(--green-900);
    border: 1px solid rgba(8,115,72,.14);
}

.magazine-chip-category {
    background: rgba(179,39,45,.06);
    color: var(--flag-red);
    border-color: rgba(179,39,45,.14);
}

.magazine-chip-latest {
    background: var(--flag-gold);
    color: var(--green-950);
    border-color: var(--flag-gold);
}

.magazine-featured-desc {
    color: var(--muted);
    line-height: 1.75;
    margin-bottom: 1.5rem;
    font-size: .95rem;
}

.magazine-featured-actions {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
    margin-bottom: 1.5rem;
}

.magazine-ministry-stamp {
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: .75rem 1rem;
    background: var(--panel-soft);
    border: 1px solid var(--line);
    border-radius: 10px;
    max-width: 280px;
}

.magazine-ministry-stamp img {
    flex-shrink: 0;
}

.magazine-ministry-stamp span {
    font-size: .74rem;
    font-weight: 600;
    color: var(--muted);
    line-height: 1.3;
}

@media (max-width: 820px) {
    .magazine-featured-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    .magazine-cover-img {
        max-width: 260px;
    }
}

/* ============================================================
   MAGAZINE PAGE — issues grid
   ============================================================ */
.magazine-issues-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.75rem;
    margin-top: 2.5rem;
}

.magazine-issue-card {
    background: var(--panel);
    border-radius: 16px;
    overflow: hidden;
    border: 1.5px solid var(--line);
    box-shadow: var(--shadow-soft);
    transition: box-shadow .2s, transform .18s, border-color .18s;
    display: flex;
    flex-direction: column;
}

.magazine-issue-card:hover {
    box-shadow: 0 18px 46px rgba(17,29,46,.14);
    transform: translateY(-4px);
    border-color: rgba(8,115,72,.2);
}

.magazine-issue-card.is-latest {
    border-color: var(--green-900);
    box-shadow: 0 4px 22px rgba(8,115,72,.12);
}

.magazine-issue-cover-wrap {
    position: relative;
    overflow: hidden;
    aspect-ratio: 3/4;
    background: var(--panel-soft);
}

.magazine-issue-cover {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .25s ease;
}

.magazine-issue-card:hover .magazine-issue-cover {
    transform: scale(1.03);
}

.magazine-issue-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    background: var(--flag-gold);
    color: var(--green-950);
    font-size: .6rem;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
    padding: .25rem .6rem;
    border-radius: 5px;
}

.magazine-issue-body {
    padding: 1.25rem 1.2rem 1.4rem;
    display: flex;
    flex-direction: column;
    gap: .6rem;
    flex: 1;
}

.magazine-issue-meta {
    font-size: .66rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--green-800);
    display: flex;
    gap: .4rem;
    flex-wrap: wrap;
    align-items: center;
}

.magazine-issue-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.35;
    margin: 0;
}

.magazine-issue-desc {
    font-size: .84rem;
    color: var(--muted);
    line-height: 1.6;
    margin: 0;
    flex: 1;
}

.magazine-issue-actions {
    margin-top: .5rem;
}

.btn.btn-sm {
    font-size: .78rem;
    padding: .42rem .9rem;
    border-radius: 8px;
}

.magazine-empty-state {
    grid-column: 1 / -1;
    text-align: center;
    padding: 4rem 2rem;
    background: var(--panel-soft);
    border: 1.5px dashed var(--line);
    border-radius: 16px;
}

.magazine-empty-state h3 {
    margin: .5rem 0 1rem;
    color: var(--ink);
}

@media (max-width: 960px) {
    .magazine-issues-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 580px) {
    .magazine-issues-grid {
        grid-template-columns: 1fr;
    }
    .magazine-issue-cover-wrap {
        aspect-ratio: 4/3;
    }
}

/* ============================================================
   LANGUAGE SWITCHER — improved styling
   ============================================================ */
.language-switcher {
    display: flex;
    align-items: center;
    gap: .35rem;
}

.language-switcher select {
    border: 1px solid rgba(255,255,255,.18);
    background: rgba(255,255,255,.08);
    color: rgba(255,255,255,.88);
    border-radius: 6px;
    padding: .22rem .5rem;
    font-size: .72rem;
    font-family: inherit;
    cursor: pointer;
    outline: none;
    transition: border-color .18s, background .18s;
    appearance: none;
    -webkit-appearance: none;
    padding-right: 1.4rem;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.7)' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right .35rem center;
    background-size: 14px;
}

.language-switcher select:focus,
.language-switcher select:hover {
    border-color: rgba(216,177,30,.6);
    background-color: rgba(255,255,255,.12);
}

.language-switcher button {
    display: flex;
    align-items: center;
    gap: .3rem;
    border: 1px solid rgba(255,255,255,.18);
    background: rgba(255,255,255,.08);
    color: rgba(255,255,255,.88);
    border-radius: 6px;
    padding: .22rem .6rem;
    font-size: .72rem;
    cursor: pointer;
    transition: background .18s, border-color .18s;
    font-family: inherit;
}

.language-switcher button:hover,
.language-switcher button:focus-visible {
    background: rgba(216,177,30,.15);
    border-color: rgba(216,177,30,.5);
    outline: none;
}

/* ============================================================
   MISC IMPROVEMENTS
   ============================================================ */
.btn.btn-primary svg,
.btn.btn-secondary svg {
    display: inline-block;
    vertical-align: middle;
}

/* Ensure hero service links include magazine */
.hero-service-links a:focus-visible {
    outline: 2px solid var(--flag-gold);
    outline-offset: 2px;
    border-radius: 4px;
}

/* ============================================================
   V2 HOME — HERO SLIDER
   ============================================================ */
@keyframes v2HeroProg {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}

.v2-hero {
  position: relative;
  overflow: hidden;
  height: clamp(520px, 78vh, 760px);
  background: var(--green-950);
}

.v2-hero-track { position: relative; width: 100%; height: 100%; }

.v2-slide {
  position: absolute;
  inset: 0;
  background-image: var(--bg);
  background-size: cover;
  background-position: center top;
  opacity: 0;
  transition: opacity .72s ease;
  pointer-events: none;
}
.v2-slide.is-active {
  opacity: 1;
  pointer-events: auto;
}

.v2-slide-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    100deg,
    rgba(6,24,18,.88) 0%,
    rgba(6,24,18,.65) 40%,
    rgba(6,24,18,.25) 100%
  );
}

.v2-slide-inner {
  position: relative;
  z-index: 1;
  height: 100%;
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 2.5rem;
  align-items: center;
  padding-top: 2rem;
  padding-bottom: 2rem;
}

.v2-slide-copy {
  max-width: 640px;
}

.v2-slide-eyebrow {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--flag-gold);
  margin: 0 0 .7rem;
}

.v2-slide-title {
  font-size: clamp(1.8rem, 4.2vw, 3rem);
  font-weight: 800;
  color: #fff;
  line-height: 1.15;
  margin: 0 0 1rem;
  text-shadow: 0 2px 16px rgba(0,0,0,.35);
}

.v2-slide-body {
  font-size: clamp(.88rem, 1.4vw, 1.02rem);
  color: rgba(255,255,255,.82);
  line-height: 1.72;
  margin: 0 0 1.6rem;
  max-width: 520px;
}

.v2-slide-actions {
  display: flex;
  gap: .75rem;
  flex-wrap: wrap;
}

/* Shared button tokens */
.v2-btn {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .7rem 1.5rem;
  border-radius: 8px;
  font-size: .88rem;
  font-weight: 700;
  text-decoration: none;
  border: 2px solid transparent;
  cursor: pointer;
  transition: background .18s, color .18s, border-color .18s, transform .14s, box-shadow .18s;
  white-space: nowrap;
  font-family: inherit;
}
.v2-btn:focus-visible { outline: 2px solid var(--flag-gold); outline-offset: 3px; }

.v2-btn-primary {
  background: var(--green-900);
  color: #fff;
  border-color: var(--green-900);
}
.v2-btn-primary:hover { background: var(--green-800); border-color: var(--green-800); transform: translateY(-1px); box-shadow: 0 6px 18px rgba(8,115,72,.35); }

.v2-btn-ghost {
  background: rgba(255,255,255,.12);
  color: #fff;
  border-color: rgba(255,255,255,.34);
  backdrop-filter: blur(4px);
}
.v2-btn-ghost:hover { background: rgba(255,255,255,.22); border-color: rgba(255,255,255,.6); }

.v2-btn-outline {
  background: transparent;
  color: var(--green-900);
  border-color: var(--green-900);
}
.v2-btn-outline:hover { background: var(--green-900); color: #fff; }

.v2-btn-outline-dark {
  background: transparent;
  color: #fff;
  border-color: rgba(255,255,255,.5);
}
.v2-btn-outline-dark:hover { background: rgba(255,255,255,.12); border-color: #fff; }

.v2-btn-sm { padding: .5rem 1.1rem; font-size: .82rem; }

/* Hero side panel */
.v2-slide-side {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.v2-stat-rail {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .6rem;
}

.v2-stat {
  background: rgba(255,255,255,.1);
  backdrop-filter: blur(6px);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 12px;
  padding: .9rem 1rem;
  display: flex;
  flex-direction: column;
  gap: .2rem;
}

.v2-stat-val {
  font-size: 1.3rem;
  font-weight: 800;
  color: var(--flag-gold);
  line-height: 1;
}

.v2-stat-lbl {
  font-size: .65rem;
  color: rgba(255,255,255,.7);
  font-weight: 500;
  line-height: 1.3;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.v2-quick-panel {
  background: rgba(6,24,18,.72);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(216,177,30,.2);
  border-radius: 14px;
  padding: 1.1rem 1.2rem;
  display: flex;
  flex-direction: column;
  gap: .45rem;
}

.v2-quick-label {
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--flag-gold);
  margin: 0 0 .3rem;
}

.v2-quick-panel a {
  font-size: .82rem;
  color: rgba(255,255,255,.85);
  text-decoration: none;
  padding: .3rem 0;
  border-bottom: 1px solid rgba(255,255,255,.06);
  display: flex;
  align-items: center;
  gap: .4rem;
  transition: color .16s, padding-left .16s;
}
.v2-quick-panel a::before { content: "›"; color: var(--flag-gold); font-weight: 700; }
.v2-quick-panel a:last-child { border-bottom: none; }
.v2-quick-panel a:hover { color: #fff; padding-left: .3rem; }

/* Hero nav buttons */
.v2-hero-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 44px; height: 44px;
  border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,.3);
  background: rgba(6,24,18,.55);
  backdrop-filter: blur(6px);
  color: #fff;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .18s, border-color .18s, transform .16s;
}
.v2-hero-prev { left: 1.2rem; }
.v2-hero-next { right: 1.2rem; }
.v2-hero-btn:hover { background: rgba(6,24,18,.82); border-color: var(--flag-gold); transform: translateY(-50%) scale(1.08); }
.v2-hero-btn:focus-visible { outline: 2px solid var(--flag-gold); outline-offset: 3px; }

/* Hero dots */
.v2-hero-dots {
  position: absolute;
  bottom: 1.3rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  display: flex;
  gap: .55rem;
}

.v2-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  border: none;
  background: rgba(255,255,255,.35);
  cursor: pointer;
  padding: 0;
  transition: background .2s, transform .2s;
}
.v2-dot.is-active { background: var(--flag-gold); transform: scale(1.4); }

/* Hero progress bar */
.v2-hero-progress {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 3px;
  background: rgba(255,255,255,.12);
  z-index: 10;
  overflow: hidden;
}
.v2-hero-progress span {
  display: block;
  height: 100%;
  background: var(--flag-gold);
  transform-origin: left center;
  transform: scaleX(0);
}

@media (max-width: 900px) {
  .v2-slide-inner { grid-template-columns: 1fr; padding-top: 4rem; }
  .v2-slide-side   { display: none; }
  .v2-hero         { height: clamp(460px, 70vh, 620px); }
}

@media (max-width: 580px) {
  .v2-slide-title  { font-size: 1.6rem; }
  .v2-hero-btn     { width: 36px; height: 36px; }
  .v2-slide-actions { flex-direction: column; align-items: flex-start; }
  .v2-btn          { width: 100%; justify-content: center; }
}

/* Latest Information Slider refinements */
.v2-hero {
  min-height: 460px;
  height: clamp(480px, 66vh, 680px);
}

.v2-slide {
  cursor: pointer;
}

.v2-slide-overlay {
  background:
    linear-gradient(90deg, rgba(5,18,14,.94) 0%, rgba(5,28,19,.78) 44%, rgba(5,18,14,.3) 100%),
    linear-gradient(0deg, rgba(0,0,0,.42), rgba(0,0,0,.05) 45%);
}

.v2-slide-inner {
  grid-template-columns: minmax(0, 1fr) minmax(240px, 310px);
}

.v2-slide-copy {
  max-width: 700px;
}

.v2-slide-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .55rem;
  margin: 0 0 .9rem;
}

.v2-slide-badge,
.v2-slide-date {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  border-radius: 999px;
  padding: .38rem .72rem;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .04em;
  line-height: 1.1;
  text-transform: uppercase;
}

.v2-slide-badge {
  background: var(--flag-gold);
  color: #071b13;
  box-shadow: 0 8px 22px rgba(216,177,30,.24);
}

.v2-slide-date {
  background: rgba(255,255,255,.13);
  color: #fff;
  border: 1px solid rgba(255,255,255,.28);
  backdrop-filter: blur(5px);
}

.v2-slide-title {
  max-width: 820px;
}

.v2-slide-body {
  color: rgba(255,255,255,.9);
  max-width: 640px;
}

.v2-info-panel {
  background: rgba(5,22,16,.78);
  border: 1px solid rgba(216,177,30,.32);
  border-radius: 8px;
  box-shadow: 0 18px 44px rgba(0,0,0,.22);
  backdrop-filter: blur(8px);
  padding: 1.1rem 1.15rem;
  display: grid;
  gap: .28rem;
  color: #fff;
}

.v2-info-panel strong {
  font-size: 1rem;
  line-height: 1.25;
}

.v2-info-panel span:last-child {
  color: rgba(255,255,255,.76);
  font-size: .84rem;
}

.v2-info-kicker {
  color: var(--flag-gold);
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.v2-stat-rail {
  grid-template-columns: 1fr;
}

.v2-stat {
  border-radius: 8px;
}

.v2-dot {
  width: 28px;
  height: 4px;
  border-radius: 999px;
}

.v2-dot.is-active {
  transform: none;
}

@media (max-width: 900px) {
  .v2-hero {
    min-height: 430px;
    height: clamp(430px, 58vh, 560px);
  }
  .v2-slide-inner {
    padding-top: 2.2rem;
    padding-bottom: 3.7rem;
  }
}

@media (max-width: 580px) {
  .v2-hero {
    min-height: 390px;
    height: auto;
  }
  .v2-slide {
    min-height: 390px;
  }
  .v2-slide-inner {
    min-height: 390px;
    align-items: center;
    padding: 2.1rem 1.2rem 4rem;
  }
  .v2-slide-title {
    font-size: 1.48rem;
    line-height: 1.18;
    margin-bottom: .75rem;
  }
  .v2-slide-body {
    font-size: .9rem;
    line-height: 1.55;
    margin-bottom: 1.1rem;
  }
  .v2-slide-badge,
  .v2-slide-date {
    min-height: 28px;
    font-size: .64rem;
    padding: .32rem .58rem;
  }
  .v2-hero-prev { left: .55rem; }
  .v2-hero-next { right: .55rem; }
  .v2-hero-dots {
    bottom: .95rem;
  }
  .v2-dot {
    width: 22px;
  }
}

/* ============================================================
   V2 HOME — PROTOCOL HIERARCHY SECTION
   ============================================================ */
.v2-protocol-section {
  background: linear-gradient(90deg, var(--green-950) 0%, #0c3d28 50%, var(--green-950) 100%);
  border-bottom: 3px solid var(--flag-gold);
  padding: 1.6rem 0;
}

.v2-protocol-inner {
  display: flex;
  align-items: center;
  gap: 2rem;
  flex-wrap: wrap;
}

.v2-protocol-label {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-shrink: 0;
}

.v2-proto-kicker {
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--flag-gold);
  white-space: nowrap;
}

.v2-proto-rule {
  display: block;
  width: 1px;
  height: 40px;
  background: rgba(216,177,30,.25);
}

.v2-proto-list {
  list-style: none;
  margin: 0; padding: 0;
  display: flex;
  align-items: center;
  gap: .25rem;
  flex: 1;
  flex-wrap: wrap;
}

.v2-proto-item {
  display: flex;
  align-items: center;
  gap: .25rem;
}

.v2-proto-card {
  display: flex;
  align-items: center;
  gap: .85rem;
  padding: .6rem 1rem;
  border-radius: 12px;
  text-decoration: none;
  transition: background .18s;
  border: 1px solid transparent;
}
.v2-proto-card:hover { background: rgba(255,255,255,.07); border-color: rgba(216,177,30,.2); }
.v2-proto-card:focus-visible { outline: 2px solid var(--flag-gold); outline-offset: 2px; border-radius: 10px; }

.v2-proto-rank {
  width: 24px; height: 24px;
  border-radius: 50%;
  background: var(--flag-gold);
  color: var(--green-950);
  font-size: .65rem;
  font-weight: 800;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}

.v2-proto-avatar {
  width: 52px; height: 52px;
  border-radius: 50%;
  overflow: hidden;
  border: 2.5px solid rgba(216,177,30,.45);
  flex-shrink: 0;
}
.v2-proto-avatar img {
  width: 52px; height: 52px;
  object-fit: cover; display: block;
}

.v2-proto-copy {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.v2-proto-role {
  font-size: .58rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: rgba(255,255,255,.52);
  font-weight: 500;
  line-height: 1.2;
  max-width: 180px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.v2-proto-name {
  font-size: .88rem;
  font-weight: 700;
  color: #fff;
  line-height: 1.25;
  display: block;
}

.v2-proto-summary {
  font-size: .7rem;
  color: rgba(255,255,255,.5);
  line-height: 1.3;
  max-width: 200px;
  display: none; /* shown wider below */
}

.v2-proto-connector {
  font-size: 1.4rem;
  color: rgba(216,177,30,.35);
  font-weight: 300;
  padding: 0 .1rem;
}

.v2-proto-cta {
  margin-left: auto;
  flex-shrink: 0;
  font-size: .72rem;
  font-weight: 700;
  color: var(--flag-gold);
  text-decoration: none;
  padding: .35rem .8rem;
  border: 1px solid rgba(216,177,30,.3);
  border-radius: 6px;
  white-space: nowrap;
  transition: background .18s, color .18s;
}
.v2-proto-cta:hover { background: var(--flag-gold); color: var(--green-950); }

@media (min-width: 1100px) {
  .v2-proto-summary { display: block; }
}

@media (max-width: 820px) {
  .v2-protocol-inner { overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; gap: 1rem; padding-bottom: .4rem; }
  .v2-protocol-inner::-webkit-scrollbar { display: none; }
  .v2-proto-rule { display: none; }
  .v2-proto-role { display: none; }
  .v2-proto-cta { display: none; }
}

/* ============================================================
   V2 HOME — QUICK ACCESS SECTION
   ============================================================ */
.v2-qa-section {
  padding: 3.5rem 0;
  background: #fff;
}

.v2-section-head {
  text-align: center;
  margin-bottom: 2.2rem;
}
.v2-section-head h2 {
  font-size: clamp(1.4rem, 3vw, 2rem);
  color: var(--green-950);
  margin: .35rem 0 .6rem;
  font-weight: 800;
}
.v2-section-head p {
  color: var(--muted);
  max-width: 560px;
  margin: 0 auto;
  line-height: 1.7;
}
.v2-section-head--left { text-align: left; }
.v2-section-head--left p { margin: 0; }
.v2-section-head--light h2 { color: #fff; }
.v2-section-head--light p  { color: rgba(255,255,255,.75); }

.v2-kicker {
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--green-900);
  margin: 0;
}
.v2-kicker--light { color: var(--flag-gold); }

.v2-mini-kicker {
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--green-800);
  margin: 0 0 .3rem;
}

.v2-qa-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 1rem;
}

.v2-qa-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .5rem;
  padding: 1.5rem 1.1rem 1.2rem;
  border: 1.5px solid var(--line);
  border-radius: 16px;
  text-decoration: none;
  color: var(--ink);
  background: #fff;
  overflow: hidden;
  transition: border-color .18s, box-shadow .2s, transform .16s;
}
.v2-qa-card:hover { border-color: var(--green-800); box-shadow: 0 8px 26px rgba(8,115,72,.12); transform: translateY(-4px); }
.v2-qa-card:focus-visible { outline: 2px solid var(--green-900); outline-offset: 3px; border-radius: 14px; }

.v2-qa-icon {
  width: 48px; height: 48px;
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  transition: background .18s;
}
.v2-qa-icon--green { background: rgba(8,115,72,.1);  color: var(--green-900); }
.v2-qa-icon--blue  { background: rgba(29,75,196,.1); color: #1d4bc4; }
.v2-qa-icon--gold  { background: rgba(216,177,30,.12); color: #9e7d00; }
.v2-qa-icon--red   { background: rgba(179,39,45,.1); color: var(--flag-red); }
.v2-qa-icon--olive { background: rgba(156,163,37,.12); color: #686b16; }
.v2-qa-icon--dark  { background: rgba(29,36,49,.08); color: var(--ink); }

.v2-qa-card:hover .v2-qa-icon--green { background: rgba(8,115,72,.16); }
.v2-qa-card:hover .v2-qa-icon--blue  { background: rgba(29,75,196,.16); }
.v2-qa-card:hover .v2-qa-icon--gold  { background: rgba(216,177,30,.2);  }
.v2-qa-card:hover .v2-qa-icon--red   { background: rgba(179,39,45,.16); }
.v2-qa-card:hover .v2-qa-icon--olive { background: rgba(156,163,37,.2); }
.v2-qa-card:hover .v2-qa-icon--dark  { background: rgba(29,36,49,.14); }

.v2-qa-title {
  font-size: .88rem;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.3;
}

.v2-qa-sub {
  font-size: .72rem;
  color: var(--muted);
  line-height: 1.3;
  flex: 1;
}

.v2-qa-arrow {
  font-size: .9rem;
  color: var(--green-900);
  opacity: 0;
  transition: opacity .18s, transform .18s;
}
.v2-qa-card:hover .v2-qa-arrow { opacity: 1; transform: translateX(3px); }

@media (max-width: 1100px) { .v2-qa-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px)  { .v2-qa-grid { grid-template-columns: repeat(2, 1fr); gap: .75rem; } }

/* ============================================================
   V2 HOME — DEPARTMENTS SECTION
   ============================================================ */
.v2-dept-section {
  padding: 4rem 0;
  background: linear-gradient(160deg, var(--green-950) 0%, #0f3d28 100%);
}

.v2-dept-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
}

.v2-dept-card {
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 18px;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  transition: background .2s, border-color .2s, transform .18s;
  position: relative;
  overflow: hidden;
}
.v2-dept-card::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--flag-gold), var(--green-700));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s ease;
}
.v2-dept-card:hover { background: rgba(255,255,255,.11); border-color: rgba(216,177,30,.3); transform: translateY(-4px); }
.v2-dept-card:hover::before { transform: scaleX(1); }

.v2-dept-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
}

.v2-dept-hod {
  display: flex;
  align-items: center;
  gap: .65rem;
}

.v2-dept-hod-photo {
  width: 52px; height: 52px;
  border-radius: 50%;
  object-fit: cover;
  border: 2.5px solid rgba(216,177,30,.5);
  flex-shrink: 0;
}

.v2-dept-hod-info {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.v2-dept-hod-badge {
  font-size: .55rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--flag-gold);
  background: rgba(216,177,30,.12);
  border: 1px solid rgba(216,177,30,.2);
  border-radius: 4px;
  padding: .12rem .4rem;
  display: inline-block;
  margin-bottom: .15rem;
}

.v2-dept-hod-info strong {
  font-size: .78rem;
  font-weight: 700;
  color: #fff;
  line-height: 1.2;
}

.v2-dept-hod-info span {
  font-size: .65rem;
  color: rgba(255,255,255,.85);
  line-height: 1.3;
  max-width: 140px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.v2-dept-number {
  font-size: 2.2rem;
  font-weight: 900;
  color: rgba(216,177,30,.18);
  line-height: 1;
  flex-shrink: 0;
  letter-spacing: -.04em;
}

.v2-dept-body h3 {
  font-size: .92rem;
  font-weight: 700;
  color: #fff;
  line-height: 1.35;
  margin: .2rem 0 .4rem;
}

.v2-dept-body p {
  font-size: .78rem;
  color: rgba(255,255,255,.88);
  line-height: 1.6;
  margin: 0;
}

.v2-dept-list {
  list-style: none;
  margin: 0; padding: 0;
  display: flex;
  flex-direction: column;
  gap: .35rem;
  flex: 1;
}

.v2-dept-list li {
  font-size: .74rem;
  color: rgba(255,255,255,.9);
  padding-left: 1.1rem;
  position: relative;
  line-height: 1.45;
}
.v2-dept-list li::before {
  content: "";
  position: absolute;
  left: 0; top: .55em;
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--flag-gold);
  opacity: .7;
}

.v2-dept-link {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  font-size: .8rem;
  font-weight: 700;
  color: var(--flag-gold);
  text-decoration: none;
  padding-top: .5rem;
  border-top: 1px solid rgba(255,255,255,.08);
  margin-top: auto;
  transition: gap .18s;
}
.v2-dept-link:hover { gap: .55rem; }

.v2-cta-row {
  text-align: center;
  margin-top: 2.2rem;
}

@media (max-width: 1100px) { .v2-dept-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .v2-dept-grid { grid-template-columns: 1fr; } }

/* ============================================================
   V2 HOME — MAGAZINE + NEWS SPLIT
   ============================================================ */
.v2-split-section {
  padding: 4rem 0;
  background: #fff;
}

.v2-split-grid {
  display: grid;
  grid-template-columns: 1fr 1px 1.5fr;
  gap: 3rem;
  align-items: start;
}

.v2-split-divider {
  background: var(--line);
  align-self: stretch;
}

/* Magazine */
.v2-mag-feature {
  margin-top: 1.5rem;
}

.v2-mag-cover-link {
  display: inline-block;
  position: relative;
  margin-bottom: 1rem;
}

.v2-mag-cover {
  display: block;
  width: 200px;
  height: auto;
  border-radius: 10px;
  box-shadow: 0 12px 36px rgba(0,0,0,.2);
  object-fit: cover;
  transition: transform .22s, box-shadow .22s;
}
.v2-mag-cover-link:hover .v2-mag-cover { transform: translateY(-4px); box-shadow: 0 18px 44px rgba(0,0,0,.28); }

.v2-mag-badge {
  position: absolute;
  top: -8px; right: -8px;
  background: var(--flag-gold);
  color: var(--green-950);
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
  padding: .24rem .6rem;
  border-radius: 5px;
  box-shadow: 0 2px 8px rgba(0,0,0,.18);
}

.v2-mag-meta {
  display: flex;
  gap: .4rem;
  margin-bottom: .6rem;
}

.v2-mag-chip {
  font-size: .64rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  padding: .2rem .6rem;
  border-radius: 20px;
  background: rgba(8,115,72,.08);
  color: var(--green-900);
  border: 1px solid rgba(8,115,72,.14);
}

.v2-mag-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.35;
  margin: 0 0 .5rem;
}

.v2-mag-desc {
  font-size: .82rem;
  color: var(--muted);
  line-height: 1.65;
  margin: 0 0 1rem;
}

.v2-mag-actions {
  display: flex;
  gap: .6rem;
  flex-wrap: wrap;
}

/* News */
.v2-news-stack {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 1.5rem;
}

.v2-news-item {
  display: grid;
  grid-template-columns: 88px 1fr;
  gap: .85rem;
  padding: .95rem 0;
  border-bottom: 1px solid var(--line);
  align-items: start;
}
.v2-news-item:first-child { border-top: 1px solid var(--line); }

.v2-news-thumb {
  display: block;
  border-radius: 8px;
  overflow: hidden;
  flex-shrink: 0;
}
.v2-news-thumb img {
  display: block;
  width: 88px; height: 66px;
  object-fit: cover;
  transition: transform .22s;
}
.v2-news-thumb:hover img { transform: scale(1.04); }

.v2-news-copy {
  display: flex;
  flex-direction: column;
  gap: .25rem;
}

.v2-news-cat {
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--green-800);
}

.v2-news-copy h3 {
  font-size: .86rem;
  font-weight: 700;
  line-height: 1.35;
  margin: 0;
  color: var(--ink);
}

.v2-news-copy h3 a {
  color: inherit;
  text-decoration: none;
  transition: color .16s;
}
.v2-news-copy h3 a:hover { color: var(--green-900); }

.v2-news-date {
  font-size: .66rem;
  color: var(--muted);
}

@media (max-width: 980px) {
  .v2-split-grid { grid-template-columns: 1fr; }
  .v2-split-divider { height: 1px; width: 100%; }
}

/* ============================================================
   V2 HOME — SERVICES SECTION
   ============================================================ */
.v2-services-section {
  padding: 4rem 0;
  background: var(--panel-soft);
}

.v2-services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
}

.v2-service-card {
  background: #fff;
  border: 1.5px solid var(--line);
  border-radius: 16px;
  overflow: hidden;
  transition: border-color .18s, box-shadow .18s;
}
.v2-service-card:hover { border-color: rgba(8,115,72,.22); box-shadow: 0 6px 20px rgba(8,115,72,.08); }

.v2-service-card summary {
  padding: 1.4rem 1.3rem 1.2rem;
  cursor: pointer;
  list-style: none;
  position: relative;
}
.v2-service-card summary::-webkit-details-marker { display: none; }

.v2-service-kicker {
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--green-800);
  display: block;
  margin-bottom: .35rem;
}

.v2-service-card summary h3 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 .45rem;
  padding-right: 2rem;
  line-height: 1.3;
}

.v2-service-card summary p {
  font-size: .82rem;
  color: var(--muted);
  line-height: 1.65;
  margin: 0;
}

.v2-service-toggle {
  position: absolute;
  top: 1.3rem;
  right: 1.1rem;
  width: 28px; height: 28px;
  border-radius: 50%;
  background: rgba(8,115,72,.08);
  display: flex; align-items: center; justify-content: center;
  color: var(--green-900);
  transition: background .18s, transform .22s;
}

.v2-service-card[open] .v2-service-toggle {
  background: var(--green-900);
  color: #fff;
  transform: rotate(180deg);
}

.v2-service-list {
  list-style: none;
  margin: 0;
  padding: 0 1.3rem 1rem;
  display: flex;
  flex-direction: column;
  gap: .35rem;
}

.v2-service-list li {
  font-size: .8rem;
  color: var(--ink);
  padding-left: 1.1rem;
  position: relative;
  line-height: 1.5;
}
.v2-service-list li::before {
  content: "";
  position: absolute;
  left: 0; top: .58em;
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--green-900);
  opacity: .55;
}

.v2-service-link {
  display: block;
  padding: .75rem 1.3rem;
  font-size: .8rem;
  font-weight: 700;
  color: var(--green-900);
  text-decoration: none;
  border-top: 1px solid var(--line);
  background: rgba(8,115,72,.03);
  transition: background .18s, color .18s;
}
.v2-service-link:hover { background: var(--green-900); color: #fff; }

@media (max-width: 900px)  { .v2-services-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 580px)  { .v2-services-grid { grid-template-columns: 1fr; } }

/* ============================================================
   MISC GLOBAL HELPERS
   ============================================================ */
.v2-mag-empty {
  padding: 2rem;
  border: 1.5px dashed var(--line);
  border-radius: 12px;
  text-align: center;
}
.v2-mag-empty p { color: var(--muted); margin: 0 0 1rem; font-size: .88rem; }

/* ============================================================
   ABOUT PAGE — AB- DESIGN SYSTEM
   ============================================================ */

/* ── Shared section base ─────────────────────────────────── */
.ab-section {
  padding: 5rem 0;
}

/* ── Kicker (eyebrow label) ──────────────────────────────── */
.ab-kicker {
  display: inline-block;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--green-800);
  margin-bottom: .6rem;
}
.ab-kicker--light { color: var(--flag-gold); }

/* ── Section heading layout ──────────────────────────────── */
.ab-section-head {
  margin-bottom: 3rem;
}
.ab-section-head h2 {
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  font-weight: 800;
  color: var(--ink);
  margin: 0 0 .6rem;
  line-height: 1.18;
}
.ab-section-head p {
  color: var(--muted);
  font-size: .94rem;
  max-width: 60ch;
  line-height: 1.7;
  margin: 0;
}
.ab-section-head--center { text-align: center; }
.ab-section-head--center p { margin-inline: auto; }
.ab-section-head--split {
  display: flex;
  align-items: flex-start;
  gap: 3rem;
  flex-wrap: wrap;
}
.ab-section-head--split > div { flex: 0 0 auto; }
.ab-section-head--split .ab-section-sub {
  flex: 1 1 320px;
  color: var(--muted);
  font-size: .94rem;
  line-height: 1.7;
  margin: auto 0 0;
  max-width: 56ch;
}

/* ── Reveal animation (data-ab-reveal) ───────────────────── */
[data-ab-reveal] {
  opacity: 0;
  transform: translateY(22px);
  transition:
    opacity .55s ease var(--ab-delay, 0ms),
    transform .55s ease var(--ab-delay, 0ms);
}
[data-ab-reveal].ab-revealed {
  opacity: 1;
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  [data-ab-reveal] { opacity: 1; transform: none; transition: none; }
}

/* ============================================================
   AB SUBNAV — sticky in-page anchor navigation
   ============================================================ */
.ab-subnav {
  position: sticky;
  top: 0;
  z-index: 120;
  background: #fff;
  border-bottom: 2px solid var(--line);
  transition: box-shadow .2s;
}
.ab-subnav.is-scrolled {
  box-shadow: 0 4px 24px rgba(0,0,0,.10);
}

.ab-subnav-inner {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  height: 52px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.ab-subnav-inner::-webkit-scrollbar { display: none; }

.ab-subnav-label {
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted);
  white-space: nowrap;
  flex-shrink: 0;
  display: none;
}

.ab-subnav-links {
  display: flex;
  align-items: center;
  gap: .1rem;
  flex-shrink: 0;
}
.ab-subnav-links a {
  display: block;
  padding: .4rem .85rem;
  font-size: .76rem;
  font-weight: 700;
  color: var(--muted);
  text-decoration: none;
  white-space: nowrap;
  border-radius: 6px;
  transition: color .16s, background .16s;
}
.ab-subnav-links a:hover { color: var(--green-900); background: rgba(8,115,72,.06); }
.ab-subnav-links a.is-active { color: var(--green-900); background: rgba(8,115,72,.09); }

@media (min-width: 780px) {
  .ab-subnav-label { display: block; }
}

/* ============================================================
   AB HERO — static banner
   ============================================================ */
.ab-hero {
  position: relative;
  min-height: 420px;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}

.ab-hero-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center 30%;
  transform: scale(1.04);
  transition: transform 8s ease;
}
.ab-hero:hover .ab-hero-bg { transform: scale(1); }

.ab-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    160deg,
    rgba(4,36,22,.82) 0%,
    rgba(4,36,22,.55) 55%,
    rgba(4,36,22,.70) 100%
  );
}

.ab-hero-inner {
  position: relative;
  z-index: 2;
  padding-top: 3rem;
  padding-bottom: 0;
  width: 100%;
}

.ab-hero-breadcrumb {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin-bottom: 1.4rem;
  font-size: .74rem;
  color: rgba(255,255,255,.6);
}
.ab-hero-breadcrumb a {
  color: rgba(255,255,255,.7);
  text-decoration: none;
  transition: color .16s;
}
.ab-hero-breadcrumb a:hover { color: #fff; }
.ab-hero-breadcrumb span[aria-hidden] { opacity: .4; }

.ab-hero-copy { max-width: 760px; }

.ab-hero-eyebrow {
  display: inline-block;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--flag-gold);
  margin-bottom: .7rem;
  padding: .2rem .7rem;
  border: 1px solid rgba(220,170,40,.35);
  border-radius: 4px;
}

.ab-hero-copy h1 {
  font-size: clamp(2rem, 5vw, 3.2rem);
  font-weight: 900;
  color: #fff;
  line-height: 1.08;
  margin: 0 0 1rem;
  text-shadow: 0 2px 16px rgba(0,0,0,.3);
}

.ab-hero-lead {
  font-size: clamp(.88rem, 1.5vw, 1rem);
  color: rgba(255,255,255,.82);
  line-height: 1.72;
  max-width: 68ch;
  margin: 0;
}

/* Hero stats strip */
.ab-hero-stats {
  display: flex;
  align-items: center;
  gap: 0;
  margin-top: 2.4rem;
  background: rgba(0,0,0,.32);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-radius: 12px 12px 0 0;
  overflow: hidden;
  flex-wrap: nowrap;
}

.ab-hero-stat {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 1.1rem .8rem;
  text-align: center;
}

.ab-hero-stat-val {
  font-size: 1.7rem;
  font-weight: 900;
  color: var(--flag-gold);
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.ab-hero-stat-lbl {
  font-size: .65rem;
  font-weight: 600;
  color: rgba(255,255,255,.65);
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-top: .3rem;
}

.ab-hero-stat-div {
  width: 1px;
  height: 40px;
  background: rgba(255,255,255,.15);
  flex-shrink: 0;
}

@media (max-width: 600px) {
  .ab-hero { min-height: 340px; }
  .ab-hero-stat-div { display: none; }
  .ab-hero-stats { flex-wrap: wrap; }
  .ab-hero-stat { flex: 0 0 50%; border: none; }
}

/* ============================================================
   AB OVERVIEW
   ============================================================ */
.ab-overview {
  background: #fff;
}

.ab-overview-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4.5rem;
  align-items: start;
}

.ab-overview-copy .ab-kicker { margin-bottom: .5rem; }

.ab-overview-copy h2 {
  font-size: clamp(1.6rem, 3vw, 2.1rem);
  font-weight: 800;
  color: var(--ink);
  margin: 0 0 1.4rem;
  line-height: 1.18;
}

.ab-overview-paras {
  display: flex;
  flex-direction: column;
  gap: .9rem;
}
.ab-overview-paras p {
  font-size: .94rem;
  line-height: 1.75;
  color: var(--muted);
  margin: 0;
}

.ab-overview-actions {
  display: flex;
  gap: .8rem;
  flex-wrap: wrap;
  margin-top: 2rem;
}

.ab-overview-img-wrap {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(0,0,0,.13);
}

.ab-overview-img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 4/3;
  object-fit: cover;
}

.ab-overview-img-badge {
  position: absolute;
  bottom: 1rem;
  left: 1rem;
  display: flex;
  align-items: center;
  gap: .55rem;
  background: rgba(255,255,255,.95);
  padding: .45rem .8rem .45rem .55rem;
  border-radius: 50px;
  box-shadow: 0 4px 16px rgba(0,0,0,.12);
}
.ab-overview-img-badge img { border-radius: 50%; }
.ab-overview-img-badge span {
  font-size: .72rem;
  font-weight: 800;
  color: var(--green-900);
  text-transform: uppercase;
  letter-spacing: .06em;
}

.ab-overview-pull {
  margin-top: 1.5rem;
}

.ab-pull-quote {
  margin: 0;
  padding: 1.1rem 1.2rem 1.1rem 1.4rem;
  border-left: 4px solid var(--flag-gold);
  background: var(--panel-soft);
  border-radius: 0 10px 10px 0;
}
.ab-pull-quote p {
  font-size: .94rem;
  font-style: italic;
  color: var(--ink);
  line-height: 1.65;
  margin: 0 0 .5rem;
}
.ab-pull-quote cite {
  font-size: .7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--green-800);
  font-style: normal;
}

@media (max-width: 900px) {
  .ab-overview-grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
}

/* ============================================================
   AB VISION & MISSION
   ============================================================ */
.ab-vm-section {
  background: var(--green-900);
  color: #fff;
}
.ab-vm-section .ab-section-head h2 { color: #fff; }
.ab-vm-section .ab-section-head p { color: rgba(255,255,255,.65); }

.ab-vm-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  margin-top: 0;
}

.ab-vm-card {
  position: relative;
  border-radius: 18px;
  padding: 2.4rem 2.2rem;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.ab-vm-vision {
  background: rgba(255,255,255,.06);
  border: 1.5px solid rgba(255,255,255,.12);
}
.ab-vm-mission {
  background: rgba(220,170,40,.1);
  border: 1.5px solid rgba(220,170,40,.2);
}

.ab-vm-icon {
  width: 60px;
  height: 60px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--flag-gold);
  background: rgba(220,170,40,.12);
  margin-bottom: 1.4rem;
}

.ab-vm-label {
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--flag-gold);
  margin: 0 0 .4rem;
}

.ab-vm-card h3 {
  font-size: 1.45rem;
  font-weight: 800;
  color: #fff;
  margin: 0 0 1rem;
  line-height: 1.2;
}

.ab-vm-text {
  font-size: .94rem;
  color: rgba(255,255,255,.78);
  line-height: 1.72;
  margin: 0;
  flex: 1;
}

.ab-vm-accent {
  position: absolute;
  bottom: -40px;
  right: -30px;
  width: 150px;
  height: 150px;
  border-radius: 50%;
  background: rgba(220,170,40,.07);
  pointer-events: none;
}

@media (max-width: 720px) {
  .ab-vm-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   AB CORE VALUES
   ============================================================ */
.ab-values-section {
  background: var(--panel-soft);
}

.ab-values-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
}

.ab-value-card {
  position: relative;
  background: #fff;
  border: 1.5px solid var(--line);
  border-radius: 16px;
  padding: 1.8rem 1.6rem 1.6rem;
  overflow: hidden;
  transition: border-color .18s, box-shadow .18s, transform .22s;
}
.ab-value-card:hover {
  border-color: rgba(8,115,72,.22);
  box-shadow: 0 8px 30px rgba(8,115,72,.09);
  transform: translateY(-3px);
}

.ab-value-icon {
  width: 50px;
  height: 50px;
  border-radius: 12px;
  background: rgba(8,115,72,.08);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--green-900);
  margin-bottom: 1.1rem;
  transition: background .18s, color .18s;
}
.ab-value-card:hover .ab-value-icon {
  background: var(--green-900);
  color: #fff;
}

.ab-value-title {
  font-size: 1rem;
  font-weight: 800;
  color: var(--ink);
  margin: 0 0 .55rem;
  line-height: 1.25;
}

.ab-value-body {
  font-size: .83rem;
  color: var(--muted);
  line-height: 1.68;
  margin: 0;
}

.ab-value-num {
  position: absolute;
  bottom: .8rem;
  right: 1rem;
  font-size: 3.2rem;
  font-weight: 900;
  color: rgba(8,115,72,.04);
  line-height: 1;
  pointer-events: none;
  user-select: none;
  font-variant-numeric: tabular-nums;
}

@media (max-width: 900px) { .ab-values-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .ab-values-grid { grid-template-columns: 1fr; } }

/* ============================================================
   AB MANDATE
   ============================================================ */
.ab-mandate-section {
  background: var(--green-900);
  color: #fff;
}

.ab-mandate-grid {
  display: grid;
  grid-template-columns: 420px 1fr;
  gap: 4rem;
  align-items: start;
}

.ab-mandate-intro .ab-kicker { color: var(--flag-gold); }

.ab-mandate-intro h2 {
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  font-weight: 800;
  color: #fff;
  margin: 0 0 1rem;
  line-height: 1.18;
}

.ab-mandate-intro p {
  font-size: .93rem;
  color: rgba(255,255,255,.7);
  line-height: 1.72;
  max-width: 40ch;
  margin: 0 0 1.6rem;
}

.ab-mandate-img {
  width: 100%;
  border-radius: 14px;
  display: block;
  object-fit: cover;
  opacity: .85;
  margin-top: .5rem;
}

.ab-mandate-cards {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.ab-mandate-card {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 14px;
  padding: 1.4rem 1.6rem;
  display: flex;
  align-items: flex-start;
  gap: 1.2rem;
  transition: background .2s, border-color .2s;
}
.ab-mandate-card:hover {
  background: rgba(255,255,255,.1);
  border-color: rgba(220,170,40,.3);
}

.ab-mandate-num {
  font-size: 1.4rem;
  font-weight: 900;
  color: var(--flag-gold);
  opacity: .45;
  flex-shrink: 0;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  margin-top: .15rem;
}

.ab-mandate-body { flex: 1; }
.ab-mandate-body h3 {
  font-size: 1rem;
  font-weight: 800;
  color: #fff;
  margin: 0 0 .35rem;
}
.ab-mandate-body p {
  font-size: .83rem;
  color: rgba(255,255,255,.65);
  line-height: 1.6;
  margin: 0;
}

.ab-mandate-link {
  display: block;
  font-size: .76rem;
  font-weight: 700;
  color: var(--flag-gold);
  text-decoration: none;
  margin-top: .6rem;
  transition: opacity .16s;
}
.ab-mandate-link:hover { opacity: .7; }

@media (max-width: 960px) {
  .ab-mandate-grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
  .ab-mandate-intro p { max-width: none; }
  .ab-mandate-img { max-height: 260px; object-position: center 40%; }
}

/* ============================================================
   AB TIMELINE
   ============================================================ */
.ab-timeline-section {
  background: #fff;
}

.ab-timeline {
  display: flex;
  flex-direction: column;
  gap: 0;
  max-width: 800px;
  margin: 0 auto;
}

.ab-tl-item {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 0 1.4rem;
}

.ab-tl-marker {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
}

.ab-tl-dot {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--green-900);
  border: 3px solid #fff;
  box-shadow: 0 0 0 3px rgba(8,115,72,.22);
  flex-shrink: 0;
  margin-top: .25rem;
  position: relative;
  z-index: 1;
}

.ab-tl-line {
  width: 2px;
  flex: 1;
  background: linear-gradient(to bottom, rgba(8,115,72,.25), rgba(8,115,72,.06));
  min-height: 2rem;
}

.ab-tl-content {
  padding-bottom: 2.4rem;
}

.ab-tl-year {
  display: inline-block;
  font-size: .66rem;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #fff;
  background: var(--green-900);
  padding: .18rem .65rem;
  border-radius: 4px;
  margin-bottom: .65rem;
}

.ab-tl-content h3 {
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--ink);
  margin: 0 0 .45rem;
  line-height: 1.3;
}

.ab-tl-content p {
  font-size: .88rem;
  color: var(--muted);
  line-height: 1.7;
  margin: 0;
}

/* ============================================================
   AB LEADERSHIP STATEMENTS
   ============================================================ */
.ab-leaders-section {
  background: var(--green-900);
  color: #fff;
}
.ab-leaders-section .ab-section-head h2 { color: #fff; }
.ab-leaders-section .ab-section-head p { color: rgba(255,255,255,.6); max-width: 56ch; margin-inline: auto; }

.ab-statements-grid {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.ab-statement-card {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 2rem;
  align-items: start;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 18px;
  padding: 2rem;
  transition: background .2s;
}
.ab-statement-card:hover { background: rgba(255,255,255,.08); }

.ab-statement-portrait {
  position: relative;
  flex-shrink: 0;
}
.ab-statement-portrait img {
  width: 120px;
  height: 148px;
  object-fit: cover;
  border-radius: 12px;
  display: block;
  border: 2px solid rgba(220,170,40,.3);
}

.ab-statement-badge {
  position: absolute;
  bottom: -8px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--flag-gold);
  color: var(--green-900);
  font-size: .6rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .06em;
  padding: .22rem .65rem;
  border-radius: 50px;
  white-space: nowrap;
}

.ab-statement-role {
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--flag-gold);
  margin: 0 0 .3rem;
}

.ab-statement-body h3 {
  font-size: 1.15rem;
  font-weight: 800;
  color: #fff;
  margin: 0 0 1rem;
}

.ab-statement-quote {
  margin: 0;
  padding: 1rem 1.1rem;
  border-left: 3px solid rgba(220,170,40,.4);
  background: rgba(255,255,255,.04);
  border-radius: 0 8px 8px 0;
}
.ab-statement-quote p {
  font-size: .9rem;
  color: rgba(255,255,255,.78);
  line-height: 1.72;
  margin: 0;
  font-style: italic;
}

.ab-leaders-cta {
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 2.5rem;
}

@media (max-width: 640px) {
  .ab-statement-card {
    grid-template-columns: 1fr;
    gap: 1.2rem;
  }
  .ab-statement-portrait { text-align: center; }
  .ab-statement-portrait img { margin: 0 auto; }
}

/* ============================================================
   AB STRATEGY
   ============================================================ */
.ab-strategy-section {
  background: var(--green-900);
  color: #fff;
  padding-bottom: 0;
}

.ab-strategy-grid {
  display: grid;
  grid-template-columns: 1fr 460px;
  gap: 4rem;
  align-items: start;
  padding-bottom: 4rem;
}

.ab-strategy-main .ab-kicker { color: var(--flag-gold); }
.ab-strategy-main h2 {
  font-size: clamp(1.6rem, 3vw, 2.1rem);
  font-weight: 800;
  color: #fff;
  margin: 0 0 1rem;
  line-height: 1.18;
}

.ab-strategy-lead {
  font-size: .94rem;
  color: rgba(255,255,255,.72);
  line-height: 1.72;
  margin: 0 0 2rem;
  max-width: 56ch;
}

.ab-strategy-pillars {
  display: flex;
  flex-direction: column;
  gap: .9rem;
}

.ab-strategy-pillar {
  display: flex;
  align-items: center;
  gap: 1rem;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px;
  padding: .9rem 1.1rem;
  transition: background .18s;
}
.ab-strategy-pillar:hover { background: rgba(255,255,255,.09); }

.ab-strategy-pillar-icon {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  background: rgba(220,170,40,.12);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--flag-gold);
  flex-shrink: 0;
}

.ab-strategy-pillar > div {
  display: flex;
  flex-direction: column;
  gap: .15rem;
}
.ab-strategy-pillar strong {
  font-size: .9rem;
  font-weight: 800;
  color: #fff;
}
.ab-strategy-pillar span {
  font-size: .78rem;
  color: rgba(255,255,255,.6);
}

/* Strategy aside */
.ab-strategy-aside {
  display: flex;
  flex-direction: column;
  gap: 1.4rem;
}

.ab-strategy-img-wrap {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 20px 50px rgba(0,0,0,.3);
}

.ab-strategy-img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 3/2;
  object-fit: cover;
}

.ab-strategy-img-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1rem 1.2rem;
  background: linear-gradient(to top, rgba(4,36,22,.85), transparent);
}
.ab-strategy-img-overlay span {
  font-size: .72rem;
  font-weight: 700;
  color: rgba(255,255,255,.8);
  text-transform: uppercase;
  letter-spacing: .06em;
}

.ab-strategy-direction {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 14px;
  padding: 1.5rem;
}
.ab-strategy-direction .ab-kicker { display: block; }
.ab-strategy-direction h3 {
  font-size: 1.1rem;
  font-weight: 800;
  color: #fff;
  margin: .3rem 0 .6rem;
  line-height: 1.28;
}
.ab-strategy-direction p {
  font-size: .85rem;
  color: rgba(255,255,255,.65);
  line-height: 1.68;
  margin: 0 0 1.1rem;
}

/* Legacy full-width image */
.ab-strategy-legacy {
  position: relative;
  overflow: hidden;
  border-radius: 20px 20px 0 0;
  margin-top: 0;
  min-height: 320px;
  display: flex;
  align-items: center;
}

.ab-strategy-legacy-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
  opacity: .55;
}

.ab-strategy-legacy-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    120deg,
    rgba(4,36,22,.88) 0%,
    rgba(4,36,22,.5) 100%
  );
}

.ab-strategy-legacy-copy {
  position: relative;
  z-index: 2;
  padding: 3.5rem 0;
  max-width: 620px;
}
.ab-strategy-legacy-copy .ab-kicker { display: block; }
.ab-strategy-legacy-copy h3 {
  font-size: clamp(1.3rem, 2.8vw, 1.9rem);
  font-weight: 900;
  color: #fff;
  margin: .4rem 0 .8rem;
  line-height: 1.18;
}
.ab-strategy-legacy-copy p {
  font-size: .94rem;
  color: rgba(255,255,255,.72);
  line-height: 1.7;
  margin: 0;
}

@media (max-width: 1020px) {
  .ab-strategy-grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
  .ab-strategy-aside { flex-direction: row; flex-wrap: wrap; }
  .ab-strategy-img-wrap { flex: 1 1 300px; }
  .ab-strategy-direction { flex: 1 1 280px; }
}

@media (max-width: 640px) {
  .ab-strategy-aside { flex-direction: column; }
}

/* ============================================================
   AB CTA FOOTER
   ============================================================ */
.ab-cta-section {
  background: var(--panel-soft);
  padding: 4rem 0 5rem;
}

.ab-cta-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.2rem;
}

.ab-cta-card {
  background: #fff;
  border: 1.5px solid var(--line);
  border-radius: 16px;
  padding: 1.8rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: .6rem;
  transition: border-color .18s, box-shadow .2s, transform .22s;
}
.ab-cta-card:hover {
  border-color: rgba(8,115,72,.2);
  box-shadow: 0 8px 28px rgba(8,115,72,.07);
  transform: translateY(-2px);
}
.ab-cta-card--primary {
  background: var(--green-900);
  border-color: var(--green-900);
}
.ab-cta-card--primary h3 { color: #fff; }
.ab-cta-card--primary p { color: rgba(255,255,255,.7); }
.ab-cta-card--primary .ab-cta-icon { background: rgba(255,255,255,.1); color: var(--flag-gold); }

.ab-cta-icon {
  width: 52px;
  height: 52px;
  border-radius: 12px;
  background: rgba(8,115,72,.07);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--green-900);
  margin-bottom: .4rem;
}

.ab-cta-card h3 {
  font-size: 1rem;
  font-weight: 800;
  color: var(--ink);
  margin: 0;
  line-height: 1.25;
}

.ab-cta-card p {
  font-size: .82rem;
  color: var(--muted);
  line-height: 1.65;
  margin: 0;
  flex: 1;
}

.ab-cta-card .v2-btn { margin-top: .4rem; align-self: flex-start; }

/* CTA search form */
.ab-cta-search {
  display: flex;
  gap: .4rem;
  margin-top: .4rem;
}
.ab-cta-search input {
  flex: 1;
  padding: .55rem .85rem;
  font-size: .82rem;
  border: 1.5px solid var(--line);
  border-radius: 8px;
  outline: none;
  font-family: inherit;
  color: var(--ink);
  background: #fff;
  transition: border-color .16s;
  min-width: 0;
}
.ab-cta-search input:focus { border-color: var(--green-900); }
.ab-cta-search button {
  width: 38px;
  height: 38px;
  border-radius: 8px;
  background: var(--green-900);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  flex-shrink: 0;
  transition: background .16s;
}
.ab-cta-search button:hover { background: var(--green-800); }

@media (max-width: 1100px) {
  .ab-cta-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .ab-cta-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   DEPARTMENTS HUB — DP- DESIGN SYSTEM
   ============================================================ */

/* ── Shared helpers ──────────────────────────────────────── */
.dp-kicker {
  display: inline-block;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--green-800);
  margin-bottom: .55rem;
}
.dp-kicker--light { color: var(--flag-gold); }

.dp-section {
  padding: 5rem 0;
}

.dp-section-head {
  display: flex;
  align-items: flex-start;
  gap: 3rem;
  flex-wrap: wrap;
  margin-bottom: 3rem;
}
.dp-section-head > div { flex: 0 0 auto; }
.dp-section-head h2 {
  font-size: clamp(1.55rem, 3vw, 2.1rem);
  font-weight: 800;
  color: var(--ink);
  margin: 0;
  line-height: 1.18;
}
.dp-section-head--light h2 { color: #fff; }

.dp-section-sub {
  flex: 1 1 320px;
  font-size: .93rem;
  color: var(--muted);
  line-height: 1.7;
  max-width: 58ch;
  margin: auto 0 0;
}
.dp-section-sub--light { color: rgba(255,255,255,.65); }

/* ── Hero ────────────────────────────────────────────────── */
.dp-hero {
  position: relative;
  min-height: 420px;
  display: flex;
  align-items: flex-end;
  background:
    linear-gradient(160deg, rgba(4,36,22,.88) 0%, rgba(4,36,22,.6) 55%, rgba(4,36,22,.78) 100%),
    url('https://www.movlsa.gov.zw/wp-content/uploads/2024/04/footer-bg.png') center/cover no-repeat;
  overflow: hidden;
}

.dp-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to right,
    rgba(4,36,22,.15) 0%,
    transparent 60%
  );
  pointer-events: none;
}

.dp-hero-inner {
  position: relative;
  z-index: 2;
  padding-top: 3rem;
  padding-bottom: 0;
  width: 100%;
}

.dp-hero-breadcrumb {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: .74rem;
  color: rgba(255,255,255,.6);
  margin-bottom: 1.4rem;
}
.dp-hero-breadcrumb a {
  color: rgba(255,255,255,.7);
  text-decoration: none;
  transition: color .16s;
}
.dp-hero-breadcrumb a:hover { color: #fff; }
.dp-hero-breadcrumb span[aria-hidden] { opacity: .4; }

.dp-hero-copy { max-width: 760px; }

.dp-hero-eyebrow {
  display: inline-block;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--flag-gold);
  margin-bottom: .6rem;
  padding: .2rem .7rem;
  border: 1px solid rgba(220,170,40,.35);
  border-radius: 4px;
}

.dp-hero-copy h1 {
  font-size: clamp(2rem, 5vw, 3.2rem);
  font-weight: 900;
  color: #fff;
  line-height: 1.08;
  margin: 0 0 .9rem;
  text-shadow: 0 2px 16px rgba(0,0,0,.25);
}

.dp-hero-lead {
  font-size: clamp(.88rem, 1.5vw, 1rem);
  color: rgba(255,255,255,.8);
  line-height: 1.7;
  max-width: 68ch;
  margin: 0;
}

.dp-hero-stats {
  display: flex;
  align-items: center;
  margin-top: 2.4rem;
  background: rgba(0,0,0,.3);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-radius: 12px 12px 0 0;
  overflow: hidden;
}

.dp-hero-stat {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 1.1rem .8rem;
  text-align: center;
}
.dp-hero-stat-val {
  font-size: 1.7rem;
  font-weight: 900;
  color: var(--flag-gold);
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.dp-hero-stat-lbl {
  font-size: .64rem;
  font-weight: 600;
  color: rgba(255,255,255,.6);
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-top: .28rem;
}
.dp-hero-stat-div {
  width: 1px;
  height: 38px;
  background: rgba(255,255,255,.14);
  flex-shrink: 0;
}

@media (max-width: 600px) {
  .dp-hero { min-height: 320px; }
  .dp-hero-stat-div { display: none; }
  .dp-hero-stats { flex-wrap: wrap; }
  .dp-hero-stat { flex: 0 0 50%; }
}

/* ── Filter nav ──────────────────────────────────────────── */
.dp-filter {
  position: sticky;
  top: 0;
  z-index: 120;
  background: #fff;
  border-bottom: 2px solid var(--line);
  box-shadow: none;
  transition: box-shadow .2s;
}

.dp-filter-inner {
  display: flex;
  align-items: center;
  gap: .3rem;
  height: 54px;
  overflow-x: auto;
  scrollbar-width: none;
  padding-right: .5rem;
}
.dp-filter-inner::-webkit-scrollbar { display: none; }

.dp-filter-btn {
  padding: .38rem .9rem;
  font-size: .78rem;
  font-weight: 700;
  color: var(--muted);
  background: none;
  border: 1.5px solid transparent;
  border-radius: 8px;
  cursor: pointer;
  white-space: nowrap;
  transition: color .16s, background .16s, border-color .16s;
  flex-shrink: 0;
}
.dp-filter-btn:hover { color: var(--green-900); background: rgba(8,115,72,.06); }
.dp-filter-btn.is-active {
  color: var(--green-900);
  background: rgba(8,115,72,.08);
  border-color: rgba(8,115,72,.2);
}

.dp-filter-search {
  display: flex;
  gap: .3rem;
  align-items: center;
  margin-left: auto;
  flex-shrink: 0;
}
.dp-filter-search input {
  padding: .38rem .75rem;
  font-size: .78rem;
  border: 1.5px solid var(--line);
  border-radius: 8px;
  width: 200px;
  outline: none;
  font-family: inherit;
  color: var(--ink);
  background: var(--panel-soft);
  transition: border-color .16s, width .3s;
}
.dp-filter-search input:focus { border-color: var(--green-900); width: 260px; }
.dp-filter-search button {
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background: var(--green-900);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  transition: background .16s;
  flex-shrink: 0;
}
.dp-filter-search button:hover { background: var(--green-800); }

@media (max-width: 640px) {
  .dp-filter-search input { width: 130px; }
  .dp-filter-search input:focus { width: 180px; }
}
@media (max-width: 480px) {
  .dp-filter-search { display: none; }
}

/* ── Operational departments section ─────────────────────── */
.dp-op-section {
  background: #fff;
}

.dp-op-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.3rem;
}

.dp-op-card {
  background: #fff;
  border: 1.5px solid var(--line);
  border-radius: 18px;
  padding: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: border-color .2s, box-shadow .2s, transform .22s;
}
.dp-op-card:hover {
  border-color: rgba(8,115,72,.25);
  box-shadow: 0 10px 36px rgba(8,115,72,.10);
  transform: translateY(-3px);
}

.dp-op-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 1.4rem 1.4rem .8rem;
}

.dp-op-card-icon {
  width: 52px;
  height: 52px;
  border-radius: 13px;
  background: rgba(8,115,72,.08);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--green-900);
  transition: background .18s, color .18s;
}
.dp-op-card:hover .dp-op-card-icon {
  background: var(--green-900);
  color: #fff;
}

.dp-op-card-badge {
  font-size: .6rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--green-800);
  background: rgba(8,115,72,.08);
  padding: .22rem .65rem;
  border-radius: 50px;
}

.dp-op-card-body {
  padding: 0 1.4rem 1rem;
  flex: 1;
}

.dp-op-card-title {
  font-size: .97rem;
  font-weight: 800;
  color: var(--ink);
  margin: 0 0 .55rem;
  line-height: 1.28;
}

.dp-op-card-desc {
  font-size: .82rem;
  color: var(--muted);
  line-height: 1.65;
  margin: 0;
}

.dp-op-card-hod {
  display: flex;
  align-items: center;
  gap: .65rem;
  padding: .75rem 1.4rem;
  border-top: 1px solid var(--line);
  background: var(--panel-soft);
}
.dp-op-card-hod img {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  border: 2px solid rgba(8,115,72,.15);
}
.dp-op-card-hod > div {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.dp-op-card-hod-name {
  font-size: .75rem;
  font-weight: 800;
  color: var(--ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dp-op-card-hod-role {
  font-size: .68rem;
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dp-op-card-foot {
  padding: .85rem 1.4rem;
  border-top: 1px solid var(--line);
}

.dp-op-card-link {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-size: .78rem;
  font-weight: 800;
  color: var(--green-900);
  text-decoration: none;
  transition: gap .18s;
}
.dp-op-card-link:hover { gap: .65rem; }

@media (max-width: 1020px) { .dp-op-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 580px)  { .dp-op-grid { grid-template-columns: 1fr; } }

/* ── Supporting departments section ──────────────────────── */
.dp-sup-section {
  background: var(--green-900);
}

.dp-sup-featured-label,
.dp-sup-other-label {
  font-size: .64rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(255,255,255,.45);
  margin-bottom: 1rem;
  display: block;
}
.dp-sup-other-label { margin-top: 2.8rem; }

/* Featured cards (dedicated pages) */
.dp-featured-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.3rem;
}

.dp-featured-card {
  background: rgba(255,255,255,.06);
  border: 1.5px solid rgba(255,255,255,.12);
  border-radius: 18px;
  padding: 1.8rem 1.6rem;
  display: flex;
  flex-direction: column;
  gap: .9rem;
  transition: background .2s, border-color .2s, transform .22s;
}
.dp-featured-card:hover {
  background: rgba(255,255,255,.1);
  border-color: rgba(220,170,40,.3);
  transform: translateY(-2px);
}

.dp-featured-card-icon {
  width: 58px;
  height: 58px;
  border-radius: 14px;
  background: rgba(220,170,40,.12);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--flag-gold);
}

.dp-featured-card-kicker {
  font-size: .6rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--flag-gold);
  margin: 0;
}

.dp-featured-card-body h3 {
  font-size: 1rem;
  font-weight: 800;
  color: #fff;
  margin: .25rem 0 .55rem;
  line-height: 1.28;
}

.dp-featured-card-body p {
  font-size: .83rem;
  color: rgba(255,255,255,.68);
  line-height: 1.65;
  margin: 0;
}

.dp-featured-card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin-top: .5rem;
}
.dp-featured-card-tags span {
  font-size: .64rem;
  font-weight: 700;
  color: var(--flag-gold);
  background: rgba(220,170,40,.1);
  border: 1px solid rgba(220,170,40,.2);
  padding: .2rem .6rem;
  border-radius: 4px;
}

.dp-featured-card-cta {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  font-size: .8rem;
  font-weight: 800;
  color: var(--flag-gold);
  text-decoration: none;
  margin-top: auto;
  padding-top: .5rem;
  border-top: 1px solid rgba(255,255,255,.08);
  transition: gap .18s;
}
.dp-featured-card-cta:hover { gap: .7rem; }

@media (max-width: 960px) { .dp-featured-grid { grid-template-columns: 1fr; } }
@media (min-width: 580px) and (max-width: 960px) { .dp-featured-grid { grid-template-columns: repeat(2, 1fr); } }

/* Other supporting units grid */
.dp-other-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}

.dp-other-card {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 14px;
  padding: 1.2rem 1.1rem;
  transition: background .18s, border-color .18s;
}
.dp-other-card:hover {
  background: rgba(255,255,255,.07);
  border-color: rgba(220,170,40,.2);
}

.dp-other-card h3 {
  font-size: .88rem;
  font-weight: 800;
  color: #fff;
  margin: 0 0 .4rem;
  line-height: 1.3;
}
.dp-other-card p {
  font-size: .78rem;
  color: rgba(255,255,255,.55);
  line-height: 1.6;
  margin: 0 0 .7rem;
}

.dp-other-card-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .35rem;
}
.dp-other-fn-count {
  font-size: .63rem;
  font-weight: 700;
  color: var(--flag-gold);
  background: rgba(220,170,40,.1);
  padding: .15rem .5rem;
  border-radius: 4px;
}
.dp-other-tag {
  font-size: .63rem;
  font-weight: 600;
  color: rgba(255,255,255,.45);
  background: rgba(255,255,255,.06);
  padding: .15rem .5rem;
  border-radius: 4px;
}

@media (max-width: 1080px) { .dp-other-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .dp-other-grid { grid-template-columns: 1fr; } }

/* ── Workflow section ────────────────────────────────────── */
.dp-workflow-section {
  background: var(--panel-soft);
}

.dp-workflow-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  position: relative;
}

.dp-workflow-step {
  background: #fff;
  border: 1.5px solid var(--line);
  border-radius: 16px;
  padding: 1.8rem 1.6rem;
  position: relative;
}

.dp-workflow-num {
  display: block;
  font-size: 3.5rem;
  font-weight: 900;
  color: rgba(8,115,72,.05);
  line-height: 1;
  margin-bottom: .3rem;
  font-variant-numeric: tabular-nums;
}

.dp-workflow-body h3 {
  font-size: 1rem;
  font-weight: 800;
  color: var(--ink);
  margin: 0 0 .5rem;
  line-height: 1.28;
}
.dp-workflow-body p {
  font-size: .84rem;
  color: var(--muted);
  line-height: 1.65;
  margin: 0;
}

.dp-workflow-arrow {
  position: absolute;
  top: 50%;
  right: -22px;
  transform: translateY(-50%);
  width: 12px;
  height: 12px;
  border-right: 3px solid var(--green-900);
  border-top: 3px solid var(--green-900);
  transform: translateY(-50%) rotate(45deg);
  opacity: .35;
  z-index: 1;
}

@media (max-width: 820px) {
  .dp-workflow-grid { grid-template-columns: 1fr; }
  .dp-workflow-arrow { display: none; }
}

/* ── CTA section ─────────────────────────────────────────── */
.dp-cta-section {
  background: #fff;
  padding: 4rem 0 5rem;
}

.dp-cta-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.2rem;
}

.dp-cta-card {
  background: var(--panel-soft);
  border: 1.5px solid var(--line);
  border-radius: 16px;
  padding: 1.8rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: .55rem;
  transition: border-color .18s, box-shadow .2s, transform .22s;
}
.dp-cta-card:hover {
  border-color: rgba(8,115,72,.2);
  box-shadow: 0 8px 28px rgba(8,115,72,.07);
  transform: translateY(-2px);
}
.dp-cta-card--primary {
  background: var(--green-900);
  border-color: var(--green-900);
}
.dp-cta-card--primary h3 { color: #fff; }
.dp-cta-card--primary p { color: rgba(255,255,255,.68); }
.dp-cta-card--primary .dp-cta-icon { background: rgba(255,255,255,.1); color: var(--flag-gold); }

.dp-cta-icon {
  width: 50px;
  height: 50px;
  border-radius: 12px;
  background: rgba(8,115,72,.07);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--green-900);
  margin-bottom: .3rem;
}
.dp-cta-card h3 {
  font-size: .97rem;
  font-weight: 800;
  color: var(--ink);
  margin: 0;
}
.dp-cta-card p {
  font-size: .82rem;
  color: var(--muted);
  line-height: 1.65;
  margin: 0;
  flex: 1;
}
.dp-cta-card .v2-btn { margin-top: .3rem; align-self: flex-start; }

@media (max-width: 1080px) { .dp-cta-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .dp-cta-grid { grid-template-columns: 1fr; } }

/* ============================================================
   SUPPORTING DEPT DETAIL PAGES — SUPT- DESIGN SYSTEM
   (shared by ict_department, strategic_planning, gender_mainstreaming)
   ============================================================ */

/* ── Shared helpers ──────────────────────────────────────── */
.supt-kicker {
  display: inline-block;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--green-800);
  margin-bottom: .55rem;
}
.supt-kicker--light { color: var(--flag-gold); }

/* ── Hero ────────────────────────────────────────────────── */
.supt-hero {
  position: relative;
  min-height: 380px;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}

.supt-hero-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center 35%;
  transform: scale(1.04);
  transition: transform 8s ease;
}
.supt-hero:hover .supt-hero-bg { transform: scale(1); }

.supt-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    155deg,
    rgba(4,36,22,.88) 0%,
    rgba(4,36,22,.60) 55%,
    rgba(4,36,22,.78) 100%
  );
}

.supt-hero-inner {
  position: relative;
  z-index: 2;
  padding-top: 2.5rem;
  padding-bottom: 3rem;
  width: 100%;
}

.supt-hero-breadcrumb {
  display: flex;
  align-items: center;
  gap: .45rem;
  font-size: .74rem;
  color: rgba(255,255,255,.55);
  margin-bottom: 1.2rem;
}
.supt-hero-breadcrumb a {
  color: rgba(255,255,255,.68);
  text-decoration: none;
  transition: color .16s;
}
.supt-hero-breadcrumb a:hover { color: #fff; }
.supt-hero-breadcrumb span[aria-hidden] { opacity: .35; }

.supt-hero-eyebrow {
  display: inline-block;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--flag-gold);
  margin-bottom: .6rem;
  padding: .2rem .7rem;
  border: 1px solid rgba(220,170,40,.35);
  border-radius: 4px;
}

.supt-hero-inner h1 {
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  font-weight: 900;
  color: #fff;
  line-height: 1.1;
  margin: .4rem 0 .9rem;
  text-shadow: 0 2px 14px rgba(0,0,0,.25);
  max-width: 760px;
}

.supt-hero-lead {
  font-size: clamp(.88rem, 1.5vw, 1rem);
  color: rgba(255,255,255,.78);
  line-height: 1.72;
  max-width: 68ch;
  margin: 0 0 1.3rem;
}

.supt-hero-chips {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}
.supt-hero-chip {
  font-size: .72rem;
  font-weight: 700;
  color: rgba(255,255,255,.85);
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.18);
  padding: .28rem .75rem;
  border-radius: 50px;
}

/* ── Head of department section ──────────────────────────── */
.supt-head-section {
  background: #fff;
  padding: 4rem 0;
  border-bottom: 2px solid var(--line);
}

.supt-head-inner {
  display: flex;
  justify-content: center;
}

.supt-head-card {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 3rem;
  align-items: center;
  max-width: 800px;
  background: var(--panel-soft);
  border: 1.5px solid var(--line);
  border-radius: 20px;
  padding: 2.5rem;
  width: 100%;
}

.supt-head-photo-wrap {
  position: relative;
  text-align: center;
}

.supt-head-photo {
  width: 180px;
  height: 216px;
  object-fit: cover;
  border-radius: 14px;
  display: block;
  margin: 0 auto;
  border: 3px solid rgba(8,115,72,.15);
  box-shadow: 0 12px 40px rgba(0,0,0,.12);
}

.supt-head-photo-badge {
  position: absolute;
  bottom: -10px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--green-900);
  color: #fff;
  font-size: .62rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .07em;
  padding: .25rem .8rem;
  border-radius: 50px;
  white-space: nowrap;
}

.supt-head-kicker {
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--green-800);
  margin: 0 0 .4rem;
}

.supt-head-info h2 {
  font-size: 1.6rem;
  font-weight: 900;
  color: var(--ink);
  margin: 0 0 .3rem;
  line-height: 1.2;
}

.supt-head-role {
  font-size: .88rem;
  font-weight: 700;
  color: var(--green-800);
  margin: 0 0 .9rem;
}

.supt-head-bio {
  font-size: .88rem;
  color: var(--muted);
  line-height: 1.7;
  margin: 0 0 1rem;
}

.supt-head-dept-name {
  font-size: .8rem;
  color: var(--muted);
  padding: .5rem .85rem;
  background: rgba(8,115,72,.06);
  border-left: 3px solid var(--green-900);
  border-radius: 0 6px 6px 0;
}
.supt-head-dept-name span { font-weight: 700; color: var(--ink); margin-right: .35rem; }

@media (max-width: 640px) {
  .supt-head-card { grid-template-columns: 1fr; gap: 1.8rem; text-align: center; }
  .supt-head-dept-name { text-align: left; }
}

/* ── Body / sub-units section ────────────────────────────── */
.supt-body-section {
  background: var(--panel-soft);
  padding: 5rem 0;
}

.supt-body-head {
  margin-bottom: 3rem;
}
.supt-body-head h2 {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 800;
  color: var(--ink);
  margin: 0 0 .6rem;
  line-height: 1.2;
}
.supt-body-head p {
  font-size: .93rem;
  color: var(--muted);
  line-height: 1.7;
  max-width: 62ch;
  margin: 0;
}

.supt-units-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
}
.supt-units-grid--three {
  grid-template-columns: repeat(3, 1fr);
}

.supt-unit-card {
  background: #fff;
  border: 1.5px solid var(--line);
  border-radius: 18px;
  padding: 1.8rem 1.7rem;
  display: flex;
  flex-direction: column;
  transition: border-color .2s, box-shadow .2s;
}
.supt-unit-card:hover {
  border-color: rgba(8,115,72,.25);
  box-shadow: 0 10px 36px rgba(8,115,72,.09);
}

.supt-unit-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 1.1rem;
}

.supt-unit-icon {
  width: 56px;
  height: 56px;
  border-radius: 14px;
  background: rgba(8,115,72,.07);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--green-900);
  transition: background .18s, color .18s;
}
.supt-unit-card:hover .supt-unit-icon {
  background: var(--green-900);
  color: #fff;
}

.supt-unit-badge {
  font-size: .6rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(8,115,72,.7);
  background: rgba(8,115,72,.07);
  padding: .2rem .6rem;
  border-radius: 4px;
}

.supt-unit-card h3 {
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--ink);
  margin: 0 0 .65rem;
  line-height: 1.25;
}

.supt-unit-intro {
  font-size: .86rem;
  color: var(--muted);
  line-height: 1.68;
  margin: 0 0 1.1rem;
}

.supt-unit-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .45rem;
  margin-top: auto;
  padding-top: .9rem;
  border-top: 1px solid var(--line);
}
.supt-unit-list li {
  font-size: .81rem;
  color: var(--ink);
  padding-left: 1.2rem;
  position: relative;
  line-height: 1.55;
}
.supt-unit-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .58em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--green-900);
  opacity: .45;
}

@media (max-width: 860px) {
  .supt-units-grid,
  .supt-units-grid--three { grid-template-columns: 1fr; }
}

/* ── Full functions section ──────────────────────────────── */
.supt-fn-section {
  background: var(--green-900);
  padding: 5rem 0;
}
.supt-fn-section .supt-body-head h2 { color: #fff; }
.supt-fn-section .supt-body-head p { color: rgba(255,255,255,.65); }

.supt-fn-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: .8rem;
}

.supt-fn-item {
  display: flex;
  align-items: flex-start;
  gap: .8rem;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 10px;
  padding: .9rem 1.1rem;
  font-size: .85rem;
  color: rgba(255,255,255,.82);
  line-height: 1.62;
  transition: background .18s;
}
.supt-fn-item:hover { background: rgba(255,255,255,.08); }

.supt-fn-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--flag-gold);
  flex-shrink: 0;
  margin-top: .5em;
}

@media (max-width: 720px) {
  .supt-fn-grid { grid-template-columns: 1fr; }
}

/* ── Strategy alignment section (strategic_planning.html) ── */
.supt-align-section {
  background: #fff;
  padding: 5rem 0;
  border-top: 2px solid var(--line);
}

.supt-align-inner {
  display: grid;
  grid-template-columns: 1fr 400px;
  gap: 4rem;
  align-items: center;
}

.supt-align-copy h2 {
  font-size: clamp(1.4rem, 2.8vw, 2rem);
  font-weight: 800;
  color: var(--ink);
  margin: .3rem 0 .9rem;
  line-height: 1.2;
}
.supt-align-copy p {
  font-size: .92rem;
  color: var(--muted);
  line-height: 1.72;
  margin: 0 0 1.4rem;
  max-width: 56ch;
}

.supt-align-pillars {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: .9rem;
}

.supt-align-pillar {
  background: var(--panel-soft);
  border: 1.5px solid var(--line);
  border-radius: 12px;
  padding: 1rem 1.1rem;
  display: flex;
  flex-direction: column;
  gap: .2rem;
}
.supt-align-pillar strong {
  font-size: .88rem;
  font-weight: 800;
  color: var(--ink);
}
.supt-align-pillar span {
  font-size: .76rem;
  color: var(--muted);
}

@media (max-width: 880px) {
  .supt-align-inner { grid-template-columns: 1fr; gap: 2.5rem; }
}

/* ── Focus areas grid (gender_mainstreaming.html) ────────── */
.supt-focus-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.3rem;
}

.supt-focus-card {
  background: #fff;
  border: 1.5px solid var(--line);
  border-radius: 16px;
  padding: 1.8rem 1.6rem;
  position: relative;
  overflow: hidden;
  transition: border-color .2s, box-shadow .2s, transform .22s;
}
.supt-focus-card:hover {
  border-color: rgba(8,115,72,.22);
  box-shadow: 0 8px 30px rgba(8,115,72,.08);
  transform: translateY(-3px);
}

.supt-focus-num {
  font-size: 3.8rem;
  font-weight: 900;
  color: rgba(8,115,72,.04);
  line-height: 1;
  position: absolute;
  top: .6rem;
  right: 1rem;
  pointer-events: none;
  font-variant-numeric: tabular-nums;
}

.supt-focus-card h3 {
  font-size: 1rem;
  font-weight: 800;
  color: var(--ink);
  margin: 0 0 .6rem;
  line-height: 1.28;
}
.supt-focus-card p {
  font-size: .85rem;
  color: var(--muted);
  line-height: 1.68;
  margin: 0;
}

@media (max-width: 680px) { .supt-focus-grid { grid-template-columns: 1fr; } }

/* ── Commitment statement (gender_mainstreaming.html) ────── */
.supt-commit-section {
  background: var(--green-900);
  padding: 5rem 0;
}

.supt-commit-inner {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 2.5rem;
  align-items: start;
  max-width: 900px;
}

.supt-commit-icon {
  width: 80px;
  height: 80px;
  border-radius: 20px;
  background: rgba(220,170,40,.12);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--flag-gold);
  flex-shrink: 0;
}

.supt-commit-copy h2 {
  font-size: clamp(1.4rem, 2.8vw, 1.9rem);
  font-weight: 800;
  color: #fff;
  margin: .3rem 0 .9rem;
  line-height: 1.2;
}
.supt-commit-copy p {
  font-size: .92rem;
  color: rgba(255,255,255,.72);
  line-height: 1.74;
  margin: 0;
  max-width: 68ch;
}

@media (max-width: 640px) {
  .supt-commit-inner { grid-template-columns: 1fr; gap: 1.5rem; }
}

/* ── Principles strip (gender_mainstreaming.html) ────────── */
.supt-principles-section {
  background: var(--panel-soft);
  padding: 3.5rem 0;
  border-top: 2px solid var(--line);
}

.supt-principles-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.1rem;
}

.supt-principle {
  background: #fff;
  border: 1.5px solid var(--line);
  border-radius: 14px;
  padding: 1.4rem 1.2rem;
  display: flex;
  flex-direction: column;
  gap: .45rem;
  transition: border-color .18s, box-shadow .18s;
}
.supt-principle:hover {
  border-color: rgba(8,115,72,.2);
  box-shadow: 0 6px 20px rgba(8,115,72,.07);
}

.supt-principle-icon {
  width: 44px;
  height: 44px;
  border-radius: 11px;
  background: rgba(8,115,72,.08);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--green-900);
  margin-bottom: .2rem;
}
.supt-principle strong {
  font-size: .88rem;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.25;
}
.supt-principle span {
  font-size: .78rem;
  color: var(--muted);
  line-height: 1.55;
}

@media (max-width: 900px) { .supt-principles-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .supt-principles-grid { grid-template-columns: 1fr; } }

/* ── CTA footer (shared) ─────────────────────────────────── */
.supt-cta-section {
  background: #fff;
  padding: 4rem 0 5rem;
}

.supt-cta-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
}

.supt-cta-card {
  background: var(--panel-soft);
  border: 1.5px solid var(--line);
  border-radius: 16px;
  padding: 1.8rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: .55rem;
  transition: border-color .18s, box-shadow .2s, transform .22s;
}
.supt-cta-card:hover {
  border-color: rgba(8,115,72,.2);
  box-shadow: 0 8px 28px rgba(8,115,72,.07);
  transform: translateY(-2px);
}
.supt-cta-card--primary {
  background: var(--green-900);
  border-color: var(--green-900);
}
.supt-cta-card--primary h3 { color: #fff; }
.supt-cta-card--primary p  { color: rgba(255,255,255,.68); }
.supt-cta-card--primary .supt-cta-icon { background: rgba(255,255,255,.1); color: var(--flag-gold); }

.supt-cta-icon {
  width: 50px;
  height: 50px;
  border-radius: 12px;
  background: rgba(8,115,72,.07);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--green-900);
  margin-bottom: .3rem;
}
.supt-cta-card h3 {
  font-size: .97rem;
  font-weight: 800;
  color: var(--ink);
  margin: 0;
}
.supt-cta-card p {
  font-size: .82rem;
  color: var(--muted);
  line-height: 1.65;
  margin: 0;
  flex: 1;
}
.supt-cta-card .v2-btn { margin-top: .3rem; align-self: flex-start; }

@media (max-width: 820px) { .supt-cta-grid { grid-template-columns: 1fr; } }
@media (min-width: 560px) and (max-width: 820px) { .supt-cta-grid { grid-template-columns: repeat(2, 1fr); } }


/* ═══════════════════════════════════════════════════════════════════════════
   DEPARTMENTS HUB — supporting department cards  (dp-sup-card*)
   ═══════════════════════════════════════════════════════════════════════════ */

.dp-sup-section {
  background: var(--panel-soft);
  padding: 4rem 0;
}

.dp-all-sup-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.1rem;
  margin-top: 2.5rem;
}
@media (max-width: 1100px) { .dp-all-sup-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .dp-all-sup-grid { grid-template-columns: 1fr; } }

.dp-sup-card {
  background: #fff;
  border: 1.5px solid var(--line);
  border-radius: 14px;
  padding: 1.35rem 1.25rem 1.1rem;
  display: flex;
  flex-direction: column;
  gap: .65rem;
  transition: border-color .18s, box-shadow .22s, transform .2s;
}
.dp-sup-card--link { cursor: pointer; }
.dp-sup-card--link:hover {
  border-color: rgba(8,115,72,.3);
  box-shadow: 0 10px 32px rgba(8,115,72,.08);
  transform: translateY(-3px);
}

.dp-sup-card-icon {
  width: 46px;
  height: 46px;
  border-radius: 11px;
  background: rgba(8,115,72,.07);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--green-900);
  flex-shrink: 0;
}

.dp-sup-card-body {
  display: flex;
  flex-direction: column;
  gap: .4rem;
  flex: 1;
}
.dp-sup-card-kicker {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--green-900);
  margin: 0;
}
.dp-sup-card-body h3 {
  font-size: .97rem;
  font-weight: 800;
  color: var(--ink);
  margin: 0;
  line-height: 1.35;
}
.dp-sup-card-body p {
  font-size: .8rem;
  color: var(--muted);
  line-height: 1.65;
  margin: 0;
}

.dp-sup-card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  margin-top: .1rem;
}
.dp-sup-card-tags span {
  font-size: .67rem;
  font-weight: 700;
  letter-spacing: .04em;
  background: rgba(8,115,72,.08);
  color: var(--green-900);
  border-radius: 20px;
  padding: .22rem .62rem;
  white-space: nowrap;
}

.dp-sup-card-cta {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  font-size: .78rem;
  font-weight: 700;
  color: var(--green-900);
  text-decoration: none;
  margin-top: .25rem;
  padding-top: .65rem;
  border-top: 1px solid var(--line);
  transition: gap .18s, color .18s;
}
.dp-sup-card-cta:hover { gap: .65rem; }

/* section head light variants */
.dp-section-head--light .dp-kicker--light { color: var(--green-900); opacity: .7; }
.dp-section-sub--light { color: var(--muted); }


/* ═══════════════════════════════════════════════════════════════════════════
   OPERATIONAL DEPARTMENT DETAIL  (ddt-*)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ─── HERO ──────────────────────────────────────────────────────────────── */
.ddt-hero {
  position: relative;
  min-height: 520px;
  display: flex;
  align-items: flex-end;
  background: var(--green-900);
  overflow: hidden;
}
.ddt-hero-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transform: scale(1.04);
  transition: transform 8s ease;
}
.ddt-hero:hover .ddt-hero-bg { transform: scale(1); }
.ddt-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,rgba(4,36,22,.5) 0%,rgba(4,36,22,.85) 55%,rgba(4,36,22,.97) 100%);
  z-index: 1;
}
.ddt-hero-inner {
  position: relative;
  z-index: 2;
  padding-top: 7rem;
  padding-bottom: 3.5rem;
  width: 100%;
}
.ddt-hero-breadcrumb {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: .77rem;
  color: rgba(255,255,255,.5);
  margin-bottom: 1.8rem;
}
.ddt-hero-breadcrumb a { color: rgba(255,255,255,.5); text-decoration: none; transition: color .15s; }
.ddt-hero-breadcrumb a:hover { color: #fff; }
.ddt-hero-breadcrumb span:not([aria-hidden]) { color: rgba(255,255,255,.85); }

.ddt-hero-content {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 3rem;
}
.ddt-hero-copy { flex: 1; min-width: 0; }
.ddt-hero-eyebrow {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--flag-gold);
  margin: 0 0 .65rem;
}
.ddt-hero-copy h1 {
  font-size: clamp(1.7rem, 4vw, 2.6rem);
  font-weight: 900;
  color: #fff;
  margin: 0 0 .9rem;
  line-height: 1.15;
}
.ddt-hero-lead {
  font-size: clamp(.88rem, 1.5vw, 1rem);
  color: rgba(255,255,255,.75);
  line-height: 1.7;
  margin: 0 0 1.2rem;
  max-width: 58ch;
}
.ddt-hero-chips { display: flex; flex-wrap: wrap; gap: .45rem; }
.ddt-hero-chip {
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .05em;
  color: rgba(255,255,255,.85);
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 20px;
  padding: .28rem .75rem;
  backdrop-filter: blur(4px);
}

/* HoD mini card in hero */
.ddt-hero-hod {
  display: flex;
  align-items: center;
  gap: .9rem;
  background: rgba(255,255,255,.08);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 14px;
  padding: .9rem 1.1rem;
  flex-shrink: 0;
  max-width: 260px;
  width: 100%;
}
.ddt-hod-photo-wrap {
  flex-shrink: 0;
  width: 64px;
  height: 76px;
  border-radius: 10px;
  overflow: hidden;
  border: 2px solid rgba(255,255,255,.2);
}
.ddt-hod-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
}
.ddt-hod-info { display: flex; flex-direction: column; gap: .2rem; }
.ddt-hod-eyebrow {
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--flag-gold);
  margin: 0;
}
.ddt-hod-name {
  font-size: .88rem;
  font-weight: 800;
  color: #fff;
  display: block;
  line-height: 1.25;
}
.ddt-hod-role {
  font-size: .75rem;
  color: rgba(255,255,255,.65);
  display: block;
  line-height: 1.4;
}

@media (max-width: 900px) {
  .ddt-hero-content { flex-direction: column; align-items: flex-start; }
  .ddt-hero-hod { max-width: 100%; width: auto; }
}
@media (max-width: 600px) {
  .ddt-hero { min-height: 420px; }
  .ddt-hero-inner { padding-top: 5.5rem; padding-bottom: 2.5rem; }
}

/* ─── HEAD OF DEPARTMENT SECTION ────────────────────────────────────────── */
.ddt-head-section { padding: 4rem 0 3.5rem; background: #fff; }

.ddt-head-card {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 3rem;
  background: var(--panel-soft);
  border: 1.5px solid var(--line);
  border-radius: 18px;
  padding: 2.5rem;
  align-items: start;
}
@media (max-width: 720px) {
  .ddt-head-card { grid-template-columns: 1fr; gap: 1.8rem; padding: 1.8rem 1.4rem; }
}

.ddt-head-photo-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .7rem;
  flex-shrink: 0;
}
.ddt-head-photo {
  width: 200px;
  height: 240px;
  object-fit: cover;
  object-position: top center;
  border-radius: 14px;
  display: block;
  box-shadow: 0 8px 28px rgba(4,36,22,.12);
}
.ddt-head-photo-badge {
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--green-900);
  background: rgba(8,115,72,.1);
  border-radius: 20px;
  padding: .3rem .9rem;
  text-align: center;
}

.ddt-head-info { display: flex; flex-direction: column; gap: .55rem; }
.ddt-kicker {
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--green-900);
  margin: 0;
  display: block;
}
.ddt-kicker--light { color: rgba(255,255,255,.7); }
.ddt-head-info h2 {
  font-size: 1.55rem;
  font-weight: 900;
  color: var(--ink);
  margin: 0;
  line-height: 1.2;
}
.ddt-head-role { font-size: .92rem; color: var(--green-900); font-weight: 600; margin: 0; }
.ddt-head-dept { font-size: .82rem; color: var(--muted); margin: 0; }
.ddt-head-dept span { font-weight: 700; color: var(--ink); }
.ddt-head-mandate {
  background: #fff;
  border-left: 3px solid var(--green-900);
  border-radius: 0 10px 10px 0;
  padding: .9rem 1.1rem;
  margin: .3rem 0 .5rem;
  display: flex;
  flex-direction: column;
  gap: .4rem;
}
.ddt-head-mandate p { font-size: .84rem; color: var(--muted); line-height: 1.7; margin: 0; }

/* ─── OVERVIEW + SERVICE PATH ──────────────────────────────────────────── */
.ddt-overview-section {
  padding: 4rem 0;
  background: var(--panel-soft);
  border-top: 1px solid var(--line);
}
.ddt-overview-grid {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 4rem;
  align-items: start;
}
@media (max-width: 1024px) { .ddt-overview-grid { grid-template-columns: 1fr; gap: 2.5rem; } }

.ddt-overview-copy h2 {
  font-size: clamp(1.25rem, 2.5vw, 1.65rem);
  font-weight: 900;
  color: var(--ink);
  margin: .4rem 0 1rem;
  line-height: 1.25;
}
.ddt-overview-paras { display: flex; flex-direction: column; gap: .9rem; }
.ddt-overview-paras p { font-size: .9rem; color: var(--muted); line-height: 1.8; margin: 0; }

.ddt-support-chips { margin-top: 1.4rem; }
.ddt-support-chips-list { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .5rem; }
.ddt-support-chip {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  font-size: .75rem;
  font-weight: 600;
  color: var(--ink);
  background: rgba(8,115,72,.08);
  border-radius: 20px;
  padding: .3rem .8rem;
}
.ddt-support-chip svg { color: var(--green-900); flex-shrink: 0; }

.ddt-service-path {
  background: var(--green-900);
  border-radius: 18px;
  padding: 2rem 1.8rem;
  color: #fff;
}
.ddt-service-path h3 {
  font-size: 1.05rem;
  font-weight: 800;
  color: #fff;
  margin: .3rem 0 1.4rem;
  line-height: 1.3;
}
.ddt-path-steps { list-style: none; padding: 0; margin: 0 0 1.5rem; display: flex; flex-direction: column; gap: .85rem; }
.ddt-path-step { display: flex; align-items: flex-start; gap: .85rem; }
.ddt-path-num {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(255,255,255,.15);
  border: 1.5px solid rgba(255,255,255,.25);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .72rem;
  font-weight: 800;
  color: var(--flag-gold);
  flex-shrink: 0;
  margin-top: .1rem;
}
.ddt-path-text { font-size: .84rem; color: rgba(255,255,255,.8); line-height: 1.65; }
.ddt-path-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(255,255,255,.12);
}

/* ─── SUB-FUNCTIONS ─────────────────────────────────────────────────────── */
.ddt-subs-section { padding: 4.5rem 0 4rem; background: #fff; }
.ddt-subs-head {
  text-align: center;
  max-width: 680px;
  margin: 0 auto 2.8rem;
}
.ddt-subs-head h2 {
  font-size: clamp(1.3rem, 2.5vw, 1.75rem);
  font-weight: 900;
  color: var(--ink);
  margin: .4rem 0 .7rem;
  line-height: 1.2;
}
.ddt-subs-head p { font-size: .88rem; color: var(--muted); line-height: 1.75; margin: 0; }

.ddt-subs-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.25rem;
}

.ddt-sub-card {
  background: var(--panel-soft);
  border: 1.5px solid var(--line);
  border-radius: 14px;
  padding: 1.4rem 1.25rem 1.1rem;
  transition: border-color .18s, box-shadow .22s, transform .2s;
}
.ddt-sub-card:hover {
  border-color: rgba(8,115,72,.25);
  box-shadow: 0 6px 24px rgba(8,115,72,.07);
  transform: translateY(-2px);
}
.ddt-sub-card-top { display: flex; align-items: flex-start; gap: .8rem; margin-bottom: .9rem; }
.ddt-sub-num {
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .05em;
  color: var(--green-900);
  background: rgba(8,115,72,.1);
  border-radius: 8px;
  padding: .25rem .55rem;
  flex-shrink: 0;
  margin-top: .15rem;
  font-variant-numeric: tabular-nums;
}

.ddt-sub-details { flex: 1; min-width: 0; }
.ddt-sub-details summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  list-style: none;
  gap: .5rem;
  outline: none;
}
.ddt-sub-details summary::-webkit-details-marker { display: none; }
.ddt-sub-details summary h3 {
  font-size: .92rem;
  font-weight: 800;
  color: var(--ink);
  margin: 0;
  line-height: 1.35;
}
.ddt-sub-toggle { flex-shrink: 0; color: var(--muted); transition: transform .2s; display: flex; }
.ddt-sub-details[open] .ddt-sub-toggle { transform: rotate(180deg); }

.ddt-sub-list {
  list-style: none;
  padding: .7rem 0 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: .4rem;
}
.ddt-sub-list li {
  font-size: .8rem;
  color: var(--muted);
  line-height: 1.6;
  padding-left: 1rem;
  position: relative;
}
.ddt-sub-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: .55em;
  width: 5px;
  height: 5px;
  background: var(--green-900);
  border-radius: 50%;
}

.ddt-sub-preview {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem;
  margin-top: .7rem;
  padding-top: .7rem;
  border-top: 1px solid var(--line);
}
.ddt-sub-preview-item {
  font-size: .7rem;
  color: var(--muted);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: .2rem .6rem;
  white-space: nowrap;
  max-width: 18ch;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ddt-sub-more {
  font-size: .7rem;
  font-weight: 700;
  color: var(--green-900);
  background: rgba(8,115,72,.08);
  border-radius: 20px;
  padding: .2rem .6rem;
  white-space: nowrap;
}

/* ─── FULL FUNCTION LIST (dark) ─────────────────────────────────────────── */
.ddt-fn-section { padding: 4.5rem 0 4rem; background: var(--green-900); }
.ddt-fn-head {
  text-align: center;
  max-width: 620px;
  margin: 0 auto 2.8rem;
}
.ddt-fn-head h2 {
  font-size: clamp(1.3rem, 2.5vw, 1.75rem);
  font-weight: 900;
  color: #fff;
  margin: .4rem 0 .7rem;
  line-height: 1.2;
}
.ddt-fn-head p { font-size: .88rem; color: rgba(255,255,255,.65); line-height: 1.75; margin: 0; }

.ddt-fn-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: .75rem;
}
.ddt-fn-item {
  display: flex;
  align-items: flex-start;
  gap: .85rem;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 10px;
  padding: .85rem 1rem;
  transition: background .18s, border-color .18s;
}
.ddt-fn-item:hover {
  background: rgba(255,255,255,.1);
  border-color: rgba(255,255,255,.18);
}
.ddt-fn-num {
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .05em;
  color: var(--flag-gold);
  flex-shrink: 0;
  padding-top: .1em;
  font-variant-numeric: tabular-nums;
  min-width: 1.8ch;
}
.ddt-fn-text { font-size: .82rem; color: rgba(255,255,255,.8); line-height: 1.65; }

/* ─── RELATED DEPARTMENTS ───────────────────────────────────────────────── */
.ddt-related-section {
  padding: 4rem 0;
  background: var(--panel-soft);
  border-top: 1px solid var(--line);
}
.ddt-related-head { margin-bottom: 2.2rem; }
.ddt-related-head h2 {
  font-size: clamp(1.2rem, 2.5vw, 1.6rem);
  font-weight: 900;
  color: var(--ink);
  margin: .4rem 0 0;
  line-height: 1.2;
}

.ddt-related-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
}
@media (max-width: 860px) { .ddt-related-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 540px) { .ddt-related-grid { grid-template-columns: 1fr; } }

.ddt-related-card {
  border-radius: 16px;
  overflow: hidden;
  border: 1.5px solid var(--line);
  display: flex;
  flex-direction: column;
  transition: box-shadow .22s, transform .2s;
}
.ddt-related-card:hover {
  box-shadow: 0 10px 36px rgba(4,36,22,.12);
  transform: translateY(-3px);
}
.ddt-related-img {
  height: 120px;
  background-size: cover;
  background-position: center;
  flex-shrink: 0;
}
.ddt-related-body {
  padding: 1.1rem 1.1rem .9rem;
  display: flex;
  flex-direction: column;
  gap: .5rem;
  flex: 1;
  background: #fff;
}
.ddt-related-hod { display: flex; align-items: center; gap: .5rem; }
.ddt-related-hod img {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  object-fit: cover;
  object-position: top center;
  border: 2px solid var(--line);
  flex-shrink: 0;
}
.ddt-related-hod span {
  font-size: .72rem;
  color: var(--muted);
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ddt-related-body h3 {
  font-size: .9rem;
  font-weight: 800;
  color: var(--ink);
  margin: 0;
  line-height: 1.3;
}
.ddt-related-body p {
  font-size: .78rem;
  color: var(--muted);
  line-height: 1.65;
  margin: 0;
  flex: 1;
}
.ddt-related-link {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  font-size: .76rem;
  font-weight: 700;
  color: var(--green-900);
  text-decoration: none;
  margin-top: .2rem;
  transition: gap .18s;
}
.ddt-related-link:hover { gap: .65rem; }

/* ─── DDT CTA SECTION ───────────────────────────────────────────────────── */
.ddt-cta-section {
  padding: 4rem 0;
  background: #fff;
  border-top: 1px solid var(--line);
}
.ddt-cta-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.1rem;
}
@media (max-width: 1100px) { .ddt-cta-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .ddt-cta-grid { grid-template-columns: 1fr; } }

.ddt-cta-card {
  background: var(--panel-soft);
  border: 1.5px solid var(--line);
  border-radius: 14px;
  padding: 1.5rem 1.3rem 1.2rem;
  display: flex;
  flex-direction: column;
  gap: .55rem;
  transition: border-color .18s, box-shadow .2s, transform .22s;
}
.ddt-cta-card:hover {
  border-color: rgba(8,115,72,.2);
  box-shadow: 0 8px 28px rgba(8,115,72,.07);
  transform: translateY(-2px);
}
.ddt-cta-card--primary { background: var(--green-900); border-color: var(--green-900); }
.ddt-cta-card--primary h3 { color: #fff; }
.ddt-cta-card--primary p  { color: rgba(255,255,255,.68); }
.ddt-cta-card--primary .ddt-cta-icon { background: rgba(255,255,255,.1); color: var(--flag-gold); }
.ddt-cta-icon {
  width: 50px;
  height: 50px;
  border-radius: 12px;
  background: rgba(8,115,72,.07);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--green-900);
  margin-bottom: .3rem;
}
.ddt-cta-card h3 { font-size: .97rem; font-weight: 800; color: var(--ink); margin: 0; }
.ddt-cta-card p  { font-size: .82rem; color: var(--muted); line-height: 1.65; margin: 0; flex: 1; }
.ddt-cta-card .v2-btn { margin-top: .3rem; align-self: flex-start; }


/* ═══════════════════════════════════════════════════════════════════════════
   RESOURCE CENTRE  (rc-*)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ─── HERO ──────────────────────────────────────────────────────────────── */
.rc-hero {
  background: var(--green-900);
  background-size: cover;
  background-position: center;
  padding: 4rem 0 2rem;
  position: relative;
  overflow: hidden;
}
.rc-hero-pattern {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    -45deg,
    rgba(255,255,255,.025) 0,
    rgba(255,255,255,.025) 1px,
    transparent 1px,
    transparent 28px
  );
  pointer-events: none;
}
.rc-hero-inner { position: relative; z-index: 1; }

.rc-hero-breadcrumb {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: .77rem;
  color: rgba(255,255,255,.5);
  margin-bottom: 1.6rem;
}
.rc-hero-breadcrumb a { color: rgba(255,255,255,.5); text-decoration: none; transition: color .15s; }
.rc-hero-breadcrumb a:hover { color: #fff; }
.rc-hero-breadcrumb span:not([aria-hidden]) { color: rgba(255,255,255,.82); }

.rc-hero-copy { margin-bottom: 1.4rem; }
.rc-hero-eyebrow {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--flag-gold);
  margin: 0 0 .6rem;
}
.rc-hero-copy h1 {
  font-size: clamp(2rem, 4.5vw, 3rem);
  font-weight: 900;
  color: #fff;
  margin: 0 0 .9rem;
  line-height: 1.1;
}
.rc-hero-lead {
  font-size: clamp(.9rem, 1.5vw, 1.05rem);
  color: rgba(255,255,255,.72);
  line-height: 1.7;
  margin: 0;
  max-width: 64ch;
}

.rc-hero-stats {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 14px;
  padding: 1.1rem 1.6rem;
  max-width: 720px;
  gap: 0;
}
.rc-hero-stat {
  display: flex;
  flex-direction: column;
  gap: .2rem;
  flex: 1;
  min-width: 110px;
  text-align: center;
}
.rc-hero-stat-val {
  font-size: 1.6rem;
  font-weight: 900;
  color: var(--flag-gold);
  line-height: 1;
}
.rc-hero-stat-lbl {
  font-size: .72rem;
  color: rgba(255,255,255,.6);
  line-height: 1.3;
}
.rc-hero-stat-div {
  width: 1px;
  height: 36px;
  background: rgba(255,255,255,.15);
  flex-shrink: 0;
}
@media (max-width: 700px) {
  .rc-hero-stats { flex-wrap: wrap; gap: 1rem; padding: 1rem 1.2rem; }
  .rc-hero-stat-div { display: none; }
  .rc-hero-stat { min-width: 100px; text-align: left; }
}

/* ─── SHARED SECTION HEAD ───────────────────────────────────────────────── */
.rc-section-head { margin-bottom: 1.6rem; }
.rc-section-head--center { text-align: center; max-width: 620px; margin-inline: auto; }

.rc-kicker {
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--green-900);
  margin: 0 0 .5rem;
  display: block;
}
.rc-kicker--inv     { color: rgba(255,255,255,.72); }
.rc-kicker--on-dark { color: var(--flag-gold); }

.rc-section-head h2 {
  font-size: clamp(1.3rem, 2.5vw, 1.75rem);
  font-weight: 900;
  color: var(--ink);
  margin: 0 0 .65rem;
  line-height: 1.2;
}
.rc-section-head p { font-size: .88rem; color: var(--muted); line-height: 1.75; margin: 0; }
.rc-section-head--on-dark h2 { color: #fff; }
.rc-section-head--on-dark p  { color: rgba(255,255,255,.65); }

/* ─── FILTER BAR ────────────────────────────────────────────────────────── */
.rc-filter-bar {
  position: sticky;
  top: 64px;
  z-index: 80;
  background: #fff;
  border-bottom: 1.5px solid var(--line);
  box-shadow: 0 2px 14px rgba(4,36,22,.06);
}
.rc-filter-inner {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding-top: .7rem;
  padding-bottom: .7rem;
  flex-wrap: wrap;
}
.rc-filter-tabs {
  display: flex;
  align-items: center;
  gap: .35rem;
  flex-wrap: wrap;
  flex: 1;
}
.rc-filter-tab {
  font-size: .8rem;
  font-weight: 700;
  color: var(--muted);
  background: transparent;
  border: 1.5px solid transparent;
  border-radius: 20px;
  padding: .38rem .9rem;
  cursor: pointer;
  transition: color .15s, background .15s, border-color .15s;
  white-space: nowrap;
}
.rc-filter-tab:hover { color: var(--ink); background: var(--panel-soft); }
.rc-filter-tab.is-active {
  color: var(--green-900);
  background: rgba(8,115,72,.08);
  border-color: rgba(8,115,72,.28);
}
.rc-filter-right { display: flex; align-items: center; gap: .75rem; flex-shrink: 0; }
.rc-filter-search {
  display: flex;
  align-items: center;
  gap: .4rem;
  background: var(--panel-soft);
  border: 1.5px solid var(--line);
  border-radius: 22px;
  padding: .35rem .55rem .35rem .9rem;
  transition: border-color .15s, box-shadow .15s;
}
.rc-filter-search:focus-within {
  border-color: rgba(8,115,72,.4);
  box-shadow: 0 0 0 3px rgba(8,115,72,.06);
}
.rc-filter-search input {
  border: none;
  background: transparent;
  font-size: .82rem;
  color: var(--ink);
  outline: none;
  width: 200px;
  min-width: 0;
}
.rc-filter-search input::placeholder { color: var(--muted); }
.rc-filter-search button {
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--muted);
  display: flex;
  padding: .2rem;
  transition: color .15s;
}
.rc-filter-search button:hover { color: var(--green-900); }
.rc-filter-count { font-size: .75rem; color: var(--muted); white-space: nowrap; min-width: 6ch; }

@media (max-width: 700px) {
  .rc-filter-inner { flex-direction: column; align-items: stretch; gap: .6rem; }
  .rc-filter-right  { justify-content: space-between; }
  .rc-filter-search input { width: 100%; }
}

/* ─── FEATURED DOCUMENTS ────────────────────────────────────────────────── */
.rc-featured-section {
  padding: 2.8rem 0;
  background: var(--panel-soft);
  border-top: 1px solid var(--line);
}
.rc-featured-grid {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr;
  gap: 1.2rem;
  align-items: start;
}
@media (max-width: 960px) { .rc-featured-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 580px) { .rc-featured-grid { grid-template-columns: 1fr; } }

.rc-featured-card {
  background: #fff;
  border: 1.5px solid var(--line);
  border-radius: 16px;
  padding: 1.6rem 1.4rem 1.2rem;
  display: flex;
  flex-direction: column;
  gap: .75rem;
  transition: box-shadow .22s, transform .2s, border-color .18s;
}
.rc-featured-card:hover {
  box-shadow: 0 8px 28px rgba(8,115,72,.09);
  transform: translateY(-2px);
  border-color: rgba(8,115,72,.22);
}
.rc-featured-card--primary {
  border-color: rgba(8,115,72,.28);
  background: linear-gradient(145deg, rgba(8,115,72,.04) 0%, #fff 55%);
}
.rc-featured-card-top { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }

.rc-featured-badge {
  font-size: .64rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  border-radius: 20px;
  padding: .2rem .65rem;
}
.rc-badge--green   { background: rgba(8,115,72,.1); color: var(--green-900); }
.rc-badge--gold    { background: rgba(160,120,0,.1); color: #7a5700; }
.rc-badge--blue    { background: rgba(20,80,160,.08); color: #143fa0; }
.rc-badge--default { background: var(--panel-soft); color: var(--muted); border: 1px solid var(--line); }
.rc-badge--latest  { background: var(--flag-gold); color: #fff; }

.rc-featured-doc-icon {
  width: 52px;
  height: 52px;
  border-radius: 13px;
  background: rgba(8,115,72,.07);
  color: var(--green-900);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-bottom: .1rem;
}
.rc-featured-card-body { flex: 1; display: flex; flex-direction: column; gap: .5rem; }
.rc-featured-title {
  font-size: 1.02rem;
  font-weight: 800;
  color: var(--ink);
  margin: 0;
  line-height: 1.3;
}
.rc-featured-desc {
  font-size: .83rem;
  color: var(--muted);
  line-height: 1.7;
  margin: 0;
}
.rc-featured-card-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: .85rem;
  border-top: 1px solid var(--line);
  gap: .5rem;
  flex-wrap: wrap;
}
.rc-featured-date {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  font-size: .73rem;
  color: var(--muted);
}
.rc-featured-link {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-size: .78rem;
  font-weight: 700;
  color: var(--green-900);
  text-decoration: none;
  transition: gap .16s;
}
.rc-featured-link:hover { gap: .62rem; }

/* ─── DOCUMENTS GRID ────────────────────────────────────────────────────── */
.rc-docs-section {
  padding: 2.8rem 0;
  background: #fff;
}
.rc-docs-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
}
@media (max-width: 960px) { .rc-docs-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 580px) { .rc-docs-grid { grid-template-columns: 1fr; } }

.rc-doc-card {
  background: var(--panel-soft);
  border: 1.5px solid var(--line);
  border-radius: 14px;
  padding: 1.3rem 1.2rem 1rem;
  display: flex;
  flex-direction: column;
  gap: .6rem;
  transition: border-color .18s, box-shadow .2s, transform .18s;
}
.rc-doc-card[hidden] { display: none; }
.rc-doc-card:hover {
  border-color: rgba(8,115,72,.25);
  box-shadow: 0 6px 22px rgba(8,115,72,.07);
  transform: translateY(-2px);
}

.rc-doc-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
}
.rc-doc-icon {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  background: rgba(8,115,72,.08);
  color: var(--green-900);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.rc-doc-badge {
  font-size: .64rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  background: rgba(8,115,72,.08);
  color: var(--green-900);
  border-radius: 20px;
  padding: .18rem .6rem;
  text-align: right;
  max-width: 16ch;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.rc-doc-card-body { flex: 1; display: flex; flex-direction: column; gap: .35rem; }
.rc-doc-title { font-size: .95rem; font-weight: 800; color: var(--ink); margin: 0; line-height: 1.3; }
.rc-doc-meta {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  font-size: .72rem;
  color: var(--muted);
  margin: 0;
}
.rc-doc-desc { font-size: .8rem; color: var(--ink, #111827); line-height: 1.65; margin: 0; }
.rc-doc-card-foot {
  padding-top: .65rem;
  border-top: 1px solid var(--line);
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-wrap: wrap;
}
.rc-doc-view-btn {
  display: inline-flex;
  align-items: center;
  gap: .38rem;
  font-size: .76rem;
  font-weight: 700;
  color: var(--green-900);
  background: rgba(8,115,72,.07);
  border: 1.5px solid rgba(8,115,72,.18);
  border-radius: 7px;
  padding: .3rem .72rem;
  cursor: pointer;
  transition: background .15s, border-color .15s;
  white-space: nowrap;
}
.rc-doc-view-btn:hover { background: rgba(8,115,72,.13); border-color: rgba(8,115,72,.35); }
.rc-doc-dl-btn {
  display: inline-flex;
  align-items: center;
  gap: .38rem;
  font-size: .76rem;
  font-weight: 600;
  color: var(--muted);
  text-decoration: none;
  background: transparent;
  border: 1.5px solid var(--line);
  border-radius: 7px;
  padding: .3rem .72rem;
  transition: color .15s, border-color .15s;
  white-space: nowrap;
}
.rc-doc-dl-btn:hover { color: var(--ink); border-color: rgba(0,0,0,.22); }

.rc-no-results {
  padding: 4rem 1rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  color: var(--muted);
  margin-top: 1rem;
}
.rc-no-results[hidden] { display: none; }
.rc-no-results p { font-size: .9rem; max-width: 42ch; line-height: 1.7; }

/* ─── MINISTRY MAGAZINE ─────────────────────────────────────────────────── */
.rc-mag-section {
  padding: 2.8rem 0;
  background: var(--panel-soft);
  border-top: 1px solid var(--line);
}
.rc-mag-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
  margin-bottom: 1.4rem;
}
@media (max-width: 960px) { .rc-mag-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 580px) {
  .rc-mag-grid { grid-template-columns: 1fr; max-width: 360px; margin-inline: auto; }
}

.rc-mag-card {
  background: #fff;
  border: 1.5px solid var(--line);
  border-radius: 18px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow .22s, transform .2s;
}
.rc-mag-card:hover {
  box-shadow: 0 14px 44px rgba(4,36,22,.11);
  transform: translateY(-4px);
}
.rc-mag-card--latest {
  border-color: var(--flag-gold);
  box-shadow: 0 4px 18px rgba(180,130,0,.12);
}

.rc-mag-cover {
  position: relative;
  height: 290px;
  overflow: hidden;
  background: var(--green-900);
  flex-shrink: 0;
}
.rc-mag-cover-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
  transition: transform .45s ease;
}
.rc-mag-card:hover .rc-mag-cover-img { transform: scale(1.05); }
.rc-mag-cover-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(4,36,22,.55) 0%, transparent 50%);
  pointer-events: none;
  transition: background .3s;
}
.rc-mag-card:hover .rc-mag-cover-overlay {
  background: linear-gradient(to top, rgba(4,36,22,.75) 0%, rgba(4,36,22,.25) 60%, transparent 100%);
}
.rc-mag-cover-read-btn {
  position: absolute;
  bottom: 1rem;
  left: 50%;
  transform: translateX(-50%) translateY(6px);
  opacity: 0;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  font-size: .78rem;
  font-weight: 700;
  color: var(--green-900);
  background: #fff;
  border: none;
  border-radius: 20px;
  padding: .5rem 1.1rem;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity .25s, transform .25s;
  z-index: 3;
}
.rc-mag-card:hover .rc-mag-cover-read-btn {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
.rc-mag-cover-badge {
  position: absolute;
  top: .85rem;
  left: .85rem;
  font-size: .64rem;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
  background: var(--flag-gold);
  color: #fff;
  border-radius: 20px;
  padding: .25rem .75rem;
  z-index: 2;
}

.rc-mag-card-body {
  padding: 1.4rem 1.3rem 1.2rem;
  display: flex;
  flex-direction: column;
  gap: .5rem;
  flex: 1;
}
.rc-mag-card-meta {
  display: flex;
  align-items: center;
  gap: .4rem;
  font-size: .72rem;
  color: var(--muted);
}
.rc-mag-card-title {
  font-size: .98rem;
  font-weight: 800;
  color: var(--ink);
  margin: 0;
  line-height: 1.3;
}
.rc-mag-card-desc {
  font-size: .8rem;
  color: var(--muted);
  line-height: 1.72;
  margin: 0;
  flex: 1;
}
.rc-mag-card-foot {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: .3rem;
  padding-top: .8rem;
  border-top: 1px solid var(--line);
}
.rc-mag-action-primary {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-size: .78rem;
  font-weight: 700;
  color: #fff;
  background: var(--green-900);
  border: 1.5px solid var(--green-900);
  border-radius: 8px;
  padding: .42rem 1rem;
  cursor: pointer;
  text-decoration: none;
  transition: opacity .15s, transform .15s;
  white-space: nowrap;
}
.rc-mag-action-primary:hover { opacity: .88; transform: translateY(-1px); }
.rc-mag-action-primary--outline {
  color: var(--green-900);
  background: transparent;
}
.rc-mag-action-primary--outline:hover { background: rgba(8,115,72,.07); opacity: 1; }
.rc-mag-action-secondary {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-size: .78rem;
  font-weight: 600;
  color: var(--green-900);
  background: transparent;
  border: 1.5px solid rgba(8,115,72,.3);
  border-radius: 8px;
  padding: .42rem .9rem;
  text-decoration: none;
  transition: border-color .15s, background .15s;
  white-space: nowrap;
}
.rc-mag-action-secondary:hover { border-color: rgba(8,115,72,.6); background: rgba(8,115,72,.04); }
.rc-mag-action-secondary--ghost {
  color: var(--muted);
  border-color: var(--line);
}
.rc-mag-action-secondary--ghost:hover { color: var(--ink); border-color: rgba(0,0,0,.2); background: transparent; }

/* scalability / add-more strip */
.rc-mag-expand-strip {
  display: flex;
  align-items: center;
  gap: 1.1rem;
  background: rgba(8,115,72,.05);
  border: 1.5px dashed rgba(8,115,72,.22);
  border-radius: 12px;
  padding: 1rem 1.4rem;
  color: var(--green-900);
}
.rc-mag-expand-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: rgba(8,115,72,.1);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.rc-mag-expand-strip p {
  font-size: .8rem;
  color: var(--muted);
  margin: 0;
  flex: 1;
  line-height: 1.6;
}
@media (max-width: 640px) {
  .rc-mag-expand-strip { flex-direction: column; text-align: center; }
}

/* ─── RESOURCE GROUPS (dark section) ───────────────────────────────────── */
.rc-groups-section {
  padding: 2.8rem 0;
  background: var(--green-900);
}
.rc-groups-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.3rem;
}
@media (max-width: 768px) { .rc-groups-grid { grid-template-columns: 1fr; } }

.rc-group-card {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.11);
  border-radius: 16px;
  padding: 1.8rem 1.5rem 1.5rem;
  transition: background .18s, border-color .18s;
}
.rc-group-card:hover {
  background: rgba(255,255,255,.1);
  border-color: rgba(255,255,255,.2);
}
.rc-group-icon {
  width: 46px;
  height: 46px;
  border-radius: 11px;
  background: rgba(255,255,255,.1);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--flag-gold);
  margin-bottom: 1.1rem;
}
.rc-group-title {
  font-size: .95rem;
  font-weight: 800;
  color: #fff;
  margin: 0 0 .9rem;
  line-height: 1.3;
  text-transform: capitalize;
}
.rc-group-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: .45rem;
}
.rc-group-list li {
  font-size: .82rem;
  color: rgba(255,255,255,.7);
  padding-left: 1.1rem;
  position: relative;
  line-height: 1.55;
}
.rc-group-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: .58em;
  width: 5px;
  height: 5px;
  background: var(--flag-gold);
  border-radius: 50%;
}

/* ─── CTA SECTION ───────────────────────────────────────────────────────── */
.rc-cta-section {
  padding: 2.8rem 0;
  background: #fff;
  border-top: 1px solid var(--line);
}
.rc-cta-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.1rem;
}
@media (max-width: 1100px) { .rc-cta-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .rc-cta-grid { grid-template-columns: 1fr; } }

.rc-cta-card {
  background: var(--panel-soft);
  border: 1.5px solid var(--line);
  border-radius: 14px;
  padding: 1.5rem 1.3rem 1.2rem;
  display: flex;
  flex-direction: column;
  gap: .55rem;
  transition: border-color .18s, box-shadow .2s, transform .22s;
}
.rc-cta-card:hover {
  border-color: rgba(8,115,72,.2);
  box-shadow: 0 8px 28px rgba(8,115,72,.07);
  transform: translateY(-2px);
}
.rc-cta-card--primary { background: var(--green-900); border-color: var(--green-900); }
.rc-cta-card--primary h3 { color: #fff; }
.rc-cta-card--primary p  { color: rgba(255,255,255,.68); }
.rc-cta-card--primary .rc-cta-icon { background: rgba(255,255,255,.1); color: var(--flag-gold); }
.rc-cta-icon {
  width: 50px;
  height: 50px;
  border-radius: 12px;
  background: rgba(8,115,72,.07);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--green-900);
  margin-bottom: .3rem;
}
.rc-cta-card h3 { font-size: .97rem; font-weight: 800; color: var(--ink); margin: 0; }
.rc-cta-card p  { font-size: .82rem; color: var(--muted); line-height: 1.65; margin: 0; flex: 1; }
.rc-cta-card .v2-btn { margin-top: .3rem; align-self: flex-start; }

/* ─── HERO — two-col layout ─────────────────────────────────────────────── */
.rc-hero-main {
  display: flex;
  align-items: flex-end;
  gap: 2.5rem;
  flex-wrap: wrap;
}
.rc-hero-copy { flex: 1; min-width: 280px; margin-bottom: 0; }
.rc-hero-stats { flex-shrink: 0; }
@media (max-width: 860px) {
  .rc-hero-main { flex-direction: column; align-items: flex-start; gap: 1.4rem; }
}

/* ─── SECTION HEAD — row variant ────────────────────────────────────────── */
.rc-sh-row {
  display: flex;
  align-items: flex-end;
  gap: 2rem;
  flex-wrap: wrap;
  margin-bottom: 1.6rem;
}
.rc-sh-row .rc-sh-left { flex: 1; min-width: 200px; }
.rc-sh-row .rc-sh-left h2 { margin: 0; }
.rc-sh-desc {
  flex: 1;
  font-size: .86rem;
  color: var(--muted);
  line-height: 1.75;
  margin: 0;
  max-width: 44ch;
  padding-bottom: .1rem;
}
.rc-sh-desc--light { color: rgba(255,255,255,.6); }
@media (max-width: 700px) {
  .rc-sh-row { flex-direction: column; align-items: flex-start; gap: .4rem; }
  .rc-sh-desc { max-width: 100%; }
}

/* ─── FEATURED — view button ────────────────────────────────────────────── */
.rc-feat-badges { display: flex; flex-wrap: wrap; gap: .35rem; }
.rc-view-btn {
  display: inline-flex;
  align-items: center;
  gap: .42rem;
  font-size: .78rem;
  font-weight: 700;
  color: var(--green-900);
  background: transparent;
  border: 1.5px solid rgba(8,115,72,.3);
  border-radius: 8px;
  padding: .35rem .85rem;
  cursor: pointer;
  transition: background .15s, border-color .15s;
  white-space: nowrap;
}
.rc-view-btn:hover { background: rgba(8,115,72,.07); border-color: rgba(8,115,72,.55); }
.rc-featured-card-body { flex: 1; display: flex; flex-direction: column; gap: .45rem; }

/* ─── MAGAZINE — info strip ─────────────────────────────────────────────── */
.rc-mag-info-strip {
  display: flex;
  align-items: center;
  gap: 1rem;
  background: rgba(8,115,72,.06);
  border: 1.5px dashed rgba(8,115,72,.22);
  border-radius: 10px;
  padding: .85rem 1.3rem;
  color: var(--green-900);
}
.rc-mag-info-strip p {
  font-size: .8rem;
  color: var(--muted);
  margin: 0;
  flex: 1;
  line-height: 1.6;
}
.rc-mag-info-link {
  font-size: .78rem;
  font-weight: 700;
  color: var(--green-900);
  text-decoration: none;
  white-space: nowrap;
  transition: opacity .15s;
}
.rc-mag-info-link:hover { opacity: .7; }
@media (max-width: 600px) {
  .rc-mag-info-strip { flex-direction: column; text-align: center; }
  .rc-mag-info-strip svg { display: none; }
}

/* ─── CLEAR FILTER BUTTON ───────────────────────────────────────────────── */
.rc-clear-all-btn {
  font-size: .8rem;
  font-weight: 700;
  color: var(--green-900);
  background: transparent;
  border: 1.5px solid rgba(8,115,72,.3);
  border-radius: 8px;
  padding: .4rem 1rem;
  cursor: pointer;
  transition: background .15s, border-color .15s;
}
.rc-clear-all-btn:hover { background: rgba(8,115,72,.07); border-color: rgba(8,115,72,.5); }

/* ─── SEARCH CLEAR BUTTON ───────────────────────────────────────────────── */
.rc-search-clear {
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--muted);
  display: flex;
  padding: .15rem;
  transition: color .15s;
  flex-shrink: 0;
}
.rc-search-clear:hover { color: var(--ink); }

/* ═══════════════════════════════════════════════════════════════════════════
   STANDARD PDF / PAGE VIEWER MODAL  (rc-viewer-*)
   ═══════════════════════════════════════════════════════════════════════════ */
.rc-viewer-overlay {
  position: fixed;
  inset: 0;
  z-index: 8000;
  background: rgba(8,12,10,.88);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  opacity: 0;
  transition: opacity .22s;
}
.rc-viewer-overlay.is-visible { opacity: 1; }

.rc-viewer-shell {
  width: 100%;
  max-width: 960px;
  height: min(92vh, 780px);
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 30px 90px rgba(0,0,0,.45);
  position: relative;
  z-index: 1;
}
.rc-viewer-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .7rem 1.2rem;
  background: var(--green-900);
  color: #fff;
  flex-shrink: 0;
}
.rc-viewer-bar-title {
  font-size: .84rem;
  font-weight: 700;
  min-width: 0;
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rc-viewer-bar-actions { display: flex; align-items: center; gap: .5rem; flex-shrink: 0; }
.rc-viewer-dl-btn,
.rc-viewer-close-btn {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-size: .77rem;
  font-weight: 600;
  color: rgba(255,255,255,.88);
  background: rgba(255,255,255,.1);
  border: 1.5px solid rgba(255,255,255,.18);
  border-radius: 7px;
  padding: .32rem .8rem;
  cursor: pointer;
  text-decoration: none;
  transition: background .15s;
  white-space: nowrap;
}
.rc-viewer-dl-btn:hover,
.rc-viewer-close-btn:hover { background: rgba(255,255,255,.2); color: #fff; }
.rc-viewer-iframe-wrap { flex: 1; overflow: hidden; position: relative; }
.rc-viewer-iframe-wrap iframe {
  width: 100%;
  height: 100%;
  border: none;
  display: block;
}
.rc-viewer-backdrop {
  position: absolute;
  inset: 0;
  background: transparent;
  border: none;
  cursor: pointer;
  z-index: 0;
}
@media (max-width: 640px) {
  .rc-viewer-shell { height: 100svh; border-radius: 0; max-width: 100%; }
  .rc-viewer-overlay { padding: 0; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   FLIPBOOK VIEWER MODAL  (rc-fb-*, rc-book-*)
   Phase 1: animated book cover
   Phase 2: PDF reader with page-turn navigation
   ═══════════════════════════════════════════════════════════════════════════ */
.rc-fb-overlay {
  position: fixed;
  inset: 0;
  z-index: 9000;
  background: rgba(6,10,8,.92);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem 1rem;
  opacity: 0;
  transition: opacity .26s;
}
.rc-fb-overlay.is-visible { opacity: 1; }

.rc-fb-stage {
  position: relative;
  width: 100%;
  max-width: 920px;
  height: min(88vh, 660px);
  display: flex;
  align-items: stretch;
}

/* ── Close button ──────────────────────────────────────────────────────── */
.rc-fb-close-btn {
  position: fixed;
  top: 1rem;
  right: 1rem;
  z-index: 9001;
  width: 38px;
  height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.12);
  border: 1.5px solid rgba(255,255,255,.2);
  border-radius: 50%;
  color: #fff;
  cursor: pointer;
  transition: background .15s;
}
.rc-fb-close-btn:hover { background: rgba(255,255,255,.22); }

/* ── Backdrop ──────────────────────────────────────────────────────────── */
.rc-fb-backdrop {
  position: fixed;
  inset: 0;
  background: transparent;
  border: none;
  cursor: pointer;
  z-index: 0;
}

/* ── BOOK COVER (phase 1) ──────────────────────────────────────────────── */
.rc-book-cover {
  position: absolute;
  inset: 0;
  display: flex;
  border-radius: 6px 14px 14px 6px;
  overflow: hidden;
  box-shadow:
    -10px 10px 48px rgba(0,0,0,.65),
    10px 4px 28px rgba(0,0,0,.35);
  z-index: 2;
  transform-origin: left center;
  transition: transform .65s cubic-bezier(.4,0,.15,1), opacity .45s .2s;
}
.rc-book-cover.is-flipped {
  transform: rotateY(-185deg) perspective(1400px);
  opacity: 0;
}
.rc-book-spine-deco {
  width: 22px;
  flex-shrink: 0;
  background: linear-gradient(
    to right,
    rgba(0,0,0,.5) 0%,
    rgba(0,0,0,.25) 55%,
    rgba(0,0,0,.06) 100%
  );
}
.rc-book-cover-image {
  width: 44%;
  flex-shrink: 0;
  overflow: hidden;
  background: var(--green-900);
}
.rc-book-cover-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
}
.rc-book-cover-info {
  flex: 1;
  background: var(--green-900);
  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 2rem 2rem 2rem 1.8rem;
  gap: .9rem;
  overflow-y: auto;
}
.rc-book-cover-eyebrow {
  font-size: .67rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--flag-gold);
}
.rc-book-cover-title {
  font-size: clamp(1.05rem, 2.2vw, 1.5rem);
  font-weight: 900;
  color: #fff;
  line-height: 1.2;
  margin: 0;
}
.rc-book-cover-meta {
  font-size: .78rem;
  color: rgba(255,255,255,.6);
  margin: 0;
  letter-spacing: .03em;
}
.rc-book-cover-desc {
  font-size: .82rem;
  color: rgba(255,255,255,.72);
  line-height: 1.65;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.rc-book-cover-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  margin-top: .3rem;
}
.rc-book-open-btn {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-size: .82rem;
  font-weight: 700;
  color: var(--green-900);
  background: var(--flag-gold);
  border: none;
  border-radius: 8px;
  padding: .65rem 1.4rem;
  cursor: pointer;
  transition: opacity .15s, transform .15s;
  white-space: nowrap;
}
.rc-book-open-btn:hover { opacity: .88; transform: translateY(-1px); }
.rc-book-dl-link {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-size: .78rem;
  font-weight: 600;
  color: rgba(255,255,255,.7);
  text-decoration: none;
  border: 1.5px solid rgba(255,255,255,.22);
  border-radius: 8px;
  padding: .62rem 1rem;
  transition: color .15s, border-color .15s;
  white-space: nowrap;
}
.rc-book-dl-link:hover { color: #fff; border-color: rgba(255,255,255,.5); }

/* ── BOOK READER (phase 2) ──────────────────────────────────────────────── */
.rc-book-reader {
  position: absolute;
  inset: 0;
  flex-direction: column;
  border-radius: 6px 14px 14px 6px;
  overflow: hidden;
  box-shadow:
    -10px 10px 48px rgba(0,0,0,.65),
    10px 4px 28px rgba(0,0,0,.35);
  z-index: 1;
  opacity: 0;
  transition: opacity .35s;
}
.rc-book-reader.is-visible { opacity: 1; }

.rc-reader-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .8rem;
  padding: .6rem 1.1rem;
  background: var(--green-900);
  color: #fff;
  flex-shrink: 0;
}
.rc-reader-header-left {
  display: flex;
  align-items: center;
  gap: .7rem;
  min-width: 0;
  flex: 1;
}
.rc-reader-title {
  font-size: .8rem;
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rc-reader-page-pill {
  font-size: .7rem;
  background: rgba(255,255,255,.15);
  border-radius: 20px;
  padding: .15rem .55rem;
  white-space: nowrap;
  flex-shrink: 0;
}
.rc-reader-header-right { flex-shrink: 0; }
.rc-reader-dl-btn {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-size: .74rem;
  font-weight: 600;
  color: rgba(255,255,255,.8);
  text-decoration: none;
  background: rgba(255,255,255,.1);
  border: 1.5px solid rgba(255,255,255,.2);
  border-radius: 6px;
  padding: .28rem .7rem;
  transition: background .15s;
  white-space: nowrap;
}
.rc-reader-dl-btn:hover { background: rgba(255,255,255,.2); color: #fff; }

.rc-reader-body {
  flex: 1;
  display: flex;
  align-items: stretch;
  overflow: hidden;
  background: #f0ece6;
  position: relative;
}

/* Nav arrow zones */
.rc-reader-nav {
  width: 56px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 5;
  opacity: 0;
  transition: opacity .22s;
}
.rc-reader-body:hover .rc-reader-nav { opacity: 1; }
.rc-reader-nav--prev { background: linear-gradient(to right, rgba(0,0,0,.12), transparent); }
.rc-reader-nav--next { background: linear-gradient(to left,  rgba(0,0,0,.12), transparent); }
.rc-reader-nav button {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(0,0,0,.45);
  border: none;
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .15s;
}
.rc-reader-nav button:hover:not(:disabled) { background: var(--green-900); }
.rc-reader-nav button:disabled { opacity: .35; cursor: default; }

/* -- BOOK SPREAD (two-page layout) -------------------------------------- */
.rc-reader-frame {
  flex: 1;
  position: relative;
  display: flex;
  align-items: stretch;
  overflow: hidden;
}
.rc-book-spread {
  flex: 1;
  display: flex;
  align-items: stretch;
  position: relative;
  background: #2c2c2e;
}

/* Page halves */
.rc-spread-half {
  flex: 1;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f5f0e8;
  overflow: hidden;
}
.rc-spread-half canvas {
  display: block;
  max-width: 100%;
  max-height: 100%;
  box-shadow: 0 2px 16px rgba(0,0,0,.2);
}
.rc-spread-half.is-blank {
  background: linear-gradient(135deg, #ece6da 0%, #e0d8ca 100%);
}
.rc-spread-blank-deco {
  position: absolute; inset: 0; pointer-events: none;
  background: repeating-linear-gradient(0deg, transparent, transparent 28px, rgba(0,0,0,.035) 29px);
}

/* Book spine gutter */
.rc-book-gutter {
  width: 14px;
  flex-shrink: 0;
  background: linear-gradient(to right, #c0b8a8, #d5cdbf, #c0b8a8);
  position: relative;
  z-index: 2;
}
.rc-gutter-shadow-l {
  position: absolute; top: 0; left: 0; bottom: 0; width: 10px;
  background: linear-gradient(to right, rgba(0,0,0,.28), transparent);
}
.rc-gutter-shadow-r {
  position: absolute; top: 0; right: 0; bottom: 0; width: 10px;
  background: linear-gradient(to left, rgba(0,0,0,.28), transparent);
}

/* -- 3D flip layer ------------------------------------------------------- */
.rc-flip-layer {
  position: absolute;
  top: 0; bottom: 0;
  width: 50%;
  display: none;
  z-index: 20;
  pointer-events: none;
  perspective: 1800px;
}
.rc-flip-layer.is-fwd { left: 50%; perspective-origin: 0% 50%; }
.rc-flip-layer.is-bwd { left: 0;   perspective-origin: 100% 50%; }

.rc-flip-inner {
  position: absolute; inset: 0;
  transform-style: preserve-3d;
  transform: rotateY(0deg);
  will-change: transform;
}
.rc-flip-layer.is-fwd .rc-flip-inner { transform-origin: 0%   50%; }
.rc-flip-layer.is-bwd .rc-flip-inner { transform-origin: 100% 50%; }

.rc-flip-face {
  position: absolute; inset: 0;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  display: flex; align-items: center; justify-content: center;
  background: #f5f0e8;
  overflow: hidden;
}
.rc-flip-face--back { transform: rotateY(180deg); }
.rc-flip-face canvas { display: block; max-width: 100%; max-height: 100%; box-shadow: 0 2px 16px rgba(0,0,0,.2); }

/* Turning-edge shadow on the front face */
.rc-flip-layer.is-fwd .rc-flip-face--front::after {
  content: ''; position: absolute; top: 0; right: 0; bottom: 0; width: 22px;
  background: linear-gradient(to right, transparent, rgba(0,0,0,.18));
  pointer-events: none;
}
.rc-flip-layer.is-bwd .rc-flip-face--front::after {
  content: ''; position: absolute; top: 0; left: 0; bottom: 0; width: 22px;
  background: linear-gradient(to left, transparent, rgba(0,0,0,.18));
  pointer-events: none;
}

/* Loading overlay */
.rc-canvas-loading {
  position: absolute; inset: 0;
  display: none; flex-direction: column; align-items: center; justify-content: center; gap: 1rem;
  background: rgba(28,28,30,.72); z-index: 30; pointer-events: none;
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.rc-canvas-loading.is-loading { display: flex; }
.rc-canvas-spinner {
  display: block; width: 44px; height: 44px;
  border: 3px solid rgba(255,255,255,.18);
  border-top-color: #fff; border-radius: 50%;
  animation: rcSpinner .7s linear infinite;
}
.rc-canvas-loading-text { font-size: .76rem; color: rgba(255,255,255,.65); font-weight: 500; letter-spacing: .06em; }
@keyframes rcSpinner { to { transform: rotate(360deg); } }

/* -- Nav arrows ---------------------------------------------------------- */
.rc-reader-nav {
  width: 52px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  z-index: 10; opacity: 0; transition: opacity .22s;
}
.rc-reader-body:hover .rc-reader-nav { opacity: 1; }
.rc-reader-nav--prev { background: linear-gradient(to right, rgba(0,0,0,.15), transparent); }
.rc-reader-nav--next { background: linear-gradient(to left,  rgba(0,0,0,.15), transparent); }
.rc-reader-nav button {
  width: 40px; height: 40px; border-radius: 50%;
  background: rgba(0,0,0,.52); border: none; color: #fff; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .15s; backdrop-filter: blur(4px);
}
.rc-reader-nav button:hover:not(:disabled) { background: var(--green-900); }
.rc-reader-nav button:disabled { opacity: .28; cursor: default; }

/* -- Professional bottom toolbar ---------------------------------------- */
.rc-reader-toolbar {
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 .65rem; height: 48px;
  background: rgba(20,20,22,.96);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border-top: 1px solid rgba(255,255,255,.07);
  flex-shrink: 0; gap: .3rem;
}
.rc-tb-group { display: flex; align-items: center; gap: .12rem; }
.rc-tb-sep {
  display: block; width: 1px; height: 20px;
  background: rgba(255,255,255,.13); margin: 0 .25rem; flex-shrink: 0;
}
.rc-tb-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .28rem;
  width: 36px; height: 36px; border-radius: 8px; border: none;
  background: transparent; color: rgba(255,255,255,.76); cursor: pointer;
  transition: background .12s, color .12s; flex-shrink: 0;
  font-size: .72rem; font-weight: 600;
}
.rc-tb-btn:hover:not(:disabled) { background: rgba(255,255,255,.12); color: #fff; }
.rc-tb-btn:disabled { opacity: .28; cursor: default; }
.rc-tb-btn[aria-pressed="true"] { background: rgba(255,255,255,.16); color: #fff; }
.rc-tb-cover-btn { width: auto; padding: 0 .5rem; gap: .3rem; }
.rc-tb-label { font-size: .7rem; font-weight: 600; }
.rc-tb-page-pill {
  font-size: .76rem; font-weight: 600; color: rgba(255,255,255,.82);
  background: rgba(255,255,255,.1); border-radius: 20px;
  padding: .18rem .7rem; white-space: nowrap; letter-spacing: .02em;
}

/* Legacy iframe wrapper (kept for doc viewer) */
.rc-reader-iframe-wrap { flex: 1; position: relative; overflow: hidden; }
.rc-reader-iframe-wrap iframe { width: 100%; height: 100%; border: none; display: block; background: #fff; }

/* -- Responsive ---------------------------------------------------------- */
@media (max-width: 700px) {
  .rc-fb-stage { height: 100svh; max-width: 100%; }
  .rc-fb-overlay { padding: 0; }
  .rc-book-cover { border-radius: 0; }
  .rc-book-reader { border-radius: 0; }
  .rc-book-cover-image { display: none; }
  .rc-book-cover-info { padding: 1.5rem; }
  .rc-book-cover-desc { display: none; }
  .rc-book-spine-deco { display: none; }
  .rc-spread-left { display: none; }
  .rc-book-gutter { display: none; }
  .rc-reader-nav { display: flex; opacity: 1; }
  .rc-reader-header { padding: .5rem .75rem; gap: .4rem; flex-wrap: wrap; }
  .rc-reader-header-right { display: flex; flex-wrap: wrap; gap: .3rem; }
  .rc-reader-ctrl-btn { font-size: 0; padding: .38rem .45rem; min-height: 40px; gap: 0; }
  .rc-reader-ctrl-btn svg { width: 18px; height: 18px; }
  .rc-reader-dl-btn { font-size: 0; padding: .38rem .45rem; gap: 0; }
  .rc-reader-dl-btn svg { width: 18px; height: 18px; }
  .rc-reader-toolbar { height: 52px; }
  .rc-tb-btn { width: 40px; height: 40px; }
  .rc-tb-cover-btn .rc-tb-label { display: none; }
  .rc-tb-cover-btn { width: 40px; padding: 0; }
}

@media (max-width: 480px) {
  .rc-viewer-overlay { padding: 0; }
  .rc-viewer-shell { max-width: 100%; height: 100svh; border-radius: 0; }
  .rc-book-cover-actions { flex-direction: column; gap: .6rem; }
  .rc-book-open-btn { width: 100%; justify-content: center; font-size: 1rem; padding: .85rem 1rem; }
  .rc-book-dl-link { width: 100%; justify-content: center; }
}

/* -- Thumbnail grid overlay ---------------------------------------------- */
.rc-thumb-overlay {
  position: absolute;
  inset: 0;
  z-index: 200;
  background: rgba(12, 12, 15, 0.97);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  flex-direction: column;
  border-radius: inherit;
  overflow: hidden;
}
.rc-thumb-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .65rem 1rem;
  border-bottom: 1px solid rgba(255,255,255,.08);
  flex-shrink: 0;
}
.rc-thumb-title {
  font-size: .78rem;
  font-weight: 700;
  color: rgba(255,255,255,.8);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.rc-thumb-close {
  width: 32px;
  height: 32px;
  border-radius: 6px;
  border: none;
  background: transparent;
  color: rgba(255,255,255,.55);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .12s, color .12s;
}
.rc-thumb-close:hover { background: rgba(255,255,255,.1); color: #fff; }
.rc-thumb-grid {
  flex: 1;
  overflow-y: auto;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(106px, 1fr));
  gap: .65rem;
  padding: .8rem;
  align-content: start;
}
.rc-thumb-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .3rem;
  background: transparent;
  border: 2px solid transparent;
  border-radius: 7px;
  padding: .4rem;
  cursor: pointer;
  transition: border-color .14s, background .14s;
}
.rc-thumb-item:hover { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.18); }
.rc-thumb-item.is-current { border-color: #4caf82; background: rgba(76,175,130,.12); }
.rc-thumb-canvas {
  display: block;
  max-width: 100%;
  height: auto;
  border-radius: 3px;
  box-shadow: 0 2px 10px rgba(0,0,0,.5);
  background: #fff;
}
.rc-thumb-lbl {
  font-size: .66rem;
  color: rgba(255,255,255,.5);
  font-weight: 500;
}

/* ═══════════════════════════════════════════════════════════════════════════
   RESOURCE CENTRE — ADVANCED VIEWER ADDITIONS  (rc-vdrop-*, rc-doc-badge-*)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Document badge category colours ───────────────────────────────────── */
.rc-doc-badge { display:inline-flex; align-items:center; font-size:.68rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; border-radius:4px; padding:.18rem .55rem; }
.rc-doc-badge--service  { background:rgba(8,115,72,.12);  color:#065f46; }
.rc-doc-badge--policy   { background:rgba(37,99,235,.11); color:#1e40af; }
.rc-doc-badge--act      { background:rgba(161,98,7,.13);  color:#92400e; }
.rc-doc-badge--communication { background:rgba(109,40,217,.1); color:#5b21b6; }

/* ── Filter tabs — extra category colours ──────────────────────────────── */
.rc-filter-tab[data-rc-tab="policy"].is-active   { background:rgba(37,99,235,.14);  color:#1e40af; border-color:rgba(37,99,235,.35); }
.rc-filter-tab[data-rc-tab="act"].is-active       { background:rgba(161,98,7,.13);   color:#92400e; border-color:rgba(161,98,7,.3); }

/* ── Viewer bar restructure ─────────────────────────────────────────────── */
.rc-viewer-bar { gap:.5rem; }
.rc-viewer-bar-actions { gap:.35rem; }

/* ── Dropdown wrapper ───────────────────────────────────────────────────── */
.rc-vdrop-wrap { position:relative; display:inline-flex; }

/* ── Dropdown trigger button ────────────────────────────────────────────── */
.rc-vdrop-btn {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  font-size: .76rem;
  font-weight: 600;
  color: rgba(255,255,255,.88);
  background: rgba(255,255,255,.1);
  border: 1.5px solid rgba(255,255,255,.18);
  border-radius: 7px;
  padding: .3rem .7rem;
  cursor: pointer;
  white-space: nowrap;
  transition: background .14s, color .14s;
  line-height: 1;
}
.rc-vdrop-btn:hover,
.rc-vdrop-btn[aria-expanded="true"] { background: rgba(255,255,255,.2); color: #fff; }
.rc-vdrop-btn--icon { padding: .3rem .45rem; }

/* ── Dropdown panel ─────────────────────────────────────────────────────── */
.rc-vdrop-panel {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  min-width: 170px;
  background: #fff;
  border: 1.5px solid var(--line, #e5e7eb);
  border-radius: 10px;
  box-shadow: 0 8px 28px rgba(0,0,0,.18);
  padding: .35rem;
  z-index: 100;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-6px);
  transition: opacity .15s, transform .15s;
}
.rc-vdrop-panel--right { left:auto; right:0; }
.rc-vdrop-panel.is-open { opacity:1; pointer-events:auto; transform:translateY(0); }

/* ── Dropdown items ─────────────────────────────────────────────────────── */
.rc-vdrop-item {
  display: flex;
  align-items: center;
  gap: .55rem;
  width: 100%;
  padding: .5rem .7rem;
  font-size: .8rem;
  font-weight: 500;
  color: var(--ink, #111);
  background: transparent;
  border: none;
  border-radius: 7px;
  cursor: pointer;
  text-decoration: none;
  transition: background .12s;
  text-align: left;
}
.rc-vdrop-item:hover { background: var(--panel-soft, #f3f4f6); color: var(--green-900, #087348); }

/* ── Flipbook reader control buttons (share / sound / print / full-view) ── */
/* These sit on the dark-green reader header — must use white-on-dark styling */
.rc-reader-ctrl-btn {
  display: inline-flex;
  align-items: center;
  gap: .32rem;
  font-size: .73rem;
  font-weight: 600;
  color: rgba(255,255,255,.88);
  background: rgba(255,255,255,.12);
  border: 1.5px solid rgba(255,255,255,.22);
  border-radius: 7px;
  padding: .3rem .65rem;
  cursor: pointer;
  white-space: nowrap;
  transition: background .13s, color .13s, border-color .13s;
  min-height: 32px;
}
.rc-reader-ctrl-btn:hover { background: rgba(255,255,255,.24); color: #fff; border-color: rgba(255,255,255,.4); }
.rc-reader-ctrl-btn[aria-pressed="true"]  { background: rgba(255,255,255,.22); color: #fff; }
.rc-reader-ctrl-btn[aria-pressed="false"] { color: rgba(255,255,255,.45); border-color: rgba(255,255,255,.12); background: transparent; }

/* ── Sound icon toggle: show/hide based on aria-pressed ─────────────────── */
.rc-snd-off { display: none; }
.rc-sound-btn[aria-pressed="false"] .rc-snd-on  { display: none; }
.rc-sound-btn[aria-pressed="false"] .rc-snd-off { display: inline; }

/* ── Full-view button ───────────────────────────────────────────────────── */
.rc-fullview-btn { margin-left: .1rem; }

/* ── Viewer fullscreen button (reuse vdrop-btn style) ───────────────────── */
#rc-viewer-fullscreen { padding:.3rem .45rem; }

/* ── Doc card download-only icon button ─────────────────────────────────── */
.rc-doc-dl-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  background: var(--panel-soft, #f3f4f6);
  border: 1.5px solid var(--line, #e5e7eb);
  border-radius: 7px;
  color: var(--ink, #111827);
  text-decoration: none;
  transition: background .13s, color .13s;
  flex-shrink: 0;
}
.rc-doc-dl-btn:hover { background:rgba(8,115,72,.08); color:var(--green-900,#087348); border-color:rgba(8,115,72,.25); }

/* ── Flipbook share dropdown inside reader header ───────────────────────── */
#rc-fb-share-wrap .rc-vdrop-panel { top: calc(100% + 4px); }
/* Share button lives on the dark-green reader header — keep white-on-dark */
button.rc-vdrop-btn.rc-reader-ctrl-btn {
  color: rgba(255,255,255,.88);
  background: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.22);
}
button.rc-vdrop-btn.rc-reader-ctrl-btn:hover,
button.rc-vdrop-btn.rc-reader-ctrl-btn[aria-expanded="true"] {
  background: rgba(255,255,255,.24);
  color: #fff;
  border-color: rgba(255,255,255,.4);
}

/* ── Responsive viewer bar on narrow screens ────────────────────────────── */
@media (max-width: 500px) {
  .rc-vdrop-btn span, .rc-vdrop-btn .rc-btn-label { display:none; }
  .rc-viewer-bar-title { font-size:.78rem; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   mag2 — Magazine page redesign
   ═══════════════════════════════════════════════════════════════════════════ */

/* Hero stats strip */
.mag2-hero-stats {
  display: flex;
  gap: 2rem;
  margin-top: 1.5rem;
  flex-wrap: wrap;
}
.mag2-stat { display: flex; flex-direction: column; }
.mag2-stat strong { font-size: 1.6rem; font-weight: 700; line-height: 1.1; color: #fff; }
.mag2-stat span { font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; color: rgba(255,255,255,.7); margin-top: .15rem; }

/* Featured section */
.mag2-featured-section { background: #fff; }
.mag2-featured-grid {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 3rem;
  align-items: start;
}
@media (max-width: 760px) { .mag2-featured-grid { grid-template-columns: 1fr; gap: 1.8rem; } }

/* Book cover */
.mag2-cover-book {
  position: relative;
  display: flex;
  width: 280px;
  height: 380px;
  perspective: 900px;
  flex-shrink: 0;
}
.mag2-cover-spine {
  width: 22px;
  height: 100%;
  background: linear-gradient(to right, #0a3d22, #087348);
  border-radius: 3px 0 0 3px;
  box-shadow: -3px 0 8px rgba(0,0,0,.25);
  flex-shrink: 0;
}
.mag2-cover-face {
  flex: 1;
  position: relative;
  border-radius: 0 4px 4px 0;
  overflow: hidden;
  box-shadow: 4px 6px 22px rgba(0,0,0,.18);
}
.mag2-cover-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mag2-cover-badge {
  position: absolute;
  top: .7rem; right: .7rem;
  background: var(--gold, #c5a028);
  color: #fff;
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  padding: .25em .6em;
  border-radius: 3px;
}
@media (max-width: 760px) {
  .mag2-cover-book { width: 100%; max-width: 280px; margin: 0 auto; }
}

/* Featured info panel */
.mag2-featured-info { padding-top: .5rem; }
.mag2-meta-row { display: flex; flex-wrap: wrap; gap: .5rem; margin: .8rem 0 1.1rem; }
.mag2-meta-chip {
  font-size: .72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .05em;
  padding: .2em .65em;
  border-radius: 3px;
  background: var(--green-50, #ecfbf3);
  color: var(--green-900, #087348);
  border: 1px solid var(--green-200, #b8e8cc);
}
.mag2-chip-official {
  background: var(--gold, #c5a028);
  color: #fff;
  border-color: transparent;
}
.mag2-featured-desc { color: var(--body-text, #374151); line-height: 1.65; margin-bottom: 1.5rem; }
.mag2-featured-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 1.4rem; }
.mag2-ministry-mark {
  display: flex;
  align-items: center;
  gap: .6rem;
  font-size: .75rem;
  color: var(--muted, #6b7280);
  border-top: 1px solid var(--line, #e5e7eb);
  padding-top: 1rem;
}
.mag2-ministry-mark img { opacity: .7; }

/* Issues grid */
.mag2-issues-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 1.6rem;
  margin-top: 2rem;
}
.mag2-issue-card {
  background: #fff;
  border: 1.5px solid var(--line, #e5e7eb);
  border-radius: 10px;
  overflow: hidden;
  transition: box-shadow .18s, transform .18s;
}
.mag2-issue-card:hover { box-shadow: 0 6px 24px rgba(0,0,0,.10); transform: translateY(-2px); }
.mag2-issue-card.is-latest { border-color: var(--green-900, #087348); }

.mag2-issue-cover-wrap {
  position: relative;
  aspect-ratio: 3/4;
  overflow: hidden;
  background: #f3f4f6;
}
.mag2-issue-cover { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.mag2-issue-card:hover .mag2-issue-cover { transform: scale(1.03); }
.mag2-issue-badge {
  position: absolute;
  top: .6rem; left: .6rem;
  background: var(--green-900, #087348);
  color: #fff;
  font-size: .65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  padding: .2em .5em;
  border-radius: 3px;
}
.mag2-quick-read {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  background: rgba(8,115,72,.82);
  color: #fff;
  font-size: .8rem;
  font-weight: 600;
  opacity: 0;
  border: none;
  cursor: pointer;
  transition: opacity .2s;
}
.mag2-issue-card:hover .mag2-quick-read,
.mag2-issue-card:focus-within .mag2-quick-read { opacity: 1; }

.mag2-issue-body { padding: 1rem; }
.mag2-issue-meta { font-size: .72rem; color: var(--muted, #6b7280); margin-bottom: .35rem; }
.mag2-issue-title { font-size: .92rem; font-weight: 700; margin: 0 0 .4rem; line-height: 1.3; }
.mag2-issue-desc { font-size: .8rem; color: var(--muted, #6b7280); margin: 0 0 .8rem; line-height: 1.45; }
.mag2-issue-foot { display: flex; gap: .5rem; flex-wrap: wrap; }

.mag2-empty-state { grid-column: 1/-1; text-align: center; padding: 3rem 1rem; }
.mag2-read-btn { cursor: pointer; }

/* ═══════════════════════════════════════════════════════════════════════════
   nw2 — News list redesign
   ═══════════════════════════════════════════════════════════════════════════ */

/* Filter bar */
.nw2-filter-bar-section {
  background: #fff;
  border-bottom: 1px solid var(--line, #e5e7eb);
  position: sticky;
  top: 0;
  z-index: 40;
}
.nw2-filter-bar {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding-top: .65rem;
  padding-bottom: .65rem;
  flex-wrap: wrap;
}
.nw2-filter-tabs { display: flex; gap: .4rem; flex-wrap: wrap; flex: 1; }
.nw2-tab {
  padding: .35em .85em;
  border-radius: 20px;
  border: 1.5px solid var(--line, #e5e7eb);
  background: #fff;
  font-size: .78rem;
  font-weight: 600;
  color: var(--body-text, #374151);
  cursor: pointer;
  transition: background .15s, color .15s, border-color .15s;
  white-space: nowrap;
}
.nw2-tab:hover { background: var(--green-50, #ecfbf3); border-color: var(--green-300, #86efac); color: var(--green-900, #087348); }
.nw2-tab.is-active { background: var(--green-900, #087348); border-color: var(--green-900, #087348); color: #fff; }

.nw2-search-form {
  display: flex;
  align-items: center;
  gap: 0;
  border: 1.5px solid var(--line, #e5e7eb);
  border-radius: 7px;
  overflow: hidden;
  background: #fff;
}
.nw2-search-form input {
  border: none;
  outline: none;
  padding: .38em .7em;
  font-size: .82rem;
  width: 180px;
  background: transparent;
}
.nw2-search-form button {
  border: none;
  background: transparent;
  padding: .38em .6em;
  cursor: pointer;
  color: var(--muted, #6b7280);
  display: flex;
  align-items: center;
}
.nw2-search-form button:hover { color: var(--green-900, #087348); }

/* Featured story */
.nw2-featured-section { background: #fff; }
.nw2-featured-kicker { margin-bottom: .6rem; }
.nw2-featured-card {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-radius: 12px;
  overflow: hidden;
  border: 1.5px solid var(--line, #e5e7eb);
  box-shadow: 0 4px 20px rgba(0,0,0,.07);
}
@media (max-width: 700px) { .nw2-featured-card { grid-template-columns: 1fr; } }

.nw2-featured-img-wrap { position: relative; aspect-ratio: 16/10; overflow: hidden; }
.nw2-featured-img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s; }
.nw2-featured-card:hover .nw2-featured-img { transform: scale(1.03); }

.nw2-card-cat-badge {
  position: absolute;
  bottom: .8rem; left: .8rem;
  background: var(--green-900, #087348);
  color: #fff;
  font-size: .65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  padding: .22em .6em;
  border-radius: 3px;
}

.nw2-featured-body {
  padding: 2rem 2.2rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: .8rem;
}
@media (max-width: 700px) { .nw2-featured-body { padding: 1.3rem 1.2rem; } }
.nw2-card-meta { font-size: .72rem; color: var(--muted, #6b7280); display: flex; align-items: center; gap: .4rem; }
.nw2-card-sep { opacity: .5; }
.nw2-card-author { font-weight: 600; }
.nw2-featured-title { font-size: 1.35rem; font-weight: 800; line-height: 1.25; margin: 0; }
.nw2-featured-summary { color: var(--body-text, #374151); line-height: 1.6; margin: 0; }

/* Story grid */
.nw2-grid-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 1.4rem;
  flex-wrap: wrap;
  gap: .5rem;
}
.nw2-count { font-size: .78rem; color: var(--muted, #6b7280); }
.nw2-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.6rem;
}
.nw2-grid--related { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }

.nw2-card {
  background: #fff;
  border: 1.5px solid var(--line, #e5e7eb);
  border-radius: 10px;
  overflow: hidden;
  transition: box-shadow .18s, transform .18s;
  position: relative;
}
.nw2-card:hover { box-shadow: 0 6px 24px rgba(0,0,0,.10); transform: translateY(-2px); }
.nw2-card-img-link { display: block; aspect-ratio: 3/2; overflow: hidden; }
.nw2-card-img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.nw2-card:hover .nw2-card-img { transform: scale(1.04); }
.nw2-card .nw2-card-cat-badge { position: absolute; top: .7rem; left: .7rem; }

.nw2-card-body { padding: 1rem 1.1rem 1.1rem; display: flex; flex-direction: column; gap: .45rem; }
.nw2-card-title { font-size: .96rem; font-weight: 700; margin: 0; line-height: 1.3; }
.nw2-card-title a { color: inherit; text-decoration: none; }
.nw2-card-title a:hover { color: var(--green-900, #087348); }
.nw2-card-summary { font-size: .8rem; color: var(--muted, #6b7280); margin: 0; line-height: 1.5; }
.nw2-read-link {
  font-size: .78rem;
  font-weight: 700;
  color: var(--green-900, #087348);
  text-decoration: none;
  margin-top: .25rem;
  display: inline-flex;
  align-items: center;
}
.nw2-read-link:hover { text-decoration: underline; }

.nw2-no-results, .nw2-empty {
  grid-column: 1/-1;
  text-align: center;
  padding: 3rem 1rem;
  color: var(--muted, #6b7280);
}

/* ═══════════════════════════════════════════════════════════════════════════
   nd2 — News detail redesign
   ═══════════════════════════════════════════════════════════════════════════ */

.nd2-article-section { background: #fff; }
.nd2-layout {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 2.5rem;
  align-items: start;
}
@media (max-width: 860px) { .nd2-layout { grid-template-columns: 1fr; } }

/* Hero image */
.nd2-hero-img-wrap {
  position: relative;
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 1.5rem;
  aspect-ratio: 16/9;
}
.nd2-hero-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nd2-cat-badge {
  position: absolute;
  bottom: 1rem; left: 1rem;
  background: var(--green-900, #087348);
  color: #fff;
  font-size: .68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  padding: .25em .65em;
  border-radius: 3px;
}

/* Byline */
.nd2-byline {
  display: flex;
  align-items: center;
  gap: .8rem;
  margin-bottom: 1rem;
}
.nd2-byline-avatar {
  width: 38px; height: 38px;
  border-radius: 50%;
  background: var(--green-900, #087348);
  color: #fff;
  font-size: .9rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.nd2-byline-info { display: flex; flex-direction: column; }
.nd2-byline-info strong { font-size: .85rem; line-height: 1.2; }
.nd2-byline-date { font-size: .75rem; color: var(--muted, #6b7280); }

/* Fact strip */
.nd2-fact-strip {
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
  padding: .9rem 1.2rem;
  background: var(--green-50, #ecfbf3);
  border-left: 3px solid var(--green-900, #087348);
  border-radius: 0 6px 6px 0;
  margin-bottom: 1.4rem;
}
.nd2-fact { display: flex; flex-direction: column; }
.nd2-fact-label { font-size: .65rem; text-transform: uppercase; letter-spacing: .07em; color: var(--muted, #6b7280); }
.nd2-fact strong { font-size: .82rem; color: var(--body-text, #374151); }

/* Body */
.nd2-summary { font-size: 1.05rem; font-weight: 500; line-height: 1.65; color: var(--body-text, #374151); margin-bottom: 1.2rem; }
.nd2-body p { line-height: 1.75; color: var(--body-text, #374151); margin-bottom: 1rem; }

/* Pull quote */
.nd2-pull-quote {
  margin: 1.8rem 0;
  padding: 1.1rem 1.5rem;
  border-left: 4px solid var(--green-900, #087348);
  background: var(--green-50, #ecfbf3);
  border-radius: 0 8px 8px 0;
}
.nd2-pull-quote p {
  font-size: 1.05rem;
  font-style: italic;
  font-weight: 500;
  color: var(--green-900, #087348);
  margin: 0;
  line-height: 1.55;
}

/* Article footer */
.nd2-article-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  border-top: 1px solid var(--line, #e5e7eb);
  padding-top: 1.2rem;
  margin-top: 1.5rem;
}
.nd2-share-row { display: flex; align-items: center; gap: .5rem; }
.nd2-share-label { font-size: .78rem; color: var(--muted, #6b7280); }
.nd2-share-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px; height: 32px;
  border-radius: 50%;
  border: 1.5px solid var(--line, #e5e7eb);
  color: var(--muted, #6b7280);
  text-decoration: none;
  transition: background .15s, color .15s, border-color .15s;
}
.nd2-share-btn:hover { background: var(--green-900, #087348); color: #fff; border-color: var(--green-900, #087348); }

/* Sidebar */
.nd2-sidebar { display: flex; flex-direction: column; gap: 1.2rem; }
.nd2-sidebar-card {
  background: #fff;
  border: 1.5px solid var(--line, #e5e7eb);
  border-radius: 9px;
  padding: 1.2rem 1.3rem;
}
.nd2-sidebar-title {
  font-size: .88rem;
  font-weight: 700;
  margin: 0 0 .8rem;
  color: var(--green-900, #087348);
  text-transform: uppercase;
  letter-spacing: .04em;
}
.nd2-highlights-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: .5rem;
}
.nd2-highlights-list li {
  font-size: .82rem;
  color: var(--body-text, #374151);
  padding-left: 1.1em;
  position: relative;
  line-height: 1.45;
}
.nd2-highlights-list li::before {
  content: '';
  position: absolute;
  left: 0; top: .55em;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--green-900, #087348);
}
.nd2-sidebar-actions { display: flex; flex-direction: column; gap: .5rem; margin-top: .8rem; }
.nd2-sidebar-search .site-search-form { margin-top: .5rem; }

/* ═══════════════════════════════════════════════════════════════════════════
   Global: text contrast fixes — white text on dark green backgrounds
   ═══════════════════════════════════════════════════════════════════════════ */

/* Ensure muted/secondary text is readable on any dark-green surface */
.banner-dark .section-kicker,
.banner-dark p,
.banner-flag .section-kicker,
.banner-flag p,
[class*="banner-"] .section-kicker,
[class*="banner-"] p { color: rgba(255,255,255,.85); }

.banner-dark h2, .banner-flag h2,
[class*="banner-"] h2 { color: #fff; }

/* Page banner breadcrumb links */
.page-banner-content .section-kicker a { color: rgba(255,255,255,.9); }

/* Force visible text inside green CTA bands that use --muted */
.tinted-section.pattern-section .section-kicker { color: var(--green-900, #087348); }

/* Mobile: ensure filter bar tabs don't overflow awkwardly */
@media (max-width: 600px) {
  .nw2-filter-bar { flex-direction: column; align-items: flex-start; }
  .nw2-search-form input { width: 140px; }
  .nd2-layout { gap: 1.5rem; }
  .mag2-hero-stats { gap: 1.2rem; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   BUG FIXES v30 — targeted overrides
   ═══════════════════════════════════════════════════════════════════════════ */

/* FIX 1: News card category badge stretching full card height.
   Base rule sets bottom:.8rem; override rule sets top:.7rem.
   Both properties set = element stretches full height. Clear bottom. */
.nw2-card .nw2-card-cat-badge {
  position: absolute;
  top: .7rem;
  left: .7rem;
  bottom: auto;
}

/* FIX 2: Supporting Departments – white heading text on light panel-soft background.
   The --light variant sets color:#fff but dp-sup-section background is now panel-soft. */
.dp-sup-section .dp-section-head--light h2 { color: var(--ink, #111827); }
.dp-sup-section .dp-kicker--light { color: var(--green-900, #087348); opacity: 1; }
.dp-sup-section .dp-section-sub--light { color: var(--muted, #6b7280); }

/* FIX 3: Home "What we do" heading invisible (white on panel-soft background).
   v2-section-head--light h2 sets color:#fff but v2-services-section is light. */
.v2-services-section .v2-section-head--light h2 { color: var(--ink, #111827); }
.v2-services-section .v2-kicker--light { color: var(--green-900, #087348); }
.v2-services-section .v2-section-head--light p { color: var(--muted, #6b7280); }

/* FIX 4: data-ab-reveal elements invisible on pages without the reveal JS.
   Department detail and departments hub use data-ab-reveal but have no reveal observer.
   Override with higher specificity to ensure these are always visible. */
.ddt-fn-item[data-ab-reveal],
.ddt-sub-card[data-ab-reveal],
.dp-op-card[data-ab-reveal] {
  opacity: 1;
  transform: none;
}

/* FIX 5: Department detail sections – reduce excessive top/bottom padding */
.ddt-subs-section { padding: 2.5rem 0 2rem; }
.ddt-fn-section   { padding: 2.5rem 0 2rem; }
.ddt-subs-head    { margin-bottom: 1.6rem; }
.ddt-fn-head      { margin-bottom: 1.6rem; }

/* FIX 6: Department detail fn-head kicker text contrast (on dark green background) */
.ddt-fn-head .ddt-kicker--light { color: rgba(255,255,255,.75); }

/* FIX 7: Global dark green background – ensure all child text is visible.
   Catch-all for any section with green-900 background that still uses muted grey. */
.ddt-fn-section p,
.ddt-fn-section span,
.ddt-fn-section .ddt-kicker { color: rgba(255,255,255,.75); }

/* FIX 8: Magazine – remove cursor stutter on hover.
   The 3D perspective on mag2-cover-book can cause repaint lag. Promote to own layer. */
.mag2-cover-book { will-change: auto; }
.mag2-cover-face { will-change: auto; }
.mag2-issue-card { will-change: auto; }

/* FIX 9: Resource Centre viewer bar buttons – ensure icons/text are visible */
/* Scope to viewer bar only; reader-header share button uses white-on-dark via .rc-reader-ctrl-btn */
.rc-viewer-bar .rc-vdrop-btn { color: var(--ink, #111827); }
.rc-viewer-bar { background: #fff; }

/* FIX 10: Sticky news filter bar – ensure it doesn't cover nav on mobile */
@media (max-width: 768px) {
  .nw2-filter-bar-section { position: static; }
}

/* FIX 11: nw2-card badge for featured card context – ensure bottom only, not top */
.nw2-featured-img-wrap .nw2-card-cat-badge {
  top: auto;
  bottom: .8rem;
  left: .8rem;
}

/* ============================================================
   MAV — Magazine Viewer (mav-* namespace)
   Full-screen PDF flipbook overlay with left→right page flip
   ============================================================ */

/* Overlay — dark fullscreen backdrop */
.mav-overlay {
  position: fixed;
  inset: 0;
  z-index: 2000;
  background: #0a1a10;
  display: flex;
  flex-direction: column;
  animation: mavFadeIn .18s ease;
}
.mav-overlay[hidden] {
  display: none;
}
@keyframes mavFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* Top bar */
.mav-bar {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .5rem 1rem;
  background: #042416;
  border-bottom: 1px solid rgba(255,255,255,.12);
  min-height: 52px;
}
.mav-bar-left,
.mav-bar-right {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-shrink: 0;
}
.mav-bar-left { flex-shrink: 1; min-width: 0; }

/* Generic bar button */
.mav-btn {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .35rem .75rem;
  background: rgba(255,255,255,.1);
  color: #fff;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 6px;
  font-size: .8rem;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: background .15s;
  text-decoration: none;
  line-height: 1.4;
}
.mav-btn:hover,
.mav-btn:focus-visible {
  background: rgba(255,255,255,.2);
  color: #fff;
  outline: none;
}
.mav-btn:disabled,
.mav-btn[disabled] {
  opacity: .35;
  cursor: not-allowed;
}
.mav-btn-icon {
  font-size: 1rem;
  line-height: 1;
}

/* Publication title in bar */
.mav-title {
  color: #fff;
  font-size: .88rem;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 260px;
  opacity: .9;
}

/* Page counter pill */
.mav-page-info {
  color: rgba(255,255,255,.7);
  font-size: .78rem;
  font-variant-numeric: tabular-nums;
  background: rgba(255,255,255,.08);
  padding: .2rem .6rem;
  border-radius: 99px;
  white-space: nowrap;
}

/* Content area — iframe + side buttons */
.mav-content {
  flex: 1 1 auto;
  display: flex;
  align-items: stretch;
  overflow: hidden;
  padding: .75rem;
  gap: .5rem;
}

/* Side navigation buttons */
.mav-pg-btn {
  flex: 0 0 auto;
  width: 44px;
  background: rgba(255,255,255,.1);
  color: #fff;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 8px;
  font-size: 1.1rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .15s;
  align-self: center;
  height: 72px;
}
.mav-pg-btn:hover:not(:disabled) {
  background: rgba(255,255,255,.22);
}
.mav-pg-btn:disabled {
  opacity: .25;
  cursor: not-allowed;
}

/* PDF iframe wrapper — clip for flip animation */
.mav-frame-wrap {
  flex: 1 1 auto;
  position: relative;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 8px 40px rgba(0,0,0,.6);
  transform-origin: center center;
  transform-style: preserve-3d;
  will-change: transform, opacity;
}

#mav-iframe {
  width: 100%;
  height: 100%;
  border: none;
  display: block;
  background: #fff;
}

/* ---- Flip animations ---- */
/* Next page: slight rotateY to the left (book flips forward) */
@keyframes mavFlipNext {
  0%   { transform: perspective(1100px) rotateY(0deg)    scaleX(1);    opacity: 1; }
  45%  { transform: perspective(1100px) rotateY(-18deg)  scaleX(.94);  opacity: .7; }
  100% { transform: perspective(1100px) rotateY(0deg)    scaleX(1);    opacity: 1; }
}
/* Prev page: slight rotateY to the right (book flips back) */
@keyframes mavFlipPrev {
  0%   { transform: perspective(1100px) rotateY(0deg)   scaleX(1);    opacity: 1; }
  45%  { transform: perspective(1100px) rotateY(18deg)  scaleX(.94);  opacity: .7; }
  100% { transform: perspective(1100px) rotateY(0deg)   scaleX(1);    opacity: 1; }
}

.mav-flip-next {
  animation: mavFlipNext .36s cubic-bezier(.4,0,.2,1) both;
}
.mav-flip-prev {
  animation: mavFlipPrev .36s cubic-bezier(.4,0,.2,1) both;
}

/* Share dropdown wrapper */
.mav-drop-wrap {
  position: relative;
}
.mav-drop-panel {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0,0,0,.18);
  min-width: 180px;
  z-index: 10;
  overflow: hidden;
}
.mav-drop-panel[hidden] { display: none; }
.mav-drop-item {
  display: flex;
  align-items: center;
  gap: .6rem;
  width: 100%;
  padding: .65rem 1rem;
  color: #111827;
  font-size: .85rem;
  font-weight: 500;
  background: transparent;
  border: none;
  cursor: pointer;
  text-align: left;
  text-decoration: none;
  transition: background .12s;
}
.mav-drop-item:hover {
  background: #f3f4f6;
}

/* Sound toggle active state */
.mav-btn.mav-sound-on {
  background: rgba(16,185,129,.2);
  border-color: rgba(16,185,129,.4);
}

/* ---- Flip sheet (standalone div that animates — iframes can't 3D-transform in browsers) ---- */
.mav-flip-sheet {
  position: absolute;
  inset: 0;
  z-index: 20;
  pointer-events: none;
  border-radius: inherit;
  opacity: 0;
  /* Page-paper appearance with spine shadow */
  background:
    linear-gradient(to right, rgba(0,0,0,.14) 0%, rgba(0,0,0,.04) 3%, transparent 6%),
    #f0ede8;
}

/* Next page: sheet lifts from right edge and swings left (like turning forward) */
.mav-sheet-next {
  transform-origin: right center;
  animation: mavSheetNext .42s cubic-bezier(.4,0,.2,1) forwards;
}
/* Prev page: sheet swings in from left and lands flat, then lifts off right */
.mav-sheet-prev {
  transform-origin: left center;
  animation: mavSheetPrev .42s cubic-bezier(.4,0,.2,1) forwards;
}

@keyframes mavSheetNext {
  0%   { opacity: 1; transform: perspective(900px) rotateY(0deg);    }
  40%  { opacity: 1; transform: perspective(900px) rotateY(-35deg);  }
  80%  { opacity: .6; transform: perspective(900px) rotateY(-75deg); }
  100% { opacity: 0; transform: perspective(900px) rotateY(-90deg);  }
}
@keyframes mavSheetPrev {
  0%   { opacity: 0; transform: perspective(900px) rotateY(90deg);  }
  20%  { opacity: .6; transform: perspective(900px) rotateY(75deg); }
  60%  { opacity: 1; transform: perspective(900px) rotateY(35deg);  }
  100% { opacity: 1; transform: perspective(900px) rotateY(0deg);   }
}

/* ---- Responsive ---- */
@media (max-width: 640px) {
  .mav-bar { padding: .4rem .6rem; gap: .4rem; }
  .mav-title { max-width: 120px; font-size: .78rem; }
  .mav-btn { padding: .3rem .55rem; font-size: .74rem; }
  .mav-content { padding: .4rem .3rem; gap: .25rem; }
  .mav-pg-btn { width: 34px; height: 56px; font-size: .9rem; }
  .mav-page-info { display: none; }
}
@media (max-width: 400px) {
  .mav-title { max-width: 80px; }
}

/* ============================================================
   GAL — Gallery Page (gal-* namespace)
   Photo grid, filter bar, album cards
   ============================================================ */

/* Filter bar */
.gal-filter-section {
  position: sticky;
  top: 0;
  z-index: 90;
  background: #fff;
  border-bottom: 1px solid #e5e7eb;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
}
.gal-filter-inner {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: .6rem 0;
  flex-wrap: wrap;
}
.gal-tabs {
  display: flex;
  align-items: center;
  gap: .35rem;
  flex-wrap: wrap;
  flex: 1 1 auto;
}
.gal-tab {
  display: inline-flex;
  align-items: center;
  padding: .38rem .85rem;
  border: 1.5px solid #d1d5db;
  border-radius: 99px;
  background: transparent;
  color: #374151;
  font-size: .8rem;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: background .14s, color .14s, border-color .14s;
}
.gal-tab:hover { background: #f3f4f6; border-color: #9ca3af; }
.gal-tab-active {
  background: var(--green-900, #087348);
  color: #fff;
  border-color: var(--green-900, #087348);
}
.gal-tab-active:hover { background: #065f38; border-color: #065f38; }

/* Search */
.gal-search-wrap { flex: 0 0 220px; }
.gal-search-input {
  width: 100%;
  padding: .42rem .85rem;
  border: 1.5px solid #d1d5db;
  border-radius: 99px;
  font-size: .83rem;
  background: #f9fafb;
  color: #111827;
  outline: none;
  transition: border-color .14s;
}
.gal-search-input:focus { border-color: var(--green-900, #087348); background: #fff; }
.gal-search-input::placeholder { color: #9ca3af; }

/* Results bar */
.gal-results-bar {
  border-top: 1px solid #f3f4f6;
}
.gal-results-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: .28rem;
  padding-bottom: .28rem;
  font-size: .78rem;
  color: #6b7280;
}
.gal-clear-btn {
  background: none;
  border: none;
  color: var(--green-900, #087348);
  font-size: .78rem;
  font-weight: 600;
  cursor: pointer;
  padding: 0 0 0 .5rem;
  text-decoration: underline;
}
.gal-clear-btn-inline {
  display: block;
  margin: .75rem auto 0;
  padding: .5rem 1.25rem;
  background: var(--green-900, #087348);
  color: #fff;
  border: none;
  border-radius: 6px;
  font-size: .85rem;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
}

/* Photo grid */
.gal-grid-section { padding: 1.25rem 0 .5rem; background: #f9fafb; }
.gal-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 6px;
  padding: 0 12px;
  max-width: 1400px;
  margin: 0 auto;
}

/* Photo card */
.gal-card { position: relative; background: #e5e7eb; border-radius: 6px; overflow: hidden; }
.gal-card[hidden] { display: none; }
.gal-card-btn {
  display: block;
  width: 100%;
  border: none;
  padding: 0;
  background: transparent;
  cursor: zoom-in;
  position: relative;
  aspect-ratio: 3/2;
  overflow: hidden;
}
.gal-card-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .3s ease;
}
.gal-card-btn:hover .gal-card-img { transform: scale(1.04); }
.gal-card-overlay {
  position: absolute;
  inset: 0;
  background: rgba(4,36,22,.5);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  opacity: 0;
  transition: opacity .2s;
}
.gal-card-btn:hover .gal-card-overlay { opacity: 1; }
.gal-zoom-icon { color: #fff; filter: drop-shadow(0 1px 3px rgba(0,0,0,.5)); }
.gal-card-info {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .42rem .6rem;
  background: #fff;
  border-top: 1px solid #e5e7eb;
}
.gal-card-label {
  font-size: .68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--green-900, #087348);
  white-space: nowrap;
  flex-shrink: 0;
}
.gal-card-title {
  font-size: .75rem;
  color: #374151;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-weight: 500;
}

/* No results */
.gal-empty-state { grid-column: 1/-1; text-align: center; color: #6b7280; padding: 3rem; }
.gal-no-results {
  grid-column: 1/-1;
  text-align: center;
  padding: 3.5rem 1rem;
  color: #6b7280;
}
.gal-no-results svg { opacity: .35; margin-bottom: .75rem; }
.gal-no-results p { font-size: 1rem; margin-bottom: .5rem; }

/* Albums strip */
.gal-albums-section {
  padding: 3rem 0;
  background: #fff;
}
.gal-albums-header { margin-bottom: 1.75rem; }
.gal-albums-header h2 { color: var(--ink, #111827); margin-top: .25rem; }
.gal-albums-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.25rem;
}

/* Album card */
.gal-album-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: box-shadow .2s, transform .2s;
}
.gal-album-card:hover {
  box-shadow: 0 8px 30px rgba(0,0,0,.12);
  transform: translateY(-3px);
}
.gal-album-img-wrap {
  position: relative;
  aspect-ratio: 4/3;
  overflow: hidden;
  background: #e5e7eb;
}
.gal-album-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s ease;
}
.gal-album-card:hover .gal-album-img-wrap img { transform: scale(1.05); }
.gal-album-badge {
  position: absolute;
  bottom: .6rem;
  right: .6rem;
  background: rgba(4,36,22,.75);
  color: #fff;
  font-size: .7rem;
  font-weight: 700;
  padding: .2rem .55rem;
  border-radius: 99px;
  backdrop-filter: blur(4px);
}
.gal-album-info { padding: 1rem 1.1rem 1.2rem; flex: 1; display: flex; flex-direction: column; gap: .3rem; }
.gal-album-label {
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--green-900, #087348);
}
.gal-album-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--ink, #111827);
  margin: 0;
  line-height: 1.3;
}
.gal-album-summary {
  font-size: .82rem;
  color: #6b7280;
  line-height: 1.5;
  flex: 1;
  margin: 0;
}
.gal-album-year {
  font-size: .72rem;
  font-weight: 700;
  color: #9ca3af;
  margin-top: .2rem;
}

/* ── Responsive: gallery grid ── */
@media (max-width: 900px) {
  .gal-grid { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 5px; }
}
@media (max-width: 600px) {
  .gal-grid { grid-template-columns: repeat(2, 1fr); gap: 4px; padding: 0 6px; }
  .gal-filter-inner { gap: .5rem; }
  .gal-search-wrap { flex: 0 0 100%; }
  .gal-albums-grid { grid-template-columns: 1fr; }
}
@media (max-width: 380px) {
  .gal-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   GD — Gallery Detail page (gd-* namespace)
   Album meta, photo grid
   ============================================================ */

/* Meta strip */
.gd-meta-section {
  background: var(--green-900, #087348);
  padding: .85rem 0;
}
.gd-meta-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
}
.gd-meta-facts { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.gd-meta-fact { display: flex; flex-direction: column; gap: .1rem; }
.gd-meta-label { font-size: .7rem; text-transform: uppercase; letter-spacing: .06em; color: rgba(255,255,255,.65); font-weight: 600; }
.gd-meta-fact strong { font-size: .95rem; font-weight: 700; color: #fff; }
.gd-meta-actions { display: flex; align-items: center; gap: .6rem; }
.gd-back-btn {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .45rem 1rem;
  background: rgba(255,255,255,.15);
  color: #fff;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 6px;
  font-size: .82rem;
  font-weight: 600;
  text-decoration: none;
  transition: background .15s;
}
.gd-back-btn:hover { background: rgba(255,255,255,.25); color: #fff; }
.gd-news-btn {
  display: inline-flex;
  align-items: center;
  padding: .45rem 1rem;
  background: #fff;
  color: var(--green-900, #087348);
  border-radius: 6px;
  font-size: .82rem;
  font-weight: 700;
  text-decoration: none;
  transition: background .15s;
}
.gd-news-btn:hover { background: #f0fdf4; }

/* Photo grid */
.gd-grid-section { padding: 1rem 0 1.5rem; background: #f1f5f2; }
.gd-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 6px;
  padding: 0 12px;
  max-width: 1400px;
  margin: 0 auto;
}
.gd-photo-card { position: relative; border-radius: 6px; overflow: hidden; background: #d1d5db; }
.gd-photo-btn {
  display: block;
  width: 100%;
  border: none;
  padding: 0;
  background: transparent;
  cursor: zoom-in;
  aspect-ratio: 3/2;
  overflow: hidden;
  position: relative;
}
.gd-photo-img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.gd-photo-btn:hover .gd-photo-img { transform: scale(1.04); }
.gd-photo-overlay {
  position: absolute;
  inset: 0;
  background: rgba(4,36,22,.48);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: .3rem;
  opacity: 0;
  transition: opacity .2s;
}
.gd-photo-btn:hover .gd-photo-overlay { opacity: 1; }
.gd-zoom-icon { color: #fff; }
.gd-photo-num {
  color: rgba(255,255,255,.9);
  font-size: .72rem;
  font-weight: 700;
  background: rgba(4,36,22,.6);
  padding: .1rem .45rem;
  border-radius: 99px;
}
.gd-empty { text-align: center; color: #6b7280; padding: 3rem; grid-column: 1/-1; }

/* Related section */
.gd-related-section { padding: 3rem 0; background: #fff; }
.gd-related-header { margin-bottom: 1.75rem; }
.gd-related-header h2 { color: var(--ink, #111827); margin-top: .25rem; }

/* Breadcrumb link */
.breadcrumb-link { color: rgba(255,255,255,.85); text-decoration: underline; }
.breadcrumb-link:hover { color: #fff; }

/* Responsive */
@media (max-width: 900px) {
  .gd-grid { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
}
@media (max-width: 600px) {
  .gd-grid { grid-template-columns: repeat(2, 1fr); gap: 4px; padding: 0 6px; }
  .gd-meta-inner { flex-direction: column; align-items: flex-start; gap: .75rem; }
  .gd-meta-facts { gap: 1rem; }
}
@media (max-width: 380px) {
  .gd-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   GLB — Gallery Lightbox (glb-* namespace)
   Shared between gallery.html and gallery_detail.html
   ============================================================ */

.glb-overlay {
  position: fixed;
  inset: 0;
  z-index: 2000;
  background: rgba(5,12,7,.96);
  display: flex;
  flex-direction: column;
  animation: glbFadeIn .18s ease;
}
.glb-overlay[hidden] { display: none; }
@keyframes glbFadeIn { from { opacity: 0; } to { opacity: 1; } }

/* Top bar */
.glb-bar {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .55rem 1rem;
  background: rgba(4,20,10,.9);
  border-bottom: 1px solid rgba(255,255,255,.1);
  gap: 1rem;
  min-height: 48px;
}
.glb-caption-wrap {
  display: flex;
  align-items: center;
  gap: .75rem;
  min-width: 0;
  flex: 1;
}
.glb-caption {
  color: #fff;
  font-size: .88rem;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  opacity: .9;
}
.glb-counter {
  color: rgba(255,255,255,.55);
  font-size: .75rem;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  flex-shrink: 0;
  background: rgba(255,255,255,.08);
  padding: .15rem .5rem;
  border-radius: 99px;
}
.glb-controls { display: flex; align-items: center; gap: .35rem; flex-shrink: 0; }
.glb-ctrl-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background: rgba(255,255,255,.1);
  color: #fff;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 6px;
  cursor: pointer;
  text-decoration: none;
  transition: background .14s;
  flex-shrink: 0;
}
.glb-ctrl-btn:hover { background: rgba(255,255,255,.22); color: #fff; }
.glb-close-btn { background: rgba(220,38,38,.18); border-color: rgba(220,38,38,.3); }
.glb-close-btn:hover { background: rgba(220,38,38,.35); }

/* Stage: nav + image */
.glb-stage {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  overflow: hidden;
  padding: .5rem;
  gap: .4rem;
  min-height: 0;
}
.glb-nav {
  flex: 0 0 auto;
  width: 46px;
  height: 80px;
  background: rgba(255,255,255,.1);
  color: #fff;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 8px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .15s;
  align-self: center;
}
.glb-nav:hover:not(:disabled) { background: rgba(255,255,255,.22); }
.glb-nav:disabled { opacity: .2; cursor: not-allowed; }

.glb-img-wrap {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  min-height: 0;
  min-width: 0;
  overflow: hidden;
}
.glb-img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 4px;
  opacity: 0;
  transition: opacity .22s;
  display: block;
}
.glb-img.glb-img-loaded { opacity: 1; }

/* Spinner */
.glb-spinner {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}
.glb-spinner::after {
  content: '';
  width: 36px;
  height: 36px;
  border: 3px solid rgba(255,255,255,.18);
  border-top-color: #fff;
  border-radius: 50%;
  animation: glbSpin .8s linear infinite;
}
@keyframes glbSpin { to { transform: rotate(360deg); } }

/* Thumbnail strip (detail page only) */
.glb-thumbs {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 5px;
  padding: .5rem .75rem;
  background: rgba(4,20,10,.9);
  border-top: 1px solid rgba(255,255,255,.08);
  overflow-x: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,.2) transparent;
}
.glb-thumb {
  flex: 0 0 auto;
  width: 70px;
  height: 46px;
  border: 2px solid transparent;
  border-radius: 4px;
  overflow: hidden;
  padding: 0;
  background: transparent;
  cursor: pointer;
  opacity: .55;
  transition: opacity .15s, border-color .15s;
}
.glb-thumb:hover { opacity: .85; }
.glb-thumb.glb-thumb-active { opacity: 1; border-color: var(--green-500, #22c55e); }
.glb-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Responsive lightbox */
@media (max-width: 640px) {
  .glb-bar { padding: .4rem .6rem; }
  .glb-caption { font-size: .78rem; max-width: 140px; }
  .glb-stage { padding: .3rem; gap: .25rem; }
  .glb-nav { width: 36px; height: 60px; }
  .glb-thumbs { display: none; }
  .glb-ctrl-btn { width: 32px; height: 32px; }
}

/* ============================================================
   v34: FLIPBOOK FIX v2 — position:fixed flip sheet
   Bypasses iframe compositor layer entirely.
   ============================================================ */

.mav-flip-sheet {
  position: fixed !important;
  z-index: 9999 !important;
  pointer-events: none;
  border-radius: 8px;
  opacity: 0;
  background:
    linear-gradient(to right,
      rgba(0,0,0,.22) 0%,
      rgba(0,0,0,.08) 3%,
      rgba(255,255,255,.05) 6%,
      transparent 10%),
    #f0ece5;
  box-shadow:
    inset 5px 0 18px rgba(0,0,0,.18),
    3px 0 14px rgba(0,0,0,.22);
}

.mav-sheet-next {
  transform-origin: right center !important;
  animation: mavSheetNextV2 .55s cubic-bezier(.4,0,.2,1) both !important;
}
.mav-sheet-prev {
  transform-origin: left center !important;
  animation: mavSheetPrevV2 .55s cubic-bezier(.4,0,.2,1) both !important;
}

@keyframes mavSheetNextV2 {
  0%   { opacity: 1;  transform: perspective(1400px) rotateY(0deg);   }
  35%  { opacity: 1;  transform: perspective(1400px) rotateY(-40deg); }
  70%  { opacity: .7; transform: perspective(1400px) rotateY(-78deg); }
  100% { opacity: 0;  transform: perspective(1400px) rotateY(-90deg); }
}

@keyframes mavSheetPrevV2 {
  0%   { opacity: 0;  transform: perspective(1400px) rotateY(90deg);  }
  30%  { opacity: .7; transform: perspective(1400px) rotateY(78deg);  }
  65%  { opacity: 1;  transform: perspective(1400px) rotateY(40deg);  }
  85%  { opacity: 1;  transform: perspective(1400px) rotateY(0deg);   }
  100% { opacity: 0;  transform: perspective(1400px) rotateY(0deg);   }
}

/* ---- RED close buttons ---- */
.mav-btn-close-back,
.mav-btn-close-x {
  background: #dc2626 !important;
  border-color: #b91c1c !important;
  color: #fff !important;
}
.mav-btn-close-back:hover,
.mav-btn-close-x:hover {
  background: #b91c1c !important;
  border-color: #991b1b !important;
}
.glb-close-btn {
  background: #dc2626 !important;
  border-color: #b91c1c !important;
  color: #fff !important;
}
.glb-close-btn:hover { background: #b91c1c !important; }

/* ============================================================
   v34: TND — Tenders system (tnd-* namespace)
   ============================================================ */

.tnd-stats-section { background: var(--green-900, #087348); padding: .85rem 0; }
.tnd-stats-inner { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; }
.tnd-stat { display: flex; flex-direction: column; align-items: center; gap: .1rem; min-width: 52px; }
.tnd-stat-value { font-size: 1.5rem; font-weight: 800; color: #fff; line-height: 1; }
.tnd-stat-open    { color: #6ee7b7; }
.tnd-stat-closed  { color: #fca5a5; }
.tnd-stat-awarded { color: #93c5fd; }
.tnd-stat-label { font-size: .65rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: rgba(255,255,255,.65); }
.tnd-stat-divider { width: 1px; height: 32px; background: rgba(255,255,255,.18); }
.tnd-notice-box {
  display: flex; align-items: center; gap: .5rem; margin-left: auto;
  padding: .45rem .9rem; background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.2); border-radius: 6px;
  color: rgba(255,255,255,.9); font-size: .76rem; font-weight: 500; max-width: 360px;
}

.tnd-filter-section {
  position: sticky; top: 0; z-index: 90; background: #fff;
  border-bottom: 1px solid #e5e7eb; box-shadow: 0 2px 8px rgba(0,0,0,.06);
}
.tnd-filter-inner { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; padding: .6rem 0; }
.tnd-tabs { display: flex; align-items: center; gap: .3rem; flex-wrap: wrap; }
.tnd-tab {
  display: inline-flex; align-items: center; padding: .35rem .8rem;
  border: 1.5px solid #d1d5db; border-radius: 99px; background: transparent;
  color: #374151; font-size: .78rem; font-weight: 600; cursor: pointer; white-space: nowrap; transition: all .14s;
}
.tnd-tab:hover { background: #f3f4f6; border-color: #9ca3af; }
.tnd-tab-active { background: var(--green-900, #087348); color: #fff; border-color: var(--green-900, #087348); }
.tnd-tab-active:hover { background: #065f38; }
.tnd-tab-open.tnd-tab-active   { background: #059669; border-color: #059669; }
.tnd-tab-closed.tnd-tab-active { background: #6b7280; border-color: #6b7280; }
.tnd-tab-award.tnd-tab-active  { background: #1d4ed8; border-color: #1d4ed8; }

.tnd-filter-right { display: flex; align-items: center; gap: .5rem; margin-left: auto; flex-wrap: wrap; }
.tnd-select {
  padding: .38rem .75rem; border: 1.5px solid #d1d5db; border-radius: 6px;
  font-size: .8rem; color: #374151; background: #f9fafb; cursor: pointer; outline: none; transition: border-color .14s;
}
.tnd-select:focus { border-color: var(--green-900, #087348); }
.tnd-search-input {
  padding: .38rem .85rem; border: 1.5px solid #d1d5db; border-radius: 99px;
  font-size: .8rem; background: #f9fafb; color: #111827; outline: none; width: 200px; transition: border-color .14s;
}
.tnd-search-input:focus { border-color: var(--green-900, #087348); background: #fff; }
.tnd-search-input::placeholder { color: #9ca3af; }

.tnd-results-bar { border-top: 1px solid #f3f4f6; }
.tnd-results-inner {
  display: flex; align-items: center; justify-content: space-between;
  padding: .3rem 0; font-size: .78rem; color: #6b7280;
}
.tnd-clear-btn {
  background: none; border: none; color: var(--green-900, #087348);
  font-size: .78rem; font-weight: 600; cursor: pointer; text-decoration: underline; padding: 0;
}

.tnd-badge {
  display: inline-flex; align-items: center; padding: .18rem .55rem;
  border-radius: 99px; font-size: .72rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .04em; white-space: nowrap;
}
.tnd-badge-open    { background: #d1fae5; color: #065f46; }
.tnd-badge-closed  { background: #f3f4f6; color: #374151; }
.tnd-badge-awarded { background: #dbeafe; color: #1e3a8a; }
.tnd-badge-soon    { background: #fef3c7; color: #92400e; }
.tnd-badge-lg      { font-size: .8rem; padding: .3rem .85rem; }

.tnd-list-section { padding: 1.25rem 0 2rem; background: #f9fafb; }

.tnd-table-wrap { overflow-x: auto; border-radius: 8px; border: 1px solid #e5e7eb; background: #fff; }
.tnd-table { width: 100%; border-collapse: collapse; font-size: .85rem; }
.tnd-thead { background: var(--green-900, #087348); color: #fff; }
.tnd-thead th {
  padding: .75rem 1rem; text-align: left; font-weight: 700;
  font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; white-space: nowrap; border: none;
}
.tnd-th-action { width: 80px; }
.tnd-row { border-bottom: 1px solid #f3f4f6; transition: background .12s; }
.tnd-row:hover { background: #f9fafb; }
.tnd-row[hidden] { display: none; }
.tnd-row td { padding: .75rem 1rem; color: #374151; vertical-align: middle; }
.tnd-td-ref { width: 160px; }
.tnd-ref-num { font-size: .75rem; font-weight: 700; color: #6b7280; font-family: monospace; }
.tnd-td-title { max-width: 340px; }
.tnd-title-link { color: var(--ink, #111827); font-weight: 600; text-decoration: none; }
.tnd-title-link:hover { color: var(--green-900, #087348); text-decoration: underline; }
.tnd-td-cat { white-space: nowrap; font-size: .8rem; color: #6b7280; }
.tnd-td-date { white-space: nowrap; font-size: .8rem; color: #6b7280; }
.tnd-td-closing { font-weight: 600; color: #374151; }
.tnd-view-btn {
  display: inline-flex; align-items: center; padding: .3rem .7rem;
  background: var(--green-900, #087348); color: #fff; border-radius: 5px;
  font-size: .75rem; font-weight: 700; text-decoration: none; transition: background .14s; white-space: nowrap;
}
.tnd-view-btn:hover { background: #065f38; color: #fff; }
.tnd-empty-cell { text-align: center; padding: 2.5rem; color: #9ca3af; font-size: .9rem; }

.tnd-cards-wrap { display: none; }
.tnd-card {
  background: #fff; border: 1px solid #e5e7eb; border-radius: 8px;
  padding: 1rem 1.1rem; margin-bottom: .6rem; transition: box-shadow .15s;
}
.tnd-card[hidden] { display: none; }
.tnd-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,.09); }
.tnd-card-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: .45rem; }
.tnd-card-ref { font-size: .72rem; font-weight: 700; color: #9ca3af; font-family: monospace; }
.tnd-card-title { font-size: .95rem; font-weight: 700; color: var(--ink, #111827); margin: 0 0 .35rem; line-height: 1.35; }
.tnd-card-title a { color: inherit; text-decoration: none; }
.tnd-card-title a:hover { color: var(--green-900, #087348); }
.tnd-card-summary { font-size: .82rem; color: #6b7280; margin: 0 0 .6rem; line-height: 1.5; }
.tnd-card-meta { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .4rem; margin-bottom: .65rem; }
.tnd-card-cat { font-size: .72rem; font-weight: 600; color: var(--green-900, #087348); text-transform: uppercase; letter-spacing: .04em; }
.tnd-card-dates { display: flex; align-items: center; gap: .3rem; font-size: .76rem; color: #6b7280; }
.tnd-card-btn {
  display: inline-flex; align-items: center; padding: .4rem .9rem;
  background: var(--green-900, #087348); color: #fff; border-radius: 6px;
  font-size: .8rem; font-weight: 700; text-decoration: none; transition: background .14s;
}
.tnd-card-btn:hover { background: #065f38; color: #fff; }

.tnd-empty-state { text-align: center; color: #9ca3af; padding: 3rem; font-size: .95rem; }
.tnd-no-results {
  text-align: center; padding: 3rem 1rem; color: #6b7280;
  background: #fff; border: 1px solid #e5e7eb; border-radius: 8px;
}
.tnd-no-results svg { opacity: .3; margin-bottom: .75rem; }
.tnd-no-results p { font-size: .95rem; margin-bottom: .65rem; }

.tnd-howto-section { padding: 3rem 0; background: #fff; }
.tnd-howto-inner { display: grid; grid-template-columns: 1fr 1.4fr; gap: 3rem; align-items: start; }
.tnd-howto-copy h2 { color: var(--ink, #111827); margin-top: .25rem; }
.tnd-howto-copy p  { color: #6b7280; line-height: 1.7; }
.tnd-steps { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 1.1rem; }
.tnd-step { display: flex; align-items: flex-start; gap: 1rem; }
.tnd-step-num {
  flex: 0 0 32px; height: 32px; border-radius: 50%; background: var(--green-900, #087348);
  color: #fff; font-size: .82rem; font-weight: 800; display: flex; align-items: center; justify-content: center;
}
.tnd-step div strong { display: block; font-size: .92rem; color: var(--ink, #111827); margin-bottom: .15rem; }
.tnd-step div p { font-size: .82rem; color: #6b7280; margin: 0; line-height: 1.5; }

.tnd-contact-section { background: #f0fdf4; padding: 1.5rem 0; border-top: 1px solid #bbf7d0; }
.tnd-contact-inner { display: flex; align-items: center; flex-wrap: wrap; gap: 1.25rem; }
.tnd-contact-card { display: flex; align-items: center; gap: .75rem; color: var(--ink, #111827); }
.tnd-contact-card svg { color: var(--green-900, #087348); flex-shrink: 0; }
.tnd-contact-card strong { display: block; font-size: .85rem; font-weight: 700; }
.tnd-contact-card a, .tnd-contact-card span { font-size: .82rem; color: #6b7280; }
.tnd-contact-card a:hover { color: var(--green-900, #087348); }
.tnd-contact-link {
  margin-left: auto; display: inline-flex; align-items: center; padding: .45rem 1rem;
  background: var(--green-900, #087348); color: #fff; border-radius: 6px;
  font-size: .82rem; font-weight: 700; text-decoration: none; transition: background .14s;
}
.tnd-contact-link:hover { background: #065f38; color: #fff; }

.tnd-detail-section { padding: 2rem 0 3rem; background: #f9fafb; }
.tnd-detail-layout { display: grid; grid-template-columns: 1fr 280px; gap: 2rem; align-items: start; }
.tnd-hero-meta { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; margin-top: .5rem; }
.tnd-hero-ref  { color: rgba(255,255,255,.75); font-size: .82rem; font-family: monospace; font-weight: 600; }
.tnd-hero-cat  { color: rgba(255,255,255,.65); font-size: .8rem; }

.tnd-fact-strip {
  display: flex; flex-wrap: wrap; gap: 0; background: #fff;
  border: 1px solid #e5e7eb; border-radius: 8px; overflow: hidden; margin-bottom: 1.5rem;
}
.tnd-fact { display: flex; flex-direction: column; gap: .1rem; padding: .85rem 1.1rem; border-right: 1px solid #f3f4f6; flex: 1; min-width: 110px; }
.tnd-fact:last-child { border-right: none; }
.tnd-fact-label { font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #9ca3af; }
.tnd-fact strong { font-size: .9rem; font-weight: 700; color: var(--ink, #111827); }
.tnd-fact-closing { color: #b45309 !important; }

.tnd-section-block { background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; padding: 1.4rem 1.5rem; margin-bottom: 1.25rem; }
.tnd-section-title {
  font-size: .95rem; font-weight: 700; color: var(--green-900, #087348);
  text-transform: uppercase; letter-spacing: .06em; margin: 0 0 .85rem; padding-bottom: .6rem; border-bottom: 2px solid #d1fae5;
}
.tnd-description, .tnd-requirements { font-size: .9rem; color: #374151; line-height: 1.75; margin: 0; }

.tnd-doc-actions { display: flex; gap: .65rem; flex-wrap: wrap; margin-bottom: 1rem; }
.tnd-doc-btn { display: inline-flex; align-items: center; gap: .45rem; padding: .55rem 1.1rem; border-radius: 6px; font-size: .85rem; font-weight: 700; text-decoration: none; transition: all .15s; }
.tnd-doc-view { background: var(--green-900, #087348); color: #fff; }
.tnd-doc-view:hover { background: #065f38; color: #fff; }
.tnd-doc-dl { background: #f3f4f6; color: var(--ink, #111827); border: 1px solid #e5e7eb; }
.tnd-doc-dl:hover { background: #e5e7eb; }
.tnd-pdf-embed-wrap { border-radius: 6px; overflow: hidden; background: #e5e7eb; }
.tnd-pdf-embed { width: 100%; height: 540px; border: none; display: block; }
.tnd-no-doc { display: flex; align-items: center; gap: 1rem; background: #f9fafb; border-color: #e5e7eb; }
.tnd-no-doc svg { color: #9ca3af; flex-shrink: 0; }
.tnd-no-doc p { color: #6b7280; font-size: .87rem; margin: 0; }

.tnd-submission-box { border-color: #bbf7d0; background: #f0fdf4; }
.tnd-address { font-style: normal; font-size: .87rem; line-height: 1.8; color: #374151; background: #fff; padding: .85rem 1rem; border-radius: 6px; border: 1px solid #d1fae5; margin: .65rem 0; }
.tnd-submission-note { font-size: .82rem; color: #6b7280; margin-bottom: .75rem; }
.tnd-open-notice, .tnd-closed-notice, .tnd-awarded-notice {
  display: flex; align-items: flex-start; gap: .5rem; padding: .65rem .9rem; border-radius: 6px; font-size: .83rem; font-weight: 500;
}
.tnd-open-notice    { background: #d1fae5; color: #065f46; }
.tnd-closed-notice  { background: #f3f4f6; color: #374151; }
.tnd-awarded-notice { background: #dbeafe; color: #1e3a8a; }
.tnd-open-notice svg    { flex-shrink: 0; margin-top: 1px; color: #059669; }
.tnd-closed-notice svg  { flex-shrink: 0; margin-top: 1px; color: #9ca3af; }
.tnd-awarded-notice svg { flex-shrink: 0; margin-top: 1px; color: #1d4ed8; }

.tnd-detail-sidebar { display: flex; flex-direction: column; gap: 1rem; }
.tnd-sidebar-card { background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; padding: 1.1rem 1.2rem; }
.tnd-sidebar-title { font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: #6b7280; margin: 0 0 .8rem; }
.tnd-sidebar-dl { display: grid; grid-template-columns: auto 1fr; gap: .3rem .75rem; font-size: .83rem; margin: 0; }
.tnd-sidebar-dl dt { color: #9ca3af; font-weight: 600; white-space: nowrap; }
.tnd-sidebar-dl dd { color: var(--ink, #111827); font-weight: 600; margin: 0; }
.tnd-sidebar-contact-name { font-size: .88rem; font-weight: 700; color: var(--ink, #111827); margin: 0 0 .3rem; }
.tnd-sidebar-email { color: var(--green-900, #087348); font-size: .83rem; word-break: break-all; }
.tnd-sidebar-email:hover { text-decoration: underline; }
.tnd-sidebar-actions { display: flex; flex-direction: column; gap: .5rem; }
.tnd-back-btn { display: flex; align-items: center; gap: .4rem; padding: .5rem .9rem; background: #f3f4f6; color: var(--ink, #111827); border-radius: 6px; font-size: .82rem; font-weight: 600; text-decoration: none; transition: background .13s; }
.tnd-back-btn:hover { background: #e5e7eb; }
.tnd-contact-sidebar-btn { display: flex; align-items: center; justify-content: center; padding: .5rem; background: var(--green-900, #087348); color: #fff; border-radius: 6px; font-size: .82rem; font-weight: 700; text-decoration: none; transition: background .13s; }
.tnd-contact-sidebar-btn:hover { background: #065f38; color: #fff; }
.tnd-download-sidebar-btn { display: flex; align-items: center; justify-content: center; padding: .5rem; background: #1d4ed8; color: #fff; border-radius: 6px; font-size: .82rem; font-weight: 700; text-decoration: none; transition: background .13s; }
.tnd-download-sidebar-btn:hover { background: #1e40af; color: #fff; }

.tnd-related-section { padding: 2.5rem 0; background: #fff; }
.tnd-related-section h2 { color: var(--ink, #111827); margin-top: .25rem; margin-bottom: 1.5rem; }
.tnd-related-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1rem; }
.tnd-related-card { background: #f9fafb; border: 1px solid #e5e7eb; border-radius: 8px; padding: 1rem 1.15rem; transition: box-shadow .15s; }
.tnd-related-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,.09); }
.tnd-related-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: .5rem; }
.tnd-related-card h3 { font-size: .92rem; font-weight: 700; color: var(--ink, #111827); margin: 0 0 .4rem; }
.tnd-related-card h3 a { color: inherit; text-decoration: none; }
.tnd-related-card h3 a:hover { color: var(--green-900, #087348); }
.tnd-related-card p { font-size: .8rem; color: #6b7280; margin: 0 0 .5rem; line-height: 1.5; }
.tnd-related-closing { font-size: .75rem; font-weight: 600; color: #9ca3af; }

@media (max-width: 960px) {
  .tnd-detail-layout { grid-template-columns: 1fr; }
  .tnd-detail-sidebar { order: -1; flex-direction: row; flex-wrap: wrap; }
  .tnd-sidebar-card { flex: 1; min-width: 220px; }
}
@media (max-width: 768px) {
  .tnd-table-wrap { display: none; }
  .tnd-cards-wrap { display: block; }
  .tnd-howto-inner { grid-template-columns: 1fr; gap: 2rem; }
  .tnd-filter-inner { gap: .4rem; }
  .tnd-filter-right { margin-left: 0; width: 100%; }
  .tnd-search-input { width: 100%; }
  .tnd-stats-inner { justify-content: center; }
  .tnd-notice-box { display: none; }
  .tnd-fact-strip { flex-direction: column; }
  .tnd-fact { border-right: none; border-bottom: 1px solid #f3f4f6; }
  .tnd-fact:last-child { border-bottom: none; }
  .tnd-pdf-embed { height: 380px; }
}
@media (max-width: 480px) {
  .tnd-detail-sidebar { flex-direction: column; }
  .tnd-related-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   v35 — JOB OPPORTUNITIES  (job-* / jd-*)
   ============================================================ */

/* Stats strip */
.job-stats-section { background: var(--green-900,#087348); padding:.85rem 0; }
.job-stats-inner { display:flex; align-items:center; flex-wrap:wrap; gap:1rem; }
.job-stat { display:flex; flex-direction:column; align-items:center; gap:.1rem; min-width:52px; }
.job-stat-value { font-size:1.5rem; font-weight:800; color:#fff; line-height:1; }
.job-stat-open    { color:#6ee7b7; }
.job-stat-closed  { color:#fca5a5; }
.job-stat-label { font-size:.65rem; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:rgba(255,255,255,.65); }
.job-stat-divider { width:1px; height:32px; background:rgba(255,255,255,.18); }
.job-notice-box { display:flex; align-items:center; gap:.5rem; margin-left:auto; padding:.45rem .9rem; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); border-radius:6px; color:rgba(255,255,255,.9); font-size:.76rem; font-weight:500; max-width:400px; }

/* Filter bar */
.job-filter-section { position:sticky; top:0; z-index:90; background:#fff; border-bottom:1px solid #e5e7eb; box-shadow:0 2px 8px rgba(0,0,0,.06); }
.job-filter-inner { display:flex; align-items:center; flex-wrap:wrap; gap:.75rem; padding:.6rem 0; }
.job-tabs { display:flex; align-items:center; gap:.3rem; flex-wrap:wrap; }
.job-tab { display:inline-flex; align-items:center; gap:.35rem; padding:.35rem .8rem; border:1.5px solid #d1d5db; border-radius:99px; background:transparent; color:#374151; font-size:.78rem; font-weight:600; cursor:pointer; white-space:nowrap; transition:all .14s; }
.job-tab:hover { background:#f3f4f6; border-color:#9ca3af; }
.job-tab-count { font-size:.7rem; background:#e5e7eb; color:#6b7280; border-radius:99px; padding:.05rem .35rem; }
.job-tab-active { background:var(--green-900,#087348); color:#fff; border-color:var(--green-900,#087348); }
.job-tab-active .job-tab-count { background:rgba(255,255,255,.25); color:#fff; }
.job-tab-active:hover { background:#065f38; }
.job-tab-open.job-tab-active  { background:#059669; border-color:#059669; }
.job-tab-closed.job-tab-active { background:#6b7280; border-color:#6b7280; }
.job-filter-right { display:flex; align-items:center; gap:.5rem; margin-left:auto; flex-wrap:wrap; }
.job-select { padding:.38rem .75rem; border:1.5px solid #d1d5db; border-radius:6px; font-size:.8rem; color:#374151; background:#f9fafb; cursor:pointer; outline:none; transition:border-color .14s; }
.job-select:focus { border-color:var(--green-900,#087348); }
.job-search-input { padding:.38rem .85rem; border:1.5px solid #d1d5db; border-radius:99px; font-size:.8rem; background:#f9fafb; color:#111827; outline:none; width:220px; transition:border-color .14s; }
.job-search-input:focus { border-color:var(--green-900,#087348); background:#fff; }
.job-search-input::placeholder { color:#9ca3af; }
.job-results-bar { border-top:1px solid #f3f4f6; }
.job-results-inner { display:flex; align-items:center; justify-content:space-between; padding:.3rem 0; font-size:.78rem; color:#6b7280; }
.job-clear-btn { background:none; border:none; color:var(--green-900,#087348); font-size:.78rem; font-weight:600; cursor:pointer; text-decoration:underline; padding:0; }

/* Badges */
.job-badge { display:inline-flex; align-items:center; gap:.3rem; padding:.18rem .55rem; border-radius:99px; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; white-space:nowrap; }
.job-badge-open   { background:#d1fae5; color:#065f46; }
.job-badge-closed { background:#f3f4f6; color:#374151; }
.job-badge-lg     { font-size:.8rem; padding:.3rem .85rem; }
.job-badge-soon   { display:inline-flex; background:#fef3c7; color:#92400e; border-radius:99px; font-size:.65rem; padding:.1rem .4rem; margin-left:.25rem; }
.job-dept-tag { display:inline-flex; font-size:.72rem; font-weight:600; color:var(--green-900,#087348); background:#f0fdf4; border:1px solid #bbf7d0; border-radius:4px; padding:.15rem .45rem; }
.job-location-tag { display:inline-flex; align-items:center; gap:.25rem; font-size:.75rem; color:#6b7280; }

/* Job list */
.job-list-section { padding:1.25rem 0 2.5rem; background:#f9fafb; }
.job-list { display:flex; flex-direction:column; gap:.75rem; }
.job-card { background:#fff; border:1px solid #e5e7eb; border-radius:10px; padding:1.25rem 1.4rem; transition:box-shadow .15s, border-color .15s; }
.job-card:hover { box-shadow:0 4px 20px rgba(0,0,0,.09); border-color:#d1fae5; }
.job-card[hidden] { display:none; }
.job-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:.75rem; margin-bottom:.65rem; flex-wrap:wrap; }
.job-card-meta { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; }
.job-card-title { font-size:1.05rem; font-weight:700; color:var(--ink,#111827); margin:0 0 .5rem; line-height:1.35; }
.job-card-title a { color:inherit; text-decoration:none; }
.job-card-title a:hover { color:var(--green-900,#087348); }
.job-card-description { font-size:.87rem; color:#374151; line-height:1.65; margin:0 0 1rem; }
.job-card-footer { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.5rem; }
.job-card-dates { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; font-size:.78rem; color:#6b7280; }
.job-date-item { display:inline-flex; align-items:center; gap:.2rem; }
.job-date-label { font-weight:600; color:#9ca3af; }
.job-date-sep { color:#d1d5db; }
.job-date-closing { color:#b45309; font-weight:600; }
.job-view-btn { display:inline-flex; align-items:center; gap:.3rem; padding:.4rem .9rem; background:var(--green-900,#087348); color:#fff; border-radius:6px; font-size:.82rem; font-weight:700; text-decoration:none; transition:background .14s; white-space:nowrap; }
.job-view-btn:hover { background:#065f38; color:#fff; }
.job-empty-state { text-align:center; color:#9ca3af; padding:3rem; font-size:.95rem; }
.job-no-results { text-align:center; padding:3rem 1rem; color:#6b7280; background:#fff; border:1px solid #e5e7eb; border-radius:8px; }
.job-no-results svg { opacity:.3; margin-bottom:.75rem; display:block; margin-left:auto; margin-right:auto; }

/* How to apply */
.job-howto-section { padding:3rem 0; background:#fff; }
.job-howto-inner { display:grid; grid-template-columns:1fr 1.5fr; gap:3rem; align-items:start; }
.job-howto-copy h2 { color:var(--ink,#111827); margin-top:.25rem; }
.job-howto-copy p  { color:#6b7280; line-height:1.7; }
.job-steps { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:1.1rem; }
.job-step { display:flex; align-items:flex-start; gap:1rem; }
.job-step-num { flex:0 0 32px; height:32px; border-radius:50%; background:var(--green-900,#087348); color:#fff; font-size:.82rem; font-weight:800; display:flex; align-items:center; justify-content:center; }
.job-step div strong { display:block; font-size:.92rem; color:var(--ink,#111827); margin-bottom:.15rem; }
.job-step div p { font-size:.82rem; color:#6b7280; margin:0; line-height:1.5; }

/* Contact strip */
.job-contact-section { background:#f0fdf4; padding:1.5rem 0; border-top:1px solid #bbf7d0; }
.job-contact-inner { display:flex; align-items:center; flex-wrap:wrap; gap:1.25rem; }
.job-contact-card { display:flex; align-items:center; gap:.75rem; color:var(--ink,#111827); }
.job-contact-card svg { color:var(--green-900,#087348); flex-shrink:0; }
.job-contact-card strong { display:block; font-size:.85rem; font-weight:700; }
.job-contact-card a, .job-contact-card span { font-size:.82rem; color:#6b7280; }
.job-contact-card a:hover { color:var(--green-900,#087348); }
.job-contact-link { margin-left:auto; display:inline-flex; align-items:center; padding:.45rem 1rem; background:var(--green-900,#087348); color:#fff; border-radius:6px; font-size:.82rem; font-weight:700; text-decoration:none; transition:background .14s; }
.job-contact-link:hover { background:#065f38; color:#fff; }

/* ── Job Detail (jd-*) ── */
.jd-hero-meta { display:flex; align-items:center; gap:.75rem; flex-wrap:wrap; margin-top:.5rem; }
.jd-hero-dept { color:rgba(255,255,255,.8); font-size:.85rem; font-weight:600; }
.jd-hero-location { display:flex; align-items:center; gap:.3rem; color:rgba(255,255,255,.65); font-size:.82rem; }
.jd-detail-section { padding:2rem 0 3rem; background:#f9fafb; }
.jd-detail-layout { display:grid; grid-template-columns:1fr 280px; gap:2rem; align-items:start; }
.jd-fact-strip { display:flex; flex-wrap:wrap; gap:0; background:#fff; border:1px solid #e5e7eb; border-radius:8px; overflow:hidden; margin-bottom:1.5rem; }
.jd-fact { display:flex; flex-direction:column; gap:.1rem; padding:.85rem 1.1rem; border-right:1px solid #f3f4f6; flex:1; min-width:110px; }
.jd-fact:last-child { border-right:none; }
.jd-fact-label { font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:#9ca3af; }
.jd-fact strong { font-size:.9rem; font-weight:700; color:var(--ink,#111827); }
.jd-fact-closing { color:#b45309 !important; }
.jd-section-block { background:#fff; border:1px solid #e5e7eb; border-radius:8px; padding:1.4rem 1.5rem; margin-bottom:1.25rem; }
.jd-section-title { font-size:.95rem; font-weight:700; color:var(--green-900,#087348); text-transform:uppercase; letter-spacing:.06em; margin:0 0 .85rem; padding-bottom:.6rem; border-bottom:2px solid #d1fae5; }
.jd-body-text { font-size:.9rem; color:#374151; line-height:1.75; margin:0; }
.jd-bullet-list { margin:0; padding-left:1.3rem; display:flex; flex-direction:column; gap:.45rem; }
.jd-bullet-list li { font-size:.88rem; color:#374151; line-height:1.6; }
.jd-apply-box { background:#f0fdf4; border-color:#bbf7d0; }
.jd-open-notice, .jd-closed-notice { display:flex; align-items:flex-start; gap:.5rem; padding:.65rem .9rem; border-radius:6px; font-size:.83rem; font-weight:500; margin-top:.85rem; }
.jd-open-notice   { background:#d1fae5; color:#065f46; }
.jd-closed-notice { background:#f3f4f6; color:#374151; }
.jd-open-notice svg   { flex-shrink:0; margin-top:1px; color:#059669; }
.jd-closed-notice svg { flex-shrink:0; margin-top:1px; color:#9ca3af; }
.jd-detail-sidebar { display:flex; flex-direction:column; gap:1rem; }
.jd-sidebar-card { background:#fff; border:1px solid #e5e7eb; border-radius:8px; padding:1.1rem 1.2rem; }
.jd-sidebar-title { font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:#6b7280; margin:0 0 .8rem; }
.jd-sidebar-dl { display:grid; grid-template-columns:auto 1fr; gap:.3rem .75rem; font-size:.83rem; margin:0; }
.jd-sidebar-dl dt { color:#9ca3af; font-weight:600; white-space:nowrap; }
.jd-sidebar-dl dd { color:var(--ink,#111827); font-weight:600; margin:0; }
.jd-sidebar-address { font-style:normal; font-size:.82rem; line-height:1.8; color:#374151; }
.jd-sidebar-actions { display:flex; flex-direction:column; gap:.5rem; }
.jd-back-btn { display:flex; align-items:center; gap:.4rem; padding:.5rem .9rem; background:#f3f4f6; color:var(--ink,#111827); border-radius:6px; font-size:.82rem; font-weight:600; text-decoration:none; transition:background .13s; }
.jd-back-btn:hover { background:#e5e7eb; }
.jd-enquire-btn { display:flex; align-items:center; justify-content:center; padding:.5rem; background:var(--green-900,#087348); color:#fff; border-radius:6px; font-size:.82rem; font-weight:700; text-decoration:none; transition:background .13s; }
.jd-enquire-btn:hover { background:#065f38; color:#fff; }
.jd-related-section { padding:2.5rem 0; background:#fff; }
.jd-related-section h2 { color:var(--ink,#111827); margin-top:.25rem; margin-bottom:1.5rem; }
.jd-related-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:1rem; }
.jd-related-card { background:#f9fafb; border:1px solid #e5e7eb; border-radius:8px; padding:1rem 1.15rem; transition:box-shadow .15s; }
.jd-related-card:hover { box-shadow:0 4px 16px rgba(0,0,0,.09); }
.jd-related-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:.5rem; flex-wrap:wrap; gap:.4rem; }
.jd-related-card h3 { font-size:.92rem; font-weight:700; color:var(--ink,#111827); margin:0 0 .4rem; }
.jd-related-card h3 a { color:inherit; text-decoration:none; }
.jd-related-card h3 a:hover { color:var(--green-900,#087348); }
.jd-related-card p { font-size:.8rem; color:#6b7280; margin:0 0 .5rem; line-height:1.5; }
.jd-related-closing { font-size:.75rem; font-weight:600; color:#9ca3af; }

@media (max-width:960px) {
  .jd-detail-layout { grid-template-columns:1fr; }
  .jd-detail-sidebar { flex-direction:row; flex-wrap:wrap; }
  .jd-sidebar-card { flex:1; min-width:220px; }
}
@media (max-width:768px) {
  .job-howto-inner { grid-template-columns:1fr; gap:2rem; }
  .job-filter-inner { gap:.4rem; }
  .job-filter-right { margin-left:0; width:100%; }
  .job-search-input { width:100%; }
  .job-stats-inner { justify-content:center; }
  .job-notice-box { display:none; }
  .jd-fact-strip { flex-direction:column; }
  .jd-fact { border-right:none; border-bottom:1px solid #f3f4f6; }
  .jd-fact:last-child { border-bottom:none; }
}
@media (max-width:480px) {
  .jd-detail-sidebar { flex-direction:column; }
  .jd-related-grid { grid-template-columns:1fr; }
}

/* ============================================================
   v35 — INVESTMENT & PROJECTS  (prj-* / pd-*)
   ============================================================ */

/* Stats */
.prj-stats-section { background:var(--green-900,#087348); padding:.85rem 0; }
.prj-stats-inner { display:flex; align-items:center; flex-wrap:wrap; gap:1rem; justify-content:center; }
.prj-stat { display:flex; flex-direction:column; align-items:center; gap:.1rem; min-width:60px; }
.prj-stat-value { font-size:1.5rem; font-weight:800; color:#fff; line-height:1; }
.prj-stat-ongoing   { color:#6ee7b7; }
.prj-stat-completed { color:#93c5fd; }
.prj-stat-planned   { color:#fcd34d; }
.prj-stat-label { font-size:.65rem; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:rgba(255,255,255,.65); }
.prj-stat-divider { width:1px; height:32px; background:rgba(255,255,255,.18); }

/* Badges */
.prj-badge { display:inline-flex; align-items:center; padding:.18rem .55rem; border-radius:99px; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; white-space:nowrap; }
.prj-badge-ongoing   { background:#d1fae5; color:#065f46; }
.prj-badge-completed { background:#dbeafe; color:#1e3a8a; }
.prj-badge-planned   { background:#fef3c7; color:#92400e; }
.prj-badge-lg        { font-size:.8rem; padding:.3rem .85rem; }

/* Filter */
.prj-filter-section { position:sticky; top:0; z-index:90; background:#fff; border-bottom:1px solid #e5e7eb; box-shadow:0 2px 8px rgba(0,0,0,.06); }
.prj-filter-inner { display:flex; align-items:center; flex-wrap:wrap; gap:.75rem; padding:.65rem 0; }
.prj-tabs { display:flex; align-items:center; gap:.3rem; flex-wrap:wrap; }
.prj-tab { display:inline-flex; align-items:center; padding:.35rem .8rem; border:1.5px solid #d1d5db; border-radius:99px; background:transparent; color:#374151; font-size:.78rem; font-weight:600; cursor:pointer; white-space:nowrap; transition:all .14s; }
.prj-tab:hover { background:#f3f4f6; border-color:#9ca3af; }
.prj-tab-active     { background:var(--green-900,#087348); color:#fff; border-color:var(--green-900,#087348); }
.prj-tab-active:hover { background:#065f38; }
.prj-tab-ongoing.prj-tab-active   { background:#059669; border-color:#059669; }
.prj-tab-completed.prj-tab-active { background:#1d4ed8; border-color:#1d4ed8; }
.prj-tab-planned.prj-tab-active   { background:#d97706; border-color:#d97706; }
.prj-filter-right { margin-left:auto; }
.prj-search-input { padding:.38rem .85rem; border:1.5px solid #d1d5db; border-radius:99px; font-size:.8rem; background:#f9fafb; color:#111827; outline:none; width:220px; transition:border-color .14s; }
.prj-search-input:focus { border-color:var(--green-900,#087348); background:#fff; }
.prj-search-input::placeholder { color:#9ca3af; }

/* Grid */
.prj-list-section { padding:1.5rem 0 3rem; background:#f9fafb; }
.prj-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:1.25rem; }
.prj-card { background:#fff; border:1px solid #e5e7eb; border-radius:10px; overflow:hidden; transition:box-shadow .15s, border-color .15s; display:flex; flex-direction:column; }
.prj-card:hover { box-shadow:0 6px 24px rgba(0,0,0,.1); border-color:#d1fae5; }
.prj-card[hidden] { display:none; }
.prj-card-img-wrap { position:relative; height:180px; background:#f3f4f6; overflow:hidden; flex-shrink:0; }
.prj-card-img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s; }
.prj-card:hover .prj-card-img { transform:scale(1.03); }
.prj-card-img-placeholder { width:100%; height:100%; display:flex; align-items:center; justify-content:center; color:#d1d5db; }
.prj-card-img-wrap .prj-badge { position:absolute; top:.6rem; right:.6rem; }
.prj-card-body { padding:1.1rem 1.2rem; display:flex; flex-direction:column; flex:1; }
.prj-card-timeline { font-size:.72rem; font-weight:600; color:var(--green-900,#087348); text-transform:uppercase; letter-spacing:.05em; margin-bottom:.3rem; display:block; }
.prj-card-title { font-size:1rem; font-weight:700; color:var(--ink,#111827); margin:0 0 .5rem; line-height:1.35; }
.prj-card-title a { color:inherit; text-decoration:none; }
.prj-card-title a:hover { color:var(--green-900,#087348); }
.prj-card-desc { font-size:.84rem; color:#374151; line-height:1.6; margin:0 0 1rem; flex:1; }
.prj-view-btn { display:inline-flex; align-items:center; gap:.3rem; padding:.4rem .9rem; background:var(--green-900,#087348); color:#fff; border-radius:6px; font-size:.8rem; font-weight:700; text-decoration:none; transition:background .14s; align-self:flex-start; white-space:nowrap; }
.prj-view-btn:hover { background:#065f38; color:#fff; }
.prj-empty-state { text-align:center; color:#9ca3af; padding:3rem; grid-column:1/-1; }
.prj-no-results { text-align:center; padding:3rem 1rem; color:#6b7280; grid-column:1/-1; }
.prj-no-results svg { opacity:.3; margin-bottom:.75rem; display:block; margin-left:auto; margin-right:auto; }
.prj-clear-btn { background:none; border:none; color:var(--green-900,#087348); font-size:.82rem; font-weight:600; cursor:pointer; text-decoration:underline; padding:0; margin-top:.5rem; }

/* Mandate section */
.prj-mandate-section { padding:3rem 0; background:#fff; }
.prj-mandate-inner { display:grid; grid-template-columns:1fr 1.6fr; gap:3rem; align-items:start; }
.prj-mandate-copy h2 { color:var(--ink,#111827); margin-top:.25rem; }
.prj-mandate-copy p  { color:#6b7280; line-height:1.7; }
.prj-mandate-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.prj-mandate-card { background:#f9fafb; border:1px solid #e5e7eb; border-radius:8px; padding:1.1rem 1rem; }
.prj-mandate-icon { width:40px; height:40px; background:var(--green-900,#087348); border-radius:8px; display:flex; align-items:center; justify-content:center; color:#fff; margin-bottom:.7rem; }
.prj-mandate-card strong { display:block; font-size:.88rem; color:var(--ink,#111827); font-weight:700; margin-bottom:.35rem; }
.prj-mandate-card p { font-size:.8rem; color:#6b7280; margin:0; line-height:1.55; }

/* ── Project Detail (pd-*) ── */
.pd-hero-meta { display:flex; align-items:center; gap:.75rem; flex-wrap:wrap; margin-top:.5rem; }
.pd-hero-timeline { color:rgba(255,255,255,.75); font-size:.82rem; font-weight:600; }
.pd-hero-dept { color:rgba(255,255,255,.6); font-size:.8rem; }
.pd-detail-section { padding:2rem 0 3rem; background:#f9fafb; }
.pd-detail-layout { display:grid; grid-template-columns:1fr 280px; gap:2rem; align-items:start; }
.pd-image-wrap { border-radius:10px; overflow:hidden; margin-bottom:1.5rem; background:#e5e7eb; }
.pd-image { width:100%; max-height:400px; object-fit:cover; display:block; }
.pd-status-strip { display:flex; flex-wrap:wrap; gap:0; background:#fff; border:1px solid #e5e7eb; border-radius:8px; overflow:hidden; margin-bottom:1.5rem; }
.pd-status-item { display:flex; flex-direction:column; gap:.1rem; padding:.85rem 1.1rem; border-right:1px solid #f3f4f6; flex:1; min-width:120px; }
.pd-status-item:last-child { border-right:none; }
.pd-status-label { font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:#9ca3af; }
.pd-status-item strong { font-size:.9rem; font-weight:700; color:var(--ink,#111827); }
.pd-section-block { background:#fff; border:1px solid #e5e7eb; border-radius:8px; padding:1.4rem 1.5rem; margin-bottom:1.25rem; }
.pd-section-title { font-size:.95rem; font-weight:700; color:var(--green-900,#087348); text-transform:uppercase; letter-spacing:.06em; margin:0 0 .85rem; padding-bottom:.6rem; border-bottom:2px solid #d1fae5; }
.pd-body-text { font-size:.9rem; color:#374151; line-height:1.75; margin:0; }
.pd-bullet-list { margin:0; padding-left:1.3rem; display:flex; flex-direction:column; gap:.45rem; }
.pd-bullet-list li { font-size:.88rem; color:#374151; line-height:1.6; }
.pd-impact-block { background:#f0fdf4; border-color:#bbf7d0; }
.pd-detail-sidebar { display:flex; flex-direction:column; gap:1rem; }
.pd-sidebar-card { background:#fff; border:1px solid #e5e7eb; border-radius:8px; padding:1.1rem 1.2rem; }
.pd-sidebar-title { font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:#6b7280; margin:0 0 .8rem; }
.pd-sidebar-dl { display:grid; grid-template-columns:auto 1fr; gap:.3rem .75rem; font-size:.83rem; margin:0; }
.pd-sidebar-dl dt { color:#9ca3af; font-weight:600; white-space:nowrap; }
.pd-sidebar-dl dd { color:var(--ink,#111827); font-weight:600; margin:0; }
.pd-sidebar-actions { display:flex; flex-direction:column; gap:.5rem; }
.pd-back-btn { display:flex; align-items:center; gap:.4rem; padding:.5rem .9rem; background:#f3f4f6; color:var(--ink,#111827); border-radius:6px; font-size:.82rem; font-weight:600; text-decoration:none; transition:background .13s; }
.pd-back-btn:hover { background:#e5e7eb; }
.pd-enquire-btn { display:flex; align-items:center; justify-content:center; padding:.5rem; background:var(--green-900,#087348); color:#fff; border-radius:6px; font-size:.82rem; font-weight:700; text-decoration:none; transition:background .13s; }
.pd-enquire-btn:hover { background:#065f38; color:#fff; }
.pd-related-section { padding:2.5rem 0; background:#fff; }
.pd-related-section h2 { color:var(--ink,#111827); margin-top:.25rem; margin-bottom:1.5rem; }
.pd-related-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:1rem; }
.pd-related-card { background:#f9fafb; border:1px solid #e5e7eb; border-radius:8px; overflow:hidden; transition:box-shadow .15s; }
.pd-related-card:hover { box-shadow:0 4px 16px rgba(0,0,0,.09); }
.pd-related-img { width:100%; height:120px; object-fit:cover; display:block; }
.pd-related-body { padding:.85rem 1rem; }
.pd-related-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:.4rem; flex-wrap:wrap; gap:.3rem; }
.pd-related-timeline { font-size:.72rem; color:#9ca3af; font-weight:600; }
.pd-related-card h3 { font-size:.9rem; font-weight:700; color:var(--ink,#111827); margin:0 0 .35rem; }
.pd-related-card h3 a { color:inherit; text-decoration:none; }
.pd-related-card h3 a:hover { color:var(--green-900,#087348); }
.pd-related-card p { font-size:.79rem; color:#6b7280; margin:0; line-height:1.5; }

@media (max-width:960px) {
  .pd-detail-layout { grid-template-columns:1fr; }
  .pd-detail-sidebar { flex-direction:row; flex-wrap:wrap; }
  .pd-sidebar-card { flex:1; min-width:220px; }
  .prj-mandate-inner { grid-template-columns:1fr; gap:2rem; }
}
@media (max-width:768px) {
  .prj-filter-inner { gap:.4rem; }
  .prj-filter-right { margin-left:0; width:100%; }
  .prj-search-input { width:100%; }
  .prj-grid { grid-template-columns:1fr; }
  .prj-mandate-cards { grid-template-columns:1fr; }
  .pd-status-strip { flex-direction:column; }
  .pd-status-item { border-right:none; border-bottom:1px solid #f3f4f6; }
  .pd-status-item:last-child { border-bottom:none; }
}
@media (max-width:480px) {
  .pd-detail-sidebar { flex-direction:column; }
  .pd-related-grid { grid-template-columns:1fr; }
}

/* ============================================================
   v35 — FAQ  (faq-acc-* / faq-*)
   ============================================================ */

/* Filter */
.faq-filter-section { background:#fff; border-bottom:1px solid #e5e7eb; box-shadow:0 2px 8px rgba(0,0,0,.05); }
.faq-filter-inner { display:flex; flex-direction:column; gap:.75rem; padding:.85rem 0; }
.faq-search-wrap { position:relative; }
.faq-search-icon { position:absolute; left:.8rem; top:50%; transform:translateY(-50%); color:#9ca3af; pointer-events:none; }
.faq-search-input { width:100%; max-width:520px; padding:.5rem .85rem .5rem 2.25rem; border:1.5px solid #d1d5db; border-radius:99px; font-size:.88rem; background:#f9fafb; color:#111827; outline:none; transition:border-color .14s; }
.faq-search-input:focus { border-color:var(--green-900,#087348); background:#fff; }
.faq-search-input::placeholder { color:#9ca3af; }
.faq-cat-tabs { display:flex; align-items:center; gap:.3rem; flex-wrap:wrap; }
.faq-cat-tab { display:inline-flex; align-items:center; padding:.3rem .75rem; border:1.5px solid #e5e7eb; border-radius:99px; background:transparent; color:#6b7280; font-size:.76rem; font-weight:600; cursor:pointer; white-space:nowrap; transition:all .14s; }
.faq-cat-tab:hover { background:#f3f4f6; border-color:#9ca3af; color:#374151; }
.faq-cat-active { background:var(--green-900,#087348); color:#fff; border-color:var(--green-900,#087348); }
.faq-cat-active:hover { background:#065f38; }

/* Accordion layout */
.faq-acc-section { padding:1.5rem 0 3rem; background:#f9fafb; }
.faq-acc-layout { display:grid; grid-template-columns:1fr 280px; gap:2rem; align-items:start; }
.faq-results-bar { display:flex; align-items:center; justify-content:space-between; margin-bottom:.85rem; font-size:.78rem; color:#6b7280; min-height:1.5rem; }
.faq-clear-btn { background:none; border:none; color:var(--green-900,#087348); font-size:.78rem; font-weight:600; cursor:pointer; text-decoration:underline; padding:0; }

/* Group */
.faq-group { margin-bottom:1.5rem; }
.faq-group[hidden] { display:none; }
.faq-group-title { font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:var(--green-900,#087348); margin:0 0 .6rem; padding:.35rem .75rem; background:#f0fdf4; border-left:3px solid var(--green-900,#087348); border-radius:0 4px 4px 0; }

/* Accordion item */
.faq-item { background:#fff; border:1px solid #e5e7eb; border-radius:8px; margin-bottom:.4rem; overflow:hidden; transition:box-shadow .15s; }
.faq-item:hover { box-shadow:0 2px 12px rgba(0,0,0,.06); }
.faq-item[hidden] { display:none; }
.faq-item-open { border-color:#bbf7d0; box-shadow:0 2px 12px rgba(8,115,72,.08); }
.faq-question { width:100%; display:flex; align-items:center; justify-content:space-between; gap:.75rem; padding:.9rem 1.1rem; background:none; border:none; cursor:pointer; text-align:left; }
.faq-question:hover { background:#fafafa; }
.faq-item-open .faq-question { background:#f0fdf4; }
.faq-q-text { font-size:.9rem; font-weight:600; color:var(--ink,#111827); line-height:1.45; flex:1; }
.faq-item-open .faq-q-text { color:var(--green-900,#087348); }
.faq-chevron { flex-shrink:0; color:#9ca3af; transition:transform .22s; }
.faq-item-open .faq-chevron { transform:rotate(180deg); color:var(--green-900,#087348); }
.faq-answer { border-top:1px solid #f3f4f6; }
.faq-answer-inner { padding:.85rem 1.1rem 1rem; font-size:.87rem; color:#374151; line-height:1.75; }
.faq-empty-state { text-align:center; padding:2.5rem; color:#9ca3af; font-size:.9rem; }
.faq-no-results { text-align:center; padding:2.5rem 1rem; color:#6b7280; background:#fff; border:1px solid #e5e7eb; border-radius:8px; }
.faq-no-results svg { opacity:.3; margin-bottom:.75rem; display:block; margin-left:auto; margin-right:auto; }

/* Sidebar */
.faq-sidebar { display:flex; flex-direction:column; gap:1rem; }
.faq-sidebar-card { background:#fff; border:1px solid #e5e7eb; border-radius:8px; padding:1.1rem 1.2rem; }
.faq-sidebar-title { font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:#6b7280; margin:0 0 .65rem; }
.faq-sidebar-card p { font-size:.83rem; color:#6b7280; line-height:1.6; margin:0 0 .85rem; }
.faq-sidebar-actions { display:flex; flex-direction:column; gap:.5rem; }
.faq-sidebar-btn { display:flex; align-items:center; justify-content:center; padding:.5rem .9rem; border-radius:6px; font-size:.82rem; font-weight:700; text-decoration:none; transition:background .13s; }
.faq-sidebar-btn-primary { background:var(--green-900,#087348); color:#fff; }
.faq-sidebar-btn-primary:hover { background:#065f38; color:#fff; }
.faq-sidebar-btn-secondary { background:#f3f4f6; color:var(--ink,#111827); }
.faq-sidebar-btn-secondary:hover { background:#e5e7eb; }
.faq-sidebar-links { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.35rem; }
.faq-sidebar-links li a { font-size:.83rem; color:var(--green-900,#087348); text-decoration:none; }
.faq-sidebar-links li a:hover { text-decoration:underline; }
.faq-toc-card { display:flex; align-items:center; justify-content:space-between; background:#f9fafb; border:1px solid #f3f4f6; border-radius:6px; padding:.4rem .75rem; }
.faq-toc-cat { font-size:.78rem; color:#374151; font-weight:600; }
.faq-toc-count { font-size:.72rem; font-weight:700; background:#e5e7eb; color:#6b7280; border-radius:99px; padding:.1rem .4rem; }

/* CTA */
.faq-cta-section { background:var(--green-900,#087348); padding:2.5rem 0; }
.faq-cta-inner { display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap; }
.faq-cta-inner .section-kicker { color:rgba(255,255,255,.65); }
.faq-cta-inner h2 { color:#fff; margin:.25rem 0 .5rem; }
.faq-cta-inner p { color:rgba(255,255,255,.8); font-size:.9rem; line-height:1.65; margin:0; max-width:520px; }
.faq-cta-actions { display:flex; gap:.75rem; flex-wrap:wrap; flex-shrink:0; }
.faq-cta-btn-primary { display:inline-flex; align-items:center; padding:.6rem 1.3rem; background:#fff; color:var(--green-900,#087348); border-radius:7px; font-size:.88rem; font-weight:700; text-decoration:none; transition:background .14s; }
.faq-cta-btn-primary:hover { background:#f0fdf4; color:var(--green-900,#087348); }
.faq-cta-btn-secondary { display:inline-flex; align-items:center; padding:.6rem 1.3rem; background:rgba(255,255,255,.15); color:#fff; border:1.5px solid rgba(255,255,255,.35); border-radius:7px; font-size:.88rem; font-weight:700; text-decoration:none; transition:all .14s; }
.faq-cta-btn-secondary:hover { background:rgba(255,255,255,.25); }

@media (max-width:960px) {
  .faq-acc-layout { grid-template-columns:1fr; }
  .faq-sidebar { flex-direction:row; flex-wrap:wrap; }
  .faq-sidebar-card { flex:1; min-width:220px; }
}
@media (max-width:768px) {
  .faq-cat-tabs { gap:.2rem; }
  .faq-cta-inner { flex-direction:column; }
  .faq-cta-actions { width:100%; }
}

/* ============================================================
   v35 — CLIENT SERVICE CHARTER  (csc-*)
   ============================================================ */

/* Standards grid */
.csc-standards-section { padding:2rem 0 1.5rem; background:#fff; }
.csc-standards-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:1rem; }
.csc-standard-card { background:#f9fafb; border:1px solid #e5e7eb; border-radius:8px; padding:1.1rem 1rem; transition:box-shadow .15s, border-color .15s; }
.csc-standard-card:hover { box-shadow:0 4px 16px rgba(0,0,0,.08); border-color:#bbf7d0; }
.csc-standard-icon { width:44px; height:44px; background:var(--green-900,#087348); border-radius:8px; display:flex; align-items:center; justify-content:center; color:#fff; margin-bottom:.75rem; }
.csc-standard-card strong { display:block; font-size:.9rem; font-weight:700; color:var(--ink,#111827); margin-bottom:.35rem; }
.csc-standard-card p { font-size:.8rem; color:#6b7280; margin:0; line-height:1.55; }

/* Viewer */
.csc-viewer-section { padding:1.5rem 0 3rem; background:#f9fafb; }
.csc-viewer-layout { display:grid; grid-template-columns:1fr 280px; gap:2rem; align-items:start; }
.csc-viewer-main { display:flex; flex-direction:column; gap:1rem; }
.csc-viewer-header { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.75rem; }
.csc-viewer-title { font-size:1.05rem; font-weight:700; color:var(--ink,#111827); margin:0; }
.csc-viewer-actions { display:flex; gap:.6rem; flex-wrap:wrap; }
.csc-btn { display:inline-flex; align-items:center; gap:.45rem; padding:.5rem 1.05rem; border-radius:6px; font-size:.85rem; font-weight:700; text-decoration:none; transition:all .15s; }
.csc-btn-primary { background:var(--green-900,#087348); color:#fff; }
.csc-btn-primary:hover { background:#065f38; color:#fff; }
.csc-btn-secondary { background:#f3f4f6; color:var(--ink,#111827); border:1px solid #e5e7eb; }
.csc-btn-secondary:hover { background:#e5e7eb; }
.csc-pdf-wrap { border-radius:8px; overflow:hidden; background:#e5e7eb; border:1px solid #e5e7eb; }
.csc-pdf-embed { width:100%; height:620px; border:none; display:block; }

/* Sidebar */
.csc-sidebar { display:flex; flex-direction:column; gap:1rem; }
.csc-sidebar-card { background:#fff; border:1px solid #e5e7eb; border-radius:8px; padding:1.1rem 1.2rem; }
.csc-sidebar-title { font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:#6b7280; margin:0 0 .75rem; }
.csc-commit-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.45rem; }
.csc-commit-list li { display:flex; align-items:flex-start; gap:.5rem; font-size:.82rem; color:#374151; line-height:1.5; }
.csc-commit-list li::before { content:'✓'; color:var(--green-900,#087348); font-weight:700; flex-shrink:0; margin-top:.05rem; }
.csc-sidebar-actions { display:flex; flex-direction:column; gap:.5rem; }
.csc-action-btn { display:flex; align-items:center; justify-content:center; padding:.5rem .9rem; background:var(--green-900,#087348); color:#fff; border-radius:6px; font-size:.82rem; font-weight:700; text-decoration:none; transition:background .13s; }
.csc-action-btn:hover { background:#065f38; color:#fff; }
.csc-action-btn-sec { display:flex; align-items:center; justify-content:center; padding:.5rem; background:#f3f4f6; color:var(--ink,#111827); border-radius:6px; font-size:.82rem; font-weight:700; text-decoration:none; transition:background .13s; }
.csc-action-btn-sec:hover { background:#e5e7eb; }
.csc-related-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.35rem; }
.csc-related-list li a { font-size:.83rem; color:var(--green-900,#087348); text-decoration:none; }
.csc-related-list li a:hover { text-decoration:underline; }

/* CTA */
.csc-cta-section { background:var(--green-900,#087348); padding:2.5rem 0; }
.csc-cta-inner { display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap; }
.csc-cta-inner .section-kicker { color:rgba(255,255,255,.65); }
.csc-cta-inner h2 { color:#fff; margin:.25rem 0 .5rem; }
.csc-cta-inner p { color:rgba(255,255,255,.8); font-size:.9rem; line-height:1.65; margin:0; max-width:520px; }
.csc-cta-actions { display:flex; gap:.75rem; flex-wrap:wrap; flex-shrink:0; }
.csc-cta-btn-primary { display:inline-flex; align-items:center; padding:.6rem 1.3rem; background:#fff; color:var(--green-900,#087348); border-radius:7px; font-size:.88rem; font-weight:700; text-decoration:none; transition:background .14s; }
.csc-cta-btn-primary:hover { background:#f0fdf4; color:var(--green-900,#087348); }
.csc-cta-btn-secondary { display:inline-flex; align-items:center; padding:.6rem 1.3rem; background:rgba(255,255,255,.15); color:#fff; border:1.5px solid rgba(255,255,255,.35); border-radius:7px; font-size:.88rem; font-weight:700; text-decoration:none; transition:all .14s; }
.csc-cta-btn-secondary:hover { background:rgba(255,255,255,.25); }

@media (max-width:960px) {
  .csc-viewer-layout { grid-template-columns:1fr; }
  .csc-sidebar { flex-direction:row; flex-wrap:wrap; }
  .csc-sidebar-card { flex:1; min-width:220px; }
}
@media (max-width:768px) {
  .csc-standards-grid { grid-template-columns:repeat(2,1fr); }
  .csc-pdf-embed { height:420px; }
  .csc-viewer-header { flex-direction:column; align-items:flex-start; }
  .csc-cta-inner { flex-direction:column; }
  .csc-cta-actions { width:100%; }
}
@media (max-width:480px) {
  .csc-standards-grid { grid-template-columns:1fr; }
  .csc-sidebar { flex-direction:column; }
  .pd-related-grid { grid-template-columns:1fr; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   v36 — Remove flipbook; null all mav-flip-sheet and page-turn animation CSS.
   The magazine viewer now uses a simple scroll-based iframe embed only.
   ════════════════════════════════════════════════════════════════════════ */
.mav-flip-sheet,
.mav-sheet-next,
.mav-sheet-prev { display:none !important; animation:none !important; }

@keyframes mavSheetNextV2 { from {} to {} }
@keyframes mavSheetPrevV2 { from {} to {} }

/* Remove prev/next page-nav buttons from the viewer layout */
.mav-pg-btn { display:none !important; }

/* Make the frame fill the full viewer height without nav gutter */
.mav-content { padding:0; }
.mav-frame-wrap { width:100%; height:100%; border-radius:0; }
.mav-frame-wrap iframe,
#mav-iframe { width:100%; height:100%; border:0; display:block; }

/* ═══════════════════════════════════════════════════════════════════════════
   v37 — Left Sidebar Navigation + Layout Shell
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Layout variables ───────────────────────────────────────────────── */
:root {
  --sb-w:          256px;
  --sb-bg:         #0c1d13;
  --sb-border:     rgba(255,255,255,.07);
  --sb-text:       #cfe0d1;
  --sb-muted:      rgba(207,224,209,.52);
  --sb-active-bg:  rgba(8,115,72,.22);
  --sb-active-txt: #5fd499;
  --sb-hover-bg:   rgba(255,255,255,.055);
  --sb-topbar-h:   52px;
}

/* ── Body / layout shell ────────────────────────────────────────────── */
body { overflow-x: hidden; }

.sb-wrap {
  margin-left: var(--sb-w);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
.sb-wrap > main { flex: 1 1 auto; }

/* ── Sidebar ────────────────────────────────────────────────────────── */
.sb {
  position: fixed;
  top: 0; left: 0; bottom: 0;
  width: var(--sb-w);
  z-index: 300;
  background: var(--sb-bg);
  color: var(--sb-text);
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,.1) transparent;
  transition: transform .28s cubic-bezier(.4,0,.2,1), box-shadow .28s;
  /* thin right border */
  border-right: 1px solid rgba(255,255,255,.06);
}

/* ── Brand block ────────────────────────────────────────────────────── */
.sb-brand {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem .9rem .7rem;
  border-bottom: 1px solid var(--sb-border);
  flex-shrink: 0;
}
.sb-brand-link {
  display: flex;
  align-items: center;
  gap: .6rem;
  text-decoration: none;
  color: #fff;
  min-width: 0;
}
.sb-brand-link img { flex-shrink: 0; border-radius: 6px; }
.sb-brand-text { display: flex; flex-direction: column; gap: .05rem; min-width: 0; }
.sb-brand-kicker {
  font-size: .62rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--sb-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sb-brand-name {
  font-size: .88rem;
  font-weight: 800;
  color: #fff;
  letter-spacing: .01em;
  white-space: nowrap;
}
.sb-close {
  flex-shrink: 0;
  display: none; /* shown only on mobile */
  width: 32px; height: 32px;
  border: 1px solid var(--sb-border);
  border-radius: 8px;
  background: transparent;
  color: var(--sb-text);
  cursor: pointer;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: background .14s, color .14s;
}
.sb-close:hover { background: var(--sb-hover-bg); color: #fff; }

/* ── Sidebar search ─────────────────────────────────────────────────── */
.sb-search-wrap {
  padding: .65rem .75rem .5rem;
  flex-shrink: 0;
  position: relative;
}
.sb-search-form {
  position: relative;
  display: flex;
  align-items: center;
}
.sb-search-icon {
  position: absolute;
  left: .65rem;
  color: var(--sb-muted);
  pointer-events: none;
  flex-shrink: 0;
}
.sb-search-input {
  width: 100%;
  padding: .52rem .75rem .52rem 2.1rem;
  border: 1px solid var(--sb-border);
  border-radius: 10px;
  background: rgba(255,255,255,.07);
  color: #fff;
  font: inherit;
  font-size: .82rem;
  outline: none;
  transition: border-color .14s, background .14s;
}
.sb-search-input::placeholder { color: var(--sb-muted); }
.sb-search-input:focus { border-color: rgba(8,115,72,.6); background: rgba(255,255,255,.1); }
.sb-search-input::-webkit-search-cancel-button { display: none; }

/* search results dropdown */
.sb-results {
  list-style: none;
  margin: .3rem 0 0;
  padding: .25rem 0;
  background: #162a1d;
  border: 1px solid var(--sb-border);
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(0,0,0,.32);
  max-height: 260px;
  overflow-y: auto;
  position: absolute;
  left: .75rem; right: .75rem;
  top: 100%;
  z-index: 400;
}
.sb-results[hidden] { display: none; }
.sb-results li a {
  display: flex;
  align-items: center;
  gap: .55rem;
  padding: .52rem .85rem;
  color: var(--sb-text);
  text-decoration: none;
  font-size: .83rem;
  transition: background .12s;
}
.sb-results li a:hover,
.sb-results li a:focus { background: var(--sb-hover-bg); color: #fff; outline: none; }

/* ── Nav list ───────────────────────────────────────────────────────── */
.sb-nav { flex: 1 1 auto; padding: .25rem 0; }
.sb-nav-list {
  list-style: none;
  margin: 0;
  padding: .2rem 0;
}
.sb-nav-list li { margin: 0; }

.sb-link {
  display: flex;
  align-items: center;
  gap: .7rem;
  padding: .52rem .9rem;
  margin: .1rem .5rem;
  border-radius: 9px;
  color: var(--sb-text);
  text-decoration: none;
  font-size: .845rem;
  font-weight: 500;
  transition: background .13s, color .13s;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sb-link:hover { background: var(--sb-hover-bg); color: #fff; }
.sb-link-active {
  background: var(--sb-active-bg);
  color: var(--sb-active-txt);
  font-weight: 700;
}
.sb-link-active:hover { background: rgba(8,115,72,.3); color: var(--sb-active-txt); }
.sb-link-active .sb-icon { color: var(--sb-active-txt); }
.sb-icon { flex-shrink: 0; color: var(--sb-muted); transition: color .13s; }
.sb-link:hover .sb-icon { color: #fff; }

/* section dividers + labels */
.sb-divider {
  height: 1px;
  background: var(--sb-border);
  margin: .45rem .9rem;
}
.sb-label {
  padding: .35rem .9rem .1rem 1.35rem;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--sb-muted);
  pointer-events: none;
}

/* ── Bottom utility ─────────────────────────────────────────────────── */
.sb-bottom {
  flex-shrink: 0;
  display: flex;
  gap: .3rem;
  padding: .6rem .6rem;
  border-top: 1px solid var(--sb-border);
  background: rgba(0,0,0,.15);
}
.sb-bottom-link {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  padding: .46rem .5rem;
  border-radius: 8px;
  border: 1px solid var(--sb-border);
  color: var(--sb-text);
  text-decoration: none;
  font-size: .75rem;
  font-weight: 600;
  transition: background .13s, color .13s, border-color .13s;
  white-space: nowrap;
}
.sb-bottom-link:hover { background: var(--sb-hover-bg); color: #fff; border-color: rgba(255,255,255,.14); }
.sb-bottom-link.sb-link-active { background: var(--sb-active-bg); color: var(--sb-active-txt); border-color: rgba(8,115,72,.35); }

/* ── Sidebar scrim (mobile) ─────────────────────────────────────────── */
.sb-scrim {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 250;
  background: rgba(0,0,0,.48);
  opacity: 0;
  transition: opacity .28s;
  backdrop-filter: blur(2px);
}
.sb-scrim-visible { opacity: 1; }

/* ── Minimal topbar (desktop hidden, mobile visible) ────────────────── */
.sb-topbar {
  display: none; /* hidden on desktop */
  position: sticky;
  top: 0;
  z-index: 200;
  height: var(--sb-topbar-h);
  align-items: center;
  gap: .5rem;
  padding: 0 .9rem;
  background: rgba(255,255,255,.97);
  border-bottom: 1px solid rgba(0,0,0,.07);
  box-shadow: 0 1px 8px rgba(0,0,0,.06);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.sb-toggle {
  flex-shrink: 0;
  width: 40px; height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  cursor: pointer;
  border-radius: 10px;
  padding: 0;
  transition: background .13s;
}
.sb-toggle:hover { background: rgba(0,0,0,.06); }
.sb-hamburger {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.sb-hamburger span {
  display: block;
  width: 20px;
  height: 2px;
  border-radius: 2px;
  background: #1d2431;
  transition: transform .2s, opacity .2s;
}
.sb-topbar-brand {
  display: flex;
  align-items: center;
  gap: .5rem;
  text-decoration: none;
  color: #1d2431;
  font-weight: 800;
  font-size: .92rem;
  flex: 1;
}
.sb-topbar-brand img { border-radius: 6px; }
.sb-topbar-search-btn {
  flex-shrink: 0;
  width: 38px; height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  color: #374151;
  transition: background .13s;
}
.sb-topbar-search-btn:hover { background: rgba(0,0,0,.06); }

/* ── Footer improvements ─────────────────────────────────────────────── */
.footer-col > h3 {
  font-size: .88rem;
  font-weight: 700;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: rgba(255,255,255,.6);
  margin: 0 0 .9rem;
  padding-bottom: .5rem;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.footer-col .footer-links { margin-top: 0; }
.footer-col .footer-links li { margin-bottom: .6rem; }
.footer-col .footer-links a {
  color: rgba(255,255,255,.78);
  text-decoration: none;
  font-size: .87rem;
  transition: color .14s;
}
.footer-col .footer-links a:hover { color: #fff; text-decoration: underline; }
.footer-brand { border-right: 1px solid rgba(255,255,255,.06); padding-right: 1.5rem; }

.footer-search-form {
  display: grid !important;
  grid-template-columns: 1fr auto;
  margin-top: .5rem;
  gap: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
}
.footer-search-form input {
  border-radius: 10px 0 0 10px;
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.14);
  color: #fff;
  padding: .5rem .8rem;
  font: inherit;
  font-size: .83rem;
  outline: none;
}
.footer-search-form input::placeholder { color: rgba(255,255,255,.4); }
.footer-search-form input:focus { border-color: rgba(8,115,72,.6); }
.footer-search-form button {
  padding: .5rem .9rem;
  background: var(--green-900,#087348);
  color: #fff;
  border: none;
  border-radius: 0 10px 10px 0;
  font: inherit;
  font-size: .83rem;
  font-weight: 700;
  cursor: pointer;
  transition: background .13s;
}
.footer-search-form button:hover { background: var(--green-800,#118257); }

/* Footer grid improved responsive */
.footer-grid {
  grid-template-columns: 1.3fr 1fr 1fr 1fr 1.1fr !important;
  gap: 1.8rem;
  padding-top: 2.6rem;
  padding-bottom: 2rem;
  align-items: start;
}

/* ── RESPONSIVE ──────────────────────────────────────────────────────── */

/* Tablet landscape: sidebar stays visible, footer adjusts */
@media (max-width: 1100px) and (min-width: 821px) {
  :root { --sb-w: 220px; }
  .footer-grid { grid-template-columns: 1.2fr 1fr 1fr 1.1fr !important; }
  .footer-grid > div:nth-child(5) { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 1.5rem; align-items: start; }
}

/* Mobile: sidebar hidden, topbar shown */
@media (max-width: 820px) {
  .sb-wrap { margin-left: 0; }

  .sb {
    transform: translateX(calc(-1 * var(--sb-w)));
    box-shadow: none;
  }
  .sb.sb-open {
    transform: translateX(0);
    box-shadow: 6px 0 40px rgba(0,0,0,.35);
  }
  .sb-close { display: flex; }
  .sb-scrim { display: block; }
  .sb-topbar { display: flex; }

  body.sb-body-open { overflow: hidden; }

  /* Footer: 2-column on tablet */
  .footer-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 1.5rem;
    padding-top: 2rem;
  }
  .footer-brand {
    grid-column: 1 / -1;
    border-right: none;
    border-bottom: 1px solid rgba(255,255,255,.08);
    padding-right: 0;
    padding-bottom: 1.2rem;
  }
  .footer-grid > div:last-child { grid-column: 1 / -1; }
}

/* Mobile small: footer 1-column */
@media (max-width: 540px) {
  .footer-grid { grid-template-columns: 1fr !important; }
  .footer-brand { grid-column: 1; }
  .footer-grid > div:last-child { grid-column: 1; }
  .footer-seal { width: 90px; height: 90px; }
  .footer-hero { height: 110px; }

  /* Sidebar fits smaller screens */
  :root { --sb-w: min(256px, 86vw); }
}

/* Ensure container works within sb-wrap */
.sb-wrap .container { width: min(1180px, 94%); }

/* Improve back-to-top z-index above sidebar scrim */
.back-to-top { z-index: 350; }

/* ════════════════════════════════════════════════════════════════════════════
   v41 — REVERT to v38 MWOS header (undo v39/v40 overrides)
   ════════════════════════════════════════════════════════════════════════════ */

/* Restore header background to original dark green */
.site-header {
  background: var(--green-950) !important;
  box-shadow: 0 2px 14px rgba(0,0,0,.25) !important;
  transform: none !important;
  backface-visibility: visible !important;
}

/* Restore flag stripe */
.flag-stripe {
  height: 5px !important;
  max-height: 5px !important;
  background: linear-gradient(
    90deg,
    #087348 0%   28%,
    #d8b11e 28%  44%,
    #b3272d 44%  56%,
    #181819 56%  72%,
    #d8b11e 72%  84%,
    #087348 84%  100%
  ) !important;
}
.site-header.is-compact .flag-stripe { max-height: 0 !important; opacity: 0 !important; }

/* Restore masthead to dark green */
.masthead {
  background: var(--green-950) !important;
  border-bottom: none !important;
  max-height: 160px !important;
  will-change: auto !important;
}
.site-header.is-compact .masthead { max-height: 0 !important; opacity: 0 !important; pointer-events: none !important; }

/* Restore mast-inner: 3-col auto 1fr auto */
.mast-inner {
  grid-template-columns: auto 1fr auto !important;
  padding: .85rem 0 !important;
  gap: 1.5rem !important;
}

/* Restore combined logos link (v38 style) */
.mast-logos {
  display: flex !important;
  align-items: center !important;
  gap: .6rem !important;
  flex-shrink: 0 !important;
}
.mast-crest {
  width: 76px !important;
  height: 76px !important;
  object-fit: contain !important;
  filter: drop-shadow(0 1px 4px rgba(0,0,0,.45)) !important;
  transform: none !important;
  transition: none !important;
}
.mast-seal {
  width: 68px !important;
  height: 68px !important;
  object-fit: contain !important;
  filter: drop-shadow(0 1px 4px rgba(0,0,0,.45)) !important;
  display: block !important;
  transform: none !important;
  transition: none !important;
}

/* Hide the v39/v40 individual logo links (not in v38 HTML) */
.mast-logo { display: none !important; }

/* Restore identity text to white-on-green */
.mast-identity { text-align: left !important; }
.mast-gov {
  color: var(--flag-gold) !important;
  font-size: .68rem !important;
  letter-spacing: .12em !important;
}
.mast-name {
  color: #fff !important;
  font-size: clamp(.95rem, 1.7vw, 1.2rem) !important;
  font-weight: 700 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
.mast-tagline {
  color: rgba(255,255,255,.62) !important;
  font-style: italic !important;
}

/* Restore mast-actions (search + portal) */
.mast-actions {
  display: flex !important;
  align-items: center !important;
  gap: .75rem !important;
  flex-shrink: 0 !important;
}

/* Restore primary-nav to original dark gradient */
.primary-nav {
  background: linear-gradient(90deg, rgba(255,255,255,.04) 0%, transparent 50%),
              linear-gradient(90deg, #06281b, #073a1c) !important;
  border-top: 1px solid rgba(255,255,255,.07) !important;
  box-shadow: none !important;
}
.nav-inner { height: 46px !important; }

/* Restore nav-toggle (hamburger inside nav) */
.nav-toggle {
  display: none !important;  /* hidden on desktop; shown at ≤820px */
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: .5rem .65rem;
  margin-left: .4rem;
  border-radius: 6px;
  flex-shrink: 0;
}
.nav-bar {
  display: block;
  width: 22px;
  height: 2px;
  background: rgba(255,255,255,.85);
  border-radius: 2px;
  transition: transform .24s ease, opacity .18s, width .22s;
}
.nav-toggle-open .nav-bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle-open .nav-bar:nth-child(2) { opacity: 0; width: 0; }
.nav-toggle-open .nav-bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Restore nav-drawer */
.nav-drawer {
  display: block !important;
  overflow: hidden;
  max-height: 0;
  background: #06281b;
  border-top: 1px solid rgba(255,255,255,.06);
  transition: max-height .3s cubic-bezier(.4,0,.2,1);
}
.nav-drawer.nav-drawer-open { max-height: 620px; }

/* Hide v39/v40 mobile sidebar elements (not in v38 HTML) */
.mob-sidebar { display: none !important; }
.mob-scrim   { display: none !important; }
.mob-toggle  { display: none !important; }

/* Restore body lock class name (v38 used nav-body-lock) */
body.nav-body-lock { overflow: hidden !important; }
body.mob-body-lock { overflow: auto !important; }

/* Responsive: show nav-toggle on mobile */
@media (max-width: 820px) {
  .nav-toggle   { display: flex !important; }
  .nav-list     { display: none !important; }
  .nav-contact-chip { display: none !important; }
  .nav-compact-brand { display: none !important; }
  .masthead { max-height: 110px !important; }
  .mast-crest { width: 48px !important; height: 48px !important; }
  .mast-seal  { width: 42px !important; height: 42px !important; }
  .mast-tagline { display: none !important; }
  .mast-actions { display: none !important; }
}

@media (max-width: 540px) {
  .masthead { max-height: 100px !important; }
  .mast-crest { width: 40px !important; height: 40px !important; }
  .mast-seal  { width: 36px !important; height: 36px !important; }
  .mast-name  { font-size: .82rem !important; }
}



/* ----------------------------------------------------------------------------
   v42 � Restore original v36 header/footer; undo v37�v41 overrides
   ---------------------------------------------------------------------------- */

/* -- Reset site-header: undo v41 dark background ---------------------- */
.site-header {
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
  backface-visibility: visible !important;
}
.site-header.is-compact {
  box-shadow: 0 14px 34px rgba(17,29,46,.12) !important;
}

/* -- Reset masthead: restore original white --------------------------- */
.masthead {
  background: rgba(255,255,255,.98) !important;
  border-bottom: 1px solid rgba(15,106,67,.08) !important;
  max-height: none !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  will-change: auto !important;
}
.site-header.is-compact .masthead {
  max-height: none !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}
/* Restore masthead-inner grid */
.masthead-inner {
  display: grid !important;
  grid-template-columns: 80px minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 0 !important;
  padding: .28rem 0 !important;
  width: 100% !important;
}

/* Ensure the right tools column is wide enough on large screens so the seal
     and search/portal controls do not overlap the masthead title. */
@media (min-width: 1100px) {
    .masthead-inner {
        grid-template-columns: 80px minmax(0, 1fr) 380px !important;
    }
}

/* -- Reset primary-nav: restore original white bar -------------------- */
.primary-nav {
  background: rgba(255,255,255,.98) !important;
  border-top: 0 !important;
  border-bottom: 1px solid rgba(15,106,67,.08) !important;
  box-shadow: none !important;
}
/* On desktop: static position */
@media (min-width: 821px) {
  .primary-nav {
    position: static !important;
    width: auto !important;
    min-height: auto !important;
    transform: none !important;
    overflow: visible !important;
    z-index: auto !important;
  }
}

.chief-branch-section {
  padding: clamp(2.5rem, 5vw, 4rem) 0;
  background: #fff;
}
.chief-branch-head {
  max-width: 780px;
  margin: 0 auto 1.5rem;
  text-align: center;
}
.chief-branch-head h2 {
  margin: .25rem 0 .5rem;
  color: #101815;
}
.chief-branch-grid {
  display: grid;
  grid-template-columns: minmax(280px, 380px) 1fr;
  gap: clamp(1rem, 3vw, 2rem);
  align-items: start;
}
.chief-branch-card {
  display: grid;
  gap: .9rem;
  justify-items: center;
  text-align: center;
  background: #f7f9f6;
  border: 1px solid #dfe7df;
  border-top: 5px solid #12824c;
  border-radius: 10px;
  padding: 1.2rem;
}
.chief-branch-photo-wrap,
.chief-branch-photo {
  width: 104px;
  height: 104px;
}
.chief-branch-photo {
  border-radius: 999px;
  object-fit: cover;
  display: grid;
  place-items: center;
  background: #e8f2ec;
  color: #0d5f39;
  font-weight: 800;
  border: 3px solid #fff;
  box-shadow: 0 0 0 1px #cfd9d2;
}
.chief-branch-label {
  margin: 0 0 .25rem;
  color: #0d5f39;
  font-weight: 800;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .03em;
}
.chief-branch-card h3 {
  margin: 0;
  color: #101815;
}
.chief-branch-card p:last-child {
  margin-bottom: 0;
  color: #536159;
}
.chief-subordinate-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
}
.chief-subordinate-card {
  background: #fff;
  border: 1px solid #e2e8e2;
  border-left: 4px solid #d8b11e;
  border-radius: 8px;
  padding: .85rem .95rem;
  box-shadow: 0 8px 20px rgba(17, 24, 39, .05);
}
.chief-subordinate-card strong,
.chief-subordinate-card span,
.chief-subordinate-card small {
  display: block;
}
.chief-subordinate-card strong {
  color: #101815;
  font-size: .92rem;
}
.chief-subordinate-card span {
  margin-top: .2rem;
  color: #536159;
}
.chief-subordinate-card small {
  margin-top: .2rem;
  color: #12824c;
  font-weight: 700;
}
@media (max-width: 820px) {
  .chief-branch-grid,
  .chief-subordinate-list {
    grid-template-columns: 1fr;
  }
}

/* v81 - Final mobile viewport/header/nav override */
@media (max-width: 820px) {
  html,
  body {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  body {
    padding-top: 0 !important;
  }

  .site-header,
  .site-header.is-hidden {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    transform: none !important;
  }

  .topbar,
  .seal-mark-inline,
  .masthead-search-form,
  .mobile-search-btn,
  .menu-toggle-label {
    display: none !important;
  }

  .flag-stripe {
    height: 5px !important;
  }

  .site-header .masthead-inner.container {
    display: grid !important;
    grid-template-columns: 42px minmax(0, 1fr) auto !important;
    grid-template-areas: "crest title tools" !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 82px !important;
    margin: 0 !important;
    padding: .5rem .75rem !important;
    gap: .45rem !important;
    align-items: center !important;
  }

  .crest-mark {
    grid-area: crest !important;
    width: 40px !important;
    min-width: 40px !important;
    height: 40px !important;
  }

  .crest-mark img {
    width: 36px !important;
    height: 36px !important;
  }

  .masthead-title {
    grid-area: title !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    touch-action: pan-y !important;
  }

  .masthead-kicker {
    display: block !important;
    margin: 0 0 .12rem !important;
    font-size: .54rem !important;
    line-height: 1.05 !important;
  }

  .masthead-title h1 {
    margin: 0 !important;
    font-size: clamp(.76rem, 3.2vw, .96rem) !important;
    line-height: 1.13 !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow: visible !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    text-overflow: clip !important;
  }

  .masthead-meta {
    display: block !important;
    margin: .14rem 0 0 !important;
    font-size: .56rem !important;
    line-height: 1.12 !important;
  }

  .masthead-tools {
    grid-area: tools !important;
    display: flex !important;
    align-items: center !important;
    gap: .3rem !important;
    min-width: 0 !important;
    width: auto !important;
  }

  .portal-link {
    display: inline-flex !important;
    height: 38px !important;
    min-height: 38px !important;
    padding: 0 .52rem !important;
    font-size: .72rem !important;
    border-radius: 9px !important;
    flex: 0 0 auto !important;
  }

  .menu-toggle {
    display: inline-flex !important;
    width: 38px !important;
    min-width: 38px !important;
    height: 38px !important;
    min-height: 38px !important;
    flex: 0 0 38px !important;
    padding: 0 !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 9px !important;
  }

  .primary-nav {
    position: fixed !important;
    inset: 0 auto 0 0 !important;
    display: block !important;
    width: min(100vw, 360px) !important;
    max-width: calc(100vw - 16px) !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    overflow: hidden !important;
    transform: translateX(-105%) !important;
    background: #fff !important;
    border-right: 1px solid rgba(8,115,72,.16) !important;
    box-shadow: 18px 0 44px rgba(4,24,16,.22) !important;
    z-index: 3000 !important;
    padding: 0 !important;
  }

  .primary-nav.is-open {
    transform: translateX(0) !important;
  }

  .nav-drawer-head {
    display: flex !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 2 !important;
    min-height: 64px !important;
    padding: max(.85rem, env(safe-area-inset-top)) 1rem .75rem !important;
    background: #fff !important;
    border-bottom: 1px solid rgba(8,115,72,.14) !important;
    align-items: center !important;
    justify-content: space-between !important;
  }

  .nav-inner.container {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: calc(100dvh - 64px) !important;
    max-height: calc(100dvh - 64px) !important;
    margin: 0 !important;
    padding: .35rem 0 calc(2rem + env(safe-area-inset-bottom)) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .nav-inner > a.nav-item,
  .nav-link-row {
    display: flex !important;
    width: 100% !important;
    min-height: 46px !important;
    padding: .7rem 1rem !important;
    align-items: center !important;
    justify-content: space-between !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    font-size: .92rem !important;
    line-height: 1.25 !important;
    border-bottom: 1px solid rgba(8,115,72,.08) !important;
  }

  .nav-item-mega {
    display: block !important;
    width: 100% !important;
  }

  .nav-link-row > a {
    min-width: 0 !important;
    white-space: normal !important;
    font-size: .92rem !important;
    line-height: 1.25 !important;
  }

  .mega-toggle {
    flex: 0 0 36px !important;
    width: 36px !important;
    height: 36px !important;
  }

  .nav-item-mega .mega-menu {
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    max-height: none !important;
    overflow: visible !important;
    box-shadow: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: .75rem 1rem 1rem !important;
    background: #f8faf7 !important;
  }

  .mega-menu-intro,
  .mega-menu-close-btn {
    display: none !important;
  }

  .mega-tabs {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .85rem !important;
  }

  .mega-menu li a {
    display: block !important;
    padding: .52rem 0 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    line-height: 1.28 !important;
  }

  .nav-scrim {
    z-index: 2500 !important;
  }

  body.nav-open {
    overflow: hidden !important;
  }

  .v2-hero {
    margin-top: 0 !important;
    min-height: 390px !important;
  }

  .v2-slide-inner {
    padding-top: 1.75rem !important;
  }
}

@media (max-width: 390px) {
  .site-header .masthead-inner.container {
    grid-template-columns: 34px minmax(0, 1fr) auto !important;
    gap: .34rem !important;
    padding-inline: .55rem !important;
  }

  .crest-mark,
  .crest-mark img {
    width: 32px !important;
    min-width: 32px !important;
    height: 32px !important;
  }

  .masthead-title h1 {
    font-size: .72rem !important;
  }

  .masthead-meta {
    display: none !important;
  }

  .portal-link {
    width: 34px !important;
    min-width: 34px !important;
    padding: 0 !important;
    font-size: 0 !important;
  }

  .portal-link::before {
    content: "P";
    font-size: .8rem;
    font-weight: 800;
  }
}
/* v85-cookie-eof-anchor */

/* v84 - EOF cookie contrast authority */
.cookie-banner,
.cookie-modal-panel,
.cookie-choice {
  background: #ffffff !important;
  color: #102019 !important;
  opacity: 1 !important;
  backdrop-filter: none !important;
}

.cookie-banner {
  border: 1px solid rgba(8, 115, 72, .22) !important;
  border-left: 6px solid #087348 !important;
  box-shadow: 0 18px 48px rgba(15, 23, 42, .2) !important;
}

.cookie-banner *,
.cookie-modal-panel *,
.cookie-choice * {
  color: #102019 !important;
  opacity: 1 !important;
  text-shadow: none !important;
}

.cookie-banner .mini-kicker,
.cookie-modal-panel .mini-kicker,
.cookie-banner a,
.cookie-modal-panel a {
  color: #087348 !important;
}

.cookie-banner a,
.cookie-modal-panel a {
  font-weight: 800 !important;
  text-decoration: underline !important;
}

.cookie-banner .btn-primary,
.cookie-modal-panel .btn-primary {
  background: #087348 !important;
  border-color: #087348 !important;
  color: #ffffff !important;
}

.cookie-banner .btn-primary *,
.cookie-modal-panel .btn-primary * {
  color: #ffffff !important;
}

.cookie-banner .btn-secondary,
.cookie-modal-panel .btn-secondary {
  background: #ffffff !important;
  border: 1px solid rgba(8, 115, 72, .24) !important;
  color: #102019 !important;
}

.cookie-modal {
  z-index: 5000 !important;
}

.cookie-modal-scrim {
  background: rgba(5, 17, 12, .58) !important;
}

/* v89 - native language dropdowns */
.lang-select-wrap {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  min-height: 32px;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 999px;
  background: rgba(255,255,255,.1);
  color: #fff;
  padding: 0 .55rem;
}

.lang-select-wrap select {
  width: min(18rem, 28vw);
  min-height: 30px;
  border: 0;
  background: transparent;
  color: #fff;
  font: inherit;
  font-size: .78rem;
  cursor: pointer;
}

.lang-select-wrap select:focus {
  outline: 2px solid rgba(255,255,255,.72);
  outline-offset: 2px;
}

.lang-select-wrap select option {
  color: #102019;
  background: #fff;
}

.mobile-lang-form select,
.language-library select {
  width: 100%;
  min-height: 42px;
  border: 1px solid rgba(8, 115, 72, .2);
  border-radius: 8px;
  background: #fff;
  color: #102019;
  font: inherit;
}

.mobile-lang-form {
  display: none;
}

.mobile-lang-form label {
  display: block;
  margin-bottom: .35rem;
  color: #102019;
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
}

.mobile-lang-form select {
  padding: .55rem .65rem;
}

.language-library {
  border: 0;
  padding: 0;
}

.language-library select {
  padding: .55rem .65rem;
}

@media (max-width: 820px) {
  .lang-form {
    display: none !important;
  }

  .mobile-lang-form {
    display: block !important;
    padding: .75rem 1rem .85rem !important;
    border-bottom: 1px solid rgba(8,115,72,.12) !important;
    background: #fff !important;
  }

  .nav-inner.container {
    height: calc(100dvh - 144px) !important;
    max-height: calc(100dvh - 144px) !important;
  }
}

@media (max-width: 700px) {
  .cookie-banner {
    left: .75rem !important;
    right: .75rem !important;
    bottom: calc(.75rem + env(safe-area-inset-bottom, 0px)) !important;
    max-height: min(72dvh, 560px) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    padding: 1rem !important;
  }

  .cookie-banner p {
    font-size: .86rem !important;
    line-height: 1.45 !important;
  }

  .cookie-banner-actions,
  .cookie-modal-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .55rem !important;
  }

  .cookie-modal {
    align-items: end !important;
    padding: .75rem !important;
  }

  .cookie-modal-panel {
    width: 100% !important;
    max-height: calc(88dvh - env(safe-area-inset-bottom, 0px)) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    padding: 1rem !important;
    border-radius: 14px !important;
  }
}

/* v87 - Management chief directors and responsive photo fit */
.management-chief-section {
  padding-top: clamp(2rem, 4vw, 3.5rem);
}

.management-chief-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1rem, 2.5vw, 1.5rem);
  align-items: stretch;
}

.management-chief-card {
  display: grid;
  grid-template-columns: minmax(160px, 230px) minmax(0, 1fr);
  gap: 1rem;
  align-items: center;
  background: #ffffff;
  border: 1px solid rgba(8, 115, 72, .18);
  border-top: 5px solid #087348;
  border-radius: 14px;
  box-shadow: 0 18px 42px rgba(15, 23, 42, .08);
  padding: 1rem;
}

.management-chief-photo {
  width: 100%;
  aspect-ratio: 4 / 4.4;
  border-radius: 14px;
  overflow: hidden;
  background: #f5faf7;
  border: 1px solid rgba(8, 115, 72, .12);
}

.management-chief-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center top;
  background: #ffffff;
}

.management-chief-body {
  min-width: 0;
}

.management-chief-body h3 {
  margin: 0 0 .4rem;
  color: #102019;
}

.management-chief-department {
  color: #087348;
  font-weight: 800;
  margin: .25rem 0 .6rem;
}

.management-chief-directorates {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-top: .85rem;
}

.management-chief-directorates span {
  display: inline-flex;
  max-width: 100%;
  padding: .35rem .55rem;
  border-radius: 999px;
  background: #f3f8f5;
  border: 1px solid rgba(8, 115, 72, .16);
  color: #244036;
  font-size: .78rem;
  font-weight: 700;
  line-height: 1.25;
}

.management-grid-rich {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
  gap: 1.15rem !important;
}

.management-card-rich {
  max-width: 100% !important;
  overflow: hidden !important;
}

.management-card-rich .management-photo-frame {
  aspect-ratio: 4 / 3.35 !important;
  height: auto !important;
  max-height: 280px !important;
  padding: .75rem !important;
  background: #f5faf7 !important;
}

.management-card-rich .person-photo-rich,
.management-card-rich .avatar-circle-rich {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  object-fit: contain !important;
  object-position: center top !important;
  background: #ffffff !important;
  border-radius: 12px !important;
}

@media (max-width: 900px) {
  .management-chief-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  .management-chief-card {
    grid-template-columns: 1fr;
    max-width: min(100%, 430px);
    margin-inline: auto;
  }

  .management-chief-photo {
    aspect-ratio: 4 / 3.35;
    max-height: 320px;
  }

  .management-grid-rich {
    grid-template-columns: 1fr !important;
  }

  .management-card-rich {
    max-width: min(100%, 430px) !important;
    margin-inline: auto !important;
  }

  .management-card-rich .management-photo-frame {
    aspect-ratio: 4 / 3.2 !important;
    max-height: 310px !important;
  }
}

/* v83 - Cookie banner/modal readability fix */
.cookie-banner {
  background: #ffffff !important;
  color: #102019 !important;
  border: 1px solid rgba(8, 115, 72, .22) !important;
  border-left: 6px solid #087348 !important;
  box-shadow: 0 18px 48px rgba(15, 23, 42, .2) !important;
  opacity: 1 !important;
  backdrop-filter: none !important;
}

.cookie-banner *,
.cookie-modal-panel *,
.cookie-choice * {
  opacity: 1 !important;
  text-shadow: none !important;
}

.cookie-banner .mini-kicker,
.cookie-modal-panel .mini-kicker {
  color: #087348 !important;
}

.cookie-banner strong,
.cookie-banner p,
.cookie-modal-panel,
.cookie-modal-panel h2,
.cookie-modal-panel p,
.cookie-choice strong,
.cookie-choice small,
.cookie-modal-note {
  color: #102019 !important;
}

.cookie-banner a,
.cookie-modal-note a {
  color: #087348 !important;
  font-weight: 800 !important;
  text-decoration: underline !important;
}

.cookie-banner .btn,
.cookie-modal-panel .btn {
  border-radius: 8px !important;
  min-height: 44px !important;
  font-weight: 800 !important;
}

.cookie-banner .btn-primary,
.cookie-modal-panel .btn-primary {
  background: #087348 !important;
  border-color: #087348 !important;
  color: #ffffff !important;
}

.cookie-banner .btn-secondary,
.cookie-modal-panel .btn-secondary {
  background: #ffffff !important;
  border: 1px solid rgba(8, 115, 72, .24) !important;
  color: #102019 !important;
}

.cookie-modal {
  z-index: 5000 !important;
}

.cookie-modal-scrim {
  background: rgba(5, 17, 12, .58) !important;
}

.cookie-modal-panel {
  background: #ffffff !important;
  border: 1px solid rgba(8, 115, 72, .2) !important;
  box-shadow: 0 24px 70px rgba(15, 23, 42, .28) !important;
  opacity: 1 !important;
  backdrop-filter: none !important;
}

.cookie-choice {
  background: #f7faf8 !important;
  border: 1px solid rgba(8, 115, 72, .14) !important;
  color: #102019 !important;
}

.cookie-choice input {
  accent-color: #087348 !important;
}

@media (max-width: 700px) {
  .cookie-banner {
    left: .75rem !important;
    right: .75rem !important;
    bottom: calc(.75rem + env(safe-area-inset-bottom, 0px)) !important;
    max-height: min(72dvh, 560px) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    padding: 1rem !important;
  }

  .cookie-banner p {
    font-size: .86rem !important;
    line-height: 1.45 !important;
  }

  .cookie-banner-actions,
  .cookie-modal-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .55rem !important;
  }

  .cookie-modal {
    align-items: end !important;
    padding: .75rem !important;
  }

  .cookie-modal-panel {
    width: 100% !important;
    max-height: calc(88dvh - env(safe-area-inset-bottom, 0px)) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    padding: 1rem !important;
    border-radius: 14px !important;
  }
}

/* v80 - Mobile header fit and drawer scroll fix */
@media (max-width: 820px) {
  html,
  body {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  body {
    padding-top: 0 !important;
  }

  .site-header {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    transform: none !important;
    z-index: 1000 !important;
  }

  .site-header.is-hidden {
    transform: none !important;
  }

  .topbar {
    display: none !important;
  }

  .flag-stripe {
    height: 5px !important;
  }

  .site-header .masthead-inner.container {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 82px !important;
    grid-template-columns: 42px minmax(0, 1fr) auto !important;
    gap: .45rem !important;
    padding: .5rem .75rem !important;
    margin: 0 !important;
  }

  .crest-mark {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
  }

  .crest-mark img {
    width: 36px !important;
    height: 36px !important;
  }

  .masthead-title {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .masthead-kicker {
    font-size: .54rem !important;
    line-height: 1.05 !important;
    margin-bottom: .12rem !important;
  }

  .masthead-title h1 {
    font-size: clamp(.76rem, 3.2vw, .96rem) !important;
    line-height: 1.13 !important;
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
  }

  .masthead-meta {
    font-size: .56rem !important;
    line-height: 1.12 !important;
  }

  .masthead-tools {
    gap: .3rem !important;
    min-width: 0 !important;
  }

  .portal-link {
    height: 38px !important;
    min-height: 38px !important;
    padding: 0 .52rem !important;
    font-size: .72rem !important;
    border-radius: 9px !important;
  }

  .menu-toggle {
    display: inline-flex !important;
    width: 38px !important;
    min-width: 38px !important;
    height: 38px !important;
    min-height: 38px !important;
    flex: 0 0 38px !important;
  }

  .menu-toggle-label,
  .seal-mark-inline,
  .masthead-search-form,
  .mobile-search-btn {
    display: none !important;
  }

  .primary-nav {
    position: fixed !important;
    inset: 0 auto 0 0 !important;
    width: min(100vw, 360px) !important;
    max-width: calc(100vw - 16px) !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    display: block !important;
    transform: translateX(-105%) !important;
    overflow: hidden !important;
    background: #fff !important;
    border-right: 1px solid rgba(8,115,72,.16) !important;
    box-shadow: 18px 0 44px rgba(4, 24, 16, .22) !important;
    z-index: 3000 !important;
    padding: 0 !important;
  }

  .primary-nav.is-open {
    transform: translateX(0) !important;
  }

  .nav-drawer-head {
    display: flex !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 2 !important;
    min-height: 64px !important;
    padding: max(.85rem, env(safe-area-inset-top)) 1rem .75rem !important;
    background: #fff !important;
    border-bottom: 1px solid rgba(8,115,72,.14) !important;
  }

  .nav-inner.container {
    width: 100% !important;
    max-width: 100% !important;
    height: calc(100dvh - 64px) !important;
    max-height: calc(100dvh - 64px) !important;
    display: block !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    padding: .35rem 0 calc(2rem + env(safe-area-inset-bottom)) !important;
    margin: 0 !important;
  }

  .nav-inner > a.nav-item,
  .nav-link-row {
    display: flex !important;
    width: 100% !important;
    min-height: 46px !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: .7rem 1rem !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    font-size: .92rem !important;
    line-height: 1.25 !important;
    border-bottom: 1px solid rgba(8,115,72,.08) !important;
  }

  .nav-item-mega {
    width: 100% !important;
  }

  .nav-link-row > a {
    min-width: 0 !important;
    white-space: normal !important;
    font-size: .92rem !important;
    line-height: 1.25 !important;
  }

  .mega-toggle {
    flex: 0 0 36px !important;
    width: 36px !important;
    height: 36px !important;
  }

  .nav-item-mega .mega-menu {
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    max-height: none !important;
    overflow: visible !important;
    box-shadow: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: .75rem 1rem 1rem !important;
    background: #f8faf7 !important;
  }

  .mega-menu-intro {
    display: none !important;
  }

  .mega-tabs {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .85rem !important;
  }

  .mega-menu li a {
    display: block !important;
    padding: .52rem 0 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    line-height: 1.28 !important;
  }

  .mega-menu-close-btn {
    display: none !important;
  }

  .nav-scrim {
    z-index: 2500 !important;
  }

  body.nav-open {
    overflow: hidden !important;
    touch-action: none !important;
  }

  .v2-hero {
    min-height: 390px !important;
    margin-top: 0 !important;
  }

  .v2-slide-inner {
    padding-top: 1.75rem !important;
  }
}

@media (max-width: 390px) {
  .site-header .masthead-inner.container {
    grid-template-columns: 34px minmax(0, 1fr) auto !important;
    gap: .34rem !important;
    padding-inline: .55rem !important;
  }

  .crest-mark,
  .crest-mark img {
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
  }

  .masthead-title h1 {
    font-size: .72rem !important;
  }

  .masthead-meta {
    display: none !important;
  }

  .portal-link {
    width: 34px !important;
    min-width: 34px !important;
    padding: 0 !important;
    font-size: 0 !important;
  }

  .portal-link::before {
    content: "P";
    font-size: .8rem;
    font-weight: 800;
  }
}
/* On mobile: keep the right-slide drawer (from original CSS) */
@media (max-width: 820px) {
  .primary-nav {
    background:
      linear-gradient(180deg, rgba(244, 249, 246, 0.98), rgba(255,255,255,0.98)) !important;
    border-bottom: 0 !important;
  }
}

/* -- Restore nav-inner height ----------------------------------------- */
.nav-inner {
  height: auto !important;
  padding: 1.1rem 0 .45rem !important;
  width: 100% !important;
}
@media (max-width: 820px) {
  .nav-inner {
    padding: 1rem 1rem 1.35rem !important;
  }
}

/* -- Hide legacy v38/v41 classes not in new HTML ---------------------- */
.mast-logos, .mast-logo, .mast-identity, .mast-actions,
.flag-stripe, .mob-sidebar, .mob-scrim, .mob-toggle,
.nav-toggle, .nav-drawer, .nav-list, .nav-compact-brand,
.nav-contact-chip { display: none !important; }

/* -- Body scroll lock for nav open state ----------------------------- */
body.nav-open { overflow: hidden; }

/* -- menu-toggle: visible only on mobile ------------------------------ */
.menu-toggle { display: none; }
@media (max-width: 820px) {
  .menu-toggle { display: inline-flex; }
  .masthead-search-form,
  .portal-link { display: none !important; }
  .seal-mark.seal-mark-inline { display: none; }
  .masthead-inner {
    grid-template-columns: 64px minmax(0,1fr) auto !important;
  }
}

/* -- Footer: restore 3-column layout ---------------------------------- */
.footer-grid {
  grid-template-columns: 1.2fr 1.05fr .9fr !important;
  gap: 1.8rem;
  padding: 2.3rem 0 1.6rem;
  width: 100%;
}
.footer-brand {
  border-right: 1px solid rgba(255,255,255,.06);
  padding-right: 1.5rem;
}

/* Footer brand social links row */
.footer-socials-row {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin-top: .85rem;
}
.footer-socials-row a {
  color: rgba(255,255,255,.72);
  font-size: .83rem;
  text-decoration: none;
  transition: color .14s;
}
.footer-socials-row a:hover { color: #fff; }

/* Footer bottom bar */
.footer-bottom-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .75rem;
}
.footer-bottom-links {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.footer-bottom-links a {
  color: rgba(255,255,255,.7);
  font-size: .83rem;
  text-decoration: none;
  transition: color .14s;
}
.footer-bottom-links a:hover { color: #fff; text-decoration: underline; }

/* Footer responsive */
@media (max-width: 1080px) {
  .footer-grid {
    grid-template-columns: 1.2fr 1fr !important;
  }
  .footer-grid > div:nth-child(3) { grid-column: 1 / -1; }
}
@media (max-width: 820px) {
  .footer-grid {
    grid-template-columns: 1fr !important;
    gap: 1.4rem;
    padding: 2rem 0 1.4rem;
  }
  .footer-brand {
    grid-column: 1 !important;
    border-right: none !important;
    border-bottom: 1px solid rgba(255,255,255,.08);
    padding-right: 0 !important;
    padding-bottom: 1.2rem;
  }
}

/* -- Undo v37 sidebar body margin ------------------------------------- */
.sb-wrap { margin-left: 0 !important; }


/* ════════════════════════════════════════════════════════════════════════════
   v42 — Restore original v36 header/footer; undo v37-v41 overrides
   ════════════════════════════════════════════════════════════════════════════ */

/* Reset site-header: undo v41 dark background */
.site-header {
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
  backface-visibility: visible !important;
}
.site-header.is-compact {
  box-shadow: 0 14px 34px rgba(17,29,46,.12) !important;
}

/* Reset masthead: restore original white */
.masthead {
  background: rgba(255,255,255,.98) !important;
  border-bottom: 1px solid rgba(15,106,67,.08) !important;
  max-height: none !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  will-change: auto !important;
}
.site-header.is-compact .masthead {
  max-height: none !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}
.masthead-inner {
  display: grid !important;
  grid-template-columns: 80px minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 0 !important;
  padding: .28rem 0 !important;
  width: 100% !important;
}

/* Reset primary-nav: restore original white bar */
.primary-nav {
  background: rgba(255,255,255,.98) !important;
  border-top: 0 !important;
  border-bottom: 1px solid rgba(15,106,67,.08) !important;
  box-shadow: none !important;
}
@media (min-width: 821px) {
  .primary-nav {
    position: static !important;
    width: auto !important;
    min-height: auto !important;
    transform: none !important;
    overflow: visible !important;
    z-index: auto !important;
  }
}
@media (max-width: 820px) {
  .primary-nav {
    background: linear-gradient(180deg, rgba(244,249,246,.98), rgba(255,255,255,.98)) !important;
    border-bottom: 0 !important;
  }
}

/* Restore nav-inner */
.nav-inner {
  height: auto !important;
  padding: 1.1rem 0 .45rem !important;
  width: 100% !important;
}
@media (max-width: 820px) {
  .nav-inner { padding: 1rem 1rem 1.35rem !important; }
}

/* Hide legacy v38-v41 classes not in new HTML */
.mast-logos, .mast-logo, .mast-identity, .mast-actions,
.flag-stripe, .mob-sidebar, .mob-scrim, .mob-toggle,
.nav-toggle, .nav-drawer, .nav-list, .nav-compact-brand,
.nav-contact-chip { display: none !important; }

/* Body scroll lock */
body.nav-open { overflow: hidden; }

/* menu-toggle: mobile only */
.menu-toggle { display: none; }
@media (max-width: 820px) {
  .menu-toggle { display: inline-flex; }
  .masthead-search-form,
  .portal-link { display: none !important; }
  .seal-mark.seal-mark-inline { display: none; }
  .masthead-inner {
    grid-template-columns: 64px minmax(0,1fr) auto !important;
  }
}

/* Footer: 3-column layout */
.footer-grid {
  grid-template-columns: 1.2fr 1.05fr .9fr !important;
  gap: 1.8rem;
  padding: 2.3rem 0 1.6rem;
  width: 100%;
}
.footer-brand {
  border-right: 1px solid rgba(255,255,255,.06);
  padding-right: 1.5rem;
}
.footer-socials-row {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin-top: .85rem;
}
.footer-socials-row a {
  color: rgba(255,255,255,.72);
  font-size: .83rem;
  text-decoration: none;
}
.footer-socials-row a:hover { color: #fff; }
.footer-bottom-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .75rem;
}
.footer-bottom-links {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.footer-bottom-links a {
  color: rgba(255,255,255,.7);
  font-size: .83rem;
  text-decoration: none;
}
.footer-bottom-links a:hover { color: #fff; text-decoration: underline; }
@media (max-width: 1080px) {
  .footer-grid { grid-template-columns: 1.2fr 1fr !important; }
  .footer-grid > div:nth-child(3) { grid-column: 1 / -1; }
}
@media (max-width: 820px) {
  .footer-grid {
    grid-template-columns: 1fr !important;
    gap: 1.4rem;
    padding: 2rem 0 1.4rem;
  }
  .footer-brand {
    grid-column: 1 !important;
    border-right: none !important;
    border-bottom: 1px solid rgba(255,255,255,.08);
    padding-right: 0 !important;
    padding-bottom: 1.2rem;
  }
}

/* Undo v37 sidebar body margin */
.sb-wrap { margin-left: 0 !important; }

/* v42 width fix: let .container constrain masthead-inner and nav-inner */
.masthead-inner.container,
.nav-inner.container {
  width: min(1180px, 92%) !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   v43 — Flag stripe, dual logos mobile, nav fit, z-index mobile nav fix
   ════════════════════════════════════════════════════════════════════════════ */

/* ── Zimbabwe flag colour stripe (7-band: green/yellow/red/black/red/yellow/green) */
.flag-stripe {
  height: 6px;
  background: linear-gradient(
    90deg,
    #087348 0%   27%,
    #d8b11e 27%  41%,
    #b3272d 41%  50%,
    #131210 50%  59%,
    #b3272d 59%  68%,
    #d8b11e 68%  82%,
    #087348 82%  100%
  );
  flex-shrink: 0;
}
.site-header.is-compact .flag-stripe {
  height: 3px;
}

/* ── Topbar: correct link structure (icon-only circles on mobile) ────── */
.topbar-item a {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  color: rgba(255,255,255,.88);
  text-decoration: none;
  font-size: .8rem;
  min-height: 100%;
  width: 100%;
  justify-content: center;
}
.topbar-item a:hover { color: #fff; }

/* ── Ministry seal: visible on mobile (smaller) ─────────────────────── */
@media (max-width: 820px) {
  .seal-mark.seal-mark-inline {
    display: grid !important;
    width: 46px !important;
    height: 46px !important;
    padding: .2rem !important;
  }
  .seal-mark.seal-mark-inline img {
    width: 100% !important;
    height: 100% !important;
  }
  /* Tighten masthead tools column on mobile: seal + menu btn */
  .masthead-tools {
    gap: .35rem !important;
  }
}

/* ── Nav items: compact so all 12 fit on one desktop line ────────────── */
.nav-inner > a.nav-item {
  padding: .1rem .68rem !important;
  font-size: .78rem !important;
}
.nav-link-row {
  padding-left: .68rem !important;
  gap: .08rem !important;
}
.nav-link-row > a {
  font-size: .78rem !important;
  padding-right: .12rem !important;
}
.nav-item, .nav-item-mega {
  font-size: .78rem !important;
}
.nav-inner {
  padding: .7rem 0 .32rem !important;
  gap: 0 !important;
  flex-wrap: nowrap !important;
  overflow-x: auto !important;
  -ms-overflow-style: none !important;
  scrollbar-width: none !important;
}
.nav-inner::-webkit-scrollbar { display: none; }

/* ── Mobile nav z-index: must appear above sticky page elements ──────── */
@media (max-width: 820px) {
  .nav-scrim {
    z-index: 9800 !important;
  }
  .primary-nav {
    z-index: 9900 !important;
  }
  /* Restore nav-inner scrolling inside panel */
  .nav-inner {
    flex-wrap: wrap !important;
    overflow-x: visible !important;
  }
}

/* ── Topbar mobile: properly show compact items ──────────────────────── */
@media (max-width: 820px) {
  .topbar-item {
    overflow: hidden;
  }
  .topbar-item a {
    width: 100%;
    height: 100%;
  }
  .topbar-item .topbar-text {
    display: none;
  }
}

/* v43 flag-stripe display fix (v42 set display:none !important) */
.flag-stripe {
  display: block !important;
  height: 6px !important;
}


/* ════════════════════════════════════════════════════════════════════════════
   v44 — Fixed scroll-hide header, mobile strip nav, mega-menu fix,
         flag with white stripe, compact masthead, bold title
   ════════════════════════════════════════════════════════════════════════════ */

/* ── 1. Fixed header with scroll-hide support ────────────────────────────── */
.site-header {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  z-index: 900 !important;
  transform: translateY(0) !important;
  transition: transform .32s cubic-bezier(.4,0,.2,1),
              box-shadow .28s ease !important;
}
.site-header.is-hidden {
  transform: translateY(-100%) !important;
  box-shadow: none !important;
}
body {
  padding-top: var(--hdr-h, 0px) !important;
}

/* ── 2. Compact state: topbar folds away when scrolled ──────────────────── */
.topbar {
  overflow: hidden !important;
  transition: max-height .3s ease, opacity .28s ease !important;
  max-height: 48px;
}
.site-header.is-compact .topbar {
  max-height: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.site-header.is-compact .masthead-kicker,
.site-header.is-compact .masthead-meta {
  display: none !important;
}
.site-header.is-compact .masthead-title h1 {
  font-size: 1rem !important;
}
.site-header.is-compact .crest-mark img {
  width: 42px !important;
  height: 42px !important;
}
.site-header.is-compact .seal-mark.seal-mark-inline img {
  width: 38px !important;
  height: 38px !important;
}
.site-header.is-compact .masthead-inner {
  min-height: 46px !important;
  padding-top: .2rem !important;
  padding-bottom: .2rem !important;
}
.site-header.is-compact .flag-stripe {
  height: 3px !important;
}

/* ── 3. Mega-menu: remove overflow clipping on desktop ──────────────────── */
@media (min-width: 821px) {
  .nav-inner {
    overflow: visible !important;
    overflow-x: visible !important;
  }
  .primary-nav {
    overflow: visible !important;
  }
}

/* ── 4. Zimbabwe flag stripe: 9 bands, all 5 colors ────────────────────── */
.flag-stripe {
  display: block !important;
  height: 10px !important;
  background: linear-gradient(
    90deg,
    #087348  0%   20%,
    #d8b11e  20%  33%,
    #b3272d  33%  41%,
    #131210  41%  47%,
    #ffffff  47%  53%,
    #131210  53%  59%,
    #b3272d  59%  67%,
    #d8b11e  67%  80%,
    #087348  80% 100%
  ) !important;
}

/* ── 5. Masthead: compact height, bolder title ──────────────────────────── */
.masthead-title h1 {
  font-size: 1.55rem !important;
  font-weight: 800 !important;
  line-height: 1.18 !important;
  letter-spacing: -.01em !important;
}
.masthead-kicker {
  font-size: .67rem !important;
  font-weight: 700 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
}
.masthead-meta {
  font-size: .67rem !important;
  opacity: .8 !important;
}
.masthead-inner {
  min-height: 66px !important;
  padding-top: .38rem !important;
  padding-bottom: .38rem !important;
}
.crest-mark img {
  width: 56px !important;
  height: 56px !important;
}
.seal-mark.seal-mark-inline img {
  width: 52px !important;
  height: 52px !important;
}

/* ── 6. Mobile: always-visible horizontal strip nav ─────────────────────── */
@media (max-width: 820px) {
  /* Hide hamburger button — strip nav replaces the drawer */
  .menu-toggle {
    display: none !important;
  }
  /* Hide mobile drawer header row */
  .nav-drawer-head {
    display: none !important;
  }
  /* Hide scrim overlay — not used with strip nav */
  .nav-scrim {
    display: none !important;
    pointer-events: none !important;
  }
  /* Primary nav: static, always-visible horizontal strip */
  .primary-nav {
    position: static !important;
    display: block !important;
    width: 100% !important;
    height: auto !important;
    min-height: auto !important;
    max-height: none !important;
    transform: none !important;
    inset: auto !important;
    background: rgba(255,255,255,.98) !important;
    border-left: 0 !important;
    border-top: 0 !important;
    border-bottom: 1px solid rgba(15,106,67,.1) !important;
    box-shadow: 0 2px 8px rgba(9,25,21,.07) !important;
    z-index: 9900 !important;
    overflow: visible !important;
  }
  /* Nav inner: horizontal scroll strip */
  .nav-inner {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    -ms-overflow-style: none !important;
    scrollbar-width: none !important;
    padding: .2rem .4rem !important;
    gap: 0 !important;
    align-items: center !important;
    min-height: 36px !important;
  }
  .nav-inner::-webkit-scrollbar { display: none; }
  /* Nav items in strip */
  .nav-inner > a.nav-item {
    white-space: nowrap !important;
    flex-shrink: 0 !important;
    padding: .3rem .5rem !important;
    font-size: .71rem !important;
  }
  .nav-item-mega {
    flex-shrink: 0 !important;
    white-space: nowrap !important;
  }
  .nav-link-row {
    white-space: nowrap !important;
    padding: .3rem .5rem !important;
    gap: .04rem !important;
  }
  .nav-link-row > a {
    font-size: .71rem !important;
  }
  /* Mega-menu on mobile: fixed overlay below full header */
  .nav-item-mega .mega-menu {
    position: fixed !important;
    top: var(--hdr-h, 120px) !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-height: 72vh !important;
    overflow-y: auto !important;
    z-index: 9999 !important;
    border-radius: 0 !important;
    border-top: 2px solid rgba(15,106,67,.15) !important;
  }
}


/* ════════════════════════════════════════════════════════════════════════════
   v45 — Mobile topbar hidden, portal visible on mobile, smooth fast dropdown,
         strip nav refinements, mega-menu smooth transition
   ════════════════════════════════════════════════════════════════════════════ */

/* ── 1. Hide topbar entirely on mobile (clean header) ───────────────────── */
@media (max-width: 820px) {
  .topbar {
    display: none !important;
  }
}

/* ── 2. Portal button: visible and compact on mobile ────────────────────── */
@media (max-width: 820px) {
  .portal-link {
    display: inline-flex !important;
    min-height: 32px !important;
    height: 32px !important;
    padding: 0 .65rem !important;
    font-size: .73rem !important;
    font-weight: 700 !important;
    border-radius: 6px !important;
    line-height: 1 !important;
    min-width: unset !important;
  }
  /* Keep search hidden on mobile */
  .masthead-search-form {
    display: none !important;
  }
}

/* ── 3. Mega-menu: smooth fast open/close (opacity + visibility) ─────────── */
.mega-menu {
  display: block !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transform: translateY(6px) !important;
  transition: opacity .14s ease, transform .14s ease, visibility .14s !important;
}
.nav-item-mega:hover .mega-menu,
.nav-item-mega.is-open .mega-menu,
.nav-item-mega:focus-within .mega-menu {
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  transform: translateY(0) !important;
}

/* ── 4. Strip nav refinements: active state, touch targets ──────────────── */
@media (max-width: 820px) {
  /* Active nav item: green underline */
  .nav-inner > a.nav-item.is-active {
    color: #087348 !important;
    box-shadow: inset 0 -2px 0 #087348 !important;
    font-weight: 700 !important;
  }
  .nav-item-mega.is-active .nav-link-row > a {
    color: #087348 !important;
    font-weight: 700 !important;
  }
  /* Slightly more padding for finger targets */
  .nav-inner {
    padding: .28rem .5rem !important;
    min-height: 40px !important;
  }
  .nav-inner > a.nav-item {
    padding: .34rem .52rem !important;
    border-radius: 4px !important;
  }
  /* Mobile mega-menu fast open (fixed below header) */
  .nav-item-mega .mega-menu {
    transform: none !important;
    transition: opacity .14s ease, visibility .14s !important;
  }
}

/* ── 5. Masthead grid on mobile: seal + title + portal ──────────────────── */
@media (max-width: 820px) {
  /* Tighter masthead inner on mobile without topbar */
  .masthead-inner {
    padding-top: .3rem !important;
    padding-bottom: .3rem !important;
    min-height: 58px !important;
  }
  /* Keep crest (left logo) same size */
  .crest-mark img {
    width: 48px !important;
    height: 48px !important;
  }
  /* Seal visible and compact */
  .seal-mark.seal-mark-inline {
    display: grid !important;
    width: 40px !important;
    height: 40px !important;
  }
  .seal-mark.seal-mark-inline img {
    width: 100% !important;
    height: 100% !important;
  }
  /* Masthead tools: seal + portal aligned */
  .masthead-tools {
    gap: .3rem !important;
    flex-shrink: 0 !important;
  }
}


/* ════════════════════════════════════════════════════════════════════════════
   v46 — Sharp flag stripe (5 equal bands), nav spacing, portal categories,
         appointments section, appointment detail, UI polish
   ════════════════════════════════════════════════════════════════════════════ */

/* ── 1. Zimbabwe flag: 5 equal sharp rectangular bands (NO gradient) ────── */
.flag-stripe {
  display: block !important;
  height: 10px !important;
  background:
    linear-gradient(90deg,
      #087348  0%   20%,
      #d8b11e  20%  40%,
      #b3272d  40%  60%,
      #131210  60%  80%,
      #ffffff  80% 100%
    ) !important;
  border-bottom: 1px solid rgba(0,0,0,.08) !important;
}
.site-header.is-compact .flag-stripe { height: 4px !important; }

/* ── 2. Mobile strip nav: better spacing and tap targets ─────────────────── */
@media (max-width: 820px) {
  .nav-inner {
    padding: .32rem .6rem !important;
    gap: .1rem !important;
    min-height: 42px !important;
  }
  .nav-inner > a.nav-item {
    padding: .38rem .68rem !important;
    font-size: .73rem !important;
    border-radius: 5px !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
  }
  .nav-link-row {
    padding: .38rem .68rem !important;
    gap: .06rem !important;
  }
  .nav-link-row > a {
    font-size: .73rem !important;
  }
  .mega-toggle {
    width: 1.8rem !important;
    height: 1.8rem !important;
    min-width: 1.8rem !important;
    min-height: 1.8rem !important;
    flex-shrink: 0 !important;
  }
}

/* ── 3. Portal categories section ───────────────────────────────────────── */
.portal-cat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-top: 2rem;
}
.portal-cat-panel {
  background: #fff;
  border: 1px solid rgba(15,106,67,.1);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(9,25,21,.06);
  display: flex;
  flex-direction: column;
}
.portal-cat-head {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  padding: 1.2rem 1.3rem;
  background: linear-gradient(135deg, rgba(8,115,72,.07), rgba(1,98,63,.04));
  border-bottom: 1px solid rgba(15,106,67,.08);
}
.portal-cat-icon {
  font-size: 2rem;
  line-height: 1;
  flex-shrink: 0;
}
.portal-cat-kicker {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #087348;
  margin: 0 0 .2rem;
}
.portal-cat-title {
  font-size: 1rem;
  font-weight: 700;
  color: #0d2014;
  margin: 0 0 .3rem;
}
.portal-cat-body {
  font-size: .78rem;
  color: #435147;
  margin: 0;
  line-height: 1.5;
}
.portal-cat-links {
  list-style: none;
  margin: 0;
  padding: .5rem 0;
  flex: 1;
}
.portal-cat-link {
  display: flex;
  flex-direction: column;
  padding: .65rem 1.3rem;
  text-decoration: none;
  border-bottom: 1px solid rgba(15,106,67,.06);
  transition: background .15s ease;
  position: relative;
}
.portal-cat-links li:last-child .portal-cat-link { border-bottom: 0; }
.portal-cat-link:hover { background: rgba(8,115,72,.05); }
.portal-cat-link-label {
  font-size: .83rem;
  font-weight: 600;
  color: #01623f;
  line-height: 1.3;
}
.portal-cat-link-desc {
  font-size: .72rem;
  color: #6b7478;
  line-height: 1.4;
  margin-top: .12rem;
}
.portal-cat-ext {
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
  color: #a0a8a4;
}
@media (max-width: 1080px) {
  .portal-cat-grid { grid-template-columns: 1fr 1fr; }
  .portal-cat-panel:last-child { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .portal-cat-grid { grid-template-columns: 1fr; }
  .portal-cat-panel:last-child { grid-column: 1; }
}

/* ── 4. Appointments list ────────────────────────────────────────────────── */
.appt-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 1.5rem;
  margin-top: 2rem;
}
.appt-card {
  display: flex;
  gap: 1.2rem;
  background: #fff;
  border: 1px solid rgba(15,106,67,.1);
  border-radius: 14px;
  padding: 1.25rem;
  box-shadow: 0 2px 10px rgba(9,25,21,.05);
  transition: box-shadow .18s ease, transform .18s ease;
}
.appt-card:hover { box-shadow: 0 6px 22px rgba(9,25,21,.1); transform: translateY(-2px); }
.appt-photo {
  flex-shrink: 0;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  overflow: hidden;
  border: 2px solid rgba(8,115,72,.18);
}
.appt-photo img { width: 100%; height: 100%; object-fit: cover; }
.appt-photo-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(8,115,72,.06);
}
.appt-body { flex: 1; min-width: 0; }
.appt-date {
  font-size: .7rem;
  font-weight: 700;
  color: #087348;
  letter-spacing: .06em;
  text-transform: uppercase;
  display: block;
  margin-bottom: .3rem;
}
.appt-name {
  font-size: 1rem;
  font-weight: 700;
  color: #0d2014;
  margin: 0 0 .25rem;
  line-height: 1.3;
}
.appt-name a { color: inherit; text-decoration: none; }
.appt-name a:hover { color: #01623f; }
.appt-title {
  font-size: .82rem;
  color: #435147;
  font-weight: 600;
  margin: 0 0 .4rem;
}
.appt-excerpt {
  font-size: .78rem;
  color: #6b7478;
  margin: 0 0 .6rem;
  line-height: 1.5;
}
.appt-more {
  font-size: .75rem;
  font-weight: 700;
  color: #01623f;
  text-decoration: none;
}
.appt-more:hover { text-decoration: underline; }

/* ── 5. Appointment detail page ─────────────────────────────────────────── */
.appt-detail-layout {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 3rem;
  align-items: start;
  padding-top: 2rem;
  padding-bottom: 3rem;
}
.appt-detail-photo {
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(15,106,67,.1);
  box-shadow: 0 4px 18px rgba(9,25,21,.08);
}
.appt-detail-photo img { width: 100%; display: block; object-fit: cover; }
.appt-detail-meta {
  display: flex;
  flex-direction: column;
  gap: .4rem;
  margin-top: 1rem;
  padding: .9rem 1rem;
  background: rgba(8,115,72,.05);
  border-radius: 10px;
}
.appt-detail-name {
  font-size: .95rem;
  font-weight: 700;
  color: #0d2014;
}
.appt-detail-role {
  font-size: .8rem;
  color: #087348;
  font-weight: 600;
}
.appt-detail-date {
  display: flex;
  align-items: center;
  gap: .4rem;
  font-size: .75rem;
  color: #6b7478;
  margin-top: .3rem;
}
.appt-detail-body {
  font-size: .95rem;
  line-height: 1.75;
  color: #2c3330;
  margin: 1rem 0 1.5rem;
}
.appt-detail-body p { margin: 0 0 1rem; }
.btn-outline-green {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .55rem 1.1rem;
  border: 1.5px solid #01623f;
  border-radius: 8px;
  color: #01623f;
  font-weight: 700;
  font-size: .83rem;
  text-decoration: none;
  transition: background .15s ease, color .15s ease;
}
.btn-outline-green:hover { background: #01623f; color: #fff; }
@media (max-width: 820px) {
  .appt-detail-layout { grid-template-columns: 1fr; gap: 1.5rem; }
  .appt-grid { grid-template-columns: 1fr; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   v47 -- Production refinements: topbar glass, nav size, portal UX,
          management cards, contact form, portal button mobile fix
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 1. Topbar -- floating glass card (desktop only) ─────────────────────── */
@media (min-width: 821px) {
  .topbar {
    background: transparent;
    border-bottom: none;
    position: relative;
    z-index: 2;
    padding: 0;
  }
  .topbar-inner {
    display: inline-flex;
    align-items: center;
    background: rgba(1, 25, 15, 0.82);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-radius: 0 0 16px 16px;
    padding: 0 1.6rem;
    box-shadow: 0 4px 22px rgba(0, 0, 0, .28), 0 1px 0 rgba(8,115,72,.18) inset;
    border: 1px solid rgba(8,115,72,.14);
    border-top: none;
    margin: 0 auto;
    float: none;
    justify-content: center;
    gap: 0;
    min-height: 34px;
    max-width: fit-content;
    left: 50%;
    position: relative;
    transform: translateX(-50%);
  }
  .topbar-list { gap: .1rem; }
  .topbar-item { padding: 0 .65rem; }
  .topbar-item-address { border-right: 1px solid rgba(255,255,255,.12); padding-right: .85rem; margin-right: .2rem; }
  .topbar-utility-group.topbar-socials { border-left: 1px solid rgba(255,255,255,.12); padding-left: .85rem; margin-left: .2rem; }
  .topbar-utility-group.topbar-socials a { color: rgba(255,255,255,.7); font-size: .7rem; }
  .topbar-utility-group.topbar-socials a:hover { color: #d8b11e; }
}

/* ── 2. Desktop nav text size increase ───────────────────────────────────── */
@media (min-width: 821px) {
  .primary-nav .nav-inner > li > a,
  .primary-nav .nav-inner > li > button {
    font-size: .88rem !important;
    letter-spacing: .01em;
    padding: 0 .85rem !important;
  }
  .primary-nav .nav-inner > li.has-mega > button {
    gap: .35rem;
  }
}

/* ── 3. Portal button mobile — keep inline with seal ─────────────────────── */
@media (max-width: 820px) {
  .masthead-inner {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: .4rem;
    padding: .35rem .75rem;
  }
  .masthead-tools {
    display: flex;
    align-items: center;
    gap: .3rem;
    flex-wrap: nowrap;
    flex-shrink: 0;
  }
  .seal-mark.seal-mark-inline {
    flex-shrink: 0;
  }
  .portal-link {
    order: 2;
    font-size: .65rem !important;
    padding: .26rem .6rem !important;
    white-space: nowrap;
    flex-shrink: 0;
  }
  .masthead-search-form { display: none !important; }
  .menu-toggle { order: 3; }
}

/* ── 4. Portal categories -- enhanced card UX ────────────────────────────── */
.portal-cat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.4rem;
  margin-top: 2rem;
}
.portal-cat-panel {
  background: #fff;
  border: 1px solid rgba(8,115,72,.12);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(9,25,21,.06);
  transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease;
  display: flex;
  flex-direction: column;
}
.portal-cat-panel:hover {
  box-shadow: 0 8px 28px rgba(8,115,72,.14);
  transform: translateY(-3px);
  border-color: rgba(8,115,72,.28);
}
.portal-cat-head {
  display: flex;
  gap: 1rem;
  padding: 1.4rem 1.4rem 1rem;
  align-items: flex-start;
  border-bottom: 1px solid rgba(8,115,72,.07);
  background: linear-gradient(135deg, rgba(8,115,72,.04) 0%, rgba(255,255,255,0) 60%);
}
.portal-cat-icon {
  font-size: 1.9rem;
  line-height: 1;
  flex-shrink: 0;
  width: 2.6rem;
  height: 2.6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(8,115,72,.07);
  border-radius: 10px;
  border: 1px solid rgba(8,115,72,.1);
}
.portal-cat-kicker {
  font-size: .65rem !important;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #087348;
  margin: 0 0 .2rem;
}
.portal-cat-title {
  font-size: 1rem;
  font-weight: 700;
  color: #0d2014;
  margin: 0 0 .3rem;
  line-height: 1.25;
}
.portal-cat-body {
  font-size: .78rem;
  color: #5a6660;
  margin: 0;
  line-height: 1.45;
}
.portal-cat-links {
  list-style: none;
  margin: 0;
  padding: .6rem 0 .6rem;
  flex: 1;
}
.portal-cat-links li { border-bottom: 1px solid rgba(8,115,72,.05); }
.portal-cat-links li:last-child { border-bottom: none; }
.portal-cat-link {
  display: flex;
  flex-direction: column;
  padding: .7rem 1.4rem;
  text-decoration: none;
  position: relative;
  transition: background .15s ease;
}
.portal-cat-link:hover { background: rgba(8,115,72,.05); }
.portal-cat-link-label {
  font-size: .84rem;
  font-weight: 600;
  color: #0d2014;
  line-height: 1.3;
}
.portal-cat-link:hover .portal-cat-link-label { color: #01623f; }
.portal-cat-link-desc {
  font-size: .71rem;
  color: #7a8480;
  line-height: 1.35;
  margin-top: .12rem;
}
.portal-cat-ext {
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
  color: #b0bab6;
  display: flex;
}
@media (max-width: 1080px) {
  .portal-cat-grid { grid-template-columns: 1fr 1fr; }
  .portal-cat-panel:last-child { grid-column: auto; }
}
@media (max-width: 640px) {
  .portal-cat-grid { grid-template-columns: 1fr; }
}

/* ── 5. Management cards -- professional layout ───────────────────────────── */
.management-card-rich {
  background: #fff;
  border: 1px solid rgba(8,115,72,.1);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(9,25,21,.06);
  transition: box-shadow .2s ease, transform .2s ease;
  display: flex;
  flex-direction: column;
}
.management-card-rich:hover {
  box-shadow: 0 8px 26px rgba(8,115,72,.12);
  transform: translateY(-3px);
}
.management-photo-frame {
  position: relative;
  overflow: hidden;
  aspect-ratio: 3 / 3.5;
  background: linear-gradient(160deg, rgba(8,115,72,.06) 0%, rgba(1,98,63,.1) 100%);
}
.person-photo-rich {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
  transition: transform .3s ease;
}
.management-card-rich:hover .person-photo-rich { transform: scale(1.03); }
.avatar-circle-rich {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.4rem;
  font-weight: 800;
  color: #087348;
  background: linear-gradient(135deg, rgba(8,115,72,.08), rgba(1,98,63,.14));
}
.management-card-body {
  padding: 1rem 1.1rem 1.2rem;
  border-top: 2px solid rgba(8,115,72,.08);
}
.management-card-label {
  font-size: .62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .09em;
  color: #087348;
  margin: 0 0 .3rem;
}
.management-card-rich h3 {
  font-size: .9rem;
  font-weight: 700;
  color: #0d2014;
  margin: 0 0 .25rem;
  line-height: 1.3;
}
.management-role {
  font-size: .76rem;
  color: #5a6660;
  font-style: italic;
  margin: 0;
  line-height: 1.35;
}
.management-grid-rich {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 1.4rem;
}
@media (max-width: 640px) {
  .management-grid-rich { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
  .management-card-body { padding: .7rem .8rem .9rem; }
  .management-card-rich h3 { font-size: .82rem; }
}

/* ── 6. Contact form -- clean enquiry form ───────────────────────────────── */
.contact-primary-card-v2 .contact-info-rows {
  display: flex;
  flex-direction: column;
  gap: .6rem;
  margin: 1rem 0 1.2rem;
}
.contact-info-row {
  display: flex;
  align-items: flex-start;
  gap: .65rem;
  font-size: .84rem;
  color: #2c3330;
  text-decoration: none;
  transition: color .14s ease;
  line-height: 1.4;
}
a.contact-info-row:hover { color: #01623f; }
.contact-info-icon {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: rgba(8,115,72,.08);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #087348;
  margin-top: .05rem;
}
.contact-form-panel {
  border: 1px solid rgba(8,115,72,.1);
  border-radius: 16px;
  padding: 1.5rem;
  background: #fff;
  box-shadow: 0 2px 14px rgba(9,25,21,.05);
}
.contact-form-panel .mini-kicker { margin-bottom: .3rem; }
.contact-form-panel h3 { margin: 0 0 1.2rem; font-size: 1.1rem; }
.contact-enquiry-form { display: flex; flex-direction: column; gap: .85rem; }
.form-row { display: flex; flex-direction: column; gap: .3rem; }
.form-row label {
  font-size: .78rem;
  font-weight: 700;
  color: #3a4440;
  letter-spacing: .01em;
}
.form-required { color: #b3272d; }
.form-row input,
.form-row textarea {
  width: 100%;
  padding: .62rem .85rem;
  border: 1.5px solid rgba(8,115,72,.2);
  border-radius: 10px;
  font-size: .88rem;
  color: #1a2420;
  background: #fafcfb;
  outline: none;
  transition: border-color .16s ease, box-shadow .16s ease;
  font-family: inherit;
  box-sizing: border-box;
}
.form-row input:focus,
.form-row textarea:focus {
  border-color: #087348;
  box-shadow: 0 0 0 3px rgba(8,115,72,.1);
  background: #fff;
}
.form-row textarea { resize: vertical; min-height: 110px; line-height: 1.55; }
.contact-submit-btn { align-self: flex-start; margin-top: .3rem; }
.contact-form-success {
  display: flex;
  align-items: flex-start;
  gap: .8rem;
  background: rgba(8,115,72,.06);
  border: 1px solid rgba(8,115,72,.2);
  border-radius: 12px;
  padding: 1rem 1.2rem;
  margin-bottom: .5rem;
}
.contact-form-success p {
  color: #0d2014;
  font-size: .88rem;
  line-height: 1.55;
  margin: 0;
}
.contact-form-error {
  background: rgba(179,39,45,.06);
  border: 1px solid rgba(179,39,45,.25);
  border-radius: 10px;
  padding: .75rem 1rem;
  font-size: .83rem;
  color: #8b1a1e;
  margin-bottom: .85rem;
}

/* ── 7. Contact channel cards -- icon treatment ──────────────────────────── */
.contact-channel-card {
  border: 1px solid rgba(8,115,72,.1) !important;
  border-radius: 14px !important;
  transition: box-shadow .18s ease, transform .18s ease !important;
}
.contact-channel-card:hover {
  box-shadow: 0 6px 20px rgba(8,115,72,.1) !important;
  transform: translateY(-2px) !important;
}
.contact-channel-value {
  font-size: 1rem;
  font-weight: 700;
  color: #087348;
  margin: .35rem 0 .2rem;
}



/* ═══════════════════════════════════════════════════════════════════════════
   v48 -- Green header, white text, single-row mobile masthead, logo blending
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 1. Full-width green header (light Zimbabwe green, NOT dark) ──────────── */
.site-header {
  background: #087348 !important;
  box-shadow: 0 3px 16px rgba(0,0,0,.25) !important;
}

/* ── 2. Masthead inherits green, no white box ─────────────────────────────── */
.masthead {
  background: transparent !important;
  border-bottom: 1px solid rgba(255,255,255,.1) !important;
  max-height: none !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}
.site-header.is-compact .masthead {
  max-height: none !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

/* ── 3. Masthead text: white and gold ────────────────────────────────────── */
.masthead-kicker {
  color: #d8b11e !important;
  text-shadow: 0 1px 3px rgba(0,0,0,.3) !important;
}
.masthead-title h1 {
  color: #fff !important;
  text-shadow: 0 1px 4px rgba(0,0,0,.25) !important;
}
.masthead-meta {
  color: rgba(255,255,255,.76) !important;
}

/* ── 4. Logos blend into green (transparent bg + drop-shadow) ────────────── */
.crest-mark,
.seal-mark {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
}
.crest-mark img,
.seal-mark.seal-mark-inline img {
  filter: drop-shadow(0 2px 6px rgba(0,0,0,.45)) brightness(1.06) !important;
  background: transparent !important;
}

/* ── 5. Search input styled for dark header ──────────────────────────────── */
.masthead-search-form input {
  background: rgba(255,255,255,.14) !important;
  border: 1.5px solid rgba(255,255,255,.28) !important;
  color: #fff !important;
}
.masthead-search-form input::placeholder {
  color: rgba(255,255,255,.55) !important;
}
.masthead-search-form button {
  background: rgba(255,255,255,.18) !important;
  color: #fff !important;
}
.masthead-search-form button:hover {
  background: rgba(255,255,255,.28) !important;
}

/* ── 6. Portal link: white pill on green ─────────────────────────────────── */
.portal-link {
  background: rgba(255,255,255,.95) !important;
  color: #065f34 !important;
  border: none !important;
  font-weight: 700 !important;
}
.portal-link:hover,
.portal-link:focus {
  background: #d8b11e !important;
  color: #1a0e00 !important;
}

/* ── 7. Topbar: simple dark-tinted strip on green (reset v47 glass) ──────── */
.topbar {
  background: rgba(0, 35, 18, 0.45) !important;
  border-bottom: 1px solid rgba(255,255,255,.07) !important;
  padding: 0 !important;
}
@media (min-width: 821px) {
  .topbar {
    overflow: hidden !important;
    max-height: 36px !important;
  }
  .topbar-inner {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    box-shadow: none !important;
    border: none !important;
    border-radius: 0 !important;
    transform: none !important;
    left: auto !important;
    position: static !important;
    max-width: none !important;
    min-height: auto !important;
    float: none !important;
    width: 100% !important;
    padding: 0 !important;
  }
  .topbar-list { gap: 0 !important; }
  .topbar-item { padding: 0 .7rem !important; height: 36px !important; display: flex !important; align-items: center !important; }
  .topbar-item-address { border-right: 1px solid rgba(255,255,255,.12) !important; }
  .topbar-utility-group.topbar-socials { border-left: 1px solid rgba(255,255,255,.12) !important; padding-left: .7rem !important; }
  .topbar-utility-group.topbar-socials a { color: rgba(255,255,255,.72) !important; font-size: .7rem !important; }
  .topbar-utility-group.topbar-socials a:hover { color: #d8b11e !important; }
  .topbar-text { color: rgba(255,255,255,.82) !important; font-size: .7rem !important; }
  .topbar-item a { color: rgba(255,255,255,.82) !important; font-size: .7rem !important; }
  .topbar-item a:hover { color: #fff !important; }
  .topbar-icon svg path { fill: rgba(255,255,255,.7) !important; }
}

/* ── 8. Mobile masthead: strict single row [crest | title | seal+portal] ─── */
@media (max-width: 820px) {
  /* 3-column grid: logo | text | tools */
  .masthead-inner {
    display: grid !important;
    grid-template-columns: 46px 1fr auto !important;
    align-items: center !important;
    gap: .4rem !important;
    padding: .32rem .7rem !important;
    min-height: 52px !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
  /* Left logo: smaller for tight row */
  .crest-mark {
    width: 46px !important;
    flex-shrink: 0 !important;
    display: flex !important;
    align-items: center !important;
  }
  .crest-mark img {
    width: 42px !important;
    height: 42px !important;
  }
  /* Title: truncate/wrap tightly */
  .masthead-title {
    min-width: 0 !important;
    overflow: hidden !important;
  }
  .masthead-kicker {
    font-size: .58rem !important;
    letter-spacing: .06em !important;
    margin: 0 0 .1rem !important;
  }
  .masthead-title h1 {
    font-size: .88rem !important;
    line-height: 1.16 !important;
    font-weight: 800 !important;
    white-space: normal !important;
    overflow: hidden !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    text-overflow: unset !important;
    margin: 0 !important;
  }
  .masthead-meta { display: none !important; }
  /* Right tools col: seal + portal, NO hamburger, NO search */
  .masthead-tools {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: .28rem !important;
    flex-shrink: 0 !important;
  }
  .masthead-search-form { display: none !important; }
  .menu-toggle { display: none !important; }
  .seal-mark.seal-mark-inline {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    flex-shrink: 0 !important;
  }
  .seal-mark.seal-mark-inline img {
    width: 36px !important;
    height: 36px !important;
    object-fit: contain !important;
  }
  .portal-link {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: .64rem !important;
    font-weight: 700 !important;
    padding: .22rem .52rem !important;
    min-height: 27px !important;
    height: auto !important;
    border-radius: 5px !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
    line-height: 1 !important;
  }
}

/* ── 9. Nav bar: dark green for header cohesion ──────────────────────────── */
.primary-nav {
  background: linear-gradient(90deg, #051d11 0%, #073320 100%) !important;
  border-top: 1px solid rgba(255,255,255,.06) !important;
  border-bottom: none !important;
  box-shadow: 0 2px 10px rgba(0,0,0,.22) !important;
}
/* Desktop nav items: white text */
@media (min-width: 821px) {
  .nav-item,
  .nav-link-row > a {
    color: rgba(255,255,255,.85) !important;
  }
  .nav-item:hover,
  .nav-item.is-active,
  .nav-link-row > a:hover {
    color: #fff !important;
    background: rgba(255,255,255,.09) !important;
  }
  .mega-toggle {
    color: rgba(255,255,255,.72) !important;
  }
  .mega-toggle:hover { color: #fff !important; }
}
/* Mobile strip nav: keep white bg with dark text */
@media (max-width: 820px) {
  .primary-nav {
    background: rgba(255,255,255,.98) !important;
    border-top: 2px solid rgba(8,115,72,.18) !important;
    border-bottom: 1px solid rgba(8,115,72,.08) !important;
    box-shadow: 0 2px 8px rgba(9,25,21,.07) !important;
  }
  .nav-item,
  .nav-link-row > a {
    color: #1a3320 !important;
  }
  .nav-item:hover,
  .nav-item.is-active,
  .nav-link-row > a:hover {
    color: #01623f !important;
    background: rgba(8,115,72,.07) !important;
  }
  .mega-toggle { color: #1a3320 !important; }
}

/* ── 10. Compact state on green header ───────────────────────────────────── */
.site-header.is-compact .masthead-kicker,
.site-header.is-compact .masthead-meta {
  display: none !important;
}
.site-header.is-compact .masthead-title h1 {
  font-size: 1rem !important;
  color: #fff !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   v49 -- Two-tone header: green topbar, white masthead, light-green nav,
          mobile single-row alignment fix
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 1. Header shell: white base (each zone sets own bg) ─────────────────── */
.site-header {
  background: #fff !important;
  box-shadow: 0 2px 14px rgba(0,0,0,.16) !important;
}

/* ── 2. Top contact bar: full-width green ────────────────────────────────── */
.topbar {
  background: #01623f !important;
  border-bottom: none !important;
  overflow: hidden !important;
  max-height: 48px !important;
  transition: max-height .3s ease, opacity .28s ease !important;
}
.site-header.is-compact .topbar {
  max-height: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
/* Reset the v47 floating glass effect completely */
.topbar-inner {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  min-height: 36px !important;
  padding: 0 !important;
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: none !important;
  border: none !important;
  border-radius: 0 !important;
  transform: none !important;
  left: auto !important;
  position: static !important;
  max-width: none !important;
  float: none !important;
  width: 100% !important;
}
/* Topbar items: white text on green */
.topbar-item,
.topbar-item a,
.topbar-text {
  color: rgba(255,255,255,.88) !important;
  font-size: .72rem !important;
}
.topbar-item a:hover { color: #fff !important; text-decoration: none !important; }
.topbar-icon svg path { fill: rgba(255,255,255,.72) !important; }
.topbar-utility-group.topbar-socials a {
  color: rgba(255,255,255,.8) !important;
  font-size: .72rem !important;
}
.topbar-utility-group.topbar-socials a:hover { color: #d8b11e !important; }
/* Separator dots between topbar items */
.topbar-item-address {
  border-right: 1px solid rgba(255,255,255,.2) !important;
  padding-right: .9rem !important;
  margin-right: .1rem !important;
}
.topbar-utility-group.topbar-socials {
  border-left: 1px solid rgba(255,255,255,.2) !important;
  padding-left: .9rem !important;
  margin-left: .1rem !important;
}

/* ── 3. Masthead: white background, green/dark text ─────────────────────── */
.masthead {
  background: #fff !important;
  border-bottom: 1px solid rgba(8,115,72,.1) !important;
  max-height: none !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}
.site-header.is-compact .masthead {
  max-height: none !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

/* Masthead text: green kicker, dark h1, muted meta */
.masthead-kicker {
  color: #087348 !important;
  text-shadow: none !important;
}
.masthead-title h1 {
  color: #0d2014 !important;
  text-shadow: none !important;
}
.masthead-meta {
  color: #5a6660 !important;
}
/* Compact state: keep dark text on white */
.site-header.is-compact .masthead-title h1 {
  color: #0d2014 !important;
  font-size: 1rem !important;
}
.site-header.is-compact .masthead-kicker,
.site-header.is-compact .masthead-meta {
  display: none !important;
}

/* ── 4. Logos: natural blending on white masthead ────────────────────────── */
.crest-mark,
.seal-mark {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
}
.crest-mark img,
.seal-mark.seal-mark-inline img {
  filter: drop-shadow(0 1px 5px rgba(0,0,0,.15)) !important;
  background: transparent !important;
}

/* ── 5. Search input: styled for white masthead ──────────────────────────── */
.masthead-search-form input {
  background: #f4f6f5 !important;
  border: 1.5px solid rgba(8,115,72,.2) !important;
  color: #1a2420 !important;
}
.masthead-search-form input::placeholder {
  color: #9aa59e !important;
}
.masthead-search-form button {
  background: rgba(8,115,72,.1) !important;
  color: #087348 !important;
}
.masthead-search-form button:hover {
  background: rgba(8,115,72,.2) !important;
}

/* ── 6. Portal button: green pill on white masthead ──────────────────────── */
.portal-link {
  background: #087348 !important;
  color: #fff !important;
  border: none !important;
  font-weight: 700 !important;
}
.portal-link:hover,
.portal-link:focus {
  background: #01623f !important;
  color: #fff !important;
}

/* ── 7. Navigation bar: light green ─────────────────────────────────────── */
.primary-nav {
  background: #e8f4ed !important;
  border-top: 1px solid rgba(8,115,72,.12) !important;
  border-bottom: 1px solid rgba(8,115,72,.1) !important;
  box-shadow: 0 2px 8px rgba(9,25,21,.05) !important;
}
@media (min-width: 821px) {
  .nav-item,
  .nav-link-row > a {
    color: #0d3a1e !important;
  }
  .nav-item:hover,
  .nav-item.is-active {
    color: #01623f !important;
    background: rgba(8,115,72,.1) !important;
  }
  .nav-link-row > a:hover { color: #01623f !important; }
  .mega-toggle { color: #0d3a1e !important; }
  .mega-toggle:hover { color: #01623f !important; background: rgba(8,115,72,.08) !important; }
}

/* ── 8. Mobile: white strip nav, dark text ───────────────────────────────── */
@media (max-width: 820px) {
  .topbar { display: none !important; }
  .primary-nav {
    background: rgba(255,255,255,.99) !important;
    border-top: 2px solid rgba(8,115,72,.14) !important;
    border-bottom: 1px solid rgba(8,115,72,.08) !important;
    box-shadow: 0 2px 8px rgba(9,25,21,.06) !important;
  }
  .nav-item,
  .nav-link-row > a {
    color: #1a3320 !important;
  }
  .nav-item:hover,
  .nav-item.is-active,
  .nav-link-row > a:hover {
    color: #01623f !important;
    background: rgba(8,115,72,.07) !important;
  }
  .mega-toggle { color: #1a3320 !important; }
}

/* ── 9. Mobile masthead: strict single row [crest | title | seal + portal] ── */
@media (max-width: 820px) {
  .masthead-inner {
    display: grid !important;
    grid-template-columns: 48px minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: .38rem !important;
    padding: .3rem .72rem !important;
    min-height: 54px !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
  /* Col 1: crest (left logo) */
  .crest-mark {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 48px !important;
    min-width: 48px !important;
    flex-shrink: 0 !important;
  }
  .crest-mark img {
    width: 44px !important;
    height: 44px !important;
  }
  /* Col 2: ministry title */
  .masthead-title {
    min-width: 0 !important;
    overflow: hidden !important;
  }
  .masthead-kicker {
    font-size: .57rem !important;
    letter-spacing: .06em !important;
    margin: 0 0 .06rem !important;
    display: block !important;
  }
  .masthead-title h1 {
    font-size: 1.0rem !important;
    font-weight: 800 !important;
    line-height: 1.17 !important;
    margin: 0 !important;
    white-space: normal !important;
    overflow: hidden !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    text-overflow: unset !important;
  }
  .masthead-meta { display: none !important; }
  /* Col 3: seal + portal (right side) */
  .masthead-tools {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: .25rem !important;
    flex-shrink: 0 !important;
    min-width: 0 !important;
  }
  .masthead-search-form { display: none !important; }
  .menu-toggle { display: none !important; }
  /* Seal: compact circular logo */
  .seal-mark.seal-mark-inline {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    flex-shrink: 0 !important;
  }
  .seal-mark.seal-mark-inline img {
    width: 38px !important;
    height: 38px !important;
    object-fit: contain !important;
  }
  /* Portal: compact pill */
  .portal-link {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: .66rem !important;
    font-weight: 700 !important;
    padding: .24rem .56rem !important;
    min-height: 28px !important;
    height: auto !important;
    border-radius: 5px !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
    line-height: 1 !important;
  }
}



/* ═══════════════════════════════════════════════════════════════════════════
   v50 -- Departments dropdown close fix, text sizes, masthead flex alignment
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 1. Mobile masthead: switch to flexbox (more predictable alignment) ─── */
@media (max-width: 820px) {
  .masthead-inner {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: .36rem !important;
    padding: .3rem .75rem !important;
    min-height: 54px !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
  /* Left logo: fixed-width flex item */
  .crest-mark {
    flex: 0 0 44px !important;
    width: 44px !important;
    min-width: 44px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
  }
  .crest-mark img {
    width: 44px !important;
    height: 44px !important;
    display: block !important;
  }
  /* Title: fills available space */
  .masthead-title {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    overflow: hidden !important;
    align-self: center !important;
  }
  /* Right tools: seal + portal, no wrapping */
  .masthead-tools {
    flex: 0 0 auto !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: .25rem !important;
    align-self: center !important;
  }
  .masthead-search-form { display: none !important; }
  .menu-toggle          { display: none !important; }
  /* Seal */
  .seal-mark.seal-mark-inline {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    flex-shrink: 0 !important;
  }
  .seal-mark.seal-mark-inline img {
    width: 38px !important;
    height: 38px !important;
    object-fit: contain !important;
  }
  /* Portal pill */
  .portal-link {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: .67rem !important;
    font-weight: 700 !important;
    padding: .24rem .58rem !important;
    min-height: 28px !important;
    height: auto !important;
    border-radius: 5px !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
    line-height: 1 !important;
  }
}

/* ── 2. Mobile masthead text: slightly larger ────────────────────────────── */
@media (max-width: 820px) {
  .masthead-kicker {
    font-size: .62rem !important;
    margin: 0 0 .1rem !important;
    display: block !important;
  }
  .masthead-title h1 {
    font-size: 1.1rem !important;
    font-weight: 800 !important;
    line-height: 1.17 !important;
    margin: 0 !important;
    white-space: normal !important;
    overflow: hidden !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
  }
  .masthead-meta { display: none !important; }
}

/* ── 3. Mobile strip nav: slightly bigger text ───────────────────────────── */
@media (max-width: 820px) {
  .nav-inner > a.nav-item {
    font-size: .78rem !important;
    padding: .38rem .72rem !important;
  }
  .nav-link-row > a {
    font-size: .78rem !important;
  }
  .nav-link-row {
    padding: .38rem .72rem !important;
  }
}

/* ── 4. Desktop nav: slightly bigger text, no overlap ────────────────────── */
@media (min-width: 821px) {
  .nav-item,
  .nav-link-row > a {
    font-size: .91rem !important;
    padding: 0 .82rem !important;
  }
  .nav-link-row {
    padding: 0 !important;
  }
  .nav-link-row > a {
    padding: 0 .6rem 0 .82rem !important;
  }
}

/* ── 5. Departments mega-close button (mobile only) ──────────────────────── */
.mega-menu-close-btn {
  display: none;
}
@media (max-width: 820px) {
  .mega-menu-close-btn {
    display: flex !important;
    align-items: center !important;
    gap: .4rem !important;
    width: 100% !important;
    padding: .65rem 1rem !important;
    background: rgba(8,115,72,.06) !important;
    border: none !important;
    border-bottom: 1px solid rgba(8,115,72,.1) !important;
    color: #01623f !important;
    font-size: .8rem !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    text-align: left !important;
    justify-content: flex-start !important;
  }
  .mega-menu-close-btn:active {
    background: rgba(8,115,72,.12) !important;
  }
}

/* ── 6. Ensure mega-toggle button has large enough tap target ────────────── */
@media (max-width: 820px) {
  .mega-toggle {
    min-width: 2rem !important;
    min-height: 2rem !important;
    width: 2rem !important;
    height: 2rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 4px !important;
    flex-shrink: 0 !important;
  }
}



/* ═══════════════════════════════════════════════════════════════════════════
   v51 -- Mobile mega-menu: display:none/block (fixes iOS pointer-events),
          toggle arrow reliably opens and closes
   ═══════════════════════════════════════════════════════════════════════════ */

/* On mobile, abandon visibility/pointer-events in favour of display:none.
   This guarantees iOS Safari never has invisible elements eating touch events. */
@media (max-width: 820px) {
  .nav-item-mega .mega-menu {
    display: none !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: none !important;
    transition: none !important;
  }
  .nav-item-mega.is-open .mega-menu {
    display: block !important;
  }
  /* Close button: always visible, large tap target */
  .mega-menu-close-btn {
    display: flex !important;
    min-height: 44px !important;
    padding: .7rem 1rem !important;
    font-size: .82rem !important;
    font-weight: 700 !important;
    color: #01623f !important;
    background: rgba(8,115,72,.07) !important;
    border: none !important;
    border-bottom: 1px solid rgba(8,115,72,.12) !important;
    width: 100% !important;
    cursor: pointer !important;
    align-items: center !important;
    gap: .45rem !important;
    -webkit-tap-highlight-color: rgba(8,115,72,.15) !important;
    touch-action: manipulation !important;
  }
  /* Chevron: always large tap area */
  .mega-toggle {
    min-width: 44px !important;
    min-height: 44px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    touch-action: manipulation !important;
    -webkit-tap-highlight-color: rgba(8,115,72,.15) !important;
    cursor: pointer !important;
  }
}


/* ═══════════════════════════════════════════════════════════════════════════
   v52 — Department downloads section
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Department downloads section ───────────────────────────────────────── */
.ddt-downloads-section {
  padding: 4rem 0;
  background: #fff;
}
.ddt-downloads-head {
  margin-bottom: 2.5rem;
  max-width: 640px;
}
.ddt-downloads-head h2 {
  font-size: clamp(1.5rem, 3vw, 2rem);
  color: #0d2014;
  margin: .4rem 0 .7rem;
}
.ddt-downloads-head p {
  color: #3d5445;
  font-size: .96rem;
  line-height: 1.6;
}
.ddt-downloads-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 1.5rem;
}
.ddt-download-card {
  display: flex;
  gap: 1.25rem;
  align-items: flex-start;
  background: #f4fbf7;
  border: 1.5px solid rgba(1,98,63,.15);
  border-radius: 14px;
  padding: 1.5rem;
  transition: box-shadow .18s ease, transform .18s ease;
}
.ddt-download-card:hover {
  box-shadow: 0 8px 28px rgba(1,98,63,.12);
  transform: translateY(-3px);
}
.ddt-download-icon {
  flex-shrink: 0;
  width: 52px;
  height: 52px;
  border-radius: 12px;
  background: #01623f;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ddt-download-body {
  flex: 1 1 0;
  min-width: 0;
}
.ddt-download-meta {
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: #087348;
  margin: 0 0 .35rem;
}
.ddt-download-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: #0d2014;
  margin: 0 0 .5rem;
  line-height: 1.35;
}
.ddt-download-summary {
  font-size: .88rem;
  color: #3d5445;
  line-height: 1.55;
  margin: 0 0 1rem;
}
.ddt-download-card .v2-btn {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-size: .84rem;
}
.ddt-required-docs {
  background: #f0f7f3;
  border-left: 3px solid #087348;
  border-radius: 0 6px 6px 0;
  padding: .65rem 1rem;
  margin: .5rem 0 1rem;
}
.ddt-required-docs-label {
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #087348;
  margin: 0 0 .4rem;
}
.ddt-required-docs-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .3rem;
}
.ddt-required-docs-list li {
  font-size: .82rem;
  color: #1a3326;
  line-height: 1.4;
  padding-left: 1.1rem;
  position: relative;
}
.ddt-required-docs-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: #087348;
  font-weight: 700;
  font-size: .75rem;
}

/* ═══════════════════════════════════════════════════════════════════════════
   v53 — search result text fix + mobile search icon
   ═══════════════════════════════════════════════════════════════════════════ */

/* Fix: search result card text was white-on-white */
.search-result-card {
  background: #ffffff;
  border: 1px solid rgba(1,98,63,.12);
}
.search-result-card .mini-kicker {
  color: #087348;
}
.search-result-card h3 {
  margin: 0 0 .5rem;
}
.search-result-card h3 a {
  color: #0d2014;
  text-decoration: none;
  font-size: 1rem;
  font-weight: 700;
}
.search-result-card h3 a:hover {
  color: #01623f;
  text-decoration: underline;
}
.search-result-card p {
  color: #3d5445;
  font-size: .88rem;
  line-height: 1.55;
  margin: 0;
}

/* Mobile search icon — hidden on desktop, shown on mobile */
.mobile-search-btn {
  display: none;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  color: #01623f;
  border-radius: 8px;
  transition: background .15s ease;
  -webkit-tap-highlight-color: rgba(1,98,63,.15);
  touch-action: manipulation;
}
.mobile-search-btn:hover,
.mobile-search-btn:focus-visible {
  background: rgba(1,98,63,.08);
}

@media (max-width: 768px) {
  /* Show search icon on mobile */
  .mobile-search-btn {
    display: flex;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   PDF.js VIEWER  (pv-*)
   Full-screen modal canvas renderer. Works on all browsers and mobile.
   ═══════════════════════════════════════════════════════════════════════ */

.pv-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: stretch;
  background: rgba(0,0,0,.72);
  opacity: 0;
  transition: opacity .26s ease;
  padding: 0;
}
.pv-overlay.pv-visible { opacity: 1; }

.pv-shell {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 960px;
  margin: auto;
  background: #1a1a1a;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 24px 64px rgba(0,0,0,.6);
  max-height: calc(100svh - 2rem);
}

/* Top bar */
.pv-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  padding: .6rem .8rem .6rem 1rem;
  background: #111;
  border-bottom: 1px solid rgba(255,255,255,.08);
  flex-shrink: 0;
}
.pv-bar-title {
  font-size: .82rem;
  font-weight: 600;
  color: #e0e0e0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 60%;
}
.pv-bar-right {
  display: flex;
  align-items: center;
  gap: .25rem;
  flex-shrink: 0;
}
.pv-bar-btn {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .4rem .65rem;
  border: none;
  border-radius: 5px;
  background: transparent;
  color: #ccc;
  font-size: .78rem;
  font-weight: 500;
  cursor: pointer;
  text-decoration: none;
  transition: background .14s, color .14s;
  white-space: nowrap;
}
.pv-bar-btn:hover { background: rgba(255,255,255,.1); color: #fff; }
.pv-bar-btn--icon { padding: .4rem; }
.pv-bar-btn--close {
  background: rgba(255,255,255,.06);
  color: #ccc;
}
.pv-bar-btn--close:hover { background: rgba(220,50,50,.3); color: #ff8080; }
.pv-btn-label { display: none; }
@media (min-width: 480px) { .pv-btn-label { display: inline; } }

/* Canvas scroll area */
.pv-canvas-wrap {
  flex: 1;
  overflow-y: auto;
  overflow-x: auto;
  background: #2a2a2a;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 1rem;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
}
.pv-canvas-wrap canvas {
  display: block;
  box-shadow: 0 4px 24px rgba(0,0,0,.5);
  max-width: 100%;
  height: auto;
  border-radius: 2px;
}

/* Loading */
.pv-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  color: #aaa;
  font-size: .88rem;
  padding: 3rem;
  width: 100%;
}
.pv-spinner {
  width: 36px;
  height: 36px;
  border: 3px solid rgba(255,255,255,.12);
  border-top-color: #01623f;
  border-radius: 50%;
  animation: pv-spin .8s linear infinite;
}
@keyframes pv-spin { to { transform: rotate(360deg); } }

/* Error */
.pv-error {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  color: #aaa;
  font-size: .88rem;
  text-align: center;
  padding: 2.5rem 1.5rem;
  width: 100%;
}
.pv-error-msg { color: #ccc; line-height: 1.5; }
.pv-error-dl {
  display: inline-block;
  padding: .5rem 1.2rem;
  background: #01623f;
  color: #fff;
  border-radius: 5px;
  text-decoration: none;
  font-size: .82rem;
  font-weight: 600;
  margin-top: .25rem;
}
.pv-error-dl:hover { background: #014d32; }

/* Bottom toolbar */
.pv-toolbar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
  padding: .55rem .75rem;
  background: #111;
  border-top: 1px solid rgba(255,255,255,.07);
  flex-shrink: 0;
  flex-wrap: wrap;
}
.pv-toolbar-group {
  display: flex;
  align-items: center;
  gap: .2rem;
}
.pv-tool-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: none;
  border-radius: 5px;
  background: transparent;
  color: #bbb;
  cursor: pointer;
  transition: background .14s, color .14s;
  padding: 0;
}
.pv-tool-btn:hover:not(:disabled) { background: rgba(255,255,255,.1); color: #fff; }
.pv-tool-btn:disabled { opacity: .3; cursor: not-allowed; }
.pv-zoom-label {
  width: auto;
  padding: 0 .5rem;
  font-size: .75rem;
  font-weight: 600;
  color: #bbb;
  min-width: 44px;
}
.pv-page-display {
  display: flex;
  align-items: center;
  gap: .3rem;
  font-size: .8rem;
  color: #aaa;
}
.pv-page-input {
  width: 40px;
  padding: .2rem .3rem;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 4px;
  background: rgba(255,255,255,.06);
  color: #ddd;
  font-size: .78rem;
  text-align: center;
  -moz-appearance: textfield;
  appearance: textfield;
}
.pv-page-input::-webkit-outer-spin-button,
.pv-page-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.pv-page-sep, .pv-page-total { color: #777; }

/* Backdrop */
.pv-backdrop {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: transparent;
  border: none;
  cursor: pointer;
  width: 100%;
  height: 100%;
}

/* Mobile: full-screen shell */
@media (max-width: 600px) {
  .pv-shell {
    max-width: 100%;
    max-height: 100svh;
    border-radius: 0;
    margin: 0;
  }
  .pv-overlay { padding: 0; }
  .pv-canvas-wrap { padding: .5rem; }
  .pv-toolbar { gap: .75rem; }
}

/* Charter PDF preview card */
.csc-pdf-preview-wrap { padding: 0; }
.csc-pdf-preview-card {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.25rem 1.5rem;
  background: #f4f8f6;
  border: 1.5px solid #c8ddd4;
  border-radius: 10px;
  flex-wrap: wrap;
}
.csc-pdf-preview-icon { flex-shrink: 0; }
.csc-pdf-preview-info { flex: 1; min-width: 160px; }
.csc-pdf-preview-title { font-weight: 700; color: #1a2e1a; font-size: .95rem; margin-bottom: .2rem; }
.csc-pdf-preview-meta  { font-size: .78rem; color: #5a7a5a; }
.csc-pdf-open-btn {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .6rem 1.3rem;
  background: #01623f;
  color: #fff;
  border: none;
  border-radius: 6px;
  font-size: .85rem;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s;
  flex-shrink: 0;
}
.csc-pdf-open-btn:hover { background: #014d32; }
@media (max-width: 500px) {
  .csc-pdf-preview-card { flex-direction: column; align-items: flex-start; }
  .csc-pdf-open-btn { width: 100%; justify-content: center; }
}

/* Inline PDF trigger button (used in client service charter, etc.) */
.pv-inline-trigger {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .65rem 1.4rem;
  background: #01623f;
  color: #fff;
  border: none;
  border-radius: 6px;
  font-size: .9rem;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: background .15s, transform .12s;
}
.pv-inline-trigger:hover { background: #014d32; transform: translateY(-1px); }
.pv-inline-trigger svg { flex-shrink: 0; }

/* ── Ministry at a Glance strip (home page) ─────────────────────────────── */
.v2-glance-section {
  background: #01623f;
  color: #fff;
  padding: 2rem 0;
  border-top: 3px solid #ffd100;
  border-bottom: 3px solid rgba(255,255,255,.12);
}
.v2-glance-inner { text-align: center; }
.v2-glance-eyebrow {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #ffd100;
  margin: 0 0 1.4rem;
}
.v2-glance-grid {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  flex-wrap: wrap;
  row-gap: 1.4rem;
}
.v2-glance-stat {
  flex: 1 1 130px;
  min-width: 110px;
  padding: 0 1rem;
}
.v2-glance-val {
  display: block;
  font-size: 2.4rem;
  font-weight: 800;
  line-height: 1;
  color: #fff;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.02em;
}
.v2-glance-lbl {
  display: block;
  font-size: .72rem;
  font-weight: 500;
  color: rgba(255,255,255,.72);
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-top: .35rem;
}
.v2-glance-div {
  width: 1px;
  height: 2.4rem;
  background: rgba(255,255,255,.2);
  flex-shrink: 0;
  align-self: center;
}
@media (max-width: 640px) {
  .v2-glance-div { display: none; }
  .v2-glance-grid { gap: 1rem; }
  .v2-glance-stat { flex: 1 1 42%; padding: .6rem .5rem; }
  .v2-glance-val  { font-size: 2rem; }
}

/* ── Contact directory province search ──────────────────────────────────── */
.cdir-search-wrap {
  position: relative;
  display: flex;
  align-items: center;
  gap: .5rem;
  margin-bottom: .9rem;
}
.cdir-search-icon {
  position: absolute;
  left: .75rem;
  color: #666;
  pointer-events: none;
  flex-shrink: 0;
}
.cdir-search-input {
  width: 100%;
  padding: .6rem .9rem .6rem 2.4rem;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  font-size: .88rem;
  background: #fff;
  color: #111;
  outline: none;
  transition: border-color .15s, box-shadow .15s;
}
.cdir-search-input:focus {
  border-color: #01623f;
  box-shadow: 0 0 0 3px rgba(1,98,63,.14);
}
.cdir-search-count {
  font-size: .78rem;
  color: #666;
  white-space: nowrap;
  flex-shrink: 0;
}

/* ── FAQ sidebar TOC card as link ───────────────────────────────────────── */
a.faq-toc-card {
  display: flex;
  justify-content: space-between;
  align-items: center;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  border-radius: 6px;
  transition: background .14s, box-shadow .14s;
}
a.faq-toc-card:hover,
a.faq-toc-card:focus-visible {
  background: #f0faf5;
  box-shadow: 0 0 0 2px #01623f;
  outline: none;
}
a.faq-toc-card:hover .faq-toc-cat { color: #01623f; }

/* ═══════════════════════════════════════════════════════════════════════════
   SUPPORTING DEPT ACCORDION  (departments page)
   ═══════════════════════════════════════════════════════════════════════════ */

/* Restructured card head wrapper */
.dp-sup-card--expandable {
  display: flex;
  flex-direction: column;
  padding: 0;
  overflow: hidden;
}
.dp-sup-card--expandable .dp-sup-card-head {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  padding: 1.5rem 1.5rem 1rem;
}
.dp-sup-card--expandable .dp-sup-card-icon {
  flex-shrink: 0;
  width: 2.5rem;
  height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.5rem;
  background: rgba(1, 98, 63, 0.08);
  color: #01623f;
}
.dp-sup-card--expandable .dp-sup-card-body {
  flex: 1 1 0;
}
.dp-sup-card--expandable .dp-sup-card-intro {
  font-size: 0.875rem;
  color: #555;
  line-height: 1.55;
  margin: 0.35rem 0 0.6rem;
}
.dp-sup-card--expandable .dp-sup-card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.5rem;
}
.dp-sup-card--expandable .dp-sup-card-tags span {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  background: rgba(1, 98, 63, 0.09);
  color: #01623f;
}

/* Toggle expand button */
.dp-sup-expand-btn {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  padding: 0.7rem 1.5rem;
  border: 0;
  border-top: 1px solid rgba(0,0,0,0.07);
  background: rgba(1, 98, 63, 0.03);
  color: #01623f;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: background 0.15s;
  text-align: left;
  margin-top: auto;
}
.dp-sup-expand-btn:hover {
  background: rgba(1, 98, 63, 0.08);
}
.dp-sup-expand-arrow {
  margin-left: auto;
  flex-shrink: 0;
  transition: transform 0.25s cubic-bezier(.4,0,.2,1);
}
.dp-sup-card--expandable.is-open .dp-sup-expand-arrow {
  transform: rotate(180deg);
}

/* Expandable panel */
.dp-sup-panel {
  border-top: 2px solid #01623f;
  background: #fff;
  padding: 1.25rem 1.5rem 1rem;
  animation: dpPanelOpen 0.22s ease;
}
.dp-sup-panel[hidden] { display: none; }

@keyframes dpPanelOpen {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* HOD strip inside panel */
.dp-sup-panel-hod {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.6rem 0.85rem;
  background: rgba(1, 98, 63, 0.05);
  border-radius: 0.5rem;
  margin-bottom: 1.1rem;
}
.dp-sup-panel-hod img {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid #01623f;
}
.dp-sup-hod-name {
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  color: #111;
  line-height: 1.3;
}
.dp-sup-hod-role {
  display: block;
  font-size: 0.77rem;
  color: #555;
}

/* Section labels */
.dp-sup-panel-section-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #01623f;
  margin: 0 0 0.75rem;
}

/* Sub-units grid */
.dp-sup-panel-units {
  margin-bottom: 1.25rem;
}
.dp-sup-unit {
  border-left: 3px solid #01623f;
  padding: 0.6rem 0 0.6rem 1rem;
  margin-bottom: 0.85rem;
}
.dp-sup-unit:last-child { margin-bottom: 0; }
.dp-sup-unit-head {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  margin-bottom: 0.25rem;
}
.dp-sup-unit-num {
  font-size: 0.7rem;
  font-weight: 700;
  color: #01623f;
  opacity: 0.6;
  flex-shrink: 0;
}
.dp-sup-unit-title {
  font-size: 0.875rem;
  font-weight: 700;
  color: #111;
  margin: 0;
}
.dp-sup-unit-intro {
  font-size: 0.82rem;
  color: #555;
  line-height: 1.5;
  margin: 0 0 0.4rem;
}
.dp-sup-unit-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.dp-sup-unit-list li {
  font-size: 0.8rem;
  color: #444;
  padding: 0.15rem 0 0.15rem 1rem;
  position: relative;
  line-height: 1.45;
}
.dp-sup-unit-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.45rem;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #01623f;
  opacity: 0.5;
}

/* Full functions list */
.dp-sup-panel-fns {
  border-top: 1px solid rgba(0,0,0,0.07);
  padding-top: 1rem;
  margin-bottom: 1rem;
}
.dp-sup-fn-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 0.35rem 1rem;
}
.dp-sup-fn-list li {
  display: flex;
  align-items: baseline;
  gap: 0.45rem;
  font-size: 0.8rem;
  color: #444;
  line-height: 1.45;
}
.dp-sup-fn-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #01623f;
  flex-shrink: 0;
  margin-top: 0.45rem;
}

/* Panel footer: view link + collapse */
.dp-sup-panel-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  border-top: 1px solid rgba(0,0,0,0.07);
  padding-top: 0.85rem;
  flex-wrap: wrap;
}
.dp-sup-panel-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #01623f;
  text-decoration: none;
  letter-spacing: 0.01em;
  transition: gap 0.15s;
}
.dp-sup-panel-link:hover { gap: 0.65rem; }
.dp-sup-collapse-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: #666;
  background: none;
  border: 1px solid rgba(0,0,0,0.12);
  border-radius: 999px;
  padding: 0.3rem 0.75rem;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}
.dp-sup-collapse-btn:hover {
  background: rgba(0,0,0,0.05);
  color: #333;
}

@media (max-width: 640px) {
  .dp-sup-fn-list { grid-template-columns: 1fr; }
  .dp-sup-panel-foot { flex-direction: column; align-items: flex-start; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   v66 — Nav wrap fix, desktop masthead single-row, search always visible
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 1. Desktop nav: flex-wrap so every item stays on-screen ────────────
   Root cause of "nav links not rendering": flex-wrap:nowrap forces all 13
   items onto one row; at <1270px viewport the last items overflow off-screen.
   Wrapping keeps all items reachable. */
@media (min-width: 821px) {
  .nav-inner {
    flex-wrap: wrap !important;
    justify-content: center !important;
    row-gap: 0 !important;
  }
  .nav-inner > a.nav-item,
  .nav-item-mega {
    white-space: nowrap !important;
    flex-shrink: 0 !important;
  }
}

/* ── 2. Desktop masthead (>1080px): strict single row, search always shown ─ */
@media (min-width: 1081px) {
  .masthead-tools {
    grid-column: auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    flex-wrap: nowrap !important;
    flex-shrink: 0 !important;
    gap: .38rem !important;
  }
  .masthead-search-form {
    display: flex !important;
  }
  .portal-link {
    display: inline-flex !important;
  }
  /* Masthead h1: scale to fit the tools column at max container (1180px) */
  .masthead-title h1 {
    font-size: 1.42rem !important;
    white-space: nowrap !important;
  }
}

/* ── 3. Mid-desktop (821-1080px): clean centred tool row ──────────────── */
@media (min-width: 821px) and (max-width: 1080px) {
  .masthead-tools {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: .75rem !important;
    padding: .35rem 0 !important;
    flex-wrap: nowrap !important;
  }
  .masthead-search-form {
    display: flex !important;
  }
  .masthead-search-form input {
    min-height: 40px !important;
    min-width: 180px !important;
  }
  .masthead-search-form button {
    height: 40px !important;
  }
  .portal-link {
    display: inline-flex !important;
    min-height: 40px !important;
    padding: 0 .75rem !important;
    font-size: .82rem !important;
    border-radius: 4px !important;
  }
  .seal-mark.seal-mark-inline {
    width: 44px !important;
    height: 44px !important;
  }
}

/* ════════════════════════════════════════════════════════════════════════════
   v67 — Taller masthead: big logos, full ministry title clearly visible
   ════════════════════════════════════════════════════════════════════════════ */

/* ── Masthead bar: generous height and padding ───────────────────────────── */
.masthead-inner {
  min-height: 122px !important;
  padding-top: .9rem !important;
  padding-bottom: .9rem !important;
  grid-template-columns: 118px minmax(0, 1fr) auto !important;
  gap: 1.4rem !important;
  align-items: center !important;
}

/* ── Crest container + image: ~96 px visible logo ───────────────────────── */
.crest-mark {
  width: 112px !important;
  height: 112px !important;
  padding: .44rem !important;
}
.crest-mark img {
  width: 96px !important;
  height: 96px !important;
}

/* ── Seal container + image: ~88 px visible logo ────────────────────────── */
.seal-mark.seal-mark-inline {
  width: 104px !important;
  height: 104px !important;
  padding: .44rem !important;
  margin-right: .6rem !important;
}
.seal-mark.seal-mark-inline img {
  width: 88px !important;
  height: 88px !important;
}

/* ── Ministry name: large, bold, single line on desktop ─────────────────── */
.masthead-title h1 {
  font-size: 1.82rem !important;
  font-weight: 800 !important;
  line-height: 1.12 !important;
  letter-spacing: -.01em !important;
  white-space: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
  max-width: none !important;
}
.masthead-kicker {
  font-size: .74rem !important;
  letter-spacing: .12em !important;
  margin-bottom: .26rem !important;
}
.masthead-meta {
  font-size: .74rem !important;
  margin-top: .28rem !important;
  opacity: .85 !important;
}

/* ── Compact scroll state: shrink gracefully ─────────────────────────────── */
.site-header.is-compact .masthead-inner {
  min-height: 56px !important;
  padding-top: .24rem !important;
  padding-bottom: .24rem !important;
}
.site-header.is-compact .crest-mark {
  width: 50px !important;
  height: 50px !important;
}
.site-header.is-compact .crest-mark img {
  width: 42px !important;
  height: 42px !important;
}
.site-header.is-compact .seal-mark.seal-mark-inline {
  width: 46px !important;
  height: 46px !important;
  margin-right: .3rem !important;
}
.site-header.is-compact .seal-mark.seal-mark-inline img {
  width: 38px !important;
  height: 38px !important;
}
.site-header.is-compact .masthead-title h1 {
  font-size: 1.05rem !important;
}

/* ── Desktop wide (>1081 px): single line, font scales with viewport ─────── */
@media (min-width: 1081px) {
  .masthead-title h1 {
    font-size: clamp(1.6rem, 1.78vw, 1.95rem) !important;
    white-space: nowrap !important;
    overflow: visible !important;
  }
}

/* ── Tablet (821-1080 px): slightly smaller logos, wrap title ───────────── */
@media (min-width: 821px) and (max-width: 1080px) {
  .masthead-inner {
    min-height: 100px !important;
    grid-template-columns: 86px minmax(0,1fr) auto !important;
    gap: 1rem !important;
  }
  .crest-mark {
    width: 80px !important;
    height: 80px !important;
  }
  .crest-mark img {
    width: 68px !important;
    height: 68px !important;
  }
  .seal-mark.seal-mark-inline {
    width: 74px !important;
    height: 74px !important;
  }
  .seal-mark.seal-mark-inline img {
    width: 62px !important;
    height: 62px !important;
  }
  .masthead-title h1 {
    font-size: clamp(1.1rem, 1.85vw, 1.35rem) !important;
    white-space: normal !important;
    text-wrap: balance !important;
  }
}

/* ── Mobile (<820 px): both logos visible, readable title ───────────────── */
@media (max-width: 820px) {
  .masthead-inner {
    min-height: 84px !important;
    padding-top: .48rem !important;
    padding-bottom: .48rem !important;
    grid-template-columns: 70px minmax(0,1fr) auto !important;
    gap: .6rem !important;
  }
  .crest-mark {
    width: 64px !important;
    height: 64px !important;
    padding: .32rem !important;
  }
  .crest-mark img {
    width: 54px !important;
    height: 54px !important;
  }
  .seal-mark.seal-mark-inline {
    width: 58px !important;
    height: 58px !important;
    padding: .28rem !important;
    margin-right: .32rem !important;
  }
  .seal-mark.seal-mark-inline img {
    width: 48px !important;
    height: 48px !important;
  }
  .masthead-title h1 {
    font-size: 1.02rem !important;
    white-space: normal !important;
    line-height: 1.2 !important;
  }
  .masthead-kicker {
    font-size: .63rem !important;
  }
}

/* ══════════════════════════════════════════════════════════════════════════
   v71 — Language switcher (topbar)
   ══════════════════════════════════════════════════════════════════════════ */

/* Wrapper form sits inline in the topbar utility group */
.lang-form {
  display: inline-flex;
  align-items: center;
  margin-right: .5rem;
}

/* Globe icon + select row */
.lang-select-wrap {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  min-height: 32px;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 999px;
  background: rgba(255,255,255,.1);
  color: #fff;
  padding: 0 .55rem;
  opacity: 1;
  transition: opacity .18s;
  cursor: pointer;
}
.lang-select-wrap:hover,
.lang-select-wrap:focus-within {
  opacity: 1;
}

/* The <select> element — transparent so it inherits topbar colours */
.lang-select-wrap select {
  width: min(18rem, 28vw);
  min-height: 30px;
  background: transparent;
  border: none;
  color: #fff;
  font-family: inherit;
  font-size: .78rem;
  letter-spacing: 0;
  cursor: pointer;
  padding: 0 .1rem;
  outline-offset: 2px;
  max-width: none;
}

/* Dropdown options need a solid background */
.lang-select-wrap select option {
  background: #fff;
  color: #102019;
}

/* Hide on very small screens if needed — still accessible via mobile menu */
@media (max-width: 480px) {
  .lang-form {
    display: none;
  }
}

/* ==========================================================================
   v73 - Desktop full-width header with larger identity
   ========================================================================== */
@media (min-width: 821px) {
  .site-header .topbar-inner.container,
  .site-header .masthead-inner.container,
  .site-header .nav-inner.container {
    width: min(100%, calc(100% - 4rem)) !important;
    max-width: none !important;
  }

  .topbar {
    max-height: 42px !important;
  }

  .topbar-inner {
    min-height: 32px !important;
  }

  .topbar-item,
  .topbar-item a,
  .topbar-text,
  .topbar-utility-group.topbar-socials a,
  .lang-select-wrap select {
    font-size: .74rem !important;
  }

  .masthead-inner {
    min-height: 146px !important;
    grid-template-columns: 144px minmax(0, 1fr) auto !important;
    gap: 1.4rem !important;
    padding-top: 1.0rem !important;
    padding-bottom: 1.0rem !important;
  }

  .crest-mark {
    width: 126px !important;
    height: 126px !important;
    padding: .42rem !important;
  }

  .crest-mark img {
    width: 118px !important;
    height: 118px !important;
  }

  .seal-mark.seal-mark-inline {
    width: 122px !important;
    height: 122px !important;
    padding: .4rem !important;
    margin-right: .8rem !important;
  }

  .seal-mark.seal-mark-inline img {
    width: 104px !important;
    height: 104px !important;
  }

  .masthead-title h1 {
    font-size: clamp(2rem, 2.25vw, 2.55rem) !important;
    line-height: 0.90 !important;
    white-space: nowrap !important;
  }

  .masthead-kicker {
    font-size: .9rem !important;
    letter-spacing: .14em !important;
  }

  .masthead-meta {
    font-size: .9rem !important;
  }

  .masthead-tools {
    gap: .55rem !important;
  }

  .masthead-search-form input {
    min-width: 280px !important;
    min-height: 56px !important;
    font-size: 1rem !important;
  }

  .masthead-search-form button {
    width: 56px !important;
    height: 56px !important;
  }

  .portal-link {
    min-height: 56px !important;
    padding: 0 1.15rem !important;
    font-size: 1rem !important;
    border-radius: 4px !important;
  }

  .nav-inner {
    min-height: 58px !important;
    padding: .45rem 0 !important;
    gap: .12rem !important;
  }

  .nav-inner > a.nav-item,
  .nav-link-row > a {
    font-size: 1rem !important;
    padding: .44rem .82rem !important;
  }

  .nav-link-row {
    min-height: 44px !important;
  }
}

@media (min-width: 821px) and (max-width: 1180px) {
  .masthead-inner {
    grid-template-columns: 112px minmax(0, 1fr) auto !important;
    gap: 1rem !important;
  }

  .crest-mark {
    width: 104px !important;
    height: 104px !important;
  }

  .crest-mark img {
    width: 88px !important;
    height: 88px !important;
  }

  .seal-mark.seal-mark-inline {
    width: 88px !important;
    height: 88px !important;
    margin-right: .4rem !important;
  }

  .seal-mark.seal-mark-inline img {
    width: 74px !important;
    height: 74px !important;
  }

  .masthead-title h1 {
    font-size: clamp(1.35rem, 2vw, 1.65rem) !important;
    white-space: normal !important;
  }

  .masthead-search-form input {
    min-width: 210px !important;
  }
}

@media (min-width: 821px) {
  .site-header.is-compact .masthead-inner {
    min-height: 64px !important;
  }

  .site-header.is-compact .crest-mark {
    width: 58px !important;
    height: 58px !important;
  }

  .site-header.is-compact .crest-mark img {
    width: 48px !important;
    height: 48px !important;
  }

  .site-header.is-compact .seal-mark.seal-mark-inline {
    width: 54px !important;
    height: 54px !important;
  }

  .site-header.is-compact .seal-mark.seal-mark-inline img {
    width: 44px !important;
    height: 44px !important;
  }
}

/* ==========================================================================
   v75 - Responsive header clarity
   ========================================================================== */
.site-header {
  width: 100%;
}

.site-header .masthead-inner.container {
  min-width: 0;
}

.masthead-title {
  min-width: 0;
  padding-right: .4rem !important;
}

.masthead-title h1 {
  color: #041b14 !important;
  max-width: 100% !important;
  overflow: visible !important;
  overflow-wrap: break-word !important;
  text-overflow: clip !important;
  white-space: normal !important;
}

.masthead-tools {
  min-width: 0;
}

@media (min-width: 1181px) {
  .site-header .masthead-inner.container {
    width: min(100%, calc(100% - 5rem)) !important;
    grid-template-columns: 132px minmax(32rem, 1fr) minmax(390px, auto) !important;
    gap: 1.2rem !important;
  }

  .masthead-title h1 {
    font-size: clamp(1.85rem, 1.85vw, 2.32rem) !important;
    line-height: 1.08 !important;
    text-wrap: balance;
  }

  .masthead-search-form input {
    min-width: clamp(180px, 15vw, 260px) !important;
    width: clamp(180px, 15vw, 260px) !important;
  }

  .seal-mark.seal-mark-inline {
    width: 104px !important;
    height: 104px !important;
    margin-left: .2rem !important;
    margin-right: .35rem !important;
  }

  .seal-mark.seal-mark-inline img {
    width: 88px !important;
    height: 88px !important;
  }
}

@media (min-width: 821px) and (max-width: 1320px) {
  .site-header .masthead-inner.container {
    width: min(100%, calc(100% - 2rem)) !important;
    grid-template-columns: 96px minmax(0, 1fr) auto !important;
    gap: .85rem !important;
    min-height: 116px !important;
  }

  .crest-mark {
    width: 92px !important;
    height: 92px !important;
  }

  .crest-mark img {
    width: 78px !important;
    height: 78px !important;
  }

  .masthead-title h1 {
    font-size: clamp(1.25rem, 1.9vw, 1.72rem) !important;
    line-height: 1.16 !important;
    text-wrap: balance;
  }

  .masthead-kicker {
    font-size: .72rem !important;
  }

  .masthead-meta {
    font-size: .78rem !important;
  }

  .seal-mark.seal-mark-inline {
    width: 72px !important;
    height: 72px !important;
    margin-left: .1rem !important;
    margin-right: .25rem !important;
  }

  .seal-mark.seal-mark-inline img {
    width: 60px !important;
    height: 60px !important;
  }

  .masthead-search-form input {
    min-width: clamp(150px, 18vw, 210px) !important;
    width: clamp(150px, 18vw, 210px) !important;
    min-height: 46px !important;
    font-size: .92rem !important;
  }

  .masthead-search-form button {
    width: 46px !important;
    height: 46px !important;
  }

  .portal-link {
    min-height: 46px !important;
    padding: 0 .82rem !important;
    font-size: .9rem !important;
  }
}

@media (min-width: 821px) and (max-width: 1060px) {
  .site-header .masthead-inner.container {
    grid-template-columns: 82px minmax(0, 1fr) auto !important;
  }

  .masthead-search-form {
    display: none !important;
  }

  .masthead-title h1 {
    font-size: clamp(1.08rem, 2.15vw, 1.34rem) !important;
  }
}

@media (max-width: 820px) {
  .site-header .topbar-inner.container,
  .site-header .masthead-inner.container {
    width: min(100%, calc(100% - 1rem)) !important;
    max-width: none !important;
  }

  .topbar {
    max-height: none !important;
    overflow: visible !important;
  }

  .topbar-inner {
    justify-content: center !important;
    padding: .38rem 0 !important;
  }

  .topbar-list {
    justify-content: center !important;
    gap: .45rem .8rem !important;
  }

  .topbar-item,
  .topbar-item a,
  .topbar-text {
    font-size: .68rem !important;
    line-height: 1.25 !important;
  }

  .topbar-utility-group {
    display: none !important;
  }

  .masthead-inner {
    grid-template-columns: 56px minmax(0, 1fr) auto !important;
    gap: .48rem !important;
    min-height: 92px !important;
    padding-top: .5rem !important;
    padding-bottom: .5rem !important;
  }

  .crest-mark {
    width: 52px !important;
    height: 52px !important;
    padding: .24rem !important;
  }

  .crest-mark img {
    width: 44px !important;
    height: 44px !important;
  }

  .masthead-title h1 {
    font-size: clamp(.88rem, 4vw, 1.06rem) !important;
    line-height: 1.16 !important;
  }

  .masthead-kicker {
    font-size: .56rem !important;
    letter-spacing: .1em !important;
    white-space: normal !important;
  }

  .masthead-meta {
    font-size: .64rem !important;
    line-height: 1.25 !important;
  }

  .masthead-tools {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: .35rem !important;
  }

  .seal-mark.seal-mark-inline {
    display: none !important;
  }

  .mobile-search-btn {
    display: inline-grid !important;
    width: 40px !important;
    height: 40px !important;
    flex: 0 0 40px !important;
  }

  .menu-toggle {
    display: inline-flex !important;
    min-height: 40px !important;
    padding: 0 .68rem !important;
    border-radius: 10px !important;
  }

  .menu-toggle-label {
    display: none !important;
  }
}

@media (max-width: 420px) {
  .topbar-item-address {
    display: none !important;
  }

  .masthead-inner {
    grid-template-columns: 46px minmax(0, 1fr) auto !important;
    gap: .38rem !important;
  }

  .crest-mark {
    width: 44px !important;
    height: 44px !important;
  }

  .crest-mark img {
    width: 36px !important;
    height: 36px !important;
  }

  .masthead-title h1 {
    font-size: clamp(.78rem, 4.5vw, .96rem) !important;
  }

  .masthead-meta {
    font-size: .58rem !important;
  }
}

/* ==========================================================================
   v76 - Launch polish: stable header, cookie preferences, portal dashboard
   ========================================================================== */
.flag-stripe {
  display: block !important;
  height: 5px !important;
  min-height: 5px !important;
  opacity: 1 !important;
}

.site-header.is-compact .flag-stripe {
  height: 4px !important;
  min-height: 4px !important;
  max-height: 4px !important;
  opacity: 1 !important;
}

.site-header.is-hidden {
  transform: none !important;
}

.crest-mark,
.seal-mark {
  background: transparent !important;
  box-shadow: none !important;
  border-color: transparent !important;
}

.masthead {
  background: linear-gradient(180deg, #ffffff 0%, #f6fbf8 100%) !important;
}

.primary-nav {
  background: #eef8f2 !important;
}

.nav-inner > a.nav-item,
.nav-link-row > a {
  min-height: 40px;
}

.nav-item:focus-visible,
.nav-link-row a:focus-visible,
.mega-toggle:focus-visible,
.portal-cat-link:focus-visible,
.digital-link-chip:focus-visible,
.digital-suite-card:focus-visible {
  outline: 3px solid rgba(216, 177, 30, .55);
  outline-offset: 3px;
}

.cookie-banner {
  z-index: 70 !important;
  max-width: 1180px !important;
  border-left: 5px solid var(--green-900) !important;
}

.cookie-banner-actions .btn {
  white-space: nowrap;
}

.cookie-modal[hidden] {
  display: none !important;
}

.cookie-modal {
  position: fixed;
  inset: 0;
  z-index: 90;
  display: grid;
  place-items: center;
  padding: 1rem;
}

.cookie-modal-scrim {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(5, 24, 17, .48);
}

.cookie-modal-panel {
  position: relative;
  z-index: 1;
  width: min(560px, 100%);
  max-height: min(720px, calc(100svh - 2rem));
  overflow-y: auto;
  background: #fff;
  border: 1px solid rgba(8, 115, 72, .16);
  border-radius: 12px;
  box-shadow: 0 26px 76px rgba(4, 19, 14, .24);
  padding: 1.15rem;
}

.cookie-modal-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  padding-bottom: .85rem;
  border-bottom: 1px solid rgba(8, 115, 72, .1);
}

.cookie-modal-head h2 {
  margin: 0;
  color: var(--green-900);
  font-size: 1.35rem;
  line-height: 1.2;
}

.cookie-modal-close {
  width: 40px;
  height: 40px;
  display: inline-grid;
  place-items: center;
  border: 1px solid rgba(8, 115, 72, .14);
  border-radius: 10px;
  background: #f5faf7;
  color: var(--green-900);
  cursor: pointer;
}

.cookie-choice-list {
  display: grid;
  gap: .75rem;
  margin: 1rem 0;
}

.cookie-choice {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
  padding: .9rem;
  background: #f7fbf8;
  border: 1px solid rgba(8, 115, 72, .1);
  border-radius: 10px;
}

.cookie-choice strong,
.cookie-choice small {
  display: block;
}

.cookie-choice strong {
  color: #173425;
  line-height: 1.25;
}

.cookie-choice small,
.cookie-modal-note {
  color: #58665d;
  line-height: 1.45;
}

.cookie-choice input {
  width: 22px;
  height: 22px;
  accent-color: var(--green-900);
}

.cookie-modal-note a {
  color: var(--green-900);
  text-decoration: underline;
}

.cookie-modal-actions {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: .6rem;
  margin-top: 1rem;
}

.portal-dashboard-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1.25rem;
  align-items: center;
  padding: 1.35rem;
  background:
    linear-gradient(135deg, rgba(8, 115, 72, .08), rgba(216, 177, 30, .12)),
    #ffffff;
  border: 1px solid rgba(8, 115, 72, .14);
  border-radius: 12px;
  box-shadow: 0 14px 36px rgba(9, 25, 21, .08);
}

.portal-dashboard-copy h2 {
  margin: .2rem 0 .45rem;
  color: var(--green-900);
  font-size: clamp(1.35rem, 2.4vw, 2rem);
}

.portal-dashboard-copy p:last-child {
  margin-bottom: 0;
  color: #41554a;
}

.portal-dashboard-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  justify-content: flex-end;
}

.portal-cat-grid {
  align-items: stretch;
}

.portal-cat-panel {
  border-radius: 10px !important;
  box-shadow: 0 10px 30px rgba(9, 25, 21, .08) !important;
}

.portal-cat-link {
  min-height: 64px;
}

@media (max-width: 820px) {
  .site-header .masthead-inner.container {
    grid-template-columns: 48px minmax(0, 1fr) auto !important;
  }

  .portal-link {
    display: inline-flex !important;
    min-height: 38px !important;
    height: 38px !important;
    padding: 0 .62rem !important;
    border-radius: 8px !important;
    font-size: .78rem !important;
    flex: 0 0 auto !important;
  }

  .mobile-search-btn {
    width: 38px !important;
    height: 38px !important;
    flex-basis: 38px !important;
  }

  .menu-toggle {
    width: 38px !important;
    min-height: 38px !important;
    padding: 0 !important;
  }

  .masthead-title {
    padding-right: .15rem !important;
  }

  .masthead-title h1 {
    text-wrap: pretty;
  }

  .primary-nav {
    background: #f6fbf8 !important;
  }

  .nav-drawer-head {
    padding-top: 1rem !important;
  }

  .nav-inner > a.nav-item,
  .nav-link-row > a,
  .mega-toggle {
    min-height: 48px !important;
    border-radius: 10px !important;
  }

  .cookie-banner {
    bottom: calc(.75rem + env(safe-area-inset-bottom, 0px)) !important;
    max-height: min(46vh, 300px) !important;
  }

  .cookie-banner-actions {
    display: grid !important;
    grid-template-columns: 1fr;
  }

  .cookie-modal {
    align-items: end;
    padding: .75rem;
  }

  .cookie-modal-panel {
    width: 100%;
    max-height: min(82svh, 680px);
    border-radius: 12px;
  }

  .cookie-modal-actions,
  .portal-dashboard-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .portal-dashboard-panel {
    grid-template-columns: 1fr;
    padding: 1rem;
  }
}

@media (max-width: 430px) {
  .site-header .masthead-inner.container {
    grid-template-columns: 42px minmax(0, 1fr) !important;
    grid-template-areas:
      "crest title"
      "tools tools" !important;
    width: min(100%, calc(100% - .6rem)) !important;
    row-gap: .32rem !important;
  }

  .crest-mark {
    grid-area: crest !important;
    align-self: center !important;
  }

  .masthead-title {
    grid-area: title !important;
    align-self: center !important;
    padding-right: 0 !important;
  }

  .mobile-search-btn {
    display: none !important;
  }

  .masthead-tools {
    grid-area: tools !important;
    justify-content: flex-end !important;
    width: 100% !important;
  }

  .portal-link {
    min-height: 36px !important;
    height: 36px !important;
    padding: 0 .5rem !important;
    font-size: .72rem !important;
  }

  .menu-toggle {
    width: 36px !important;
    min-height: 36px !important;
  }

  .masthead-title h1 {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    font-size: clamp(.84rem, 4vw, .98rem) !important;
    line-height: 1.12 !important;
    white-space: normal !important;
    overflow: visible !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
    text-wrap: balance;
  }

  .masthead-kicker {
    display: none !important;
  }
}

/* ==========================================================================
   v78b - iPhone header and navigation final override
   ========================================================================== */
@media (max-width: 820px) {
  .site-header {
    position: relative !important;
    z-index: 60 !important;
  }

  .masthead {
    min-height: 0 !important;
    padding: 0 !important;
  }

  .site-header .masthead-inner.container {
    display: grid !important;
    grid-template-columns: 48px minmax(0, 1fr) auto !important;
    grid-template-areas: "crest title tools" !important;
    align-items: center !important;
    gap: .55rem !important;
    width: min(100%, calc(100% - .85rem)) !important;
    min-height: 96px !important;
    padding: .55rem 0 !important;
  }

  .crest-mark {
    grid-area: crest !important;
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
    align-self: center !important;
  }

  .crest-mark img {
    width: 40px !important;
    height: 40px !important;
  }

  .masthead-title {
    grid-area: title !important;
    display: block !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  .masthead-kicker {
    display: block !important;
    margin: 0 0 .12rem !important;
    color: #006b45 !important;
    font-size: .54rem !important;
    line-height: 1.05 !important;
    letter-spacing: .12em !important;
  }

  .masthead-title h1 {
    display: block !important;
    margin: 0 !important;
    color: #031c14 !important;
    font-size: clamp(.78rem, 3.45vw, 1rem) !important;
    line-height: 1.14 !important;
    font-weight: 800 !important;
    letter-spacing: 0 !important;
    max-width: 100% !important;
    opacity: 1 !important;
    overflow: visible !important;
    overflow-wrap: break-word !important;
    text-overflow: clip !important;
    white-space: normal !important;
  }

  .masthead-meta {
    display: block !important;
    margin: .14rem 0 0 !important;
    color: #65736d !important;
    font-size: .58rem !important;
    line-height: 1.15 !important;
  }

  .masthead-tools {
    grid-area: tools !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: .35rem !important;
    width: auto !important;
    min-width: 0 !important;
  }

  .seal-mark-inline,
  .masthead-search-form {
    display: none !important;
  }

  .portal-link {
    display: inline-flex !important;
    min-height: 38px !important;
    height: 38px !important;
    padding: 0 .56rem !important;
    border-radius: 9px !important;
    font-size: .74rem !important;
    flex: 0 0 auto !important;
  }

  .mobile-search-btn {
    display: none !important;
  }

  .menu-toggle {
    display: inline-flex !important;
    width: 38px !important;
    min-width: 38px !important;
    height: 38px !important;
    min-height: 38px !important;
    padding: 0 !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 9px !important;
    flex: 0 0 38px !important;
  }

  .menu-toggle-label {
    display: none !important;
  }

  .primary-nav {
    position: fixed !important;
    inset: 0 auto 0 0 !important;
    z-index: 80 !important;
    width: min(86vw, 340px) !important;
    max-width: 340px !important;
    height: 100svh !important;
    overflow-y: auto !important;
    padding: max(.85rem, env(safe-area-inset-top)) .85rem .85rem !important;
    background: #ffffff !important;
    border-right: 1px solid rgba(8,115,72,.15) !important;
    box-shadow: 22px 0 54px rgba(4, 24, 16, .22) !important;
    transform: translateX(-105%) !important;
    transition: transform .24s ease !important;
  }

  .primary-nav.is-open {
    transform: translateX(0) !important;
  }

  .nav-drawer-head {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: .25rem 0 .85rem !important;
    border-bottom: 1px solid rgba(8,115,72,.12) !important;
    margin-bottom: .75rem !important;
  }

  .nav-inner.container {
    width: 100% !important;
    max-width: none !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .45rem !important;
    overflow: visible !important;
    padding: 0 !important;
  }

  .nav-inner > a.nav-item,
  .nav-link-row,
  .nav-link-row > a {
    width: 100% !important;
  }

  .nav-inner > a.nav-item,
  .nav-link-row > a {
    display: flex !important;
    align-items: center !important;
    min-height: 44px !important;
    padding: .72rem .78rem !important;
    border: 1px solid rgba(8,115,72,.1) !important;
    border-radius: 8px !important;
    color: #10281d !important;
    background: #f8fbf9 !important;
    font-size: .94rem !important;
    line-height: 1.2 !important;
    white-space: normal !important;
  }

  .nav-item-mega {
    display: grid !important;
    gap: .35rem !important;
  }

  .nav-link-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 44px !important;
    gap: .35rem !important;
    align-items: stretch !important;
  }

  .mega-toggle {
    min-height: 44px !important;
    width: 44px !important;
    border-radius: 8px !important;
    background: #eef8f2 !important;
    border: 1px solid rgba(8,115,72,.12) !important;
  }
}

@media (max-width: 430px) {
  .site-header .masthead-inner.container {
    grid-template-columns: 42px minmax(0, 1fr) auto !important;
    gap: .44rem !important;
    min-height: 104px !important;
    width: min(100%, calc(100% - .7rem)) !important;
  }

  .crest-mark {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
  }

  .crest-mark img {
    width: 34px !important;
    height: 34px !important;
  }

  .masthead-title h1 {
    font-size: clamp(.72rem, 3.55vw, .9rem) !important;
    line-height: 1.16 !important;
  }

  .masthead-meta {
    font-size: .54rem !important;
  }

  .portal-link {
    height: 36px !important;
    min-height: 36px !important;
    padding: 0 .48rem !important;
    font-size: .7rem !important;
  }

  .menu-toggle {
    width: 36px !important;
    min-width: 36px !important;
    height: 36px !important;
    min-height: 36px !important;
    flex-basis: 36px !important;
  }
}
/* Launch QA overrides */
.ab-leaders-cta .v2-btn-outline,
.ab-btn-white,
.ab-strategy-direction .v2-btn-outline,
.ab-cta-card--primary .v2-btn {
  background: #fff !important;
  border-color: #fff !important;
  color: #073b26 !important;
}

.ab-cta-card--primary {
  background: linear-gradient(135deg, #0b5a38, #087348) !important;
  color: #fff !important;
}

.ab-cta-card--primary h3,
.ab-cta-card--primary p,
.ab-cta-card--primary .ab-cta-icon {
  color: #fff !important;
}

.ddt-hod-name,
.ddt-head-info h2,
.ddt-related-hod span {
  font-size: clamp(1.08rem, 1.7vw, 1.55rem);
  letter-spacing: 0;
  position: relative;
}

.ddt-hod-name::before,
.ddt-hod-name::after,
.ddt-head-info h2::before,
.ddt-head-info h2::after {
  content: "✦";
  color: #d8aa3a;
  font-size: .72em;
  margin: 0 .35rem;
  vertical-align: .12em;
}

.rc-dept-filter {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  padding: .85rem 0 1rem;
}

.rc-dept-filter a {
  border: 1px solid rgba(7, 59, 38, .18);
  border-radius: 999px;
  color: #073b26;
  background: #fff;
  font-weight: 700;
  padding: .45rem .72rem;
  text-decoration: none;
}

.rc-dept-filter a.is-active {
  background: #087348;
  border-color: #087348;
  color: #fff;
}

.language-library {
  display: grid;
  gap: .35rem;
  margin-top: 1rem;
  max-width: 260px;
}

.language-library label {
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
}

.language-library select {
  width: 100%;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 6px;
  background: rgba(255,255,255,.08);
  color: #fff;
  padding: .55rem .65rem;
}

.language-library option {
  color: #102019;
}

.contact-layout-upgraded .section-header p,
.contact-panel p {
  line-height: 1.45;
}

.contact-channel-card,
.contact-summary-card,
.contact-primary-card-v2 {
  border-radius: 8px;
}

.ab-strategy-pillar {
  text-decoration: none;
}

.ddt-sub-card {
  min-height: auto !important;
}

.ddt-sub-card-top {
  align-items: center !important;
}

.ddt-sub-details h3 {
  margin: 0 !important;
}

.ddt-sub-preview,
.ddt-sub-list,
.ddt-sub-toggle {
  display: none !important;
}

.ddt-form-link-section {
  padding: 2rem 0;
  background: #fff;
}

.ddt-form-link-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  border: 1px solid rgba(8, 115, 72, .18);
  border-radius: 8px;
  padding: 1.25rem;
  background: #fff;
  box-shadow: 0 10px 26px rgba(15, 23, 42, .06);
}

.ddt-form-link-panel h2 {
  margin: .2rem 0 0;
  color: #101820;
}

.ddt-cta-card--primary,
.ab-cta-card--primary,
.dp-cta-card--primary,
.supt-cta-card--primary,
.rc-cta-card--primary,
.v2-qa-card,
.contact-summary-card,
.contact-channel-card {
  background: #fff !important;
  border: 1px solid rgba(8, 115, 72, .18) !important;
  color: #101820 !important;
}

.ddt-cta-card--primary h3,
.ddt-cta-card--primary p,
.ab-cta-card--primary h3,
.ab-cta-card--primary p,
.dp-cta-card--primary h3,
.dp-cta-card--primary p,
.supt-cta-card--primary h3,
.supt-cta-card--primary p,
.rc-cta-card--primary h3,
.rc-cta-card--primary p,
.v2-qa-card,
.v2-qa-card span,
.contact-summary-card h3,
.contact-summary-card p,
.contact-channel-card h3,
.contact-channel-card p {
  color: #101820 !important;
}

.ddt-cta-card--primary .ddt-cta-icon,
.ab-cta-card--primary .ab-cta-icon,
.dp-cta-card--primary .dp-cta-icon,
.supt-cta-card--primary .supt-cta-icon,
.rc-cta-card--primary .rc-cta-icon {
  background: rgba(8, 115, 72, .08) !important;
  color: #087348 !important;
}

.ddt-cta-card--primary .v2-btn,
.ab-cta-card--primary .v2-btn,
.dp-cta-card--primary .v2-btn,
.supt-cta-card--primary .v2-btn,
.rc-cta-card--primary .v2-btn {
  background: #087348 !important;
  border-color: #087348 !important;
  color: #fff !important;
}
/* Principal officer org chart */
.org-chart-section {
  padding: clamp(2.5rem, 5vw, 4.5rem) 0;
  background: #f7f9f6;
}
.org-chart-section--compact {
  padding: clamp(2rem, 4vw, 3.25rem) 0;
}
.org-chart-head {
  max-width: 820px;
  margin: 0 auto 1.8rem;
  text-align: center;
}
.org-chart-head h2 {
  margin: .25rem 0 .55rem;
  color: #101815;
}
.org-chart-head p:last-child {
  margin: 0;
  color: #4b5a52;
}
.org-chart {
  display: grid;
  justify-items: center;
}
.org-chain {
  display: grid;
  justify-items: center;
  width: min(100%, 680px);
}
.org-card {
  width: min(100%, 560px);
  display: grid;
  grid-template-columns: 92px 1fr;
  gap: 1rem;
  align-items: center;
  background: #fff;
  border: 1px solid #dfe7df;
  border-left: 5px solid #12824c;
  border-radius: 10px;
  padding: 1rem;
  box-shadow: 0 14px 34px rgba(17, 24, 39, .08);
}
.org-card--chief {
  width: 100%;
  border-left-color: #d8b11e;
}
.org-photo-wrap {
  width: 82px;
  height: 82px;
}
.org-photo {
  width: 82px;
  height: 82px;
  border-radius: 999px;
  object-fit: cover;
  display: grid;
  place-items: center;
  background: #e8f2ec;
  color: #0d5f39;
  font-weight: 800;
  border: 3px solid #fff;
  box-shadow: 0 0 0 1px #cfd9d2;
}
.org-title {
  margin: 0 0 .25rem;
  color: #0d5f39;
  font-weight: 800;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .03em;
}
.org-copy h3 {
  margin: 0;
  color: #101815;
  font-size: clamp(1rem, 1.6vw, 1.18rem);
}
.org-department {
  display: inline-block;
  margin-top: .25rem;
  color: #5d6b63;
  font-size: .86rem;
}
.org-summary {
  margin: .45rem 0 0;
  color: #536159;
  font-size: .9rem;
  line-height: 1.45;
}
.org-downline,
.org-child-line {
  width: 2px;
  height: 30px;
  background: #12824c;
}
.org-split-line {
  width: min(68%, 620px);
  height: 34px;
  border-top: 2px solid #12824c;
  border-left: 2px solid #12824c;
  border-right: 2px solid #12824c;
  margin-top: 0;
}
.org-chief-grid {
  width: min(100%, 1100px);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1rem, 3vw, 2rem);
  align-items: start;
}
.org-chief-column {
  display: grid;
  justify-items: center;
}
.org-directorates {
  width: 100%;
  display: grid;
  gap: .65rem;
}
.org-directorate-card {
  background: #fff;
  border: 1px solid #e2e8e2;
  border-radius: 8px;
  padding: .75rem .85rem;
  box-shadow: 0 8px 20px rgba(17, 24, 39, .05);
}
.org-directorate-card strong,
.org-directorate-card span,
.org-directorate-card small {
  display: block;
}
.org-directorate-card strong {
  color: #101815;
  font-size: .92rem;
}
.org-directorate-card span {
  margin-top: .2rem;
  color: #536159;
  font-size: .86rem;
}
.org-directorate-card small {
  margin-top: .2rem;
  color: #12824c;
  font-weight: 700;
}
@media (max-width: 760px) {
  .org-card {
    grid-template-columns: 72px 1fr;
    padding: .85rem;
  }
  .org-photo-wrap,
  .org-photo {
    width: 64px;
    height: 64px;
  }
  .org-split-line {
    width: 2px;
    height: 28px;
    border: 0;
    background: #12824c;
  }
  .org-chief-grid {
    grid-template-columns: 1fr;
  }
}

/* v82 - EOF mobile header/nav authority */
@media (max-width: 820px) {
  html, body {
    max-width: 100% !important;
    overflow-x: hidden !important;
  }
  body {
    padding-top: 0 !important;
  }
  .site-header,
  .site-header.is-hidden {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    transform: none !important;
  }
  .topbar,
  .seal-mark-inline,
  .masthead-search-form,
  .mobile-search-btn,
  .menu-toggle-label {
    display: none !important;
  }
  .site-header .masthead-inner.container {
    display: grid !important;
    grid-template-columns: 42px minmax(0, 1fr) auto !important;
    grid-template-areas: "crest title tools" !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 82px !important;
    margin: 0 !important;
    padding: .5rem .75rem !important;
    gap: .45rem !important;
    align-items: center !important;
  }
  .crest-mark {
    width: 40px !important;
    min-width: 40px !important;
    height: 40px !important;
  }
  .crest-mark img {
    width: 36px !important;
    height: 36px !important;
  }
  .masthead-title,
  .masthead-title h1 {
    min-width: 0 !important;
    max-width: 100% !important;
  }
  .masthead-title h1 {
    font-size: clamp(.76rem, 3.2vw, .96rem) !important;
    line-height: 1.13 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }
  .masthead-kicker {
    display: block !important;
    font-size: .54rem !important;
    line-height: 1.05 !important;
    margin: 0 0 .12rem !important;
  }
  .masthead-meta {
    display: block !important;
    font-size: .56rem !important;
    line-height: 1.12 !important;
    margin: .14rem 0 0 !important;
  }
  .portal-link {
    display: inline-flex !important;
    height: 38px !important;
    min-height: 38px !important;
    padding: 0 .52rem !important;
    font-size: .72rem !important;
    border-radius: 9px !important;
  }
  .menu-toggle {
    display: inline-flex !important;
    width: 38px !important;
    min-width: 38px !important;
    height: 38px !important;
    min-height: 38px !important;
    padding: 0 !important;
    flex: 0 0 38px !important;
  }
  .primary-nav {
    position: fixed !important;
    inset: 0 auto 0 0 !important;
    display: block !important;
    width: min(100vw, 360px) !important;
    max-width: calc(100vw - 16px) !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    padding: 0 !important;
    overflow: hidden !important;
    transform: translateX(-105%) !important;
    background: #fff !important;
    z-index: 3000 !important;
    touch-action: pan-y !important;
  }
  .primary-nav.is-open {
    transform: translateX(0) !important;
  }
  .nav-drawer-head {
    display: flex !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 2 !important;
    min-height: 64px !important;
    padding: max(.85rem, env(safe-area-inset-top)) 1rem .75rem !important;
    background: #fff !important;
  }
  .nav-inner.container {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: calc(100dvh - 64px) !important;
    max-height: calc(100dvh - 64px) !important;
    margin: 0 !important;
    padding: .35rem 0 calc(2rem + env(safe-area-inset-bottom)) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }
  .nav-inner > a.nav-item,
  .nav-link-row {
    display: flex !important;
    width: 100% !important;
    min-height: 46px !important;
    padding: .7rem 1rem !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    font-size: .92rem !important;
    line-height: 1.25 !important;
  }
  .nav-item-mega,
  .nav-link-row > a {
    width: 100% !important;
    min-width: 0 !important;
    white-space: normal !important;
  }
  .nav-item-mega .mega-menu {
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    max-height: none !important;
    overflow: visible !important;
    box-shadow: none !important;
    border: 0 !important;
    padding: .75rem 1rem 1rem !important;
    background: #f8faf7 !important;
  }
  .mega-tabs {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .85rem !important;
  }
  .mega-menu-intro,
  .mega-menu-close-btn {
    display: none !important;
  }
  .mega-menu li a {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }
}

@media (max-width: 390px) {
  .site-header .masthead-inner.container {
    grid-template-columns: 34px minmax(0, 1fr) auto !important;
    gap: .34rem !important;
    padding-inline: .55rem !important;
  }
  .crest-mark,
  .crest-mark img {
    width: 32px !important;
    min-width: 32px !important;
    height: 32px !important;
  }
  .masthead-title h1 {
    font-size: .72rem !important;
  }
  .masthead-meta {
    display: none !important;
  }
  .portal-link {
    width: 34px !important;
    min-width: 34px !important;
    padding: 0 !important;
    font-size: 0 !important;
  }
  .portal-link::before {
    content: "P";
    font-size: .8rem;
    font-weight: 800;
  }
}

/* v86 - Final cookie contrast authority */
.cookie-banner,
.cookie-modal-panel,
.cookie-choice {
  background: #ffffff !important;
  color: #102019 !important;
  opacity: 1 !important;
  backdrop-filter: none !important;
}

.cookie-banner {
  border: 1px solid rgba(8, 115, 72, .22) !important;
  border-left: 6px solid #087348 !important;
  box-shadow: 0 18px 48px rgba(15, 23, 42, .2) !important;
}

.cookie-banner *,
.cookie-modal-panel *,
.cookie-choice * {
  color: #102019 !important;
  opacity: 1 !important;
  text-shadow: none !important;
}

.cookie-banner .mini-kicker,
.cookie-modal-panel .mini-kicker,
.cookie-banner a,
.cookie-modal-panel a {
  color: #087348 !important;
}

.cookie-banner .btn-primary,
.cookie-modal-panel .btn-primary {
  background: #087348 !important;
  border-color: #087348 !important;
  color: #ffffff !important;
}

.cookie-banner .btn-primary *,
.cookie-modal-panel .btn-primary * {
  color: #ffffff !important;
}

.cookie-banner .btn-secondary,
.cookie-modal-panel .btn-secondary {
  background: #ffffff !important;
  border: 1px solid rgba(8, 115, 72, .24) !important;
  color: #102019 !important;
}

.cookie-modal {
  z-index: 5000 !important;
}

.cookie-modal-scrim {
  background: rgba(5, 17, 12, .58) !important;
}

@media (max-width: 700px) {
  .cookie-banner {
    left: .75rem !important;
    right: .75rem !important;
    bottom: calc(.75rem + env(safe-area-inset-bottom, 0px)) !important;
    max-height: min(72dvh, 560px) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    padding: 1rem !important;
  }

  .cookie-banner p {
    font-size: .86rem !important;
    line-height: 1.45 !important;
  }

  .cookie-banner-actions,
  .cookie-modal-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .55rem !important;
  }

  .cookie-modal {
    align-items: end !important;
    padding: .75rem !important;
  }

  .cookie-modal-panel {
    width: 100% !important;
    max-height: calc(88dvh - env(safe-area-inset-bottom, 0px)) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    padding: 1rem !important;
    border-radius: 14px !important;
  }
}
