/* Inner page layouts — CMS-editable regions marked with data-cms-* attributes */

.page-banner {
  position: relative;
  max-height: 320px;
  overflow: hidden;
  background: var(--maroon-900);
}

.page-banner__image {
  display: block;
  width: 100%;
  max-height: 320px;
  object-fit: cover;
}

.page-main {
  display: grid;
  gap: 2rem;
}

.page-content__title {
  margin: 0 0 1.25rem;
  color: var(--maroon-900);
  font-size: clamp(1.55rem, 2.8vw, 2rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.2;
  padding-bottom: 0.85rem;
  border-bottom: 3px solid var(--tan);
}

.page-content__subtitle {
  margin: -0.35rem 0 1.25rem;
  color: var(--muted);
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.content-body h1 {
  margin: 1rem 0 0.65rem;
  color: var(--maroon-900);
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1.3;
}

.content-body h1.headline {
  margin: 0 0 1rem;
  color: var(--maroon);
  font-size: clamp(1.35rem, 2.5vw, 1.75rem);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-align: left;
}

.content-body .content-media {
  margin: 1.75rem 0 0;
  max-width: min(300px, 72%);
}

.content-body .content-inline-image {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
  padding: 0.85rem;
  border: 1px solid rgba(91, 17, 22, 0.08);
  border-radius: 14px;
  background: linear-gradient(145deg, #fff 0%, #f8f6f4 100%);
  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.04),
    0 8px 24px rgba(91, 17, 22, 0.1);
  object-fit: contain;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.content-body .content-media:hover .content-inline-image {
  box-shadow:
    0 2px 4px rgba(0, 0, 0, 0.05),
    0 12px 28px rgba(91, 17, 22, 0.14);
  transform: translateY(-1px);
}

.recycling-partner-logos {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
  margin: 1.75rem 0 0;
}

.recycling-partner-logos img {
  display: block;
  width: auto;
  max-width: min(220px, 100%);
  max-height: 120px;
  height: auto;
  object-fit: contain;
  padding: 0.65rem;
  border: 1px solid rgba(91, 17, 22, 0.08);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 4px 16px rgba(91, 17, 22, 0.08);
}

.district-court-documents {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem;
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--line);
}

.district-court-documents__column .subhead1 {
  margin: 0 0 0.65rem;
  color: var(--maroon);
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1.3;
}

.district-court-documents__column .subhead2 {
  margin: 0 0 0.85rem;
  color: var(--maroon);
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.45;
}

.district-court-documents__column ul {
  margin: 0;
  padding-left: 1.35rem;
}

.district-court-documents__column li + li {
  margin-top: 0.35rem;
}

.page-content__figure {
  margin: 0 0 1.5rem;
}

.page-content__figure img {
  width: 100%;
  border-radius: 12px;
  object-fit: cover;
}

.page-tool--after-content {
  margin-top: 1rem;
  padding-top: 2rem;
  border-top: 1px solid var(--line);
}

.page-hero {
  padding: 2.5rem 0 2rem;
  color: #fff;
  background: linear-gradient(135deg, var(--maroon-900) 0%, var(--maroon) 55%, var(--maroon-700) 100%);
  border-bottom: 4px solid var(--tan);
}

.page-hero .container {
  display: grid;
  gap: .75rem;
}

.page-hero h1 {
  margin: 0;
  font-size: clamp(2rem, 4.5vw, 3rem);
  line-height: 1.05;
}

.page-hero .intro {
  max-width: 720px;
  margin: 0;
  color: #f9f4ea;
  font-size: 1.1rem;
}

.page-hero .intro a[href^="tel:"],
.page-hero .intro .phone-link {
  color: #fff;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.page-hero .intro a[href^="tel:"]:hover,
.page-hero .intro .phone-link:hover {
  color: var(--tan);
}

.content-body .phone-link {
  color: var(--maroon);
  font-weight: 700;
  text-decoration: none;
}

.content-body .phone-link:hover {
  color: var(--maroon-700);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .4rem;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: .88rem;
  font-weight: 700;
}

.breadcrumb .breadcrumbs {
  display: flex;
}

/* Breadcrumb links must not inherit header <nav> button padding/background styles. */
.breadcrumb a {
  display: inline;
  min-height: 0;
  padding: .1rem .35rem;
  margin: -.1rem -.35rem;
  border-radius: 4px;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  background: transparent;
  transition:
    color .15s ease,
    background-color .15s ease,
    text-decoration-color .15s ease;
}

.breadcrumbs a {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: #fff;
}

.breadcrumb a:hover,
.breadcrumb a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 3px;
  outline: none;
}

.page-hero .breadcrumb a:hover,
.page-hero .breadcrumb a:focus-visible {
  color: var(--maroon-900);
  background: var(--tan);
  text-decoration: none;
}

.breadcrumbs li + li::before {
  content: "/";
  margin-right: .4rem;
  color: #f2ecee;
}

.breadcrumbs li[aria-current="page"] {
  color: #f2ecee;
}

.page-hero .breadcrumbs > span:not([aria-hidden="true"]) {
  color: #f2ecee;
}

.page-layout--no-sidebar {
  grid-template-columns: 1fr;
}

.page-layout--no-sidebar .page-main {
  grid-column: 1 / -1;
}

.content-body .hub-section {
  margin-left: calc(-1 * var(--container-padding, 1rem));
  margin-right: calc(-1 * var(--container-padding, 1rem));
}

.hub-section .section-heading h2 {
  color: var(--maroon-900);
}

.hub-section .section-heading p {
  color: var(--muted);
}

.hub-section .eyebrow {
  color: var(--maroon);
}

.hub-section .eyebrow::before {
  background: var(--maroon);
}

.page-layout {
  display: grid;
  grid-template-columns: minmax(240px, 280px) minmax(0, 1fr);
  gap: 2rem;
  padding: 2.5rem 0 4rem;
  align-items: start;
}

.page-layout--full {
  grid-template-columns: 1fr;
  max-width: 1140px;
  padding: 1.25rem 0 2.5rem;
}

.page-layout--with-rail {
  grid-template-columns: minmax(240px, 280px) minmax(0, 1fr) minmax(240px, 300px);
}

.page-layout--no-sidebar.page-layout--with-rail {
  grid-template-columns: minmax(0, 1fr) minmax(240px, 300px);
}

.page-aside {
  position: sticky;
  top: 120px;
  display: grid;
  gap: 1.25rem;
  align-content: start;
}

.page-aside-card {
  padding: 1.25rem;
  background: #fff;
  border: 1px solid var(--line);
  border-top: 4px solid var(--maroon);
  border-radius: 8px;
  box-shadow: 0 10px 24px rgba(29, 36, 44, .06);
}

.page-aside-card__title {
  margin: 0 0 .75rem;
  color: var(--maroon);
  font-size: .84rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.page-aside-card__name {
  margin: 0;
  color: var(--ink);
  font-size: 1.2rem;
  font-weight: 800;
}

.page-aside-card__role,
.page-aside-card__office {
  margin: .2rem 0 0;
  color: var(--muted);
  font-size: .95rem;
}

.page-aside-card__details {
  margin: 1rem 0 0;
  padding: 0;
  list-style: none;
}

.page-aside-card__details li {
  display: grid;
  gap: .15rem;
  padding: .65rem 0;
  border-top: 1px solid var(--line);
}

.page-aside-card__note {
  margin-top: 1rem;
  padding-top: .85rem;
  border-top: 1px solid var(--line);
  color: var(--ink);
  font-size: .95rem;
  line-height: 1.5;
}

.page-aside-card__note p {
  margin: 0 0 .45rem;
}

.page-aside-card__note p:last-child {
  margin-bottom: 0;
}

.page-aside-card__details .label {
  color: var(--muted);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.page-aside-card__address-label-row {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .5rem .75rem;
  justify-content: space-between;
  margin-bottom: .35rem;
}

.page-aside-card__view-map {
  align-items: center;
  background: #f3f6fb;
  border: 1px solid #c5d4ea;
  border-radius: 4px;
  color: #1f5fbf;
  display: inline-flex;
  font-size: .72rem;
  font-weight: 700;
  gap: .3rem;
  line-height: 1;
  padding: .3rem .45rem;
  text-decoration: none;
  text-transform: none;
}

.page-aside-card__view-map:hover {
  background: #e8f0fb;
  color: #174a96;
  text-decoration: none;
}

.page-aside-card__view-map-icon {
  background: currentColor;
  display: inline-block;
  height: .85rem;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5.5z'/%3E%3C/svg%3E") center / contain no-repeat;
  width: .85rem;
}

.page-aside-card__details a {
  color: var(--maroon);
  font-weight: 700;
  text-decoration: none;
}

.page-aside-card__details a:hover {
  text-decoration: underline;
  color: var(--maroon-700);
}

.page-aside-card__details a[href^="tel:"]:hover {
  color: var(--maroon-700);
}

.page-aside-card__directions {
  color: var(--maroon);
  font-weight: 700;
  text-decoration: none;
}

.page-aside-card__directions:hover {
  text-decoration: underline;
  color: var(--maroon-700);
}

.page-aside-card__action {
  margin: 1rem 0 0;
}

.page-aside-card__contact-block {
  margin-top: 1.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--line);
}

.page-aside-card__links {
  margin: 0;
  padding: 0;
  list-style: none;
}

.page-aside-card__links li {
  padding: .6rem 0;
  border-top: 1px solid var(--line);
}

.page-aside-card__links a {
  color: var(--maroon);
  font-weight: 700;
  line-height: 1.45;
  text-decoration: none;
}

.page-aside-card__links a:hover {
  text-decoration: underline;
}

.page-aside-card__links--faq li {
  margin-bottom: .65rem;
}

.page-aside-card__links--faq a {
  line-height: 1.45;
}

.page-aside-card .button.secondary {
  color: var(--maroon);
  background: #fff;
  border-color: var(--maroon);
}

.page-aside-card .button.secondary:hover {
  color: #fff;
  background: var(--maroon);
  border-color: var(--maroon);
}

.page-aside--image .page-aside-image {
  margin: 0;
  padding: 0;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--line);
  box-shadow: 0 10px 24px rgba(29, 36, 44, .08);
}

.page-aside--image .page-aside-image img {
  display: block;
  width: 100%;
  height: auto;
}

.page-content__figure {
  margin: 0 0 1.5rem;
}

.page-content__figure img {
  display: block;
  width: 100%;
  max-width: 320px;
  height: auto;
  border-radius: 8px;
  box-shadow: 0 12px 28px rgba(29, 36, 44, .12);
}

.page-content-split {
  display: grid;
  gap: 2rem;
  align-items: start;
}

.page-content-split__media .subhead1 {
  margin: 0 0 1rem;
}

.page-content-split__figure {
  margin: 0;
}

.page-content-split__figure img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  box-shadow: 0 12px 28px rgba(29, 36, 44, .12);
}

@media (min-width: 768px) {
  .page-content-split {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }
}

.page-layout__sidebar {
  display: grid;
  gap: 1.25rem;
  align-content: start;
}

.facility-sidebar__card {
  padding: 1.25rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 2px 14px rgba(43, 14, 26, .06);
}

.facility-sidebar__title {
  margin: 0 0 .65rem;
  color: var(--maroon-900);
  font-size: 1rem;
  font-weight: 800;
}

.facility-sidebar__directions {
  display: flex;
  gap: .75rem;
  margin: 0 0 1.15rem;
  padding: 0;
  list-style: none;
}

.facility-sidebar__directions a {
  color: var(--maroon);
  font-weight: 700;
  text-decoration: none;
}

.facility-sidebar__directions a:hover {
  text-decoration: underline;
}

.facility-sidebar__name {
  margin: 0 0 .35rem;
  color: var(--maroon-900);
  font-size: 1.05rem;
  font-weight: 800;
}

.facility-sidebar__address-line {
  margin: 0;
  color: var(--muted);
  font-size: .92rem;
  line-height: 1.45;
}

.facility-sidebar__features-title {
  margin: 1.15rem 0 .55rem;
  color: var(--maroon-900);
  font-size: .95rem;
  font-weight: 800;
}

.facility-sidebar__features {
  margin: 0;
  padding-left: 1.15rem;
  color: var(--ink);
  font-size: .9rem;
  line-height: 1.5;
}

.facility-sidebar__action {
  margin: 1.15rem 0 0;
}

.facility-sidebar__action .button.secondary {
  display: inline-block;
  padding: .55rem .9rem;
  border: 1px solid var(--maroon);
  border-radius: 6px;
  color: var(--maroon);
  font-size: .86rem;
  font-weight: 700;
  text-decoration: none;
}

.facility-sidebar__action .button.secondary:hover {
  background: var(--maroon);
  color: #fff;
}

.page-layout--facility-detail {
  max-width: 1180px;
}

.page-hero--facility-detail .facility-hero__view-all {
  margin: .5rem 0 0;
}

.page-hero--facility-detail .facility-hero__view-all a {
  /* color: var(--maroon); */
  font-weight: 700;
  text-decoration: none;
}

.page-hero--facility-detail .facility-hero__view-all a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.facility-detail__layout {
  display: grid;
  gap: 1.5rem;
  align-items: start;
}

@media (min-width: 960px) {
  .facility-detail__layout {
    grid-template-columns: minmax(240px, 290px) minmax(0, 1fr);
    gap: 2rem;
  }

  .facility-detail__sidebar {
    position: sticky;
    top: 120px;
  }
}

.facility-detail__main {
  min-width: 0;
}

.facility-detail__sidebar {
  display: grid;
  gap: 1rem;
}

.facility-detail__map {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--wash);
  aspect-ratio: 1;
}

.facility-detail__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.facility-detail__sidebar-card {
  padding: 1.15rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 2px 14px rgba(43, 14, 26, .06);
}

.facility-detail__sidebar-title {
  margin: 0 0 .6rem;
  color: var(--maroon-900);
  font-size: 1rem;
  font-weight: 800;
}

.facility-detail__directions {
  display: flex;
  gap: .85rem;
  margin: 0 0 1rem;
  padding: 0;
  list-style: none;
}

.facility-detail__directions a {
  color: var(--maroon);
  font-weight: 700;
  text-decoration: none;
}

.facility-detail__directions a:hover {
  text-decoration: underline;
}

.facility-detail__location-name {
  margin: 0 0 .35rem;
  color: var(--maroon-900);
  font-size: 1.05rem;
  font-weight: 800;
}

.facility-detail__address-line {
  margin: 0;
  color: var(--muted);
  font-size: .92rem;
  line-height: 1.45;
}

.facility-detail__header {
  margin-bottom: 1.25rem;
}

.facility-detail__title {
  margin: 0 0 .55rem;
  color: var(--maroon-900);
  font-size: clamp(1.55rem, 2.8vw, 2rem);
  line-height: 1.15;
}

.facility-detail__summary {
  margin: 0;
  max-width: 68ch;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.6;
}

.facility-detail__media-row {
  display: grid;
  gap: 1.25rem;
  margin-bottom: 1.5rem;
}

@media (min-width: 760px) {
  .facility-detail__media-row {
    grid-template-columns: minmax(0, 1.1fr) minmax(260px, .9fr);
    align-items: stretch;
  }
}

.facility-detail__media,
.facility-detail__features-card {
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 2px 14px rgba(43, 14, 26, .06);
}

.facility-detail__media {
  overflow: hidden;
  min-height: 220px;
}

.facility-detail__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 220px;
  object-fit: cover;
}

