/* =========================================================
   SCHOOLBOARD SOLO, SHARED VARIABLE-DRIVEN DESIGN SYSTEM

   IMPORTANT:
   1. Do not hard-code district colors in this file.
   2. All district branding should be controlled through CSS variables.
   3. District sub-themes should override variables only, whenever possible.
   4. If you must add a new selector, use var(--...) values.
========================================================= */

:root {
  /* Header */
  --sbn-header-bg: #ffffff;

  /* Page regions */
  --sbn-page-title-bg: #f3f6f9;
  --sbn-breadcrumb-bg: #f3f6f9;
  --sbn-sidebar-first-bg: #f3f6f9;
  --sbn-main-content-bg: #f3f6f9;
  --sbn-sidebar-second-bg: #f3f6f9;

  /* Menu */
  --sbn-menu-bg: #f3f6f9;
  --sbn-menu-text: #222222;
  --sbn-menu-hover-bg: #048629;
  --sbn-menu-hover-text: #ffffff;
  --sbn-menu-active-bg: #e4ebf2;
  --sbn-menu-border: #d3dce5;
  --sbn-menu-dropdown-bg: #ffffff;
  --sbn-menu-dropdown-border: #d9dee5;

  /* Content */
  --sbn-content-text: #222222;
  --sbn-link: #1e5a2d;
  --sbn-link-hover: #30c64e;

  /* Search */
  --sbn-search-bg: #ffffff;
  --sbn-search-border: #5f6670;
  --sbn-search-button-bg: #30c64e;
  --sbn-search-button-text: #ffffff;

  /* Event list styling */
  --sbn-event-card-bg: transparent;
  --sbn-event-card-border: #dde4eb;
  --sbn-event-heading: #1f2f4d;

  /* Accordion */
  --sbn-accordion-bg: #ffffff;
  --sbn-accordion-border: #d9dee5;
  --sbn-accordion-hover-bg: #f8fbf9;
  --sbn-accordion-open-bg: #f3f6f9;
  --sbn-accordion-open-hover-bg: #e7f4ea;
  --sbn-accordion-accent: var(--sbn-link);

  /* Print button */
  --sbn-print-btn-bg: #f3f6f9;
  --sbn-print-btn-text: #222222;
  --sbn-print-btn-border: #d3dce5;
  --sbn-print-btn-hover-bg: #048629;
  --sbn-print-btn-hover-text: #ffffff;

  /* Section headings */
  --sbn-section-heading-color: #1f2f4d;
  --sbn-section-heading-border: #d9dee5;

  /* Focus */
  --sbn-focus: var(--sbn-link);
}

/* =========================================================
   SOLO HEADER
========================================================= */
html body header#header,
html body #header,
html body div#header-inner,
html body #header-inner,
html body header#header.solo-outer,
html body div#header-inner.solo-inner {
  background: var(--sbn-header-bg) !important;
  background-color: var(--sbn-header-bg) !important;
  background-image: none !important;
}

html body #header nav,
html body #header section,
html body #header .block,
html body #header-inner nav,
html body #header-inner section,
html body #header-inner .block {
  background: transparent !important;
  background-color: transparent !important;
}

/* Header layout */
#header-inner {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}

.block-system-branding-block,
.site-branding,
.site-logo,
.branding-wrapper,
.branding-first {
  text-align: left !important;
  justify-content: flex-start !important;
  margin-left: 0 !important;
}

.site-logo a,
.site-logo img,
.branding-first a,
.branding-first img,
.block-system-branding-block a,
.block-system-branding-block img {
  display: block !important;
  margin-left: 0 !important;
  margin-right: auto !important;
}

/* Theme branding image */
.block-system-branding-block img,
.site-logo img {
  max-height: 72px;
  width: auto;
}

/* Header account menu container */
.menu--account,
[id*="account-menu"] {
  margin-left: auto !important;
}

/* Header account menu links */
.menu--account a,
[id*="account-menu"] a {
  color: var(--sbn-menu-text) !important;
  text-decoration: none !important;
}

.menu--account a:hover,
.menu--account a:focus,
[id*="account-menu"] a:hover,
[id*="account-menu"] a:focus {
  background-color: var(--sbn-menu-hover-bg) !important;
  color: var(--sbn-menu-hover-text) !important;
}

/* =========================================================
   SEARCH
========================================================= */
.search-form input[type="search"],
.search-form input[name="keys"],
.block-search input[type="search"],
.block-search input[name="keys"] {
  background-color: var(--sbn-search-bg) !important;
  border: 1px solid var(--sbn-search-border) !important;
  color: var(--sbn-content-text) !important;
}

.search-form button,
.search-form input[type="submit"],
.block-search button,
.block-search input[type="submit"] {
  background-color: var(--sbn-search-button-bg) !important;
  color: var(--sbn-search-button-text) !important;
  border: 1px solid var(--sbn-search-button-bg) !important;
}

