/* One page style: navy headings, short rule, left-aligned content, few icons. */
[hidden] { display: none !important; }
.skip-link { position: fixed; top: -100px; left: 1rem; z-index: 2000; }
.skip-link:focus { top: 1rem; }
.site-navbar { gap: 1rem; }
.site-brand { flex-shrink: 0; background: #fff; padding: 0.25rem 0.5rem; }
.site-brand img { display: block; width: 170px; height: auto; }
.site-menu { flex: 1; flex-direction: row; flex-wrap: wrap; justify-content: center; align-items: center; margin: 0; }
.site-menu > li > .nav-link { padding: 0.5rem 0.65rem; }
.site-menu__parent { position: relative; }
.site-submenu-toggle { background: none; border: none; cursor: pointer; }
.site-submenu { width: max-content; min-width: 240px; max-width: calc(100vw - 30px); margin: 0; padding: 0.5rem 0; list-style: none; }
.site-submenu:not([hidden]) { display: block; }
.site-menu-toggle { display: none; }
html:not(.site-js) .site-submenu[hidden] { display: block !important; position: static; }
html:not(.site-js) .site-submenu-toggle { display: none; }
.home-gallery__image { display: block; width: 100%; height: 280px; object-fit: cover; }
.home-news .h-hr { margin-bottom: 1.5rem !important; }
.section-heading { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; margin-bottom: 1.5rem; }
.admin-link { margin-bottom: 1rem; }
.news-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.home-news .news-grid { grid-template-columns: 1fr; }
.news-card { position: relative; min-width: 0; }
.news-card__body { display: flex; flex-direction: column; align-items: flex-start; flex: 1; width: 100%; }
.home-news .news-card__body { align-items: center; }
.news-card__title { margin-bottom: 0.5rem; overflow-wrap: anywhere; }
.news-card__title a { color: inherit; }
.news-card__meta { margin-bottom: 0.75rem; }
.side-list > li { position: relative; }
.project-photos { display: grid; grid-template-columns: 1fr; gap: 0.75rem; margin: 0.5rem 0 0.75rem; padding: 0; list-style: none; }
.project-photos > li { position: relative; }
.project-photos img { display: block; width: 100%; height: auto; object-fit: contain; }
.news-detail > header { position: relative; }
.news-admin-tools, .home-news__tools { display: flex; flex-wrap: wrap; gap: 0.35rem; align-items: center; }
.home-news__tools { justify-content: center; margin: 0 0 1rem; }
.news-admin-tools { margin-top: 0.35rem; }
.news-card__excerpt { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; line-height: 1.5; margin-bottom: 1rem; text-align: left; overflow-wrap: break-word; }
.news-card__more { margin-top: auto; }
.news-card__image { height: 170px; object-fit: cover; }
.home-news__archive { margin-top: 1.5rem; }
.school-notices__images { display: flex; flex-direction: column; gap: 1rem; }
.school-notices__images img { display: block; width: 100%; max-height: 200px; object-fit: contain; }
.school-notices__images > a > span { display: block; text-align: center; }
.page-intro { padding-top: 0.25rem; padding-bottom: 0; margin-bottom: 1.35rem; text-align: center; }
.news-page { padding-bottom: 3rem; }
.news-filters { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 1rem; margin-bottom: 1.5rem; }
.news-filters__field { flex: 1 1 170px; }
.news-results { margin-bottom: 1.5rem; }
.news-pagination { margin-top: 2rem; }
.news-pagination .pagination { flex-wrap: wrap; justify-content: center; }
.news-empty { grid-column: 1 / -1; }
.news-detail { max-width: 800px; padding-top: 1.5rem; }
.news-detail h1 { overflow-wrap: anywhere; }
.news-detail__body { margin-top: 1.5rem; overflow-wrap: anywhere; }
.news-detail__body p { margin-bottom: 1rem; }
.news-detail img { max-width: 100%; height: auto; }
.news-detail__image { max-height: 420px; object-fit: contain; }
.news-detail__body table { display: block; max-width: 100%; overflow-x: auto; }
.news-detail__back { margin-top: 2rem; }
.news-detail__gallery { margin-top: 2rem; }
.news-detail__gallery-embed { overflow-x: auto; }
.news-detail__photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 0.5rem; }
.news-detail__photos img { width: 100%; height: 110px; object-fit: cover; }
.news-card__gallery { margin-bottom: 0.75rem; }
.about-page { padding-bottom: 3rem; }
.about-cover { display: block; width: 100%; height: 280px; object-fit: cover; }
.about-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(230px, 1fr); gap: 2rem; margin-top: 2rem; }
.about-copy section { margin-bottom: 1.5rem; }
.about-copy p { margin-bottom: 1rem; }
.about-sidebar { align-self: start; }
.about-sidebar > a { display: block; padding: 0.5rem 0; }
.about-gallery__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.about-gallery__grid img { width: 100%; height: 190px; object-fit: cover; }
.cookie-notice > .row { margin: 0; }
.home-page > .container { width: 100%; max-width: 100%; padding-left: clamp(3rem, 6vw, 7.5rem); padding-right: clamp(3rem, 6vw, 7.5rem); }
.home-columns { display: grid; grid-template-columns: minmax(200px, 0.78fr) minmax(0, 2.2fr) minmax(170px, 0.68fr); gap: 1.5rem; align-items: start; }
.home-search-block { grid-column: 1; grid-row: 1; }
.home-partners-block { grid-column: 1; grid-row: 2; }
.home-news { grid-column: 2; grid-row: 1 / span 3; }
.home-upcoming { grid-column: 3; grid-row: 1; }
.home-projects { grid-column: 3; grid-row: 2; }
.page-body { text-align: left; overflow-wrap: anywhere; }
.page-body p, .page-body li { margin-bottom: 0.75rem; }
.page-body h2, .page-body h3, .page-body h4 { margin: 1.25rem 0 0.5rem; }
.page-body img { max-width: 100%; height: auto; }
.page-body table { width: 100%; margin-bottom: 1rem; }
.page-article { max-width: 860px; }
.page-edit { margin: 0.75rem 0; }
.article-admin, .news-admin-tools { display: inline-flex; gap: 0.35rem; }
.home-col--main { min-width: 0; }
.home-col--side .card-body { padding: 1rem; }
.home-search { display: flex; gap: 0.5rem; align-items: stretch; }
.home-search .form-control { min-width: 0; }
.home-search__clear { display: block; margin-top: 0.75rem; }
.home-contacts, .side-list { margin: 0.5rem 0 0.75rem; padding: 0; list-style: none; text-align: left; }
.home-contacts li, .side-list li { margin: 0 0 0.75rem; }
.side-list li { padding-bottom: 0.75rem; border-bottom: 1px solid rgba(0, 0, 0, 0.08); }
.side-list li:last-child { margin-bottom: 0; padding-bottom: 0; border-bottom: 0; }
.home-contacts span, .side-list small { display: block; }
.home-contacts span { font-weight: 700; font-size: 0.85rem; }
.home-contacts a, .home-contacts li { overflow-wrap: anywhere; }
.side-list__excerpt { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; line-clamp: 4; overflow: hidden; margin: 0.35rem 0 0.45rem; color: #4d5b6e; font-size: 0.9rem; line-height: 1.45; overflow-wrap: break-word; }
.news-admin-photo { display: block; width: 140px; height: auto; margin: 0.35rem 0 0; border: 1px solid #e3e7ee; border-radius: 6px; }
.side-list__image { display: block; margin: 0.5rem 0 0.65rem; }
.side-list__image img { display: block; width: 100%; height: auto; max-height: 340px; object-fit: contain; border-radius: 6px; background: #f8fafc; }
.home-news > h2, .home-news > .admin-link, .home-news > .news-pagination, .home-news > .home-news__archive { display: block; text-align: center; }
.home-news > .h-hr { margin-left: auto; margin-right: auto; }
.home-news .news-card__body { align-items: flex-start; text-align: left; }
.home-news .news-card__excerpt { -webkit-line-clamp: 2; line-clamp: 2; font-size: 1.15rem; }
.home-news .news-grid { gap: 0; }
.home-news .news-grid > div { padding: 1.05rem 0 1.15rem; border-bottom: 1px solid #e3e7ee; }
.home-news .news-grid > div:last-child { border-bottom: 0; padding-bottom: 0; }
.home-news .news-card.card { border: 0 !important; border-radius: 0 !important; background: transparent !important; overflow: visible; box-shadow: none; }
.home-news .news-card__body { padding: 0; }
.home-news .news-card__image { display: none; }
.home-news .news-card__more { border: 0; padding: 0; background: transparent; color: #0c4d78; font-weight: 700; }
.home-news .news-card__more:hover,
.home-news .news-card__more:focus { background: transparent; color: #182C61; text-decoration: underline; }
.partner-list > li { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.35rem; padding-right: 0; text-align: center; }
.partner-list img { display: block; max-width: 100%; max-height: 72px; width: auto; height: auto; object-fit: contain; }
.partner-list a { display: flex; align-items: center; justify-content: center; }
.admin-nav { display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: center; margin: 1.25rem 0 2rem; }
.admin-bar { position: sticky; top: 0; z-index: 1020; display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; padding: 0.45rem 1rem; background: var(--menu); color: #fff; }
.admin-bar__link { color: #fff; margin-left: auto; }
.admin-bar__item { position: relative; display: inline-flex; }
.admin-bar__item img { width: 42px; height: 42px; object-fit: cover; background: #fff; }
.admin-bar__item form { position: absolute; top: -0.35rem; right: -0.35rem; }
.admin-icon { display: inline-flex; align-items: center; justify-content: center; gap: 0.35rem; min-height: 2rem; padding: 0.3rem 0.7rem; border: 1px solid #c5cedb; border-radius: 4px; background: #fff; color: #182C61; font-size: 0.875rem; font-weight: 600; line-height: 1.2; cursor: pointer; }
.admin-icon i { display: none; }
.admin-icon--add { color: #1b6b32; border-color: #b7d7be; }
.admin-icon--delete { color: #9b2330; border-color: #e3b8bd; }
.admin-icon--edit { color: #182C61; border-color: #c5cedb; }
.admin-bar .admin-icon--delete { min-width: 0; min-height: 1.5rem; padding: 0.1rem 0.35rem; background: #fff; }
.footer-icon-button { background: none; border: 0; color: #fff; padding: 0; }
.login-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
main a:not(.btn):not(.page-link):not(.nav-link):not(.dropdown-item) { color: #0c4d78; }
footer a, .ftr a { color: #fff; }
:focus-visible { outline: 3px solid #182C61; outline-offset: 2px; }
footer :focus-visible, .navbar :focus-visible { outline-color: #fff; }

@media (min-width: 992px) {
    .home-page > .container { padding-left: clamp(4.75rem, 11vw, 13.5rem); padding-right: clamp(4.75rem, 11vw, 13.5rem); }
}

@media (max-width: 1199.98px) {
    .site-js .site-menu-toggle { display: block; margin-left: auto; }
    .site-menu { flex-basis: 100%; flex-direction: column; align-items: stretch; }
    .site-js .site-menu { display: none; }
    .site-js .site-menu.is-open { display: flex; }
    .site-menu > li > .nav-link { width: 100%; text-align: left; }
    .site-submenu { position: static; width: 100%; }
}

@media (max-width: 991.98px) {
    .news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .about-layout, .home-columns { grid-template-columns: 1fr; }
    .home-search-block,
    .home-news,
    .home-partners-block,
    .home-upcoming,
    .home-projects { grid-column: 1; grid-row: auto; }
    .school-notices__images { flex-direction: row; overflow-x: auto; padding-bottom: 1rem; }
    .school-notices__images > a { flex: 0 0 180px; }
}

@media (max-width: 575.98px) {
    .site-brand img { width: 145px; }
    .home-gallery__image { height: 180px; }
    .news-grid { grid-template-columns: 1fr; }
    .news-filters__field { flex-basis: 100%; }
    .about-cover { height: 180px; }
    .about-gallery__grid { grid-template-columns: 1fr; }
}

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

.h-hr { width: 42px; height: 3px; background: #182C61; border-radius: 2px; }
h1, h2, h3, .h2, .h3, .h4, .h5 { color: #182C61; }
footer h1, footer h2, footer h3, footer .h2, footer .h4 { color: #fff; }
.page-intro h1,
.page-intro .h2,
.home-news > h2,
.site-page h1,
.about-page h1 { color: #182C61; font-weight: 700; letter-spacing: 0; }
.home-news > h2 { font-size: 1.85rem; }
.about-page,
.news-page,
.page-article { padding-top: 2rem; }
.site-page img.w-100 { border: 1px solid #e3e7ee; border-radius: 8px; }
.page-intro h1,
.page-intro .h2 { margin: 0 0 0.55rem; font-size: 1.85rem; }
.page-intro .h-hr,
.site-page > .h-hr,
.page-article .h-hr,
.page-intro .h-hr { margin: 0 auto 0.35rem; }
.page-intro p { margin-top: 0.75rem; color: #4d5b6e; font-size: 1.05rem; }
.site-page { padding-top: 2rem; padding-bottom: 3.25rem; }
.site-page .text-center,
.page-article .text-center { text-align: left !important; }
.page-article { max-width: 820px; }
.card { border: 1px solid #e3e7ee !important; border-radius: 8px !important; background: #fff; overflow: hidden; }
.card.bg-light { background: #f8fafc !important; }
.news-card__image { border-radius: 0; }
.btn-primary { background-color: #182C61; border-color: #182C61; }
.btn-primary:hover,
.btn-primary:focus { background-color: #101d42; border-color: #101d42; }
.btn-outline-primary { color: #182C61; border-color: #182C61; }
.btn-outline-primary:hover,
.btn-outline-primary:focus { background: #182C61; border-color: #182C61; color: #fff; }
.page-link { color: #182C61; }
.page-item.active .page-link { background: #182C61; border-color: #182C61; color: #fff; }
.news-filters,
.login-panel { background: #f8fafc; border: 1px solid #e3e7ee; border-radius: 8px; padding: 1rem; }
.contact-panel,
.about-sidebar { border: 1px solid #e3e7ee; border-radius: 8px; background: #f8fafc; }
.contact-panel { padding: 1rem 1.1rem 0.35rem; margin-bottom: 1.25rem; height: calc(100% - 1.25rem); }
.contact-panel h3 { font-size: 1.15rem; margin-bottom: 0.65rem; }
.about-sidebar { padding: 1rem 1.1rem; }
.about-sidebar > a { padding: 0.45rem 0; border-bottom: 1px solid #e3e7ee; }
.about-sidebar > a:last-of-type { border-bottom: 0; }
.people-table td { border-top: 1px solid #e3e7ee; padding: 0.7rem 0.35rem; }
.docs-table { background: #fff; }
.docs-table td,
.docs-table th { vertical-align: middle; }
.news-detail > header { border-bottom: 1px solid #e3e7ee; padding-bottom: 0.85rem; }
.about-cover,
.about-gallery__grid img { border-radius: 8px; }
.site-menu-toggle { color: #fff; font-weight: 700; letter-spacing: 0; }
.footer-icon-button { font-weight: 700; }
.ftr p { font-size: 1rem; line-height: 1.55; }
.admin-nav { justify-content: flex-start; }
textarea.js-richtext { min-height: 280px; }

@media (max-width: 991.98px) {
    .contact-panel { height: auto; }
}