.facility-detail__media-placeholder {
  display: grid;
  place-items: center;
  gap: .65rem;
  min-height: 220px;
  padding: 1.5rem;
  color: var(--muted);
  background: linear-gradient(160deg, var(--wash) 0%, #fff 100%);
  text-align: center;
  font-size: .92rem;
  font-weight: 600;
}

.facility-detail__share {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem 1rem;
  margin: 0;
  padding: .75rem 1rem;
  list-style: none;
  border-top: 1px solid var(--line);
  background: #fff;
}

.facility-detail__share a {
  color: var(--maroon);
  font-size: .88rem;
  font-weight: 700;
  text-decoration: none;
}

.facility-detail__share a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.facility-detail__features-card {
  padding: 1.15rem 1.15rem 1rem;
}

.facility-detail__features-title {
  margin: 0 0 .65rem;
  color: var(--maroon-900);
  font-size: 1rem;
  font-weight: 800;
}

.facility-detail__features {
  margin: 0;
  padding-left: 1.2rem;
  color: var(--ink);
  font-size: .92rem;
  line-height: 1.55;
}

.facility-detail__body {
  margin-bottom: 1rem;
}

.facility-detail__body .facility-section-title {
  margin: 1.35rem 0 .55rem;
  color: var(--maroon-900);
  font-size: 1.15rem;
  font-weight: 800;
}

.facility-detail__body .facility-section-title:first-child {
  margin-top: 0;
}

.facility-detail__more {
  margin: 0 0 1.25rem;
  color: var(--ink);
}

.facility-detail__more a {
  color: var(--maroon);
  font-weight: 700;
  text-decoration: none;
}

.facility-detail__more a:hover {
  text-decoration: underline;
}

.facility-detail__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}

.facility-detail__availability {
  width: 100%;
  min-width: 0;
  margin-top: 2rem;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.facility-detail__availability h2 {
  margin: 0 0 1rem;
  color: var(--maroon-900);
  font-size: 1.35rem;
}

.facility-detail__events-calendar {
  width: 100%;
  min-width: 0;
}

.facility-detail__events-calendar .calendar-box {
  width: 100%;
}

.faq-aside-categories {
  margin: 0;
  padding: 0;
  list-style: none;
}

.faq-aside-categories a {
  display: block;
  padding: .4rem 0;
  color: var(--maroon);
  font-size: .9rem;
  font-weight: 600;
  text-decoration: none;
}

.faq-aside-categories a:hover {
  text-decoration: underline;
}

.archive-center-empty {
  padding: 2rem 1.25rem;
  border: 1px dashed var(--line);
  border-radius: 10px;
  background: var(--wash);
  text-align: center;
  color: var(--muted);
}

.page-sidebar {
  position: sticky;
  top: 120px;
}

.sidebar-nav {
  padding: 1.15rem;
  background: var(--wash);
  border: 1px solid var(--line);
  border-top: 4px solid var(--tan);
  border-radius: 8px;
}

.sidebar-nav h2 {
  margin: .35rem 0 .85rem;
  color: var(--maroon);
  font-size: .84rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.sidebar-section {
  margin: 0 0 .15rem;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.sidebar-section a {
  color: var(--muted);
  text-decoration: none;
}

.sidebar-section a:hover {
  color: var(--maroon);
  text-decoration: underline;
}

.sidebar-nav ul {
  display: grid;
  gap: .25rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.sidebar-nav a {
  display: block;
  padding: .55rem .65rem;
  color: var(--ink);
  border-radius: 6px;
  font-weight: 700;
  font-size: .92rem;
  text-decoration: none;
}

.sidebar-nav a:hover,
.sidebar-nav a.is-active {
  color: var(--maroon);
  background: var(--tan-100);
}

.sidebar-nav a.is-parent-active {
  color: var(--maroon);
}

.sidebar-subnav {
  display: grid;
  gap: .15rem;
  margin: .2rem 0 .35rem;
  padding: 0 0 0 .85rem;
  border-left: 2px solid var(--line);
  list-style: none;
}

.sidebar-subnav[hidden] {
  display: none !important;
}

.sidebar-subnav a {
  padding: .4rem .55rem;
  font-size: .84rem;
  font-weight: 600;
}

.page-content {
  min-width: 0;
}

.cms-block {
  margin-bottom: 1.75rem;
}

.cms-block:last-child {
  margin-bottom: 0;
}

.content-body {
  color: var(--ink);
  font-size: 1rem;
  line-height: 1.65;
}

.content-body :where(p, span, font, div, li, td) {
  font-family: inherit;
}

.content-body :where(span, font)[style*="font-size"] {
  font-size: inherit !important;
}

.content-body h2,
.content-body h3,
.content-body h4 {
  color: var(--maroon-900);
  margin: 1.5rem 0 .65rem;
}

.content-body h2 { font-size: 1.55rem; }
.content-body h3 { font-size: 1.25rem; }
.content-body p { margin: 0 0 1rem; }

.content-body ul,
.content-body ol {
  margin: 0 0 1rem;
  padding-left: 1.35rem;
}

.content-body a {
  color: var(--maroon);
  font-weight: 700;
}

.content-body a[href^="tel:"]:hover {
  color: var(--maroon-700);
}

.content-body a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.content-body blockquote {
  margin: 1.25rem 0;
  padding: 1.15rem 1.25rem;
  border-left: 5px solid var(--tan);
  background: var(--tan-100);
}

.content-body .content-view-all {
  margin: 0 0 1.5rem;
}

.content-body .content-view-all .button.secondary {
  display: inline-block;
  padding: .65rem 1.15rem;
  color: var(--maroon);
  background: #fff;
  border: 1px solid var(--maroon);
  border-radius: 6px;
  font-weight: 700;
  text-decoration: none;
}

.content-body .content-view-all .button.secondary:hover {
  color: #fff;
  background: var(--maroon);
}

.content-body .bids-table-wrap {
  margin: 1.25rem 0 1.5rem;
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 6px 22px rgb(43 14 26 / 7%);
}

.content-body .bids-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .95rem;
}

.content-body .bids-table th,
.content-body .bids-table td {
  padding: .85rem 1rem;
  border-bottom: 1px solid var(--line);
  vertical-align: middle;
  text-align: center;
}

.content-body .bids-table thead tr:first-child th[colspan] {
  padding: 1rem 1.15rem;
  background: linear-gradient(135deg, var(--maroon) 0%, var(--maroon-900) 100%);
  color: #fff;
  font-size: .92rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  border-bottom: 0;
}

.content-body .bids-table thead tr:nth-child(2) th {
  background: var(--tan-100);
  color: var(--maroon-900);
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.content-body .bids-table tbody tr:nth-child(even) {
  background: var(--wash);
}

.content-body .bids-table tbody tr:hover {
  background: rgba(122, 31, 46, .05);
}

.content-body .bids-table tbody tr:last-child td {
  border-bottom: 0;
}

.content-body .bids-table tbody td {
  min-height: 2.75rem;
  color: var(--ink);
}

.content-body .bids-table-wrap--schedule {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 1.5rem 0;
  padding: 0;
  box-sizing: border-box;
  overflow: hidden;
  -webkit-overflow-scrolling: touch;
}

.content-body .bids-table-wrap--schedule .bids-table--schedule {
  display: table;
  width: 100% !important;
  min-width: 100%;
  max-width: 100%;
  margin: 0;
  table-layout: fixed;
  border-collapse: collapse;
}

.content-body table[style*="width"],
.content-body table[style*="margin-left"] {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.content-body .bids-table--schedule col.bids-table__col {
  width: 50% !important;
}

.content-body .bids-table--schedule th,
.content-body .bids-table--schedule td {
  width: 50%;
  box-sizing: border-box;
}

.content-body .bids-table--schedule thead tr:first-child th[colspan] {
  width: 100%;
  text-align: center;
}

.content-body .bids-table-wrap--schedule table[style] {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.content-body .bids-table--schedule tbody tr.bids-table__subhead td {
  background: var(--tan-100);
  color: var(--maroon-900);
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  border-bottom: 2px solid var(--line);
}

.content-body .bids-table--schedule tbody td:first-child {
  border-right: 2px solid var(--line);
}

.content-body .bids-table--schedule tbody td {
  min-height: 3rem;
  padding: 1rem 1.15rem;
}

.content-body .city-owned-callout {
  margin: 1.5rem 0 0;
  padding: 1rem 1.25rem;
  background: #242526;
  color: #e4e6eb;
  border-radius: 8px;
  line-height: 1.6;
}

.content-body .city-owned-callout a {
  color: #fff;
  font-weight: 700;
  text-decoration: underline;
}

.content-body .city-owned-callout a:hover,
.content-body .city-owned-callout a:focus {
  color: #fff;
  text-decoration-thickness: 2px;
}

.content-body table:not(.bids-table):not(.tool-table):not(.calendar-table):not(.agenda-table):not(.directory-table) {
  width: 100%;
  margin: 1.25rem 0 1.5rem;
  border-collapse: collapse;
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 6px 22px rgb(43 14 26 / 7%);
  font-size: .95rem;
}

.content-body table:not(.bids-table):not(.tool-table):not(.calendar-table):not(.agenda-table):not(.directory-table) th,
.content-body table:not(.bids-table):not(.tool-table):not(.calendar-table):not(.agenda-table):not(.directory-table) td {
  padding: .85rem 1rem;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
  text-align: left;
}

.content-body table:not(.bids-table):not(.tool-table):not(.calendar-table):not(.agenda-table):not(.directory-table) th {
  background: var(--wash);
  color: var(--maroon-900);
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.content-body table:not(.bids-table):not(.tool-table):not(.calendar-table):not(.agenda-table):not(.directory-table) tbody tr:hover {
  background: rgba(122, 31, 46, .03);
}

.content-body--lead > p:first-child {
  font-size: 1.08rem;
  line-height: 1.75;
}

.content-body.cms-block:has(+ .page-documents) {
  margin-bottom: 0;
}

.content-body--lead:has(+ .page-documents) > p:last-child {
  margin-bottom: 0;
}

.page-documents {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
}

.page-documents__heading {
  margin: 0 0 0.65rem;
  color: var(--maroon);
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: none;
}

.page-documents__intro {
  margin: 0 0 1rem;
  color: var(--maroon);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.45;
}

.cms-block.content-body:not(.content-body--lead):has(> .content-body--lead, > .page-documents, > .cta-inline) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
  gap: 1.5rem;
  align-items: start;
}

.cms-block.content-body:not(.content-body--lead) > .content-body--lead,
.cms-block.content-body:not(.content-body--lead) > .page-documents:only-of-type,
.cms-block.content-body:not(.content-body--lead) > .cta-inline {
  grid-column: 1 / -1;
}

.page-documents__list {
  display: grid;
  gap: 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.page-documents__link {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 1rem;
  row-gap: 0.35rem;
  align-items: center;
  padding: 1rem 1.15rem;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: 0 8px 22px rgba(29, 36, 44, .05);
  color: var(--ink);
  text-decoration: none;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.page-documents__link:hover {
  border-color: rgba(122, 12, 42, .35);
  box-shadow: 0 14px 30px rgba(29, 36, 44, .1);
  transform: translateY(-1px);
}

.page-documents__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  grid-row: 1 / span 2;
  align-self: center;
  min-width: 3rem;
  height: 3rem;
  padding: 0 0.45rem;
  border-radius: 8px;
  background: linear-gradient(145deg, var(--maroon), var(--maroon-900));
  color: #fff;
  font-size: 0.7rem;
  font-weight: 900;
  letter-spacing: 0.05em;
}

.page-documents__icon--xlsx,
.page-documents__icon--xls {
  background: linear-gradient(145deg, #217346, #185c37);
}

.page-documents__text {
  grid-column: 2;
  grid-row: 1;
  display: grid;
  gap: 0.2rem;
  min-width: 0;
}

.page-documents__label {
  color: var(--ink);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.4;
}

.page-documents__meta {
  color: var(--muted);
  font-size: 0.88rem;
  line-height: 1.45;
}

.page-documents__action {
  grid-column: 2;
  grid-row: 2;
  justify-self: start;
  color: var(--maroon);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  white-space: nowrap;
}

.info-panel {
  padding: 1.25rem 1.35rem;
  background: var(--wash);
  border: 1px solid var(--line);
  border-left: 5px solid var(--teal);
  border-radius: 8px;
}

.info-panel h3 {
  margin: 0 0 .5rem;
  color: var(--maroon);
  font-size: 1.05rem;
}

.info-panel p:last-child {
  margin-bottom: 0;
}

.contact-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.contact-card {
  padding: 1.25rem;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.contact-card h3 {
  margin: 0 0 .5rem;
  color: var(--maroon-900);
  font-size: 1.05rem;
}

.link-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
}

.link-card {
  display: flex;
  flex-direction: column;
  gap: .35rem;
  min-height: 100%;
  padding: 1.1rem 1.15rem;
  color: inherit;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  text-decoration: none;
  transition: border-color .15s, box-shadow .15s;
}

.link-card:hover {
  border-color: var(--tan);
  box-shadow: 0 8px 20px rgba(29, 36, 44, .08);
}

.link-card h3 {
  margin: 0;
  color: var(--maroon-900);
  font-size: 1.05rem;
}

.link-card p {
  margin: 0;
  color: var(--muted);
  font-size: .92rem;
}

.link-card .arrow {
  margin-top: auto;
  color: var(--maroon);
  font-weight: 800;
  font-size: .88rem;
}

.hub-section {
  padding: 2.5rem 0 4rem;
}

.hub-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.hub-card {
  display: flex;
  flex-direction: column;
  gap: .5rem;
  min-height: 180px;
  padding: 1.25rem;
  color: inherit;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  text-decoration: none;
}

.hub-card:hover {
  border-color: var(--tan);
  box-shadow: 0 10px 24px rgba(29, 36, 44, .08);
}

.hub-card .icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  color: #fff;
  background: var(--maroon);
  border-radius: 8px;
}

.hub-card .icon svg {
  width: 22px;
  height: 22px;
}

.hub-card .icon--maroon { background: var(--maroon); color: #fff; }
.hub-card .icon--fire { background: linear-gradient(145deg, #b83218, #e85d2a); color: #fff; }
.hub-card .icon--code { background: linear-gradient(145deg, #1e5a6e, #2d8aa8); color: #fff; }
.hub-card .icon--animal { background: linear-gradient(145deg, #2d6a3e, #4a9d5c); color: #fff; }
.hub-card .icon--teal { background: var(--teal); color: #fff; }
.hub-card .icon--blue { background: var(--blue); color: #fff; }
.hub-card .icon--gold { background: var(--gold); color: var(--maroon-900); }

.hub-card h3 {
  margin: 0;
  color: var(--maroon-900);
  font-size: 1.1rem;
}

.hub-card p {
  margin: 0;
  color: var(--muted);
  font-size: .94rem;
}

.dept-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: .5rem;
}

.dept-meta-item {
  display: flex;
  align-items: center;
  gap: .45rem;
  color: var(--tan);
  font-weight: 700;
  font-size: .92rem;
}

.cta-inline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1.5rem;
  padding: 1.25rem 1.35rem;
  color: #fff;
  background: linear-gradient(135deg, var(--maroon-900) 0%, var(--maroon) 100%);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(43, 14, 26, .12);
}

.cta-inline p {
  margin: 0;
  max-width: 560px;
  color: rgba(255, 255, 255, .92);
}

.cta-inline .button.primary {
  flex-shrink: 0;
  background: var(--tan);
  color: var(--maroon-900);
}

.cta-inline .button.primary:hover {
  background: #e8d4a8;
  color: var(--maroon-900);
}

.cta-inline .button {
  margin-top: .75rem;
}

/* Agenda Center */
.agenda-center-page {
  display: grid;
  gap: 1.5rem;
}

.agenda-intro {
  padding: 1rem 1.15rem;
  background: var(--wash);
  border: 1px solid var(--line);
  border-left: 4px solid var(--tan);
  border-radius: 8px;
}

.agenda-intro-copy a {
  color: var(--maroon);
}

.agenda-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, .75fr);
  gap: 1rem;
  align-items: end;
  padding: 1rem 1.15rem;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.agenda-filter {
  display: grid;
  gap: .35rem;
}

.agenda-filter label {
  font-size: .82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--maroon-900);
}

.agenda-filter input,
.agenda-filter select {
  width: 100%;
  padding: .65rem .75rem;
  border: 1px solid var(--line);
  border-radius: 6px;
  font: inherit;
  background: #fff;
}

.agenda-result-count {
  grid-column: 1 / -1;
  margin: 0;
  font-size: .92rem;
  color: var(--muted);
}

.agenda-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.agenda-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .95rem;
}

.agenda-table th,
.agenda-table td {
  padding: .85rem 1rem;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
  text-align: left;
}

.agenda-table th {
  background: var(--wash);
  font-size: .82rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--maroon-900);
}

.agenda-table tbody tr:hover {
  background: rgba(122, 31, 46, .03);
}

.agenda-date strong {
  display: block;
  color: var(--maroon-900);
}

.agenda-posted {
  display: block;
  margin-top: .25rem;
  font-size: .82rem;
  color: var(--muted);
}

.agenda-title a {
  color: var(--maroon);
  font-weight: 700;
  text-decoration: none;
}

.agenda-title a:hover {
  text-decoration: underline;
}

.agenda-doc-link {
  display: inline-block;
  margin-right: .5rem;
  margin-bottom: .25rem;
  padding: .25rem .55rem;
  border-radius: 999px;
  background: var(--wash);
  color: var(--maroon);
  font-size: .82rem;
  font-weight: 700;
  text-decoration: none;
}

.agenda-doc-link:hover {
  background: var(--tan);
}

.agenda-doc-empty {
  color: var(--muted);
}

.agenda-empty {
  margin: 0;
  padding: 1.25rem;
  text-align: center;
  color: var(--muted);
}

.agenda-empty[hidden],
.agenda-table tr[hidden] {
  display: none !important;
}

/* Event Calendar */
.calendar-page {
  display: grid;
  gap: 1.5rem;
}

.calendar-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: 1rem;
  align-items: end;
  padding: 1rem 1.15rem;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.calendar-filter {
  display: grid;
  gap: .35rem;
}

.calendar-filter label {
  font-size: .82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--maroon-900);
}

.calendar-filter input,
.calendar-filter select {
  width: 100%;
  min-height: 42px;
  padding: .65rem .75rem;
  border: 1px solid var(--line);
  border-radius: 6px;
  font: inherit;
  background: #fff;
}

.calendar-result-count {
  grid-column: 1 / -1;
  margin: 0;
  font-size: .92rem;
  color: var(--muted);
}

.calendar-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.calendar-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .95rem;
}

.calendar-table th,
.calendar-table td {
  padding: .85rem 1rem;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
  text-align: left;
}

.calendar-table th {
  background: var(--wash);
  font-size: .82rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--maroon-900);
}

.calendar-table tbody tr:hover {
  background: rgba(122, 31, 46, .03);
}

.cal-date strong {
  display: block;
  color: var(--maroon-900);
}

.cal-event-link {
  color: var(--maroon);
  font-weight: 700;
  text-decoration: none;
}

.cal-event-link:hover {
  text-decoration: underline;
}

.cal-location {
  color: var(--muted);
  font-size: .92rem;
  line-height: 1.5;
}

.calendar-empty-state {
  margin: 0;
  padding: 1.25rem;
  text-align: center;
  color: var(--muted);
}

.calendar-empty-state[hidden],
.calendar-table tr[hidden] {
  display: none !important;
}

/* Bid Postings */
.bids-page {
  display: grid;
  gap: 1.5rem;
}

.bids-alert {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.15rem;
  border: 1px solid rgba(122, 31, 46, .18);
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(122, 31, 46, .08), rgba(201, 162, 39, .08));
}

.bids-alert-text {
  margin: 0;
  max-width: 42rem;
  color: var(--maroon-900);
  line-height: 1.55;
}

.bids-alert-link {
  flex-shrink: 0;
}

.bids-alert .button.secondary,
.bids-alert-link.button.secondary {
  display: inline-block;
  padding: .65rem 1.15rem;
  color: var(--maroon);
  background: #fff;
  border: 2px solid var(--maroon);
  border-radius: 6px;
  text-decoration: none;
  font-weight: 800;
  line-height: 1.1;
  white-space: nowrap;
}

.bids-alert .button.secondary:hover,
.bids-alert-link.button.secondary:hover {
  color: #fff;
  background: var(--maroon);
  border-color: var(--maroon);
}

.bids-lead {
  margin: 0;
  color: var(--muted);
  line-height: 1.6;
}

.bids-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: end;
  padding: 1rem 1.15rem;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
}

.bids-filter {
  display: grid;
  gap: .35rem;
}

.bids-filter label {
  font-size: .82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--maroon-900);
}

.bids-filter select {
  width: 100%;
  min-height: 42px;
  padding: .65rem .75rem;
  border: 1px solid var(--line);
  border-radius: 6px;
  font: inherit;
  background: #fff;
}

.bids-filter--checkbox {
  align-self: center;
}

.bids-checkbox {
  display: flex;
  align-items: center;
  gap: .55rem;
  font-size: .92rem;
  color: var(--ink);
  cursor: pointer;
}

.bids-checkbox input {
  width: 1rem;
  height: 1rem;
  accent-color: var(--maroon);
}

.bids-toolbar-actions {
  display: flex;
  align-items: end;
}

.bids-result-count {
  grid-column: 1 / -1;
  margin: 0;
  font-size: .92rem;
  color: var(--muted);
}

.bids-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}

.bids-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .95rem;
}

.bids-table th,
.bids-table td {
  padding: .85rem 1rem;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
  text-align: left;
}

.bids-table th {
  background: var(--wash);
  font-size: .82rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--maroon-900);
}

.bids-table tbody tr:hover {
  background: rgba(122, 31, 46, .03);
}

.bids-title-link {
  color: var(--maroon);
  font-weight: 700;
  text-decoration: none;
}

.bids-title-link:hover {
  text-decoration: underline;
}

.bids-title-text {
  color: var(--maroon-900);
  font-weight: 700;
}

.bids-summary {
  margin-top: .45rem;
  color: var(--muted);
  font-size: .92rem;
  line-height: 1.55;
}

.bids-summary p:last-child {
  margin-bottom: 0;
}

.bids-download {
  margin: .45rem 0 0;
}

.bids-category,
.bids-closing,
.bids-number {
  color: var(--muted);
  font-size: .92rem;
  white-space: nowrap;
}

.bids-empty-state,
.bids-empty {
  margin: 0;
  padding: 1.25rem;
  text-align: center;
  color: var(--muted);
}

.bids-empty[hidden],
.bids-table tr[hidden] {
  display: none !important;
}

.tag-pill--open {
  background: rgba(31, 122, 77, .12);
  color: #1f7a4d;
}

.tag-pill--closed,
.tag-pill--cancelled {
  background: rgba(180, 35, 24, .1);
  color: #b42318;
}

.tag-pill--awarded {
  background: rgba(201, 162, 39, .18);
  color: #7a5b00;
}

@media (max-width: 900px) {
  .bids-toolbar {
    grid-template-columns: 1fr;
  }

  .bids-toolbar-actions .button {
    width: 100%;
    text-align: center;
  }
}

/* Job Opportunities */
.jobs-page {
  display: grid;
  gap: 1.5rem;
}

.jobs-alert {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.15rem;
  border: 1px solid rgba(122, 31, 46, .18);
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(122, 31, 46, .08), rgba(201, 162, 39, .08));
}