/* =========================================================
   PRIMARY MENU
========================================================= */
#primary-menu,
.primary-menu {
  background: transparent !important;
  padding-top: 4px;
  padding-bottom: 6px;
}

#primary-menu .menu > .menu-item,
.primary-menu .menu > .menu-item {
  margin-right: 6px;
}

#primary-menu .menu > .menu-item > a,
.primary-menu .menu > .menu-item > a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 16px !important;
  border: 1px solid transparent;
  border-radius: 6px;
  background: var(--sbn-menu-bg) !important;
  color: var(--sbn-menu-text) !important;
  text-decoration: none !important;
  font-weight: 600;
  line-height: 1.2;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

#primary-menu .menu > .menu-item > a:hover,
#primary-menu .menu > .menu-item > a:focus,
.primary-menu .menu > .menu-item > a:hover,
.primary-menu .menu > .menu-item > a:focus {
  background-color: var(--sbn-menu-hover-bg) !important;
  color: var(--sbn-menu-hover-text) !important;
  border-color: var(--sbn-menu-hover-bg) !important;
}

#primary-menu .menu > .menu-item--active-trail > a,
#primary-menu .menu > .menu-item > a.is-active,
.primary-menu .menu > .menu-item--active-trail > a,
.primary-menu .menu > .menu-item > a.is-active {
  background-color: var(--sbn-menu-active-bg) !important;
  color: var(--sbn-menu-text) !important;
  border-color: var(--sbn-menu-border) !important;
}

#primary-menu .menu ul,
.primary-menu .menu ul,
#primary-menu ul ul,
.primary-menu ul ul {
  background: var(--sbn-menu-dropdown-bg) !important;
  border: 1px solid var(--sbn-menu-dropdown-border) !important;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
  padding: 6px 0 !important;
  border-radius: 8px;
  min-width: 220px;
}

#primary-menu .menu ul a,
.primary-menu .menu ul a,
#primary-menu ul ul a,
.primary-menu ul ul a {
  display: block;
  padding: 10px 14px !important;
  color: var(--sbn-menu-text) !important;
  background: transparent !important;
  text-decoration: none !important;
  font-weight: 500;
}

#primary-menu .menu ul a:hover,
#primary-menu .menu ul a:focus,
.primary-menu .menu ul a:hover,
.primary-menu .menu ul a:focus,
#primary-menu ul ul a:hover,
#primary-menu ul ul a:focus,
.primary-menu ul ul a:hover,
.primary-menu ul ul a:focus {
  background: var(--sbn-menu-hover-bg) !important;
  color: var(--sbn-menu-hover-text) !important;
}

/* =========================================================
   GENERAL CONTENT + LINKS
========================================================= */
body,
.region-content,
.node__content,
.layout-content,
main,
article,
.node {
  color: var(--sbn-content-text) !important;
}

.region-content a,
.node__content a,
.layout-content a,
main a,
.views-row a,
.views-field a,
.field a,
article a,
.node a,
.book-navigation a,
.book-pager a,
.book-toc a,
.book-export-node a,
.book-export-content a,
.ui-accordion a,
.ui-accordion-header a,
.ui-accordion-content a,
details a,
summary a,
.expandable-html-section a {
  color: var(--sbn-link) !important;
  text-decoration: none !important;
}

.region-content a:hover,
.node__content a:hover,
.layout-content a:hover,
main a:hover,
.views-row a:hover,
.views-field a:hover,
.field a:hover,
article a:hover,
.node a:hover,
.book-navigation a:hover,
.book-pager a:hover,
.book-toc a:hover,
.book-export-node a:hover,
.book-export-content a:hover,
.ui-accordion a:hover,
.ui-accordion-header a:hover,
.ui-accordion-content a:hover,
details a:hover,
summary a:hover,
.expandable-html-section a:hover,
.region-content a:focus,
.node__content a:focus,
.layout-content a:focus,
main a:focus,
.views-row a:focus,
.views-field a:focus,
.field a:focus,
article a:focus,
.node a:focus,
.book-navigation a:focus,
.book-pager a:focus,
.book-toc a:focus,
.book-export-node a:focus,
.book-export-content a:focus,
.ui-accordion a:focus,
.ui-accordion-header a:focus,
.ui-accordion-content a:focus,
details a:focus,
summary a:focus,
.expandable-html-section a:focus {
  color: var(--sbn-link-hover) !important;
  text-decoration: underline !important;
}

/* =========================================================
   EVENT LISTS / VIEWS
========================================================= */
.block-views h2,
.views-block h2,
.view h2,
.region-content h2 {
  color: var(--sbn-event-heading);
}

.view .views-row,
.block-views .views-row,
.views-view-grid__item,
.view-content > .views-row,
.region-content .view-content > div {
  background: var(--sbn-event-card-bg) !important;
  border-bottom: 1px solid var(--sbn-event-card-border);
  padding: 0 0 10px 0;
  margin: 0 0 10px 0;
}

