/* Site-wide design system. Loaded on every public page after style.css, search.css and
   public-accessibility.css; restyles the shared legacy components in place so markup, scripts
   and metadata contracts stay unchanged. Page-only CSS (home.css) loads after this file. */
:root {
  --jx-navy: #0b2545;
  --jx-navy-2: #123f6e;
  --jx-blue: #1565c0;
  --jx-blue-dark: #0d47a1;
  --jx-link: #1660b8;
  --jx-sky: #9cc9ff;
  --jx-cta: #1565c0;
  --jx-cta-hover: #0d47a1;
  --jx-cta-shadow: 0 6px 16px rgba(21, 101, 192, .28);
  --jx-ink: #1d3346;
  --jx-muted: #4d6475;
  --jx-line: #dfe7f0;
  --jx-field: #c5d3e2;
  --jx-surface: #f4f7fb;
  --jx-tint: #e8f1fc;
  --jx-radius: 16px;
  --jx-radius-sm: 10px;
  --jx-shadow: 0 6px 24px rgba(11, 37, 69, .06);
  --jx-shadow-lg: 0 18px 48px rgba(11, 37, 69, .18);
  --jx-ring: 0 0 0 4px rgba(21, 101, 192, .15);
  --jx-band: linear-gradient(140deg, #0b2545 0%, #123f6e 60%, #1a5aa8 100%);
  /* Legacy token from public-accessibility.css: its CTA rules now resolve to the brand blue. */
  --public-teal: var(--jx-cta);
}

/* ---------- Base ---------- */
body { background: #fff; color: var(--jx-ink); font-family: Roboto, system-ui, -apple-system, "Segoe UI", sans-serif; }
a { color: var(--jx-link); }
a:hover { color: var(--jx-blue-dark); }
main :is(h1, h2, h3, h4, h5, h6) { color: var(--jx-navy); }
main p { line-height: 1.6; }
.blue-text { color: var(--jx-link) !important; }
.blue-text.text-darken-3, .blue-text.text-darken-4 { color: var(--jx-navy) !important; }
.blue { color: var(--jx-blue); }
/* Legacy accent class used by views and stored CMS content; now the brand-blue accent. */
.teal-text { color: var(--jx-blue) !important; }
.teal-text.text-lighten-4 { color: #90c2f5 !important; }
.h5 { color: var(--jx-navy); letter-spacing: .04em; }
hr { border-color: var(--jx-line); opacity: 1; }

/* ---------- Header / primary navigation ---------- */
.navbar { background: var(--jx-navy); box-shadow: 0 1px 0 rgba(255, 255, 255, .06), 0 6px 20px rgba(3, 18, 38, .2); }
.navbar .navbar-nav > li > .nav-link { font-size: 15px; font-weight: 500; letter-spacing: .01em; color: rgba(255, 255, 255, .92) !important; background: transparent; transition: color .15s, box-shadow .15s; }
.navbar .navbar-nav > li > .nav-link:is(:hover, :focus-visible, [aria-expanded=true]) { background: transparent; color: #fff !important; box-shadow: inset 0 -3px 0 var(--jx-sky); }
.navbar .navbar-nav > li > .nav-link[aria-current=page] { color: #fff !important; box-shadow: inset 0 -3px 0 var(--jx-sky); }
.navbar .dropdown-toggle-icon { margin-left: 6px; font-size: 11px; opacity: .8; transition: transform .15s; }
.navbar [aria-expanded=true] .dropdown-toggle-icon { transform: rotate(180deg); }
/* Facility dropdown: white popover instead of a blue slab */
.navbar .dropdown-menu { background: #fff; border: 1px solid var(--jx-line); border-radius: 12px; box-shadow: var(--jx-shadow-lg); padding: 8px; min-width: 240px; }
nav .navbar-nav .dropdown-menu.show { transform: translate(0, 60px); border: 1px solid var(--jx-line); border-radius: 12px; }
.navbar .dropdown-menu li { line-height: 1.4; }
.navbar .dropdown-menu .dropdown-item { color: var(--jx-ink); font-size: .95rem; font-weight: 500; line-height: 1.4; padding: 11px 14px; border-radius: 8px !important; white-space: normal; }
.navbar .dropdown-menu .dropdown-item:is(:hover, :focus) { background: var(--jx-surface); color: var(--jx-blue-dark); }
/* Navigation search popover */
nav.search-open .jail-search-wrap { background: #fff; border: 1px solid var(--jx-line); border-radius: 0 0 14px 14px; box-shadow: var(--jx-shadow-lg); padding: 14px; line-height: 1.5; }
nav.search-open .jail-search-wrap.mobile-search { border-radius: 0 0 14px 14px; }
.navbar .search-label { margin: 0 0 6px; font-size: .85rem; font-weight: 600; color: var(--jx-muted); line-height: 1.4; }
nav.search-open .jail-search { height: 48px; border: 1.5px solid var(--jx-field); border-radius: 10px; padding: 0 14px; color: var(--jx-ink); }
nav.search-open .jail-search:focus { border-color: var(--jx-blue); box-shadow: var(--jx-ring); }
nav.search-open .jail-search-results { position: static; margin-top: 8px; }

/* ---------- Facility search results (navigation, homepage and directory inputs) ---------- */
.jail-search-results { background: #fff; border: 1px solid var(--jx-line); border-radius: 12px; box-shadow: var(--jx-shadow-lg); padding: 6px; text-align: left; line-height: 1.4; overscroll-behavior: contain; }
.jail-search-results ul { margin: 0; padding: 0; list-style: none; }
.jail-search-results li { float: none; margin: 0; padding: 0; line-height: 1.4; }
.jail-search-results li + li { margin-top: 2px; }
/* "ul a" beats the legacy search.css rule (display:block; line-height:2rem). */
.jail-search-results a, .jail-search-results ul a { display: flex; align-items: center; gap: 12px; height: auto; padding: 10px 12px; border-radius: 8px; color: var(--jx-ink); font-size: .95rem; font-weight: 400; line-height: 1.4; white-space: normal; text-align: left; text-decoration: none; cursor: pointer; }
.jail-search-results a > i { flex: none; display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 9px; background: var(--jx-tint); color: var(--jx-blue); font-size: 14px; line-height: 1; }
.jail-search-results a > i.fa-map-marker-alt { background: #fdecea; color: #c62828; }
.jail-search-results a > span { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.jail-search-results a strong { color: var(--jx-navy); font-weight: 700; }
.jail-search-results ul a:hover, .jail-search-results a:hover, .jail-search-results a[aria-selected=true] { background: var(--jx-surface); color: var(--jx-ink); }
.jail-search-results a[aria-selected=true] { outline: 0; box-shadow: inset 0 0 0 2px var(--jx-blue); }
.jail-search-results > div:not(:empty) { padding: 12px; color: var(--jx-muted); }
.search-status { background: transparent; color: var(--jx-muted); font-size: .875rem; line-height: 1.5; }
.search-status:not(:empty) { padding-top: 6px; }

/* ---------- Mobile drawer ---------- */
.side-nav { background: #fff; box-shadow: 8px 0 40px rgba(3, 18, 38, .25); }
#side-nav-overlay { background: rgba(8, 27, 51, .55); }
.side-nav .logo { height: auto; padding: 16px 64px 16px 24px; border-bottom: 1px solid var(--jx-line); }
.side-nav .logo img { width: 180px; }
.side-nav .mobile-links > li > a, .side-nav .drawer-submenu-toggle { display: flex; align-items: center; height: auto; min-height: 52px; padding: 0 24px; color: var(--jx-ink); font-size: 1rem; font-weight: 500; line-height: 1.4; white-space: normal; background: transparent; }
.side-nav .mobile-links > li + li { border-top: 1px solid var(--jx-line); }
.side-nav .mobile-links > li > a:hover, .side-nav .drawer-submenu-toggle:hover { background: var(--jx-surface); color: var(--jx-blue-dark); }
.side-nav .drawer-submenu-toggle::after { content: '\f107'; font-family: 'Font Awesome 5 Free'; font-weight: 900; margin-left: auto; transition: transform .15s; }
.side-nav .drawer-submenu-toggle[aria-expanded=true]::after { transform: rotate(180deg); }
.side-nav .sub-menu { background: var(--jx-surface); padding: 6px 0; }
.side-nav .sub-menu li > a { height: auto; min-height: 44px; display: flex; align-items: center; padding: 0 24px 0 40px; color: var(--jx-ink); font-size: .95rem; font-weight: 400; line-height: 1.4; white-space: normal; }
.side-nav .sub-menu li > a:hover { background: var(--jx-tint); color: var(--jx-blue-dark); }
.drawer-close { border-radius: 10px; color: var(--jx-navy); }

/* ---------- Page header band (shared by directory, editorial and facility pages) ---------- */
.section.blue.darken-3:not(.has-background-photo) { background: var(--jx-band) !important; }
.section.blue.darken-3 { padding: 36px 0 40px; color: #fff; }
@media (min-width: 768px) { .section.blue.darken-3 { padding: 52px 0 56px; } }
.section.blue.darken-3 :is(h1, .header) { color: #fff; }
.section.blue.darken-3 h1 { margin: 0 0 14px; font-size: clamp(1.85rem, 1.2rem + 2.2vw, 2.75rem) !important; font-weight: 700; line-height: 1.15 !important; letter-spacing: -.015em; }
.section.blue.darken-3 h1:last-child { margin-bottom: 0; }
.section.blue.darken-3 p { max-width: 62em; margin: 0; color: rgba(255, 255, 255, .86); font-size: 1.05rem; line-height: 1.6; }
.section.blue.darken-3 :is(h2, h3, h4, h5):not(.header) { color: rgba(255, 255, 255, .92); font-weight: 500; }
.section.blue.darken-3 a:not(.btn) { color: #cfe3ff; }
.section.blue.darken-3 a:not(.btn):hover { color: #fff; }
.page-eyebrow { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 12px !important; font-size: .85rem !important; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--jx-sky) !important; }
.page-eyebrow::before { content: ''; width: 28px; height: 2px; background: currentColor; border-radius: 2px; }
/* Facility pages: name plus the current service as a sub-label */
.section.blue.darken-3 h1.facility-name { margin-bottom: 0; }
.facility-subpage { display: block; margin-top: 10px; font-size: 1rem; font-style: normal; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--jx-sky); }
.facility-byline { display: flex; justify-content: flex-end; margin-top: 16px; font-size: .875rem; color: rgba(255, 255, 255, .78) !important; }
.facility-byline a { color: #fff !important; }
@media (max-width: 767.98px) { .facility-byline { justify-content: flex-start; margin-top: 12px; } }
div.section.has-background-video .video-overlay { background: linear-gradient(140deg, rgba(11, 37, 69, .85), rgba(18, 63, 110, .7)); }
.background-video-toggle { border-radius: 10px; background: rgba(11, 37, 69, .8); }

/* ---------- Breadcrumbs ---------- */
.nav-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; padding: 14px 0; font-size: .9rem; line-height: 1.5; }
.nav-breadcrumb a { font-size: inherit; color: var(--jx-link); text-decoration: none; }
.nav-breadcrumb a:hover { text-decoration: underline; }
.nav-breadcrumb a:not([href]), .nav-breadcrumb [aria-current=page] { color: var(--jx-muted); font-weight: 500; text-decoration: none; }
.nav-breadcrumb i { margin: 0; font-size: 10px; color: #9aabbb; }
.section.blue.darken-3 .nav-breadcrumb { padding: 16px 0 0; }
.section.blue.darken-3 .nav-breadcrumb a { color: #cfe3ff; }
.section.blue.darken-3 .nav-breadcrumb :is(a:not([href]), [aria-current=page]) { color: rgba(255, 255, 255, .75); }
.section.blue.darken-3 .nav-breadcrumb i { color: rgba(255, 255, 255, .5); }
.section.blue.darken-3 nav.transparent { background: transparent; box-shadow: none; height: auto; line-height: 1.5; }
.editorial-byline { justify-content: flex-end; padding-top: 10px; font-size: .85rem; }
.editorial-byline, .editorial-byline a { color: var(--jx-muted) !important; }

/* ---------- Content surface and cards ---------- */
.blue-grey.lighten-5 { background-color: var(--jx-surface) !important; }
section.paddingtb80 { padding: 32px 0 56px; }
section.paddingtb80 > .container > :first-child { margin-top: 0 !important; }
@media (min-width: 768px) { section.paddingtb80 { padding: 40px 0 72px; } }
.card { border: 1px solid var(--jx-line); border-radius: var(--jx-radius); box-shadow: var(--jx-shadow); color: var(--jx-ink); overflow-wrap: anywhere; }
.card:not(.inmate-locator) { margin-bottom: 20px; }
.card .card-body { padding: clamp(20px, 3vw, 32px); color: var(--jx-ink); }
.card .card-image img { border-radius: var(--jx-radius) var(--jx-radius) 0 0; display: block; width: 100%; height: auto; }
.card :is(.card-title, .card-body > h2), .card-title-blu { color: var(--jx-navy); font-size: clamp(1.3rem, 1.1rem + .6vw, 1.55rem); font-weight: 700; line-height: 1.3; }
.card .card-body :is(h2, h3, h4) { color: var(--jx-navy); font-weight: 700; line-height: 1.3; }
.card .card-body h3 { font-size: 1.2rem; }
.card .card-body > h2.text-black { color: var(--jx-navy) !important; } /* facility intro titles carry MDB text-black */
.card > .collapsible-header:first-child { border-radius: var(--jx-radius) var(--jx-radius) 0 0; }
.card-heading-border, .card-top-border, .card-body-border { border-left: 0; border-top: 0; }
.custom-list li { margin-bottom: 8px; }
.callout-footer { border-radius: var(--jx-radius); border: 1px solid var(--jx-line); border-left: 4px solid var(--jx-blue); background: #fff; box-shadow: var(--jx-shadow); }
.callout-footer .callout-badge { background: var(--jx-tint); color: var(--jx-blue); }
.callout-footer .callout-badge svg { stroke: currentColor; }
.callout-footer .callout-title .callout-pill { background: var(--jx-tint); color: var(--jx-blue-dark); font-size: 11px; } /* legacy title-span rule out-specified the pill */
.callout-footer .callout-title span:first-child { color: var(--jx-navy); }

/* ---------- Directory lists (A–Z accordions of states, counties, cities and facilities) ---------- */
.accordion .accordion-item { border: 0; background: transparent; }
.accordion .accordion-item + .accordion-item { border-top: 1px solid var(--jx-line); }
.accordion .collapsible-header, ul.list-links .collapsible-header { align-items: center; gap: 10px; padding: 14px 20px; background: transparent; border: 0; color: var(--jx-navy) !important; font-size: 1.05rem; }
:is(.accordion, ul.list-links) .collapsible-header > b:only-child { display: inline-flex; align-items: center; justify-content: center; min-width: 34px; height: 34px; padding: 0 8px; border-radius: 9px; background: var(--jx-tint); color: var(--jx-blue-dark); }
:is(.accordion, ul.list-links) .collapsible-body { border: 0; background: transparent !important; padding: 0 20px 16px !important; }
:is(.accordion, ul.list-links) .collapsible-body > .row { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 2px 16px; margin: 0; }
:is(.accordion, ul.list-links) .collapsible-body > .row > [class*=col] { width: auto; max-width: none; flex: none; padding: 0; }
.list-link, .list-links .list-link { display: block; margin: 0; padding: 8px 10px; border-radius: 8px; color: var(--jx-link); line-height: 1.4; text-decoration: none; }
.list-link:hover, .list-links .list-link:hover { background: var(--jx-surface); color: var(--jx-blue-dark); }
a.list-link.list-link-highlight { font-weight: 700; color: var(--jx-navy); }
ul.list-links { margin: 0 0 20px; padding: 0; background: #fff; border: 1px solid var(--jx-line); border-radius: var(--jx-radius); box-shadow: var(--jx-shadow); overflow: hidden; }
ul.list-links > li { float: none; }
ul.list-links > li + li { border-top: 1px solid var(--jx-line); }
ul.list-links li:nth-child(2n) .collapsible-header { background-color: transparent; }
/* MDB accordions (FAQs and facility link groups) */
.accordion-button { color: var(--jx-navy); font-weight: 600; background: #fff; box-shadow: none; }
.accordion-button:not(.collapsed) { color: var(--jx-blue-dark); background: var(--jx-surface); box-shadow: inset 0 -1px 0 var(--jx-line); }
.accordion-button:focus { box-shadow: var(--jx-ring); }
.accordion .accordion .accordion-button { border-left: 0; }
.accordion-item:first-of-type, .accordion-item:last-of-type { border-radius: 0; }
/* Tabs and the inline directory filter */
.nav-tabs { border-bottom: 1px solid var(--jx-line); }
.nav-tabs .nav-link { color: var(--jx-muted); font-weight: 600; letter-spacing: .04em; border: 0; border-bottom: 3px solid transparent; }
.nav-tabs .nav-link.active, .nav-tabs .nav-link:hover { color: var(--jx-blue-dark); border-bottom-color: var(--jx-blue); background: transparent; }
.input-field > label { display: block; margin-bottom: 6px; font-size: .85rem; font-weight: 600; color: var(--jx-muted); }
.map-card .collapsible-header { padding: 14px 20px; border-bottom: 1px solid var(--jx-line); font-size: .85rem; letter-spacing: .08em; color: var(--jx-muted) !important; }
.map-card path, .county-map path { transition: fill .15s; }

/* US state map (homepage and county directory) */
#states-wrap path { fill: #e6eff9; stroke: #fff; stroke-width: 1.2; transition: fill .15s; }
#states-wrap text { fill: #4b6a89; font-weight: 500; }
#states-wrap :is(a, g):is(:hover, :focus-visible) path { fill: var(--jx-blue); }
#states-wrap :is(a, g):is(:hover, :focus-visible) text { fill: #fff; }

/* Neighboring-county map (Views/Shared/_CountyMap.cshtml). Rules are scoped under .county-map-panel so they
   out-rank the facility-section .answer rules that follow. */
.county-map-lede { margin: -4px 0 20px; color: var(--jx-muted); }
.county-map-panel { display: grid; gap: 20px; align-items: start; }
@media (min-width: 768px) { .county-map-panel { grid-template-columns: minmax(0, 1.7fr) minmax(220px, 1fr); gap: 28px; } }
.county-map-figure { margin: 0; padding: clamp(12px, 2.5vw, 24px); background: var(--jx-surface); border: 1px solid var(--jx-line); border-radius: 14px; }
.jx-county-map svg { display: block; width: 100%; height: auto; max-height: 560px; overflow: visible; }
:is(.answer, .card) .jx-county-map text { font-size: inherit; line-height: 1; }
.jx-county-map .county-shape { fill: #d6e6f8; stroke: #fff; stroke-width: 1.5px; vector-effect: non-scaling-stroke; stroke-linejoin: round; transition: fill .15s; }
.jx-county-map .county-shape.no-listing { fill: #e9eef3; }
.jx-county-map .county-shape.is-current { fill: var(--jx-blue); }
.jx-county-map .county-link { cursor: pointer; outline: none; }
.jx-county-map .county-link:is(:hover, :focus-visible) .county-shape { fill: #7fb2ea; }
.jx-county-map .county-link:focus-visible .county-shape { stroke: var(--jx-navy); stroke-width: 3px; }
.jx-county-map text { fill: var(--jx-navy); font-family: Roboto, system-ui, sans-serif; font-weight: 600; text-anchor: middle; dominant-baseline: middle; pointer-events: none; paint-order: stroke; stroke: rgba(255, 255, 255, .85); stroke-width: 3px; vector-effect: non-scaling-stroke; stroke-linejoin: round; }
.jx-county-map text.no-listing { fill: #6b7f90; font-weight: 500; }
.jx-county-map text.is-current { fill: #fff; stroke: rgba(11, 37, 69, .45); font-weight: 700; }
@media (max-width: 575.98px) { .jx-county-map text { font-size: 1.3em !important; } }
.county-map-legend { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 14px; }
.county-map-panel .county-map-legend span { display: inline-flex; align-items: center; gap: 8px; color: var(--jx-muted) !important; font-size: .85rem !important; }
.county-map-legend .swatch { display: inline-block; width: 14px; height: 14px; border-radius: 4px; background: #d6e6f8; }
.county-map-legend .swatch.is-current { background: var(--jx-blue); }
.county-map-legend .swatch.no-listing { background: #e9eef3; border: 1px solid #d5dde5; }
.county-map-panel .county-map-links h3 { margin: 0 0 10px; font-size: .8rem !important; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--jx-muted) !important; }
.county-map-links ul { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.county-map-links li { margin: 0; }
.county-map-panel .county-map-links li > a { display: flex; align-items: center; gap: 12px; padding: 11px 14px; border: 1px solid var(--jx-line); border-radius: 10px; background: #fff; color: var(--jx-ink) !important; font-weight: 500; text-decoration: none; transition: border-color .15s, background-color .15s; }
.county-map-panel .county-map-links li > a > i:first-child { color: var(--jx-blue) !important; }
.county-map-panel .county-map-links li > a span { flex: 1; color: inherit !important; }
.county-map-panel .county-map-links li > a .county-map-arrow { color: #9aabbb !important; font-size: .8em !important; transition: transform .15s; }
.county-map-panel .county-map-links li > a:hover { border-color: #b6cfec; background: var(--jx-surface); color: var(--jx-blue-dark) !important; }
.county-map-panel .county-map-links li > a:hover .county-map-arrow { color: var(--jx-blue) !important; transform: translateX(2px); }
@media (min-width: 576px) and (max-width: 767.98px) { .county-map-links ul { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------- Buttons and form controls ---------- */
.btn { border-radius: var(--jx-radius-sm) !important; box-shadow: none; font-weight: 600; letter-spacing: .02em; }
.btn:not(.btn-floating) { margin-bottom: 10px; }
.btn:is(:hover, :focus) { box-shadow: 0 4px 14px rgba(11, 37, 69, .16); }
.btn-primary:not(.red):not(.btn-blue):not(.btn-dark-blue) { background-color: var(--jx-cta); color: #fff; }
.btn-primary:not(.red):not(.btn-blue):not(.btn-dark-blue):is(:hover, :focus) { background-color: var(--jx-cta-hover); color: #fff; box-shadow: var(--jx-cta-shadow); }
#chat-send:is(:hover, :focus) { background-color: var(--jx-cta-hover) !important; }
/* Animated CTA on state prison pages (the style.css shimmer was teal) */
.shimmer { background-image: linear-gradient(135deg, var(--jx-cta) 0%, var(--jx-cta) 40%, #5d9be0 50%, var(--jx-cta) 60%, var(--jx-cta) 100%) !important; background-size: 300% !important; }
.btn-blue, .btn-dark-blue { background-color: var(--jx-blue) !important; }
.btn-blue:is(:hover, :focus), .btn-dark-blue:is(:hover, :focus) { background-color: var(--jx-blue-dark) !important; }
.btn-large { height: auto; min-height: 48px; line-height: 1.3; padding: 13px 24px; display: inline-flex; align-items: center; justify-content: center; }
.form-control, select.form-control { min-height: 48px; border: 1.5px solid var(--jx-field); border-radius: var(--jx-radius-sm); color: var(--jx-ink); background-color: #fff; font-size: 1rem; }
textarea.form-control { min-height: 120px; }
.form-control:focus { border-color: var(--jx-blue); box-shadow: var(--jx-ring); }
.form-control::placeholder { color: #6b7f90; }
.form-label, form label { color: var(--jx-ink); font-weight: 500; }

/* ---------- Inmate locator (shared partial) ---------- */
.inmate-locator { border-radius: var(--jx-radius); }
.inmate-locator .card-body { padding: clamp(20px, 3.5vw, 36px); }
.inmate-locator .inmate-locator-title, .inmate-locator h2 { margin: 0 0 22px; text-align: center; color: var(--jx-navy); font-size: clamp(1.35rem, 1.05rem + 1.1vw, 1.85rem) !important; font-weight: 700; line-height: 1.25 !important; }
.inmate-locator .form-group { margin-bottom: 0; }
.inmate-locator .row.no-gutters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; margin: 0; }
.inmate-locator .row.no-gutters > .form-group { width: auto; max-width: none; flex: none; margin: 0; padding-left: 0 !important; padding-right: 0 !important; }
.inmate-locator .row.no-gutters > .form-group:nth-child(-n+2), .inmate-locator .row.no-gutters > .form-group:last-child { grid-column: 1 / -1; }
@media (min-width: 768px) { .inmate-locator .row.no-gutters > .form-group:nth-child(-n+2) { grid-column: auto; } }
@media (min-width: 992px) {
  .inmate-locator .row.no-gutters { grid-template-columns: repeat(4, minmax(0, 1fr)) auto; }
  .inmate-locator .row.no-gutters > .form-group:last-child { grid-column: auto; }
}
.inmate-locator label { font-size: .95rem; font-weight: 500; }
.inmate-locator .btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; height: 48px; min-width: 148px; margin: 0; padding: 0 28px; border: 0; background-color: var(--jx-cta) !important; color: #fff !important; font-size: 1rem; font-weight: 600; text-transform: none; letter-spacing: .01em; box-shadow: var(--jx-cta-shadow); transition: background-color .15s, box-shadow .15s, transform .15s; }
.inmate-locator .btn i { font-size: .95em; }
.inmate-locator .btn:is(:hover, :focus-visible) { background-color: var(--jx-cta-hover) !important; box-shadow: 0 10px 22px rgba(13, 71, 161, .32); transform: translateY(-1px); }
.inmate-locator .btn:active { transform: none; box-shadow: var(--jx-cta-shadow); }
/* Sticky "free search" bar emitted once per page by the locator partial */
#search-footer { position: fixed; left: 0; bottom: 0; z-index: 2; display: none; width: 100%; padding: 14px 70px 14px 0; background: var(--jx-navy); color: #fff; box-shadow: 0 -8px 30px rgba(3, 18, 38, .25); font-size: 1.05rem; }
#search-footer strong { color: #fff; font-weight: 600; letter-spacing: .03em; }
#search-footer .btn { margin: 0; background-color: var(--jx-cta) !important; }
#search-footer .btn:is(:hover, :focus) { background-color: #fff !important; color: var(--jx-navy) !important; }
#close-search { position: absolute; top: 50%; right: 8px; transform: translateY(-50%); color: rgba(255, 255, 255, .8); }
#close-search:hover { color: #fff; }
@media (max-width: 767.98px) {
  #search-footer { padding: 8px 56px 8px 12px; font-size: .85rem; }
  #search-footer strong { font-size: .8rem; line-height: 1.25; }
  #search-footer .btn { padding: 0 14px; font-size: .85rem; }
  #close-search { right: 4px; }
}

/* ---------- Facility page sections (collapsible "learn more" panels) ---------- */
.question-text { display: flex; align-items: center; gap: 16px; margin-bottom: 14px; cursor: pointer; font-weight: 700; }
.question-text :is(h2, span):not(.icon-wrap) { margin: 0; color: var(--jx-navy); font-size: clamp(1.25rem, 1.05rem + .7vw, 1.5rem); font-weight: 700; line-height: 1.3; }
.question-text .icon-wrap { flex: none; display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 14px; background: var(--jx-tint); }
.question-text .icon { max-width: 34px; max-height: 34px; }
.question-text .section-disclosure { gap: 16px; color: inherit; }
.question-text .section-disclosure::after { flex: none; display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: var(--jx-surface); color: var(--jx-blue-dark); font-size: 22px; font-weight: 400; }
.question + .question { border-top: 1px solid var(--jx-line); margin-top: 28px !important; padding-top: 28px !important; }
/* Only the site's direct question panels collapse; stored FAQs also use .answer. */
.question > .answer { position: relative; max-height: 8rem; overflow: hidden; }
.question > .answer::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, #fff 0%, rgba(255, 255, 255, 0) 75%); pointer-events: none; }
.question > .answer.visible { max-height: none; }
.question > .answer.visible::after { background: none; }
.answer .btn { margin-top: 1.5rem; }
.answer *:not(.btn) { font-size: 1rem; line-height: 1.65; color: var(--jx-ink) !important; }
.answer :is(h2, h3, h4, strong, b):not(.btn) { color: var(--jx-navy) !important; }
.answer :is(h2, h3, h4) { font-size: 1.1rem !important; font-weight: 700; margin-top: 1.25rem; }
.answer a:not(.btn), .answer a:not(.btn) span { color: var(--jx-link) !important; }
.answer ul a.nav-link { line-height: 48px !important; }
.show-less-link { display: none; }
.answer a.learn-more-link { position: absolute; bottom: 0; left: 0; z-index: 2; display: flex; justify-content: center; width: 100%; font-weight: 600; }
.answer a.learn-more-link span, .answer a.learn-more-link:not(:has(span)) { display: inline-flex; align-items: center; gap: 6px; padding: 8px 18px; border: 1px solid var(--jx-line); border-radius: 999px; background: #fff; box-shadow: var(--jx-shadow); color: var(--jx-blue-dark) !important; font-size: .9rem; line-height: 1.2; }
.answer.visible .learn-more-link { display: none; }
.answer.visible .show-less-link { display: block; margin: 1.25em 0 0; text-align: center; font-weight: 600; font-size: .9rem; }
.answer.visible .show-less-link, .answer.visible .show-less-link * { color: var(--jx-muted) !important; }
.phone-number-list { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 24px; }
@media (max-width: 575.98px) { .phone-number-list { grid-template-columns: 1fr; } }
.section-anchor { position: absolute; margin-top: -70px; }
#federal-prison-search { display: none; }

/* ---------- Facility intro: section links, key facts, related directories ---------- */
.facility-subhead { margin: 22px 0 10px; color: var(--jx-muted) !important; font-size: .8rem !important; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.facility-link-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 20px; }
@media (min-width: 992px) { .facility-link-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.facility-link-grid > a { display: flex; align-items: center; gap: 8px; padding: 7px 0; line-height: 1.35; text-decoration: none; }
.facility-link-grid > a::before { content: '\f054'; font-family: 'Font Awesome 5 Free'; font-weight: 900; font-size: 9px; color: #9aabbb; }
.facility-link-grid > a:hover { text-decoration: underline; }
.facility-facts { display: grid; gap: 12px; margin: 22px 0 6px; }
@media (min-width: 768px) { .facility-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.facility-fact { display: flex; align-items: flex-start; gap: 14px; padding: 16px 18px; background: var(--jx-surface); border: 1px solid var(--jx-line); border-radius: 12px; }
.facility-fact-icon { flex: none; display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 10px; background: #fff; color: var(--jx-blue); box-shadow: 0 1px 2px rgba(11, 37, 69, .08); }
.facility-fact h3.facility-fact-label { margin: 0 0 4px; color: var(--jx-muted) !important; font-size: .78rem !important; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; line-height: 1.3; }
.facility-fact-value { display: block; margin: 0; color: var(--jx-ink); font-style: normal; line-height: 1.55; overflow-wrap: anywhere; }
a.facility-fact-value { font-size: 1.15rem; font-weight: 700; color: var(--jx-navy); text-decoration: none; }
a.facility-fact-value:hover { color: var(--jx-blue); text-decoration: underline; }
.facility-fact-action { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; font-size: .9rem; font-weight: 600; }
.facility-fact-action i { font-size: .75em; }

/* ---------- Facility page buttons ---------- */
.jail-buttons .btn, .inmate-search-button { background-color: #fff !important; color: var(--jx-blue-dark) !important; border: 1px solid var(--jx-line); box-shadow: 0 1px 2px rgba(11, 37, 69, .06); font-size: .9rem; font-weight: 600; letter-spacing: .01em; line-height: 1.25; }
/* The buttons carry MDB d-inline-block/p-0 utilities, which are !important. */
.jail-buttons .btn { display: inline-flex !important; align-items: center; justify-content: center; min-height: 52px; height: auto; padding: 8px 10px !important; white-space: normal; }
.jail-buttons-frame { margin-top: 24px; }
.jail-buttons .btn:is(:hover, :focus), .inmate-search-button:is(:hover, :focus) { background-color: var(--jx-blue) !important; border-color: var(--jx-blue); color: #fff !important; box-shadow: 0 6px 16px rgba(21, 101, 192, .25); }
.answer .inmate-search-button, .card-body > .inmate-search-button { background-color: var(--jx-cta) !important; color: #fff !important; border-color: var(--jx-cta); }
.answer .inmate-search-button:is(:hover, :focus) { background-color: var(--jx-cta-hover) !important; }
.jail-buttons-frame::before { background: linear-gradient(to right, var(--jx-surface), rgba(244, 247, 251, 0)) !important; }
.jail-buttons-frame::after { background: linear-gradient(to left, var(--jx-surface), rgba(244, 247, 251, 0)) !important; }
.jail-buttons-indicator span { background: var(--jx-blue) !important; }

/* ---------- Card grids, search boxes and modals ---------- */
.card-grid { display: grid; grid-template-columns: 1fr; gap: 20px; margin-bottom: 20px; }
@media (min-width: 768px) { .card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.card-grid .card { margin-bottom: 0; }
.search-box .card-body { display: flex; flex-direction: column; height: 100%; }
.search-box .card-body p { flex: 1; color: var(--jx-muted); }
.search-box .card-title { display: flex; align-items: center; gap: 12px; font-size: 1.2rem !important; }
.search-box .card-title i, .card-title > i:first-child { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 11px; background: var(--jx-tint); color: var(--jx-blue); font-size: 16px; }
.search-box .btn { margin-bottom: 0; }
.modal-content { border: 0; border-radius: var(--jx-radius); box-shadow: var(--jx-shadow-lg); }
.modal-header { border-bottom: 1px solid var(--jx-line); }
.modal-title { color: var(--jx-navy); font-weight: 700; }
.modal-body .select-wrapper { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 2px 12px; max-height: 60vh; overflow-y: auto; margin: 12px 0 0; padding: 0; }
.modal-body .select-wrapper a { display: block; padding: 8px 10px; border-radius: 8px; color: var(--jx-link); text-decoration: none; }
.modal-body .select-wrapper a:hover { background: var(--jx-surface); color: var(--jx-blue-dark); }

/* ---------- Tables and pagination ---------- */
main table.table { --mdb-table-bg: transparent; color: var(--jx-ink); }
main table.table :is(th, td) { border-color: var(--jx-line); vertical-align: top; }
main table.table thead th { background: var(--jx-surface); color: var(--jx-navy); font-weight: 600; }
.pagination .page-link { border-radius: 8px !important; color: var(--jx-link); }
.pagination .page-item.active .page-link { background: var(--jx-blue); color: #fff; }

/* ---------- Footer ---------- */
.site-footer { margin: 0; padding: 56px 0 0; background: var(--jx-navy); color: rgba(255, 255, 255, .78); font-size: .95rem; line-height: 1.6; }
.site-footer-grid { display: grid; gap: 32px; }
@media (min-width: 576px) { .site-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 992px) { .site-footer-grid { grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr)); gap: 40px; } }
.site-footer-brand img { display: block; width: 190px; height: auto; margin-bottom: 14px; }
.site-footer-brand p { max-width: 30em; margin: 0 0 18px; }
.site-footer .footer-heading { margin: 0 0 14px; color: #fff; font-size: .8rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.site-footer ul { margin: 0; padding: 0; list-style: none; }
.site-footer li + li { margin-top: 8px; }
.site-footer a { color: rgba(255, 255, 255, .86); text-decoration: none; }
.site-footer a:hover { color: #fff; text-decoration: underline; }
.site-footer-social { display: flex; gap: 10px; }
.site-footer-social li + li { margin-top: 0; }
.site-footer-social a { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 12px; background: rgba(255, 255, 255, .08); color: #fff; transition: background-color .15s; }
.site-footer-social a:hover { background: var(--jx-blue); text-decoration: none; }
.site-footer-bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin-top: 44px; padding: 20px 0; border-top: 1px solid rgba(255, 255, 255, .12); font-size: .875rem; color: rgba(255, 255, 255, .7); }
.site-footer-bottom ul { display: flex; flex-wrap: wrap; gap: 6px 20px; }
.site-footer-bottom li + li { margin-top: 0; }
#siteseal img { display: block; }

/* Readable measure: stored lists and subheadings follow the paragraph limit from public-accessibility.css */
@media (min-width: 992px) { .paragraphs > :is(ul, ol, h2, h3, h4), .answer > :is(h2, h3, h4) { max-width: 72ch; } }

/* ---------- Small screens ---------- */
@media (max-width: 600px) {
  .section.blue.darken-3 p { font-size: 1rem; }
  .card .card-body { padding: 20px; }
  :is(.accordion, ul.list-links) .collapsible-body > .row { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
  .btn.d-block { margin-left: 0; margin-right: 0; }
  .card-grid { display: grid; }
}
@media (prefers-reduced-motion: reduce) {
  .navbar .dropdown-toggle-icon, .side-nav .drawer-submenu-toggle::after { transition: none; }
}
