/* Public portal finish; all artwork, fonts and scripts remain inside Content. */
.public-portal { --muted: #705e50; }
.public-portal :focus-visible, .content-admin :focus-visible { outline: 3px solid #9c3e0c; outline-offset: 4px; }
.public-portal section { scroll-margin-top: 24px; }
.public-portal .topbar { border-top: 3px solid #ed851e; }
.public-portal .brand-header { background: #fff; }
.public-portal .brand-inner { min-height: 116px; }
.public-portal .brand-text { gap: 4px; }
.public-portal .brand-text small { letter-spacing: .06em; }
.public-portal .header-search, .public-portal .header-login { border-radius: 6px; min-height: 44px; }
.public-portal .main-nav { border-bottom-width: 2px; }
.public-portal .main-nav .nav-link { font-size: .82rem; padding-inline: 13px !important; }
html[lang="en"] .public-portal .main-nav .nav-link { font-size: .78rem; padding-inline: 11px !important; }
.public-portal .ticker-inner { min-height: 48px; height: auto; gap: 16px; }
.public-portal .ticker-inner > strong { padding-block: 10px; }
.public-portal .ticker-window { min-width: 0; overflow-x: auto; scrollbar-width: thin; }
.public-portal .ticker-track { animation: none; gap: 0; min-height: 44px; align-items: center; }
.ticker-track > a { margin-right: 36px; }
.ticker-group { flex: 0 0 auto; display: flex; align-items: center; gap: 36px; padding-right: 36px; }
.ticker-group a { white-space: nowrap; padding-block: 12px; }
.ticker-clone { display: none; }
.ticker-overflow .ticker-clone { display: flex; }
.public-portal .ticker-overflow { overflow: hidden; }
.ticker-overflow .ticker-track { animation: public-ticker 42s linear infinite; }
.public-portal .ticker-track.paused, .public-portal .ticker-window:hover .ticker-track, .public-portal .ticker-window:focus-within .ticker-track { animation-play-state: paused; }
.public-portal .ticker-window:focus-within { overflow-x: auto; }
.public-portal .ticker-window:focus-within .ticker-track { animation: none; }
.public-portal .ticker-inner > button, .ticker-all { flex: 0 0 40px; width: 40px; min-height: 40px; display: grid; place-items: center; border-radius: 5px; }
.public-portal .ticker-inner > button[hidden] { display: none; }
.ticker-all { color: #84370d; background: #fff0db; }
.ticker-empty { color: #744d32; white-space: normal; max-width: 100%; font-weight: 500; }
@keyframes public-ticker { to { transform: translateX(-50%); } }
.public-portal .hero-slide { height: 565px; }
.public-portal .hero-content { padding-top: 66px; }
.public-portal .hero-content h1, .public-portal .hero-content h2 { max-width: 760px; font-size: clamp(2.3rem,3.7vw,3.5rem); line-height: 1.32; margin-block: 18px; letter-spacing: -.025em; }
.public-portal .hero-content > p { max-width: 620px; font-size: 1rem; }
.public-portal .hero-actions > * { border-radius: 5px; }
.public-portal .hero-controls { bottom: 42px; }
.public-portal .quick-section { height: auto; padding: 0; }
.public-portal .quick-panel { position: relative; left: auto; bottom: auto; transform: none; margin-top: -1px; grid-template-columns: 200px minmax(0,1fr); min-height: 156px; border: 1px solid #eedfce; border-radius: 0 0 10px 10px; overflow: hidden; box-shadow: 0 12px 28px #74300e0d; }
.public-portal .quick-head { padding: 22px; }
.public-portal .quick-grid > a { padding: 21px 12px; }
.public-portal .leadership-showcase { padding: 68px 0; }
.public-portal .section-heading-row { margin-bottom: 28px; }
.public-portal .section-heading-row h2, .public-portal .focus-heading h2, .public-portal .partner-heading h2 { font-size: clamp(1.6rem,2.6vw,2.1rem); }
.public-portal .leader-grid { grid-template-columns: repeat(5,minmax(0,1fr)); gap: 18px; }
.public-portal .leader-grid article { border-radius: 9px; padding: 12px 12px 22px; }
.public-portal .leader-photo { height: 215px; border-radius: 5px; background: #faf6f0; }
.public-portal .leader-photo img { object-fit: contain; object-position: center bottom; filter: none; }
.public-portal .leader-grid h3 { font-size: .94rem; margin-top: 18px; }
.public-portal .leader-grid p { font-size: .77rem; }
.public-portal .department-portals { background: #fff9f1; padding-block: 58px; }
.public-portal .department-portal-card { border-radius: 9px; }
.public-portal .department-portal-icon { border-radius: 12px; }
.public-portal .notice-section { padding-block: 66px; background: #fff; }
.public-portal .notice-layout { grid-template-columns: 300px minmax(0,1fr); gap: 38px; }
.public-portal .notice-intro { padding: 32px; border-radius: 10px; }
.public-portal .notice-intro h2 { line-height: 1.5; }
.public-portal .notice-list article { grid-template-columns: 74px minmax(0,1fr) 44px; gap: 18px; padding-block: 22px; }
.public-portal .notice-list time { width: 70px; height: 70px; border-radius: 8px; background: #fffaf2; }
.public-portal .notice-list time span { font-size: .65rem; }
.public-portal .notice-list h2, .public-portal .notice-list h3 { font-size: 1rem; line-height: 1.6; overflow-wrap: anywhere; }
.public-portal .notice-list p { font-size: .86rem; overflow-wrap: anywhere; }
.public-portal .notice-list article > a { width: 40px; height: 40px; }
.public-portal .notice-list h2 a:hover, .public-portal .notice-list h3 a:hover { text-decoration: underline; text-underline-offset: 4px; }
.public-empty { color: #78634f; padding: 36px 24px; border: 1px dashed #e4c7a4; border-radius: 9px; background: #fffbf5; align-self: center; text-align: center; }
.public-empty > i { font-size: 2rem; color: #b25213; }
.public-empty p { margin: 12px 0 0; }
.public-portal .focus-section { padding-block: 64px; background: #fffaf4; }
.public-portal .focus-heading { gap: 40px; }
.public-portal .focus-grid { gap: 18px; border: 0; }
.public-portal .focus-grid article { border: 1px solid #eedfce; border-radius: 9px; padding: 28px 24px; min-height: 300px; }
.public-portal .approach-section { padding-block: 68px; background: linear-gradient(115deg,#62290f,#9c420e); }
.public-portal .approach-grid { gap: 60px; }
.public-portal .approach-grid h2 { font-size: clamp(1.8rem,3vw,2.5rem); }
.public-portal .approach-grid .school-source { font-size: .78rem; line-height: 1.9; color: #f4d7bc; margin-bottom: 10px; }
.public-portal .impact-grid { border-radius: 12px; background: #ffffff08; overflow: hidden; }
.public-portal .impact-grid article { position: relative; padding: 28px; min-width: 0; }
.public-portal .impact-grid article > i { display: block; color: #f6cf9a; margin-bottom: 14px; font-size: 1.25rem; }
.public-portal .impact-grid strong { font-size: clamp(2rem,3vw,2.9rem); color: #fff; overflow-wrap: anywhere; }
.public-portal .impact-grid span { display: block; margin-top: 7px; line-height: 1.6; }
.public-portal .resource-section { padding-block: 65px; }
.public-services { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; }
.public-services > a { border: 1px solid #eedfce; border-radius: 9px; padding: 28px 24px; background: #fff; display: flex; flex-direction: column; gap: 14px; }
.public-services > a:hover { border-color: #b85a1b; background: #fffaf4; }
.public-services i { color: #b24e11; font-size: 1.7rem; }
.public-services h3 { color: #793310; font-size: 1.1rem; line-height: 1.6; margin: 0; }
.public-services p { font-size: .85rem; color: #705e50; margin: 0; }
.public-services span { margin-top: auto; color: #a13d0c; font-weight: 700; font-size: .82rem; }
.public-portal .gallery-section { background: #fff6e9; color: #653019; }
.public-portal .gallery-grid { grid-template-columns: .8fr 1.2fr; gap: 45px; min-height: 380px; padding-block: 40px; }
.public-portal .gallery-copy h2 { color: #73340f; }
.public-portal .gallery-copy p { color: #705e50; }
.public-portal .gallery-copy a, .public-portal .gallery-copy .section-kicker { color: #9c3e0c; }
.public-portal .gallery-frame { height: 320px; border-radius: 10px; }
.public-portal .gallery-frame div { color: #fff; }
.public-portal .news-section { padding-block: 58px; }
.public-feature { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 46px; }
.public-feature > div { min-width: 0; }
.public-feature h2 { color: #793310; font-size: clamp(1.5rem,2.5vw,2rem); line-height: 1.65; margin: 15px 0; }
.public-feature p { font-size: .95rem; color: #705e50; line-height: 1.9; }
.public-feature-image { height: 330px; border-radius: 10px; overflow: hidden; }
.public-feature-image img { width: 100%; height: 100%; object-fit: cover; }
.public-portal .contact-cta { padding-block: 50px; }
.public-portal .contact-cta .portal-container { gap: 30px; }
.public-portal .contact-cta p { max-width: 680px; line-height: 1.8; }
.public-portal .contact-cta a { border-radius: 6px; text-align: center; flex-shrink: 0; }
.public-portal .partner-section { padding-block: 55px; }
.public-portal .partner-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.public-portal .partner-grid a { border-radius: 8px; }
.public-portal .footer-grid { gap: 36px; }
.public-portal .footer-grid a { padding-block: 5px; }
.public-portal .footer-grid p { font-size: .85rem; }
.public-page { padding-block: 40px 76px; }
.public-back { display: inline-block; color: #8f3a0c; padding-block: 12px; font-weight: 700; }
.public-page-heading { margin: 22px 0 30px; max-width: 900px; }
.public-page-heading h1 { font-size: clamp(1.6rem,3.5vw,2.6rem); line-height: 1.6; color: #73340f; margin-block: 12px; overflow-wrap: anywhere; }
.public-page-heading p { font-size: 1rem; color: #705e50; }
.public-form-card { max-width: 850px; padding: 30px; background: #fff; border: 1px solid #eedfce; border-radius: 12px; box-shadow: 0 10px 30px #74300e08; }
.public-notice-body { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 1rem; line-height: 2; }
.public-notice-list { max-width: 960px; }
.notice-search { display: flex; align-items: center; gap: 15px; margin: 0 0 32px; max-width: 850px; }
.notice-search label { flex-shrink: 0; font-size: .9rem; }
.notice-search input { min-width: 0; }
.public-pagination { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 15px; padding-block: 26px; font-size: .88rem; color: #79431f; }
.public-pagination > div { display: flex; flex-wrap: wrap; gap: 22px; }
.public-pagination a { padding: 10px; border: 1px solid #ead6bd; border-radius: 6px; }
.public-button { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; gap: 16px; color: #fff; background: #9c3e0c; border: 1px solid #9c3e0c; border-radius: 6px; padding: 11px 20px; font-weight: 700; }
.public-button:hover { color: #fff; background: #77300b; }
.public-button:disabled { opacity: .65; cursor: wait; }
.public-button.secondary { color: #78350f; background: #fff; border-color: #dbc2a6; }
.feedback-modal { border: 0; border-top: 5px solid #e87513; border-radius: 12px; }
.feedback-modal .modal-header { align-items: flex-start; justify-content: space-between; padding: 26px 28px 20px; border-color: #eedfce; }
.feedback-modal .modal-header > div { min-width: 0; }
.feedback-modal .modal-header h2 { font-size: 1.45rem; line-height: 1.6; color: #75320e; margin-top: 8px; }
.feedback-modal .btn-close { flex: 0 0 auto; margin: 0 0 0 10px; padding: 12px; }
.feedback-modal .modal-body { padding: 24px 28px; }
.feedback-modal .modal-body > p { color: #705e50; font-size: .9rem; }
.feedback-fields, .content-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px 22px; }
.feedback-fields > div, .content-form-grid > div { min-width: 0; }
.feedback-fields .field-wide { grid-column: 1/-1; }
.feedback-fields label, .content-form-grid label { display: inline-block; color: #603b23; font-size: .9rem; font-weight: 600; margin-bottom: 7px; }
.feedback-fields .form-control, .content-form-grid input, .content-form-grid textarea { min-height: 44px; font-family: inherit; font-size: 1rem; width: 100%; max-width: 100%; padding: 10px 12px; border: 1px solid #dfcbb5; border-radius: 5px; color: #35291f; background: #fff; }
.feedback-form .form-guidance { font-size: .8rem; color: #705e50; margin: 0 0 16px; }
.feedback-form .feedback-fields p.form-guidance { margin: -8px 0 0; }
.feedback-privacy { margin: 22px 0; font-size: .8rem; color: #705e50; line-height: 1.9; }
.feedback-response, .feedback-success, .feedback-errors, .content-admin .validation-summary-errors { padding: 16px; border: 1px solid; border-radius: 6px; margin-block: 15px; white-space: pre-line; overflow-wrap: anywhere; }
.feedback-success { background: #f0f8f1; color: #23552d; border-color: #b7d5ba; }
.feedback-errors, .content-admin .validation-summary-errors { background: #fff4ef; color: #8a2f14; border-color: #e0b79f; }
.feedback-form [hidden] { display: none !important; }
.validation-summary-valid { display: none; }
.content-admin .dash-heading p { max-width: 900px; font-size: .9rem; color: #705e50; }
.content-admin .notice-editor, .feedback-detail { padding: 28px; }
.content-admin .content-form-grid { margin-bottom: 24px; }
.content-checks { padding: 18px 0; display: flex; flex-wrap: wrap; align-items: center; gap: 18px 30px; border: 0; border-top: 1px solid #eedfce; }
.content-checks legend { font-size: .9rem; font-weight: 700; padding: 0 8px 0 0; }
.content-checks label { display: inline-flex; align-items: center; gap: 10px; }
.content-checks input { width: 20px; height: 20px; accent-color: #a33d0a; }
.content-admin .monitor-table small { display: block; margin-top: 8px; white-space: normal; max-width: 450px; }
.content-admin .monitor-table { min-width: 850px; }
.content-admin .monitor-table td { overflow-wrap: anywhere; max-width: 450px; }
.content-tag { display: inline-block; font-size: .76rem; border: 1px solid #e5cfb6; background: #fff7eb; border-radius: 5px; padding: 4px 9px; margin: 3px; color: #77300b; }
.feedback-detail dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; margin-bottom: 30px; }
.feedback-detail dt { color: #705e50; font-size: .85rem; }
.feedback-detail dd { margin: 6px 0 0; overflow-wrap: anywhere; }
.feedback-detail h2 { font-size: 1.1rem; color: #79431f; }
.feedback-detail .public-notice-body { padding-block: 18px; border-block: 1px solid #eedfce; margin-bottom: 22px; }
@media(max-width:1199px) {
 .public-portal .main-nav .navbar-toggler { display: flex; }
 .public-portal .hero-content h1, .public-portal .hero-content h2 { font-size: 2.8rem; }
 .public-portal .quick-panel { grid-template-columns: 1fr; }
 .public-portal .quick-head { flex-direction: row; align-items: center; justify-content: space-between; gap: 20px; padding: 14px 22px; }
 .public-portal .quick-head h2 { margin: 0; font-size: 1.15rem; }
 .public-portal .leader-photo { height: 180px; }
 .public-portal .leader-grid { gap: 12px; }
 .public-services { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .public-portal .notice-layout { grid-template-columns: 260px minmax(0,1fr); gap: 25px; }
 .public-portal .focus-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .public-portal .focus-grid article { min-height: 260px; }
}
@media(max-width:800px) {
 .public-portal .brand-inner { min-height: 100px; }
 .public-portal .hero-slide { height: 545px; }
 .public-portal .hero-content { padding-top: 44px; }
 .public-portal .hero-content h1, .public-portal .hero-content h2 { font-size: 2.3rem; max-width: 640px; }
 .public-portal .hero-controls { bottom: 20px; }
 .public-portal .leader-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
 .public-portal .leader-photo { height: 200px; }
 .public-portal .notice-layout, .public-portal .approach-grid, .public-portal .gallery-grid { grid-template-columns: 1fr; gap: 28px; }
 .public-feature { grid-template-columns: 1fr; gap: 25px; }
 .public-portal .notice-intro { padding: 25px; }
 .public-portal .notice-intro h2 { font-size: 1.6rem; }
 .public-portal .notice-intro a { margin-top: 0; }
 .public-portal .contact-cta .portal-container { align-items: flex-start; flex-direction: column; }
 .public-portal .focus-heading { grid-template-columns: 1fr; gap: 20px; }
}
@media(max-width:575px) {
 .public-portal .portal-container { width: calc(100% - 32px); }
 .public-portal .topbar-inner { gap: 4px; }
 .public-portal .topbar-inner > span { font-size: .68rem; }
 .public-portal .topbar-actions [data-font-action] { display: none; }
 .public-portal .brand-inner { padding-block: 18px; }
 .public-portal .brand-text strong { font-size: 1.06rem; line-height: 1.65; }
 .public-portal .brand-text b { font-size: .74rem; }
 .public-portal .hero-slide { height: 540px; }
 .public-portal .hero-content { padding-top: 38px; }
 .public-portal .hero-content h1, .public-portal .hero-content h2 { font-size: clamp(1.7rem,6.8vw,2.2rem); line-height: 1.45; }
 .public-portal .hero-content > p { font-size: .85rem; line-height: 1.85; }
 .public-portal .hero-proof { font-size: .72rem; margin-top: 24px; }
 .public-portal .hero-proof span { padding-right: 10px; }
 .public-portal .hero-proof b { font-size: 1rem; }
 .public-portal .quick-head { align-items: flex-start; flex-direction: column; gap: 8px; }
 .public-portal .quick-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .public-portal .quick-grid > a { border-bottom: 1px solid #eedfce; }
 .public-portal .leader-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .public-portal .leader-photo { height: 180px; }
 .public-portal .leader-grid h3 { font-size: .86rem; }
 .public-portal .leader-grid article { padding: 9px 9px 18px; }
 .public-portal .section-heading-row { align-items: flex-start; flex-direction: column; gap: 12px; }
 .public-portal .leadership-showcase, .public-portal .notice-section, .public-portal .department-portals, .public-portal .focus-section, .public-portal .approach-section, .public-portal .resource-section { padding-block: 42px; }
 .public-portal .notice-list article { grid-template-columns: 58px minmax(0,1fr) 32px; gap: 11px; }
 .public-portal .notice-list time { width: 56px; height: 64px; }
 .public-portal .notice-list article > a { width: 32px; min-height: 44px; }
 .public-portal .notice-list h2, .public-portal .notice-list h3 { font-size: .92rem; }
 .public-portal .notice-list small em { margin-left: 0; }
 .public-portal .focus-grid, .public-services, .feedback-fields, .content-form-grid, .feedback-detail dl { grid-template-columns: 1fr; }
 .public-portal .focus-grid article { min-height: 0; }
 .public-portal .impact-grid article { padding: 22px 18px; }
 .public-portal .partner-grid { grid-template-columns: 1fr; }
 .public-portal .gallery-frame { height: 260px; }
 .public-portal .ticker-inner { gap: 10px; font-size: .75rem; }
 .public-portal .ticker-inner > button, .ticker-all { flex-basis: 32px; width: 32px; }
 .public-page { padding-block: 25px 45px; }
 .public-form-card, .content-admin .notice-editor, .feedback-detail { padding: 20px 16px; }
 .notice-search { flex-wrap: wrap; gap: 10px; }
 .notice-search label { width: 100%; }
 .notice-search input { flex: 1 1 130px; width: auto; }
 .feedback-modal .modal-header, .feedback-modal .modal-body { padding: 20px 16px; }
 .feedback-modal .modal-header h2 { font-size: 1.15rem; }
 .feedback-modal .section-kicker { font-size: .65rem; }
 .feedback-form .public-button { width: 100%; }
}
@media(prefers-reduced-motion:reduce) { .public-portal .ticker-overflow { overflow-x: auto; }.public-portal .ticker-track { animation: none; }.public-portal .ticker-clone { display: none; }html { scroll-behavior: auto; } }
.public-portal.high-contrast { --muted: #fff; background: #000; color: #fff; }
.public-portal.high-contrast .public-services a, .public-portal.high-contrast .public-form-card, .public-portal.high-contrast .feedback-modal, .public-portal.high-contrast .public-empty, .public-portal.high-contrast .notice-list time, .public-portal.high-contrast .gallery-section { background: #000; color: #fff; border-color: #ffea00; }
.public-portal.high-contrast .public-services h3, .public-portal.high-contrast .public-services span, .public-portal.high-contrast .public-page h1, .public-portal.high-contrast .feedback-fields label, .public-portal.high-contrast .feedback-modal h2, .public-portal.high-contrast .gallery-copy h2 { color: #ffea00; }
.public-portal.high-contrast .public-services p, .public-portal.high-contrast .public-page p, .public-portal.high-contrast .feedback-modal p, .public-portal.high-contrast .gallery-copy p { color: #fff; }