.views-field-title,
.views-field-field-date,
.views-field-field_event_date,
.views-field-body,
.views-field-nothing {
  margin-bottom: 3px;
}

.views-field-title a,
.region-content .view-content a {
  font-weight: 600;
  line-height: 1.25;
}

.views-field-field-date,
.views-field-field_event_date,
.views-field-body,
.views-field-nothing,
.region-content .view-content p,
.region-content .view-content div {
  line-height: 1.35;
}

/* =========================================================
   ACCORDION – ENHANCED
========================================================= */
.ui-accordion .ui-accordion-header {
  background: var(--sbn-accordion-bg) !important;
  border: 1px solid var(--sbn-accordion-border) !important;
  color: var(--sbn-link) !important;
  font-weight: 700;
  font-size: 17px;
  padding: 16px 18px;
  border-radius: 8px;
  margin-bottom: 10px;
  transition: all 0.2s ease;
  box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.ui-accordion .ui-accordion-header:hover,
.ui-accordion .ui-accordion-header:focus {
  background: var(--sbn-accordion-hover-bg) !important;
  color: var(--sbn-link) !important;
}

.ui-accordion .ui-accordion-header.ui-state-active {
  background: var(--sbn-accordion-open-bg) !important;
  border-color: var(--sbn-accordion-border) !important;
  font-weight: 700;
  border-left: 4px solid var(--sbn-accordion-accent) !important;
  padding-left: 14px;
}

.ui-accordion .ui-accordion-header.ui-state-active:hover {
  background: var(--sbn-accordion-open-hover-bg) !important;
}

.ui-accordion .ui-accordion-content {
  background: #ffffff !important;
  border: 1px solid var(--sbn-accordion-border) !important;
  border-top: none !important;
  padding: 18px;
  margin-bottom: 12px;
  border-radius: 0 0 8px 8px;
}

.ui-accordion .ui-accordion-content a {
  font-weight: 600;
}

.ui-accordion .ui-accordion-header:focus {
  outline: 2px solid var(--sbn-link-hover) !important;
  outline-offset: 2px;
}

/* =========================================================
   BUTTONS
========================================================= */
.button,
a.button {
  background-color: var(--sbn-menu-bg);
  color: var(--sbn-menu-text);
  border: 1px solid var(--sbn-menu-border);
  padding: 8px 14px;
  text-decoration: none;
  border-radius: 4px;
}

.button:hover,
a.button:hover {
  background-color: var(--sbn-menu-hover-bg);
  color: var(--sbn-menu-hover-text);
  border-color: var(--sbn-menu-hover-bg);
}

/* =========================================================
   FOCUS
========================================================= */
a:focus,
button:focus,
input:focus {
  outline: 2px solid var(--sbn-focus) !important;
  outline-offset: 2px;
}

/* =========================================================
   BOOK / ADMIN LINKS
========================================================= */
.book-admin-links {
  margin: 1rem 0 1.25rem;
}

.book-admin-link {
  color: var(--sbn-link);
  text-decoration: none;
  font-weight: 600;
}

.book-admin-link:hover,
.book-admin-link:focus {
  color: var(--sbn-link-hover);
  text-decoration: underline;
}

/* Hide Drupal inline Book printer-friendly text link,
   but keep the real button below. */
.block-extra-field-blocknodeeventlinks li:has(a[href*="/book/export/html/"]) {
  display: none !important;
}

/* =========================================================
   PRINTER FRIENDLY BUTTON
========================================================= */
.print-friendly-button-wrapper {
  margin-top: 22px;
  margin-bottom: 8px;
}

.print-friendly-button-wrapper .button,
.print-friendly-button-wrapper a.button,
.sbn-print-link.button,
a.sbn-print-link.button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 18px;
  border-radius: 8px;
  border: 1px solid var(--sbn-print-btn-border) !important;
  background: var(--sbn-print-btn-bg) !important;
  color: var(--sbn-print-btn-text) !important;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.2;
  text-decoration: none !important;
  box-shadow: 0 1px 2px rgba(0,0,0,0.04);
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.print-friendly-button-wrapper .button:hover,
.print-friendly-button-wrapper .button:focus,
.print-friendly-button-wrapper a.button:hover,
.print-friendly-button-wrapper a.button:focus,
.sbn-print-link.button:hover,
.sbn-print-link.button:focus,
a.sbn-print-link.button:hover,
a.sbn-print-link.button:focus {
  background: var(--sbn-print-btn-hover-bg) !important;
  color: var(--sbn-print-btn-hover-text) !important;
  border-color: var(--sbn-print-btn-hover-bg) !important;
  text-decoration: none !important;
  box-shadow: 0 2px 4px rgba(0,0,0,0.06);
}

/* =========================================================
   AGENDA SECTION HEADINGS
========================================================= */
.node__content h2,
.node__content h3,
.book-export-content h2,
.book-export-content h3,
.book-navigation h2,
.book-navigation h3,
.ui-accordion .ui-accordion-content h2,
.ui-accordion .ui-accordion-content h3 {
  color: var(--sbn-section-heading-color) !important;
  font-weight: 700;
  line-height: 1.2;
}

.node__content h2,
.book-export-content h2,
.book-navigation h2,
.ui-accordion .ui-accordion-content h2 {
  font-size: 26px;
  margin-top: 28px;
  margin-bottom: 14px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--sbn-section-heading-border);
}

