:root {
  --navy: #163d2b;
  --blue: #24704c;
  --cyan: #eac84c;
  --teal: #24704c;
  --ink: #203c2d;
  --muted: #596e60;
  --border: #d8e6d8;
  --page: #f5f9f3;
}

html, body { max-width: 100%; }
body { overflow-x: clip; }
img { max-width: 100%; }
[hidden], .form-trap { display: none !important; }
.bi { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; line-height: 1; font-style: normal; }
.skip:focus { top: 8px; }
*:focus-visible { outline-color: #eac84c !important; }

.accessbar { background: #123b29; color: #f0f8ee; }
.accessbar a { color: inherit; padding: 3px 7px; }
.utility, .navigation { background: var(--org-color, #24704c); }
.utility-inner .left, .utility-inner .right { min-width: 0; flex-wrap: wrap; }
.utility a:hover, .accessbar a:hover { color: #ffe88e; }
.accessbar-inner > span .bi, .utility .bi { margin-right: 4px; font-size: 1rem; vertical-align: middle; }
.brand-inner { min-height: 112px; }
.brand-logo { flex-shrink: 0; max-width: min(100%, 390px); }
.brand-logo.has-brand-image .brand-logo-text { display: none; }
.brand-logo-image { display: block; width: min(340px, 100%); height: auto; max-height: 86px; object-fit: contain; object-position: left center; }
.brand-logo strong { color: #194830; }
.logo-mark { background: linear-gradient(145deg, var(--org-color, #24704c), #15432d); }
.search, .round-btn { border-color: #d7e7d6; background: #f6faf4; color: #1f6645; }
.search button { color: var(--org-color, #24704c); }
.nav-inner { flex-wrap: nowrap; }
.home-link, .nav-top { padding-inline: clamp(8px, 1.1vw, 15px); }
.nav-top svg { width: 14px; height: 14px; opacity: .85; transition: transform .2s; }
.nav-top[aria-expanded="true"] svg { transform: rotate(180deg); }
.nav-top .bi { font-size: .84rem; opacity: .85; transition: transform .2s; }
.nav-top[aria-expanded="true"] .bi { transform: rotate(180deg); }
.home-link .bi { font-size: 1.15rem; }
.home-link:hover, .nav-top:hover, .nav-top[aria-expanded=true] { background: #17482f; }
.nav-cta { background: #eac84c; color: #203c2d; padding-inline: 14px; }
.nav-cta:hover { background: #f7df75; }
.sub-menu a:hover, .sub-menu a:focus { background: #edf6e9; color: #1f6645; }

.hero { background: linear-gradient(110deg, #113a28 0%, var(--org-color, #24704c) 68%, #62a270 100%); }
.hero-grid { min-width: 0; min-height: 415px; grid-template-columns: 1fr 1fr; align-items: start; gap: clamp(20px, 4vw, 50px); }
.hero-copy, .hero-visual { min-width: 0; }
.hero-copy { padding: 30px 0; }
.hero h1 { display: block; overflow: visible; font-size: clamp(1.65rem, 3vw, 2.65rem); line-height: 1.15; overflow-wrap: anywhere; margin: 15px 0 12px; }
.hero h1 em { color: #ffe27b; }
.hero p { color: #f0f8ef; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.55; margin: 0 0 20px; }
.hero-buttons { align-items: center; }
.hero-controls { display: flex; align-items: center; justify-content: center; gap: 16px; padding: 14px 0 2px; }
.hero-dots { justify-content: center; align-items: center; margin: 0; padding: 0; }
.hero-dots button { height: 7px; }
.hero-visual { display: block; align-self: start; padding: 24px 0 0; }
.hero-image-frame { position: relative; }
.hero-visual img { display: block; height: 320px; background: #dcebdd; border-radius: 16px; }
.hero-visual:has(img) { min-height: 0; }
.floating-flag { left: 18px; bottom: 18px; width: 220px; max-width: calc(100% - 36px); padding: 11px 15px; }
.hero-arrow { display: grid; place-items: center; flex: 0 0 38px; width: 38px; height: 38px; padding: 0; border: 1px solid #ffffffa8; border-radius: 50%; background: #133d2bd9; color: #fff; box-shadow: 0 3px 14px #092a1c55; }
.hero-arrow:hover { background: #eac84c; color: #203c2d; }
.hero-arrow:focus-visible { outline-offset: 3px; }
.hero-arrow svg { width: 22px; height: 22px; }
.hero-arrow .bi { font-size: 1.35rem; }
.floating-flag b { font-size: .88rem; }
.floating-flag b { color: #1d6945; }
.hero-dots button { background: #d8ead7; }
.hero-dots button.active { background: #eac84c; }
.btn-primary { background: #eac84c; color: #233928; }
.btn-primary:hover { background: #f6da6e; }
.btn-ghost:hover { background: #ffffff20; }

.kicker, .eyebrow { color: #24704c; }
h2 { color: #17432d; }
.see-all, .news a { color: #1f6946; }
.quick { border-top-color: var(--org-color, #24704c); background: #f7faf4; }
.quick > svg:first-child, .quick .go { color: #25774e; }
.quick > .bi:first-child { color: #25774e; font-size: 1.8rem; }
.quick > img:first-child { width: 29px; height: 29px; flex: 0 0 29px; object-fit: contain; }
.quick .go { font-size: .9rem; }
.q1 { border-top-color: #e8c444; background: #fffdf2; }
.q2 { border-top-color: #519763; background: #f3faf3; }
.q3 { border-top-color: #b64742; background: #fdf7f5; }
.q4 { border-top-color: #dfc35c; background: #faf9ef; }
.campaigns { background: #eef6ed; }
.campaign-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.campaign-grid.is-single { grid-template-columns: minmax(0, 760px); }
.campaign-card { position: relative; display: block; min-width: 0; aspect-ratio: 16 / 7; padding: 10px; overflow: hidden; border: 1px solid #d7e7d5; border-radius: 16px; background: #fff; box-shadow: 0 12px 30px #17432d18; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.campaign-card img { display: block; width: 100%; height: 100%; border-radius: 10px; background: #f4f8f2; object-fit: contain; }
a.campaign-card:hover, a.campaign-card:focus-visible { transform: translateY(-4px); border-color: #76ac82; box-shadow: 0 18px 38px #17432d2a; }
.campaign-action { position: absolute; right: 21px; bottom: 21px; display: inline-flex; align-items: center; gap: 7px; min-height: 36px; padding: 0 13px; border: 1px solid #d8e9da; border-radius: 999px; background: #ffffffed; color: #1d6440; box-shadow: 0 6px 18px #143b2440; font-size: .73rem; font-weight: 800; backdrop-filter: blur(12px); }
.news h3 { color: #254932; overflow-wrap: anywhere; }
.news p { color: #5b6e61; }
.news img { background: #e5eee3; }
.info-band { background: linear-gradient(115deg, #123b29, #2b7550); }
.info-band .kicker, .update-date, .agenda-link { color: #f8e38a; }
.light-description { color: #e5f4e6 !important; }
.update-row strong { display: block; }
.update-row a { display: flex; width: max-content; color: #f8e38a; }
.caldate { color: #205b3e; }
.agenda-item small { color: #e3f3e6; }
.agenda-item .caldate small { color: #205b3e; font-size: .7rem; line-height: 1.25; margin-top: 3px; }
.updates.service-updates { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
.service-panel { min-width: 0; display: flex; flex-direction: column; gap: 20px; padding: 22px; border: 1px solid #ffffff2e; border-radius: 12px; background: #ffffff14; }
.service-panel-head { display: flex; align-items: center; gap: 14px; }
.service-panel-icon { display: grid; place-items: center; flex: 0 0 46px; width: 46px; height: 46px; border-radius: 11px; background: #fff; color: #1f6946; font-size: 1.5rem; }
.service-panel-head h3 { margin: 0 0 4px; color: #fff; }
.service-panel-head p { margin: 0; color: #e5f4e6; font-size: .82rem; line-height: 1.5; }
.service-contact-list { display: grid; gap: 0; }
.service-contact-list > div { display: grid; gap: 4px; min-width: 0; padding: 12px 0; border-top: 1px solid #ffffff2e; }
.service-contact-list span { color: #f8e38a; font-size: .68rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.service-contact-list a, .service-contact-list strong { color: #fff; font-size: .87rem; font-weight: 700; line-height: 1.5; overflow-wrap: anywhere; }
.service-contact-list a:hover { text-decoration: underline; }
.service-panel-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: auto; }
.service-panel-actions a { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 42px; padding: 10px 14px; border-radius: 7px; font-size: .78rem; font-weight: 800; }
.service-action-primary { background: #eac84c; color: #203c2d; }
.service-action-primary:hover { background: #f6da6e; }
.service-action-secondary { border: 1px solid #ffffff8c; color: #fff; }
.service-action-secondary:hover { background: #ffffff20; }
.service-updates .agenda { min-width: 0; }
.service-updates .agenda-item > div { min-width: 0; }
.service-updates .agenda-item b { overflow-wrap: anywhere; }
.trans-card, .links-row a { backdrop-filter: blur(16px) saturate(130%); -webkit-backdrop-filter: blur(16px) saturate(130%); transition: transform .3s ease, box-shadow .3s ease, opacity .55s ease; }
.transparency { grid-auto-rows: 1fr; }
.trans-card { height: 100%; min-height: 128px; border: 1px solid #ffffffbd; background: linear-gradient(125deg, #fffffff2, #e9f6e8c9); color: #1b4b31; box-shadow: inset 0 1px 0 #fff, 0 12px 30px #0b2c1b2e; }
.trans-card > svg { width: 46px; height: 46px; padding: 8px; border-radius: 12px; background: #ffffffa8; color: #24704c; }
.trans-card > .bi { width: 46px; height: 46px; padding: 8px; border-radius: 12px; background: #ffffffa8; color: #24704c; font-size: 1.85rem; }
.trans-card p { color: #4d6454; }
.trans-card span { color: #286c45; }
.links-band { background: #f0f6ee; }
.links-row { display: flex; flex-wrap: wrap; justify-content: center; align-items: stretch; width: 100%; max-width: none; gap: 14px; }
.links-row a { flex: 0 1 calc((100% - 42px) / 4); }
.links-row a { min-width: 0; min-height: 92px; border-color: #ffffffd9; background: linear-gradient(125deg, #fffffff2, #eaf6e9cf); color: #245239; box-shadow: inset 0 1px 0 #fff, 0 8px 24px #1c543217; overflow-wrap: anywhere; }
.links-row svg { color: #287349; }
.links-row a > svg:last-child { margin-left: auto; }
.links-row a > .bi:first-child { color: #287349; font-size: 1.55rem; }
.links-row a > img:first-child { width: 28px; height: 28px; flex: 0 0 28px; object-fit: contain; }
.links-row a > span { min-width: 0; }
.links-row a > .bi:last-child { margin-left: auto; color: #287349; font-size: 1.05rem; }
.glass-reveal { opacity: 0; transform: translateY(20px); }
.glass-reveal.is-visible { opacity: 1; transform: translateY(0); }
.trans-card:hover, .trans-card:focus-visible, .links-row a:hover, .links-row a:focus-visible { transform: translateY(-6px); box-shadow: inset 0 1px 0 #fff, 0 18px 36px #103b2540; }
.doc-panel h3, .bid-panel h3 { color: #205539; }
.pub-item { width: 100%; border: 0; border-bottom: 1px solid #e7eee5; background: transparent; color: #213f2c; text-align: left; cursor: pointer; }
.pub-item:hover { background: #f4faf1; }
.pub-item > span:nth-child(2) { min-width: 0; }
.pub-item strong { overflow-wrap: anywhere; }
.pub-item > svg { color: #24704c; }
.pub-item > .bi { color: #24704c; font-size: .95rem; }
.pub-icon { background: #e7f3e8; color: #24704c; }
.pub-icon .bi { font-size: 1.2rem; }
.bid { display: block; color: inherit; }
.bid:hover { border-color: #8bb89a; background: #f7fbf4; }
.bid-status { background: #e6f5e6; color: #1e7346; }
.bid h4 { color: #244b32; overflow-wrap: anywhere; }
.bid p { color: #647467; }
.bid small { color: #26724a; }
.panel-more { margin-top: 20px; }
.other-portals { background: #f0f6ee; }
.other-portals-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.other-portal-card { display: flex; align-items: center; gap: 12px; min-width: 0; min-height: 90px; padding: 15px; border: 1px solid #d5e6d5; border-top: 3px solid var(--org-color, #24704c); border-radius: 10px; background: #fff; color: #214d34; font-size: .82rem; font-weight: 800; line-height: 1.35; transition: transform .2s, box-shadow .2s; }
.other-portal-card:nth-child(3n+2) { border-top-color: #e8c444; }
.other-portal-card:hover { transform: translateY(-3px); box-shadow: 0 9px 22px #17432d1e; }
.other-portal-card img, .other-portal-icon { width: 44px; height: 44px; flex: 0 0 44px; object-fit: contain; }
.other-portal-icon { display: grid; place-items: center; border-radius: 8px; background: #e9f3e8; color: #24704c; }
.other-portal-card > span:nth-child(2) { min-width: 0; overflow-wrap: anywhere; }
.other-portal-arrow { width: 15px; height: 15px; margin-left: auto; color: #24704c; }
.other-portal-icon .bi { font-size: 1.35rem; }
.newsletter { background: linear-gradient(100deg, #174e33, #37895b); }
.newsletter .kicker { color: #f9e58d; }
.newsletter p, .newsletter small { color: #e4f5e6; }
.newsletter button { background: #eac84c; color: #263b29; }
.newsletter button:hover { background: #f7df75; }
.newsletter button:disabled { opacity: .65; cursor: progress; }
.footer { background: #123b29; color: #e3f0e4; }
.footer p, .footer a { color: #e1eee1; }
.footer a:hover { color: #fce593; }
.footer-legal { display: flex; flex-wrap: wrap; gap: 6px 20px; }
.float-button { background: #28764c; }
.float-button.alt { background: #eac84c; color: #263b29; }
.cookies button:first-child { background: #24704c; border-color: #24704c; }
.cookies a { color: #206a44; text-decoration: underline; }
.cookies .inline-link { display: inline; padding: 0; border: 0; background: none; color: #1c6540; font: inherit; font-weight: 800; text-decoration: underline; }
.cookie-dialog { width: min(92vw, 540px); max-height: 86vh; overflow-y: auto; padding: 25px; border: 0; border-radius: 13px; box-shadow: 0 25px 70px #092c1d55; color: #203c2d; }
.cookie-dialog::backdrop { background: #092619b3; }
.cookie-dialog-head { display: flex; align-items: start; justify-content: space-between; gap: 14px; margin-bottom: 12px; }
.cookie-dialog h2 { margin: 0; font-size: 1.4rem; }
.cookie-dialog p { line-height: 1.65; font-size: .9rem; color: #415748; }
.cookie-dialog a { color: #1f6946; text-decoration: underline; }
.cookie-dialog-head button { border: 0; background: transparent; color: #203c2d; font-size: 1.6rem; line-height: 1; }
.cookie-choice { display: flex; justify-content: space-between; align-items: center; gap: 15px; padding: 14px 0; border-bottom: 1px solid #e1e9df; }
.cookie-choice span { display: grid; gap: 3px; }
.cookie-choice small { color: #596e60; line-height: 1.45; }
.cookie-choice input { width: 20px; height: 20px; accent-color: #24704c; flex-shrink: 0; }
.cookie-dialog-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 22px; }
.cookie-dialog-action, .cookie-dialog-actions button { min-height: 42px; padding: 10px 15px; border: 1px solid #24704c; border-radius: 7px; background: #24704c; color: #fff; font-weight: 800; }
.cookie-dialog-actions button:first-child { background: #fff; color: #205c3d; }
.status-note { padding: 15px 0; color: #784d10; }

.theme-dark .brand-logo strong, .theme-dark h2, .theme-dark .news h3,
.theme-dark .doc-panel h3, .theme-dark .bid-panel h3, .theme-dark .bid h4,
.theme-dark .trans-card strong, .theme-dark .links-row a, .theme-dark .pub-item {
  color: #edf7e9;
}
.theme-dark .heading p, .theme-dark .news p, .theme-dark .bid p,
.theme-dark .trans-card p, .theme-dark .pub-item small, .theme-dark .bid small {
  color: #cbdcc9;
}
.theme-dark .kicker, .theme-dark .eyebrow, .theme-dark .see-all,
.theme-dark .news a, .theme-dark .links-row svg { color: #f8df79; }
.theme-dark .links-row .bi { color: #f8df79; }
.theme-dark .trans-card { background: linear-gradient(125deg, #274a36f2, #173a2bcc); border-color: #add4b84d; color: #edf7e9; }
.theme-dark .trans-card > svg { background: #ffffff1a; color: #f8df79; }
.theme-dark .trans-card > .bi { background: #ffffff1a; color: #f8df79; }
.theme-dark .trans-card span { color: #f8df79; }
.theme-dark .links-band { background: #162c20; }
.theme-dark .campaigns { background: #162c20; }
.theme-dark .campaign-card { background: #294638; border-color: #4c6952; }
.theme-dark .links-row a { background: linear-gradient(125deg, #294639ed, #1b3228d9); border-color: #add4b84d; box-shadow: inset 0 1px 0 #ffffff18, 0 8px 24px #071a0c55; }
.theme-dark .other-portals { background: #162c20; }
.theme-dark .other-portal-card { background: #1a3041; color: #edf7e9; border-color: #4c6952; }
.theme-dark .other-portal-arrow { color: #f8df79; }
.theme-dark .links-row a:hover, .theme-dark .pub-item:hover, .theme-dark .bid:hover { background: #294638; }
.theme-dark .bid { border-color: #4a6953; }
.theme-dark .quick-wrap { background: #193125; }
.theme-dark .quick { color: #193a28; }
.theme-dark .quick span { color: #193a28; }
.theme-dark .brand { background: #fff; }
.theme-dark .search button { color: #f8df79; }

@media (prefers-reduced-motion: reduce) {
  .trans-card, .links-row a, .glass-reveal, .glass-reveal.is-visible { transition: none !important; opacity: 1 !important; transform: none !important; }
}

#top { opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(12px); transition: opacity .2s, transform .2s, visibility .2s; }
#top.show { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }

.info-dialog, .document-dialog { border: 0; border-radius: 13px; box-shadow: 0 25px 70px #092c1d55; max-width: min(92vw, 820px); max-height: 85vh; padding: 26px; color: #203c2d; }
.notice-dialog { width: min(760px, calc(100vw - 28px)); max-width: calc(100vw - 28px); max-height: min(90dvh, 900px); overflow: auto; padding: 0; border: 1px solid #ffffffd9; border-radius: 18px; background: #f7faf5; box-shadow: 0 30px 90px #092c1d70; color: #203c2d; }
.notice-dialog::backdrop { background: #092619b8; backdrop-filter: blur(5px); }
.notice-dialog-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 16px 20px; border-bottom: 1px solid #d9e7d9; background: #fff; }
.notice-dialog-head h2 { margin: 0; font: 800 clamp(.95rem, 2vw, 1.15rem)/1.35 Manrope, sans-serif; }
.notice-dialog-head button { display: grid; place-items: center; flex: 0 0 38px; width: 38px; height: 38px; padding: 0; border: 0; border-radius: 8px; background: #24704c; color: #fff; font-size: 1.35rem; line-height: 1; }
.notice-dialog-head button:hover { background: #174e33; }
.notice-dialog-body { padding: 10px; }
.notice-dialog-body a { display: block; }
.notice-dialog-body img { display: block; width: 100%; height: auto; max-height: calc(90dvh - 93px); margin: auto; border-radius: 10px; object-fit: contain; }
.info-dialog { width: min(430px, 92vw); }
.info-dialog::backdrop, .document-dialog::backdrop { background: #092619b3; }
.info-dialog h3, .document-dialog h3 { margin-top: 0; color: #17432d; }
.info-dialog p { line-height: 1.6; }
.info-dialog button, .document-dialog-head button { border: 0; border-radius: 7px; background: #24704c; color: #fff; padding: 10px 16px; }
.document-dialog { width: min(760px, calc(100vw - 32px)); max-height: min(88vh, 850px); overflow-y: auto; padding: 0; border-radius: 18px; background: #f6faf5; }
.document-dialog-head { position: sticky; top: 0; z-index: 2; display: flex; justify-content: space-between; align-items: center; gap: 20px; margin: 0; padding: 18px 24px; border-bottom: 1px solid #d8e6d8; background: #fff; }
.document-dialog-head h3 { margin: 0; font: 800 1.15rem/1.3 Manrope, sans-serif; }
.document-dialog-head button { display: grid; place-items: center; flex: 0 0 38px; width: 38px; height: 38px; padding: 0; border-radius: 9px; font-size: 1.35rem; line-height: 1; }
.document-dialog-head button:hover { background: #174e33; }
#documentContent { padding: 24px; }
.document-heading { display: grid; justify-items: start; gap: 12px; margin-bottom: 20px; }
.document-type { display: inline-flex; align-items: center; padding: 6px 10px; border: 1px solid #cbe3ce; border-radius: 6px; background: #eaf5e9; color: #1e6943; font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.document-type .bi, .attachment-icon .bi, .download-action .bi, .document-heading time .bi { display: none; }
.document-detail h3 { margin: 0; color: #17432d; font: 800 clamp(1.2rem, 3vw, 1.65rem)/1.3 Manrope, sans-serif; overflow-wrap: anywhere; }
.document-heading time { display: inline-flex; align-items: center; gap: 7px; color: #526a59; font-size: .82rem; font-weight: 700; }
.document-heading time::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #dbb83e; }
.document-description, .attachment-section { padding: 20px; border: 1px solid #dbe8d9; border-radius: 12px; background: #fff; }
.document-description { margin-bottom: 16px; }
.document-detail h4 { color: #17432d; }
.document-description h4 { margin: 0 0 9px; font-size: .92rem; }
.document-description > div { color: #405b48; font-size: .88rem; line-height: 1.65; overflow-wrap: anywhere; }
.attachment-title { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 16px; border-bottom: 1px solid #e1ebe0; }
.attachment-title span { color: #24704c; font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.attachment-title h4 { margin: 3px 0 0; font-size: 1.05rem; }
.attachment-title > b { display: grid; place-items: center; flex: 0 0 32px; width: 32px; height: 32px; border-radius: 50%; background: #e7f3e8; color: #205b3e; font-size: .82rem; }
.attachment-list a { display: flex; align-items: center; gap: 12px; min-width: 0; padding: 16px 0; border-bottom: 1px solid #e4ece3; color: #1d6945; text-decoration: none; }
.attachment-list a:last-child { border-bottom: 0; padding-bottom: 0; }
.attachment-list a:hover b, .attachment-list a:focus-visible b { text-decoration: underline; }
.attachment-icon { display: grid; place-items: center; flex: 0 0 42px; width: 42px; height: 42px; border-radius: 9px; background: #eaf5e9; color: #24704c; }
.attachment-icon::before { content: "▤"; font-size: 1.35rem; line-height: 1; }
.attachment-list p { flex: 1; min-width: 0; margin: 0; }
.attachment-list b { display: block; font-size: .83rem; line-height: 1.4; overflow-wrap: anywhere; }
.attachment-list small { display: block; margin-top: 4px; color: #607367; font-size: .72rem; }
.download-action { display: inline-flex; align-items: center; flex: 0 0 auto; padding: 8px 11px; border-radius: 7px; background: #e8f3e7; color: #1f6946; font-size: .76rem; }
.download-action em { font-style: normal; font-weight: 800; }
.download-action::after { content: "↓"; margin-left: 7px; font-size: 1rem; }
.attachment-list a:hover .download-action, .attachment-list a:focus-visible .download-action { background: #24704c; color: #fff; }
.no-attachments { display: flex; align-items: center; gap: 10px; padding-top: 16px; color: #607367; font-size: .85rem; }
.no-attachments p { margin: 0; }
.document-error { padding: 16px; border-radius: 9px; background: #fff4eb; color: #774117; }

@media (max-width: 1050px) {
  .links-row a { flex-basis: calc((100% - 28px) / 3); }
  .other-portals-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .brand-inner { min-height: 90px; }
  .brand-logo-image { width: min(285px, 100%); max-height: 70px; }
  .navigation { display: none; }
  .navigation.active { display: block; }
  .nav-inner { display: flex; flex-direction: column; align-items: stretch; padding: 8px 0; }
  .nav-cta { margin: 5px 0; }
  .home-link, .nav-top { width: 100%; text-align: left; justify-content: space-between; padding: 12px; }
  .sub-menu { position: static; min-width: 0 !important; max-width: none; max-height: 330px; box-shadow: none; border: 0; border-radius: 6px; }
  .nav-entry:hover .sub-menu, .nav-entry:focus-within .sub-menu { display: none; }
  .nav-entry.open .sub-menu { display: block; }
  .brand-actions .mobile-toggle { display: grid !important; }
}

@media (max-width: 760px) {
  .links-row a { flex-basis: calc((100% - 14px) / 2); }
  .campaign-grid, .campaign-grid.is-single { grid-template-columns: minmax(0, 1fr); }
  .campaign-card { aspect-ratio: 16 / 9; padding: 7px; }
  .campaign-action { right: 14px; bottom: 14px; min-height: 32px; }
  .updates.service-updates { grid-template-columns: minmax(0, 1fr); }
  .other-portals-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .utility-inner { padding-block: 7px; }
  .brand-logo { max-width: calc(100vw - 105px); }
  .brand-logo-image { width: min(280px, 100%); }
  .hero-grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .hero-copy { padding: 12px 0 26px; }
  .hero h1 { font-size: clamp(1.55rem, 6vw, 2.3rem); }
  .hero-visual { order: -1; padding: 18px 0 0; }
  .hero-visual:has(img) { min-height: 0; }
  .hero-visual img { height: 215px; }
  .floating-flag { left: 12px; bottom: 12px; }
  .newsletter form { max-width: none; }
  .footer-grid { gap: 20px; }
}

@media (max-width: 600px) {
  .links-row a { flex-basis: 100%; }
}

@media (max-width: 520px) {
  .document-dialog { width: calc(100vw - 20px); max-height: calc(100dvh - 20px); }
  .document-dialog-head { padding: 15px 17px; }
  #documentContent { padding: 17px; }
  .document-description, .attachment-section { padding: 16px; }
  .attachment-list a { display: grid; grid-template-columns: 42px minmax(0, 1fr); }
  .attachment-icon { grid-row: 1 / 3; }
  .download-action { grid-column: 2; justify-self: start; }
  .other-portals-grid { grid-template-columns: minmax(0, 1fr); }
  .container { width: calc(100% - 28px); }
  .access-controls { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; gap: 2px; }
  .access-controls > span { grid-column: 1 / -1; text-align: center; padding: 3px 0; }
  .access-controls button, .access-controls a { min-height: 36px; display: grid; place-items: center; padding: 4px; text-align: center; font-size: .72rem; }
  .utility-inner .right { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; gap: 0; }
  .utility-inner .right a { min-height: 34px; justify-content: center; text-align: center; padding: 3px; }
  .brand-logo-image { max-height: 58px; }
  .brand-actions { gap: 5px; }
  .quick-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quick { min-width: 0; overflow-wrap: anywhere; }
  .news-grid { grid-template-columns: minmax(0, 1fr); }
  .updates, .docs-grid, .transparency { grid-template-columns: minmax(0, 1fr); }
  .update-row { flex-wrap: wrap; }
  .newsletter form { display: grid; grid-template-columns: minmax(0, 1fr); }
  .newsletter input { min-width: 0; width: 100%; }
  .footer-grid { grid-template-columns: minmax(0, 1fr); }
  .footer-bottom { flex-direction: column; }
  .floating-access { right: 10px; bottom: 12px; }
  .cookies { left: 10px; bottom: 10px; width: calc(100% - 20px); }
}