.jobs-alert-text {
  margin: 0;
  max-width: 42rem;
  color: var(--maroon-900);
  line-height: 1.55;
}

.jobs-alert .button.secondary,
.jobs-alert-link.button.secondary {
  display: inline-block;
  padding: .65rem 1.15rem;
  color: var(--maroon);
  background: #fff;
  border: 2px solid var(--maroon);
  border-radius: 6px;
  text-decoration: none;
  font-weight: 800;
  line-height: 1.1;
  white-space: nowrap;
}

.jobs-alert .button.secondary:hover,
.jobs-alert-link.button.secondary:hover {
  color: #fff;
  background: var(--maroon);
  border-color: var(--maroon);
}

.jobs-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1fr);
  gap: 1rem;
  align-items: end;
  padding: 1rem 1.15rem;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
}

.jobs-filter {
  display: grid;
  gap: .35rem;
}

.jobs-filter label {
  font-size: .82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--maroon-900);
}

.jobs-filter input,
.jobs-filter select {
  width: 100%;
  min-height: 42px;
  padding: .65rem .75rem;
  border: 1px solid var(--line);
  border-radius: 6px;
  font: inherit;
  background: #fff;
}

.jobs-result-count {
  grid-column: 1 / -1;
  margin: 0;
  font-size: .92rem;
  color: var(--muted);
}

.jobs-tools {
  padding: 1rem 1.15rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}

.jobs-tools-title {
  margin: 0 0 .75rem;
  font-size: 1rem;
  color: var(--maroon-900);
}

.jobs-tools-list {
  display: grid;
  gap: .55rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.jobs-tools-list a {
  color: var(--maroon);
  font-weight: 700;
  text-decoration: none;
}

.jobs-tools-list a:hover {
  text-decoration: underline;
}

.jobs-group-title {
  margin: 0 0 1rem;
  font-size: 1.35rem;
  color: var(--maroon-900);
}

.jobs-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1rem;
}

.job-card {
  display: grid;
  gap: .85rem;
  padding: 1.1rem 1.15rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 2px 12px rgba(43, 14, 26, .04);
}

.job-card-title {
  margin: 0;
  font-size: 1.15rem;
  color: var(--maroon-900);
}

.job-card-dept {
  margin: .25rem 0 0;
  color: var(--muted);
  font-size: .88rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
}

.job-card-meta {
  display: grid;
  gap: .45rem;
  margin: 0;
}

.job-card-meta div {
  display: grid;
  gap: .1rem;
}

.job-card-meta dt {
  margin: 0;
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--muted);
}

.job-card-meta dd {
  margin: 0;
  color: var(--ink);
  font-size: .92rem;
}

.job-card-details summary {
  cursor: pointer;
  color: var(--maroon);
  font-weight: 700;
}

.job-card-details-body {
  margin-top: .65rem;
  color: var(--muted);
  font-size: .92rem;
  line-height: 1.55;
}

.job-card-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem;
  justify-content: space-between;
}

.jobs-empty {
  margin: 0;
  padding: 1.25rem;
  text-align: center;
  color: var(--muted);
}

.jobs-empty[hidden],
.jobs-group[hidden],
.job-card[hidden] {
  display: none !important;
}

@media (max-width: 900px) {
  .jobs-toolbar {
    grid-template-columns: 1fr;
  }

  .jobs-grid {
    grid-template-columns: 1fr;
  }
}

/* Shared tool pages (calendar, documents, FAQ, etc.) */
.tool-intro { margin: 0 0 1rem; color: var(--muted); }
.tool-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: 1rem;
  align-items: end;
  padding: 1rem;
  background: var(--wash);
  border: 1px solid var(--line);
  border-radius: 8px;
  margin-bottom: 1rem;
}
.tool-toolbar label { display: grid; gap: .35rem; font-size: .82rem; font-weight: 700; margin: 0; }
.tool-count { grid-column: 1 / -1; margin: 0; font-size: .88rem; color: var(--muted); }
.tool-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.tool-table { width: 100%; border-collapse: collapse; }
.tool-table th, .tool-table td { padding: .85rem 1rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.tool-table th { background: var(--wash); font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; }
.cal-time, .cal-desc { display: block; font-size: .85rem; color: var(--muted); margin-top: .25rem; }
.cal-attachment { margin: .45rem 0 0; font-size: .85rem; }
.cal-attachment a { color: var(--maroon); font-weight: 800; text-decoration: none; }
.cal-attachment a:hover { text-decoration: underline; }
.calendar-table tr.is-highlighted,
.tool-table tr.is-highlighted {
  background: #fff8df;
  box-shadow: inset 0 0 0 2px var(--tan);
}
.calendar-table tr.is-highlighted td,
.tool-table tr.is-highlighted td {
  background: transparent;
}
.tag-pill { display: inline-block; padding: .2rem .55rem; border-radius: 999px; background: var(--wash); font-size: .78rem; font-weight: 700; color: var(--maroon-900); }
.news-listing { display: grid; gap: 1rem; }
.news-listing-card { padding: 1rem 1.15rem; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.news-date { font-size: .85rem; color: var(--muted); }
.form-category { margin-bottom: 1.5rem; }
.form-link-list { margin: 0; padding-left: 1.2rem; }
.form-link-list a { font-weight: 700; }

/* Form Center listing */
.form-center-page { min-width: 0; }
.form-center-header {
  position: static;
  top: auto;
  z-index: auto;
  isolation: isolate;
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--line);
  background: transparent;
}
.form-center-lead {
  margin: 0 0 .85rem;
  color: #4a4038;
  font-size: .95rem;
}
.form-center-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem 1rem;
  margin-bottom: .85rem;
}
.form-search-wrap { flex: 1 1 220px; max-width: 420px; margin: 0; }
.form-search-wrap input {
  width: 100%;
  padding: .6rem .85rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  font: inherit;
  background: #fff;
}
.form-search-wrap input::placeholder {
  color: #4a4038;
  opacity: 1;
}
.form-search-wrap input:focus {
  border-color: var(--maroon-700);
  box-shadow: 0 0 0 3px rgba(122, 31, 46, .1);
}
.form-count {
  margin: 0;
  color: #4a4038;
  font-size: .88rem;
  font-weight: 700;
}
.form-filter-pills {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  width: 100%;
  margin: 0 0 1rem;
}
.form-pill {
  padding: .35rem .75rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  font: inherit;
  font-size: .82rem;
  font-weight: 700;
  cursor: pointer;
  transition: background .12s, border-color .12s, color .12s;
}
.form-pill:hover { border-color: var(--tan); background: var(--tan-100); }
.form-pill.is-active {
  border-color: var(--maroon);
  background: var(--maroon);
  color: #fff;
}
.form-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: .65rem;
  position: relative;
  z-index: 0;
  clear: both;
}
.form-card {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto 1fr;
  gap: .15rem .65rem;
  align-items: center;
  padding: .75rem .9rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  text-decoration: none;
  color: inherit;
  transition: border-color .12s ease, box-shadow .12s ease, background .12s ease;
}
.form-card[hidden] { display: none; }
.form-card:hover {
  border-color: var(--maroon-700);
  background: var(--tan-100);
  box-shadow: 0 2px 8px rgba(43, 14, 26, .06);
}
.form-card-tag {
  grid-column: 1;
  grid-row: 1;
  display: inline-block;
  width: fit-content;
  padding: .12rem .45rem;
  border-radius: 4px;
  background: var(--wash);
  color: var(--maroon-700);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .02em;
  text-transform: uppercase;
}
.form-card-title,
.form-card h3 {
  grid-column: 1;
  grid-row: 2;
  margin: 0;
  color: var(--maroon-900);
  font-size: .92rem;
  font-weight: 700;
  line-height: 1.3;
}
.faq-category-title {
  margin: 0.75rem 0 0.5rem;
  font-size: 1.15rem;
  color: var(--maroon-900);
}

.faq-page .faq-category {
  padding: 0;
  scroll-margin-top: 130px;
}

.faq-page .faq-category:first-child > .faq-category-title {
  margin-top: 0;
}

.faq-page .faq-category + .faq-category {
  margin-top: 0;
}

.faq-page .faq-category-title {
  margin: 0.5rem 0 0.35rem;
}

.faq-page .faq-item {
  margin-bottom: 0.5rem;
}

