/* public-v1749.css */
/* v17.49 – mobile safe-area and student services visual simplification. */
html{background:#103b32;overscroll-behavior-y:none}
body{background:#f7f9f7;min-height:100dvh;overscroll-behavior-y:none}
@supports(-webkit-touch-callout:none){html,body{min-height:-webkit-fill-available}}
.home-v1748 .home-resources{border-bottom:0}
.home-v1748 .home-resource-grid{border:1px solid #dfe8e1;border-radius:14px;overflow:hidden;background:#fff}
.home-v1748 .home-resource-grid>a{border:0!important;border-radius:0!important;box-shadow:none!important}
.home-v1748 .home-resource-grid>a+a{border-left:0!important}
@media(max-width:760px){.home-v1748 .home-resource-grid{border:1px solid #dfe8e1;background:#fff}.home-v1748 .home-resource-grid>a{border:0!important;border-radius:0!important}.home-v1748 .home-resource-grid>a+a{border-left:0!important;border-top:0!important}}
@media(display-mode:standalone){html{background:#103b32}body{background:#f7f9f7}.site-footer{padding-bottom:calc(32px + env(safe-area-inset-bottom,0px))}}

/* public-v1750.css */
/* v17.50 · responsive full-screen navigation and restrained editorial polishing. */
.mobile-nav-header,.mobile-nav-footer{display:none}
.home-v1748 .home-masthead-inner{padding-block:clamp(34px,4.7vw,58px)}
.home-v1748 .home-masthead-description{margin-top:12px}
.home-v1748 .home-resource-grid>a{transition:background .16s ease}
.home-v1748 .home-resource-grid>a:hover,.home-v1748 .home-resource-grid>a:focus-visible{background:#f0f6f1}
.home-v1748 .home-section-head h2{letter-spacing:-.02em}

/* A real, grounded environment photograph belongs with the association / contact information. */
.association-location{margin-top:clamp(44px,6.5vw,86px);padding-top:clamp(30px,4vw,46px);border-top:1px solid #e1e9e3}
.association-location-head{max-width:680px}
.association-location h2{margin:0;color:#143e32;font-size:clamp(22px,2.4vw,29px);line-height:1.45;letter-spacing:-.02em}
.association-location-head>p:last-child{margin:12px 0 26px;color:#536d5e;font-size:15px;line-height:1.85}
.association-location-photo{margin:0}
.association-location-photo img{display:block;width:100%;max-height:580px;object-fit:cover;object-position:center 44%;border:1px solid #e0e8e2;border-radius:12px}
.association-location-photo figcaption{padding:12px 0;color:#708275;font-size:12px}
.contact-location{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(18px,4vw,42px);margin-top:clamp(28px,5vw,50px);padding-top:clamp(22px,4vw,32px);border-top:1px solid #e0e8e2;align-items:center}
.contact-location-kicker{margin:0 0 10px;color:#977345;font-size:11px;font-weight:750;letter-spacing:.06em}
.contact-location h2{margin:0;color:#143e32;font-size:clamp(22px,2.5vw,28px)}
.contact-location-copy>p:last-child{color:#546e5e;line-height:1.9;font-size:14px;max-width:36rem}
.contact-location figure{margin:0;min-width:0}
.contact-location img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;border-radius:12px;border:1px solid #dfe8e0}
.contact-location figcaption{color:#708275;font-size:12px;padding-top:8px}

@media(max-width:1120px){
  .site-header{z-index:1000}
  .site-header .primary-nav{display:none;position:fixed!important;inset:0!important;top:0!important;left:0!important;right:0!important;bottom:0!important;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh!important;margin:0!important;padding:0!important;background:#fff;z-index:1001;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;border:0;box-shadow:none;flex-direction:column}
  .site-header.menu-open .primary-nav{display:flex!important}
  .mobile-navigation-open{scrollbar-gutter:stable;overflow:hidden!important}
  body.mobile-navigation-open{position:relative;touch-action:none}
  .site-header .mobile-nav-header{display:flex;justify-content:space-between;align-items:center;gap:16px;flex:none;min-height:88px;padding:calc(18px + env(safe-area-inset-top,0px)) max(24px,env(safe-area-inset-right,0px)) 18px;border-bottom:1px solid #e4ebe6;background:#f8faf8}
  .mobile-nav-brand{display:grid;gap:4px;min-width:0}
  .mobile-nav-brand span{font-size:11px;color:#62786a}
  .mobile-nav-brand strong{font-size:19px;font-weight:750;color:#123e32;line-height:1.4}
  .mobile-nav-close{display:grid;place-items:center;width:44px;height:44px;flex:none;padding:0;border:1px solid #d7e3db;border-radius:12px;background:#fff;color:#194839;cursor:pointer}
  .mobile-nav-close svg{width:20px;height:20px}
  .site-header .nav-list{display:flex;flex-direction:column;align-items:stretch;gap:0;width:min(calc(100% - 48px),760px);margin-inline:auto;padding:16px 0 28px;flex:1 0 auto}
  .site-header .nav-list>li{position:static;display:block;border-bottom:1px solid #e8eee9;width:100%}
  .site-header .nav-list>li>a,.site-header .nav-list>li>details>summary{min-height:64px;padding:8px 3px;font-size:17px;font-weight:720;color:#1a4034;line-height:1.55;white-space:normal;display:flex;align-items:center;justify-content:space-between;width:100%;border:0}
  .site-header .nav-list .subnav{position:static;display:grid;gap:0;width:100%;padding:0 0 12px 18px;border:0;box-shadow:none;background:#fff}
  .site-header .nav-list .subnav a{display:flex;min-height:48px;align-items:center;white-space:normal;font-size:14px;color:#385c48;padding:10px 13px;line-height:1.55;border-left:2px solid #d4e4da}
  .site-header .nav-list .subnav a[aria-current="page"]{border-color:#2b7558;color:#144934;background:#f2f7f3}
  .site-header .nav-group[open]>summary{color:#176345}
  .site-header .mobile-nav-footer{display:block;flex:none;width:100%;padding:20px max(24px,env(safe-area-inset-left,0px)) calc(22px + env(safe-area-inset-bottom,0px));background:#f4f7f5;border-top:1px solid #dfe8e1}
  .mobile-nav-language-label{display:block;margin-bottom:12px;font-size:12px;font-weight:650;color:#577161}
  .mobile-nav-languages{display:flex;gap:8px}
  .mobile-nav-languages a{display:flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border:1px solid #d4e0d8;border-radius:9px;background:#fff;color:#294f3d;font-size:14px;font-weight:700}
  .mobile-nav-languages a[aria-current="page"]{color:#fff;background:#143f33;border-color:#143f33}
  .mobile-nav-footer p{margin:18px 0 0;font-size:11px;line-height:1.6;color:#66796b}
  .site-header .header-actions>.language-control{display:none}
  .site-header .header-inner{gap:12px}
  .site-header .menu-toggle{min-width:44px;min-height:44px;border-radius:11px}
  .site-header .header-actions{gap:8px}
}
@media(max-width:760px){
  .contact-location{grid-template-columns:1fr;gap:16px}
  .association-location-head>p:last-child{font-size:14px}
  .association-location-photo img{aspect-ratio:4/3;object-position:center 40%}
}
@media(max-width:390px){
  .site-header .brand-symbol{width:39px;height:39px}
  .site-header .brand-type strong{font-size:15px}
  .site-header .header-inner{gap:8px}
  .site-header .header-actions{gap:4px}
  .site-header .search-action,.site-header .menu-toggle{width:42px;min-width:42px;height:44px}
  .mobile-nav-brand strong{font-size:17px}
}
@media(prefers-reduced-motion:reduce){.home-v1748 .home-resource-grid>a{transition:none}}
/* The HTML image dimensions establish intrinsic ratio; CSS owns rendered height. */
.association-location-photo img,.contact-location img{height:auto}

/* public-v1751.css */
/* v17.51 responsive polish, avoiding extra home panels. */
.home-v1746 .home-masthead{overflow:visible}
.home-v1746 .home-masthead-inner{align-items:center}
@media(max-width:760px){.home-v1746 .home-masthead-inner{gap:20px}}
.site-map-page{background:#fff;min-height:calc(100svh - 270px);padding:clamp(34px,5vw,62px) 0 clamp(54px,7vw,90px)}
.site-map-heading{padding-bottom:24px;border-bottom:1px solid #dde7e0}
.site-map-heading>p:first-child{margin:0 0 12px;color:#987449;font-size:12px;font-weight:700}
.site-map-heading h1{font-size:clamp(30px,4vw,44px);line-height:1.3;color:#123e32;margin:0}
.site-map-heading>p:last-child{font-size:14px;color:#637b6d;line-height:1.8;margin:14px 0 0}
.site-map-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,4vw,48px);padding-top:32px}
.site-map-group h2{font-size:20px;color:#153f32;margin:0 0 18px}
.site-map-group ul{list-style:none;margin:0;padding:0}
.site-map-group li{border-top:1px solid #e4ede7}
.site-map-group a{display:flex;align-items:center;min-height:48px;padding:10px 2px;font-size:14px;color:#265641;text-decoration:none;line-height:1.6}
.site-map-group a:hover{text-decoration:underline;text-underline-offset:4px}
.site-map-group a:focus-visible{outline:2px solid #287452;outline-offset:3px}
@media(max-width:760px){.site-map-groups{grid-template-columns:1fr;gap:30px}.site-map-group h2{margin-bottom:8px}}

/* Safe fallback for browsers that expose body background during overscroll. */
html{overscroll-behavior-y:none}

/* public-v1752.css */
/* v17.52: measured refinements, preserving the existing brand/desktop navigation. */
@media(max-width:1120px){
  .site-header .mobile-nav-header{min-height:82px;height:82px;padding:env(safe-area-inset-top,0px) max(20px,var(--gutter)) 0;box-sizing:content-box}
  .site-header .mobile-nav-close{width:44px;height:44px;min-width:44px;min-height:44px;border-radius:11px;margin:0;flex-shrink:0}
  .site-header .mobile-nav-header .mobile-nav-brand{padding:0;justify-self:start}
  .site-header .header-inner{min-height:82px}
}
@media(max-width:760px){
  .site-header .header-inner{min-height:72px}
  .site-header .mobile-nav-header{height:72px;min-height:72px;padding:env(safe-area-inset-top,0px) max(20px,var(--gutter)) 0}
  .site-header .mobile-nav-close{width:44px;height:44px}
}
@media(max-width:390px){
  .site-header .header-inner{gap:8px}
  .site-header .mobile-nav-header{padding-inline:max(20px,var(--gutter))}
}
/* Very short cross-document transition, no blocking overlay or layout work. */
@media(prefers-reduced-motion:no-preference){
  @supports (view-transition-name:site-page){
    ::view-transition-old(site-page){animation:90ms ease-in both v1752-page-out}
    ::view-transition-new(site-page){animation:150ms ease-out both v1752-page-in}
    @keyframes v1752-page-out{to{opacity:.35}}
    @keyframes v1752-page-in{from{opacity:.35}to{opacity:1}}
  }
}
@media(prefers-reduced-motion:reduce){::view-transition-old(*),::view-transition-new(*){animation:none!important}}

/* public-design.css */
/* Public interface tokens */
:root {
  --forest: #143f34;
  --forest-dark: #0d3128;
  --ink: #1d3028;
  --text: #354f42;
  --subtle: #53685d;
  --line: #d9e3dc;
  --line-soft: #e9efe9;
  --surface: #f6f8f5;
  --gold: #8b673b;
  --ui-brand: var(--forest);
  --ui-brand-hover: var(--forest-dark);
  --ui-accent: var(--gold);
  --ui-text: var(--ink);
  --ui-muted: var(--subtle);
  --ui-border: var(--line);
  --ui-background: var(--surface);
  --ui-focus: #815b2f;
  --ui-radius-control: 10px;
  --ui-radius-panel: 14px;
  --ui-control-height: 44px;
  --ui-duration: 150ms;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

html { scrollbar-gutter: stable; }
body { color: var(--ink); line-height: 1.65; }
#main-content { min-width: 0; }
#main-content :is(h1,h2,h3,h4) { text-wrap: pretty; letter-spacing: -.025em; }
#main-content :is(p,li,td,th,dd) { overflow-wrap: anywhere; }
#main-content :where(p,li,dd) { line-height: 1.8; }
:where(a,button,summary,input,select,textarea):focus-visible {
  outline: 2px solid #8b673b;
  outline-offset: 3px;
}
:where(a,button,summary,input,select,textarea) { -webkit-tap-highlight-color: rgba(20,63,52,.10); }
:where(button,input,select,textarea) { font: inherit; }
:where(input,select,textarea) { accent-color: var(--forest); }
:where(button,.button) { cursor: pointer; }
:where(button,.button)[disabled],:where(a)[aria-disabled="true"] { cursor: not-allowed; }

/* Site identity and navigation */
.site-header { border-bottom-color: var(--line); }
.header-inner { gap: clamp(12px,2vw,28px); }
.brand-type strong { letter-spacing: .005em; font-weight: 750; }
.brand-overline { color: var(--subtle); letter-spacing: .01em; }
:where(.nav-link,.nav-group>summary) { transition: color var(--ui-duration) ease, background-color var(--ui-duration) ease; }
:is(.nav-link,.nav-group>summary):hover { color: var(--forest); }
.subnav a[aria-current="page"] { color: var(--forest); background: var(--surface); font-weight: 750; }
.header-actions .search-action { min-width: 44px; min-height: 44px; display: inline-grid; place-items: center; border-radius: var(--ui-radius-control); }
.header-actions .search-action:hover,.header-actions .search-action.is-current { background: var(--surface); }
.menu-toggle { min-width: 44px; min-height: 44px; }

/* Lists and linked content */
.content-published-date { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; }
.content-published-label { font-size: 12px; font-weight: 600; color: var(--subtle); letter-spacing: 0; white-space: nowrap; }
.news-list time,.home-update-date time,.article-date time { font-variant-numeric: tabular-nums; font-size: 13px; color: var(--text); }
.news-list-copy strong { color: var(--forest); font-weight: 720; }
.news-list-copy > span,.home-update-summary { color: var(--subtle); }
.news-list li > a { border-radius: 10px; transition: background-color var(--ui-duration) ease; }
.news-list li > a:hover,.news-list li > a:focus-visible { background: var(--surface); transform: none; }
.content-card>a { border-radius: 10px; transition: background-color var(--ui-duration) ease; padding-inline: 14px; }
.content-card>a:hover,.content-card>a:focus-visible { background: var(--surface); }
.content-card h3 { font-size: 18px; line-height: 1.48; }
.content-card p { color: var(--subtle); }
.article-page { max-width: 830px; }
.article-date { display: flex; align-items: baseline; flex-wrap: wrap; gap: 10px; font-size: 13px; }
.article-body,.policy-document { font-size: 16px; line-height: 1.95; }
.article-lead { font-size: clamp(16px,1.5vw,18px); }
.back-link { font-size: 14px; font-weight: 650; }

/* Form and action states */
:where(.button,.search-row button,.news-pagination button,.pagination a) {
  min-height: 44px; border-radius: var(--ui-radius-control); font-size: 14px;
  transition: color var(--ui-duration) ease,background-color var(--ui-duration) ease,border-color var(--ui-duration) ease;
}
#main-content :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea) {
  font-size: 16px; min-height: 44px; border-color: #b9cfc0; background-color: #fff;
}
#main-content :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea):focus-visible { border-color: var(--forest); }
.search-intro p,.search-results-heading p,.search-idle-state,.empty-state { color: var(--subtle); }
.search-results-wrap { margin-top: clamp(32px,5vw,55px); }
.search-result-card .content-meta { font-weight: 650; }
.search-page .search-results-heading { border-bottom: 1px solid var(--line); }
.search-page .empty-state { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; padding: 28px; }
.search-page .empty-state a { color: var(--forest); font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }

/* Home and footer */
.home-v1746 .home-masthead { background: #f4f7f4; }
.home-v1746 .home-next-date { border-color: var(--line); box-shadow: 0 5px 20px rgba(20,63,52,.055); }
.home-v1746 .home-masthead-copy h1 { letter-spacing: -.025em; }
.home-v1746 .home-section-head h2 { letter-spacing: -.015em; }
.home-update-date { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.home-updates-list :is(a:hover,a:focus-visible) { background: var(--surface); }
.site-footer { background: #103b32; color: #c9d8ce; border-top-color: #0d3129; }
.site-footer a { text-underline-offset: 3px; }
.site-footer :is(a:hover,a:focus-visible) { color: #fff; }

/* Editorial and policy documents */
.policy-layout { gap: clamp(28px,4vw,62px); }
.policy-sidebar a { font-size: 14px; }
.policy-outline h2 { font-size: 13px; }
.policy-toc a { color: var(--text); font-size: 13px; }
.policy-review-note { margin: 0 0 22px; padding: 16px 20px; border: 1px solid #e2d0b5; border-left: 3px solid #8b673b; border-radius: 8px; background: #fbf8f1; color: #674b2d; font-size: 14px; line-height: 1.8; }
.policy-language-note { font-size: 14px; }
.policy-document>p:first-child { font-size: 13px; color: var(--subtle); }
.policy-document section { scroll-margin-top: 28px; }
.policy-document h2 { font-size: clamp(19px,2vw,23px); }

/* Calendar feedback */
.calendar-load-status { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; font-size: 14px; color: #7b4136; }
.calendar-load-status:empty { display: none; }
.calendar-retry { min-height: 40px; padding: 7px 15px; border: 1px solid var(--forest); border-radius: 8px; background: #fff; color: var(--forest); font-weight: 700; font-size: 14px; }
.calendar-retry:hover { background: var(--surface); }
.calendar-error-panel { margin: 18px; padding: 24px; border: 1px solid #e5cbc2; border-radius: 12px; background: #fff9f7; color: #783b31; text-align: center; font-size: 15px; }
.calendar-toolbar button,.calendar-category-bar button { min-height: 44px; }
.calendar-dialog [data-calendar-close] { min-width: 44px; min-height: 44px; }

/* Contact and partner details */
.contact-page .contact-heading p:last-child { color: var(--subtle); font-size: 15px; }
.contact-form-panel,.contact-side-note,.contact-success { box-shadow: none; border-color: var(--line); }
.contact-form-panel form>label:not(.contact-choice) { font-size: 14px; }
.contact-choice span { font-size: 14px; }
.contact-choice small,.contact-privacy-detail,.contact-notice p { font-size: 13px; line-height: 1.8; }
.contact-notice { background: #f8faf7; }
.contact-side-note p { font-size: 14px; }
.partners-heading-v1749>p:last-child { color: var(--subtle); font-size: 15px; }
.partner-current { font-size: 12px; font-weight: 650; }
.partner-summary { font-size: 14px; color: var(--subtle); }
.partner-detail-note { font-size: 13px; color: var(--subtle); }
.partner-detail-description { font-size: 16px; }
.partner-detail-section h2 { font-size: 16px; }
.partner-detail-body { font-size: 15px; line-height: 1.85; }
.partner-detail-link { transition: background-color var(--ui-duration) ease,border-color var(--ui-duration) ease; }

@media (max-width: 1120px) {
  .site-header .mobile-nav-close { min-width: 44px; min-height: 44px; flex: 0 0 44px; }
  .site-header .mobile-nav-header { box-sizing: border-box; min-height: calc(72px + env(safe-area-inset-top,0px)); height: auto; padding: env(safe-area-inset-top,0px) max(20px,var(--gutter)) 0; }
  .site-header .mobile-nav-brand strong { letter-spacing: 0; }
  .site-header .primary-nav { z-index: 1001; }
}
@media (max-width: 760px) {
  html { scrollbar-gutter: auto; }
  .article-body,.policy-document { font-size: 15px; }
  .search-page,.article-page,.news-page,.policy-page { padding-block: 44px 76px; }
  .news-list li>a { padding: 20px 8px; }
  .news-list time { grid-column: auto; }
  .site-header .header-inner { min-height: 72px; }
  .site-header .mobile-nav-header { min-height: calc(72px + env(safe-area-inset-top,0px)); }
  .site-header .mobile-nav-brand strong { font-size: clamp(15px,4vw,18px); }
}
@media (max-width: 600px) {
  .news-list .content-published-date { grid-column: 1; }
  .policy-document { font-size: 15px; }
  .search-results-heading { gap: 9px; }
  .article-page h1 { font-size: clamp(28px,7vw,37px); }
  .contact-form-panel,.contact-side-note,.contact-success { padding: 20px; }
  .header-actions .search-action,.site-header .menu-toggle { width: 44px; height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  :where(.nav-link,.nav-group>summary,.content-card>a,.news-list li>a,.partner-detail-link) { transition: none; }
}

/* public-v1754.css */
/* Public content and responsive interaction refinements */
:root {
  --content-reading: 800px;
  --field-border: #b7cbbd;
  --action-ring: #94703d;
}

/* Navigation keeps the close control aligned with the menu control. */
@media (max-width: 1120px) {
  html.mobile-navigation-open { scrollbar-gutter: auto !important; }
  .site-header .mobile-nav-header {
    min-height: calc(82px + env(safe-area-inset-top, 0px));
    height: calc(82px + env(safe-area-inset-top, 0px));
    padding: env(safe-area-inset-top, 0px) var(--mobile-close-offset, var(--gutter)) 0 var(--gutter);
    box-sizing: border-box;
    background: #fff;
  }
  .site-header .mobile-nav-close,
  .site-header .menu-toggle {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
    color: var(--forest);
  }
  .site-header .menu-toggle .menu-icon { display: block; }
  .site-header .menu-toggle .close-icon { display: none; }
  .site-header .nav-list { width: min(calc(100% - var(--gutter) - var(--gutter)), 760px); }
  .site-header .nav-list > li > a,
  .site-header .nav-list > li > details > summary { font-size: 16px; min-height: 58px; }
  .site-header .nav-list .subnav a { font-size: 14px; min-height: 48px; }
  .site-header .mobile-nav-footer { padding-inline: var(--gutter); }
  .site-header.menu-open .primary-nav { visibility: visible; }
}
@media (max-width: 760px) {
  .site-header .mobile-nav-header {
    min-height: calc(72px + env(safe-area-inset-top, 0px));
    height: calc(72px + env(safe-area-inset-top, 0px));
  }
  .site-header .mobile-nav-brand strong { font-size: clamp(14px, 4vw, 18px); }
  .site-header .nav-list { padding-block: 9px 26px; }
  .site-header .header-inner { gap: 7px; }
  .site-header .brand { flex: 1 1 auto; overflow: hidden; }
  .site-header .brand-type { min-width: 0; }
  .site-header .brand-type strong { font-size: clamp(13px, 3.7vw, 17px); white-space: normal; }
  .site-header .header-actions { gap: 4px; }
  .site-header .search-action { width: 44px; height: 44px; }
  .site-header .brand-symbol { width: 39px; height: 39px; }
}
@media (max-width: 350px) {
  .site-header .brand-symbol { width: 34px; height: 34px; }
  .site-header .brand-type strong { font-size: 13px; }
  .site-header .brand { gap: 7px; }
}

/* Front-page agenda is a compact index, not a second calendar component. */
.home-agenda { padding-block: clamp(28px, 4vw, 48px); }
.home-agenda .home-section-head { display: flex; align-items: center; justify-content: space-between; gap: 12px 20px; margin-bottom: 15px; }
.home-agenda-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 16px; }
.home-agenda-list li { min-width: 0; }
.home-agenda-list li > a { display: flex; gap: 15px; align-items: center; min-height: 84px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); background: #fff; }
.home-agenda-list li > a:hover,
.home-agenda-list li > a:focus-visible { background: var(--surface); border-color: #b7cdbf; }
.home-agenda-date { flex: 0 0 5em; white-space: nowrap; padding-right: 13px; border-right: 1px solid var(--line); }
.home-agenda-date time { display: grid; gap: 2px; }
.home-agenda-date strong { color: var(--forest); font-size: 19px; font-weight: 750; font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.home-agenda-date small { color: var(--subtle); font-size: 12px; }
.home-agenda-info { flex: 1 1 auto; display: grid; gap: 5px; min-width: 0; }
.home-agenda-info strong { font-size: 15px; color: var(--forest); line-height: 1.5; overflow-wrap: anywhere; }
.home-agenda-info small { font-size: 13px; color: var(--subtle); line-height: 1.5; overflow-wrap: anywhere; }
.home-agenda-arrow { align-self: center; color: #547463; font-size: 23px; }
.home-agenda-empty { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; justify-content: space-between; padding: 22px; background: #f7faf7; border: 1px solid var(--line); border-radius: 12px; }
.home-agenda-empty p { margin: 0; font-size: 14px; color: var(--subtle); }
.home-agenda-empty a { font-size: 14px; color: var(--forest); font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.home-agenda-note { margin: 12px 0 0; color: var(--subtle); font-size: 13px; }
@media (max-width: 760px) {
  .home-agenda { padding-block: 27px; }
  .home-agenda-list { grid-template-columns: 1fr; gap: 8px; }
  .home-agenda-list li > a { min-height: 72px; padding: 12px 14px; gap: 12px; }
  .home-agenda-date { flex-basis: 4.4em; padding-right: 10px; }
  .home-agenda-date strong { font-size: 17px; }
  .home-agenda-info strong { font-size: 14px; }
  .home-v1748 .home-resource-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-v1748 .home-resource-grid > a { min-width: 0; padding: 14px 11px; min-height: 101px; gap: 9px; align-items: flex-start; flex-direction: column; }
  .home-v1748 .home-resource-grid > a:nth-child(2n) { border-left: 1px solid var(--line-soft) !important; }
  .home-v1748 .home-resource-grid > a:nth-child(n+3) { border-top: 1px solid var(--line-soft) !important; }
  .home-v1748 .home-resource-icon { width: 35px; height: 35px; flex-basis: 35px; }
  .home-v1748 .home-resource-icon svg { width: 19px; height: 19px; }
  .home-v1748 .home-resource-copy strong { font-size: 14px; }
  .home-v1748 .home-resource-copy small { font-size: 12px; line-height: 1.55; }
}

/* Partner directory supports filtering without hiding content when scripts are unavailable. */
.partner-search { display: grid; gap: 10px; padding: 18px 0 23px; }
.partner-search[hidden], .partner-row[hidden], .partner-search-empty[hidden] { display: none !important; }
.partner-search > label { color: var(--forest); font-weight: 720; font-size: 14px; }
.partner-search-control { display: flex; align-items: center; width: min(100%, 550px); min-height: 48px; padding: 0 12px 0 15px; gap: 11px; background: #fff; border: 1px solid var(--field-border); border-radius: 10px; transition: border-color .15s ease, box-shadow .15s ease; }
.partner-search-control:focus-within { border-color: #47775e; box-shadow: 0 0 0 3px #47775e20; }
.partner-search-control > svg { flex: 0 0 19px; width: 19px; height: 19px; color: #567366; }
.partner-search-control input[type="search"] { min-width: 0; width: 100%; flex: 1 1 auto; min-height: 46px; padding: 0; border: 0 !important; box-shadow: none !important; outline: 0 !important; background: transparent; color: var(--ink); font-size: 16px; }
.partner-search-control input::placeholder { color: #697e71; }
.partner-search-control button { flex: 0 0 auto; padding: 7px 10px; min-height: 34px; background: #eef5ef; border: 0; border-radius: 7px; color: var(--forest); font-size: 13px; font-weight: 700; }
.partner-search-count { margin: 0; color: var(--subtle); font-size: 13px; }
.partner-search-empty { padding: 28px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); color: var(--ink); }
.partner-search-empty p { margin: 0 0 12px; font-size: 15px; }
.partner-search-empty button { padding: 9px 14px; min-height: 44px; background: #fff; color: var(--forest); border: 1px solid #b8cfc0; border-radius: 8px; font-size: 14px; font-weight: 700; }
.partner-row .partner-detail-link { min-height: 44px; }
.partner-row .partner-primary { gap: 15px; }
.partner-detail-sections { gap: 0; }
.partner-detail-period { gap: 8px 24px; }
.partner-detail-section:first-child .partner-detail-body { font-size: 16px; font-weight: 600; color: #1b4837; }
.partner-detail-section:first-child { background: #f9fbf9; border-radius: 11px; padding-inline: 18px; }
.partner-detail-map a { min-height: 48px; }
@media (max-width: 760px) {
  .partner-search { padding-block: 12px 22px; }
  .partners-directory-head { flex-wrap: wrap; }
  .partner-row { padding: 20px 16px; }
  .partner-row .partner-detail-link { width: 100%; justify-content: space-between; }
  .partner-detail-page { padding-bottom: calc(56px + env(safe-area-inset-bottom, 0px)); }
  .partner-detail-crumb { gap: 9px; margin-bottom: 22px; }
  .partner-detail-heading { margin-bottom: 18px; }
  .partner-detail-section { padding-block: 20px; }
  .partner-detail-section:first-child { padding-inline: 14px; }
}

/* Article actions remain secondary to the content. */
.public-share { display: flex; flex-wrap: wrap; align-items: center; gap: 9px 12px; margin-top: 38px; padding-top: 20px; border-top: 1px solid var(--line); }
.public-share-label { color: var(--subtle); font-size: 13px; font-weight: 650; margin-right: 5px; }
.public-share button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 9px 15px; border: 1px solid #bfd1c3; border-radius: 9px; background: #fff; color: var(--forest); font-size: 14px; font-weight: 700; }
.public-share button:hover { background: var(--surface); border-color: #829f8b; }
.public-share button[hidden] { display: none; }
.public-share-status { flex-basis: 100%; min-height: 0; color: var(--subtle); font-size: 13px; }
.notfound-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 24px; }
.notfound-actions .button.secondary { background: #fff; color: var(--forest); border-color: #b7cbbd; }
.notfound-actions .button.secondary:hover { background: var(--surface); }
.news-empty { display: flex; flex-wrap: wrap; gap: 8px 20px; align-items: center; justify-content: space-between; }
.news-empty a { min-height: 44px; display: inline-flex; align-items: center; color: var(--forest); font-size: 14px; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.article-body :is(img,video,iframe,table) { max-width: 100%; }
.article-body img { height: auto; }
.article-body :is(a,button) { overflow-wrap: anywhere; }
@media (max-width: 760px) {
  .article-page { padding-block: 30px 62px; }
  .article-page h1 { font-size: clamp(27px, 7vw, 36px); line-height: 1.38; }
  .article-body { font-size: 16px; line-height: 1.85; }
  .public-attachments li { gap: 9px; flex-wrap: wrap; }
  .public-share { margin-top: 30px; }
  .news-list li > a { padding-block: 20px; }
  .news-pagination { max-width: 100%; flex-wrap: wrap; }
}

/* Calendar navigation and compact agenda. */
.calendar-jump { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 14px; padding: 12px 25px 8px; border-bottom: 1px solid #edf1ee; background: #fff; }
.calendar-jump label { color: var(--subtle); font-size: 13px; font-weight: 650; }
.calendar-jump input[type="month"] { width: auto; min-width: 164px; min-height: 44px; padding: 8px 12px; border: 1px solid var(--field-border); border-radius: 9px; background: #fff; color: var(--forest); font-size: 15px; }
.calendar-jump-hint { color: var(--subtle); font-size: 12px; }
.calendar-results-summary { margin: 0; padding: 10px 25px; background: #fafcfa; color: var(--subtle); border-bottom: 1px solid #e8eee9; font-size: 13px; }
.calendar-agenda-item { min-height: 50px; border-radius: 9px; }
.calendar-agenda-info strong { overflow-wrap: anywhere; }
.calendar-dialog { width: min(510px, calc(100vw - 24px)); border-radius: 14px; }
.calendar-dialog [data-calendar-close] { border-radius: 8px; }
.calendar-load-status:not(:empty) { line-height: 1.7; }
@media (max-width: 700px) {
  .calendar-page { padding-block: 25px 60px; }
  .calendar-toolbar { padding: 14px; }
  .calendar-period { min-width: 0; }
  .calendar-period h2 { font-size: clamp(18px, 5vw, 23px); }
  .calendar-arrows button { min-height: 44px; min-width: 44px; }
  .calendar-jump { padding: 12px 14px 10px; }
  .calendar-jump-hint { display: none; }
  .calendar-jump input[type="month"] { flex: 1 1 155px; max-width: 225px; }
  .calendar-results-summary { padding: 10px 14px; }
  .calendar-category-bar { padding-inline: 14px; }
  .calendar-category-bar button { min-height: 44px; }
  .calendar-agenda { padding-inline: 10px; }
  .calendar-agenda-day { padding-block: 14px; }
  .calendar-agenda-date span { font-size: 25px; }
  .calendar-agenda-info small,.calendar-agenda-time { font-size: 12px; }
  .calendar-agenda-info strong { font-size: 15px; line-height: 1.5; }
  .calendar-dialog { max-height: min(88dvh, 780px); padding: 20px; }
  .calendar-dialog h2 { font-size: 22px; }
}

@media (max-width: 480px) {
  .pwa-update-notice { left: var(--gutter); right: var(--gutter); bottom: calc(82px + env(safe-area-inset-bottom, 0px)); transform: none; max-width: none; display: grid; grid-template-columns: 1fr 1fr; gap: 7px; padding: 12px; font-size: 13px; }
  .pwa-update-notice span { grid-column: 1/-1; }
  .pwa-update-notice button { width: 100%; }
  .pwa-update-notice button + button { background: #eaf1ec; color: var(--forest); }
  body.ee-pal-chat-open .pwa-update-notice { visibility: hidden; pointer-events: none; }
}
@media (prefers-reduced-motion: reduce) {
  .home-agenda-list li > a,.partner-search-control,.public-share button { transition: none; }
}