.node__content h3,
.book-export-content h3,
.book-navigation h3,
.ui-accordion .ui-accordion-content h3 {
  font-size: 20px;
  margin-top: 22px;
  margin-bottom: 10px;
}

.ui-accordion .ui-accordion-content > h2:first-child,
.ui-accordion .ui-accordion-content > h3:first-child {
  margin-top: 4px;
}

/* =========================================================
   SEARCH PAGE PRIMARY MENU FIX
   Generic version - no district-specific block IDs.
========================================================= */
body.path-search #primary-menu,
body[class*="path-search"] #primary-menu,
body.path-search #primary-menu-inner,
body[class*="path-search"] #primary-menu-inner,
body.path-search .primary-menu,
body[class*="path-search"] .primary-menu,
body.path-search .primary-menu-inner,
body[class*="path-search"] .primary-menu-inner,
body.path-search .region-primary-menu,
body[class*="path-search"] .region-primary-menu,
body.path-search #primary-menu .menu,
body[class*="path-search"] #primary-menu .menu,
body.path-search .primary-menu .menu,
body[class*="path-search"] .primary-menu .menu,
body.path-search .region-primary-menu .menu,
body[class*="path-search"] .region-primary-menu .menu {
  background: transparent !important;
  background-color: transparent !important;
}

body.path-search #primary-menu .menu > li,
body[class*="path-search"] #primary-menu .menu > li,
body.path-search .primary-menu .menu > li,
body[class*="path-search"] .primary-menu .menu > li,
body.path-search .region-primary-menu .menu > li,
body[class*="path-search"] .region-primary-menu .menu > li,
body.path-search #primary-menu .menu > .menu-item,
body[class*="path-search"] #primary-menu .menu > .menu-item,
body.path-search .primary-menu .menu > .menu-item,
body[class*="path-search"] .primary-menu .menu > .menu-item,
body.path-search .region-primary-menu .menu > .menu-item,
body[class*="path-search"] .region-primary-menu .menu > .menu-item {
  background: transparent !important;
  background-color: transparent !important;
}

body.path-search #primary-menu .menu > li:not(.menu-item--expanded) > a,
body[class*="path-search"] #primary-menu .menu > li:not(.menu-item--expanded) > a,
body.path-search .primary-menu .menu > li:not(.menu-item--expanded) > a,
body[class*="path-search"] .primary-menu .menu > li:not(.menu-item--expanded) > a,
body.path-search .region-primary-menu .menu > li:not(.menu-item--expanded) > a,
body[class*="path-search"] .region-primary-menu .menu > li:not(.menu-item--expanded) > a,
body.path-search #primary-menu .menu > .menu-item:not(.menu-item--expanded) > a,
body[class*="path-search"] #primary-menu .menu > .menu-item:not(.menu-item--expanded) > a,
body.path-search .primary-menu .menu > .menu-item:not(.menu-item--expanded) > a,
body[class*="path-search"] .primary-menu .menu > .menu-item:not(.menu-item--expanded) > a,
body.path-search .region-primary-menu .menu > .menu-item:not(.menu-item--expanded) > a,
body[class*="path-search"] .region-primary-menu .menu > .menu-item:not(.menu-item--expanded) > a {
  background: var(--sbn-menu-bg) !important;
  background-color: var(--sbn-menu-bg) !important;
  color: var(--sbn-menu-text) !important;
  border: 1px solid var(--sbn-menu-border) !important;
  border-radius: 9px !important;
}

body.path-search #primary-menu .menu > li.menu-item--expanded,
body[class*="path-search"] #primary-menu .menu > li.menu-item--expanded,
body.path-search .primary-menu .menu > li.menu-item--expanded,
body[class*="path-search"] .primary-menu .menu > li.menu-item--expanded,
body.path-search .region-primary-menu .menu > li.menu-item--expanded,
body[class*="path-search"] .region-primary-menu .menu > li.menu-item--expanded,
body.path-search #primary-menu .menu > .menu-item.menu-item--expanded,
body[class*="path-search"] #primary-menu .menu > .menu-item.menu-item--expanded,
body.path-search .primary-menu .menu > .menu-item.menu-item--expanded,
body[class*="path-search"] .primary-menu .menu > .menu-item.menu-item--expanded,
body.path-search .region-primary-menu .menu > .menu-item.menu-item--expanded,
body[class*="path-search"] .region-primary-menu .menu > .menu-item.menu-item--expanded {
  display: inline-flex !important;
  align-items: stretch !important;
  gap: 0 !important;
}

