:root {
    /* Bright "sunrise" palette (2026-09-28). The legacy token names are kept so
       existing rules follow the new theme; --heritage-green* now carry the warm
       primary and --leaf is the fresh green accent. */
    --heritage-orange: #ff7a1a;
    --heritage-orange-dark: #c2410c;
    --heritage-gold: #ffc233;
    --heritage-green: #c2410c;
    --heritage-green-dark: #9a3412;
    --heritage-blue: #0e9fc4;
    --heritage-ink: #3b2416;
    --heritage-muted: #7a5a46;
    --heritage-paper: #ffffff;
    --heritage-cream: #fff5e9;
    --heritage-line: #f5d9ba;
    --heritage-shadow: 0 4px 18px rgba(194, 65, 12, 0.10);
    --heritage-shadow-lg: 0 10px 34px rgba(194, 65, 12, 0.16);
    --sun-peach: #ffe9d2;
    --sun-coral: #ff5d3a;
    --sun-gradient: linear-gradient(135deg, #ff9a3c 0%, #f76707 45%, #c2410c 100%);
    --sun-ribbon: linear-gradient(180deg, #b8410f 0%, #8a2c0c 100%);
    --sea: #13b5c8;
    --leaf: #15803d;
    --leaf-bright: #22b35e;
    /* Type scale: every public font-size maps to one of these steps. */
    --fs-2xs: .75rem;
    --fs-xs: .8125rem;
    --fs-sm: .875rem;
    --fs-base: 1rem;
    --fs-md: 1.125rem;
    --fs-lg: 1.25rem;
    --fs-xl: 1.5rem;
    --fs-2xl: 2rem;
    --fs-3xl: 2.5rem;
    --font-scale: 1;
    --portal-shell: min(1260px, calc(100% - 2rem));
    --font-thai: 'IBM Plex Sans Thai', 'IBM Plex Sans', 'Leelawadee UI', sans-serif;
    --font-latin: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, sans-serif;
}

* { box-sizing: border-box; }

html {
    scroll-behavior: smooth;
    scroll-padding-top: 7rem;
    font-size: calc(16px * var(--font-scale));
}

html[data-font-scale="small"] { --font-scale: 0.92; }
html[data-font-scale="large"] { --font-scale: 1.1; }

body {
    margin: 0;
    color: var(--heritage-ink);
    background: var(--heritage-paper);
    font-family: var(--font-thai);
    font-size: var(--fs-base);
    line-height: 1.75;
    font-weight: 400;
    letter-spacing: -0.01em;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body:lang(en) {
    font-family: var(--font-latin);
    letter-spacing: -0.01em;
}

body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-underline-offset: 0.18em; }
button, input, select, textarea { font: inherit; }
:focus-visible { outline: 3px solid var(--heritage-gold); outline-offset: 3px; }

.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* Institutional Icons (CSS-drawn, No Emojis) */
.icon-search {
    display: inline-block;
    width: 0.8em;
    height: 0.8em;
    border: 1.5px solid currentColor;
    border-radius: 50%;
    position: relative;
    vertical-align: -0.1em;
    box-sizing: border-box;
}
.icon-search::after {
    content: "";
    position: absolute;
    bottom: -2.5px;
    right: -2.5px;
    width: 3.5px;
    height: 1.5px;
    background: currentColor;
    transform: rotate(45deg);
}

.icon-menu {
    display: inline-block;
    width: 1.1em;
    height: 0.8em;
    border-top: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    position: relative;
    vertical-align: -0.05em;
    box-sizing: border-box;
}
.icon-menu::before {
    content: "";
    position: absolute;
    top: calc(50% - 1px);
    left: 0;
    right: 0;
    height: 2px;
    background: currentColor;
}

.icon-arrow-up {
    display: inline-block;
    width: 0.6rem;
    height: 0.6rem;
    border-top: 2.5px solid currentColor;
    border-left: 2.5px solid currentColor;
    transform: rotate(45deg);
    position: relative;
    top: 2px;
}

.icon-arrow,
.icon-arrow-right {
    display: inline-block;
    width: 0.45rem;
    height: 0.45rem;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    transform: rotate(45deg);
    vertical-align: 0.08em;
    margin-left: 0.25rem;
}

.icon-arrow-left {
    display: inline-block;
    width: 0.45rem;
    height: 0.45rem;
    border-bottom: 2px solid currentColor;
    border-left: 2px solid currentColor;
    transform: rotate(45deg);
    vertical-align: 0.08em;
    margin-right: 0.35rem;
}

.icon-external {
    display: inline-block;
    width: 0.5rem;
    height: 0.5rem;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    transform: rotate(45deg);
    position: relative;
}

.icon-doc, .icon-chart, .icon-sitemap, .icon-user {
    display: inline-block;
    width: 0.85rem;
    height: 0.85rem;
    vertical-align: -0.1em;
    box-sizing: border-box;
}
.icon-doc {
    border: 1.5px solid currentColor;
    border-radius: 1px;
}
.icon-chart {
    border-bottom: 1.5px solid currentColor;
    border-left: 1.5px solid currentColor;
    position: relative;
}
.icon-sitemap {
    border: 1.5px solid currentColor;
    border-radius: 2px;
}
.icon-user {
    border: 1.5px solid currentColor;
    border-radius: 50%;
}

.portal-shell { width: var(--portal-shell); margin-inline: auto; }

.skip-link {
    position: fixed;
    z-index: 1000;
    top: 0.75rem;
    left: 0.75rem;
    padding: 0.65rem 1rem;
    color: #fff;
    background: #111;
    transform: translateY(-150%);
}

.skip-link:focus { transform: translateY(0); }

.memorial-ribbon {
    position: fixed;
    z-index: 210;
    top: 0;
    left: 0;
    width: 5.75rem;
    height: auto;
    pointer-events: none;
}

.office-strip {
    position: relative;
    z-index: 110;
    color: #fff;
    background: var(--heritage-green-dark);
    font-size: var(--fs-xs);
}

.office-strip__inner {
    min-height: 2.35rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.office-strip a { color: #fff; text-decoration: none; }
.office-strip i { margin-inline: 0.45rem; font-style: normal; opacity: 0.55; }
.office-strip__actions { display: flex; align-items: center; }

.portal-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: url('/assets/images/bg-sky.png') center top / cover no-repeat, linear-gradient(180deg, #c8e6f8 0%, #e8f4fc 100%);
    border-bottom: 4px solid var(--heritage-green);
}

.portal-header.is-scrolled {
    background: rgba(255, 255, 255, 0.97);
    box-shadow: 0 8px 24px rgba(59, 37, 17, 0.16);
    backdrop-filter: blur(12px);
}

.portal-header__inner {
    min-height: 5.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-block: 0.5rem;
}

.portal-brand {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    color: var(--heritage-green-dark);
    text-decoration: none;
    flex-shrink: 0;
}

.portal-brand img { object-fit: contain; }
.portal-brand__seal { width: 4.5rem; height: 4.5rem; flex-shrink: 0; filter: drop-shadow(0 1px 4px rgba(0,0,0,.2)); }
.portal-brand__name { height: 4.1rem; width: auto; max-width: 28rem; filter: drop-shadow(0 1px 2px rgba(255,255,255,.5)); }

.portal-navigation {
    min-height: 3.8rem;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.15rem;
    padding: 0.35rem 1rem;
    color: #fff;
    background: var(--heritage-green-dark);
    border-radius: 4px;
    box-shadow: 0 4px 16px rgba(154, 52, 18, 0.22);
}

.portal-navigation a {
    padding: 0.5rem 0.8rem;
    border-radius: 3px;
    color: #fff;
    font-size: var(--fs-sm);
    font-weight: 700;
    text-decoration: none;
    transition: background 0.15s ease;
}

.portal-navigation a:hover,
.portal-navigation a[aria-current="page"] { background: rgba(255, 255, 255, 0.16); }

.nav-item {
    position: relative;
    display: flex;
    align-items: center;
}

.nav-item > a { flex: 1; }

.nav-item__toggle {
    display: none;
    width: 2.2rem;
    height: 2.2rem;
    place-items: center;
    padding: 0;
    color: #fff;
    background: rgba(255, 255, 255, 0.14);
    border: 0;
    border-radius: 3px;
    cursor: pointer;
    transition: background 0.15s ease;
}

.nav-item__toggle:hover { background: rgba(255, 255, 255, 0.26); }

.nav-item__toggle span::before {
    content: "\25BE";
    font-size: var(--fs-sm);
    line-height: 1;
}

.nav-item__toggle[aria-expanded="true"] span::before { content: "\25B4"; }

.nav-dropdown {
    position: absolute;
    z-index: 120;
    top: 100%;
    left: 50%;
    min-width: 14.5rem;
    display: grid;
    padding: 0.4rem 0;
    background: #fff;
    border: 1px solid var(--heritage-line);
    border-top: 3px solid var(--heritage-gold);
    border-radius: 0 0 4px 4px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.12);
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, 0.4rem);
    transition: opacity 0.15s ease, transform 0.15s ease;
    max-height: min(70vh, 40rem);
    overflow-y: auto;
    overscroll-behavior: contain;
}

.nav-item:hover > .nav-dropdown,
.nav-item:focus-within > .nav-dropdown,
.nav-item.is-open > .nav-dropdown {
    opacity: 1;
    pointer-events: auto;
    transform: translate(-50%, 0);
}

.portal-navigation > .nav-item:last-child > .nav-dropdown {
    right: 0;
    left: auto;
    transform: translate(0, 0.4rem);
}

.portal-navigation > .nav-item:last-child:hover > .nav-dropdown,
.portal-navigation > .nav-item:last-child:focus-within > .nav-dropdown,
.portal-navigation > .nav-item:last-child.is-open > .nav-dropdown { transform: translate(0, 0); }

.nav-dropdown a {
    display: block;
    padding: 0.55rem 1.15rem;
    color: var(--heritage-ink) !important;
    background: transparent !important;
    border-radius: 0 !important;
    font-size: var(--fs-sm);
    font-weight: 500;
    white-space: nowrap;
    text-decoration: none;
    transition: background 0.12s ease, color 0.12s ease;
}

.nav-dropdown a:hover {
    color: var(--heritage-green-dark) !important;
    background: #fff1e3 !important;
}

.portal-menu-toggle {
    display: none;
    min-height: 2.6rem;
    align-items: center;
    gap: 0.4rem;
    padding: 0.5rem 0.85rem;
    color: #fff;
    background: var(--heritage-green-dark);
    border: 0;
    border-radius: 4px;
    cursor: pointer;
}

.heritage-hero {
    position: relative;
    width: 100%;
    min-height: clamp(24rem, 36.56vw, 42rem);
    overflow: hidden;
    background: #eaf4fb;
}

.heritage-hero--video { min-height: 0; }
.heritage-hero__frame { position: relative; width: 100%; aspect-ratio: 16 / 5; overflow: hidden; }
.heritage-hero__frame picture, .heritage-hero__frame img, .heritage-hero__frame video {
    display: block; position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain;
}
.heritage-hero__frame video[hidden] { display: none; }
.heritage-hero--video .heritage-hero__badges {
    position: static; display: flex; justify-content: center; padding: 0.65rem 0.75rem;
    background: #fff; border-bottom: 1px solid var(--heritage-line);
}
@media (max-width: 1024px) { .heritage-hero__frame { aspect-ratio: 8 / 3; } }
@media (max-width: 600px) { .heritage-hero__frame { aspect-ratio: 16 / 9; } }

.heritage-hero__image {
    position: absolute;
    inset: 0;
    background-image: url("../images/head.jpg");
    background-position: center top;
    background-size: cover;
    background-repeat: no-repeat;
}

.heritage-hero__image::after {
    display: none;
}

.heritage-hero__welcome {
    display: none;
}

.heritage-hero__badges {
    position: absolute;
    z-index: 3;
    top: 2rem;
    right: max(1.5rem, calc((100vw - 1260px) / 2));
    display: flex;
    gap: 0.75rem;
}

.heritage-hero__badges a {
    width: 11rem;
    min-height: 4.2rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0.6rem 0.95rem;
    color: var(--heritage-green-dark);
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, 0.9);
    border-left: 4px solid var(--heritage-green);
    border-radius: 6px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
    text-decoration: none;
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.heritage-hero__badges a:hover {
    transform: translateY(-2px);
    background: #ffffff;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.16);
}

.heritage-hero__badges b {
    color: var(--heritage-green-dark);
    font-size: var(--fs-lg);
    line-height: 1.1;
    font-weight: 700;
}

.heritage-hero__badges span {
    font-size: var(--fs-xs);
    font-weight: 600;
    color: var(--heritage-muted);
}

.access-ribbon {
    position: fixed;
    z-index: 150;
    top: 50%;
    left: 0;
    width: auto;
    max-width: 10rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.75rem 0.65rem;
    color: #fff;
    background: #5a2410;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-left: 0;
    border-radius: 0 6px 6px 0;
    box-shadow: 4px 4px 18px rgba(0, 0, 0, 0.22);
    transform: translateY(-50%);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.access-ribbon.is-collapsed {
    transform: translate(-100%, -50%);
}

.access-ribbon .access-ribbon__toggle {
    position: absolute;
    top: 50%;
    right: -1.85rem;
    left: auto;
    width: 1.85rem;
    height: 2.8rem;
    display: grid;
    place-items: center;
    padding: 0;
    color: #fff;
    background: var(--heritage-green-dark);
    border: 1.5px solid var(--heritage-gold);
    border-left: 0;
    border-radius: 0 5px 5px 0;
    cursor: pointer;
    box-shadow: 3px 2px 10px rgba(0, 0, 0, 0.3);
    transform: translateY(-50%);
    transition: background 0.15s ease, transform 0.15s ease;
}

.access-ribbon .access-ribbon__toggle:hover {
    background: var(--heritage-green);
    color: #fff;
}

.access-ribbon .access-ribbon__toggle span {
    display: grid;
    place-items: center;
    pointer-events: none;
}

/* Open on desktop: arrow points left towards edge to collapse */
.access-ribbon .access-ribbon__toggle span::before {
    content: "\2039";
    font-size: var(--fs-xl);
    font-weight: 700;
    line-height: 1;
    color: #fff;
}

/* Collapsed on desktop: compact sleek tab with gold border */
.access-ribbon.is-collapsed .access-ribbon__toggle {
    right: -1.85rem;
    width: 1.85rem;
    height: 2.8rem;
    background: var(--heritage-green-dark);
    border: 1.5px solid var(--heritage-gold);
    border-left: 0;
    border-radius: 0 5px 5px 0;
    box-shadow: 3px 2px 10px rgba(0, 0, 0, 0.3);
}

.access-ribbon.is-collapsed .access-ribbon__toggle:hover {
    background: var(--heritage-green);
}

.access-ribbon.is-collapsed .access-ribbon__toggle span::before {
    content: "A";
    font-family: var(--font-latin), sans-serif;
    font-size: var(--fs-sm);
    font-weight: 700;
    color: #fff;
}

.access-ribbon__label {
    display: block;
    margin: 0.45rem 0 0.25rem;
    font-size: var(--fs-xs);
    font-weight: 600;
    text-align: center;
    letter-spacing: 0.02em;
    color: #b7d6ca;
}

.access-ribbon__scroller {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.access-ribbon__group {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.28rem;
    margin: 0;
}

.access-ribbon__language { grid-template-columns: repeat(2, 1fr); }

.access-ribbon button:not(.access-ribbon__toggle),
.access-ribbon__group a {
    min-height: 2.2rem;
    min-width: 2.2rem;
    display: grid;
    place-items: center;
    padding: 0.35rem;
    color: #fff;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.4);
    border-radius: 3px;
    cursor: pointer;
    font-size: var(--fs-xs);
    font-weight: 600;
    text-decoration: none;
    transition: all 0.15s ease;
}

.access-ribbon button:not(.access-ribbon__toggle):hover,
.access-ribbon__group a:hover {
    background: rgba(255, 255, 255, 0.24);
    border-color: #fff;
}

.access-ribbon button[aria-pressed="true"],
.access-ribbon a[aria-current="true"] {
    color: #5a2410;
    background: #fff;
    border-color: #fff;
    font-weight: 700;
}

.access-ribbon__separator {
    height: 1px;
    margin: 0.4rem 0;
    background: rgba(255, 255, 255, 0.2);
}

.access-ribbon__quick,
.access-ribbon__admin {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    min-height: 2.4rem;
    padding: 0.4rem 0.5rem;
    margin-top: 0.25rem;
    color: #fff;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 3px;
    font-size: var(--fs-xs);
    font-weight: 600;
    text-decoration: none;
    transition: all 0.15s ease;
}

.access-ribbon__quick:hover,
.access-ribbon__admin:hover {
    background: rgba(255, 255, 255, 0.2);
    border-color: rgba(255, 255, 255, 0.6);
}

.access-ribbon__quick span,
.access-ribbon__admin span {
    font-size: var(--fs-md);
    line-height: 1;
}

.legacy-priority {
    padding-block: 3.2rem 4rem;
    background: #fff;
    border-top: 1px solid #f4d4b9;
}

.legacy-priority__grid {
    display: grid;
    grid-template-columns: minmax(20rem, 0.78fr) minmax(32rem, 1.22fr);
    align-items: start;
    gap: 2.3rem;
}

.service-board,
.leaders-board {
    min-width: 0;
}

.service-board {
    border: 1px solid var(--heritage-line);
    border-top: 4px solid var(--heritage-green);
    border-radius: 4px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 4px 18px rgba(194, 65, 12, 0.10);
}

.service-board > header {
    min-height: 5.4rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.25rem;
    color: var(--heritage-green-dark);
    background: #fff8f0;
    border-bottom: 1px solid var(--heritage-line);
}

.service-board > header > span {
    width: 3.2rem;
    height: 3.2rem;
    display: grid;
    place-items: center;
    color: #fff;
    background: var(--heritage-green-dark);
    border: 2px solid var(--heritage-gold);
    border-radius: 4px;
    font-size: var(--fs-xl);
    font-style: normal;
    font-weight: 700;
    line-height: 1;
}

.service-board header small { display: block; color: var(--heritage-green); font-weight: 600; font-size: var(--fs-xs); }
.service-board h2 { margin: 0; font-size: var(--fs-lg); line-height: 1.25; color: var(--heritage-green-dark); }

.service-board__items { display: grid; grid-template-columns: repeat(2, 1fr); }

.service-board__item {
    min-height: 5.8rem;
    display: grid;
    grid-template-columns: 2.2rem 1fr;
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border-top: 1px solid var(--heritage-line);
    border-right: 1px solid var(--heritage-line);
    color: var(--heritage-ink);
    text-decoration: none;
    transition: background 0.15s ease;
}

.service-board__item:nth-child(even) { border-right: 0; }
.service-board__item:hover { background: #fff3e6; }
.service-board__item > span {
    width: 2.1rem;
    height: 2.1rem;
    display: grid;
    place-items: center;
    color: var(--heritage-green-dark);
    background: #ffedd9;
    border: 1px solid #fbc99a;
    border-radius: 4px;
    font-size: var(--fs-sm);
    font-weight: 700;
    transition: all 0.15s ease;
}
.service-board__item:hover > span {
    color: #fff;
    background: var(--heritage-green-dark);
    border-color: var(--heritage-green-dark);
}
.service-board__item strong, .service-board__item small { display: block; }
.service-board__item strong { color: var(--heritage-green-dark); font-size: var(--fs-sm); line-height: 1.35; font-weight: 600; }
.service-board__item small { margin-top: 0.2rem; color: var(--heritage-muted); font-size: var(--fs-xs); line-height: 1.35; }

.service-board__all {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.75rem 1.25rem;
    color: #fff;
    background: var(--heritage-green-dark);
    border-top: 1px solid var(--heritage-line);
    font-size: var(--fs-sm);
    font-weight: 600;
    text-decoration: none;
    transition: background 0.15s ease;
}
.service-board__all:hover {
    background: var(--heritage-green);
}

.legacy-section-heading {
    display: grid;
    grid-template-columns: 0.42rem auto 1fr;
    align-items: end;
    gap: 0.65rem;
    margin-bottom: 0.8rem;
}

.legacy-section-heading > span { width: 0.42rem; height: 2.6rem; background: var(--heritage-orange); }
.legacy-section-heading h2 { margin: 0; color: var(--heritage-green-dark); font-size: var(--fs-xl); line-height: 1.2; }
.legacy-section-heading small { padding-bottom: 0.1rem; color: var(--heritage-muted); }
.legacy-section-heading--line { padding-bottom: 0.7rem; border-bottom: 2px solid var(--heritage-line); }

.leaders-board > img {
    width: 100%;
    height: auto;
    max-height: 29rem;
    object-fit: contain;
    object-position: center top;
    background: #fff;
}

.leaders-board__links {
    display: flex;
    justify-content: center;
    gap: 0;
    border-top: 1px solid var(--heritage-line);
}

.leaders-board__links a {
    flex: 1;
    padding: 0.65rem;
    color: var(--heritage-green-dark);
    border-right: 1px solid var(--heritage-line);
    font-size: var(--fs-xs);
    font-weight: 700;
    text-align: center;
    text-decoration: none;
}

.leaders-board__links a:last-child { border-right: 0; }
.leaders-board__links a:hover { color: var(--heritage-orange-dark); background: var(--heritage-cream); }

.portal-main { padding-block: 4.2rem; background: #fffaf4; border-block: 1px solid #f0e1cf; }
.portal-main__grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(18rem, 0.5fr); gap: 2.2rem; }
.portal-main__content, .heritage-tabs, .tab-panel { min-width: 0; max-width: 100%; }

.heritage-tabs .tab-list {
    display: flex;
    gap: 0;
    margin-bottom: 0.7rem;
    border-bottom: 1px solid var(--heritage-line);
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
}

.heritage-tabs .tab-list button {
    padding: 0.68rem 1rem;
    color: var(--heritage-muted);
    background: #fff;
    border: 1px solid var(--heritage-line);
    border-bottom: 0;
    cursor: pointer;
    font-weight: 700;
}

.heritage-tabs .tab-list button[aria-selected="true"] { color: #fff; background: var(--heritage-orange); border-color: var(--heritage-orange); }

.heritage-news-list { background: #fff; border: 1px solid var(--heritage-line); }

.heritage-news-list article {
    min-height: 6.8rem;
    display: grid;
    grid-template-columns: 4.8rem 1fr auto;
    align-items: center;
    gap: 1rem;
    padding: 0.95rem;
    border-bottom: 1px solid var(--heritage-line);
}

.heritage-news-list article:last-child { border-bottom: 0; }
.heritage-news-list time { display: grid; color: #fff; background: var(--heritage-green); text-align: center; }
.heritage-news-list time b { padding-top: 0.35rem; font-size: var(--fs-lg); line-height: 1.2; }
.heritage-news-list time span { padding: 0.25rem 0.25rem 0.4rem; background: var(--heritage-green-dark); font-size: var(--fs-xs); }
.heritage-news-list h3 { margin: 0; color: var(--heritage-green-dark); font-size: var(--fs-base); line-height: 1.45; }
.heritage-news-list h3 a { color: inherit; text-decoration: none; }
.heritage-news-list h3 a:hover { color: var(--heritage-orange-dark); text-decoration: underline; }
.heritage-news-list p { margin: 0.3rem 0 0; color: var(--heritage-muted); font-size: var(--fs-xs); }
.heritage-news-list article > a { padding: 0.45rem 0.65rem; color: var(--heritage-orange-dark); border: 1px solid #f2c6a5; font-size: var(--fs-xs); font-weight: 700; text-decoration: none; }

.legacy-link-list { display: grid; background: #fff; border: 1px solid var(--heritage-line); }
.legacy-link-list > a { min-height: 5.5rem; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 1rem; padding: .85rem 1rem; color: inherit; border-bottom: 1px solid var(--heritage-line); text-decoration: none; }
.legacy-link-list > a:last-child { border-bottom: 0; }
.legacy-link-list > a:hover { background: #fff4e8; }
.legacy-link-list strong, .legacy-link-list small { display: block; }
.legacy-link-list strong { color: var(--heritage-green-dark); font-size: var(--fs-sm); }
.legacy-link-list small { margin-top: .2rem; color: var(--heritage-muted); font-size: var(--fs-xs); }

.portal-main__aside { display: grid; align-content: start; gap: 1rem; }
.portal-main__aside section { background: #fff; border: 1px solid var(--heritage-line); }
.portal-main__aside h2 { margin: 0; padding: 0.65rem 0.85rem; color: #fff; background: var(--heritage-green); font-size: var(--fs-base); }
.portal-main__aside p { margin: 0; padding: 0.9rem; color: var(--heritage-muted); font-size: var(--fs-xs); }
.vision-panel { border-top: 5px solid var(--heritage-orange) !important; }
.vision-panel p { color: var(--heritage-ink); font-weight: 700; line-height: 1.8; }
.agency-panel > a { display: block; padding: 0.55rem 0.85rem; color: var(--heritage-orange-dark); border-top: 1px solid var(--heritage-line); font-size: var(--fs-xs); font-weight: 700; }

.important-links a {
    display: grid;
    grid-template-columns: 3.3rem 1fr;
    align-items: center;
    gap: 0.65rem;
    padding: 0.7rem 0.85rem;
    border-top: 1px solid var(--heritage-line);
    text-decoration: none;
}

.important-links a b { color: var(--heritage-blue); font-size: var(--fs-base); }
.important-links a span { color: var(--heritage-muted); font-size: var(--fs-xs); }

.heritage-activities { position: relative; padding-block: 4.2rem 3.4rem; background: #7fd6e6 url("../images/theme/seaside.svg") center bottom / cover no-repeat; }
.heritage-activities__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.15rem; }
.activity-card { position: relative; display: flex; flex-direction: column; min-width: 0; overflow: hidden; background: #fff; border: 3px solid #fff; border-radius: 16px; box-shadow: 0 10px 26px rgba(6, 78, 104, 0.22); transition: transform .2s ease, box-shadow .2s ease; }
.activity-card:hover, .activity-card:focus-within { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(6, 78, 104, 0.3); }
.activity-card__image { display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 12px 12px 0 0; background: var(--sun-peach); }
.activity-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.activity-card:hover .activity-card__image img { transform: scale(1.06); }
.activity-card > div { flex: 1; display: flex; flex-direction: column; gap: .45rem; padding: .7rem .8rem .8rem; }
.activity-card h3 { display: -webkit-box; margin: 0; overflow: hidden; color: var(--heritage-green-dark); font-size: var(--fs-sm); line-height: 1.5; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.activity-card h3 a { color: inherit; text-decoration: none; }
.activity-card h3 a::after { content: ""; position: absolute; inset: 0; }
.activity-card h3 a:hover { color: var(--heritage-orange-dark); }
.activity-card time { display: inline-flex; align-items: center; gap: .35rem; margin-top: auto; color: var(--heritage-orange-dark); font-size: var(--fs-xs); font-weight: 700; }
.activity-card time::before { content: ""; width: .5rem; height: .5rem; background: var(--heritage-gold); border-radius: 2px; transform: rotate(45deg); }
.heritage-activities__footer { display: flex; flex-direction: column; align-items: center; gap: 1rem; margin-top: 1.8rem; }
.heritage-activities__footer .page-pager { margin: 0; }
.heritage-activities .empty-state { padding: 1rem; text-align: center; background: rgba(255, 255, 255, .9); border-radius: 12px; }
.heritage-activities[aria-busy="true"] .heritage-activities__grid { opacity: .45; transition: opacity .15s ease; }


.community-hub { padding-block: 4.2rem; background: var(--heritage-cream); border-block: 1px solid var(--heritage-line); }
.community-overview { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: stretch; border: 1px solid var(--heritage-line); background: #fff; }
.overview-panel { min-width: 0; padding: 1rem; border-right: 1px solid var(--heritage-line); }
.overview-panel:last-child { border-right: 0; }
.overview-panel > header { min-height: 4rem; margin: -1rem -1rem 1rem; padding: .7rem 1rem; color: #fff; background: var(--heritage-green-dark); border-bottom: 3px solid var(--heritage-gold); }
.overview-panel > header h3 { margin: 0; font-size: var(--fs-base); }
.overview-panel > header span { display: block; color: rgba(255,255,255,.78); font-size: var(--fs-xs); }
.overview-panel--product > a { display: grid; gap: .45rem; color: inherit; text-decoration: none; }
.overview-panel--product img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border: 1px solid var(--heritage-line); }
.overview-panel--product strong { color: var(--heritage-green-dark); font-size: var(--fs-sm); }
.overview-panel--product small { color: var(--heritage-muted); font-size: var(--fs-xs); line-height: 1.5; }
.overview-stats { display: grid; grid-template-columns: 1fr 1fr; }
.overview-stats div { min-height: 5.2rem; display: grid; place-items: center; align-content: center; border-right: 1px solid var(--heritage-line); border-bottom: 1px solid var(--heritage-line); text-align: center; }
.overview-stats div:nth-child(even) { border-right: 0; }
.overview-stats div:nth-child(n+3) { border-bottom: 0; }
.overview-stats b { color: var(--heritage-green-dark); font-family: var(--font-latin); font-size: var(--fs-lg); }
.overview-stats span { color: var(--heritage-muted); font-size: var(--fs-xs); }
.overview-panel--hot { display: grid; align-content: start; gap: .65rem; }
.overview-panel--hot label { display: grid; gap: .2rem; color: var(--heritage-green-dark); font-size: var(--fs-xs); font-weight: 600; }
.overview-panel--hot select { width: 100%; min-height: 2.55rem; padding: .4rem 2rem .4rem .55rem; color: var(--heritage-ink); background: #fff; border: 1px solid #b9ad9e; border-radius: 2px; font-size: var(--fs-xs); }
.overview-panel--calendar > div { display: grid; }
.overview-panel--calendar > div > a { min-height: 4.4rem; display: grid; grid-template-columns: 3.5rem 1fr; align-items: center; gap: .6rem; color: inherit; border-bottom: 1px solid var(--heritage-line); text-decoration: none; }
.overview-panel--calendar time { display: grid; place-items: center; align-content: center; min-height: 3.4rem; color: #fff; background: var(--heritage-orange-dark); text-align: center; }
.overview-panel--calendar time b { font-family: var(--font-latin); font-size: var(--fs-md); line-height: 1; }
.overview-panel--calendar time span { font-size: var(--fs-2xs); }
.overview-panel--calendar strong { color: var(--heritage-green-dark); font-size: var(--fs-xs); line-height: 1.4; }
.overview-panel__more { display: block; margin-top: .65rem; color: var(--heritage-orange-dark); font-size: var(--fs-xs); font-weight: 600; text-align: right; }
.community-hub__grid { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; gap: 1.2rem; }
.calendar-preview, .product-feature { background: #fff; border: 1px solid var(--heritage-line); border-radius: 4px; box-shadow: 0 4px 18px rgba(84,54,25,.06); }
.calendar-preview { padding: 1rem; }
.calendar-preview > div { display: grid; }
.calendar-preview > div > a { display: grid; grid-template-columns: 4.2rem 1fr; align-items: center; gap: .8rem; padding-block: .65rem; color: inherit; border-bottom: 1px solid var(--heritage-line); text-decoration: none; }
.calendar-preview time { display: grid; place-items: center; padding: .35rem; color: #fff; background: var(--heritage-green); border-radius: 4px; text-align: center; }
.calendar-preview time b { font-size: var(--fs-lg); line-height: 1.1; }
.calendar-preview time span { font-size: var(--fs-2xs); }
.calendar-preview a > span strong, .calendar-preview a > span small { display: block; }
.calendar-preview a > span strong { color: var(--heritage-green-dark); font-size: var(--fs-xs); }
.calendar-preview a > span small { color: var(--heritage-muted); font-size: var(--fs-xs); }
.panel-more { display: block; margin-top: .8rem; color: var(--heritage-orange-dark); font-size: var(--fs-xs); font-weight: 700; text-align: right; }

.product-feature { display: grid; grid-template-columns: minmax(14rem, .8fr) minmax(0, 1.2fr); overflow: hidden; }
.product-feature > img { width: 100%; height: 100%; object-fit: cover; }
.product-feature > div { display: grid; align-content: center; padding: 1.4rem; }
.product-feature span { color: var(--heritage-orange-dark); font-size: var(--fs-xs); font-weight: 700; }
.product-feature h2 { margin: .3rem 0 0; color: var(--heritage-green-dark); font-size: var(--fs-lg); }
.product-feature p { color: var(--heritage-muted); font-size: var(--fs-xs); }
.product-feature a { color: var(--heritage-orange-dark); font-size: var(--fs-xs); font-weight: 700; }

.participation-section { padding-block: 4.2rem; background: #fff; }
.participation-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .85rem; }
.participation-grid a { min-height: 10.5rem; display: grid; align-content: start; gap: .4rem; padding: 1.2rem; color: inherit; background: #fff; border: 1px solid var(--heritage-line); border-top: 4px solid var(--heritage-green); border-radius: 4px; box-shadow: var(--heritage-shadow); text-decoration: none; transition: transform 0.15s ease, box-shadow 0.15s ease; }
.participation-grid a:hover { transform: translateY(-2px); box-shadow: var(--heritage-shadow-lg); }
.participation-grid a:nth-child(1) { border-top-color: var(--heritage-green-dark); }
.participation-grid a:nth-child(2) { border-top-color: var(--heritage-orange-dark); }
.participation-grid a:nth-child(3) { border-top-color: var(--heritage-blue); }
.participation-grid b { color: var(--heritage-green-dark); font-size: var(--fs-lg); }
.participation-grid strong { color: var(--heritage-green-dark); }
.participation-grid span { color: var(--heritage-muted); font-size: var(--fs-xs); }

.official-banners { padding-block: 4.2rem; background: var(--heritage-cream); border-block: 1px solid var(--heritage-line); }
.official-banners__grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 1rem; }
.official-banners__grid a { overflow: hidden; background: #fff; border: 1px solid var(--heritage-line); box-shadow: var(--heritage-shadow); }
.official-banners__grid img { width: 100%; transition: transform .25s ease; }
.official-banners__grid a:hover img { transform: scale(1.015); }
.official-banners__grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 1.2rem; }
.official-banners__grid--three a { display: grid; align-items: center; min-height: 16rem; }
.official-banners__grid--three img { width: 100%; max-height: 24rem; object-fit: contain; }
.integrity-feature { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(18rem, .85fr); align-items: stretch; gap: 1rem; }
.integrity-report-list { display: grid; gap: .65rem; padding: 1rem; background: #fff; border: 1px solid var(--heritage-line); }
.integrity-report-list a { display: block; overflow: hidden; border: 1px solid var(--heritage-line); }
.integrity-report-list img { width: 100%; max-height: 8rem; object-fit: contain; transition: transform .2s ease; }
.integrity-report-list a:hover img { transform: scale(1.015); }
.integrity-year { display: grid; place-items: center; padding: 1rem; background: #fff; border: 1px solid var(--heritage-line); box-shadow: var(--heritage-shadow); }
.integrity-year img { width: min(100%, 29rem); }

.legacy-logo-links { padding-block: 3.5rem; background: #fff; }
.legacy-logo-links .portal-shell > div:last-child { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); align-items: center; gap: .75rem; }
.legacy-logo-links .portal-shell > div:last-child > a { min-height: 5rem; display: grid; place-items: center; padding: .55rem; background: #fff; border: 1px solid var(--heritage-line); text-decoration: none; }
.legacy-logo-links .portal-shell > div:last-child > a:hover { border-color: var(--heritage-green); box-shadow: var(--heritage-shadow); }
.legacy-logo-links img { width: auto; max-width: 100%; max-height: 3.75rem; object-fit: contain; }
.legacy-logo-links__all { color: #fff !important; background: var(--heritage-green-dark) !important; font-size: var(--fs-xs); font-weight: 600; text-align: center; }

.system-links { padding-block: 1.2rem; color: #fff; background: var(--heritage-green-dark); border-bottom: 6px solid var(--heritage-orange); }
.system-links .portal-shell { display: grid; grid-template-columns: repeat(4, 1fr); }
.system-links a { min-height: 4.5rem; display: grid; grid-template-columns: 3.2rem 1fr; align-items: center; gap: .6rem; padding: .55rem .8rem; color: #fff; border-right: 1px solid rgba(255,255,255,.2); text-decoration: none; }
.system-links a:last-child { border-right: 0; }
.system-links b { color: #ffdd8a; font-size: var(--fs-base); }
.system-links span { font-size: var(--fs-xs); line-height: 1.4; }

.map-embed { background: #fff; border: 1px solid var(--heritage-line); box-shadow: var(--heritage-shadow); overflow: hidden; }
.map-embed__frame { line-height: 0; }
.map-embed__frame iframe { width: 100%; min-height: 16rem; }
.map-embed__info { padding: .9rem; }
.map-embed__info p { margin: 0 0 .4rem; color: var(--heritage-muted); font-size: var(--fs-xs); }
.map-embed__info a { color: var(--heritage-orange-dark); font-size: var(--fs-xs); font-weight: 700; }

.report-channels { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; margin-top: 1.2rem; }
.report-channel { display: grid; align-content: center; gap: .3rem; min-height: 5.5rem; padding: 1rem; color: inherit; background: #fff; border: 1px solid var(--heritage-line); border-top: 5px solid var(--heritage-muted); text-decoration: none; transition: border-color .15s ease, box-shadow .15s ease; }
.report-channel:hover { border-top-color: var(--heritage-orange); box-shadow: var(--heritage-shadow); }
.report-channel b { color: var(--heritage-green-dark); font-size: var(--fs-base); }
.report-channel span { color: var(--heritage-muted); font-size: var(--fs-xs); line-height: 1.5; }
.report-channel--nacc { border-top-color: #1a5276; }
.report-channel--pacc { border-top-color: #7d3c98; }
.report-channel--local { border-top-color: var(--heritage-orange); }

.visit-contact { padding-block: 4rem; background: #fff; }
.visit-contact > .portal-shell { max-width: 1260px; }
.visit-contact .map-embed__frame iframe { min-height: 23rem; }
.visit-contact__grid { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; gap: 1.2rem; }
.visit-stats { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--heritage-line); }
.visit-stats div { display: grid; place-items: center; min-height: 6.5rem; padding: .65rem; border-right: 1px solid var(--heritage-line); text-align: center; }
.visit-stats div:last-child { border-right: 0; }
.visit-stats b { color: var(--heritage-orange-dark); font-size: var(--fs-lg); }
.visit-stats span { color: var(--heritage-muted); font-size: var(--fs-xs); }

.portal-footer {
    color: #eee6dc;
    background: #4a2412;
    border-top: 1px solid #514943;
}

.portal-footer__grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr 0.7fr;
    gap: 2.5rem;
    padding-block: 3.2rem 2.8rem;
    align-items: start;
}

.portal-footer__identity {
    display: flex;
    align-items: center;
    gap: 1.25rem;
}

.portal-footer__identity img {
    width: 4.75rem;
    height: 4.75rem;
    flex-shrink: 0;
    object-fit: contain;
    filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.25));
}

.portal-footer__identity-info {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.portal-footer__identity-info strong {
    color: #ffffff;
    font-size: var(--fs-md);
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: -0.01em;
}

.portal-footer__identity-info p {
    margin: 0;
    font-size: var(--fs-xs);
    color: #d1c8c0;
    line-height: 1.6;
}

.portal-footer strong,
.portal-footer h2 {
    color: #ffffff;
}

.portal-footer p {
    margin: 0.2rem 0;
    font-size: var(--fs-xs);
    line-height: 1.6;
}

.portal-footer h2 {
    margin: 0 0 0.75rem;
    font-size: var(--fs-base);
    font-weight: 600;
    color: #f7ede2;
    position: relative;
    padding-bottom: 0.45rem;
}

.portal-footer h2::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 2rem;
    height: 2px;
    background: var(--heritage-gold);
}

.portal-footer ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.portal-footer li + li {
    margin-top: 0.45rem;
}

.portal-footer a {
    color: #eee6dc;
    font-size: var(--fs-xs);
    text-decoration: none;
    transition: color 0.15s ease;
}

.portal-footer a:hover {
    color: var(--heritage-gold);
}

.portal-footer__bottom {
    padding-block: 1.25rem;
    background: #34190c;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    font-size: var(--fs-xs);
}

.portal-footer__bottom-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.portal-footer__copyright {
    color: #eee6dc;
    font-size: var(--fs-xs);
    font-family: var(--font-latin), sans-serif;
    letter-spacing: 0.02em;
    line-height: 1.5;
}

.portal-footer__nav {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.portal-footer__nav a {
    color: #d1c8c0;
    font-size: var(--fs-xs);
    text-decoration: none;
    transition: color 0.15s ease;
}

.portal-footer__nav a:hover {
    color: var(--heritage-gold);
    text-decoration: underline;
}

.portal-footer__nav-dot {
    color: #6e655d;
    font-size: var(--fs-xs);
    user-select: none;
}

.back-to-top {
    position: fixed;
    z-index: 145;
    right: 1rem;
    bottom: 1rem;
    width: 3rem;
    height: 3rem;
    display: grid;
    place-items: center;
    color: #fff;
    background: var(--heritage-green);
    border: 3px solid #fff;
    border-radius: 50%;
    box-shadow: var(--heritage-shadow);
    cursor: pointer;
    opacity: 0;
    pointer-events: none;
    transform: translateY(1rem);
    transition: 160ms ease;
}

.back-to-top.is-visible { opacity: 1; pointer-events: auto; transform: translateY(0); }

.page-hero { padding-block: 4rem; color: #fff; background: var(--heritage-green-dark); border-bottom: 5px solid var(--heritage-gold); }
.page-hero h1 { margin: 0; font-size: clamp(2rem, 5vw, 3.5rem); }
.page-hero p { max-width: 48rem; margin-bottom: 0; }
.eyebrow { color: #ffe09b; font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.section { padding-block: 4rem; }
.sitemap-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.sitemap-grid section { padding: 1rem; border-top: 4px solid var(--heritage-gold); background: var(--heritage-cream); border-radius: 4px; }
.sitemap-grid h2 { margin: 0; color: var(--heritage-green-dark); font-size: var(--fs-base); }
.sitemap-grid ul { margin: 0.7rem 0 0; padding-left: 1.2rem; }

.inner-hero {
    position: relative;
    min-height: 20rem;
    display: grid;
    align-items: end;
    overflow: hidden;
    color: #fff;
    background-image: linear-gradient(90deg, rgba(154, 52, 18, 0.9), rgba(247, 103, 7, 0.35)), url("../images/wat-bg12.jpg");
    background-position: center;
    background-size: cover;
    border-bottom: 5px solid var(--heritage-gold);
}

.inner-hero::after {
    display: none;
}

.inner-hero .portal-shell { position: relative; z-index: 1; padding-block: 4.5rem 3rem; }
.inner-hero span { display: block; color: #ffe2a1; font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.inner-hero h1 { max-width: 18ch; margin: 0.35rem 0 0; font-size: clamp(2rem, 5vw, 4rem); line-height: 1.12; text-shadow: 0 2px 8px rgba(0,0,0,.35); }
.inner-hero p { max-width: 48rem; margin: 0.75rem 0 0; color: rgba(255,255,255,.88); }

.inner-hero--services { background-position: center 32%; }
.inner-hero--transparency { background-image: linear-gradient(90deg, rgba(154, 52, 18, 0.9), rgba(247, 103, 7, 0.35)), url("../images/wat-bg12.jpg"); }
.inner-hero--calendar { background-image: linear-gradient(90deg, rgba(154, 52, 18, .9), rgba(247, 103, 7, .3)), url("../images/activity-career-2.jpg"); }
.inner-hero--contact { background-position: center 70%; }

.breadcrumb { color: var(--heritage-muted); background: var(--heritage-cream); border-bottom: 1px solid var(--heritage-line); font-size: var(--fs-xs); }
.breadcrumb .portal-shell { min-height: 3rem; display: flex; align-items: center; gap: 0.5rem; overflow: hidden; }
.breadcrumb a { color: var(--heritage-green-dark); }
.breadcrumb strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.content-section { padding-block: clamp(3rem, 7vw, 5.5rem); }
.content-section--cream { background: var(--heritage-cream); border-block: 1px solid var(--heritage-line); }
.lead-copy, .article-lead { color: var(--heritage-green-dark); font-size: var(--fs-md); font-weight: 700; line-height: 1.9; }

.split-feature { display: grid; grid-template-columns: minmax(0, 1fr) minmax(24rem, .8fr); align-items: center; gap: 3rem; }
.split-feature > div > p { color: var(--heritage-muted); }
.image-frame { margin: 0; padding: .55rem; background: #fff; border: 1px solid var(--heritage-line); border-radius: 4px; box-shadow: var(--heritage-shadow); }
.image-frame img { width: 100%; aspect-ratio: 16 / 8; object-fit: cover; }
.image-frame figcaption { padding: .55rem .4rem .15rem; color: var(--heritage-muted); font-size: var(--fs-xs); }

.heritage-quote { max-width: 60rem; margin: 1.5rem auto 2rem; padding: 1.4rem 1.7rem; color: var(--heritage-green-dark); background: #fff; border-left: 6px solid var(--heritage-green); border-radius: 0 4px 4px 0; box-shadow: var(--heritage-shadow); font-size: var(--fs-lg); font-weight: 700; text-align: center; }
.mission-grid { counter-reset: mission; display: grid; grid-template-columns: repeat(2, 1fr); gap: .75rem; margin: 0; padding: 0; list-style: none; }
.mission-grid li { position: relative; min-height: 5rem; display: flex; align-items: center; padding: .9rem 1rem .9rem 4rem; background: #fff; border: 1px solid var(--heritage-line); border-radius: 4px; }
.mission-grid li::before { counter-increment: mission; content: counter(mission); position: absolute; left: 1rem; width: 2.1rem; height: 2.1rem; display: grid; place-items: center; color: #fff; background: var(--heritage-green); border-radius: 4px; font-weight: 700; }
.agency-facts-grid, .organization-groups, .service-procedures { display: grid; grid-template-columns: repeat(2, 1fr); gap: .8rem; }
.agency-facts-grid article, .organization-groups article, .service-procedures article { padding: 1rem; background: #fff; border: 1px solid var(--heritage-line); border-left: 4px solid var(--heritage-green); }
.agency-facts-grid h3, .organization-groups h3, .service-procedures h3 { margin: 0; color: var(--heritage-green-dark); font-size: var(--fs-base); }
.agency-facts-grid p, .organization-groups p, .service-procedures p { margin: .4rem 0 0; color: var(--heritage-muted); font-size: var(--fs-xs); }
.organization-groups article > span { color: var(--heritage-orange-dark); font-size: var(--fs-xs); font-weight: 600; }

.personnel-jump { display: flex; flex-wrap: wrap; gap: .55rem; margin: 0 0 2rem; }
.personnel-jump a { padding: .5rem .8rem; color: var(--heritage-green-dark); background: var(--heritage-cream); border: 1px solid var(--heritage-line); border-radius: .35rem; font-size: var(--fs-xs); font-weight: 600; }
.personnel-jump a:hover, .personnel-jump a:focus-visible { color: #fff; background: var(--heritage-green); border-color: var(--heritage-green); }
.personnel-section { scroll-margin-top: 8rem; padding-block: 1rem 2.5rem; }
.personnel-section + .personnel-section { border-top: 1px solid var(--heritage-line); }
.personnel-section > h3 { margin: .5rem 0 1.1rem; color: var(--heritage-green-dark); font-size: var(--fs-lg); }
.personnel-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.person-card { overflow: hidden; background: #fff; border: 1px solid var(--heritage-line); border-radius: .45rem; box-shadow: 0 .25rem .8rem rgba(49, 67, 50, .07); }
.person-card > img { width: 100%; aspect-ratio: 4 / 4.75; object-fit: cover; object-position: center top; background: #edf2ee; }
.person-card > div { display: grid; gap: .3rem; padding: .85rem; }
.person-card h4 { margin: 0; color: var(--heritage-green-dark); font-size: var(--fs-sm); line-height: 1.35; }
.person-card p { margin: 0; color: var(--heritage-text); font-size: var(--fs-xs); line-height: 1.55; }
.person-card small { color: var(--heritage-muted); font-size: var(--fs-xs); }
.person-card a { justify-self: start; margin-top: .25rem; color: var(--heritage-orange-dark); font-size: var(--fs-xs); font-weight: 600; }
.legacy-data-note { margin: 0; padding: 1rem; color: var(--heritage-muted); background: #fff8e8; border-left: 4px solid var(--heritage-gold); font-size: var(--fs-xs); }

.leader-feature { display: grid; grid-template-columns: minmax(26rem, 1.25fr) minmax(18rem, .75fr); align-items: center; gap: 2rem; }
.leader-feature img { width: 100%; max-height: 34rem; object-fit: contain; }
.leader-feature h3 { margin: 0; color: var(--heritage-green-dark); font-size: var(--fs-xl); }
.leader-feature p { color: var(--heritage-muted); }
.heritage-button { display: inline-flex; min-height: 2.8rem; align-items: center; justify-content: center; padding: .6rem 1.2rem; color: #fff; background: var(--heritage-green-dark); border: 1px solid var(--heritage-green-dark); border-radius: 4px; font-weight: 600; text-decoration: none; transition: background 0.15s ease; }
.heritage-button:hover { background: var(--heritage-green); }
.heritage-button--outline { color: var(--heritage-green-dark); background: #fff; border-color: var(--heritage-green-dark); }
.heritage-button--outline:hover { background: #fff1e3; }

.service-directory { display: grid; gap: 3.5rem; }
.directory-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .65rem; }
.directory-grid > a { min-height: 6.4rem; display: grid; grid-template-columns: 2.6rem 1fr auto; align-items: center; gap: .8rem; padding: .9rem 1rem; color: inherit; background: #fff; border: 1px solid var(--heritage-line); box-shadow: 0 5px 14px rgba(84,54,25,.06); text-decoration: none; }
.directory-grid > a:hover { border-color: var(--heritage-orange); background: var(--heritage-cream); }
.directory-grid > a > b { width: 2.25rem; height: 2.25rem; display: grid; place-items: center; color: #fff; background: var(--heritage-green); border-radius: 50%; }
.directory-grid strong, .directory-grid small { display: block; }
.directory-grid strong { color: var(--heritage-green-dark); }
.directory-grid small { margin-top: .2rem; color: var(--heritage-muted); font-size: var(--fs-xs); }
.directory-grid i { color: var(--heritage-orange-dark); font-style: normal; font-size: var(--fs-lg); }

.archive-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.news-archive-tools { padding-top: 1.5rem; }
.news-archive-filter { display: flex; flex-wrap: wrap; align-items: end; gap: .8rem; }
.news-archive-filter label { display: grid; flex: 1 1 220px; min-width: 0; gap: .35rem; color: var(--heritage-green-dark); font-weight: 600; }
.news-archive-filter input, .news-archive-filter select { width: 100%; min-width: 0; min-height: 44px; padding: .65rem; border: 1px solid var(--heritage-line); border-radius: .3rem; background: #fff; font: inherit; }
.news-archive-filter button, .news-view-all { padding: .65rem 1rem; min-height: 44px; color: #fff; background: var(--heritage-green-dark); border: 1px solid var(--heritage-green-dark); border-radius: .3rem; font: inherit; cursor: pointer; }
.news-view-all { display: inline-block; margin-top: .8rem; text-decoration: none; }
.news-archive-summary { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem; margin-top: .8rem; }
.news-archive-summary a { color: var(--heritage-green-dark); }
.news-view-all:hover, .news-view-all:focus-visible { color: #fff; background: var(--heritage-green); }
.archive-item { min-height: 13rem; display: grid; grid-template-columns: 11rem 1fr; overflow: hidden; background: #fff; border: 1px solid var(--heritage-line); box-shadow: 0 7px 20px rgba(84,54,25,.07); }
.archive-item:not(:has(.archive-item__image)) { grid-template-columns: 1fr; border-left: 6px solid var(--heritage-orange); }
.archive-item__image { overflow: hidden; }
.archive-item__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.archive-item:hover .archive-item__image img { transform: scale(1.035); }
.archive-item > div { padding: 1rem; }
.archive-item time { color: var(--heritage-orange-dark); font-size: var(--fs-xs); font-weight: 700; }
.content-type { margin-left: .55rem; padding: .15rem .35rem; color: var(--heritage-green-dark); background: #fff1e0; font-size: var(--fs-xs); text-transform: uppercase; }
.archive-item h2 { margin: .45rem 0 0; font-size: var(--fs-base); line-height: 1.45; }
.archive-item h2 a { color: var(--heritage-green-dark); text-decoration: none; }
.archive-item p { margin: .45rem 0; color: var(--heritage-muted); font-size: var(--fs-xs); }
.read-link { color: var(--heritage-orange-dark); font-size: var(--fs-xs); font-weight: 700; }

.article-layout { display: grid; grid-template-columns: minmax(0, 1fr) 17rem; align-items: start; gap: 2rem; }
.article-body { min-width: 0; padding: 1.4rem; background: #fff; border: 1px solid var(--heritage-line); }
.article-body > time { color: var(--heritage-orange-dark); font-size: var(--fs-xs); font-weight: 700; }
.article-body > p { line-height: 1.9; }
.article-image { margin: -1.4rem -1.4rem 1.4rem; }
.article-image img { width: 100%; max-height: 36rem; object-fit: cover; }
.article-actions { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--heritage-line); }
.article-actions a, .article-actions button { padding: .5rem .7rem; color: var(--heritage-green-dark); background: #fff; border: 1px solid var(--heritage-green); cursor: pointer; font-weight: 700; text-decoration: none; }
.legacy-gallery, .legacy-downloads { margin-top: 2rem; padding-top: 1.2rem; border-top: 1px solid var(--heritage-line); }
.legacy-gallery h2, .legacy-downloads h2 { color: var(--heritage-green-dark); font-size: var(--fs-md); }
.legacy-gallery > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; }
.legacy-gallery figure { margin: 0; }
.legacy-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.legacy-gallery figcaption { margin-top: .25rem; color: var(--heritage-muted); font-size: var(--fs-xs); }
.article-image figcaption { margin-top: .35rem; color: var(--heritage-muted); font-size: var(--fs-xs); text-align: center; }
.content-media-carousel { margin-top: 2rem; padding-top: 1.2rem; border-top: 1px solid var(--heritage-line); }
.content-media-carousel > header { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: .8rem; }
.content-media-carousel h2 { margin: 0; color: var(--heritage-green-dark); font-size: var(--fs-md); }
.content-media-carousel header p { margin: .2rem 0 0; color: var(--heritage-muted); font-size: var(--fs-xs); }
.content-media-carousel__controls { display: flex; gap: .35rem; }
.content-media-carousel__controls button { width: 42px; height: 42px; border: 1px solid var(--heritage-line); border-radius: 50%; color: var(--heritage-green-dark); background: #fff; cursor: pointer; font-size: var(--fs-xl); }
.content-media-carousel__controls button:hover, .content-media-carousel__controls button:focus-visible { color: #fff; background: var(--heritage-green-dark); }
.content-media-carousel__track { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(220px, 38%); gap: .8rem; overflow-x: auto; padding: .2rem .1rem .75rem; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.content-media-carousel__track figure { margin: 0; scroll-snap-align: start; }
.content-media-carousel__track a,
.content-media-carousel__thumb { display: block; overflow: hidden; border-radius: .35rem; background: #eee; cursor: pointer; border: none; padding: 0; width: 100%; }
.content-media-carousel__thumb:hover { box-shadow: 0 4px 14px rgba(0,0,0,.12); }
.content-media-carousel__track img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.content-media-carousel__track figcaption { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .35rem; color: var(--heritage-muted); font-size: var(--fs-xs); }
.content-media-carousel__track figcaption strong { padding: .08rem .35rem; border-radius: 999px; color: #fff; background: var(--heritage-orange); font-size: var(--fs-xs); }
.legacy-downloads ul { display: grid; gap: .55rem; margin: 0; padding: 0; list-style: none; }
.legacy-downloads li { display: flex; justify-content: space-between; gap: 1rem; padding: .75rem; background: var(--heritage-cream); border-left: 4px solid var(--heritage-orange); }
.legacy-downloads li a { color: var(--heritage-green-dark); font-weight: 600; }
.legacy-downloads li small { flex: none; color: var(--heritage-muted); }
.article-aside { display: grid; border: 1px solid var(--heritage-line); }
.article-aside h2 { margin: 0; padding: .7rem .8rem; color: #fff; background: var(--heritage-green); font-size: var(--fs-base); }
.article-aside a { padding: .65rem .8rem; color: var(--heritage-green-dark); border-top: 1px solid var(--heritage-line); font-size: var(--fs-xs); text-decoration: none; }

.event-timeline { position: relative; display: grid; gap: .8rem; }
.event-timeline::before { content: ""; position: absolute; top: 0; bottom: 0; left: 3.35rem; width: 2px; background: var(--heritage-line); }
.event-timeline article { position: relative; display: grid; grid-template-columns: 6.7rem 1fr; gap: 1rem; }
.event-timeline time { position: relative; z-index: 1; width: 6.7rem; min-height: 5.7rem; display: grid; place-items: center; align-content: center; color: #fff; background: var(--heritage-orange); border: 5px solid #fff; box-shadow: 0 0 0 1px var(--heritage-line); text-align: center; }
.event-timeline time b { font-size: var(--fs-xl); line-height: 1; }
.event-timeline time span { font-size: var(--fs-xs); }
.event-timeline article > div { padding: .85rem 1rem; background: #fff; border: 1px solid var(--heritage-line); }
.event-timeline h2 { margin: 0; color: var(--heritage-green-dark); font-size: var(--fs-base); }
.event-timeline p { margin: .3rem 0; color: var(--heritage-muted); font-size: var(--fs-xs); }
.event-timeline dl { display: flex; flex-wrap: wrap; gap: .8rem; margin: .55rem 0 0; font-size: var(--fs-xs); }
.event-timeline dl div { display: flex; gap: .3rem; }
.event-timeline dt { color: var(--heritage-orange-dark); font-weight: 700; }
.event-timeline dd { margin: 0; }

.transparency-directory { display: grid; grid-template-columns: repeat(2, 1fr); gap: .75rem; }
.transparency-directory > a { min-height: 8.5rem; display: grid; grid-template-columns: 5rem 1fr auto; align-items: center; gap: 1rem; padding: 1rem; color: inherit; background: #fff; border: 1px solid var(--heritage-line); border-left: 7px solid var(--heritage-blue); box-shadow: 0 7px 18px rgba(42,61,72,.08); text-decoration: none; }
.transparency-directory b { color: var(--heritage-blue); font-size: var(--fs-xl); }
.transparency-directory strong, .transparency-directory small { display: block; }
.transparency-directory strong { color: var(--heritage-green-dark); }
.transparency-directory small { margin-top: .2rem; color: var(--heritage-muted); }
.transparency-directory i { font-style: normal; }
.ita-year-nav { display: flex; flex-wrap: wrap; gap: .55rem; margin-bottom: 1.5rem; }
.ita-year-nav a { padding: .5rem .85rem; color: var(--heritage-green-dark); background: #fff; border: 1px solid var(--heritage-line); border-radius: .35rem; font-weight: 600; }
.ita-year-nav a[aria-current="page"] { color: #fff; background: var(--heritage-green); border-color: var(--heritage-green); }
.ita-disclosure-groups { display: grid; gap: 1rem; }
.ita-disclosure-groups > section { overflow: hidden; background: #fff; border: 1px solid var(--heritage-line); border-radius: .45rem; }
.ita-disclosure-groups > section > h3 { margin: 0; padding: .8rem 1rem; color: #fff; background: var(--heritage-green-dark); font-size: var(--fs-base); }
.ita-disclosure-groups > section > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ita-disclosure-groups article { display: grid; grid-template-columns: 3rem 1fr; gap: .75rem; padding: 1rem; border-right: 1px solid var(--heritage-line); border-bottom: 1px solid var(--heritage-line); }
.ita-disclosure-groups article > b { color: var(--heritage-orange-dark); font-size: var(--fs-base); }
.ita-disclosure-groups h4 { margin: 0 0 .45rem; color: var(--heritage-green-dark); font-size: var(--fs-xs); }
.ita-disclosure-groups ul { display: flex; flex-wrap: wrap; gap: .3rem .7rem; margin: 0; padding: 0; list-style: none; }
.ita-disclosure-groups li { font-size: var(--fs-xs); }
.ita-disclosure-groups a { color: var(--heritage-blue); text-decoration: underline; text-underline-offset: .15rem; }
.legacy-import-empty { grid-column: 1 / -1; padding: 1.4rem; color: var(--heritage-muted); background: #fff8e8; border: 1px solid #e5c98b; border-left: 5px solid var(--heritage-gold); text-align: left; }
.legacy-import-empty strong { display: block; color: var(--heritage-green-dark); }
.legacy-import-empty p { margin: .4rem 0 .8rem; }
.legacy-import-empty a { color: var(--heritage-blue); font-weight: 600; }
.legacy-category-summary { margin-bottom: 2rem; padding: 1rem; background: var(--heritage-cream); border-left: 5px solid var(--heritage-orange); }
.legacy-category-summary strong { color: var(--heritage-green-dark); font-size: var(--fs-lg); }
.legacy-category-summary p { margin: .3rem 0 0; color: var(--heritage-muted); font-size: var(--fs-xs); }
.legacy-category-group { scroll-margin-top: 8rem; padding-block: 1rem 2rem; }
.legacy-category-group + .legacy-category-group { border-top: 1px solid var(--heritage-line); }
.legacy-category-group > h2 { color: var(--heritage-green-dark); font-size: var(--fs-md); }
.legacy-category-group > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; }
.legacy-category-group a { display: grid; grid-template-columns: 2.5rem 1fr; align-items: center; gap: .65rem; min-height: 4rem; padding: .7rem; color: var(--heritage-text); background: #fff; border: 1px solid var(--heritage-line); text-decoration: none; }
.legacy-category-group a:hover, .legacy-category-group a:focus-visible { border-color: var(--heritage-green); box-shadow: 0 .25rem .8rem rgba(49, 67, 50, .08); }
.legacy-category-group a b { color: var(--heritage-orange-dark); font-size: var(--fs-xs); }
.legacy-category-group a span { font-size: var(--fs-xs); line-height: 1.45; }
.banner-pair { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 1.2rem; }
.banner-pair figure, .banner-pair > a { margin: 0; overflow: hidden; background: #fff; border: 1px solid var(--heritage-line); box-shadow: var(--heritage-shadow); }
.banner-pair img { width: 100%; }
.banner-pair figcaption { padding: .6rem; color: var(--heritage-muted); font-size: var(--fs-xs); }
.transparency-doc-groups { display: grid; grid-template-columns: repeat(2, 1fr); gap: .85rem; }
.transparency-doc-groups article { padding: 1rem; background: #fff; border: 1px solid var(--heritage-line); border-top: 4px solid var(--heritage-green); }
.transparency-doc-groups article > span { color: var(--heritage-orange-dark); font-size: var(--fs-xs); font-weight: 600; }
.transparency-doc-groups h3 { margin: .25rem 0 .6rem; color: var(--heritage-green-dark); font-size: var(--fs-base); }
.transparency-doc-groups ul { margin: 0; padding-left: 1.2rem; }
.transparency-doc-groups li + li { margin-top: .3rem; }
.transparency-doc-groups a { color: var(--heritage-ink); font-size: var(--fs-xs); }

.link-groups { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.link-groups section { border: 1px solid var(--heritage-line); }
.link-groups h2 { margin: 0; padding: .75rem 1rem; color: #fff; background: var(--heritage-green); font-size: var(--fs-base); }
.link-groups section > div { display: grid; }
.link-groups a { min-height: 3.6rem; display: flex; align-items: center; justify-content: space-between; gap: .7rem; padding: .65rem .8rem; color: var(--heritage-green-dark); border-top: 1px solid var(--heritage-line); font-size: var(--fs-xs); text-decoration: none; }
.link-groups a:hover { background: var(--heritage-cream); }
.link-groups i { color: var(--heritage-orange-dark); font-style: normal; }

.contact-layout { display: grid; grid-template-columns: 1fr 1fr; align-items: start; gap: 2rem; }
.office-facts { margin: 1rem 0; }
.office-facts > div { display: grid; grid-template-columns: 8rem 1fr; gap: .8rem; padding-block: .7rem; border-bottom: 1px solid var(--heritage-line); }
.office-facts dt { color: var(--heritage-orange-dark); font-weight: 700; }
.office-facts dd { margin: 0; }
.contact-actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.map-card { overflow: hidden; background: #fff; border: 1px solid var(--heritage-line); box-shadow: var(--heritage-shadow); }
.map-card img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.map-card div { padding: 1rem; }
.map-card b { color: var(--heritage-green-dark); }
.map-card p { color: var(--heritage-muted); font-size: var(--fs-xs); }
.map-card a { color: var(--heritage-orange-dark); font-weight: 700; }

.search-page > form { max-width: 54rem; margin-inline: auto; padding: 1.2rem; background: var(--heritage-cream); border: 1px solid var(--heritage-line); }
.search-page label { display: block; margin-bottom: .4rem; color: var(--heritage-green-dark); font-weight: 700; }
.search-page form > div { display: flex; }
.search-page input { min-width: 0; flex: 1; min-height: 3rem; padding: .6rem .8rem; border: 1px solid #b9a994; border-right: 0; }
.search-page button { min-width: 6rem; color: #fff; background: var(--heritage-orange); border: 0; cursor: pointer; font-weight: 700; }
.search-summary { margin-block: 2rem 1rem; color: var(--heritage-muted); text-align: center; }
.search-results { max-width: 54rem; display: grid; gap: .6rem; margin-inline: auto; }
.search-results article { padding: .9rem 1rem; border: 1px solid var(--heritage-line); border-left: 5px solid var(--heritage-orange); }
.search-results article > span { color: var(--heritage-orange-dark); font-size: var(--fs-xs); text-transform: uppercase; }
.search-results h2 { margin: .25rem 0 0; font-size: var(--fs-base); }
.search-results h2 a { color: var(--heritage-green-dark); }
.search-results p { margin: .3rem 0 0; color: var(--heritage-muted); font-size: var(--fs-xs); }
.empty-state { padding: 2rem; color: var(--heritage-muted); background: var(--heritage-cream); border: 1px dashed #cdbca6; text-align: center; }

.policy-document { max-width: 58rem; }
.policy-document > section { padding-block: 1rem; border-bottom: 1px solid var(--heritage-line); }
.policy-document h2 { margin: 0; color: var(--heritage-green-dark); font-size: var(--fs-md); }
.policy-document p { color: var(--heritage-muted); }

.board-layout { display: grid; grid-template-columns: minmax(20rem, .8fr) minmax(0, 1.2fr); align-items: start; gap: 2rem; }
.board-form, .board-posts > article { padding: 1rem; background: #fff; border: 1px solid var(--heritage-line); box-shadow: 0 7px 18px rgba(84,54,25,.07); }
.board-form form { display: grid; gap: .4rem; }
.board-form label { margin-top: .35rem; color: var(--heritage-green-dark); font-size: var(--fs-xs); font-weight: 700; }
.board-form input, .board-form select, .board-form textarea { width: 100%; min-height: 2.7rem; padding: .55rem .65rem; color: var(--heritage-ink); background: #fff; border: 1px solid #bba891; }
.board-form textarea { resize: vertical; }
.board-form form > button { min-height: 3rem; margin-top: .5rem; color: #fff; background: var(--heritage-orange); border: 0; cursor: pointer; font-weight: 700; }
.board-form form > button:hover { background: var(--heritage-orange-dark); }
.honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.consent-check { display: grid !important; grid-template-columns: auto 1fr; align-items: start; gap: .55rem; font-weight: 400 !important; }
.consent-check input { width: 1.15rem; min-height: 1.15rem; margin-top: .2rem; }
.form-note { margin: .3rem 0; color: var(--heritage-muted); font-size: var(--fs-xs); }
.form-success { margin-bottom: .8rem; padding: .7rem .8rem; color: #124d38; background: #e8f7ee; border: 1px solid #9bc9ab; font-size: var(--fs-xs); }

/* Public requests and surveys share the current portal's form language. */
.public-form-section { background: var(--heritage-cream); }
.service-form-layout, .survey-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 320px); align-items: start; gap: 1.5rem; }
.public-form-card { min-width: 0; padding: clamp(1rem, 3vw, 2rem); background: #fff; border: 1px solid var(--heritage-line); border-top: 5px solid var(--heritage-green); border-radius: .8rem; box-shadow: var(--heritage-shadow); }
.public-form-heading { margin-bottom: 1.75rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--heritage-line); }
.public-form-eyebrow { color: var(--heritage-orange-dark); font-size: var(--fs-xs); font-weight: 700; }
.public-form-heading h2 { margin: .25rem 0 .5rem; color: var(--heritage-green-dark); font-size: clamp(1.35rem, 2vw, 1.75rem); line-height: 1.4; }
.public-form-heading p, .public-form-description { margin: .4rem 0; color: var(--heritage-muted); font-size: var(--fs-sm); }
.public-form-card form { display: grid; gap: 1.5rem; }
.public-form-card .form-fieldset { display: grid; gap: 1rem; min-inline-size: 0; margin: 0; padding: 1rem 0 0; border: 0; }
.public-form-card .form-fieldset > legend { padding: 0; color: var(--heritage-green-dark); font-size: var(--fs-md); font-weight: 700; }
.public-form-card .form-fieldset > legend > span { display: inline-grid; place-items: center; width: 2rem; height: 2rem; margin-right: .35rem; color: var(--heritage-green-dark); background: #e9f3ed; border-radius: 50%; font-size: var(--fs-xs); }
.public-form-card .form-row { display: grid; gap: 1rem; }
.public-form-card .form-row--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.public-form-card .form-row--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.public-form-card label { display: grid; min-width: 0; gap: .4rem; color: var(--heritage-green-dark); font-size: var(--fs-sm); font-weight: 600; }
.public-form-card input:not([type="hidden"]):not([type="radio"]):not([type="checkbox"]), .public-form-card select, .public-form-card textarea { width: 100%; min-width: 0; min-height: 48px; padding: .7rem .85rem; color: var(--heritage-ink); background: #fff; border: 1px solid #b9c7be; border-radius: .4rem; font: inherit; font-size: var(--fs-base); font-weight: 400; }
.public-form-card textarea { resize: vertical; line-height: 1.7; }
.public-form-card input:focus-visible, .public-form-card select:focus-visible, .public-form-card textarea:focus-visible, .public-form-card button:focus-visible { outline: 3px solid #d6a24d; outline-offset: 3px; }
.public-form-card input[type="checkbox"], .public-form-card input[type="radio"] { accent-color: var(--heritage-green-dark); }
.public-form-footer { display: grid; gap: .85rem; padding-top: 1.5rem; border-top: 1px solid var(--heritage-line); }
.public-form-footer .consent-check { padding: 1rem; background: var(--heritage-cream); border-radius: .4rem; line-height: 1.7; }
.public-form-footer .form-note { font-size: var(--fs-xs); }
.public-form-footer button { justify-self: start; min-width: 180px; min-height: 48px; padding: .8rem 1.5rem; color: #fff; background: var(--heritage-green-dark); border: 0; border-radius: .4rem; font: inherit; font-weight: 600; cursor: pointer; }
.public-form-footer button:hover { background: var(--heritage-green); }
.public-form-card .form-success { padding: 1rem; border-radius: .4rem; font-size: var(--fs-base); }
.public-form-aside { display: grid; min-width: 0; gap: 1rem; }
.public-form-aside > section { padding: 1.4rem; background: #fff; border: 1px solid var(--heritage-line); border-radius: .8rem; }
.public-form-aside h2 { margin: .3rem 0 1rem; color: var(--heritage-green-dark); font-size: var(--fs-md); }
.public-form-aside p { color: var(--heritage-muted); font-size: var(--fs-sm); }
.service-steps { display: grid; gap: 1.2rem; padding-left: 1.3rem; color: var(--heritage-green-dark); }
.service-steps li::marker { color: var(--heritage-orange-dark); font-weight: 700; }
.service-steps b, .service-steps span { display: block; }
.service-steps span { margin-top: .25rem; color: var(--heritage-muted); font-size: var(--fs-sm); }
.service-contacts { display: grid; gap: .85rem; padding: 0; list-style: none; }
.service-contacts li { display: grid; gap: .2rem; font-size: var(--fs-sm); }
.service-contacts b { color: var(--heritage-green-dark); }
.service-contact-phone { color: var(--heritage-green-dark); font-size: var(--fs-lg); font-weight: 700; }
.service-form-back { display: inline-block; margin-top: .7rem; color: var(--heritage-green-dark); font-weight: 600; }
.survey-question { min-inline-size: 0; margin: 0; padding: 1rem 0; border: 0; border-bottom: 1px solid var(--heritage-line); }
.survey-question legend { padding: 0; color: var(--heritage-ink); font-size: var(--fs-base); font-weight: 600; }
.survey-scale { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .45rem; }
.public-form-card .survey-radio { position: relative; display: block; cursor: pointer; }
.survey-radio input { position: absolute; top: .65rem; left: .55rem; width: 15px; height: 15px; margin: 0; }
.survey-radio > span { display: grid; justify-items: center; gap: .2rem; min-height: 82px; padding: .5rem .2rem; border: 1px solid #b9c7be; border-radius: .5rem; background: #fff; }
.survey-radio b { font-size: var(--fs-lg); }
.survey-radio small { color: var(--heritage-muted); font-size: var(--fs-xs); font-weight: 400; text-align: center; overflow-wrap: anywhere; }
.survey-radio input:checked + span { color: #fff; border-color: var(--heritage-green-dark); background: var(--heritage-green-dark); }
.survey-radio input:checked + span small { color: #fff; }
.survey-radio input:focus-visible + span { outline: 3px solid #d6a24d; outline-offset: 3px; }
.survey-empty { padding: 1rem; text-align: center; background: var(--heritage-cream); border: 1px dashed #c4d3c9; border-radius: .5rem; }
.survey-empty > span { color: var(--heritage-green-dark); font-size: var(--fs-2xl); font-weight: 700; }
.survey-empty small { color: var(--heritage-muted); }
.survey-averages { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .75rem; font-size: var(--fs-sm); }
.survey-averages dd { margin: 0; color: var(--heritage-green-dark); white-space: nowrap; }
.survey-published { padding: 0; list-style: none; overflow-wrap: anywhere; }
.survey-published li { padding: 1rem 0; border-top: 1px solid var(--heritage-line); }
@media (max-width: 960px) {
    .service-form-layout, .survey-layout { grid-template-columns: minmax(0, 1fr); }
    .service-form-help { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 540px) {
    .public-form-card .form-row--two, .public-form-card .form-row--three, .service-form-help { grid-template-columns: minmax(0, 1fr); }
    .public-form-footer button { width: 100%; }
    .survey-radio input { position: static; display: block; margin: 0 auto .35rem; }
    .survey-scale { gap: .3rem; }
    .survey-radio > span { min-height: 70px; }
}
.board-posts { display: grid; gap: .75rem; }
.board-posts > .legacy-section-heading { margin-bottom: 0; }
.board-posts article header { display: grid; grid-template-columns: 2.7rem 1fr; gap: .7rem; }
.board-posts article header > span { width: 2.7rem; height: 2.7rem; display: grid; place-items: center; color: #fff; background: var(--heritage-green); border-radius: 50%; font-weight: 700; }
.board-posts h3 { margin: 0; color: var(--heritage-green-dark); font-size: var(--fs-sm); }
.board-posts header small { color: var(--heritage-muted); font-size: var(--fs-xs); }
.board-posts article > p { margin: .75rem 0 0; color: var(--heritage-muted); font-size: var(--fs-xs); }
.official-response { margin-top: .85rem; padding: .75rem; background: var(--heritage-cream); border-left: 5px solid var(--heritage-orange); }
.official-response b { color: var(--heritage-orange-dark); font-size: var(--fs-xs); }
.official-response p { margin: .3rem 0 0; font-size: var(--fs-xs); }


@keyframes msng-pulse {
    0%, 100% { box-shadow: 0 4px 16px rgba(0, 153, 255, 0.4); }
    50%       { box-shadow: 0 6px 28px rgba(160, 51, 255, 0.55); }
}

.messenger-launcher {
    position: fixed;
    z-index: 155;
    right: 1.25rem;
    bottom: 5rem;
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .5rem 1.1rem .5rem .55rem;
    color: #fff;
    background: linear-gradient(135deg, #0099FF 0%, #A033FF 100%);
    border-radius: 2rem;
    box-shadow: 0 4px 16px rgba(0, 153, 255, 0.4);
    text-decoration: none;
    font-weight: 600;
    font-size: var(--fs-xs);
    animation: msng-pulse 3s ease-in-out infinite;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.messenger-launcher:hover {
    transform: translateY(-3px) scale(1.04);
    box-shadow: 0 10px 28px rgba(0, 153, 255, 0.5);
    animation: none;
}
.messenger-launcher svg {
    width: 1.85rem;
    height: 1.85rem;
    flex-shrink: 0;
    filter: drop-shadow(0 1px 2px rgba(0,0,0,.2));
}

.assistant-panel {
    position: fixed;
    z-index: 170;
    right: 1.25rem;
    bottom: 8rem;
    width: min(24rem, calc(100% - 2rem));
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--heritage-line);
    border-radius: 4px;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.2);
}
.assistant-panel[hidden] { display: none; }
.assistant-panel > header {
    min-height: 3.8rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .6rem;
    padding: .75rem 1rem;
    color: #fff;
    background: var(--heritage-green-dark);
    border-bottom: 2px solid var(--heritage-gold);
}
.assistant-panel > header > div { display: flex; align-items: center; gap: .6rem; }
.assistant-panel > header > div > span {
    width: 2.2rem;
    height: 2.2rem;
    display: grid;
    place-items: center;
    color: var(--heritage-green-dark);
    background: #fff;
    border-radius: 3px;
    font-size: var(--fs-xs);
    font-weight: 700;
}
.assistant-panel header strong, .assistant-panel header small { display: block; }
.assistant-panel header strong { font-size: var(--fs-sm); font-weight: 600; }
.assistant-panel header small { color: rgba(255,255,255,.8); font-size: var(--fs-xs); }
.assistant-panel header button {
    width: 1.8rem;
    height: 1.8rem;
    display: grid;
    place-items: center;
    color: #fff;
    background: transparent;
    border: 1px solid rgba(255,255,255,.4);
    border-radius: 3px;
    cursor: pointer;
    font-size: var(--fs-md);
}
.assistant-messages { max-height: 18rem; display: grid; gap: .55rem; padding: .85rem; overflow-y: auto; background: #f7faf8; }
.assistant-message { max-width: 88%; margin: 0; padding: .6rem .8rem; border-radius: 4px; font-size: var(--fs-xs); line-height: 1.55; }
.assistant-message--bot { justify-self: start; color: var(--heritage-ink); background: #fff; border: 1px solid var(--heritage-line); }
.assistant-message--user { justify-self: end; color: #fff; background: var(--heritage-green-dark); }
.assistant-panel > form { display: grid; grid-template-columns: 1fr auto; border-top: 1px solid var(--heritage-line); }
.assistant-panel input { min-width: 0; min-height: 2.8rem; padding: .55rem .85rem; border: 0; font-size: var(--fs-xs); }
.assistant-panel input:focus { outline: none; background: #fdfdfd; }
.assistant-panel form button { min-width: 4rem; color: #fff; background: var(--heritage-green-dark); border: 0; cursor: pointer; font-weight: 600; font-size: var(--fs-xs); transition: background 0.15s ease; }
.assistant-panel form button:hover { background: var(--heritage-green); }

.cookie-banner {
    position: fixed;
    z-index: 165;
    right: 1rem;
    bottom: 1rem;
    left: 1rem;
    max-width: 64rem;
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 1rem;
    margin-inline: auto;
    padding: .85rem 1rem;
    color: var(--heritage-ink);
    background: #fff;
    border: 1px solid var(--heritage-line);
    border-top: 5px solid var(--heritage-orange);
    box-shadow: 0 18px 48px rgba(39,28,20,.24);
}
.cookie-banner[hidden] { display: none; }
.cookie-banner strong { color: var(--heritage-green-dark); }
.cookie-banner p { margin: .2rem 0; color: var(--heritage-muted); font-size: var(--fs-xs); }
.cookie-banner a { color: var(--heritage-orange-dark); font-size: var(--fs-xs); }
.cookie-banner > div:last-child { display: flex; gap: .45rem; }
.cookie-banner button { min-height: 2.5rem; padding: .45rem .7rem; color: var(--heritage-green-dark); background: #fff; border: 1px solid var(--heritage-green); cursor: pointer; font-size: var(--fs-xs); font-weight: 700; }
.cookie-banner button:last-child { color: #fff; background: var(--heritage-green); }

@media (max-width: 1160px) {
    .portal-menu-toggle { display: inline-flex; }
    .portal-navigation {
        position: fixed;
        z-index: 130;
        inset: 7.8rem 1rem auto;
        display: grid;
        max-height: calc(100vh - 9rem);
        justify-content: stretch;
        padding: 0.8rem;
        overflow-y: auto;
        border-radius: 4px;
        background: var(--heritage-green-dark);
        border: 1px solid rgba(255, 255, 255, 0.2);
        box-shadow: 0 12px 36px rgba(0, 0, 0, 0.3);
        opacity: 0;
        pointer-events: none;
        transform: translateY(-0.75rem);
        transition: opacity 160ms ease, transform 160ms ease;
    }
    .portal-navigation.is-open { opacity: 1; pointer-events: auto; transform: translateY(0); }
    .portal-navigation a { padding: 0.8rem; color: #fff; }
    .portal-navigation a:hover,
    .portal-navigation a[aria-current="page"] { background: rgba(255, 255, 255, 0.16); }
    .nav-item { flex-wrap: wrap; }
    .nav-item > a { flex: 1; min-width: 0; }
    .nav-item__toggle { display: grid; color: #fff; background: rgba(255,255,255,.14); }
    .nav-dropdown {
        position: static;
        right: auto;
        left: auto;
        top: auto;
        width: 100%;
        min-width: 0;
        padding: 0.25rem 0.5rem;
        margin-top: 0.25rem;
        margin-bottom: 0.35rem;
        background: rgba(0, 0, 0, 0.28);
        border: 0;
        border-top: 0;
        border-radius: 4px;
        box-shadow: none;
        opacity: 1;
        pointer-events: auto;
        transform: none !important;
        display: none;
    }
    .nav-item:not(.is-open):hover > .nav-dropdown {
        display: none !important;
    }
    .nav-item:hover > .nav-dropdown,
    .nav-item.is-open > .nav-dropdown {
        transform: none !important;
        left: auto;
        top: auto;
    }
    .nav-item.is-open > .nav-dropdown {
        display: grid;
        transform: none !important;
        left: auto;
        top: auto;
    }
    .nav-dropdown a {
        display: block;
        padding: 0.65rem 1rem;
        color: #fff !important;
        font-size: var(--fs-sm);
        white-space: normal;
        border-radius: 3px !important;
        line-height: 1.45;
    }
    .nav-dropdown a:hover,
    .nav-dropdown a:active {
        background: rgba(255, 255, 255, 0.16) !important;
        color: #fff !important;
    }
    .legacy-priority__grid { grid-template-columns: 0.9fr 1.1fr; gap: 1.2rem; }
    .heritage-activities__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .archive-grid { grid-template-columns: 1fr; }
    .link-groups { grid-template-columns: 1fr 1fr; }
    .community-hub__grid { grid-template-columns: 1fr; }
}


@media (max-width: 900px) {
    :root { --portal-shell: min(100% - 1.25rem, 48rem); }
    .office-strip__inner > span:first-child { display: none; }
    .office-strip__inner { justify-content: flex-end; }
    .portal-header__inner { min-height: 5.2rem; }
    .portal-brand { gap: 0.35rem; }
    .portal-brand__seal { width: 3.2rem; height: 3.2rem; }
    .portal-brand__name { height: 3rem; }
    .portal-navigation { inset-block-start: 6.9rem; }
    .heritage-hero:not(.heritage-hero--video) { min-height: clamp(16rem, 36.56vw, 22rem); }
    .heritage-hero__image { background-position: center top; }
    .heritage-hero__badges { top: 1rem; right: 1rem; bottom: auto; display: flex; gap: 0.5rem; }
    .heritage-hero__badges a { width: 9.2rem; min-height: 3.5rem; padding: 0.4rem 0.65rem; }
    .heritage-hero__badges b { font-size: var(--fs-md); }
    .heritage-hero__badges span { font-size: var(--fs-xs); }
    .heritage-hero__welcome { display: none; }
    .access-ribbon {
        top: auto;
        right: auto;
        left: .65rem;
        bottom: .65rem;
        width: calc(100% - 5rem);
        max-width: calc(100% - 5rem);
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
        gap: 0.3rem;
        padding: 0.45rem 0.55rem;
        background: #5a2410;
        border-radius: 4px;
        transform: none !important;
        z-index: 160;
        box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
        border: 1px solid rgba(255, 255, 255, 0.25);
        overflow: hidden;
    }
    .access-ribbon.is-collapsed {
        width: 2.8rem;
        height: 2.8rem;
        padding: .3rem;
        overflow: hidden;
        transform: none !important;
        z-index: 150;
        box-shadow: 2px 2px 12px rgba(0, 0, 0, 0.25);
    }
    .access-ribbon.is-collapsed .access-ribbon__scroller { display: none; }
    .access-ribbon .access-ribbon__toggle {
        position: static;
        order: -1;
        width: 2.15rem;
        height: 2.15rem;
        display: grid;
        place-items: center;
        transform: none;
        border: 1px solid rgba(255,255,255,.45);
        border-radius: 3px;
        background: rgba(255, 255, 255, 0.18);
        color: #fff;
        cursor: pointer;
        padding: 0;
        box-shadow: none;
    }
    .access-ribbon .access-ribbon__toggle span {
        display: grid;
        place-items: center;
        pointer-events: none;
    }
    .access-ribbon .access-ribbon__toggle span::before {
        content: "\2715";
        font-size: var(--fs-sm);
        font-weight: 700;
        line-height: 1;
    }
    .access-ribbon.is-collapsed .access-ribbon__toggle {
        width: 100%;
        height: 100%;
        background: transparent;
        border: 1px solid rgba(255,255,255,.4);
    }
    .access-ribbon.is-collapsed .access-ribbon__toggle span::before {
        content: "A";
        font-family: var(--font-latin);
        font-size: var(--fs-sm);
        font-weight: 700;
    }
    .access-ribbon__label { display: none; }
    .access-ribbon__separator { display: none; }
    .access-ribbon__scroller {
        min-width: 0;
        flex: 1 1 auto;
        flex-direction: row;
        align-items: center;
        gap: 0.28rem;
        overflow-x: auto;
        overflow-y: hidden;
        overscroll-behavior-inline: contain;
        scrollbar-width: thin;
        touch-action: pan-x;
        -webkit-overflow-scrolling: touch;
    }
    .access-ribbon__scroller > * { flex: 0 0 auto; }
    .access-ribbon__admin, .access-ribbon__quick { 
        min-height: 2.15rem;
        margin-top: 0;
        padding: 0.3rem 0.5rem;
        font-size: var(--fs-xs);
    }
    .access-ribbon__group { display: flex; gap: 0.28rem; }
    .access-ribbon__scroller button,
    .access-ribbon__scroller a { min-width: 2.15rem; min-height: 2.15rem; touch-action: pan-x; }
    .legacy-priority__grid, .portal-main__grid { grid-template-columns: minmax(0, 1fr); }
    .leaders-board { order: -1; }
    .leaders-board > img { max-height: none; }
    .portal-main__aside { grid-template-columns: repeat(3, 1fr); }
    .portal-footer__grid, .sitemap-grid { grid-template-columns: 1fr 1fr; }
    .portal-footer__identity { grid-column: 1 / -1; }
    .split-feature, .leader-feature, .article-layout, .contact-layout { grid-template-columns: 1fr; }
    .board-layout { grid-template-columns: 1fr; }
    .leader-feature img { max-height: 28rem; }
    .directory-grid, .transparency-directory, .banner-pair { grid-template-columns: 1fr; }
    .article-aside { grid-template-columns: repeat(2, 1fr); }
    .article-aside h2 { grid-column: 1 / -1; }
    .participation-grid { grid-template-columns: 1fr 1fr; }
    .system-links .portal-shell { grid-template-columns: repeat(2, 1fr); }
    .system-links a:nth-child(2n) { border-right: 0; }
    .visit-contact__grid { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
    body { padding-bottom: 3.5rem; }
    .office-strip { font-size: var(--fs-xs); }
    .portal-brand { gap: 0.3rem; }
    .portal-brand__seal { width: 2.8rem; height: 2.8rem; }
    .portal-brand__name { height: 2.5rem; max-width: calc(100vw - 8rem); }
    .heritage-hero {
        min-height: auto;
        display: flex;
        flex-direction: column;
        background: #fff;
        overflow: visible;
    }
    .heritage-hero__image {
        position: relative;
        inset: auto;
        width: 100%;
        height: clamp(170px, 48vw, 225px);
        background-position: 50% 20%;
        background-size: cover;
        background-repeat: no-repeat;
        border-bottom: 2px solid var(--heritage-gold);
    }
    .heritage-hero__welcome { display: none; }
    .heritage-hero__badges {
        position: static;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 0.55rem;
        padding: 0.65rem 0.75rem;
        background: #ffffff;
        border-bottom: 1px solid var(--heritage-line);
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
    }
    .heritage-hero__badges a {
        width: 100%;
        min-height: 3.4rem;
        display: flex;
        align-items: center;
        gap: 0.55rem;
        padding: 0.45rem 0.7rem;
        background: #faf7f2;
        border: 1px solid var(--heritage-line);
        border-left: 4px solid var(--heritage-green);
        border-radius: 5px;
        box-shadow: none;
    }
    .heritage-hero__badges b { font-size: var(--fs-md); line-height: 1; }
    .heritage-hero__badges span { font-size: var(--fs-xs); line-height: 1.25; }
    .legacy-priority { padding-block: 2rem 3rem; }
    .service-board__items { grid-template-columns: 1fr; }
    .service-board__item, .service-board__item:nth-child(even) { border-right: 0; }
    .leaders-board__links { flex-wrap: wrap; }
    .leaders-board__links a { min-width: 50%; }
    .portal-main { padding-block: 3rem; }
    .portal-main__aside { grid-template-columns: 1fr; }
    .heritage-tabs .tab-list { overflow-x: auto; }
    .heritage-tabs .tab-list button { flex: none; }
    .heritage-news-list article { grid-template-columns: 4rem 1fr; }
    .heritage-news-list article > a { grid-column: 2; justify-self: start; }
    .heritage-activities__grid { gap: .75rem; }
    .activity-card > div { padding: .55rem .6rem .65rem; }
    .activity-card h3 { font-size: var(--fs-xs); }
    .portal-footer__grid, .sitemap-grid { grid-template-columns: 1fr; }
    .portal-footer__grid { padding-block: 2.4rem 2rem; gap: 2rem; }
    .portal-footer__identity {
        align-items: center;
        gap: 1rem;
    }
    .portal-footer__identity img {
        width: 4rem;
        height: 4rem;
    }
    .portal-footer__identity-info strong {
        font-size: var(--fs-base);
    }
    .portal-footer__identity-info p {
        font-size: var(--fs-xs);
    }
    .portal-footer__bottom-inner {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.9rem;
    }
    .portal-footer__nav {
        gap: 0.6rem;
    }
    .portal-menu-toggle [data-menu-label] { display: none; }
    .office-strip__actions > a:last-child, .office-strip__actions i:last-of-type { display: none; }
    .mission-grid, .link-groups { grid-template-columns: 1fr; }
    .archive-item { grid-template-columns: 8rem 1fr; }
    .archive-item:not(:has(.archive-item__image)) { grid-template-columns: 1fr; }
    .event-timeline article { grid-template-columns: 5.4rem 1fr; }
    .event-timeline time { width: 5.4rem; }
    .event-timeline::before { left: 2.7rem; }
    .article-aside { grid-template-columns: 1fr; }
    .article-aside h2 { grid-column: auto; }
    .inner-hero { min-height: 17rem; }
    .inner-hero .portal-shell { padding-block: 3rem 2rem; }
    .inner-hero h1 { font-size: var(--fs-2xl); }
    .content-section { padding-block: 2.7rem; }
    .legacy-section-heading { grid-template-columns: .42rem 1fr; align-items: center; }
    .legacy-section-heading small { grid-column: 2; }
    .product-feature { grid-template-columns: 1fr; }
    .product-feature > img { max-height: 18rem; }
    .participation-grid, .official-banners__grid { grid-template-columns: 1fr; }
    .report-channels { grid-template-columns: 1fr; }
    .system-links .portal-shell { grid-template-columns: 1fr; }
    .system-links a { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.2); }
    .visit-stats { grid-template-columns: repeat(2, 1fr); }
    .visit-stats div:nth-child(2) { border-right: 0; }
    .visit-stats div:nth-child(-n+2) { border-bottom: 1px solid var(--heritage-line); }
    .access-ribbon {
        right: auto;
        left: .65rem;
        bottom: 0.65rem;
        max-width: calc(100% - 4.5rem);
        justify-content: flex-start;
        transform: none !important;
    }
    .access-ribbon__quick span,
    .access-ribbon__admin span { display: none; }
    .assistant-panel { right: .65rem; bottom: 8rem; width: calc(100% - 1.3rem); }
    .cookie-banner { grid-template-columns: 1fr; right: .65rem; bottom: .65rem; left: .65rem; }
    .messenger-launcher { right: .65rem; bottom: 1rem; padding: .45rem .9rem .45rem .45rem; font-size: var(--fs-xs); }
    .cookie-banner > div:last-child { justify-content: stretch; }
    .cookie-banner button { flex: 1; }
}

@media (max-width: 1160px) {
    .community-overview { grid-template-columns: repeat(2, 1fr); }
    .overview-panel:nth-child(2) { border-right: 0; }
    .overview-panel:nth-child(-n+2) { border-bottom: 1px solid var(--heritage-line); }
    .legacy-logo-links .portal-shell > div:last-child { grid-template-columns: repeat(4, 1fr); }
}

@media (max-width: 900px) {
    .integrity-feature { grid-template-columns: 1fr; }
    .official-banners__grid--three { grid-template-columns: 1fr 1fr; }
    .legacy-logo-links .portal-shell > div:last-child { grid-template-columns: repeat(3, 1fr); }
    .personnel-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .legacy-category-group > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
    .memorial-ribbon { width: 3.6rem; }
    .community-overview { grid-template-columns: 1fr; }
    .overview-panel { border-right: 0; border-bottom: 1px solid var(--heritage-line); }
    .overview-panel:last-child { border-bottom: 0; }
    .official-banners__grid--three { grid-template-columns: 1fr; }
    .official-banners__grid--three a { min-height: 0; }
    .legacy-logo-links .portal-shell > div:last-child { grid-template-columns: 1fr 1fr; }
    .transparency-doc-groups { grid-template-columns: 1fr; }
    .agency-facts-grid, .organization-groups, .service-procedures { grid-template-columns: 1fr; }
    .personnel-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
    .person-card > div { padding: .7rem; }
    .ita-disclosure-groups > section > div, .legacy-category-group > div { grid-template-columns: 1fr; }
    .legacy-gallery > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .content-media-carousel > header { align-items: flex-start; }
    .content-media-carousel__track { grid-auto-columns: minmax(210px, 82%); }
}

/* Page Transition & Loading Progress Indicator */
.page-progress-bar {
    position: fixed;
    top: 0;
    left: 0;
    width: 0%;
    height: 3px;
    background: linear-gradient(90deg, var(--heritage-gold), #ffe57f, var(--heritage-gold));
    z-index: 9999;
    pointer-events: none;
    opacity: 0;
    transition: width 0.25s cubic-bezier(0.1, 0.7, 0.1, 1), opacity 0.2s ease-in-out;
    box-shadow: 0 0 10px rgba(212, 160, 23, 0.75);
}

.page-progress-bar.is-loading {
    opacity: 1;
}

.page-progress-bar.is-done {
    width: 100% !important;
    opacity: 0;
    transition: width 0.15s ease-out, opacity 0.25s ease-out 0.08s;
}

#main-content {
    transition: opacity 0.12s ease-out;
}

#main-content.is-navigating {
    opacity: 0.15;
}

@media print {
    .office-strip, .portal-header, .access-ribbon, .portal-footer, .back-to-top, .breadcrumb, .article-aside, .article-actions { display: none !important; }
    .article-layout { display: block; }
    .article-body { border: 0; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}

/* Gallery category filter tabs */
.gallery-filter {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0.5rem;
    margin: 0 0 1.5rem;
    width: fit-content;
    max-width: 100%;
    border: 0;
    border-radius: 8px;
    background: transparent;
}
.gallery-filter__tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
    min-height: 44px;
    padding: 0.45rem 0.85rem;
    font-size: var(--fs-xs);
    font-weight: 600;
    color: var(--heritage-ink);
    background: #fff;
    text-decoration: none;
    border: 1px solid var(--heritage-line);
    border-radius: 8px;
    transition: background .15s ease, color .15s ease;
    white-space: nowrap;
}
.gallery-filter__tab:last-child {
    border-right: 1px solid var(--heritage-line);
}
.gallery-filter__tab:hover {
    background: var(--heritage-cream);
    color: var(--heritage-orange);
}
.gallery-filter__tab.is-active {
    background: var(--heritage-green-dark);
    border-color: var(--heritage-green-dark);
    color: #fff;
    font-weight: 700;
    box-shadow: 0 2px 5px rgba(3, 63, 44, 0.12);
}
.gallery-filter__tab.is-active:hover {
    color: #fff;
    background: var(--heritage-green);
}
.gallery-filter__tab--all {
    font-weight: 700;
}

/* Public Gallery & Lightbox */
.public-gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
    gap: 1.25rem;
    margin-top: 1.25rem;
}
.public-gallery-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--heritage-line);
    border-radius: 8px;
    box-shadow: 0 4px 16px rgba(42, 40, 37, 0.06);
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.public-gallery-card:hover,
.public-gallery-card:focus-visible {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(42, 40, 37, 0.12);
    border-color: var(--heritage-orange);
    outline: none;
}
.public-gallery-card img {
    width: 100%;
    height: auto;
    display: block;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    background: var(--heritage-cream);
}
.public-gallery-card__placeholder {
    width: 100%;
    aspect-ratio: 16 / 10;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, #eaf4ee, #fbeee2);
    color: var(--heritage-green-dark);
    font-size: var(--fs-sm);
    font-weight: 600;
}
.public-gallery-card h3 {
    margin: .5rem 1rem .25rem;
    color: var(--heritage-green-dark);
    font-size: var(--fs-base);
    line-height: 1.45;
    overflow-wrap: anywhere;
}
.public-gallery-card small {
    margin: auto 1rem 1rem;
    padding-top: 0.5rem;
    color: var(--heritage-muted);
    font-size: var(--fs-xs);
}
.public-gallery-card .badge {
    align-self: flex-start;
    margin: .75rem 1rem 0;
}

.public-gallery-lightbox {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1rem;
    margin-top: 1.5rem;
}
.public-gallery-thumb {
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: 8px;
    border: 1px solid var(--heritage-line);
    box-shadow: 0 3px 10px rgba(0,0,0,.06);
    transition: transform .2s ease, box-shadow .2s ease;
}
.public-gallery-thumb:hover {
    transform: scale(1.03);
    box-shadow: 0 6px 18px rgba(0,0,0,.12);
}
.public-gallery-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.public-gallery-lightbox-target {
    display: none;
    position: fixed;
    z-index: 1000;
    inset: 0;
    background: rgba(10, 15, 12, 0.88);
    backdrop-filter: blur(4px);
    place-items: center;
    padding: 2rem;
}
.public-gallery-lightbox-target:target {
    display: grid;
}
.public-gallery-lightbox-target img {
    max-width: min(90vw, 1100px);
    max-height: 80vh;
    object-fit: contain;
    border-radius: 6px;
    box-shadow: 0 12px 40px rgba(0,0,0,.5);
}
.public-gallery-lightbox-target p {
    color: #fff;
    text-align: center;
    margin-top: .75rem;
    font-size: var(--fs-base);
    max-width: 800px;
}
.public-gallery-lightbox__close {
    position: absolute;
    top: 1.5rem;
    right: 2rem;
    color: #fff;
    font-size: var(--fs-3xl);
    line-height: 1;
    text-decoration: none;
    opacity: .8;
    transition: opacity .15s ease;
}
.public-gallery-lightbox__close:hover {
    opacity: 1;
}
.gallery-meta {
    margin-top: 2rem;
    color: var(--heritage-muted);
    font-size: var(--fs-xs);
}

/* Gallery Viewer Lightbox */
.gallery-viewer__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
    gap: 0.75rem;
    margin-top: 1.25rem;
}
.gallery-viewer__thumb {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: 8px;
    border: 1px solid var(--heritage-line);
    box-shadow: 0 2px 8px rgba(0,0,0,.06);
    cursor: pointer;
    padding: 0;
    background: none;
    transition: transform .2s ease, box-shadow .2s ease;
}
.gallery-viewer__thumb:hover {
    transform: scale(1.03);
    box-shadow: 0 6px 18px rgba(0,0,0,.12);
}
.gallery-viewer__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.gallery-viewer__overlay {
    position: fixed;
    z-index: 1000;
    inset: 0;
    background: rgba(10, 15, 12, 0.92);
    backdrop-filter: blur(6px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    gap: 0.5rem;
}
.gallery-viewer__overlay[hidden] { display: none; }
.gallery-viewer__stage {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1;
    width: 100%;
    max-height: calc(100vh - 8rem);
    min-height: 0;
    touch-action: pan-y;
    -webkit-user-select: none;
    user-select: none;
}
.gallery-viewer__image {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    border-radius: 6px;
    box-shadow: 0 12px 40px rgba(0,0,0,.5);
    pointer-events: none;
}
.gallery-viewer__close {
    position: absolute;
    top: 0.5rem;
    right: 0.75rem;
    background: rgba(0,0,0,.3);
    border: none;
    color: #fff;
    font-size: var(--fs-2xl);
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: .85;
    transition: opacity .15s ease, background .15s ease;
    z-index: 10;
    line-height: 1;
}
.gallery-viewer__close:hover { opacity: 1; background: rgba(0,0,0,.5); }
.gallery-viewer__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.15);
    color: #fff;
    font-size: var(--fs-xl);
    width: 2.8rem;
    height: 2.8rem;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .15s ease;
    z-index: 10;
    line-height: 1;
}
.gallery-viewer__nav--prev { left: 0.5rem; }
.gallery-viewer__nav--next { right: 0.5rem; }
.gallery-viewer__nav:hover { background: rgba(255,255,255,.25); }
.gallery-viewer__caption {
    color: #fff;
    text-align: center;
    font-size: var(--fs-sm);
    max-width: 700px;
    line-height: 1.5;
}
.gallery-viewer__caption[hidden] { display: none; }
.gallery-viewer__counter {
    color: rgba(255,255,255,.5);
    text-align: center;
    font-size: var(--fs-xs);
    letter-spacing: 0.04em;
}

@media (max-width: 600px) {
    .gallery-viewer__grid { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 0.5rem; }
    .gallery-viewer__nav { width: 2.2rem; height: 2.2rem; font-size: var(--fs-lg); }
    .gallery-viewer__nav--prev { left: 0.25rem; }
    .gallery-viewer__nav--next { right: 0.25rem; }
    .gallery-viewer__close { top: 0.25rem; right: 0.5rem; width: 2.2rem; height: 2.2rem; font-size: var(--fs-xl); }
}

/* ==========================================================================
   Bright sunrise theme (2026-09-28): warm peach/orange backgrounds, ribbon
   headings, sea-side activity band and the numbered public pager.
   Background art is original SVG in /assets/images/theme/.
   ========================================================================== */
body { background: #fff8f0; }

.office-strip { background: linear-gradient(90deg, #8a2c0c 0%, #b8410f 45%, #e8590c 100%); }

.portal-header { background: #ffe3c2 url("../images/theme/sunrise-swoosh.svg") center / cover no-repeat; border-bottom: 4px solid var(--heritage-gold); }
.portal-header.is-scrolled { background: rgba(255, 247, 238, 0.97); }
.portal-header::after { content: ""; position: absolute; right: .6rem; top: 50%; width: 4.2rem; height: 4.2rem; margin-top: -2.1rem; background: url("../images/theme/hibiscus.svg") center / contain no-repeat; transform: rotate(-18deg); pointer-events: none; opacity: .95; }
.portal-header.is-scrolled::after { display: none; }
@media (max-width: 1399px) { .portal-header::after { display: none; } }
.portal-menu-toggle { background: var(--sun-ribbon); border: 2px solid var(--heritage-gold); border-radius: 999px; }

@media (min-width: 1161px) {
    .portal-navigation { background: var(--sun-ribbon); border: 2px solid var(--heritage-gold); border-radius: 999px; box-shadow: 0 6px 18px rgba(154, 52, 18, 0.28); }
    .portal-navigation a { border-radius: 999px; }
    .portal-navigation a:hover { background: rgba(255, 255, 255, 0.18); }
    .portal-navigation a[aria-current="page"] { color: #5a2410; background: linear-gradient(180deg, #ffe08a 0%, #ffc233 100%); }
}
@media (max-width: 1160px) {
    .portal-navigation { background: linear-gradient(180deg, #a8410f 0%, #7c290b 100%); border: 2px solid var(--heritage-gold); }
}

.heritage-hero--video .heritage-hero__badges { background: #fff3e4 url("../images/theme/prajam-pattern.svg"); border-bottom: 0; }

/* Ribbon section headings (home) */
.ribbon-heading,
.portal-body--home .legacy-section-heading { display: flex; flex-direction: column; align-items: center; gap: .45rem; margin-bottom: 1.6rem; padding: 0; text-align: center; border: 0; }
.portal-body--home .legacy-section-heading > span { display: none; }
.ribbon-heading h2,
.portal-body--home .legacy-section-heading h2 { position: relative; margin: 0; padding: .5rem 2.4rem .6rem; color: #fff; background: var(--sun-ribbon); border: 3px solid #ffb347; border-radius: 999px; box-shadow: 0 0 0 4px rgba(255, 255, 255, .75), 0 10px 24px rgba(138, 44, 12, 0.28); font-size: clamp(1.15rem, 1rem + .8vw, 1.55rem); line-height: 1.3; text-shadow: 0 1px 2px rgba(0, 0, 0, .3); }
.ribbon-heading h2::before, .ribbon-heading h2::after,
.portal-body--home .legacy-section-heading h2::before, .portal-body--home .legacy-section-heading h2::after { content: ""; position: absolute; top: 50%; width: .55rem; height: .55rem; background: var(--heritage-gold); transform: translateY(-50%) rotate(45deg); }
.ribbon-heading h2::before, .portal-body--home .legacy-section-heading h2::before { left: 1rem; }
.ribbon-heading h2::after, .portal-body--home .legacy-section-heading h2::after { right: 1rem; }
.ribbon-heading small,
.portal-body--home .legacy-section-heading small { padding: .15rem .8rem; color: var(--heritage-green-dark); background: rgba(255, 255, 255, .8); border-radius: 999px; font-size: var(--fs-xs); font-weight: 600; }
.portal-body--home .map-embed .legacy-section-heading { margin: 1.2rem 0 1rem; }

/* Home section backgrounds */
.legacy-priority { position: relative; overflow: hidden; background: url("../images/theme/prajam-pattern.svg"), linear-gradient(180deg, #fff3e4 0%, #ffe4c4 100%); border-top: 0; }
.service-board > header { position: relative; padding-right: 5.6rem; }
.service-board > header::after { content: ""; position: absolute; right: 1rem; top: 50%; width: 4.2rem; height: 4.2rem; margin-top: -2.1rem; background: url("../images/theme/hibiscus.svg") center / contain no-repeat; transform: rotate(18deg); pointer-events: none; }
.legacy-priority > .portal-shell { position: relative; }
.service-board { border: 0; border-radius: 18px; box-shadow: var(--heritage-shadow-lg); }
.service-board > header { background: linear-gradient(135deg, #fff6ea 0%, #ffe6c8 100%); }
.service-board > header > span { background: var(--sun-gradient); border-radius: 12px; }
.service-board__item > span { border-radius: 999px; }
.service-board__all { background: var(--sun-ribbon); }
.service-board__all:hover { background: var(--heritage-orange-dark); }
.leaders-board__links { background: rgba(255, 255, 255, .85); border: 0; border-radius: 999px; box-shadow: var(--heritage-shadow); overflow: hidden; }
.leaders-board__links a:hover { background: #fff1e0; }
.leaders-board > img { background: transparent; }

.portal-main { position: relative; overflow: hidden; background: url("../images/theme/prajam-pattern.svg"), linear-gradient(180deg, #fffaf3 0%, #fff1e2 100%); border-block: 0; }
.portal-main::after { content: ""; position: absolute; z-index: 2; right: .6rem; bottom: .6rem; width: 5.5rem; height: 5.5rem; background: url("../images/theme/hibiscus.svg") center / contain no-repeat; transform: rotate(-30deg); pointer-events: none; opacity: .85; }
.portal-main > .portal-shell { position: relative; z-index: 1; }
.heritage-tabs .tab-list { gap: .4rem; padding-bottom: .35rem; border-bottom: 0; }
.heritage-tabs .tab-list button { color: var(--heritage-green-dark); background: #fff; border: 2px solid var(--heritage-line); border-radius: 14px; font-weight: 700; }
.heritage-tabs .tab-list button:hover { border-color: var(--heritage-orange); }
.heritage-tabs .tab-list button[aria-selected="true"] { color: #5a2410; background: linear-gradient(180deg, #ffe08a 0%, #ffbf2e 100%); border-color: #f59f00; box-shadow: 0 4px 12px rgba(245, 159, 0, .35); }
.heritage-news-list, .legacy-link-list { border: 0; border-radius: 16px; overflow: hidden; box-shadow: var(--heritage-shadow); }
.heritage-news-list time { background: var(--sun-gradient); border-radius: 10px; overflow: hidden; }
.heritage-news-list article > a { border-radius: 999px; }
.news-view-all { border: 0; border-radius: 999px; background: var(--sun-ribbon); }
.portal-main__aside section { border: 0; border-radius: 16px; overflow: hidden; box-shadow: var(--heritage-shadow); }
.portal-main__aside h2 { background: var(--sun-ribbon); }

.community-hub { background: linear-gradient(180deg, #fff4dc 0%, #ffe6c6 100%); border-block: 0; }
.community-overview { border: 0; border-radius: 18px; overflow: hidden; box-shadow: var(--heritage-shadow-lg); }
.overview-panel > header { background: var(--sun-ribbon); }

.participation-section { background: linear-gradient(180deg, #fffaf2 0%, #ffffff 100%); }
.participation-grid a { border-radius: 16px; }
.participation-grid a:nth-child(1) { border-top-color: var(--leaf-bright); }
.participation-grid a:nth-child(2) { border-top-color: var(--heritage-orange); }
.participation-grid a:nth-child(3) { border-top-color: var(--sea); }

.official-banners { background: url("../images/theme/prajam-pattern.svg"), linear-gradient(180deg, #fff3e4 0%, #fff9f2 100%); border-block: 0; }
.integrity-report-list, .integrity-year, .official-banners__grid a { border-radius: 16px; overflow: hidden; }
.legacy-logo-links { background: linear-gradient(180deg, #ffffff 0%, #fff4e6 100%); }
.legacy-logo-links .portal-shell > div:last-child > a { border-radius: 12px; }
.legacy-logo-links__all { background: var(--sun-ribbon) !important; }
.visit-contact { background: #fff4e6; }
.map-embed { border: 0; border-radius: 18px; }

.portal-footer { background: linear-gradient(180deg, #6b2a0f 0%, #4a1d0a 100%); }

/* Numbered pager */
.page-pager { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .45rem; margin: 1.6rem auto 2.4rem; }
.page-pager__numbers { display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.page-pager__numbers a { min-width: 2.75rem; height: 2.75rem; display: grid; place-items: center; padding: 0 .55rem; color: var(--heritage-green-dark); background: #fff; border: 2px solid var(--heritage-line); border-radius: 999px; font-weight: 700; text-decoration: none; transition: border-color .15s ease, color .15s ease, transform .15s ease; }
.page-pager__numbers a:hover, .page-pager__numbers a:focus-visible { color: var(--heritage-orange-dark); border-color: var(--heritage-orange); transform: translateY(-2px); }
.page-pager__numbers a[aria-current="page"] { color: #fff; background: var(--sun-gradient); border-color: #fff; box-shadow: 0 4px 14px rgba(194, 65, 12, .38); }
.page-pager__gap { align-self: center; padding: 0 .15rem; color: var(--heritage-muted); font-weight: 700; }
.page-pager__step { min-height: 2.75rem; display: inline-flex; align-items: center; gap: .35rem; padding: 0 1.05rem; color: #fff; background: var(--sun-ribbon); border-radius: 999px; font-weight: 700; text-decoration: none; }
.page-pager__step:hover, .page-pager__step:focus-visible { background: var(--heritage-orange-dark); }
.page-pager__step.is-disabled { color: #8d7566; background: #f1e3d6; }
.page-pager__summary { flex-basis: 100%; margin: .15rem 0 0; color: var(--heritage-muted); font-size: var(--fs-xs); text-align: center; }
.heritage-activities .page-pager__numbers a:not([aria-current]) { border-color: #fff; box-shadow: 0 4px 12px rgba(6, 78, 104, .18); }

.pill-button { display: inline-flex; align-items: center; gap: .5rem; min-height: 2.9rem; padding: .55rem 1.7rem; color: var(--heritage-green-dark); background: #fff; border: 2px solid var(--heritage-orange); border-radius: 999px; box-shadow: 0 6px 16px rgba(154, 52, 18, .18); font-weight: 700; text-decoration: none; transition: background .15s ease, color .15s ease; }
.pill-button:hover, .pill-button:focus-visible { color: #fff; background: var(--sun-gradient); }

/* Activities archive: photo cards instead of the horizontal news rows */
.archive-grid--activities { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.15rem; }
.archive-grid--activities .archive-item { position: relative; display: flex; flex-direction: column; min-height: 0; border: 0; border-radius: 16px; box-shadow: var(--heritage-shadow-lg); }
.archive-grid--activities .archive-item__image { aspect-ratio: 4 / 3; }
.archive-grid--activities .archive-item > div { display: flex; flex: 1; flex-direction: column; padding: .75rem .85rem .9rem; }
.archive-grid--activities .content-type, .archive-grid--activities .archive-item p { display: none; }
.archive-grid--activities .archive-item h2 { display: -webkit-box; overflow: hidden; font-size: var(--fs-sm); -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.archive-grid--activities .read-link { margin-top: auto; padding-top: .4rem; }

@media (max-width: 1160px) {
    .archive-grid--activities { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    .archive-grid--activities { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .service-board > header { padding-right: 4.4rem; }
    .service-board > header::after { width: 3.2rem; height: 3.2rem; margin-top: -1.6rem; right: .7rem; }
    .portal-main::after { width: 4rem; height: 4rem; }
    .portal-header::after { display: none; }
}
@media (max-width: 600px) {
    .archive-grid--activities { gap: .75rem; }
    .ribbon-heading h2, .portal-body--home .legacy-section-heading h2 { padding-inline: 1.9rem; }
    .page-pager { gap: .3rem; }
    .page-pager__numbers { gap: .3rem; }
    .page-pager__step { min-width: 2.5rem; min-height: 2.5rem; justify-content: center; padding: 0; font-size: var(--fs-lg); }
    .page-pager__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
    .page-pager__numbers a { min-width: 2.5rem; height: 2.5rem; }
}
@media (max-width: 340px) {
    .heritage-activities__grid, .archive-grid--activities { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------------
   Thai ornament layer (2026-09-28): kanok/prajam accessibility ribbon, Thai
   border strips, seaside illustrations, drifting petals and scroll reveal.
   All motion is disabled under prefers-reduced-motion.
   -------------------------------------------------------------------------- */
.portal-header { background: url("../images/theme/thai-border.svg") left bottom / auto 12px repeat-x, #ffe3c2 url("../images/theme/sunrise-swoosh.svg") center / cover no-repeat; border-bottom: 3px solid #c2410c; }
.portal-footer { background: url("../images/theme/thai-border.svg") left top / auto 14px repeat-x, linear-gradient(180deg, #6b2a0f 0%, #4a1d0a 100%); border-top: 0; padding-top: 14px; }
.portal-main__aside h2 { padding-bottom: 1rem; background: url("../images/theme/thai-border.svg") left bottom 2px / auto 9px repeat-x, var(--sun-ribbon); }
.overview-panel > header { background: url("../images/theme/thai-border.svg") left bottom 1px / auto 9px repeat-x, var(--sun-ribbon); border-bottom: 0; }

@media (min-width: 1161px) {
    .portal-navigation { position: relative; }
    .portal-navigation::after { content: ""; position: absolute; left: 50%; bottom: -1.05rem; width: 6.5rem; height: 1.3rem; background: url("../images/theme/thai-kanok.svg") center / contain no-repeat; transform: translateX(-50%); pointer-events: none; filter: drop-shadow(0 2px 2px rgba(90, 36, 16, .35)); }
}

/* Kanok ornament under every home ribbon heading */
.ribbon-heading::after,
.portal-body--home .legacy-section-heading::after { content: ""; width: 8.5rem; height: 1.7rem; background: url("../images/theme/thai-kanok.svg") center / contain no-repeat; }
.ribbon-heading h2,
.portal-body--home .legacy-section-heading h2 { background: linear-gradient(110deg, transparent 38%, rgba(255, 236, 170, .45) 50%, transparent 62%) -150% 0 / 250% 100% no-repeat, var(--sun-ribbon); animation: ribbon-sheen 7s ease-in-out infinite; }
@keyframes ribbon-sheen { 0%, 55% { background-position: 150% 0, 0 0; } 100% { background-position: -150% 0, 0 0; } }

/* Accessibility ribbon: gold-framed Thai panel with finials (2026-09-28 layout).
   Outer element is the gold frame, the scroller is the lacquer panel. */
.access-ribbon { top: calc(50% + 3.5rem); left: .6rem; width: 6.8rem; max-width: none; gap: 0; padding: 5px; color: #fff4dc; background: linear-gradient(90deg, #a8700c 0%, #ffe9a0 22%, #d9a21c 50%, #fff0b8 78%, #a8700c 100%); border: 0; border-radius: 3.4rem; box-shadow: 0 0 0 1px #7a4a06, 6px 10px 28px rgba(74, 20, 5, .45); }
.access-ribbon.is-collapsed { transform: translate(calc(-100% - .6rem), -50%); }
.access-ribbon::before,
.access-ribbon::after { content: ""; position: absolute; z-index: 1; left: 50%; width: 8.6rem; height: 3.9rem; background: url("../images/theme/thai-finial.svg") center bottom / contain no-repeat; transform: translateX(-50%); pointer-events: none; filter: drop-shadow(0 3px 3px rgba(74, 20, 5, .35)); transition: opacity .2s ease; }
.access-ribbon::before { top: -2.95rem; }
.access-ribbon::after { bottom: -2.95rem; transform: translateX(-50%) rotate(180deg); }
.access-ribbon.is-collapsed::before,
.access-ribbon.is-collapsed::after { opacity: 0; }
.access-ribbon__scroller { gap: .3rem; max-height: calc(100vh - 14rem - 10px); padding: 1.6rem .55rem 1.7rem; overflow-y: auto; scrollbar-width: none; background: url("../images/theme/prajam-pattern.svg"), radial-gradient(ellipse at 50% 42%, #d4541a 0%, #9a300c 42%, #5a1606 100%); border-radius: calc(3.4rem - 5px); box-shadow: inset 0 0 0 2px #5a1606, inset 0 0 0 3px #ffd35a, inset 0 0 22px rgba(0, 0, 0, .35); }
.access-ribbon__scroller::-webkit-scrollbar { display: none; }

.access-ribbon__badge { display: grid; justify-items: center; padding: .1rem 0 .45rem; color: #fff; border-bottom: 1px solid rgba(255, 211, 90, .5); text-decoration: none; }
.access-ribbon__badge b { font-family: var(--font-latin); font-size: var(--fs-xl); font-weight: 800; font-style: italic; line-height: 1.1; letter-spacing: .04em; color: #fff; text-shadow: 0 2px 0 #5a1606, 0 0 10px rgba(255, 211, 90, .6); }
.access-ribbon__badge small { color: #ffd978; font-size: var(--fs-2xs); font-weight: 600; }
.access-ribbon__badge:hover b { color: #ffe08a; }

.access-ribbon__label { display: flex; align-items: center; justify-content: center; gap: .35rem; margin: .3rem 0 0; color: #fff; font-size: var(--fs-sm); font-weight: 700; white-space: nowrap; text-shadow: 0 1px 2px rgba(0, 0, 0, .45); }

.access-ribbon__group,
.access-ribbon__sizes,
.access-ribbon__language { grid-template-columns: 1fr; justify-items: center; gap: .3rem; }
.access-ribbon button:not(.access-ribbon__toggle),
.access-ribbon__quick { min-width: 0; min-height: 0; color: #6b1f08; background: linear-gradient(180deg, #fffaf0 0%, #ffe3ad 100%); border: 1.5px solid #5a1606; border-radius: 9px; box-shadow: 0 2px 0 #5a1606, inset 0 1px 0 #fff; font-weight: 700; text-decoration: none; }
.access-ribbon button:not(.access-ribbon__toggle):hover,
.access-ribbon__quick:hover { color: #5a1606; background: linear-gradient(180deg, #fff3cf 0%, #ffd35a 100%); border-color: #5a1606; }
.access-ribbon button[aria-pressed="true"] { color: #5a1606; background: linear-gradient(180deg, #ffe89a 0%, #f5a91c 100%); border-color: #5a1606; box-shadow: 0 0 0 2px #fff3c4, 0 0 14px rgba(255, 211, 90, .85); }
.access-ribbon__sizes button { width: 3.1rem; height: 2.5rem; padding: 0; }
.access-ribbon__sizes button span { line-height: 1; }
.access-ribbon__sizes button:nth-child(1) span { font-size: var(--fs-sm); }
.access-ribbon__sizes button:nth-child(2) span { font-size: var(--fs-lg); }
.access-ribbon__sizes button:nth-child(3) span { font-size: var(--fs-xl); }
.access-ribbon__language button { width: 3.9rem; height: 2.2rem; padding: 0; font-size: var(--fs-sm); }
.access-ribbon__quick { width: 100%; min-height: 2.2rem; margin: 0; padding: .3rem .4rem; font-size: var(--fs-sm); }
.access-ribbon__quick::before { display: none; }
.access-ribbon__separator { height: 12px; margin: .3rem 0 .1rem; background: url("../images/theme/thai-border.svg") center / auto 12px repeat-x; }
.access-ribbon__admin { min-height: 2rem; margin: 0; padding: .2rem; color: #ffe08a; background: none; border: 0; border-radius: 0; font-size: var(--fs-sm); font-weight: 700; text-decoration: underline; text-decoration-color: rgba(255, 224, 138, .5); text-underline-offset: .3em; }
.access-ribbon__admin:hover { color: #fff; background: none; }

.access-ribbon .access-ribbon__toggle,
.access-ribbon.is-collapsed .access-ribbon__toggle { right: -1.75rem; color: #5a2410; background: linear-gradient(180deg, #ffe08a 0%, #f0a414 100%); border: 2px solid #7a4a06; border-left: 0; border-radius: 0 14px 14px 0; }
.access-ribbon .access-ribbon__toggle:hover,
.access-ribbon.is-collapsed .access-ribbon__toggle:hover { background: linear-gradient(180deg, #fff0b3 0%, #ffc233 100%); }
.access-ribbon .access-ribbon__toggle span::before,
.access-ribbon.is-collapsed .access-ribbon__toggle span::before { color: #5a2410; }

@media (max-width: 900px) {
    .access-ribbon { top: auto; left: .65rem; width: calc(100% - 5rem); max-width: calc(100% - 5rem); padding: 3px; border-radius: 16px; }
    .access-ribbon.is-collapsed { width: 2.8rem; padding: 3px; border-radius: 14px; }
    .access-ribbon::before, .access-ribbon::after { display: none; }
    .access-ribbon__scroller { max-height: none; padding: .35rem .45rem; border-radius: 13px; overflow-y: hidden; }
    .access-ribbon__badge { grid-auto-flow: column; align-items: center; gap: .25rem; padding: 0 .35rem 0 .1rem; border-bottom: 0; border-right: 1px solid rgba(255, 211, 90, .5); }
    .access-ribbon__badge b { font-size: var(--fs-md); }
    .access-ribbon__badge small { display: none; }
    .access-ribbon__label, .access-ribbon__separator { display: none; }
    .access-ribbon__sizes, .access-ribbon__language { display: flex; }
    .access-ribbon__sizes button { width: 2.3rem; height: 2.3rem; }
    .access-ribbon__language button { width: 2.6rem; height: 2.3rem; }
    .access-ribbon__quick { width: auto; min-height: 2.3rem; padding: .25rem .6rem; }
    .access-ribbon__admin { min-height: 2.3rem; padding: .25rem .5rem; }
    .access-ribbon .access-ribbon__toggle,
    .access-ribbon.is-collapsed .access-ribbon__toggle { border: 1px solid #7a4a06; border-radius: 10px; }
}

/* Seaside illustrations around the activity cards */
.heritage-activities { overflow: hidden; }
.heritage-activities > .portal-shell { position: relative; z-index: 1; }
.seaside-decor { position: absolute; inset: 0; pointer-events: none; }
.seaside-decor span { position: absolute; display: block; background-position: center bottom; background-size: contain; background-repeat: no-repeat; }
.seaside-decor__palm { bottom: -1rem; width: 11rem; height: 17rem; background-image: url("../images/theme/coconut-palm.svg"); transform-origin: 45% 100%; animation: palm-sway 6s ease-in-out infinite alternate; }
.seaside-decor__palm--left { left: -1.5rem; }
.seaside-decor__palm--right { right: -1.5rem; transform: scaleX(-1); animation-name: palm-sway-mirrored; animation-delay: -2s; }
.seaside-decor__boat { left: 12%; bottom: 3.6rem; width: 13rem; height: 6.3rem; background-image: url("../images/theme/kolae-boat.svg"); animation: boat-bob 4.5s ease-in-out infinite; }
.seaside-decor__birds { top: 2.2rem; left: 8%; width: 8rem; height: 3rem; background-image: url("../images/theme/birds.svg"); animation: birds-glide 26s linear infinite; }
@keyframes palm-sway { from { rotate: -1.5deg; } to { rotate: 2deg; } }
@keyframes palm-sway-mirrored { from { rotate: 1.5deg; } to { rotate: -2deg; } }
@keyframes boat-bob { 0%, 100% { translate: 0 0; rotate: -1deg; } 50% { translate: 0 -6px; rotate: 1.2deg; } }
@keyframes birds-glide { from { translate: -10vw 0; } 50% { translate: 40vw -1rem; } to { translate: 90vw .5rem; } }

/* Hibiscus petals drifting behind the e-service and leaders area */
.petal-rain { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.petal-rain i { position: absolute; top: -2rem; width: .95rem; height: 1.2rem; background: radial-gradient(circle at 30% 30%, #ff9aa8 0%, #ff4d6d 55%, #d6173d 100%); border-radius: 80% 0 80% 0; opacity: .8; animation: petal-fall 16s linear infinite; }
.petal-rain i:nth-child(1) { left: 6%; animation-delay: -2s; }
.petal-rain i:nth-child(2) { left: 22%; animation-delay: -9s; animation-duration: 19s; transform: scale(.8); }
.petal-rain i:nth-child(3) { left: 38%; animation-delay: -5s; animation-duration: 21s; }
.petal-rain i:nth-child(4) { left: 55%; animation-delay: -13s; transform: scale(.7); }
.petal-rain i:nth-child(5) { left: 70%; animation-delay: -7s; animation-duration: 18s; }
.petal-rain i:nth-child(6) { left: 84%; animation-delay: -15s; animation-duration: 22s; transform: scale(.85); }
.petal-rain i:nth-child(7) { left: 94%; animation-delay: -1s; animation-duration: 17s; }
@keyframes petal-fall {
    0% { translate: 0 0; rotate: 0deg; }
    25% { translate: 2.5rem 25vh; rotate: 90deg; }
    50% { translate: -1.5rem 50vh; rotate: 200deg; }
    75% { translate: 2rem 75vh; rotate: 290deg; }
    100% { translate: -1rem 110vh; rotate: 400deg; }
}

/* Participation illustrations */
.participation-grid a { position: relative; padding-right: 6.2rem; }
.participation-grid a::after { content: ""; position: absolute; top: 1.1rem; right: 1.1rem; width: 4.6rem; height: 4.6rem; background-position: center; background-size: contain; background-repeat: no-repeat; transition: transform .25s ease; }
.participation-grid a:nth-child(1)::after { background-image: url("../images/theme/icon-chat.svg"); }
.participation-grid a:nth-child(2)::after { background-image: url("../images/theme/icon-megaphone.svg"); }
.participation-grid a:nth-child(3)::after { background-image: url("../images/theme/icon-shield.svg"); }
.participation-grid a:hover::after { transform: scale(1.08) rotate(-4deg); }

/* Scroll reveal (class added by app.js only when motion is allowed) */
.reveal-ready .reveal:not(.is-revealed) { opacity: 0; }
.reveal-ready .reveal.is-revealed { animation: reveal-up .7s cubic-bezier(.2, .7, .2, 1) var(--reveal-delay, 0ms) both; }
@keyframes reveal-up { from { opacity: 0; translate: 0 22px; } to { opacity: 1; translate: 0 0; } }

@media (max-width: 900px) {
    .seaside-decor__palm { width: 7rem; height: 11rem; opacity: .9; }
    .seaside-decor__boat { left: auto; right: 4%; bottom: 7.2rem; width: 8.5rem; height: 4.2rem; }
    .participation-grid a { padding-right: 5rem; }
    .participation-grid a::after { width: 3.6rem; height: 3.6rem; }
}
@media (max-width: 600px) {
    .seaside-decor .seaside-decor__palm { display: none; }
    .seaside-decor__boat { right: auto; left: .4rem; bottom: .3rem; width: 5.5rem; height: 2.7rem; }
    .petal-rain i:nth-child(n+5) { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .petal-rain { display: none; }
    .seaside-decor span, .ribbon-heading h2, .portal-body--home .legacy-section-heading h2 { animation: none; }
}
@media print {
    .petal-rain, .seaside-decor { display: none; }
    .reveal-ready .reveal { opacity: 1 !important; animation: none !important; }
}
@media (min-width: 901px) and (max-height: 780px) {
    .access-ribbon::before, .access-ribbon::after { width: 6.6rem; height: 3rem; }
    .access-ribbon::before { top: -2.2rem; }
    .access-ribbon::after { bottom: -2.2rem; }
}

/* --------------------------------------------------------------------------
   Mascots, hotline band, compact toolbar and extra colour (2026-09-28).
   -------------------------------------------------------------------------- */

/* Compact accessibility toolbar (about 80% of the first Thai-frame version) */
@media (min-width: 901px) {
    .access-ribbon { width: 5.6rem; border-radius: 2.8rem; }
    .access-ribbon::before, .access-ribbon::after { width: 7rem; height: 3.2rem; }
    .access-ribbon::before { top: -2.4rem; }
    .access-ribbon::after { bottom: -2.4rem; }
    .access-ribbon__scroller { gap: .25rem; padding: 1.35rem .45rem 1.45rem; border-radius: calc(2.8rem - 5px); max-height: calc(100vh - 13rem - 10px); }
    .access-ribbon__badge { padding-bottom: .3rem; }
    .access-ribbon__badge b { font-size: var(--fs-lg); }
    .access-ribbon__label { margin-top: .2rem; font-size: var(--fs-xs); }
    .access-ribbon__group, .access-ribbon__sizes, .access-ribbon__language { gap: .25rem; }
    .access-ribbon__sizes button { width: 2.6rem; height: 2.1rem; border-radius: 8px; }
    .access-ribbon__sizes button:nth-child(1) span { font-size: var(--fs-xs); }
    .access-ribbon__sizes button:nth-child(2) span { font-size: var(--fs-base); }
    .access-ribbon__sizes button:nth-child(3) span { font-size: var(--fs-lg); }
    .access-ribbon__language button { width: 3.2rem; height: 1.95rem; font-size: var(--fs-xs); }
    .access-ribbon__quick { min-height: 1.95rem; padding: .2rem .3rem; font-size: var(--fs-xs); }
    .access-ribbon__admin { min-height: 1.7rem; font-size: var(--fs-xs); }
    .access-ribbon__separator { margin: .2rem 0 0; }
}
@media (min-width: 901px) and (max-height: 780px) {
    .access-ribbon::before, .access-ribbon::after { width: 5.8rem; height: 2.6rem; }
    .access-ribbon::before { top: -1.9rem; }
    .access-ribbon::after { bottom: -1.9rem; }
}

/* Mascot launcher: "ถาม น้องท้องถิ่น ตอบทันใจ" */
.mascot { position: fixed; z-index: 156; right: .9rem; bottom: 8.1rem; pointer-events: none; }
.mascot__launcher { position: relative; display: block; padding: 0; background: none; border: 0; cursor: pointer; pointer-events: auto; }
.mascot__launcher:focus-visible { outline: 3px solid var(--heritage-gold); outline-offset: 2px; border-radius: 16px; }
.mascot__figure { width: 6.6rem; height: auto; filter: drop-shadow(0 6px 10px rgba(90, 36, 16, .28)); animation: mascot-bob 3.2s ease-in-out infinite; transition: transform .2s ease; }
.mascot__launcher:hover .mascot__figure { transform: scale(1.06) rotate(-3deg); }
.mascot__bubble { position: absolute; right: 5.4rem; bottom: 7.4rem; width: max-content; max-width: 12.5rem; padding: .55rem .8rem; color: var(--heritage-ink); background: #fff; border: 2px solid #ffb347; border-radius: 18px 18px 4px 18px; box-shadow: 0 8px 22px rgba(154, 52, 18, .22); font-size: var(--fs-sm); font-weight: 600; line-height: 1.45; text-align: left; white-space: normal; }
.mascot__bubble::after { content: ""; position: absolute; right: -9px; bottom: 6px; width: 14px; height: 14px; background: #fff; border-right: 2px solid #ffb347; border-bottom: 2px solid #ffb347; transform: rotate(-45deg); }
.mascot__greeting { display: grid; justify-items: center; line-height: 1.25; text-align: center; }
.mascot__greeting b { font-size: var(--fs-lg); }
.mascot__ask { color: #e0314b; }
.mascot__answer { color: #0e9fc4; }
.mascot__bubble.is-popping { animation: bubble-pop .4s cubic-bezier(.3, 1.6, .5, 1); }
.mascot__dismiss { position: absolute; top: -.35rem; right: -.2rem; width: 1.6rem; height: 1.6rem; display: grid; place-items: center; padding: 0; color: #fff; background: #e0314b; border: 2px solid #fff; border-radius: 50%; box-shadow: 0 3px 8px rgba(0, 0, 0, .25); font-size: var(--fs-base); font-weight: 700; line-height: 1; cursor: pointer; pointer-events: auto; }
.mascot.is-quiet .mascot__bubble, .mascot.is-quiet .mascot__dismiss { display: none; }
.mascot.is-open { visibility: hidden; }
@keyframes mascot-bob { 0%, 100% { translate: 0 0; } 50% { translate: 0 -5px; } }
@keyframes bubble-pop { from { opacity: 0; transform: scale(.85) translateY(6px); } to { opacity: 1; transform: none; } }
.assistant-panel > header { background: url("../images/theme/thai-border.svg") left bottom 2px / auto 9px repeat-x, var(--sun-ribbon); }

/* Hotline band ("สายด่วน") above the footer on every public page */
.hotline-band { position: relative; overflow: hidden; background: url("../images/theme/prajam-pattern.svg"), linear-gradient(120deg, #fff3c9 0%, #ffd9a8 45%, #ffc2a8 100%); border-top: 4px solid var(--heritage-gold); }
.hotline-band::before { content: ""; position: absolute; inset: 0 0 auto; height: 44px; background: url("../images/theme/bunting.svg") left top / 240px 44px repeat-x; pointer-events: none; }
.hotline-band__inner { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: end; gap: 1.2rem 2rem; padding-top: 2.6rem; }
.hotline-band__mascot { width: 9.5rem; height: auto; }
.hotline-band__text { align-self: center; display: grid; gap: .2rem; padding-bottom: 1rem; }
.hotline-band__tag { justify-self: start; margin: 0; padding: .3rem 1.4rem .35rem 1.1rem; color: #fff; background: linear-gradient(90deg, #e8590c, #ff9a3c); border: 2px solid #fff; border-radius: 999px 999px 999px 8px; box-shadow: 0 6px 14px rgba(232, 89, 12, .3); font-size: var(--fs-xl); font-style: italic; line-height: 1.2; transform: rotate(-3deg); }
.hotline-band__text strong { color: var(--heritage-green-dark); font-size: var(--fs-lg); }
.hotline-band__text small { color: var(--heritage-muted); font-size: var(--fs-sm); }
.hotline-band__list { align-self: center; display: grid; gap: .55rem; margin: 0; padding: 0 0 1rem; list-style: none; }
.hotline-band__list a { display: flex; align-items: center; gap: .7rem; min-height: 3rem; padding: .35rem 1.2rem .35rem .45rem; color: var(--heritage-green-dark); background: #fff; border: 2px solid #ff9a3c; border-radius: 999px; box-shadow: 0 5px 14px rgba(154, 52, 18, .16); text-decoration: none; transition: transform .15s ease, box-shadow .15s ease; }
.hotline-band__list a::before { content: ""; flex: 0 0 2.2rem; height: 2.2rem; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23e8590c' d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E") center / 1.2rem no-repeat; border: 2px solid #ffd7b0; border-radius: 50%; }
.hotline-band__list a:hover, .hotline-band__list a:focus-visible { transform: translateY(-2px); box-shadow: 0 9px 20px rgba(154, 52, 18, .24); }
.hotline-band__list span { min-width: 6.5rem; color: var(--heritage-muted); font-size: var(--fs-sm); font-weight: 600; }
.hotline-band__list b { color: #c2410c; font-size: var(--fs-lg); letter-spacing: .02em; }

/* Extra colour: bunting and soft drifting colour glows behind sections */
.heritage-activities::before { content: ""; position: absolute; z-index: 1; inset: 0 0 auto; height: 44px; background: url("../images/theme/bunting.svg") left top / 240px 44px repeat-x; pointer-events: none; }
.community-hub, .participation-section, .official-banners, .legacy-logo-links { position: relative; overflow: hidden; }
.community-hub > .portal-shell, .participation-section > .portal-shell, .official-banners > .portal-shell, .legacy-logo-links > .portal-shell { position: relative; z-index: 1; }
.community-hub::before, .participation-section::before, .official-banners::before, .legacy-logo-links::before { content: ""; position: absolute; inset: -20%; pointer-events: none; animation: glow-drift 22s ease-in-out infinite alternate; }
.community-hub::before { background: radial-gradient(circle at 12% 30%, rgba(255, 194, 51, .35) 0 9rem, transparent 9.1rem), radial-gradient(circle at 88% 70%, rgba(255, 111, 145, .22) 0 11rem, transparent 11.1rem), radial-gradient(circle at 60% 10%, rgba(19, 181, 200, .14) 0 7rem, transparent 7.1rem); filter: blur(28px); }
.participation-section { background: linear-gradient(180deg, #effbf3 0%, #fff8ee 100%); }
.participation-section::before { background: radial-gradient(circle at 85% 25%, rgba(34, 179, 94, .18) 0 9rem, transparent 9.1rem), radial-gradient(circle at 10% 80%, rgba(255, 154, 60, .22) 0 10rem, transparent 10.1rem); filter: blur(30px); animation-duration: 26s; }
.official-banners::before { background: radial-gradient(circle at 90% 15%, rgba(240, 111, 160, .18) 0 10rem, transparent 10.1rem), radial-gradient(circle at 8% 60%, rgba(142, 92, 217, .12) 0 9rem, transparent 9.1rem); filter: blur(30px); animation-duration: 30s; }
.legacy-logo-links::before { background: radial-gradient(circle at 20% 20%, rgba(19, 181, 200, .16) 0 9rem, transparent 9.1rem), radial-gradient(circle at 80% 85%, rgba(255, 194, 51, .24) 0 10rem, transparent 10.1rem); filter: blur(30px); animation-duration: 24s; }
@keyframes glow-drift { from { transform: translate(-2%, -1%) rotate(0deg); } to { transform: translate(3%, 2%) rotate(6deg); } }

@media (max-width: 900px) {
    .mascot { right: .4rem; bottom: 7.6rem; }
    .mascot__figure { width: 4.8rem; }
    .mascot__bubble { right: 4.1rem; bottom: 5.4rem; max-width: 10.5rem; padding: .45rem .65rem; font-size: var(--fs-xs); }
    .mascot__greeting b { font-size: var(--fs-base); }
    .hotline-band__inner { grid-template-columns: auto minmax(0, 1fr); align-items: center; }
    .hotline-band__mascot { grid-row: span 2; width: 6.8rem; align-self: end; }
    .hotline-band__text { padding-bottom: 0; }
    .hotline-band__list { padding-bottom: 1rem; }
}
@media (max-width: 600px) {
    .hotline-band__inner { grid-template-columns: 1fr; justify-items: center; text-align: center; }
    .hotline-band__mascot { grid-row: auto; width: 6.5rem; order: 2; margin: -.5rem 0 -.2rem; }
    .hotline-band__text { justify-items: center; }
    .hotline-band__tag { justify-self: center; font-size: var(--fs-lg); }
    .hotline-band__list { width: 100%; padding-bottom: 0; }
    .hotline-band__list a { justify-content: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
    .mascot__figure, .mascot__bubble.is-popping { animation: none; }
    .community-hub::before, .participation-section::before, .official-banners::before, .legacy-logo-links::before { animation: none; }
}
@media print {
    .mascot, .hotline-band::before { display: none; }
}

/* Mobile bottom stack: toolbar button on the left, one right-hand column for
   messenger (icon only), back-to-top and the mascot, so nothing overlaps. */
@media (max-width: 900px) {
    .messenger-launcher { right: .65rem; bottom: .65rem; width: 3rem; height: 3rem; justify-content: center; padding: 0; border-radius: 50%; }
    .messenger-launcher span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
    .back-to-top { right: .65rem; bottom: 4.3rem; }
}


/* Mobile toolbar: a gold button that opens a Thai-framed column upward */
@media (max-width: 900px) {
    .access-ribbon { top: auto; bottom: .65rem; left: .65rem; width: 5.4rem; max-width: none; height: auto; flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: .35rem; padding: 5px 5px .45rem; overflow: visible; border-radius: 2.7rem 2.7rem 1.7rem 1.7rem; }
    .access-ribbon::before { display: block; top: -2.1rem; width: 6.6rem; height: 3rem; }
    .access-ribbon::after { display: none; }
    .access-ribbon__scroller { flex: 0 1 auto; flex-direction: column; align-items: stretch; gap: .25rem; max-height: calc(100vh - 10rem); padding: 1.25rem .4rem .7rem; overflow-x: hidden; overflow-y: auto; touch-action: pan-y; border-radius: calc(2.7rem - 5px) calc(2.7rem - 5px) 1.2rem 1.2rem; }
    .access-ribbon__scroller > * { flex: 0 0 auto; }
    .access-ribbon__badge { grid-auto-flow: row; padding: 0 0 .3rem; border-right: 0; border-bottom: 1px solid rgba(255, 211, 90, .5); }
    .access-ribbon__badge b { font-size: var(--fs-lg); }
    .access-ribbon__badge small { display: block; }
    .access-ribbon__label { display: flex; margin-top: .2rem; font-size: var(--fs-xs); }
    .access-ribbon__separator { display: block; margin: .2rem 0 0; }
    .access-ribbon__sizes, .access-ribbon__language { display: grid; grid-template-columns: 1fr; justify-items: center; gap: .25rem; }
    .access-ribbon__scroller button,
    .access-ribbon__scroller a { touch-action: pan-y; }
    .access-ribbon__sizes button { width: 2.6rem; height: 2.2rem; min-width: 0; min-height: 0; }
    .access-ribbon__sizes button:nth-child(1) span { font-size: var(--fs-xs); }
    .access-ribbon__sizes button:nth-child(2) span { font-size: var(--fs-base); }
    .access-ribbon__sizes button:nth-child(3) span { font-size: var(--fs-lg); }
    .access-ribbon__language button { width: 3.2rem; height: 2.1rem; min-width: 0; font-size: var(--fs-xs); }
    .access-ribbon__quick { width: 100%; min-height: 2.1rem; padding: .2rem .3rem; font-size: var(--fs-xs); }
    .access-ribbon__admin { min-height: 1.9rem; font-size: var(--fs-xs); }
    .access-ribbon .access-ribbon__toggle,
    .access-ribbon.is-collapsed .access-ribbon__toggle { inset: auto; transform: none; }
    .access-ribbon .access-ribbon__toggle { position: relative; order: 2; align-self: center; width: 2.6rem; height: 2.6rem; border: 2px solid #fff3c4; border-radius: 50%; box-shadow: 0 3px 8px rgba(0, 0, 0, .3); }
    .access-ribbon .access-ribbon__toggle span::before { content: "\2715"; font-size: var(--fs-sm); }

    .access-ribbon.is-collapsed { width: 3.3rem; height: 3.3rem; padding: 4px; gap: 0; border-radius: 50%; }
    .access-ribbon.is-collapsed .access-ribbon__toggle { width: 100%; height: 100%; margin: 0; border: 2px solid #fff3c4; border-radius: 50%; box-shadow: none; }
    .access-ribbon.is-collapsed .access-ribbon__toggle span::before { content: "\0E01"; font-family: var(--font-thai); font-size: var(--fs-lg); line-height: 1; }
    .access-ribbon.is-collapsed .access-ribbon__toggle span::after { content: ""; position: absolute; top: .18rem; left: 50%; border: 4px solid transparent; border-bottom: 5px solid #5a2410; transform: translateX(-50%); }
}

/* --------------------------------------------------------------------------
   e-GP procurement announcements (/egp, layout of the reference egp.php)
   -------------------------------------------------------------------------- */
.egp-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.egp-page { --egp-win: #15803d; --egp-invite: #0e7490; --egp-draft: #0f766e; --egp-price: #7c3aed; --egp-plan: #6b7280; --egp-change: #a16207; --egp-cancel: #b42318; }
.egp-nowrap { white-space: nowrap; }
.egp-ic { width: 1.1em; height: 1.1em; flex: none; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: square; vertical-align: -.18em; }
.egp-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; margin-bottom: 1.2rem; }
.egp-stat { display: flex; align-items: flex-start; gap: .8rem; padding: .9rem 1rem; background: #fff; border-radius: 16px; box-shadow: var(--heritage-shadow); }
.egp-stat > .egp-ic { width: 2.3rem; height: 2.3rem; padding: .5rem; color: var(--heritage-orange-dark); background: #fff1e0; border-radius: 12px; }
.egp-stat__label { display: block; color: var(--heritage-muted); font-size: var(--fs-xs); }
.egp-stat__value { display: block; color: var(--heritage-green-dark); font-size: var(--fs-base); font-weight: 700; line-height: 1.45; }
.egp-stat__note { display: block; color: var(--heritage-muted); font-size: var(--fs-xs); }
.egp-dot { display: inline-block; width: .55rem; height: .55rem; margin-right: .4rem; vertical-align: .1em; border-radius: 50%; background: var(--egp-win); }
.egp-dot--warn { background: var(--egp-change); }
.egp-dot--bad { background: var(--egp-cancel); }

.egp-days { display: flex; gap: .35rem; overflow-x: auto; padding: .15rem .15rem .6rem; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
.egp-day-tab { flex: 1 0 auto; min-width: 6.8rem; display: block; padding: .55rem .85rem .6rem; color: var(--heritage-green-dark); background: #fff; border: 2px solid var(--heritage-line); border-radius: 14px; text-decoration: none; }
.egp-day-tab:hover { border-color: var(--heritage-orange); }
.egp-day-tab[aria-current="page"] { color: #fff; background: var(--sun-ribbon); border-color: #ffb347; box-shadow: 0 6px 14px rgba(138, 44, 12, .25); }
.egp-day-tab__top { display: block; font-size: var(--fs-xs); opacity: .85; }
.egp-day-tab__main { display: flex; align-items: baseline; justify-content: space-between; gap: .6rem; font-size: var(--fs-base); font-weight: 700; white-space: nowrap; }
.egp-day-tab__n { min-width: 1.6rem; padding: 0 .4rem; color: #fff; background: var(--heritage-orange-dark); border-radius: 999px; font-family: var(--font-latin); font-size: var(--fs-xs); text-align: center; }
.egp-day-tab__n.is-zero { color: var(--heritage-muted); background: #f1e3d6; }
.egp-day-tab[aria-current="page"] .egp-day-tab__n { color: #5a2410; background: #ffe08a; }
.egp-day-tab--archive .egp-day-tab__main { justify-content: flex-start; gap: .35rem; }

.egp-panel { overflow: hidden; background: #fff; border-radius: 18px; box-shadow: var(--heritage-shadow-lg); }
.egp-toolbar { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .8rem; padding: 1rem 1.1rem; background: linear-gradient(180deg, #fff8ef 0%, #fff 100%); }
.egp-field { flex: 1 1 16rem; min-width: 0; }
.egp-field--type { flex: 0 1 18rem; }
.egp-field label { display: block; margin-bottom: .3rem; color: var(--heritage-green-dark); font-size: var(--fs-xs); font-weight: 700; }
.egp-input { position: relative; }
.egp-input > .egp-ic { position: absolute; top: 50%; left: .85rem; color: var(--heritage-muted); transform: translateY(-50%); pointer-events: none; }
.egp-input input, .egp-input select { width: 100%; min-height: 2.75rem; padding: .45rem .9rem .45rem 2.5rem; color: var(--heritage-ink); background: #fff; border: 2px solid var(--heritage-line); border-radius: 999px; font: inherit; font-size: var(--fs-sm); }
.egp-input input:focus, .egp-input select:focus { border-color: var(--heritage-orange); outline: none; box-shadow: 0 0 0 3px rgba(255, 122, 26, .2); }
.egp-actions { display: flex; align-items: center; gap: .6rem; }
.egp-actions button { display: inline-flex; align-items: center; gap: .4rem; min-height: 2.75rem; padding: .45rem 1.4rem; color: #fff; background: var(--sun-ribbon); border: 0; border-radius: 999px; font: inherit; font-weight: 700; cursor: pointer; }
.egp-actions button:hover { background: var(--heritage-orange-dark); }
.egp-actions a { color: var(--heritage-orange-dark); font-size: var(--fs-sm); font-weight: 600; }
.egp-chips { display: flex; flex-wrap: wrap; gap: .45rem; padding: 0 1.1rem 1rem; }
.egp-chips a { display: inline-flex; align-items: center; gap: .45rem; min-height: 2.25rem; padding: .25rem .85rem; color: var(--heritage-ink); background: #fff; border: 2px solid var(--heritage-line); border-radius: 999px; font-size: var(--fs-sm); text-decoration: none; }
.egp-chips a:hover { border-color: var(--heritage-orange); }
.egp-chips a[aria-current="true"] { color: #5a2410; background: linear-gradient(180deg, #ffe08a 0%, #ffbf2e 100%); border-color: #f59f00; font-weight: 700; }
.egp-chip-n { color: var(--heritage-muted); font-family: var(--font-latin); font-size: var(--fs-xs); }
.egp-sw { width: .6rem; height: .6rem; flex: none; border-radius: 3px; background: var(--egp-plan); }
.egp-sw--win { background: var(--egp-win); } .egp-sw--invite { background: var(--egp-invite); } .egp-sw--draft { background: var(--egp-draft); }
.egp-sw--price { background: var(--egp-price); } .egp-sw--plan { background: var(--egp-plan); } .egp-sw--change { background: var(--egp-change); } .egp-sw--cancel { background: var(--egp-cancel); }
.egp-result-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1rem; padding: .75rem 1.1rem; color: var(--heritage-muted); background: #fff5e9; border-top: 1px solid var(--heritage-line); font-size: var(--fs-sm); }
.egp-result-head strong { color: var(--heritage-green-dark); }
.egp-result-head a { display: inline-flex; align-items: center; gap: .35rem; color: var(--heritage-orange-dark); font-weight: 700; }
.egp-day-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 0; padding: .65rem 1.1rem .8rem; color: #fff; background: url("../images/theme/thai-border.svg") left bottom 1px / auto 9px repeat-x, var(--sun-ribbon); font-size: var(--fs-base); }
.egp-day-heading .egp-ic { margin-right: .45rem; }
.egp-day-heading__n { color: #ffe9b8; font-size: var(--fs-xs); font-weight: 600; }
.egp-list { margin: 0; padding: 0; list-style: none; }
.egp-item { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: .6rem 1.4rem; padding: .95rem 1.1rem; border-bottom: 1px solid var(--heritage-line); }
.egp-item:hover { background: #fffaf3; }
.egp-tag { display: inline-flex; align-items: center; gap: .4rem; padding: .1rem .6rem; color: var(--heritage-muted); background: #fff5e9; border: 1px solid var(--heritage-line); border-radius: 999px; font-size: var(--fs-xs); font-weight: 600; }
.egp-item__title { display: block; margin: .35rem 0 .2rem; color: var(--heritage-green-dark); font-weight: 700; line-height: 1.55; text-decoration: none; word-break: break-word; }
a.egp-item__title:hover { color: var(--heritage-orange-dark); text-decoration: underline; text-underline-offset: 3px; }
.egp-meta { display: flex; flex-wrap: wrap; gap: .2rem 1.1rem; color: var(--heritage-muted); font-size: var(--fs-xs); }
.egp-meta b { color: var(--heritage-ink); font-weight: 600; }
.egp-mono { font-family: var(--font-latin); letter-spacing: .02em; }
.egp-open { display: inline-flex; align-items: center; gap: .4rem; min-height: 2.4rem; padding: .3rem 1rem; color: var(--heritage-orange-dark); background: #fff; border: 2px solid #ff9a3c; border-radius: 999px; font-size: var(--fs-sm); font-weight: 700; text-decoration: none; white-space: nowrap; }
.egp-open:hover { color: #fff; background: var(--sun-gradient); border-color: transparent; }
.egp-empty { display: grid; justify-items: center; gap: .3rem; padding: 2.6rem 1.1rem; color: var(--heritage-muted); text-align: center; border-top: 1px solid var(--heritage-line); }
.egp-empty > .egp-ic { width: 2.2rem; height: 2.2rem; color: var(--heritage-orange-dark); }
.egp-empty p { margin: 0; }
.egp-empty__title { color: var(--heritage-green-dark); font-size: var(--fs-md); font-weight: 700; }
.egp-empty--setup { background: #fff; border: 0; border-radius: 18px; box-shadow: var(--heritage-shadow); }
.egp-empty--setup .pill-button { margin-top: .6rem; }
.egp-panel .page-pager { margin: 1.2rem auto; }
.egp-note { display: flex; gap: .6rem; margin-top: 1rem; padding: .8rem 1rem; color: var(--heritage-muted); background: #fff; border-left: 4px solid var(--heritage-orange); border-radius: 12px; font-size: var(--fs-sm); }
.egp-note .egp-ic { margin-top: .2rem; color: var(--heritage-orange-dark); }
.egp-note a { color: var(--heritage-orange-dark); }

.egp-badge { display: inline-flex; justify-content: center; padding: .25rem .6rem; color: #fff; background: var(--heritage-orange-dark); border-radius: 999px; font-size: var(--fs-xs); font-weight: 700; line-height: 1.4; text-align: center; }
.egp-badge--win { background: #15803d; } .egp-badge--invite { background: #0e7490; } .egp-badge--draft { background: #0f766e; } .egp-badge--price { background: #7c3aed; }
.egp-badge--plan { background: #6b7280; } .egp-badge--change { background: #a16207; } .egp-badge--cancel { background: #b42318; }

@media (max-width: 900px) {
    .egp-stats { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
    .egp-item { grid-template-columns: 1fr; }
    .egp-open { justify-self: start; }
    .egp-actions { width: 100%; }
    .egp-actions button { flex: 1; justify-content: center; }
}

.procurement-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.2rem; margin-top: .8rem; }
.procurement-actions .news-view-all { margin-top: 0; }
.procurement-actions__news { color: var(--heritage-orange-dark); font-size: var(--fs-sm); font-weight: 600; }
.heritage-news-list p .egp-badge { margin-right: .3rem; padding: .05rem .5rem; vertical-align: .05em; }
.egp-latest { margin-top: 1.1rem; padding: 1rem 1.1rem; background: #fff; border: 2px dashed var(--heritage-line); border-radius: 16px; }
.egp-latest h3 { margin: 0 0 .6rem; color: var(--heritage-green-dark); font-size: var(--fs-base); }
.egp-latest ul { display: grid; gap: .55rem; margin: 0 0 .9rem; padding: 0; list-style: none; }
.egp-latest li { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .6rem; }
.egp-latest li a { color: var(--heritage-ink); font-size: var(--fs-sm); font-weight: 600; text-decoration: none; }
.egp-latest li a:hover { color: var(--heritage-orange-dark); text-decoration: underline; }
.egp-latest time { color: var(--heritage-muted); font-size: var(--fs-xs); white-space: nowrap; }

@media (max-width: 700px) {
    .egp-latest li { grid-template-columns: 1fr; gap: .2rem; }
    .egp-latest li .egp-badge { justify-self: start; }
}

/* --- 404: page not found, in the site theme --- */
.not-found { position: relative; overflow: hidden; padding-block: clamp(2.5rem, 6vw, 4.5rem) clamp(3rem, 7vw, 5rem); background: url("../images/theme/prajam-pattern.svg"), linear-gradient(180deg, #fff3e4 0%, #fffaf3 55%, #fff 100%); border-top: 5px solid var(--heritage-gold); }
.not-found__inner { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.not-found__art { display: flex; align-items: center; justify-content: center; gap: clamp(.25rem, 1.5vw, 1rem); }
.not-found__digit { font-size: clamp(5.5rem, 16vw, 11rem); font-weight: 700; line-height: 1; color: transparent; background: var(--sun-gradient); -webkit-background-clip: text; background-clip: text; text-shadow: 0 10px 30px rgba(194, 65, 12, .18); }
.not-found__mascot { width: clamp(5.5rem, 13vw, 8.5rem); height: auto; filter: drop-shadow(0 12px 18px rgba(154, 52, 18, .22)); animation: not-found-bob 3.2s ease-in-out infinite; }
@keyframes not-found-bob { 0%, 100% { translate: 0 0; rotate: -2deg; } 50% { translate: 0 -10px; rotate: 2deg; } }
.not-found__kicker { display: inline-block; padding: .3rem .9rem; color: #fff; background: var(--sun-ribbon); border-radius: 999px; font-size: var(--fs-xs); font-weight: 700; letter-spacing: .04em; }
.not-found__body h1 { margin: .7rem 0 .5rem; color: var(--heritage-green-dark); font-size: clamp(var(--fs-xl), 3.6vw, var(--fs-3xl)); line-height: 1.25; }
.not-found__body > p { margin: 0 0 .6rem; color: var(--heritage-muted); font-size: var(--fs-md); line-height: 1.7; }
.not-found__body .not-found__detail { padding: .55rem .85rem; color: var(--heritage-green-dark); background: #fff; border-left: 4px solid var(--heritage-orange); border-radius: 6px; font-size: var(--fs-base); }
.not-found__body .not-found__path { font-size: var(--fs-sm); }
.not-found__path code { padding: .1rem .45rem; color: var(--heritage-ink); background: #fff; border: 1px solid var(--heritage-line); border-radius: 6px; overflow-wrap: anywhere; }
.not-found__search { margin: 1.1rem 0 1rem; }
.not-found__search label { display: block; margin-bottom: .4rem; color: var(--heritage-green-dark); font-weight: 700; }
.not-found__search div { display: flex; max-width: 34rem; background: #fff; border: 2px solid var(--heritage-orange); border-radius: 999px; overflow: hidden; box-shadow: 0 6px 16px rgba(154, 52, 18, .12); }
.not-found__search input { min-width: 0; flex: 1; min-height: 3rem; padding: .55rem 1.1rem; border: 0; background: transparent; font: inherit; }
.not-found__search input:focus-visible { outline: 3px solid var(--heritage-gold); outline-offset: -3px; }
.not-found__search button { min-width: 6rem; padding-inline: 1.2rem; color: #fff; background: var(--sun-gradient); border: 0; font: inherit; font-weight: 700; cursor: pointer; }
.not-found__actions { display: flex; flex-wrap: wrap; gap: .7rem; }
.pill-button--solid { color: #fff; background: var(--sun-gradient); border-color: transparent; }
.not-found__more { margin-top: clamp(2.5rem, 5vw, 3.5rem); }
.not-found__more h2 { margin: 0 0 1rem; color: var(--heritage-green-dark); font-size: var(--fs-xl); }
.not-found__links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .9rem; }
.not-found__links a { display: grid; gap: .2rem; padding: 1rem 1.1rem; color: var(--heritage-ink); background: #fff; border: 1px solid var(--heritage-line); border-left: 5px solid var(--heritage-orange); border-radius: 12px; box-shadow: var(--heritage-shadow); text-decoration: none; transition: translate .15s ease, box-shadow .15s ease; }
.not-found__links a:hover, .not-found__links a:focus-visible { translate: 0 -3px; box-shadow: var(--heritage-shadow-lg); }
.not-found__links strong { color: var(--heritage-green-dark); font-size: var(--fs-md); }
.not-found__links span { color: var(--heritage-muted); font-size: var(--fs-sm); }
.not-found__help { margin: 1.4rem 0 0; color: var(--heritage-muted); }
.not-found__help a { color: var(--heritage-orange-dark); font-weight: 700; }
@media (max-width: 900px) {
    .not-found__inner { grid-template-columns: 1fr; text-align: center; }
    .not-found__search div { margin-inline: auto; }
    .not-found__actions { justify-content: center; }
    .not-found__links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
    .not-found__links { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
    .not-found__mascot { animation: none; }
}