.faq-page .faq-item:last-child {
  margin-bottom: 0;
}
.form-card-arrow {
  grid-column: 2;
  grid-row: 1 / -1;
  align-self: center;
  color: var(--maroon-700);
  font-size: 1.1rem;
  font-weight: 700;
  transition: color .12s, transform .12s;
}
.form-card:hover .form-card-arrow,
.form-card:focus-visible .form-card-arrow {
  color: var(--maroon-900);
  transform: translateX(2px);
}
.form-empty {
  grid-column: 1 / -1;
  margin: 0;
  padding: 1.5rem;
  text-align: center;
  color: #4a4038;
  border: 1px dashed var(--line);
  border-radius: 8px;
  background: var(--wash);
}
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.faq-item {
  margin-bottom: .75rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: .75rem 1rem;
  background: #fff;
}
.faq-item summary { cursor: pointer; font-weight: 700; color: var(--maroon-900); }
.faq-page .faq-answer {
  font-size: 1rem;
  line-height: 1.65;
  color: var(--ink);
}
.faq-page .faq-answer :where(p, span, font, div, li, td) {
  font-size: inherit !important;
  font-family: inherit !important;
  line-height: inherit;
  color: inherit;
}
.faq-page .faq-answer sup,
.faq-page .faq-answer sup * {
  font-size: 0.75em !important;
}
.faq-page .faq-answer p {
  margin: 0 0 0.75rem;
}
.faq-page .faq-answer p:last-child {
  margin-bottom: 0;
}
.faq-page .faq-answer p:empty {
  display: none;
}
.directory-toolbar {
  grid-template-columns: minmax(0, 1.1fr) repeat(3, minmax(0, 1fr));
}

/* Staff directory + document center — stay within sidebar layout column */
.directory-page,
.document-center-page {
  min-width: 0;
  max-width: 100%;
  overflow-x: clip;
}

.page-tool:has(.directory-page),
.page-tool:has(.document-center-page) {
  min-width: 0;
  max-width: 100%;
}

.page-layout > .page-main:has(.directory-page),
.page-layout > .page-main:has(.document-center-page) {
  min-width: 0;
}

.directory-page .tool-toolbar :is(input, select),
.document-center-page .tool-toolbar :is(input, select) {
  min-width: 0;
  max-width: 100%;
}

.directory-page .tool-table-wrap,
.document-center-page .tool-table-wrap,
.agenda-table-wrap,
.calendar-table-wrap {
  max-width: 100%;
}