body.path-search #primary-menu .menu > li.menu-item--expanded > a,
body[class*="path-search"] #primary-menu .menu > li.menu-item--expanded > a,
body.path-search .primary-menu .menu > li.menu-item--expanded > a,
body[class*="path-search"] .primary-menu .menu > li.menu-item--expanded > a,
body.path-search .region-primary-menu .menu > li.menu-item--expanded > a,
body[class*="path-search"] .region-primary-menu .menu > li.menu-item--expanded > a,
body.path-search #primary-menu .menu > .menu-item.menu-item--expanded > a,
body[class*="path-search"] #primary-menu .menu > .menu-item.menu-item--expanded > a,
body.path-search .primary-menu .menu > .menu-item.menu-item--expanded > a,
body[class*="path-search"] .primary-menu .menu > .menu-item.menu-item--expanded > a,
body.path-search .region-primary-menu .menu > .menu-item.menu-item--expanded > a,
body[class*="path-search"] .region-primary-menu .menu > .menu-item.menu-item--expanded > a {
  border-right: 0 !important;
  border-radius: 9px 0 0 9px !important;
  background: var(--sbn-menu-bg) !important;
  background-color: var(--sbn-menu-bg) !important;
  color: var(--sbn-menu-text) !important;
}

body.path-search #primary-menu .menu > li.menu-item--expanded > button,
body[class*="path-search"] #primary-menu .menu > li.menu-item--expanded > button,
body.path-search .primary-menu .menu > li.menu-item--expanded > button,
body[class*="path-search"] .primary-menu .menu > li.menu-item--expanded > button,
body.path-search .region-primary-menu .menu > li.menu-item--expanded > button,
body[class*="path-search"] .region-primary-menu .menu > li.menu-item--expanded > button,
body.path-search #primary-menu .menu > .menu-item.menu-item--expanded > button,
body[class*="path-search"] #primary-menu .menu > .menu-item.menu-item--expanded > button,
body.path-search .primary-menu .menu > .menu-item.menu-item--expanded > button,
body[class*="path-search"] .primary-menu .menu > .menu-item.menu-item--expanded > button,
body.path-search .region-primary-menu .menu > .menu-item.menu-item--expanded > button,
body[class*="path-search"] .region-primary-menu .menu > .menu-item.menu-item--expanded > button,
body.path-search #primary-menu .menu > li.menu-item--expanded > .menu-toggle,
body[class*="path-search"] #primary-menu .menu > li.menu-item--expanded > .menu-toggle,
body.path-search .primary-menu .menu > li.menu-item--expanded > .menu-toggle,
body[class*="path-search"] .primary-menu .menu > li.menu-item--expanded > .menu-toggle,
body.path-search .region-primary-menu .menu > li.menu-item--expanded > .menu-toggle,
body[class*="path-search"] .region-primary-menu .menu > li.menu-item--expanded > .menu-toggle,
body.path-search #primary-menu .menu > .menu-item.menu-item--expanded > .menu-toggle,
body[class*="path-search"] #primary-menu .menu > .menu-item.menu-item--expanded > .menu-toggle,
body.path-search .primary-menu .menu > .menu-item.menu-item--expanded > .menu-toggle,
body[class*="path-search"] .primary-menu .menu > .menu-item.menu-item--expanded > .menu-toggle,
body.path-search .region-primary-menu .menu > .menu-item.menu-item--expanded > .menu-toggle,
body[class*="path-search"] .region-primary-menu .menu > .menu-item.menu-item--expanded > .menu-toggle,
body.path-search #primary-menu .menu > li.menu-item--expanded > .submenu-toggle,
body[class*="path-search"] #primary-menu .menu > li.menu-item--expanded > .submenu-toggle,
body.path-search .primary-menu .menu > li.menu-item--expanded > .submenu-toggle,
body[class*="path-search"] .primary-menu .menu > li.menu-item--expanded > .submenu-toggle,
body.path-search .region-primary-menu .menu > li.menu-item--expanded > .submenu-toggle,
body[class*="path-search"] .region-primary-menu .menu > li.menu-item--expanded > .submenu-toggle,
body.path-search #primary-menu .menu > .menu-item.menu-item--expanded > .submenu-toggle,
body[class*="path-search"] #primary-menu .menu > .menu-item.menu-item--expanded > .submenu-toggle,
body.path-search .primary-menu .menu > .menu-item.menu-item--expanded > .submenu-toggle,
body[class*="path-search"] .primary-menu .menu > .menu-item.menu-item--expanded > .submenu-toggle,
body.path-search .region-primary-menu .menu > .menu-item.menu-item--expanded > .submenu-toggle,
body[class*="path-search"] .region-primary-menu .menu > .menu-item.menu-item--expanded > .submenu-toggle {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 46px !important;
  min-width: 54px !important;
  padding: 10px 14px !important;
  background: var(--sbn-menu-bg) !important;
  background-color: var(--sbn-menu-bg) !important;
  color: var(--sbn-menu-text) !important;
  border: 1px solid var(--sbn-menu-border) !important;
  border-left: 0 !important;
  border-radius: 0 9px 9px 0 !important;
  box-shadow: 0 1px 2px rgba(0,0,0,0.04) !important;
  width: auto !important;
  min-width: 54px !important;
}

body.path-search #primary-menu .menu > li.menu-item--expanded > button:hover,
body[class*="path-search"] #primary-menu .menu > li.menu-item--expanded > button:hover,
body.path-search #primary-menu .menu > li.menu-item--expanded > .menu-toggle:hover,
body[class*="path-search"] #primary-menu .menu > li.menu-item--expanded > .menu-toggle:hover,
body.path-search #primary-menu .menu > li.menu-item--expanded > .submenu-toggle:hover,
body[class*="path-search"] #primary-menu .menu > li.menu-item--expanded > .submenu-toggle:hover,
body.path-search .primary-menu .menu > li.menu-item--expanded > button:hover,
body[class*="path-search"] .primary-menu .menu > li.menu-item--expanded > button:hover,
body.path-search .primary-menu .menu > li.menu-item--expanded > .menu-toggle:hover,
body[class*="path-search"] .primary-menu .menu > li.menu-item--expanded > .menu-toggle:hover,
body.path-search .primary-menu .menu > li.menu-item--expanded > .submenu-toggle:hover,
body[class*="path-search"] .primary-menu .menu > li.menu-item--expanded > .submenu-toggle:hover,
body.path-search .region-primary-menu .menu > li.menu-item--expanded > button:hover,
body[class*="path-search"] .region-primary-menu .menu > li.menu-item--expanded > button:hover,
body.path-search .region-primary-menu .menu > li.menu-item--expanded > .menu-toggle:hover,
body[class*="path-search"] .region-primary-menu .menu > li.menu-item--expanded > .menu-toggle:hover,
body.path-search .region-primary-menu .menu > li.menu-item--expanded > .submenu-toggle:hover,
body[class*="path-search"] .region-primary-menu .menu > li.menu-item--expanded > .submenu-toggle:hover {
  background: var(--sbn-menu-hover-bg) !important;
  background-color: var(--sbn-menu-hover-bg) !important;
  color: var(--sbn-menu-hover-text) !important;
  border-color: var(--sbn-menu-hover-bg) !important;
}

/* =========================================================
   ANCHOR JUMP SUPPORT
========================================================= */
.expandable-html-section {
  scroll-margin-top: 140px;
}

.sbn-anchor-highlight {
  animation: sbnHighlight 2s ease;
}