@media (min-width: 961px) {
  .directory-page .tool-table-wrap,
  .document-center-page .tool-table-wrap,
  .agenda-table-wrap,
  .calendar-table-wrap {
    overflow-x: visible;
  }

  .directory-page .tool-table,
  .document-center-page .tool-table,
  .agenda-table-wrap .agenda-table,
  .calendar-table-wrap .calendar-table {
    width: 100%;
  }

  .directory-page .tool-table :is(th, td),
  .document-center-page .tool-table :is(th, td) {
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .directory-page .tool-table :is(th, td),
  .document-center-page .tool-table :is(th, td),
  .agenda-table :is(th, td),
  .calendar-table :is(th, td) {
    white-space: normal;
  }
}

@media (max-width: 960px) {
  .directory-page .tool-table-wrap,
  .document-center-page .tool-table-wrap,
  .agenda-table-wrap,
  .calendar-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .directory-page .tool-table,
  .document-center-page .tool-table,
  .agenda-table-wrap .agenda-table,
  .calendar-table-wrap .calendar-table {
    width: max-content;
    min-width: 100%;
  }

  .directory-page .tool-table :is(th, td),
  .document-center-page .tool-table :is(th, td),
  .agenda-table :is(th, td),
  .calendar-table :is(th, td) {
    overflow-wrap: normal;
    word-break: normal;
  }

  .directory-page .tool-table th,
  .document-center-page .tool-table th,
  .agenda-table th,
  .calendar-table th {
    white-space: nowrap;
  }

  .directory-page .tool-table td,
  .document-center-page .tool-table td,
  .agenda-table td:not(.agenda-date),
  .calendar-table td {
    white-space: nowrap;
  }

  .agenda-table td.agenda-date {
    white-space: normal;
    min-width: 9rem;
  }
}

.directory-table td a {
  color: var(--maroon);
  font-weight: 700;
  text-decoration: none;
}

.directory-table td a:hover {
  color: var(--maroon-900);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.directory-person-card {
  display: grid;
  gap: 1.5rem;
  align-items: start;
  padding: 1.25rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}

@media (min-width: 720px) {
  .directory-person-card {
    grid-template-columns: minmax(180px, 220px) minmax(0, 1fr);
  }
}

.directory-person-photo {
  display: grid;
  gap: 0.75rem;
  justify-items: center;
}

.directory-person-photo img {
  display: block;
  width: 100%;
  max-width: 220px;
  height: auto;
  border-radius: 8px;
  border: 1px solid var(--line);
  object-fit: cover;
}

.directory-person-meta {
  display: grid;
  gap: 0.85rem;
  margin: 0;
}

.directory-person-meta div {
  display: grid;
  gap: 0.2rem;
}

.directory-person-meta dt {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}

.directory-person-meta dd {
  margin: 0;
  font-size: 1rem;
}

.directory-person-meta a {
  color: var(--maroon);
  font-weight: 700;
  text-decoration: none;
}

.directory-person-meta a:hover {
  text-decoration: underline;
}

.directory-category-filter select {
  width: 100%;
}

.directory-return {
  margin: 0 0 1rem;
}

.directory-return a {
  color: var(--maroon);
  font-weight: 800;
  text-decoration: none;
}

.directory-return a:hover {
  text-decoration: underline;
}

.directory-page .directory-group {
  margin: 0;
}

.directory-page .directory-group + .directory-group {
  margin-top: 0.25rem;
}

.directory-page .directory-group-title {
  margin: 0 0 0.15rem;
  padding: 0;
  font-size: 1.1rem;
  line-height: 1.2;
}

.directory-group-title a {
  color: var(--maroon-900);
  text-decoration: none;
}

.directory-group-title a:hover {
  color: var(--maroon);
  text-decoration: underline;
}

.directory-table td,
.directory-table th {
  vertical-align: top;
}

.directory-page .directory-table th,
.directory-page .directory-table td {
  padding: 0.62rem 0.85rem;
}

.directory-page .tool-table-wrap {
  margin-bottom: 0;
}

.directory-table a[href^="tel:"] {
  color: var(--maroon);
  font-weight: 700;
  text-decoration: none;
}

.directory-table a[href^="tel:"]:hover {
  color: var(--maroon-700);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.directory-profile-cell {
  white-space: normal;
}

.directory-profile-link {
  border: 0;
  background: none;
  padding: 0;
  color: var(--maroon);
  font: inherit;
  font-weight: 700;
  text-decoration: underline;
  cursor: pointer;
}

.directory-profile-link:hover {
  color: var(--maroon-900);
}

.directory-profile-empty {
  color: var(--muted);
}

.directory-profile-modal[hidden] {
  display: none;
}

.directory-profile-modal {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: grid;
  place-items: center;
  padding: 1.25rem;
}

.directory-profile-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(20, 12, 16, 0.72);
}

.directory-profile-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(100%, 28rem);
  max-height: calc(100vh - 2.5rem);
  overflow: auto;
  border-radius: 12px;
  background: #fff;
  padding: 1.25rem 1.25rem 1.5rem;
  box-shadow: 0 24px 48px rgba(20, 12, 16, 0.28);
}

.directory-profile-modal__dialog:focus {
  outline: none;
}

.directory-profile-modal__close {
  position: absolute;
  top: 0.65rem;
  right: 0.75rem;
  border: 0;
  background: transparent;
  color: var(--maroon-900);
  font-size: 1.75rem;
  line-height: 1;
  cursor: pointer;
}

.directory-profile-modal__title {
  margin: 0 2rem 0.85rem 0;
  font-size: 1.15rem;
  color: var(--maroon-900);
}

.directory-profile-modal__image-wrap {
  display: flex;
  justify-content: center;
}

.directory-profile-modal__image {
  display: block;
  width: 100%;
  max-width: 18rem;
  height: auto;
  border-radius: 8px;
  border: 1px solid var(--line);
}

body.directory-modal-open {
  overflow: hidden;
}

.directory-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 1rem; }
.directory-card { padding: 1rem; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.directory-title { color: var(--maroon); font-weight: 700; }
.listing-card, .jobs-list article { padding: 1rem; border: 1px solid var(--line); border-radius: 8px; background: #fff; margin-bottom: 1rem; }
.cms-block-form-module .embedded-form-panel {
  margin-top: 1.5rem;
}

.cms-form { display: grid; gap: .85rem; max-width: var(--civic-form-max-width, 800px); margin-inline: auto; }
.cms-form label { display: grid; gap: .35rem; font-weight: 700; font-size: .88rem; }
.cms-form .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.cms-form .btn.primary, .button.primary {
  display: inline-block; width: fit-content; padding: .65rem 1.25rem;
  background: var(--maroon); color: #fff; border: none; border-radius: 6px;
  font-weight: 700; text-decoration: none; cursor: pointer;
}
.cms-form .success { color: var(--ok, #1f7a4d); }
.cms-form .error { color: var(--danger, #b42318); }

/* Civic form pages */
:root {
  --civic-form-max-width: min(56rem, 100%);
}

.civic-form-shell,
.civic-form-page,
.embedded-form-panel {
  width: 100%;
  max-width: var(--civic-form-max-width);
  margin-inline: auto;
}

.page-layout.page-layout--full.page-layout--form {
  max-width: var(--civic-form-max-width);
  width: 100%;
  margin-inline: auto;
  padding-inline: 0;
}

.page-layout--form > .civic-form-page {
  max-width: none;
  width: 100%;
}

.civic-form-panel {
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 2px 16px rgba(43, 14, 26, .06);
  overflow: hidden;
}
.form-hero-dept {
  margin: .35rem 0 0;
  color: rgba(255, 255, 255, .85);
  font-size: .9rem;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
}
.civic-form { display: block; max-width: none; }
.civic-form-note {
  margin: 0;
  padding: .65rem 1.5rem;
  background: var(--wash);
  border-bottom: 1px solid var(--line);
  color: var(--muted);
  font-size: .82rem;
}
.civic-form-fields {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: .85rem 1rem;
  padding: 1.25rem 1.5rem 1rem;
}
.form-field--full { grid-column: 1 / -1; }
.form-field--three-quarters { grid-column: span 9; }
.form-field--two-thirds { grid-column: span 8; }
.form-field--half { grid-column: span 6; }
.form-field--third { grid-column: span 4; }
.form-field--quarter { grid-column: span 3; }
.form-section-divider {
  border: 0;
  border-top: 1px solid var(--line);
  margin: .75rem 0 .35rem;
  height: 0;
  width: 100%;
  grid-column: 1 / -1;
}
.form-field {
  display: flex;
  flex-direction: column;
  gap: .35rem;
  min-width: 0;
}
.form-field > label,
.civic-form fieldset > legend {
  color: var(--maroon-900);
  font-size: .84rem;
  font-weight: 700;
  line-height: 1.3;
}
.civic-form fieldset.form-field {
  margin: 0;
  padding: 0;
  border: none;
}
.civic-form fieldset > legend {
  margin-bottom: .35rem;
  padding: 0;
}
.civic-form input[type="text"],
.civic-form input[type="email"],
.civic-form input[type="tel"],
.civic-form input[type="date"],
.civic-form input[type="datetime-local"],
.civic-form input[type="file"],
.civic-form select,
.civic-form textarea {
  width: 100%;
  padding: .6rem .75rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  font: inherit;
  font-size: .92rem;
  background: #fff;
  color: var(--ink);
  transition: border-color .12s, box-shadow .12s;
}
.civic-form .form-field.is-invalid input,
.civic-form .form-field.is-invalid select,
.civic-form .form-field.is-invalid textarea,
.civic-form input.is-invalid,
.civic-form select.is-invalid,
.civic-form textarea.is-invalid {
  border-color: #b42318;
  box-shadow: 0 0 0 1px rgba(180, 35, 24, .15);
}
.civic-form fieldset.form-field.is-invalid .radio-card,
.civic-form fieldset.form-field.is-invalid .checkbox-card {
  border-color: #b42318;
  background: #fff5f5;
}
.civic-form [data-field-error]:not([hidden]) {
  color: #b42318;
  font-size: .82rem;
  font-weight: 600;
  margin: 0;
}
.civic-form input:hover,
.civic-form select:hover,
.civic-form textarea:hover { border-color: #c5cdd4; }
.civic-form input:focus,
.civic-form select:focus,
.civic-form textarea:focus {
  border-color: var(--maroon-700);
  box-shadow: 0 0 0 3px rgba(122, 31, 46, .12);
  outline: none;
}
.civic-form textarea { resize: vertical; min-height: 5rem; }
.civic-form select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2359636e' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right .75rem center;
  padding-right: 2rem;
}
.civic-form .req { color: var(--maroon); }
.civic-form .field-tip {
  margin: 0;
  font-size: .78rem;
  color: var(--muted);
  line-height: 1.4;
}
.form-section-heading {
  margin: 0;
  padding: .75rem 1rem;
  background: var(--tan-100);
  border-left: 3px solid var(--maroon);
  border-radius: 0 8px 8px 0;
  color: var(--maroon-900);
  font-size: .88rem;
  font-weight: 600;
  line-height: 1.55;
}
.form-block-subheading {
  margin: 0;
  padding: 0;
  color: var(--maroon-900);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.45;
}
.form-block-subheading :is(p, h1, h2, h3, h4, h5, h6) {
  margin: 0;
  font: inherit;
  color: inherit;
}
.form-block-paragraph {
  margin: 0;
  color: var(--ink);
  font-size: .9rem;
  line-height: 1.6;
}
.form-block-paragraph :is(p, ul, ol) {
  margin: 0 0 .65rem;
}
.form-block-paragraph :is(p, ul, ol):last-child {
  margin-bottom: 0;
}
.form-section-heading :is(p, h1, h2, h3, h4, h5, h6) {
  margin: 0;
  font: inherit;
  color: inherit;
}
.form-block--heading:not(.form-field--full) .form-section-heading {
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  font-size: .84rem;
  font-weight: 700;
  line-height: 1.3;
}
.form-block--heading:not(.form-field--full) .form-heading-tip,
.form-block--heading:not(.form-field--full) .field-tip {
  margin-top: .35rem;
}
.form-field--quarter .radio-group,
.form-field--third .radio-group {
  grid-template-columns: 1fr;
  gap: .4rem;
}
.form-field--quarter .radio-card,
.form-field--third .radio-card {
  padding: .45rem .6rem;
  font-size: .82rem;
}
.form-block--paragraph .form-block-paragraph {
  color: var(--muted);
}
.form-definition-list-wrap {
  display: grid;
  gap: .75rem;
}
.form-definition-list {
  margin: 0;
  padding: 1rem 1.1rem;
  background: #fff;
  border: 1px solid var(--line, #e5e7eb);
  border-radius: 8px;
  display: grid;
  gap: .85rem;
}
.form-definition-list__item {
  margin: 0;
  display: grid;
  gap: .2rem;
}
.form-definition-list dt {
  margin: 0;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--maroon-900, #890024);
  line-height: 1.35;
}
.form-definition-list dd {
  margin: 0;
  font-size: .82rem;
  line-height: 1.55;
  color: var(--ink, #311a16);
}
.form-intro-text {
  justify-content: center;
}
.form-intro-media {
  display: flex;
  align-items: center;
  justify-content: center;
}
.form-display-image {
  width: 100%;
  max-width: 280px;
  height: auto;
  border-radius: 8px;
}
.file-input-wrap { display: grid; gap: .3rem; }
.file-input-wrap input[type="file"] {
  padding: .5rem;
  font-size: .85rem;
  cursor: pointer;
}
.file-input-hint { font-size: .75rem; color: var(--muted); }
.radio-group {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .55rem 1rem;
}
.radio-card {
  display: flex;
  align-items: center;
  gap: .6rem;
  min-width: 0;
  padding: .55rem .75rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  font-weight: 500;
  font-size: .9rem;
  cursor: pointer;
  transition: border-color .12s, background .12s;
}
.radio-card:has(input:checked) {
  border-color: var(--maroon);
  background: var(--tan-100);
}
.radio-card input { width: auto; margin: 0; accent-color: var(--maroon); }
.checkbox-group {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .55rem 1.25rem;
}
.checkbox-card {
  display: flex;
  align-items: flex-start;
  gap: .55rem;
  min-width: 0;
  font-size: .9rem;
  line-height: 1.35;
  color: var(--ink);
  cursor: pointer;
}
.checkbox-card input {
  width: auto;
  margin: .15rem 0 0;
  accent-color: var(--maroon);
  flex: 0 0 auto;
}
.form-email-copy {
  display: grid;
  gap: .75rem;
  padding-top: .25rem;
}
.form-email-copy-checkbox .form-email-copy-label {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  font-size: .92rem;
  font-weight: 600;
  color: var(--ink);
  cursor: pointer;
}
.form-email-copy-checkbox input {
  width: auto;
  margin: 0;
  accent-color: var(--maroon);
}
.form-email-copy-address label {
  display: block;
  margin-bottom: .35rem;
  font-size: .88rem;
  font-weight: 700;
  color: var(--ink);
}
.civic-form-recaptcha-note {
  flex: 1 1 100%;
  margin: 0;
  font-size: .78rem;
  color: var(--muted);
}
.civic-form-recaptcha-note a {
  color: var(--maroon);
  text-decoration: underline;
}
.civic-form-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem 1rem;
  padding: 1rem 1.5rem 1.35rem;
  border-top: 1px solid var(--line);
  background: var(--wash);
}
.civic-form-submit {
  display: inline-flex;
  align-items: center;
  padding: .7rem 1.75rem;
  border: none;
  border-radius: 8px;
  background: var(--maroon);
  color: #fff;
  font: inherit;
  font-size: .95rem;
  font-weight: 700;
  cursor: pointer;
  transition: background .12s, transform .12s;
}
.civic-form-submit:hover { background: var(--maroon-700); }
.civic-form-submit:active { transform: scale(.98); }
.civic-form-submit:disabled { opacity: .6; cursor: not-allowed; }
.civic-form-footer-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem;
}
.civic-form-submit-print {
  background: #fff;
  color: var(--maroon);
  border: 2px solid var(--maroon);
}
.civic-form-submit-print:hover {
  background: var(--tan-100);
  color: var(--maroon-700);
  border-color: var(--maroon-700);
}

@media print {
  body > header,
  body > footer,
  .skip-link,
  .page-hero,
  .form-back,
  .civic-form-footer,
  .civic-form-note,
  .form-toast-stack,
  .primary-nav-toggle,
  .topbar {
    display: none !important;
  }

  .civic-form-panel {
    border: none !important;
    box-shadow: none !important;
  }

  .page-layout--form {
    max-width: none !important;
    padding: 0 !important;
  }

  .civic-form-page {
    padding: 0 !important;
  }
}

/* Wizard forms — wider layout, themed step navigation */
.civic-form-page--wizard,
.page-layout.page-layout--form:has(.civic-form-page--wizard) {
  --civic-form-max-width: min(58rem, 100%);
  max-width: var(--civic-form-max-width);
}

.civic-form--wizard .civic-form-note {
  background: linear-gradient(90deg, var(--tan-100) 0%, var(--wash) 100%);
  border-bottom-color: rgba(74, 24, 43, .12);
  color: var(--maroon-900);
}

.civic-form-wizard-layout {
  display: grid;
  grid-template-columns: minmax(12.5rem, 14.5rem) minmax(0, 1fr);
  gap: 0;
  align-items: stretch;
  padding: 1.35rem 1.5rem 1.5rem;
}

[data-wizard-panel][hidden],
.civic-form-wizard-panel:not(.is-active),
.civic-form-footer[data-wizard-footer][hidden] {
  display: none !important;
}

.civic-form-wizard-nav {
  margin: 0;
  padding: 1rem 1.1rem 1.15rem;
  border: 1px solid var(--line);
  border-right: none;
  border-radius: 10px 0 0 10px;
  border-top: 4px solid var(--maroon);
  background: linear-gradient(180deg, var(--wash) 0%, #fff 72%);
  box-shadow: inset -1px 0 0 rgba(221, 227, 232, .65);
}

.civic-form-wizard-nav-title {
  margin: 0 0 .85rem;
  color: var(--maroon-900);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.civic-form-wizard-nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: .35rem;
}

.civic-form-wizard-nav-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: .65rem;
  padding: .5rem .55rem;
  border-radius: 8px;
  transition: background .15s ease, box-shadow .15s ease;
}

.civic-form-wizard-nav-item.is-current {
  background: var(--tan-100);
  box-shadow: inset 3px 0 0 var(--maroon);
}

.civic-form-wizard-nav-item.is-complete:not(.is-current) {
  background: rgba(255, 255, 255, .72);
}

.civic-form-wizard-step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.7rem;
  height: 1.7rem;
  border-radius: 999px;
  background: #fff;
  border: 1px solid var(--line);
  color: var(--muted);
  font-size: .78rem;
  font-weight: 800;
  line-height: 1;
  flex-shrink: 0;
}

.civic-form-wizard-nav-item.is-current .civic-form-wizard-step-num {
  background: linear-gradient(145deg, var(--maroon) 0%, var(--maroon-900) 100%);
  border-color: var(--maroon);
  color: #fff;
  box-shadow: 0 2px 8px rgba(74, 24, 43, .22);
}

.civic-form-wizard-nav-item.is-complete:not(.is-current) .civic-form-wizard-step-num {
  background: var(--tan-100);
  border-color: var(--tan);
  color: var(--maroon);
}

.civic-form-wizard-step-label {
  min-width: 0;
}

.civic-form-wizard-step-button {
  border: none;
  background: none;
  padding: 0;
  font: inherit;
  font-size: .88rem;
  font-weight: 600;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
  text-decoration: none;
  line-height: 1.35;
}

.civic-form-wizard-nav-item.is-current .civic-form-wizard-step-button {
  color: var(--maroon-900);
  font-weight: 800;
}

.civic-form-wizard-step-button[aria-disabled="true"] {
  color: #9aa3ab;
  cursor: default;
}

.civic-form-wizard-nav-item.is-complete:not(.is-current) .civic-form-wizard-step-button {
  color: var(--maroon-700);
}

.civic-form-wizard {
  min-width: 0;
  border: 1px solid var(--line);
  border-left: none;
  border-radius: 0 10px 10px 0;
  background: #fff;
}

.civic-form-wizard-panel {
  padding: 1.15rem 1.35rem 1.35rem;
}

.civic-form-wizard-panel-title {
  margin: 0 0 1.1rem;
  padding-bottom: .7rem;
  border-bottom: 2px solid var(--tan);
  color: var(--maroon);
  font-size: clamp(1.05rem, 2vw, 1.3rem);
  font-weight: 800;
  letter-spacing: .05em;
  line-height: 1.25;
  text-transform: uppercase;
}

.civic-form-fields--wizard-step {
  padding: 0;
}

.civic-form-wizard-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .65rem 1rem;
  margin-top: 1.15rem;
  padding: .95rem 1rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: linear-gradient(180deg, var(--wash) 0%, #fff 100%);
}

.civic-form-wizard-continue {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .68rem 1.65rem;
  border: none;
  border-radius: 8px;
  background: linear-gradient(145deg, var(--maroon) 0%, var(--maroon-900) 100%);
  color: #fff;
  font: inherit;
  font-size: .92rem;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 2px 10px rgba(74, 24, 43, .18);
  transition: background .12s, transform .12s, box-shadow .12s;
}

.civic-form-wizard-continue:hover {
  background: linear-gradient(145deg, var(--maroon-700) 0%, var(--maroon) 100%);
}

.civic-form-wizard-continue:active {
  transform: scale(.98);
}

.civic-form-wizard-go-back {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  color: var(--muted);
  font-size: .92rem;
}

.civic-form-wizard-go-back-sep {
  color: var(--line);
  font-weight: 400;
}

.civic-form-wizard-back {
  border: none;
  background: none;
  padding: 0;
  font: inherit;
  font-size: .92rem;
  font-weight: 700;
  color: var(--maroon);
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
}

.civic-form-wizard-back:hover {
  color: var(--maroon-700);
}

@media (max-width: 48rem) {
  .civic-form-wizard-layout {
    grid-template-columns: 1fr;
    gap: 1rem;
    padding: 1rem;
  }

  .civic-form-wizard-nav {
    border-right: 1px solid var(--line);
    border-radius: 10px;
    box-shadow: none;
  }

  .civic-form-wizard {
    border-left: 1px solid var(--line);
    border-radius: 10px;
  }

  .civic-form-wizard-panel {
    padding: 1rem;
  }
}
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.form-msg { margin: 0; font-size: .9rem; font-weight: 600; }
.form-msg.success { color: #1f7a4d; }
.form-msg.error { color: #b42318; }
.civic-form-page .form-back {
  margin-top: 1rem;
  font-size: .9rem;
  font-weight: 700;
}

.civic-form-page .form-errors,
.civic-form-page .form-success {
  margin: 0 0 1rem;
  padding: .85rem 1rem;
  border-radius: 8px;
  font-size: .92rem;
}

.civic-form-page .form-errors {
  color: #7f1d1d;
  background: #fef2f2;
  border: 1px solid #fecaca;
}

.civic-form-page .form-success {
  color: #14532d;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
}

.civic-form-page .form-error {
  color: #b42318;
}

.civic-form-page .form-link a {
  color: var(--maroon);
  font-weight: 700;
}
.civic-form-page .form-back a { color: var(--maroon); text-decoration: none; }
.civic-form-page .form-back a:hover { text-decoration: underline; }

@media (max-width: 1100px) {
  .directory-toolbar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 980px) {
  .page-layout,
  .page-layout--with-rail,
  .page-layout--no-sidebar.page-layout--with-rail,
  .page-layout--police-sidebar,
  .page-layout--police-sidebar.page-layout--with-rail {
    grid-template-columns: 1fr;
  }

  .page-layout--police-sidebar.page-layout--with-rail > .page-layout__sidebar,
  .page-layout--police-sidebar.page-layout--with-rail > .page-main,
  .page-layout--police-sidebar.page-layout--with-rail > .page-aside {
    grid-column: auto;
    grid-row: auto;
  }

  .page-sidebar,
  .page-aside {
    position: static;
  }

  .hub-grid,
  .link-grid,
  .contact-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 680px) {
  .hub-grid,
  .link-grid,
  .contact-grid {
    grid-template-columns: 1fr;
  }

  .cms-block.content-body:not(.content-body--lead):has(> .content-body--lead, > .page-documents, > .cta-inline) {
    grid-template-columns: 1fr;
  }

  .cms-block.content-body:not(.content-body--lead) > .page-documents {
    grid-column: 1 / -1;
  }

  .district-court-documents {
    grid-template-columns: 1fr;
  }

  .page-hero {
    padding: 2rem 0 1.5rem;
  }

  .page-documents__link {
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-rows: auto;
    column-gap: 0.85rem;
    row-gap: 0;
  }

  .page-documents__icon {
    grid-row: auto;
  }

  .page-documents__text {
    grid-column: 2;
    grid-row: 1;
  }

  .page-documents__action {
    display: none;
  }

  .agenda-toolbar {
    grid-template-columns: 1fr;
  }

  .calendar-toolbar {
    grid-template-columns: 1fr;
  }

  .tool-toolbar,
  .tool-toolbar.directory-toolbar {
    grid-template-columns: 1fr;
  }

  .form-card-grid {
    grid-template-columns: 1fr;
  }

  .civic-form-fields {
    grid-template-columns: 1fr;
    padding: 1rem;
  }
  .form-field--half,
  .form-field--third,
  .form-field--quarter,
  .form-field--two-thirds,
  .form-field--three-quarters {
    grid-column: 1 / -1;
  }
  .radio-group,
  .checkbox-group {
    grid-template-columns: 1fr;
  }
  .civic-form-footer,
  .civic-form-note {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .cms-form .grid-2 {
    grid-template-columns: 1fr;
  }
}

/* Site search */
.search-page {
  display: grid;
  gap: 1.25rem;
}

.search-group + .search-group {
  margin-top: 0.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--line);
}

.search-group-title {
  margin: 0 0 0.85rem;
  color: var(--maroon-900);
  font-size: 0.92rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.search-group-count {
  color: var(--muted);
  font-weight: 700;
}

.search-form-large label {
  display: block;
  font-weight: 700;
  margin-bottom: .5rem;
}

.search-form-row {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}

.search-form-row input[type="search"] {
  flex: 1 1 240px;
  min-width: 0;
  padding: .75rem 1rem;
  border: 1px solid #d8cfc0;
  border-radius: .5rem;
  font: inherit;
}

.search-results {
  display: grid;
  gap: 1rem;
}

.search-result {
  padding: 1rem 1.1rem;
  border: 1px solid #e8dfd1;
  border-radius: .65rem;
  background: #fff;
}

.search-result-type {
  margin: 0 0 .35rem;
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--maroon);
}

.search-result h3 {
  margin: 0 0 .35rem;
  font-size: 1.1rem;
}

.search-result p {
  margin: 0;
  color: #4a4038;
}

.search-empty {
  color: #6b6158;
}

.footer-social {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin-top: 1rem;
}

.social-link {
  display: inline-flex;
  align-items: center;
  padding: .35rem .75rem;
  border: 1px solid rgba(255, 255, 255, .35);
  border-radius: 999px;
  background: rgba(255, 255, 255, .12);
  color: #fff;
  font-size: .85rem;
  font-weight: 700;
  text-decoration: none;
  transition:
    color .2s ease,
    background-color .2s ease,
    border-color .2s ease,
    transform .2s ease,
    box-shadow .2s ease;
}

.social-link:hover,
.social-link:focus-visible {
  color: var(--maroon-900);
  background: var(--tan);
  border-color: var(--tan);
  transform: translateY(-2px);
  box-shadow: 0 8px 18px rgba(43, 14, 26, .22);
  outline: none;
}

/* Custom 404 page */
.page-hero--compact {
  padding: 1.25rem 0 0.5rem;
  background: linear-gradient(180deg, rgba(91, 20, 36, 0.06) 0%, transparent 100%);
}

.error-404 {
  max-width: 42rem;
  margin: 2rem auto 4rem;
  padding: 2.5rem 2rem;
  border-radius: 1rem;
  background: #fff;
  border: 1px solid rgba(91, 20, 36, 0.12);
  box-shadow: 0 18px 48px rgba(30, 20, 20, 0.08);
}

.error-404__code {
  margin: 0 0 0.5rem;
  color: var(--maroon-900);
  font-size: clamp(3rem, 10vw, 4.5rem);
  font-weight: 900;
  letter-spacing: -0.06em;
  line-height: 1;
  opacity: 0.18;
}

.error-404__title {
  margin: 0 0 1rem;
  color: var(--maroon-900);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 800;
  letter-spacing: -0.02em;
}

.error-404__message {
  margin: 0 0 1.25rem;
  color: var(--text-muted, #4a4a4a);
  font-size: 1.05rem;
  line-height: 1.6;
}

.error-404__url {
  margin: 0 0 2rem;
  padding: 1rem 1.15rem;
  border-radius: 0.65rem;
  background: var(--tan-50, #f8f4ef);
  border-left: 4px solid var(--maroon-900);
  font-size: 0.95rem;
  line-height: 1.5;
  word-break: break-word;
}

.error-404__url-label {
  display: block;
  margin-bottom: 0.35rem;
  color: var(--text-muted, #5c5c5c);
}

.error-404__url strong {
  color: #1a1a1a;
  font-weight: 700;
}

.error-404__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

@media (max-width: 640px) {
  .error-404 {
    margin: 1.25rem 0 3rem;
    padding: 1.75rem 1.25rem;
  }

  .error-404__actions .button {
    width: 100%;
    justify-content: center;
  }
}

.content-slider {
  margin: 0 0 1.75rem;
}

.content-slider__viewport {
  overflow: hidden;
  border-radius: 0.5rem;
  background: #f4f4f4;
}

.content-slider__track {
  position: relative;
}

.content-slider__slide {
  display: none;
  margin: 0;
}

.content-slider__slide.is-active {
  display: block;
}

.content-slider__slide img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 28rem;
  object-fit: cover;
}

.content-slider__controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  margin-top: 0.75rem;
}

.content-slider__btn {
  border: 1px solid #c8c8c8;
  background: #fff;
  color: #1a1a1a;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 999px;
  cursor: pointer;
  font-size: 1.25rem;
  line-height: 1;
}

.content-slider__dots {
  display: flex;
  gap: 0.35rem;
}

.content-slider__dot {
  width: 0.65rem;
  height: 0.65rem;
  border-radius: 999px;
  border: 0;
  background: #c8c8c8;
  cursor: pointer;
}

.content-slider__dot.is-active {
  background: var(--brand-primary, #74212d);
}

.content-slider--compact {
  max-width: 11rem;
}

.content-slider--compact .content-slider__viewport {
  background: transparent;
}

.content-slider--compact .content-slider__slide img {
  width: auto;
  max-width: 100%;
  max-height: none;
  margin: 0 auto;
  object-fit: contain;
}

.business-directory-intro {
  margin-bottom: 1rem;
}

.business-directory-page {
  min-width: 0;
  max-width: 100%;
}

.business-directory-page .subhead1 {
  margin: 0 0 0.75rem;
  color: var(--maroon-900);
}

.business-directory-subtitle {
  margin: 0 0 1rem;
  color: #4a4038;
  font-size: 0.95rem;
}

.business-directory-categories {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0 0 1rem;
}

.business-directory-categories__link {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.75rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--maroon-900);
  font-size: 0.82rem;
  font-weight: 700;
  text-decoration: none;
}

.business-directory-categories__link:hover,
.business-directory-categories__link:focus-visible {
  border-color: var(--maroon-700);
  background: var(--tan-100);
  outline: none;
}

.business-directory-categories__link.is-active {
  border-color: var(--maroon);
  background: var(--maroon);
  color: #fff;
}

.business-directory-alpha {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.15rem 0.35rem;
  margin: 1rem 0 1.25rem;
}

.business-directory-alpha__link {
  color: var(--brand-primary, #74212d);
  text-decoration: underline;
  font-size: 0.92rem;
}

.business-directory-alpha__link.is-active {
  color: var(--maroon-900);
  font-weight: 700;
  text-decoration-thickness: 2px;
}

.business-directory-alpha__sep {
  color: #5c534c;
}

.business-directory-listings--grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1rem;
}

.business-directory-listings--list,
.business-directory-listings--compact {
  display: grid;
  gap: 0.85rem;
}

.business-directory-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}

.business-directory-card.is-featured {
  border-color: var(--tan);
  box-shadow: 0 2px 10px rgb(43 14 26 / 8%);
}

.business-directory-card__image-wrap {
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--wash);
}

.business-directory-card__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.business-directory-card__body {
  display: grid;
  gap: 0.5rem;
  padding: 0.9rem 1rem 1rem;
}

.business-directory-card__title {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.3;
}

.business-directory-card__title a {
  color: var(--maroon-900);
  text-decoration: none;
  font-weight: 800;
}

.business-directory-card__title a:hover,
.business-directory-card__title a:focus-visible {
  color: var(--maroon);
  text-decoration: underline;
  outline: none;
}

.business-directory-card__archived {
  margin-left: 0.35rem;
  color: #7a2e12;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.business-directory-card__categories,
.business-directory-card__excerpt {
  margin: 0;
  color: #4a4038;
  font-size: 0.92rem;
  line-height: 1.5;
}

.business-directory-card__meta {
  margin: 0;
  padding: 0;
  list-style: none;
  color: #2d2520;
  font-size: 0.9rem;
  line-height: 1.45;
}

.business-directory-card__meta a {
  color: var(--maroon-900);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.business-directory-card__meta a:hover,
.business-directory-card__meta a:focus-visible {
  color: var(--maroon);
  outline: none;
}

.business-directory-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.25rem;
}

.business-directory-card__actions .button:not(.primary) {
  color: var(--maroon-900);
  border: 1px solid var(--line);
  background: #fff;
}

.business-directory-card__actions .button:not(.primary):hover,
.business-directory-card__actions .button:not(.primary):focus-visible {
  border-color: var(--maroon-700);
  background: var(--tan-100);
  outline: none;
}

.business-directory-empty {
  margin: 0;
  padding: 1.25rem;
  border: 1px dashed var(--line);
  border-radius: 8px;
  background: var(--wash);
  color: #4a4038;
  text-align: center;
}

.business-directory-search input[type="search"]::placeholder {
  color: #4a4038;
  opacity: 1;
}

.business-directory-page .tool-count {
  color: #4a4038;
}

.business-directory-accordion {
  margin-top: 1.25rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--line);
}

.business-directory-accordion__item {
  margin-bottom: 0;
}

.business-directory-accordion__body {
  padding-top: 0.5rem;
}

.request-tracker-categories {
  margin-bottom: 2rem;
}

.request-tracker-category {
  border: 1px solid #e2e2e2;
  border-radius: 0.5rem;
  margin-bottom: 1rem;
  overflow: hidden;
}

.request-tracker-category__header {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.75rem 1rem;
  background: #f7f7f7;
  border-bottom: 1px solid #e2e2e2;
}

.request-tracker-category__header h3 {
  margin: 0;
  font-size: 1rem;
}

.request-tracker-category__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.request-tracker-category__list li + li {
  border-top: 1px solid #eee;
}

.request-tracker-category__list a {
  display: block;
  padding: 0.75rem 1rem;
  color: var(--brand-primary, #74212d);
  text-decoration: underline;
}

/* Alert Center */
.alert-center-page {
  margin-top: 0;
}

.alert-center-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
  gap: 1.75rem;
  align-items: start;
}

.alert-center-header p {
  margin: 0 0 1rem;
}

.alert-center-header a {
  color: var(--maroon, #74212d);
}

.alert-center-list p {
  margin: 0;
}

.alert-center-item {
  padding: 1rem 0;
  border-bottom: 1px solid var(--line, #e5e1dc);
}

.alert-center-item:first-child {
  padding-top: 0;
}

.alert-center-item__title {
  margin: 0.35rem 0 0.25rem;
  font-size: 1.15rem;
}

.alert-center-item__date {
  margin: 0 0 0.5rem;
  font-size: 0.9rem;
  color: var(--muted, #5f5a55);
}

.alert-center-sidebar {
  display: grid;
  gap: 1.25rem;
}

.alert-center-module {
  padding: 1rem 1.1rem;
  background: #fff;
  border: 1px solid var(--line, #e5e1dc);
  border-radius: 8px;
}

.alert-center-module h3 {
  margin: 0 0 0.85rem;
  font-size: 1rem;
  color: var(--maroon-900, #4a151d);
}

.alert-center-search-form {
  display: grid;
  gap: 0.65rem;
}

.alert-center-search-form label {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--maroon-900, #4a151d);
}

.alert-center-search-input {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.5rem;
}

.alert-center-search-input input,
.alert-center-search-form select {
  width: 100%;
  padding: 0.6rem 0.7rem;
  border: 1px solid var(--line, #e5e1dc);
  border-radius: 6px;
  font: inherit;
  background: #fff;
}

.alert-center-search-button {
  padding: 0.6rem 0.9rem;
  border: 1px solid var(--maroon, #74212d);
  border-radius: 6px;
  background: var(--maroon, #74212d);
  color: #fff;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.alert-center-tools-list,
.alert-center-categories-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.alert-center-tools-list li + li,
.alert-center-categories-list li + li {
  margin-top: 0.45rem;
}

.alert-center-tools-list a,
.alert-center-categories-list a {
  color: var(--maroon, #74212d);
  text-decoration: underline;
}

.alert-center-categories-list .is-active a {
  font-weight: 700;
}

@media (max-width: 900px) {
  .alert-center-layout {
    grid-template-columns: 1fr;
  }

  .alert-center-sidebar {
    order: 2;
  }
}

.news-search {
  margin-bottom: 1.25rem;
}

/* Thunder Bayou Golf — feature layout */
.page-layout--golf-course .page-hero {
  background:
    linear-gradient(135deg, rgba(18, 52, 34, 0.96) 0%, rgba(43, 14, 26, 0.92) 58%, rgba(74, 24, 43, 0.94) 100%),
    radial-gradient(circle at 85% 20%, rgba(217, 189, 132, 0.18), transparent 42%);
}

.page-layout--golf-course .page-hero .intro {
  max-width: 42rem;
}

.page-layout--feature .page-main {
  gap: 0;
}

.golf-feature {
  display: grid;
  gap: 2.5rem;
}

.golf-eyebrow {
  margin: 0 0 0.45rem;
  color: #2f6b45;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.golf-stats {
  margin-top: -0.5rem;
}

.golf-stats__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.85rem;
}

.golf-stat {
  padding: 1.1rem 1rem;
  border: 1px solid rgba(47, 107, 69, 0.14);
  border-radius: 14px;
  background: linear-gradient(160deg, #fff 0%, #f4faf6 100%);
  box-shadow: 0 10px 24px rgba(24, 56, 38, 0.06);
  text-align: center;
}

.golf-stat strong {
  display: block;
  color: var(--maroon-900);
  font-size: clamp(1.5rem, 3vw, 2rem);
  line-height: 1;
}

.golf-stat span {
  display: block;
  margin-top: 0.35rem;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.golf-intro {
  display: grid;
  gap: 1.35rem;
  padding: 1.6rem;
  border: 1px solid var(--line);
  border-radius: 18px;
  background:
    linear-gradient(135deg, rgba(47, 107, 69, 0.08) 0%, rgba(217, 189, 132, 0.12) 100%),
    #fff;
}

.golf-intro__title {
  margin: 0 0 0.75rem;
  color: var(--maroon-900);
  font-size: clamp(1.45rem, 2.8vw, 1.95rem);
  line-height: 1.15;
}

.golf-intro__copy p:last-child {
  margin-bottom: 0;
}

.golf-intro__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.golf-intro__actions .button.secondary {
  color: var(--maroon);
  background: #fff;
  border-color: var(--maroon);
}

.golf-intro__actions .button.secondary:hover,
.golf-intro__actions .button.secondary:focus-visible {
  color: #fff;
  background: var(--maroon);
  border-color: var(--maroon);
}

.golf-section {
  display: grid;
  gap: 1.35rem;
}

.golf-section__head h2 {
  margin: 0 0 0.45rem;
  color: var(--maroon-900);
  font-size: clamp(1.35rem, 2.5vw, 1.75rem);
}

.golf-section__head p {
  margin: 0;
  color: var(--muted);
}

.golf-amenities {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.golf-amenity-card {
  padding: 1.15rem 1.1rem 1.2rem;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 8px 20px rgba(24, 56, 38, 0.05);
}

.golf-amenity-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.2rem;
  height: 2.2rem;
  margin-bottom: 0.7rem;
  border-radius: 999px;
  background: rgba(47, 107, 69, 0.12);
  color: #2f6b45;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
}

.golf-amenity-card h3 {
  margin: 0 0 0.35rem;
  color: var(--maroon-900);
  font-size: 1.05rem;
}

.golf-amenity-card p {
  margin: 0;
  color: var(--ink);
  font-size: 0.95rem;
  line-height: 1.55;
}

.golf-section--pricing {
  padding: 1.5rem;
  border-radius: 18px;
  background: linear-gradient(180deg, #f8f6f2 0%, #fff 100%);
  border: 1px solid var(--line);
}

.golf-pricing {
  display: grid;
  gap: 1.5rem;
}

.golf-pricing__group h3 {
  margin: 0 0 0.85rem;
  color: var(--maroon);
  font-size: 0.92rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.golf-price-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.8rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.golf-price-cards--compact {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.golf-price-card {
  display: grid;
  gap: 0.2rem;
  padding: 1rem 0.95rem;
  border: 1px solid rgba(74, 24, 43, 0.1);
  border-radius: 14px;
  background: #fff;
}

.golf-price-card--featured {
  border-color: rgba(47, 107, 69, 0.28);
  background: linear-gradient(160deg, #f4faf6 0%, #fff 100%);
  box-shadow: inset 0 0 0 1px rgba(47, 107, 69, 0.08);
}

.golf-price-card--accent {
  border-color: rgba(217, 189, 132, 0.65);
  background: linear-gradient(160deg, #fff9ef 0%, #fff 100%);
}

.golf-price-card__label {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.35;
}

.golf-price-card__price {
  color: var(--maroon-900);
  font-size: 1.65rem;
  line-height: 1;
}

.golf-price-card__note {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 600;
}

.golf-range-buckets {
  margin-top: 0.85rem;
  padding-top: 0.95rem;
  border-top: 1px dashed rgba(74, 24, 43, 0.16);
}

.golf-range-buckets__title {
  margin: 0 0 0.65rem;
  color: var(--maroon);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.golf-range-buckets ul {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.55rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.golf-range-buckets li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.65rem 0.75rem;
  border-radius: 10px;
  background: #fff;
  border: 1px solid var(--line);
  font-size: 0.88rem;
}

.golf-range-buckets strong {
  color: var(--maroon-900);
}

.golf-highlights {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.9rem;
}

.golf-highlight {
  padding: 1.2rem 1.1rem 1.25rem;
  border-radius: 16px;
  background: var(--maroon-900);
  color: #f7f2ea;
}

.golf-highlight h3 {
  margin: 0 0 0.55rem;
  color: var(--tan);
  font-size: 1.05rem;
}

.golf-highlight p {
  margin: 0;
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.94rem;
  line-height: 1.6;
}

@media (max-width: 960px) {
  .golf-stats__grid,
  .golf-price-cards,
  .golf-price-cards--compact,
  .golf-highlights {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .golf-stats__grid,
  .golf-amenities,
  .golf-price-cards,
  .golf-price-cards--compact,
  .golf-highlights,
  .golf-range-buckets ul {
    grid-template-columns: 1fr;
  }

  .golf-intro__actions .button {
    width: 100%;
    justify-content: center;
  }
}

/* Public Safety hub landing */
.ps-hub-layout {
  display: block;
  max-width: none;
  padding: 0;
  margin: 0;
}

.ps-hub-layout .page-main {
  max-width: none;
  padding: 0;
}

.ps-hub {
  --ps-hub-radius: 16px;
  --ps-hub-shadow: 0 4px 24px rgba(43, 14, 26, .07);
  --ps-hub-shadow-hover: 0 16px 40px rgba(43, 14, 26, .12);
  position: relative;
  z-index: 0;
  isolation: isolate;
}

.ps-hub-hero {
  position: relative;
  display: grid;
  align-items: end;
  min-height: clamp(320px, 48vh, 480px);
  overflow: hidden;
  color: #fff;
  background: var(--maroon-900);
}

.ps-hub-hero__media {
  position: absolute;
  inset: 0;
}

.ps-hub-hero__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
  filter: brightness(.78) saturate(1.08);
  transform: scale(1.04);
  transition: transform 8s ease;
}

.ps-hub-hero:hover .ps-hub-hero__image {
  transform: scale(1.07);
}

.ps-hub-hero__overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(120deg, rgba(43, 14, 26, .92) 0%, rgba(74, 24, 43, .62) 45%, rgba(43, 14, 26, .35) 100%),
    linear-gradient(0deg, rgba(43, 14, 26, .95) 0%, transparent 50%);
  pointer-events: none;
}

.ps-hub-hero__content {
  position: relative;
  z-index: 1;
  display: grid;
  gap: .75rem;
  max-width: 44rem;
  padding-top: 2.25rem;
  padding-bottom: 3rem;
}

.ps-hub-hero__eyebrow {
  margin: 0;
  color: var(--tan);
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.ps-hub-hero__content .breadcrumbs a {
  color: var(--tan);
}

.ps-hub-hero__content .breadcrumbs a:hover,
.ps-hub-hero__content .breadcrumbs a:focus-visible {
  color: var(--maroon-900);
  background: var(--tan);
  text-decoration: none;
  outline: none;
}

.ps-hub-hero__content .breadcrumbs li + li::before,
.ps-hub-hero__content .breadcrumbs li[aria-current="page"] {
  color: rgba(255, 255, 255, .72);
}

.ps-hub-hero h1 {
  margin: 0;
  max-width: 14ch;
  font-size: clamp(2.35rem, 5.2vw, 3.5rem);
  line-height: 1.02;
  letter-spacing: -.03em;
  text-shadow: 0 2px 24px rgba(0, 0, 0, .25);
}

.ps-hub-hero__intro {
  max-width: 38rem;
  margin: 0;
  color: rgba(255, 255, 255, .9);
  font-size: clamp(1.02rem, 1.8vw, 1.2rem);
  line-height: 1.6;
}

.ps-hub-emergency {
  position: relative;
  margin-top: -1.5rem;
  padding: 0 0 1.5rem;
}

.ps-hub-emergency__inner {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
  padding: 1rem 1.15rem;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--ps-hub-radius);
  box-shadow: var(--ps-hub-shadow);
}

.ps-hub-emergency__item {
  display: grid;
  gap: .2rem;
  padding: .65rem .85rem;
  border-radius: 10px;
  background: var(--wash);
}

.ps-hub-emergency__item--primary {
  background: linear-gradient(135deg, var(--maroon) 0%, var(--maroon-900) 100%);
  transition: background .2s ease, box-shadow .2s ease, transform .2s ease;
}

.ps-hub-emergency__item--primary:has(.ps-hub-emergency__value:hover),
.ps-hub-emergency__item--primary:has(.ps-hub-emergency__value:focus-visible) {
  background: linear-gradient(135deg, var(--maroon-700) 0%, var(--maroon) 100%);
  box-shadow: 0 8px 20px rgba(74, 24, 43, .22);
  transform: translateY(-1px);
}

.ps-hub-emergency__item--primary .ps-hub-emergency__label {
  color: rgba(255, 255, 255, .78);
}

.ps-hub-emergency__item--primary .ps-hub-emergency__value {
  color: #fff;
  transition: color .2s ease;
}

.ps-hub-emergency__item--primary .ps-hub-emergency__value:hover,
.ps-hub-emergency__item--primary .ps-hub-emergency__value:focus-visible {
  color: var(--tan);
  text-decoration: none;
}

.ps-hub-emergency__label {
  color: var(--muted);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.ps-hub-emergency__value {
  color: var(--maroon-900);
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1.2;
  text-decoration: none;
}

.ps-hub-emergency__value:hover {
  color: var(--maroon);
}

.ps-hub-emergency__value--link {
  font-size: .95rem;
}

.ps-hub-actions {
  padding: 2.75rem 0 3rem;
  background: var(--wash);
  border-bottom: 1px solid var(--line);
}

.ps-hub-departments {
  padding: 3.25rem 0 4.5rem;
  background: #fff;
}

.ps-hub-section-head {
  display: grid;
  gap: .55rem;
  max-width: 42rem;
  margin-bottom: 1.75rem;
}

.ps-hub-section-head--compact {
  margin-bottom: 1.35rem;
}

.ps-hub-eyebrow {
  margin: 0;
  color: var(--maroon);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.ps-hub-section-head__title {
  margin: 0;
  color: var(--maroon-900);
  font-size: clamp(1.45rem, 2.4vw, 1.85rem);
  line-height: 1.15;
}

.ps-hub-section-head__desc {
  margin: 0;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.6;
}

.ps-hub-actions__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ps-hub-action {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: .85rem;
  min-height: 118px;
  padding: 1.25rem 1.2rem;
  color: inherit;
  text-decoration: none;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--ps-hub-radius);
  box-shadow: 0 2px 0 rgba(29, 36, 44, .03);
  overflow: hidden;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.ps-hub-action::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: linear-gradient(180deg, var(--tan) 0%, var(--gold) 100%);
  opacity: .95;
}

.ps-hub-action:hover {
  transform: translateY(-3px);
  border-color: rgba(217, 189, 132, .65);
  box-shadow: var(--ps-hub-shadow-hover);
}

.ps-hub-action__body {
  flex: 1;
  min-width: 0;
  display: grid;
  gap: .35rem;
}

.ps-hub-action__title {
  color: var(--maroon-900);
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.25;
}

.ps-hub-action__desc {
  color: var(--muted);
  font-size: .86rem;
  line-height: 1.5;
}

.ps-hub-action__go {
  flex-shrink: 0;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  margin-top: .1rem;
  border-radius: 8px;
  background: var(--tan-100);
  color: var(--maroon);
  transition: background .2s ease, color .2s ease, transform .2s ease;
}

.ps-hub-action:hover .ps-hub-action__go {
  background: var(--maroon);
  color: #fff;
  transform: translateX(2px);
}

.ps-hub-dept-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.15rem;
}

.ps-hub-dept-card {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: start;
  gap: 1rem 1.1rem;
  padding: 1.35rem 1.35rem 1.35rem 1.25rem;
  color: inherit;
  text-decoration: none;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--ps-hub-radius);
  box-shadow: var(--ps-hub-shadow);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.ps-hub-dept-card:hover {
  transform: translateY(-3px);
  border-color: rgba(74, 24, 43, .18);
  box-shadow: var(--ps-hub-shadow-hover);
}

.ps-hub-dept-card__icon {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 12px;
  background: linear-gradient(145deg, var(--maroon), var(--maroon-900));
  color: #fff;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12);
}

.ps-hub-dept-card__icon svg {
  width: 26px;
  height: 26px;
}

.ps-hub-dept-card__body {
  display: grid;
  gap: .35rem;
  min-width: 0;
}

.ps-hub-dept-card__title {
  color: var(--maroon-900);
  font-size: 1.08rem;
  font-weight: 800;
  line-height: 1.25;
}

.ps-hub-dept-card__desc {
  color: var(--muted);
  font-size: .9rem;
  line-height: 1.55;
}

.ps-hub-dept-card__cta {
  align-self: center;
  color: var(--maroon);
  font-size: .88rem;
  font-weight: 800;
  white-space: nowrap;
  transition: transform .2s ease;
}

.ps-hub-dept-card:hover .ps-hub-dept-card__cta {
  transform: translateX(3px);
}

.ps-hub-departments--gateway {
  padding: 2.5rem 0 5rem;
  background:
    linear-gradient(180deg, var(--wash) 0%, #fff 18%, #fff 100%);
}

.ps-hub-section-head--centered {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}

.ps-hub-dept-grid--gateway {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
}

.ps-hub-dept-card--modern {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
  min-height: 100%;
  padding: 1.5rem 1.35rem 1.35rem;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(43, 14, 26, .08);
  border-radius: var(--ps-hub-radius);
  box-shadow: var(--ps-hub-shadow);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.ps-hub-dept-card--modern:hover {
  transform: translateY(-5px);
  border-color: rgba(74, 24, 43, .2);
  box-shadow: var(--ps-hub-shadow-hover);
}

.ps-hub-dept-card__accent {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--maroon), var(--tan));
}

.ps-hub-dept-card--police .ps-hub-dept-card__accent {
  background: linear-gradient(90deg, #4a182b, #6f2843);
}

.ps-hub-dept-card--fire .ps-hub-dept-card__accent {
  background: linear-gradient(90deg, #b83218, #e85d2a);
}

.ps-hub-dept-card--code .ps-hub-dept-card__accent {
  background: linear-gradient(90deg, #1e5a6e, #2d8aa8);
}

.ps-hub-dept-card--animal .ps-hub-dept-card__accent {
  background: linear-gradient(90deg, #2d6a3e, #4a9d5c);
}

.ps-hub-dept-card--modern .ps-hub-dept-card__icon {
  width: 56px;
  height: 56px;
  border-radius: 14px;
}

.ps-hub-dept-card--police .ps-hub-dept-card__icon {
  background: linear-gradient(145deg, #4a182b, #2b0e1a);
}

.ps-hub-dept-card--fire .ps-hub-dept-card__icon {
  background: linear-gradient(145deg, #c43a1a, #8f2810);
}

.ps-hub-dept-card--code .ps-hub-dept-card__icon {
  background: linear-gradient(145deg, #1e5a6e, #134252);
}

.ps-hub-dept-card--animal .ps-hub-dept-card__icon {
  background: linear-gradient(145deg, #2d6a3e, #1d4528);
}

.ps-hub-dept-card--modern .ps-hub-dept-card__body {
  flex: 1;
  gap: .45rem;
}

.ps-hub-dept-card--modern .ps-hub-dept-card__title {
  font-size: 1.2rem;
}

.ps-hub-dept-card--modern .ps-hub-dept-card__desc {
  font-size: .92rem;
  line-height: 1.6;
}

.ps-hub-dept-card--modern .ps-hub-dept-card__cta {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  margin-top: auto;
  padding: .45rem 0;
  font-size: .84rem;
  font-weight: 800;
  letter-spacing: .02em;
  border-top: 1px solid var(--line);
  width: 100%;
  padding-top: .85rem;
}

.ps-hub-dept-card--modern:hover .ps-hub-dept-card__cta {
  color: var(--maroon-700);
}

@media (min-width: 1100px) {
  .ps-hub-dept-grid--gateway {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (min-width: 981px) {
  .page-layout--police-sidebar {
    grid-template-columns: minmax(280px, 320px) minmax(0, 1fr);
  }

  .page-layout--police-sidebar.page-layout--with-rail {
    grid-template-columns: minmax(280px, 320px) minmax(0, 1fr) minmax(240px, 300px);
  }

  .page-layout--police-sidebar.page-layout--with-rail > .page-layout__sidebar {
    grid-column: 1;
  }

  .page-layout--police-sidebar.page-layout--with-rail > .page-main {
    grid-column: 2;
  }

  .page-layout--police-sidebar.page-layout--with-rail > .page-aside {
    grid-column: 3;
    grid-row: 1;
  }
}

.page-sidebar--police .sidebar-nav ul {
  font-size: .92rem;
}

.page-sidebar--police .sidebar-nav a {
  overflow-wrap: anywhere;
  word-break: break-word;
}

.page-sidebar--police .sidebar-section a {
  color: #4a4038;
}

.page-sidebar--police .sidebar-section a:hover,
.page-sidebar--police .sidebar-section a:focus-visible {
  color: var(--maroon-900);
}

.page-sidebar--police .sidebar-subnav {
  margin-left: .65rem;
  padding-left: .65rem;
  border-left: 2px solid var(--line);
}

.sidebar-nav--accordion .sidebar-nav__row {
  display: flex;
  align-items: stretch;
  gap: .35rem;
}

.sidebar-nav--accordion .sidebar-nav__row > a {
  flex: 1 1 auto;
}

.sidebar-nav--accordion .sidebar-nav__toggle {
  flex: 0 0 auto;
  width: 2rem;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  color: var(--maroon);
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
}

.sidebar-nav--accordion .sidebar-nav__toggle:hover,
.sidebar-nav--accordion .sidebar-nav__toggle:focus-visible {
  background: var(--wash);
  outline: none;
}

.sidebar-nav--accordion .has-children > .sidebar-subnav {
  margin-top: .35rem;
}

.page-layout--sitemap .page-main {
  max-width: none;
  width: 100%;
}

.page-content--sitemap {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.site-map {
  color: #2a2520;
  font-size: .95rem;
  line-height: 1.5;
}

.site-map__jump {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .4rem .55rem;
  margin: 0 0 1.25rem;
  padding-bottom: .9rem;
  border-bottom: 1px solid #d8d0c6;
  font-size: .92rem;
}

.site-map__jump-label {
  color: #2d2520;
  font-weight: 700;
}

.site-map__jump a {
  color: #4a1820;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: .16em;
}

.site-map__jump a:hover,
.site-map__jump a:focus-visible {
  color: #2b0e1a;
  outline: none;
}

.site-map__jump-sep {
  color: #5c534c;
}

.site-map__root {
  margin: 0 0 .35rem;
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -.01em;
}

.site-map__root a {
  color: #2b0e1a;
  text-decoration: none;
  text-underline-offset: .12em;
}

.site-map__root a:hover,
.site-map__root a:focus-visible {
  color: #4a1820;
  text-decoration: underline;
  outline: none;
}

.site-map__section-heading {
  margin: 0;
  font: inherit;
  font-weight: inherit;
  line-height: inherit;
}

.site-map__tree,
.site-map__sublist {
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-map__tree {
  margin-top: .15rem;
  margin-left: .35rem;
  padding-left: 1.1rem;
  border-left: 2px solid #c9bfb4;
}

.site-map__sublist {
  margin: .25rem 0 .4rem;
  padding-left: 1.15rem;
  border-left: 1px solid #d8d0c6;
}

.site-map__sublist--depth-2 {
  border-left-color: #cfc5ba;
}

.site-map__sublist--depth-3,
.site-map__sublist--depth-4,
.site-map__sublist--depth-5 {
  border-left-color: #ddd5cc;
}

.site-map__item {
  position: relative;
  margin: 0;
  padding: 0;
}

.site-map__tree > .site-map__item--section + .site-map__item--section {
  margin-top: 1rem;
  padding-top: .15rem;
  border-top: 1px solid #ebe4dc;
}

.site-map__sublist > .site-map__item::before,
.site-map__tree > .site-map__item::before {
  content: '';
  position: absolute;
  left: -1.15rem;
  top: .95em;
  width: .85rem;
  height: 1px;
  background: #c9bfb4;
}

.site-map__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .75rem;
  padding: .3rem 0;
}

.site-map__item--section > .site-map__row {
  padding: .6rem 0 .4rem;
}

.site-map__item--branch:not(.site-map__item--section) > .site-map__row {
  padding: .4rem 0 .3rem;
}

.site-map__item:not(.site-map__item--branch) > .site-map__row {
  padding: .28rem 0;
}

.site-map__link,
.site-map__label {
  transition: color .15s ease;
}

.site-map__link--section,
.site-map__label--section {
  font-size: 1.2rem;
  font-weight: 800;
  color: #2b0e1a;
  text-decoration: none;
  letter-spacing: -.01em;
}

.site-map__link--section:hover,
.site-map__link--section:focus-visible,
.site-map__label--section {
  color: #2b0e1a;
}

.site-map__link--section:hover,
.site-map__link--section:focus-visible {
  text-decoration: underline;
  outline: none;
}

.site-map__link--group,
.site-map__label--group {
  font-size: 1rem;
  font-weight: 700;
  color: #3d1520;
  text-decoration: none;
}

.site-map__link--group:hover,
.site-map__link--group:focus-visible {
  color: #2b0e1a;
  text-decoration: underline;
  outline: none;
}

.site-map__label--group {
  color: #2d2520;
}

.site-map__link--leaf,
.site-map__label--leaf {
  font-size: .94rem;
  font-weight: 500;
  color: #2d2520;
  text-decoration: none;
}

.site-map__link--leaf:hover,
.site-map__link--leaf:focus-visible {
  color: #4a1820;
  text-decoration: underline;
  outline: none;
}

.site-map__label--leaf {
  color: #2d2520;
}

.site-map__item--depth-3 .site-map__link--leaf,
.site-map__item--depth-3 .site-map__label--leaf,
.site-map__item--depth-4 .site-map__link--leaf,
.site-map__item--depth-4 .site-map__label--leaf,
.site-map__item--depth-5 .site-map__link--leaf,
.site-map__item--depth-5 .site-map__label--leaf {
  color: #3d3530;
}

.site-map__back {
  flex: 0 0 auto;
  color: #4a4038;
  font-size: .76rem;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: underline;
  text-underline-offset: .14em;
  white-space: nowrap;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.site-map__back::before {
  content: '▲';
  margin-right: .25rem;
  font-size: .58rem;
}

.site-map__back:hover,
.site-map__back:focus-visible {
  color: #2b0e1a;
  text-decoration: underline;
  outline: none;
}

.site-map__sublist .site-map__sublist {
  margin-left: .15rem;
  padding-left: 1rem;
}

@media (min-width: 768px) {
  .site-map {
    font-size: 1rem;
    line-height: 1.55;
  }

  .site-map__root {
    font-size: 1.65rem;
  }

  .site-map__link--section,
  .site-map__label--section {
    font-size: 1.28rem;
  }

  .site-map__link--group,
  .site-map__label--group {
    font-size: 1.05rem;
  }

  .site-map__link--leaf,
  .site-map__label--leaf {
    font-size: .97rem;
  }

  .site-map__row {
    padding: .34rem 0;
  }

  .site-map__item--section > .site-map__row {
    padding: .65rem 0 .45rem;
  }
}

.page-sidebar--city-hall .sidebar-nav {
  padding: 0;
  overflow: hidden;
  border-top: 0;
  background: #fff;
}

.page-sidebar--city-hall .sidebar-section {
  margin: 0;
  padding: .85rem 1rem .65rem;
  background: linear-gradient(135deg, var(--maroon) 0%, var(--maroon-900) 100%);
}

.page-sidebar--city-hall .sidebar-section a {
  color: rgba(255, 255, 255, .82);
  font-size: .72rem;
  letter-spacing: .08em;
}

.page-sidebar--city-hall .sidebar-section a:hover {
  color: #fff;
  background: transparent;
}

.page-sidebar--city-hall .sidebar-nav h2 {
  margin: 0;
  padding: .85rem 1rem;
  color: #fff;
  font-size: .8rem;
  background: var(--maroon-900);
  border-bottom: 1px solid rgba(255, 255, 255, .08);
}

.page-sidebar--city-hall .sidebar-nav > ul {
  padding: .55rem;
  background: var(--wash);
}

.page-sidebar--city-hall .sidebar-nav a {
  border-radius: 8px;
  font-size: .9rem;
}

.page-sidebar--city-hall .sidebar-nav a:hover {
  color: var(--maroon);
  background: var(--tan-100);
}

.page-sidebar--city-hall .sidebar-nav a.is-active {
  color: #fff;
  background: var(--maroon);
}

.page-sidebar--city-hall .sidebar-nav a.is-active:hover {
  color: #fff;
  background: var(--maroon-700);
}

.page-sidebar--city-hall .sidebar-nav a.is-parent-active {
  color: var(--maroon);
  background: #fff;
  box-shadow: inset 0 0 0 1px rgba(74, 24, 43, .12);
}

.page-sidebar--city-hall .sidebar-nav a.is-parent-active:hover {
  color: var(--maroon);
  background: var(--tan-100);
  box-shadow: none;
}

.page-sidebar--city-hall .sidebar-subnav a {
  font-size: .84rem;
  font-weight: 600;
}

.page-sidebar--city-hall .sidebar-subnav a:hover {
  color: var(--maroon);
  background: var(--tan-100);
}

.page-sidebar--city-hall .sidebar-subnav a.is-active:hover {
  color: #fff;
  background: var(--maroon-700);
}

@media (max-width: 960px) {
  .ps-hub-emergency__inner {
    grid-template-columns: 1fr;
  }

  .ps-hub-actions__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ps-hub-dept-grid {
    grid-template-columns: 1fr;
  }

  .ps-hub-dept-grid--gateway {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 680px) {
  .ps-hub-hero {
    min-height: clamp(260px, 40vh, 360px);
  }

  .ps-hub-hero__content {
    padding-top: 1.5rem;
    padding-bottom: 2.25rem;
  }

  .ps-hub-emergency {
    margin-top: -1rem;
    padding-bottom: 1rem;
  }

  .ps-hub-actions {
    padding: 2rem 0 2.25rem;
  }

  .ps-hub-departments {
    padding: 2.5rem 0 3.25rem;
  }

  .ps-hub-departments--gateway {
    padding: 2rem 0 3rem;
  }

  .ps-hub-actions__grid {
    grid-template-columns: 1fr;
  }

  .ps-hub-dept-card {
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
  }

  .ps-hub-dept-card__cta {
    grid-column: 2;
    justify-self: start;
  }

  .ps-hub-dept-card--modern {
    flex-direction: column;
  }

  .ps-hub-dept-card--modern .ps-hub-dept-card__cta {
    width: 100%;
  }
}

.park-intro {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem;
  align-items: start;
  margin: 0 0 2rem;
}

.park-intro__text .cms-block {
  margin: 0;
}

.park-intro__text p:last-child {
  margin-bottom: 0;
}

.park-intro__slider .content-slider {
  margin: 0;
}

.park-pair {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 2rem;
  row-gap: 2.5rem;
  margin: 0 0 2.5rem;
  align-items: start;
}

.park-pair__column {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
}

.park-pair__title {
  min-width: 0;
  text-align: center;
}

.park-pair__title .subhead1 {
  margin: 0;
  text-align: center;
  line-height: 1.25;
}

.park-pair__title a {
  display: inline-block;
}

.park-pair__gallery {
  margin: 0;
  padding: 0;
}

.park-pair__gallery .content-slider {
  margin: 0;
}

.park-pair__gallery .content-slider__viewport {
  background: #f4f4f4;
}

.park-pair__gallery .content-slider__slide img {
  display: block;
  width: 100%;
  height: auto;
}

@media (max-width: 900px) {
  .park-intro {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .park-pair {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }
}

/* Police department home (main theme) */
.page-layout--police-department .page-hero {
  padding: 1.25rem 0 1rem;
}

.page-layout--police-department .page-hero h1 {
  font-size: clamp(1.55rem, 3.2vw, 2.15rem);
}

.page-layout--police-department .page-main {
  gap: 0;
}

.page-layout--police-department .dept-home {
  margin-top: 0;
}

.dept-home__panel {
  overflow: hidden;
  border: 1px solid var(--line, #e6e0d6);
  border-radius: 0.75rem;
  background: #fff;
  box-shadow: 0 6px 22px rgb(43 14 26 / 7%);
}

.dept-home__block {
  padding: 1.1rem 1.25rem;
}

.dept-home__block + .dept-home__block {
  border-top: 1px solid var(--line, #e6e0d6);
}

.dept-home__heading {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0 0 0.75rem;
  color: #7a5a00;
  font-size: 0.88rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.dept-home__heading::before {
  content: "";
  flex: 0 0 3px;
  align-self: stretch;
  min-height: 1rem;
  border-radius: 999px;
  background: var(--tan, #d9bd84);
}

.dept-home__heading--calendar {
  color: var(--maroon, #4a182b);
}

.dept-home__heading--calendar::before {
  background: var(--maroon, #4a182b);
}

.dept-home__mission-text,
.dept-home__services-text {
  margin: 0;
  color: var(--ink, #1f1f1f);
  font-size: 0.94rem;
  line-height: 1.6;
}

.dept-home__calendar-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
  gap: 1rem;
  align-items: stretch;
}

.dept-home__calendar-row .dept-home__slider {
  display: flex;
  width: 100%;
  max-width: 252px;
  min-height: 100%;
}

.page-promo-tiles {
  margin-top: 2rem;
}

.page-promo-tiles__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.page-promo-tiles__card {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 150px;
  padding: 2rem 2rem 1rem;
  background: #161245;
  color: #fcfaf9;
  text-decoration: none;
  transition: background-color .2s ease;
}

.page-promo-tiles__card:hover,
.page-promo-tiles__card:focus {
  background: #2c2489;
  color: #fcfaf9;
}

.page-promo-tiles__eyebrow {
  display: block;
  margin-bottom: 1.25rem;
  font-size: .95rem;
  font-weight: 600;
  line-height: 1.4;
  text-transform: uppercase;
}

.page-promo-tiles__title {
  display: block;
  position: relative;
  padding-bottom: .5rem;
  font-size: 1.25rem;
  font-weight: 800;
  line-height: 1.2;
  text-transform: uppercase;
}

.page-promo-tiles__title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100px;
  max-width: 50%;
  height: 2px;
  background: #fec000;
}

@media (max-width: 900px) {
  .page-promo-tiles__grid {
    grid-template-columns: 1fr;
  }
}

.dept-home__calendar-row .dept-slideshow {
  flex: 1 1 auto;
  width: 100%;
  height: 100%;
  margin: 0;
}

.dept-home__calendar-row .dept-slideshow__viewport,
.dept-home__calendar-row .dept-slideshow__track {
  height: 100%;
  min-height: 100%;
}

.dept-home__calendar-row .dept-slideshow__slide {
  height: 100%;
}

.dept-home__calendar-row .dept-slideshow__slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dept-home__calendar-note--below {
  margin-top: 0.75rem;
}

/* Compact autoplay slideshow */
.dept-slideshow {
  margin: 0;
}

.dept-slideshow__viewport {
  position: relative;
  overflow: hidden;
  height: 100%;
  border: 1px solid var(--line, #e6e0d6);
  border-radius: 0.5rem;
  background: #f0ebe3;
}

.dept-slideshow__track {
  position: relative;
  height: 100%;
}

.dept-slideshow__slide {
  display: none;
  height: 100%;
  margin: 0;
}

.dept-slideshow__slide.is-active {
  display: block;
  height: 100%;
}

.dept-slideshow__slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dept-slideshow__nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.85rem;
  height: 1.85rem;
  padding: 0;
  color: var(--maroon, #4a182b);
  font-size: 1.2rem;
  line-height: 1;
  background: rgb(255 255 255 / 94%);
  border: 0;
  border-radius: 999px;
  box-shadow: 0 2px 8px rgb(43 14 26 / 18%);
  cursor: pointer;
  transform: translateY(-50%);
  transition: background 0.15s ease;
}

.dept-slideshow__nav:hover {
  background: #fff;
}

.dept-slideshow__nav--prev {
  left: 0.45rem;
}

.dept-slideshow__nav--next {
  right: 0.45rem;
}

.dept-slideshow__counter {
  position: absolute;
  right: 0.45rem;
  bottom: 0.45rem;
  z-index: 2;
  margin: 0;
  padding: 0.15rem 0.5rem;
  color: #fff;
  font-size: 0.7rem;
  font-weight: 700;
  background: rgb(43 14 26 / 75%);
  border-radius: 999px;
}

.dept-home__mini-cal {
  width: 100%;
  max-width: 252px;
  box-sizing: border-box;
  padding: 0.7rem 0.75rem;
  color: #fff;
  background: linear-gradient(160deg, var(--maroon-900, #2b0e1a), var(--maroon, #4a182b));
  border-radius: 0.5rem;
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 10%);
}

.dept-home__mini-cal-month {
  margin: 0 0 0.5rem;
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  text-align: center;
}

.dept-home__mini-cal-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.dept-home__mini-cal-table th,
.dept-home__mini-cal-table td {
  padding: 0.2rem 0;
  text-align: center;
  font-size: 0.76rem;
}

.dept-home__mini-cal-table th {
  font-weight: 700;
  color: #f2ecee;
}

.dept-home__mini-cal-table td span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.55rem;
  height: 1.55rem;
  border-radius: 999px;
}

.dept-home__mini-cal-table td.is-outside {
  color: #e8d8de;
}

.dept-home__mini-cal-table td.is-today span {
  background: var(--tan, #d9bd84);
  color: var(--maroon-900, #2b0e1a);
  font-weight: 800;
}

.dept-home__mini-cal-table td.has-event span {
  box-shadow: inset 0 0 0 2px var(--tan, #d9bd84);
  color: #fff;
  font-weight: 700;
}

.dept-home__calendar-note {
  flex: 1 1 10rem;
  margin: 0;
  padding: 0.75rem 0.9rem;
  color: var(--muted, #5c5c5c);
  font-size: 0.9rem;
  line-height: 1.45;
  background: var(--wash, #faf8f5);
  border: 1px solid var(--line, #e6e0d6);
  border-radius: 0.5rem;
}

.dept-home__calendar-action {
  margin-top: 0.85rem;
  text-align: center;
}

.dept-home__calendar-action .button.primary {
  min-height: 2.5rem;
  padding-inline: 1.5rem;
  border-radius: 999px;
  font-size: 0.9rem;
}

@media (max-width: 980px) {
  .page-layout--police-sidebar .page-layout__sidebar,
  .page-layout--police-sidebar .page-main,
  .page-layout--police-sidebar .page-aside {
    min-width: 0;
    max-width: 100%;
  }

  .page-layout--police-department .dept-home,
  .page-layout--police-department .dept-home__panel {
    min-width: 0;
    max-width: 100%;
  }

  .dept-home__calendar-row {
    grid-template-columns: 1fr;
    justify-items: stretch;
  }

  .dept-home__mini-cal,
  .dept-home__calendar-row .dept-home__slider {
    width: 100%;
    max-width: 100%;
  }

  .dept-home__calendar-row .dept-home__slider {
    min-height: 220px;
  }
}

@media (max-width: 900px) {
  .dept-home__block {
    padding: 1rem;
  }
}

.page-promo-tiles {
  margin-top: 2rem;
}

.page-promo-tiles__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.page-promo-tiles__card {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 150px;
  padding: 2rem 2rem 1rem;
  background: #161245;
  color: #fcfaf9;
  text-decoration: none;
  transition: background-color .2s ease;
}

.page-promo-tiles__card:hover,
.page-promo-tiles__card:focus {
  background: #2c2489;
  color: #fcfaf9;
}

.page-promo-tiles__eyebrow {
  display: block;
  margin-bottom: 1.25rem;
  font-size: .95rem;
  font-weight: 600;
  line-height: 1.4;
  text-transform: uppercase;
}

.page-promo-tiles__title {
  display: block;
  position: relative;
  padding-bottom: .5rem;
  font-size: 1.25rem;
  font-weight: 800;
  line-height: 1.2;
  text-transform: uppercase;
}

.page-promo-tiles__title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100px;
  max-width: 50%;
  height: 2px;
  background: #fec000;
}

@media (max-width: 900px) {
  .page-promo-tiles__grid {
    grid-template-columns: 1fr;
  }
}

/* Small-screen responsive hardening */
.content-body {
  overflow-wrap: anywhere;
  word-break: break-word;
}

.content-body table:not(.bids-table):not(.tool-table):not(.calendar-table):not(.agenda-table):not(.directory-table) {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.content-body pre,
.content-body iframe {
  max-width: 100%;
}

.civic-form-panel,
.civic-form-shell,
.civic-form-page,
.page-layout.page-layout--form {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.site-map__jump {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem .75rem;
}

@media (max-width: 680px) {
  .page-sidebar,
  .page-aside,
  .page-aside-card,
  .facility-sidebar {
    width: 100%;
    max-width: 100%;
  }

  .civic-form-footer {
    flex-direction: column;
    align-items: stretch;
  }

  .civic-form-submit,
  .civic-form-submit-print,
  .civic-form-wizard-continue,
  .civic-form-wizard-back {
    width: 100%;
    justify-content: center;
  }

  .page-layout--police-sidebar.page-layout--with-rail > .page-layout__sidebar,
  .page-layout--police-sidebar.page-layout--with-rail > .page-main,
  .page-layout--police-sidebar.page-layout--with-rail > .page-aside {
    grid-column: 1 / -1;
  }
}

@media (max-width: 400px) {
  .site-map__root {
    font-size: 1.35rem;
  }

  .page-content__title {
    font-size: 1.35rem;
  }
}