@keyframes sbnHighlight {
  0% { background: #fff9c4; }
  100% { background: transparent; }
}

.sbn-anchor-return-highlight {
  animation: sbnReturnHighlight 1.5s ease;
}

@keyframes sbnReturnHighlight {
  0% { background: #e6f4ea; }
  100% { background: transparent; }
}

/* =========================================================
   ACCORDION / EXPANDABLE LINKS MATCH STANDARD LINKS
========================================================= */
.accordion a,
.accordion summary,
.accordion .accordion-toggle,
.details-summary,
details > summary {
  color: var(--sbn-link) !important;
  font-weight: 600;
}

.accordion a:hover,
.accordion summary:hover,
.accordion .accordion-toggle:hover,
.details-summary:hover,
details > summary:hover {
  color: var(--sbn-link-hover) !important;
  text-decoration: underline;
}

details > summary {
  cursor: pointer;
}

/* =========================================================
   BOOK NAVIGATION
========================================================= */
.book-nav--top {
  margin: 1rem 0 1.5rem 0;
}

.book-nav--bottom {
  margin: 2rem 0 1rem 0;
  padding-top: 1rem;
  border-top: 1px solid #d8dee4;
}

.book-nav a[href*="/book/export/html/"],
.book-nav a[href*="printer-friendly"],
.book-nav a[href*="print-friendly"] {
  display: none;
}

/* =========================================================
   SEARCH – WCAG FIXED
========================================================= */

.search-form input[type="search"],
.search-form input[name="keys"],
.block-search input[type="search"],
.block-search input[name="keys"] {

  background-color: var(--sbn-search-bg) !important;

  /* FIX 1: stronger border */
  border: 2px solid var(--sbn-search-border) !important;

  /* FIX 2: text contrast */
  color: #1b1b1b !important;

  /* FIX 3: padding for usability */
  padding: 10px 14px;

  /* FIX 4: subtle shadow improves contrast perception */
  box-shadow: 0 0 0 1px rgba(0,0,0,0.04);

  /* FIX 5: accessibility transition */
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

/* Placeholder contrast FIX */
.search-form input::placeholder,
.block-search input::placeholder {
  color: #5a5a5a !important;  /* WCAG compliant */
  opacity: 1;
}

/* Strong focus state (WCAG critical) */
.search-form input:focus,
.block-search input:focus {
  outline: 3px solid var(--sbn-focus) !important;
  outline-offset: 2px;

  border-color: var(--sbn-focus) !important;

  box-shadow: 0 0 0 3px rgba(0,0,0,0.08);
}

/* Optional hover clarity (helps Silktide pass) */
.search-form input:hover,
.block-search input:hover {
  border-color: var(--sbn-link) !important;
}

/* =========================================================
   WCAG 2.1 AA – SYSTEM-WIDE FORM CONTROL CONTRAST FIX
   Applies globally. Do not place in district theme files.
========================================================= */

:root {
  --sbn-form-control-border: #5f6670;
  --sbn-form-control-bg: #ffffff;
  --sbn-form-control-text: #1b1b1b;
  --sbn-form-control-placeholder: #555f6d;
}

/* Inputs, textareas, selects */
input[type="text"],
input[type="search"],
input[type="email"],
input[type="password"],
input[type="url"],
input[type="tel"],
input[type="number"],
textarea,
select {
  background-color: var(--sbn-form-control-bg) !important;
  color: var(--sbn-form-control-text) !important;
  border: 2px solid var(--sbn-form-control-border) !important;
  box-shadow: inset 0 0 0 1px var(--sbn-form-control-border) !important;
}

/* Search-specific wrappers used by Drupal/Solo */
.search-form input[type="search"],
.search-form input[name="keys"],
.block-search input[type="search"],
.block-search input[name="keys"],
form.search-form input,
form[id*="search"] input,
div[class*="search"] input[type="search"],
div[class*="search"] input[name="keys"] {
  background-color: #ffffff !important;
  color: var(--sbn-form-control-text) !important;
  border: 2px solid var(--sbn-form-control-border) !important;
  box-shadow: inset 0 0 0 1px var(--sbn-form-control-border) !important;
}

/* Placeholder contrast */
input::placeholder,
textarea::placeholder,
.search-form input::placeholder,
.block-search input::placeholder {
  color: var(--sbn-form-control-placeholder) !important;
  opacity: 1 !important;
}

/* Focus visibility */
input:focus,
textarea:focus,
select:focus,
.search-form input:focus,
.block-search input:focus {
  outline: 3px solid var(--sbn-focus) !important;
  outline-offset: 2px !important;
  border-color: var(--sbn-focus) !important;
  box-shadow: inset 0 0 0 1px var(--sbn-focus) !important;
}

/* Search submit button remains district-controlled */
.search-form button,
.search-form input[type="submit"],
.block-search button,
.block-search input[type="submit"] {
  background-color: var(--sbn-search-button-bg) !important;
  color: var(--sbn-search-button-text) !important;
  border: 2px solid var(--sbn-search-button-bg) !important;
}

/* =========================================================
   WCAG 2.1 AA SYSTEM-WIDE HARDENING PATCH
   Add at bottom of schoolboard-solo-overrides.css only.
========================================================= */

:root {
  --sbn-wcag-text: #1b1b1b;
  --sbn-wcag-muted-text: #4b5563;
  --sbn-wcag-border: #5f6670;
  --sbn-wcag-border-strong: #3f4650;
  --sbn-wcag-bg: #ffffff;
  --sbn-wcag-light-bg: #f3f6f9;
  --sbn-wcag-link-hover: var(--sbn-link);
  --sbn-wcag-focus: #111827;
}

/* Form controls — fixes Silktide form-control contrast */
input[type="text"],
input[type="search"],
input[type="email"],
input[type="password"],
input[type="url"],
input[type="tel"],
input[type="number"],
textarea,
select,
.search-form input[type="search"],
.search-form input[name="keys"],
.block-search input[type="search"],
.block-search input[name="keys"],
form[id*="search"] input[type="search"],
form[id*="search"] input[name="keys"],
div[class*="search"] input[type="search"],
div[class*="search"] input[name="keys"] {
  background-color: var(--sbn-wcag-bg) !important;
  color: var(--sbn-wcag-text) !important;
  border: 2px solid var(--sbn-wcag-border) !important;
  box-shadow: inset 0 0 0 1px var(--sbn-wcag-border) !important;
  min-height: 44px;
}

input::placeholder,
textarea::placeholder,
.search-form input::placeholder,
.block-search input::placeholder {
  color: var(--sbn-wcag-muted-text) !important;
  opacity: 1 !important;
}

/* Universal focus — stronger than current 2px focus */
a:focus,
a:focus-visible,
button:focus,
button:focus-visible,
input:focus,
input:focus-visible,
textarea:focus,
textarea:focus-visible,
select:focus,
select:focus-visible,
summary:focus,
summary:focus-visible,
[tabindex]:focus,
[tabindex]:focus-visible {
  outline: 3px solid var(--sbn-wcag-focus) !important;
  outline-offset: 3px !important;
}

/* Form focus */
input:focus,
textarea:focus,
select:focus {
  border-color: var(--sbn-wcag-focus) !important;
  box-shadow: inset 0 0 0 1px var(--sbn-wcag-focus) !important;
}

/* Links — avoid hover colors that fail contrast */
.region-content a,
.node__content a,
.layout-content a,
main a,
.views-row a,
.views-field a,
.field a,
article a,
.node a,
.book-navigation a,
.book-pager a,
.book-toc a,
.book-export-node a,
.book-export-content a,
.ui-accordion a,
.ui-accordion-header a,
.ui-accordion-content a,
details a,
summary a,
.expandable-html-section a {
  color: var(--sbn-link) !important;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 3px;
}

.region-content a:hover,
.node__content a:hover,
.layout-content a:hover,
main a:hover,
.views-row a:hover,
.views-field a:hover,
.field a:hover,
article a:hover,
.node a:hover,
.book-navigation a:hover,
.book-pager a:hover,
.book-toc a:hover,
.book-export-node a:hover,
.book-export-content a:hover,
.ui-accordion a:hover,
.ui-accordion-header a:hover,
.ui-accordion-content a:hover,
details a:hover,
summary a:hover,
.expandable-html-section a:hover,
.region-content a:focus,
.node__content a:focus,
.layout-content a:focus,
main a:focus,
.views-row a:focus,
.views-field a:focus,
.field a:focus,
article a:focus,
.node a:focus,
.book-navigation a:focus,
.book-pager a:focus,
.book-toc a:focus,
.book-export-node a:focus,
.book-export-content a:focus,
.ui-accordion a:focus,
.ui-accordion-header a:focus,
.ui-accordion-content a:focus,
details a:focus,
summary a:focus,
.expandable-html-section a:focus {
  color: var(--sbn-link) !important;
  text-decoration: underline !important;
}

/* Buttons — prevent low contrast from district palettes */
.button,
a.button,
button,
input[type="submit"],
input[type="button"],
input[type="reset"] {
  border: 2px solid var(--sbn-wcag-border-strong) !important;
  min-height: 44px;
}

.search-form button,
.search-form input[type="submit"],
.block-search button,
.block-search input[type="submit"] {
  background-color: var(--sbn-wcag-light-bg) !important;
  color: var(--sbn-wcag-text) !important;
  border: 2px solid var(--sbn-wcag-border) !important;
}

.search-form button:hover,
.search-form button:focus,
.search-form input[type="submit"]:hover,
.search-form input[type="submit"]:focus,
.block-search button:hover,
.block-search button:focus,
.block-search input[type="submit"]:hover,
.block-search input[type="submit"]:focus {
  background-color: var(--sbn-link) !important;
  color: #ffffff !important;
  border-color: var(--sbn-link) !important;
}

/* Print-friendly button */
.print-friendly-button-wrapper .button,
.print-friendly-button-wrapper a.button,
.sbn-print-link.button,
a.sbn-print-link.button {
  border: 2px solid var(--sbn-wcag-border-strong) !important;
}

.print-friendly-button-wrapper .button:hover,
.print-friendly-button-wrapper .button:focus,
.print-friendly-button-wrapper a.button:hover,
.print-friendly-button-wrapper a.button:focus,
.sbn-print-link.button:hover,
.sbn-print-link.button:focus,
a.sbn-print-link.button:hover,
a.sbn-print-link.button:focus {
  background: var(--sbn-link) !important;
  color: #ffffff !important;
  border-color: var(--sbn-link) !important;
}

/* Accordion/details controls */
.ui-accordion .ui-accordion-header,
details > summary,
.expandable-html-section__summary {
  color: var(--sbn-link) !important;
  border: 2px solid var(--sbn-wcag-border) !important;
}

.ui-accordion .ui-accordion-header:hover,
.ui-accordion .ui-accordion-header:focus,
details > summary:hover,
details > summary:focus,
.expandable-html-section__summary:hover,
.expandable-html-section__summary:focus {
  color: var(--sbn-link) !important;
  background-color: #ffffff !important;
  text-decoration: underline;
}

/* Tables */
table {
  border-collapse: collapse;
}

th,
td {
  border: 1px solid var(--sbn-wcag-border) !important;
}

th {
  color: var(--sbn-wcag-text) !important;
  background: var(--sbn-wcag-light-bg) !important;
}

/* Search highlights */
mark,
.search-api-highlight,
.search-highlight,
.solr-highlight {
  background: #fff3a3 !important;
  color: #1b1b1b !important;
}

/* Hide purely decorative SVG/icons from creating contrast noise */
svg[aria-hidden="true"],
.icon[aria-hidden="true"] {
  forced-color-adjust: auto;
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.001ms !important;
  }
}

/* Print hardening — toolbar already handled in sbn-section-actions.css */
@media print {
  a,
  a:visited {
    color: #000000 !important;
    text-decoration: underline !important;
  }

  button,
  input,
  textarea,
  select,
  .button,
  .sbn-floating-section-actions,
  .sbn-section-actions {
    box-shadow: none !important;
  }
}
