/* ==========================================================================
   4Search — app.css
   Single consolidated stylesheet. Replaces: CDN Google Fonts, CDN Font Awesome,
   228KB Bootstrap CSS, and a 1,500-line inline <style> block.

   Order matters:
     1) Fonts (self-hosted Inter, 3 weights)
     2) Reset / reboot
     3) Bootstrap-compat layer (only the ~196 classes actually used)
     4) Icon (.ico) + share popover
     5) Site design system (migrated verbatim from the old inline <style>)
   The design-system section comes last so its overrides win, exactly as when
   Bootstrap loaded first and the inline <style> overrode it.
   ========================================================================== */

/* ---------------------------------------------------------------- 1. FONTS */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/Inter/inter-v20-latin-regular.woff2") format("woff2");
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/Inter/inter-v20-latin-600.woff2") format("woff2");
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/Inter/inter-v20-latin-700.woff2") format("woff2");
}

/* --------------------------------------------------------------- 2. RESET */
:root {
  /* Font stack — css.theme.php overrides this to a pure system stack when the webfont toggle is off */
  --font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --bs-body-color: #0e1116;
  --bs-body-bg: #ffffff;
  --bs-secondary-color: rgba(14,17,22,.6);
  --bs-primary: #0d6efd;
  --bs-primary-rgb: 13,110,253;
  --bs-secondary: #6c757d;
  --bs-success: #198754;
  --bs-danger: #dc3545;
  --bs-warning: #ffc107;
  --bs-info: #0dcaf0;
  --bs-light: #f8f9fa;
  --bs-dark: #212529;
  --bs-border-color: #dee2e6;
}

*, *::before, *::after { box-sizing: border-box; }

p { margin-top: 0; margin-bottom: 1rem; }
ul, ol { margin-top: 0; margin-bottom: 1rem; }
button, input, optgroup, select, textarea { font-family: inherit; font-size: 100%; line-height: 1.5; margin: 0; }
button, [type="button"], [type="submit"], [type="reset"] { -webkit-appearance: button; }
button:not(:disabled) { cursor: pointer; }
img, svg { vertical-align: middle; }
img { max-width: 100%; }
address { font-style: normal; line-height: inherit; margin-bottom: 1rem; }
[hidden] { display: none !important; }

/* ------------------------------------------------ 3. BOOTSTRAP-COMPAT LAYER */

/* Containers */
.container, .container-fluid, .container-lg {
  width: 100%;
  padding-right: .75rem;
  padding-left: .75rem;
  margin-right: auto;
  margin-left: auto;
}
@media (min-width: 576px) { .container { max-width: 540px; } }
@media (min-width: 768px) { .container { max-width: 720px; } }
@media (min-width: 992px) { .container, .container-lg { max-width: 960px; } }
@media (min-width: 1200px) { .container, .container-lg { max-width: 1140px; } }
@media (min-width: 1400px) { .container, .container-lg { max-width: 1320px; } }

/* Grid */
.row {
  --gx: 1.5rem;
  --gy: 0;
  display: flex;
  flex-wrap: wrap;
  margin-top: calc(-1 * var(--gy));
  margin-right: calc(-.5 * var(--gx));
  margin-left: calc(-.5 * var(--gx));
}
.row > * {
  flex-shrink: 0;
  width: 100%;
  max-width: 100%;
  padding-right: calc(var(--gx) * .5);
  padding-left: calc(var(--gx) * .5);
  margin-top: var(--gy);
}
.g-0, .gx-0 { --gx: 0; }
.g-0 { --gy: 0; }

.col { flex: 1 0 0%; }
.col-auto { flex: 0 0 auto; width: auto; }
.col-1  { flex: 0 0 auto; width: 8.33333333%; }
.col-2  { flex: 0 0 auto; width: 16.66666667%; }
.col-3  { flex: 0 0 auto; width: 25%; }
.col-4  { flex: 0 0 auto; width: 33.33333333%; }
.col-5  { flex: 0 0 auto; width: 41.66666667%; }
.col-6  { flex: 0 0 auto; width: 50%; }
.col-7  { flex: 0 0 auto; width: 58.33333333%; }
.col-8  { flex: 0 0 auto; width: 66.66666667%; }
.col-9  { flex: 0 0 auto; width: 75%; }
.col-10 { flex: 0 0 auto; width: 83.33333333%; }
.col-11 { flex: 0 0 auto; width: 91.66666667%; }
.col-12 { flex: 0 0 auto; width: 100%; }

@media (min-width: 576px) {
  .col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}
  .col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}
  .col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}
  .col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}
  .col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}
  .col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}
  .order-sm-2{order:2}
}
@media (min-width: 768px) {
  .col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}
  .col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}
  .col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}
  .col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}
  .col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}
  .col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}
  .order-md-1{order:1}.order-md-2{order:2}
  .mb-lg-0{}
}
@media (min-width: 992px) {
  .col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}
  .col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}
  .col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}
  .col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}
  .col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}
  .col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}
  .d-lg-none{display:none !important}
  .mb-lg-0{margin-bottom:0 !important}
}
@media (min-width: 1200px) {
  .col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}
  .col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}
  .col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}
  .col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}
  .col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}
  .col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}
}
.order-1 { order: 1; }
.order-2 { order: 2; }
.order-3 { order: 3; }

/* Display */
.d-none { display: none !important; }
.d-block { display: block !important; }
.d-flex { display: flex !important; }
.d-inline-flex { display: inline-flex !important; }
.d-grid { display: grid !important; }

/* Flex */
.flex-row { flex-direction: row !important; }
.flex-column { flex-direction: column !important; }
.flex-wrap { flex-wrap: wrap !important; }
.flex-grow-1 { flex-grow: 1 !important; }
.flex-shrink-0 { flex-shrink: 0 !important; }
.justify-content-center { justify-content: center !important; }
.justify-content-end { justify-content: flex-end !important; }
.justify-content-between { justify-content: space-between !important; }
.justify-content-evenly { justify-content: space-evenly !important; }
.align-items-start { align-items: flex-start !important; }
.align-items-center { align-items: center !important; }
.align-items-end { align-items: flex-end !important; }
.align-items-baseline { align-items: baseline !important; }
.align-items-stretch { align-items: stretch !important; }
.gap-1 { gap: .25rem !important; }
.gap-2 { gap: .5rem !important; }
.gap-3 { gap: 1rem !important; }

/* Sizing / position */
.w-100 { width: 100% !important; }
.h-100 { height: 100% !important; }
.position-relative { position: relative !important; }
.float-end { float: right !important; }
.sticky-top { position: sticky; top: 0; z-index: 1020; }

/* Spacing (0=.0 1=.25 2=.5 3=1 4=1.5 5=3 6=4.5rem) */
.m-0{margin:0 !important}.m-1{margin:.25rem !important}.m-2{margin:.5rem !important}.m-3{margin:1rem !important}
.mt-0{margin-top:0 !important}.mt-1{margin-top:.25rem !important}.mt-2{margin-top:.5rem !important}.mt-3{margin-top:1rem !important}.mt-4{margin-top:1.5rem !important}
.mb-0{margin-bottom:0 !important}.mb-1{margin-bottom:.25rem !important}.mb-2{margin-bottom:.5rem !important}.mb-3{margin-bottom:1rem !important}.mb-4{margin-bottom:1.5rem !important}.mb-6{margin-bottom:4.5rem !important}
.ms-1{margin-left:.25rem !important}.ms-2{margin-left:.5rem !important}.ms-3{margin-left:1rem !important}
.me-0{margin-right:0 !important}.me-1{margin-right:.25rem !important}.me-2{margin-right:.5rem !important}.me-3{margin-right:1rem !important}
.mx-0{margin-right:0 !important;margin-left:0 !important}.mx-1{margin-right:.25rem !important;margin-left:.25rem !important}
.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}
.p-0{padding:0 !important}.p-1{padding:.25rem !important}.p-2{padding:.5rem !important}.p-3{padding:1rem !important}
.pt-0{padding-top:0 !important}.pt-2{padding-top:.5rem !important}.pt-4{padding-top:1.5rem !important}
.pb-0{padding-bottom:0 !important}.pb-1{padding-bottom:.25rem !important}.pb-2{padding-bottom:.5rem !important}.pb-3{padding-bottom:1rem !important}
.ps-3{padding-left:1rem !important}
.px-3{padding-right:1rem !important;padding-left:1rem !important}
.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}

/* Text */
.text-center { text-align: center !important; }
.text-white { color: #fff !important; }
.text-muted, .text-body-secondary { color: #6c757d !important; }
.text-reset { color: inherit !important; }
.text-success { color: #198754 !important; }
.text-warning { color: #ffc107 !important; }
.text-uppercase { text-transform: uppercase !important; }
.text-decoration-none { text-decoration: none !important; }
.text-decoration-line-through { text-decoration: line-through !important; }
.fw-bold { font-weight: 700 !important; }
.fw-semibold { font-weight: 600 !important; }
.fs-4 { font-size: 1.5rem !important; }
.small { font-size: .875em; }
.link-underline { text-decoration: underline !important; }
.link-underline-opacity-0 { text-decoration-color: transparent !important; }

/* Backgrounds */
.bg-dark { background-color: #212529 !important; }
.bg-white { background-color: #fff !important; }
.bg-transparent { background-color: transparent !important; }
.bg-danger { background-color: #dc3545 !important; }
.bg-success { background-color: #198754 !important; }
.bg-warning { background-color: #ffc107 !important; }
.bg-opacity-10 { --bg-opacity: .1; }
.text-bg-secondary { color: #fff !important; background-color: #6c757d !important; }
.text-bg-danger { color: #fff !important; background-color: #dc3545 !important; }
.text-bg-light { color: #000 !important; background-color: #f8f9fa !important; }

/* Borders / radius / shadow */
.border { border: 1px solid #dee2e6 !important; }
.border-bottom { border-bottom: 1px solid #dee2e6 !important; }
.border-danger { border-color: #dc3545 !important; }
.border-success { border-color: #198754 !important; }
.rounded-3 { border-radius: .5rem !important; }
.shadow-sm { box-shadow: 0 .125rem .25rem rgba(0,0,0,.075) !important; }
.shadow-lg { box-shadow: 0 1rem 3rem rgba(0,0,0,.175) !important; }

/* Misc */
.img-fluid { max-width: 100%; height: auto; }
.visually-hidden {
  position: absolute !important; width: 1px !important; height: 1px !important;
  padding: 0 !important; margin: -1px !important; overflow: hidden !important;
  clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important;
}

/* Buttons (variable-driven so .btn-secondary--search etc. keep working) */
.btn {
  --bs-btn-padding-x: .75rem; --bs-btn-padding-y: .375rem; --bs-btn-font-size: 1rem;
  --bs-btn-font-weight: 400; --bs-btn-line-height: 1.5; --bs-btn-color: #212529;
  --bs-btn-bg: transparent; --bs-btn-border-width: 1px; --bs-btn-border-color: transparent;
  --bs-btn-border-radius: .375rem;
  display: inline-block; padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x);
  font-family: inherit; font-size: var(--bs-btn-font-size); font-weight: var(--bs-btn-font-weight);
  line-height: var(--bs-btn-line-height); color: var(--bs-btn-color); text-align: center;
  text-decoration: none; vertical-align: middle; cursor: pointer; user-select: none;
  background-color: var(--bs-btn-bg);
  border: var(--bs-btn-border-width) solid var(--bs-btn-border-color);
  border-radius: var(--bs-btn-border-radius);
  transition: color .15s ease, background-color .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.btn:hover {
  color: var(--bs-btn-hover-color, var(--bs-btn-color));
  background-color: var(--bs-btn-hover-bg, var(--bs-btn-bg));
  border-color: var(--bs-btn-hover-border-color, var(--bs-btn-border-color));
}
.btn:focus-visible { outline: 0; box-shadow: 0 0 0 .25rem rgba(13,110,253,.25); }
.btn:disabled, .btn.disabled { opacity: .65; pointer-events: none; }
.btn-sm { --bs-btn-padding-y: .25rem; --bs-btn-padding-x: .5rem; --bs-btn-font-size: .875rem; --bs-btn-border-radius: .25rem; }
.btn-lg { --bs-btn-padding-y: .5rem; --bs-btn-padding-x: 1rem; --bs-btn-font-size: 1.25rem; --bs-btn-border-radius: .5rem; }
.btn-primary { --bs-btn-color:#fff; --bs-btn-bg:#0d6efd; --bs-btn-border-color:#0d6efd; --bs-btn-hover-color:#fff; --bs-btn-hover-bg:#0b5ed7; --bs-btn-hover-border-color:#0a58ca; }
.btn-secondary { --bs-btn-color:#fff; --bs-btn-bg:#6c757d; --bs-btn-border-color:#6c757d; --bs-btn-hover-color:#fff; --bs-btn-hover-bg:#5c636a; --bs-btn-hover-border-color:#565e64; }
.btn-warning { --bs-btn-color:#000; --bs-btn-bg:#ffc107; --bs-btn-border-color:#ffc107; --bs-btn-hover-color:#000; --bs-btn-hover-bg:#ffca2c; --bs-btn-hover-border-color:#ffc720; }
.btn-light { --bs-btn-color:#000; --bs-btn-bg:#f8f9fa; --bs-btn-border-color:#f8f9fa; --bs-btn-hover-color:#000; --bs-btn-hover-bg:#d3d4d5; --bs-btn-hover-border-color:#c6c7c8; }
.btn-outline-primary { --bs-btn-color:#0d6efd; --bs-btn-border-color:#0d6efd; --bs-btn-hover-color:#fff; --bs-btn-hover-bg:#0d6efd; --bs-btn-hover-border-color:#0d6efd; }
.btn-outline-secondary { --bs-btn-color:#6c757d; --bs-btn-border-color:#6c757d; --bs-btn-hover-color:#fff; --bs-btn-hover-bg:#6c757d; --bs-btn-hover-border-color:#6c757d; }
.btn-outline-light { --bs-btn-color:#f8f9fa; --bs-btn-border-color:#f8f9fa; --bs-btn-hover-color:#000; --bs-btn-hover-bg:#f8f9fa; --bs-btn-hover-border-color:#f8f9fa; }
.btn-outline-dark { --bs-btn-color:#212529; --bs-btn-border-color:#212529; --bs-btn-hover-color:#fff; --bs-btn-hover-bg:#212529; --bs-btn-hover-border-color:#212529; }
.btn-link {
  --bs-btn-color:#0d6efd; --bs-btn-hover-color:#0a58ca; --bs-btn-border-color:transparent;
  text-decoration: underline; font-weight: 400;
}
.btn-link:hover { text-decoration: underline; }
.btn-close {
  box-sizing: content-box; width: 1em; height: 1em; padding: .25em; border: 0;
  border-radius: .375rem; background: transparent; opacity: .5; cursor: pointer;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3E%3C/svg%3E") center/1em no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3E%3C/svg%3E") center/1em no-repeat;
  background-color: currentColor;
}
.btn-close:hover { opacity: .75; }

/* Dropdowns */
.dropdown { position: relative; }
.dropdown-toggle::after {
  display: inline-block; margin-left: .255em; vertical-align: .255em; content: "";
  border-top: .3em solid; border-right: .3em solid transparent;
  border-bottom: 0; border-left: .3em solid transparent;
}
.dropdown-toggle.no-arrow::after, .no-arrow::after { display: none; }
.dropdown-menu {
  position: absolute; z-index: 1000; display: none; min-width: 10rem; padding: .5rem 0;
  margin: 0; font-size: 1rem; color: #212529; text-align: left; list-style: none;
  background-color: #fff; background-clip: padding-box;
  border: 1px solid rgba(0,0,0,.15); border-radius: .375rem;
}
.dropdown-menu.show { display: block; }
.dropdown-menu-end { right: 0; left: auto; }
.dropdown-item {
  display: block; width: 100%; padding: .25rem 1rem; clear: both; font-weight: 400;
  color: #212529; text-align: inherit; text-decoration: none; white-space: nowrap;
  background: transparent; border: 0; cursor: pointer;
}
.dropdown-item:hover, .dropdown-item:focus { background-color: #e9ecef; color: #1e2125; }
.dropdown-divider { height: 0; margin: .5rem 0; overflow: hidden; border-top: 1px solid rgba(0,0,0,.15); }

/* Nav / tabs */
.nav { display: flex; flex-wrap: wrap; padding-left: 0; margin-bottom: 0; list-style: none; }
.nav-item {}
.nav-link {
  display: block; padding: .5rem 1rem; color: #0d6efd; text-decoration: none;
  background: none; border: 0; transition: color .15s ease;
}
.nav-link:hover { color: #0a58ca; }
.nav-tabs { border-bottom: 1px solid #dee2e6; }
.nav-underline { gap: 1rem; }
.nav-underline .nav-link { padding: .25rem 0; border-bottom: 2px solid transparent; }
.nav-underline .nav-link.active { font-weight: 600; border-bottom-color: currentColor; }

/* Navbar (minimal — used only on logo bar) */
.navbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; }
.navbar-expand-lg { flex-wrap: nowrap; }

/* Card */
.card {
  position: relative; display: flex; flex-direction: column; min-width: 0;
  word-wrap: break-word; background-color: #fff; background-clip: border-box;
  border: 1px solid rgba(0,0,0,.175); border-radius: .375rem;
}
.card-body { flex: 1 1 auto; padding: 1rem; }
.card-title { margin-bottom: .5rem; }

/* Badge */
.badge {
  display: inline-block; padding: .35em .65em; font-size: .75em; font-weight: 700;
  line-height: 1; color: #fff; text-align: center; white-space: nowrap;
  vertical-align: baseline; border-radius: .375rem;
}

/* Breadcrumb */
.breadcrumb { display: flex; flex-wrap: wrap; padding: 0; margin: 0; list-style: none; }
.breadcrumb-item + .breadcrumb-item { padding-left: .5rem; }
.breadcrumb-item + .breadcrumb-item::before { float: left; padding-right: .5rem; color: #6c757d; content: "/"; }

/* Forms */
.form-control {
  display: block; width: 100%; padding: .375rem .75rem; font-size: 1rem;
  font-weight: 400; line-height: 1.5; color: #212529; background-color: #fff;
  background-clip: padding-box; border: 1px solid #ced4da; border-radius: .375rem;
  transition: border-color .15s ease, box-shadow .15s ease; appearance: none;
}
.form-control:focus { border-color: #86b7fe; outline: 0; box-shadow: 0 0 0 .25rem rgba(13,110,253,.25); }
.form-control-lg { padding: .5rem 1rem; font-size: 1.25rem; border-radius: .5rem; }
.form-select {
  display: block; width: 100%; padding: .375rem 2.25rem .375rem .75rem; font-size: 1rem;
  line-height: 1.5; color: #212529; background-color: #fff;
  border: 1px solid #ced4da; border-radius: .375rem; appearance: none;
}
.form-check { display: block; min-height: 1.5rem; padding-left: 1.5em; margin-bottom: .125rem; }
.form-check-input {
  width: 1em; height: 1em; margin-top: .25em; margin-left: -1.5em; vertical-align: top;
  background-color: #fff; border: 1px solid rgba(0,0,0,.25); appearance: none; border-radius: .25em;
}
.form-check-input:checked { background-color: #0d6efd; border-color: #0d6efd; }
.form-check-label {}
.form-floating { position: relative; }

/* Input group */
.input-group { position: relative; display: flex; flex-wrap: wrap; align-items: stretch; width: 100%; }
.input-group > .form-control, .input-group > .form-select { position: relative; flex: 1 1 auto; width: 1%; min-width: 0; }
.input-group > :not(:first-child) { margin-left: -1px; border-top-left-radius: 0; border-bottom-left-radius: 0; }
.input-group > :not(:last-child) { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.input-group-lg > .form-control, .input-group-lg > .btn { padding: .5rem 1rem; font-size: 1.25rem; border-radius: .5rem; }
.input-group-sm > .form-control, .input-group-sm > .btn { padding: .25rem .5rem; font-size: .875rem; border-radius: .25rem; }

/* Alert */
.alert { position: relative; padding: 1rem; margin-bottom: 1rem; border: 1px solid transparent; border-radius: .375rem; }
.alert-secondary { color: #41464b; background-color: #e2e3e5; border-color: #d3d6d8; }

/* Collapse / tabs / fade */
.collapse:not(.show) { display: none; }
.tab-content > .tab-pane { display: none; }
.tab-content > .active { display: block; }
.fade { transition: opacity .15s linear; }
.fade:not(.show) { opacity: 0; }

/* Offcanvas (legacy markup is disabled, kept minimal for safety) */
.offcanvas { position: fixed; bottom: 0; z-index: 1045; background-color: #fff; }
.offcanvas-start { top: 0; left: 0; width: 320px; transform: translateX(-100%); }
.offcanvas-end { top: 0; right: 0; width: 320px; transform: translateX(100%); }
.offcanvas.show { transform: none; }
.offcanvas-header { display: flex; align-items: center; justify-content: space-between; padding: 1rem; }
.offcanvas-body { flex-grow: 1; padding: 1rem; overflow-y: auto; }

/* ------------------------------------------------ 4. ICONS + SHARE POPOVER */

/* Inline-SVG icons (Font Awesome replacement) */
.ico {
  display: inline-block; width: 1em; height: 1em; vertical-align: -.125em;
  fill: currentColor; flex-shrink: 0;
}
.sn-icon.ico { width: 16px; height: 16px; vertical-align: middle; }
.nav .ico, .dropdown-item .ico { vertical-align: -.15em; }
@keyframes fs-spin { to { transform: rotate(360deg); } }
.ico.spin { animation: fs-spin .8s linear infinite; }

/* Share popover — styles the actual markup emitted by custom.js
   (.share-header/.share-close/.share-copy), which the old CSS never covered. */
.share-header {
  display: flex; align-items: center; justify-content: space-between;
  gap: .5rem; font-size: .9rem; margin-bottom: .5rem; padding-bottom: .35rem;
  border-bottom: 1px solid rgba(128,128,128,.25);
}
.share-close {
  border: 0; background: transparent; color: inherit; font-size: 1.1rem;
  line-height: 1; cursor: pointer; padding: 0 .25rem; opacity: .8;
}
.share-close:hover { opacity: 1; }
.share-btn svg { width: 18px; height: 18px; fill: currentColor; }
.share-copy { display: flex; gap: .5rem; margin-top: .5rem; }
.share-copy input {
  flex: 1; min-width: 0; border-radius: .5rem; padding: .4rem .55rem; font-size: .85rem;
  border: 1px solid rgba(128,128,128,.35); background: rgba(128,128,128,.08); color: inherit;
}

/* ============================================================================
   4b. EXTENDED COMPAT — utilities used by the content/marketing pages
       (services/*, advertise, about) that the search UI does not use.
   ============================================================================ */

/* Display headings + lead + heading utility classes */
.display-1{font-size:5rem;font-weight:300;line-height:1.1}
.display-2{font-size:4.5rem;font-weight:300;line-height:1.1}
.display-3{font-size:4rem;font-weight:300;line-height:1.1}
.display-4{font-size:3.5rem;font-weight:300;line-height:1.1}
.display-5{font-size:3rem;font-weight:300;line-height:1.1}
.display-6{font-size:2.5rem;font-weight:300;line-height:1.1}
.lead{font-size:1.25rem;font-weight:400}
.h1{font-size:1.9rem;font-weight:600;line-height:1.25}
.h2{font-size:1.6rem;font-weight:600;line-height:1.25}
.h3{font-size:1.4rem;font-weight:600;line-height:1.3}
.h4{font-size:1.2rem;font-weight:600;line-height:1.3}
.h5{font-size:1.08rem;font-weight:600;line-height:1.35}
.h6{font-size:.95rem;font-weight:600;line-height:1.4}

/* Font-size / text utilities */
.fs-1{font-size:2.5rem !important}.fs-2{font-size:2rem !important}.fs-3{font-size:1.75rem !important}
.fs-5{font-size:1.25rem !important}.fs-6{font-size:1rem !important}
.text-start{text-align:left !important}.text-end{text-align:right !important}
.text-nowrap{white-space:nowrap !important}
.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.text-break{word-wrap:break-word !important;word-break:break-word !important}
.lh-1{line-height:1 !important}.lh-sm{line-height:1.25 !important}.lh-base{line-height:1.5 !important}.lh-lg{line-height:2 !important}

/* Rounded / border */
.rounded{border-radius:.375rem !important}.rounded-0{border-radius:0 !important}
.rounded-1{border-radius:.25rem !important}.rounded-2{border-radius:.375rem !important}
.rounded-4{border-radius:.75rem !important}.rounded-5{border-radius:1rem !important}
.rounded-pill{border-radius:50rem !important}.rounded-circle{border-radius:50% !important}
.border-0{border:0 !important}

/* Contextual text / bg + subtle / emphasis colors */
.text-primary{color:var(--bs-primary) !important}.text-secondary{color:var(--bs-secondary) !important}
.text-info{color:#0aa2c0 !important}.text-dark{color:#212529 !important}.text-light{color:#f8f9fa !important}
.text-body{color:var(--bs-body-color) !important}
.bg-primary{background-color:var(--bs-primary) !important}.bg-secondary{background-color:var(--bs-secondary) !important}
.bg-info{background-color:#0dcaf0 !important}.bg-light{background-color:#f8f9fa !important}.bg-body{background-color:var(--bs-body-bg) !important}
.bg-primary-subtle{background-color:#cfe2ff !important}.bg-secondary-subtle{background-color:#e2e3e5 !important}
.bg-success-subtle{background-color:#d1e7dd !important}.bg-danger-subtle{background-color:#f8d7da !important}
.bg-warning-subtle{background-color:#fff3cd !important}.bg-info-subtle{background-color:#cff4fc !important}
.bg-light-subtle{background-color:#fcfcfd !important}.bg-dark-subtle{background-color:#ced4da !important}
.text-primary-emphasis{color:#052c65 !important}.text-secondary-emphasis{color:#2b2f32 !important}
.text-success-emphasis{color:#0a3622 !important}.text-danger-emphasis{color:#58151c !important}
.text-warning-emphasis{color:#664d03 !important}.text-info-emphasis{color:#055160 !important}

/* Grid gutters + row-cols */
.g-1{--gx:.25rem;--gy:.25rem}.g-2{--gx:.5rem;--gy:.5rem}.g-3{--gx:1rem;--gy:1rem}.g-4{--gx:1.5rem;--gy:1.5rem}.g-5{--gx:3rem;--gy:3rem}
.gx-1{--gx:.25rem}.gx-2{--gx:.5rem}.gx-3{--gx:1rem}.gx-4{--gx:1.5rem}.gx-5{--gx:3rem}
.gy-1{--gy:.25rem}.gy-2{--gy:.5rem}.gy-3{--gy:1rem}.gy-4{--gy:1.5rem}.gy-5{--gy:3rem}
.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}
.row-cols-3>*{flex:0 0 auto;width:33.33333%}.row-cols-4>*{flex:0 0 auto;width:25%}
@media (min-width:576px){.flex-sm-row{flex-direction:row !important}}
@media (min-width:768px){
  .row-cols-md-1>*{width:100%}.row-cols-md-2>*{width:50%}
  .row-cols-md-3>*{width:33.33333%}.row-cols-md-4>*{width:25%}
  .flex-md-row{flex-direction:row !important}
  .align-items-md-center{align-items:center !important}
  .p-md-4{padding:1.5rem !important}.p-md-5{padding:3rem !important}
  .px-md-5{padding-left:3rem !important;padding-right:3rem !important}
  .py-md-5{padding-top:3rem !important;padding-bottom:3rem !important}
}

/* Tables */
.table{width:100%;margin-bottom:1rem;color:var(--bs-body-color);vertical-align:top;border-collapse:collapse}
.table>:not(caption)>*>*{padding:.5rem;border-bottom:1px solid var(--bs-border-color)}
.table>thead{vertical-align:bottom}
.table th{text-align:inherit;font-weight:600}
.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}
.align-middle{vertical-align:middle !important}

/* Forms (labels / help text) */
.form-label{margin-bottom:.5rem}
.form-text{margin-top:.25rem;font-size:.875em;color:#6c757d}

/* Lists */
.list-unstyled{padding-left:0;list-style:none}
.list-inline{padding-left:0;list-style:none}
.list-inline-item{display:inline-block}
.list-inline-item:not(:last-child){margin-right:.5rem}

/* Complete spacing scale — content/form pages use the full 0-5 + auto range
   (0=.0 1=.25 2=.5 3=1 4=1.5 5=3rem). Supplements the common set in section 3. */
.m-4{margin:1.5rem !important}.m-5{margin:3rem !important}.m-auto{margin:auto !important}
.mt-5{margin-top:3rem !important}.mt-auto{margin-top:auto !important}
.mb-5{margin-bottom:3rem !important}.mb-auto{margin-bottom:auto !important}
.ms-0{margin-left:0 !important}.ms-4{margin-left:1.5rem !important}.ms-5{margin-left:3rem !important}.ms-auto{margin-left:auto !important}
.me-4{margin-right:1.5rem !important}.me-5{margin-right:3rem !important}.me-auto{margin-right:auto !important}
.mx-2{margin-left:.5rem !important;margin-right:.5rem !important}.mx-3{margin-left:1rem !important;margin-right:1rem !important}
.mx-4{margin-left:1.5rem !important;margin-right:1.5rem !important}.mx-5{margin-left:3rem !important;margin-right:3rem !important}.mx-auto{margin-left:auto !important;margin-right:auto !important}
.my-0{margin-top:0 !important;margin-bottom:0 !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-5{margin-top:3rem !important;margin-bottom:3rem !important}
.p-4{padding:1.5rem !important}.p-5{padding:3rem !important}
.pt-1{padding-top:.25rem !important}.pt-3{padding-top:1rem !important}.pt-5{padding-top:3rem !important}
.pb-4{padding-bottom:1.5rem !important}.pb-5{padding-bottom:3rem !important}
.ps-0{padding-left:0 !important}.ps-1{padding-left:.25rem !important}.ps-2{padding-left:.5rem !important}.ps-4{padding-left:1.5rem !important}.ps-5{padding-left:3rem !important}
.pe-0{padding-right:0 !important}.pe-1{padding-right:.25rem !important}.pe-2{padding-right:.5rem !important}.pe-3{padding-right:1rem !important}.pe-4{padding-right:1.5rem !important}.pe-5{padding-right:3rem !important}
.px-0{padding-left:0 !important;padding-right:0 !important}.px-1{padding-left:.25rem !important;padding-right:.25rem !important}.px-2{padding-left:.5rem !important;padding-right:.5rem !important}
.px-4{padding-left:1.5rem !important;padding-right:1.5rem !important}.px-5{padding-left:3rem !important;padding-right:3rem !important}
.py-0{padding-top:0 !important;padding-bottom:0 !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-5{padding-top:3rem !important;padding-bottom:3rem !important}

/* btn-info + Bootstrap-3 legacy form classes (older contact-form markup) */
.btn-info{--bs-btn-color:#000;--bs-btn-bg:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#31d2f2;--bs-btn-hover-border-color:#25cff2}
.form-group{margin-bottom:1rem}
.control-label{display:inline-block;margin-bottom:.5rem;font-weight:600}
.help-block{display:block;margin-top:.25rem;font-size:.875em;color:#6c757d}
.has-feedback{position:relative}
.form-control-feedback{position:absolute;right:.5rem;top:.5rem;color:#6c757d}
.glyphicon{display:inline-block;font-style:normal;line-height:1}
.glyphicon-asterisk::before{content:"*"}

/* Modern shared contact form */
.contact-main{max-width:1120px;padding-top:clamp(1.5rem,4vw,3.5rem);padding-bottom:clamp(2.5rem,6vw,5rem)}
.contact-page-shell{width:100%}
.contact-hero{position:relative;overflow:hidden;padding:clamp(1.5rem,4vw,3rem);border-radius:24px 24px 0 0;color:#fff;background:linear-gradient(125deg,#172554 0%,#1d4ed8 58%,#0891b2 100%);box-shadow:0 18px 48px rgba(15,23,42,.14)}
.contact-hero::after{content:"";position:absolute;width:280px;height:280px;right:-90px;top:-140px;border-radius:50%;background:rgba(255,255,255,.12);box-shadow:-80px 180px 0 rgba(255,255,255,.06)}
.contact-hero>*{position:relative;z-index:1}
.contact-eyebrow{display:inline-block;margin-bottom:.75rem;font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#bae6fd}
.contact-hero h1{max-width:700px;margin:0 0 .75rem;color:#fff;font-size:clamp(2rem,5vw,3.6rem);line-height:1.05;letter-spacing:-.045em}
.contact-hero>p{max-width:720px;margin:0;font-size:clamp(1rem,2vw,1.2rem);line-height:1.65;color:#e0f2fe}
.contact-form-card{padding:clamp(1.25rem,4vw,3rem);border:1px solid #dbe5f0;border-top:0;border-radius:0 0 24px 24px;background:#fff;box-shadow:0 18px 48px rgba(15,23,42,.1)}
.contact-purpose-group,.contact-form-section{min-width:0;margin:0 0 2.3rem;padding:0;border:0}
.contact-purpose-group legend,.contact-form-section h2,.contact-security-panel h2{display:flex;align-items:center;flex-wrap:wrap;gap:.65rem;margin:0 0 .45rem;font-size:1.15rem;font-weight:800;color:#172033}
.contact-purpose-group legend small{font-size:.78rem;font-weight:600;color:#64748b}
.contact-step{display:inline-grid;place-items:center;flex:0 0 1.8rem;width:1.8rem;height:1.8rem;border-radius:9px;color:#1d4ed8;background:#dbeafe;font-size:.82rem}
.contact-purpose-group>.form-text{margin:0 0 1rem 2.45rem}
.contact-purpose-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.contact-purpose-card{position:relative;display:flex;align-items:flex-start;gap:.8rem;min-height:78px;margin:0;padding:1rem;border:1px solid #d8e1ec;border-radius:14px;cursor:pointer;background:#fbfdff;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.contact-purpose-card:hover{border-color:#93c5fd;box-shadow:0 8px 20px rgba(30,64,175,.09);transform:translateY(-1px)}
.contact-purpose-card:has(.contact-purpose-input:checked){border-color:#2563eb;background:#eff6ff;box-shadow:0 0 0 2px rgba(37,99,235,.12)}
.contact-purpose-input{position:absolute;width:1px;height:1px;opacity:0}
.contact-purpose-input:focus-visible+.contact-purpose-check{outline:3px solid rgba(37,99,235,.28);outline-offset:3px}
.contact-purpose-check{display:grid;place-items:center;flex:0 0 1.35rem;width:1.35rem;height:1.35rem;margin-top:.1rem;border:2px solid #94a3b8;border-radius:6px;background:#fff}
.contact-purpose-input:checked+.contact-purpose-check{border-color:#2563eb;background:#2563eb}
.contact-purpose-input:checked+.contact-purpose-check::after{content:"\2713";color:#fff;font-size:.75rem;font-weight:900}
.contact-purpose-card>span:last-child{min-width:0}
.contact-purpose-card strong,.contact-purpose-card small{display:block}
.contact-purpose-card strong{margin-bottom:.2rem;color:#172033;font-size:.96rem}
.contact-purpose-card small{color:#64748b;font-size:.79rem;line-height:1.4}
.contact-purpose-group.is-invalid .contact-purpose-grid{padding:3px;border-radius:16px;box-shadow:0 0 0 2px #dc3545}
.contact-purpose-error{margin:.65rem 0 0;color:#b42318;font-size:.875rem;font-weight:650}
.contact-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.1rem 1rem;margin-top:1rem}
.contact-form-card .control-label{color:#334155;font-size:.88rem}
.contact-form-card .form-control{min-height:48px;border:1px solid #cbd5e1;border-radius:11px;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.03);transition:border-color .18s ease,box-shadow .18s ease}
.contact-form-card .form-control:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.13)}
.contact-form-card textarea.form-control{min-height:150px;resize:vertical;padding-top:.8rem}
.required-mark{color:#dc2626;font-weight:800}
.optional-label{margin-left:.35rem;color:#94a3b8;font-size:.72rem;font-weight:600}
.contact-security-panel{display:grid;grid-template-columns:1.25fr auto;gap:1rem 1.5rem;margin:0 0 1.5rem;padding:1.2rem;border:1px solid #dbeafe;border-radius:16px;background:#f8fbff}
.contact-security-copy p{margin:0;color:#64748b;font-size:.87rem}
.contact-captcha-row{display:flex;align-items:center;gap:.75rem}
.contact-captcha-row img{width:180px;max-width:100%;min-height:60px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;object-fit:contain}
.contact-captcha-row .btn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;margin:0;line-height:1.2}
.contact-captcha-input{grid-column:1/-1;max-width:360px;margin:0}
.contact-notice{margin:0 0 1.3rem;padding:1rem 1.1rem;border-left:4px solid #0ea5e9;border-radius:0 10px 10px 0;color:#475569;background:#f0f9ff;font-size:.82rem;line-height:1.55}
.contact-notice strong{color:#0f172a}
.contact-submit-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.contact-submit-row .btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-width:210px;min-height:50px;border-radius:12px;font-weight:750;line-height:1.2;box-shadow:0 8px 20px rgba(37,99,235,.2)}
.contact-submit-row .btn span{font-size:1.15em;line-height:1}
.contact-submit-row p{margin:0;color:#64748b;font-size:.8rem}
#feedbackStatus.alert-success:not([hidden]){display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:1rem;width:100%;min-height:92px;margin:1.5rem 0 !important;padding:1.35rem 1.5rem;border:2px solid #75b798;border-left-width:8px;border-radius:16px;color:#0a3622;background:linear-gradient(135deg,#d1e7dd 0%,#e8f7ee 100%);box-shadow:0 12px 30px rgba(25,135,84,.18);font-size:clamp(1.05rem,2vw,1.2rem);font-weight:750;line-height:1.5}
#feedbackStatus.alert-success:not([hidden])::before{content:"\2713";display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:50%;color:#fff;background:#198754;font-size:1.65rem;font-weight:900;line-height:1;box-shadow:0 5px 14px rgba(25,135,84,.25)}
#feedbackStatus.alert-success p{margin:0}
.privacy-request-notice{margin-bottom:2rem}
.privacy-request-type{max-width:560px;margin-top:1rem}
.privacy-request-shell .contact-form-section:last-of-type{margin-bottom:2rem}
.privacy-choice-action{margin:.85rem 0 1.15rem}
.privacy-choice-button{display:inline-flex;align-items:center;justify-content:center;width:240px;max-width:100%;min-height:46px;margin:0;border-radius:10px;font-weight:700;line-height:1.2}
.fs-external-search-status{display:grid;gap:1rem;padding:1.15rem;border-color:#bfdbfe;background:linear-gradient(135deg,#eff6ff 0%,#f8fbff 100%);box-shadow:0 8px 24px rgba(30,64,175,.08)}
.fs-external-search-copy{display:grid;gap:.25rem;line-height:1.5}
.fs-external-search-copy strong{color:#172554;font-size:1.02rem}
.fs-external-search-copy span{color:#475569}
.fs-external-search-actions,.ai-ov-consent-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.65rem;width:100%}
.fs-enable-external-results,.fs-enable-ai-answers{display:inline-flex;align-items:center;justify-content:center;min-width:250px;min-height:54px;padding:.8rem 1.5rem;border-radius:12px;font-size:1.05rem;font-weight:800;line-height:1.2;box-shadow:0 10px 24px rgba(37,99,235,.24)}
.fs-external-search-actions .fs-open-privacy-preferences,.ai-ov-consent-actions .fs-open-privacy-preferences{flex:0 0 auto;margin-left:auto;padding:.25rem .5rem;font-size:.75rem;white-space:nowrap}
.ai-ov-consent-copy{display:grid;gap:.25rem;line-height:1.5}
.ai-ov-consent-copy p{margin:0}
.ai-ov-consent-actions{margin-top:1rem}
@media (max-width:767.98px){
  .contact-main{padding-left:.75rem;padding-right:.75rem;padding-top:1rem}
  .contact-hero{border-radius:18px 18px 0 0}
  .contact-form-card{border-radius:0 0 18px 18px}
  .contact-purpose-grid,.contact-field-grid{grid-template-columns:1fr}
  .contact-purpose-group>.form-text{margin-left:0}
  .contact-security-panel{grid-template-columns:1fr}
  .contact-captcha-input{grid-column:auto;max-width:none}
  .contact-captcha-row{align-items:flex-start;flex-direction:column}
  .contact-submit-row{align-items:stretch;flex-direction:column}
  .contact-submit-row .btn{width:100%}
  .contact-submit-row p{text-align:center}
  #feedbackStatus.alert-success:not([hidden]){min-height:82px;padding:1.1rem;border-radius:13px;font-size:1.05rem}
  #feedbackStatus.alert-success:not([hidden])::before{width:2.4rem;height:2.4rem;font-size:1.4rem}
  .fs-external-search-actions,.ai-ov-consent-actions{align-items:stretch}
  .fs-enable-external-results,.fs-enable-ai-answers{flex:1 1 100%;width:100%;min-width:0}
  .fs-external-search-actions .fs-open-privacy-preferences,.ai-ov-consent-actions .fs-open-privacy-preferences{margin-left:auto}
}
@media (prefers-reduced-motion:reduce){.contact-purpose-card{transition:none}}

/* ----------------------------------------------------------------------------
   Responsive utility overrides — declared LAST so they win over the base
   utilities at their breakpoints. (Source-order fix: earlier the base
   .order-2 followed .order-md-1 and wrongly kept the left column on the right.)
   ---------------------------------------------------------------------------- */
@media (min-width: 576px) {
  .order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}
}
@media (min-width: 768px) {
  .order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}
  .d-md-none{display:none !important}.d-md-block{display:block !important}.d-md-flex{display:flex !important}
  .mb-md-0{margin-bottom:0 !important}
}
@media (min-width: 992px) {
  .order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}
  .d-lg-none{display:none !important}.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}
  .mb-lg-0{margin-bottom:0 !important}
}
@media (min-width: 1200px) {
  .order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}
}

/* ============================================================================
   5. SITE DESIGN SYSTEM
   Migrated verbatim from the previous inline <style> in head.theme.php.
   The one dynamic value (per-domain search background) is now var(--search-bg),
   set inline in <head>.
   ============================================================================ */

:root {

  --sn-oc-width: 86vw;
  --sn-oc-maxw: 380px;
  --sn-oc-z: 1075;
  --sn-oc-bp: 767.98px;


  --gcs-thumb-width: 135px;
  --gcs-thumb-max-height: 105px;
  --site-chrome-gradient:
    radial-gradient(1100px 520px at 50% -180px, rgba(102,170,255,.14), transparent 68%),
    linear-gradient(180deg, rgba(255,255,255,.035), rgba(0,0,0,.14));
}

html,
body {
  height: 100%;
  margin: 0;
  font-family: var(--font-sans);
  font-size: 16px;
  font-weight: 400;
  letter-spacing: -0.1px;
  line-height: 1.5;
  background: #f7f9fc;
  color: #0e1116;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  display: flex;
  flex-direction: column;
}

p,a,li,ul,nav,main,header,footer {
  font-family: var(--font-sans);    
}

main { flex: 1; }

.header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:.5rem;
  font-weight:600;
  font-size:.95rem;
  background: #232F3E;
}

#search-header nav {
  background: var(--search-bg);
}

/* ==========================================
   COLLAPSING STICKY HEADER (LAYOUT-AWARE)
   ========================================== */
#search-header.is-collapsed {
  height: 0 !important;
  min-height: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  overflow: hidden;
}


.taglines-row {
  margin-top: 7px; /* clear air under the logo — the tagline runs large */
  text-align: center;
}

/* Animated tagline: the two per-domain lines crossfade in ONE line of space.
   Decorative only (aria-hidden) — the real h1 is visually-hidden beside it. */
.tagline-rotator {
  position: relative;
  height: 2.1em; /* room for descenders (g, y, p) inside overflow:hidden */
  overflow: hidden;
  font-size: clamp(15px, 0.9vw + 9px, 19px);
  font-weight: 500;
  letter-spacing: .015em;
}
.tagline-item {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;               /* h1/h2 reset — items are the real headings */
  font-size: inherit !important; /* heading rules must not inflate the line:
                                    an oversized h1 gets clipped by the fixed-
                                    height rotator (cut-off descenders) */
  line-height: 1.4;
  white-space: nowrap;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .45s ease, transform .45s ease;
  color: #e3ecf8; /* solid fallback when background-clip:text is unsupported */
}
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .tagline-item {
    /* soft white -> ice-blue gradient text: modern without shouting */
    background: linear-gradient(92deg, #ffffff 30%, #a8d4ff);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
  }
}
.tagline-item.is-active  { opacity: 1; transform: none; }
.tagline-item.is-leaving { opacity: 0; transform: translateY(-8px); }
@media (prefers-reduced-motion: reduce) {
  .tagline-item { transition: none; }
}


.fs-footer {
  background: #222933;
  color: #ffffff;
  content-visibility: auto;
  margin-top: auto;
  font-size:14px;
}

.fs-footer h4 {
  font-size:13px;
  color: #FAF9F6;
  font-weight:700;
}

.fs-footer li {
  font-size:13px;
  color: #767676;
  padding:2px;
}

.fs-footer li a {
  font-size:13px;
  color: #DDDDDD;
  padding:2px;
}

.content {
  min-height: 100%;
  display: flex;
  flex-direction: column;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-sans);
  font-weight: 600;
  color: #0d1117;
  letter-spacing: -0.2px;
  line-height: 1.25;
  margin-bottom: .6rem;
}

h1 { font-size: 1.8rem; }
h2 { font-size: 1.5rem; }
h3 { font-size: 1.25rem; }
h4 { font-size: 1.1rem; }
h5 { font-size: 1.05rem; }

a {
  color: #0d6efd;
  text-decoration: none;
  transition: color .15s ease, opacity .15s ease;
}
a:visited {
  color: #5b4bb7;
}
a:hover,
a:active {
  text-decoration: underline;
}

a:hover,
a:focus-visible {
  color: #002a52;
  text-decoration: underline;
}


.rtitle{
  font-size:17px;
  font-weight:400;
  line-height:1 !important;
  color:#0060a9 !important;
  text-decoration:none;
  letter-spacing:-0.15px;
  margin-bottom: 1px !important;
  display: inline;

}
.rtitle:hover{
  text-decoration:underline;
  opacity:.9;
}

.rdesc{
  font-size:14px;
  line-height:1.45;
  color:#222;
  text-decoration:none;
  margin-top: 1px !important;
  font-family: var(--font-sans);    
}

.rdesc .image-featured {
  float: right;
  display: block;
  aspect-ratio: 16 / 9;
  max-width: 165px;
  max-height: 120px;
  object-fit: cover;
  margin-left: 10px;
  margin-bottom: 2px;
  border-radius: 10px;
  overflow: hidden;
  flex-shrink: 0;
}

@media (max-width: 400px) {
  .rdesc .image-featured {
    float: none;
    display: inline-block;
    aspect-ratio: 16 / 9;
    max-width: 80px;
    max-height: 80px;
    margin: 0 0 .35rem 0;
  }
}

@media (min-width: 401px) and (max-width: 576px) {
  .rdesc .image-featured {
    float: none;
    display: inline-block;
    aspect-ratio: 16 / 9;
    max-width: 105px;
    max-height: 95px;
    margin: 0 0 .35rem 0;
  }
}

@media (min-width: 577px) and (max-width: 768px) {
  .rdesc .image-featured {
    float: none;
    display: inline-block;
    aspect-ratio: 16 / 9;
    max-width: 125px;
    max-height: 105px;
    margin: 0 0 .35rem 0;
  }
}

@media (min-width: 769px) and (max-width: 992px) {
  .rdesc .image-featured {
    float: right;
    aspect-ratio: 16 / 9;
    max-width: 145px;
    max-height: 115px;
  }
}

@media (min-width: 993px) and (max-width: 1201px) {
  .rdesc .image-featured {
    float: right;
    aspect-ratio: 16 / 9;
    max-width: 155px;
    max-height: 120px;
  }
}

@media (min-width: 1202px) {
  .rdesc .image-featured {
    float: right;
    aspect-ratio: 16 / 9;
    max-width: 165px;
    max-height: 120px;
  }
}

.rSN{
  font-size:13px;
  line-height:17px;
  color:#333;
  font-weight:600;
  text-decoration:none;
  display:inline-block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  margin-bottom:-5px;
  padding:0;
}

.rURL{
  font-size:13px;
  line-height:16px;
  font-weight:700;
  color:#006400 !important;
  text-decoration:none;
  display:inline-block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  margin:0;
  padding:5;
}

a.rURL,
a.rURL:hover,
a.rURL:active,
a.rURL:focus,
a.rURL:focus-visible {
  opacity: 1 !important;
  color: #006400 !important;
}


.rdate{
  font-size:14px;
  line-height:1.5;
  color:#333;
  text-decoration:none;
}

.clstree{
  font-size:14px;
  font-weight:400;
  line-height:1.5;
  color:#1155cc;
  text-decoration:none;
}

.search-result-wrapper {
  padding: 14px 18px;
  border-radius: 12px;
  margin-bottom: 14px;
  background: #ffffff;
  border: 1px solid #e4e6ea;
}

.nlnk {
  font-size: .9375rem;
  line-height: 1.125rem;
  color: #e8eef3 !important;
  text-decoration: none;
  transition: color .2s ease;
  padding: 6px;
}
.nlnk:hover {
  color: #ffffff !important;
}

:focus-visible {
  outline: 2px solid #1abc9c;
  outline-offset: 2px;
}

#scrollButton {
  position: fixed;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1000;
}

.form-row-scroll {
  display: flex;
  overflow-x: auto;
  white-space: nowrap;
}
.form-row-scroll select,
.form-row-scroll input[type="text"] {
  margin-right: 10px;
}

.custom-height,
.form-select.custom-height,
.tnf {
  height: 32px;
  line-height: normal;
  font-size: 14px;
  padding: 0 8px;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 4px;
  box-sizing: border-box;
}

.custom-height-select {
  --caret-w: 16px;
  --caret-r: 8px;
  --caret-pad: 0px;
  position: relative;
  padding: 0px;
  z-index: 1;
  display: inline-flex;
  align-items: center;
}

.custom-height-select select.form-select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: none;
  color: #ffffff;
  font-size: 12px;
  height: 32px;
  line-height: normal;
  padding-left: 8px;
  padding-right: 0;
  box-sizing: border-box;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 4px;
  background-clip: padding-box;
  white-space: nowrap;
  overflow: visible;
  text-overflow: clip;
  width: auto;
  max-width: none;
}

.custom-height-select::after {
  content: '';
  position: absolute;
  right: var(--caret-r);
  top: 50%;
  transform: translateY(-50%);
  width: var(--caret-w);
  height: var(--caret-w);
  background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="20" viewBox="0 -960 960 960" width="20" fill="%23e8eaed"><path d="M480-384 288-576h384L480-384Z"/></svg>') no-repeat center;
  pointer-events: none;
}

select option,
select optgroup { color:#ffffff; }
select optgroup { font-weight: bold; }
select option { text-indent: 0; }

.scroll-container {
  position: relative;
  display: flex;
  align-items: center;
  margin-top: 0;
  padding: 0 12px;
}

.scroll-row {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  gap: 6px;
  margin: 0 6px;
  padding: 0 2px;
  scrollbar-width: thin;
}

.scroll-row::-webkit-scrollbar {
  height: 4px;
}

.scroll-row::-webkit-scrollbar-thumb {
  background: #888;
  border-radius: 10px;
}

.scroll-button {
  appearance: none;
  -webkit-appearance: none;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;

  color: #ffffff;
  width: 18px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  font-size: 16px;
  cursor: pointer;
  padding: 0;
  margin: 0;
  z-index: 2;
}

.scroll-button:hover,
.scroll-button:focus,
.scroll-button:active,
.scroll-button:focus-visible {
  background: transparent !important;
  box-shadow: none !important;
  outline: none;
}

.scroll-button svg {
  display: block;
}

.scroll-button.left { left: 2px; }
.scroll-button.right { right: 2px; }

.scroll-button svg {
  display: block;
}

.scroll-button:focus-visible {
  outline: 2px solid rgba(255,255,255,0.6);
  outline-offset: 2px;
}

/* REMOVE browser default indentation */
.sn-sidebar ul,
.sn-sidebar ul ul {
  padding-inline-start: 0 !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
}


.custom-sidebar-menu{
  position:relative;
  font-size:14px;
  font-weight:500;
  color:#dee2e6;
  background:#f8f9fa;
  border-right:1px solid #dee2e6;
  padding:0;
}
.custom-menu,
.custom-submenu,
ul.mtac{ list-style:none; margin:0; padding:0; }
.custom-menu-item{ margin-bottom:2px; }
.custom-menu-item-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.custom-menu-item-header a{
  text-decoration:none;
  color:#000;
  padding:5px;
  display:block;
}
.custom-submenu{ padding-left:15px; display:none; }
.custom-submenu-item a{
  text-decoration:none;
  color:#333;
  padding:5px;
  display:block;
}
.custom-submenu-toggle{
  background:none;
  border:0;
  cursor:pointer;
  font-size:12px;
  line-height:1;
}

.sn-sidebar{
  position: relative;
  height: calc(var(--vh, 100vh) - var(--search-header-height, 0px));
  overflow-y: auto;
  margin: 0;
  box-shadow: 2px 0 5px rgba(0,0,0,.1);
  background:#151922;
  scrollbar-width:thin;
  scrollbar-color: rgba(255,255,255,.4) transparent;
}
.sn-sidebar::-webkit-scrollbar{ width:6px; }
.sn-sidebar::-webkit-scrollbar-track{ background:transparent; }
.sn-sidebar::-webkit-scrollbar-thumb{
  background-color: rgba(255,255,255,.4);
  border-radius:3px;
  border:1px solid transparent;
}
.sn-sidebar ul{ list-style:none; margin:0; padding:0; }
.sn-sidebar li{ border-bottom:1px solid rgba(255,255,255,.1); }

/* ===============================
   TRUE MULTI-LEVEL INDENTATION
   =============================== */

/* Base row padding */
.sn-sidebar .sn-link{
  padding:5px 8px;
}

/* Depth-based indentation */
.sn-sidebar li[data-depth="1"] > .sn-menu-item .sn-link { padding-left:24px; }
.sn-sidebar li[data-depth="2"] > .sn-menu-item .sn-link { padding-left:40px; }
.sn-sidebar li[data-depth="3"] > .sn-menu-item .sn-link { padding-left:56px; }
.sn-sidebar li[data-depth="4"] > .sn-menu-item .sn-link { padding-left:72px; }
.sn-sidebar li[data-depth="5"] > .sn-menu-item .sn-link { padding-left:88px; }


.sn-menu-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0; /* IMPORTANT */
}
.sn-link{
  display:flex;
  align-items:center;
  flex:1;
  text-decoration:none;
  color:#ecf0f1;
  padding:5px 0;
  transition:color .3s;
}
.sn-link:hover{ color:#1abc9c; }
.sn-icon{
  width:18px;
  margin-right:12px;
  text-align:center;
  color:#ecf0f1;
}
.sn-text{
  flex:1;
  color:#ecf0f1;
}
.sn-sidebar > ul > li > .sn-menu-item .sn-text{
  font-size:14px;
  font-weight:500;
}

.sn-link,
.sn-text {
  font-family: var(--font-sans);
  color: #d0d5dd !important;
  font-size: 14px;
}
.sn-link:hover {
  color: #52f2c4 !important;
}





/* === Submenu visibility (no height limits) === */
.sn-submenu{
  display:none;
}
.sn-sidebar li.open > .sn-submenu{
  display:block;
}





.sn-submenu li a{
  display:flex;
  align-items:center;
  padding:5px 0;
  text-decoration:none;
  color:#ecf0f1;
  transition:background .3s;
}
.sn-submenu li a:hover{ background:#3a556e; }
.sn-submenu a .sn-text{
  font-size:14px;
  color:#ecf0f1;
}

.sn-submenu {
  padding-left: 0;
}


.sn-submenu-icon{
  cursor:pointer;
  color:#ecf0f1;
  transition:transform .3s, color .3s;
}
.sn-sidebar button.sn-submenu-icon{
  width:40px;
  min-width:40px;
  height:40px;
  padding:0;
  border:0;
  border-radius:6px;
  background:transparent;
  font:inherit;
}
.sn-sidebar button.sn-submenu-icon:focus-visible{
  outline:2px solid #52f2c4;
  outline-offset:-2px;
}
.sn-submenu-icon:hover{ color:#1abc9c; }
.sn-sidebar li.open > .sn-menu-item .sn-submenu-icon:not(.ajax-toggle){
  transform:rotate(180deg);
}
.sn-sidebar li.open > .sn-menu-item .ajax-toggle{ transform:none; }

.sn-sidebar li.active-row > .sn-menu-item{
  background:#1abc9c;
}
.sn-sidebar li.active-row > .sn-menu-item .sn-link,
.sn-sidebar li.active-row > .sn-menu-item .sn-icon,
.sn-sidebar li.active-row > .sn-menu-item .sn-submenu-icon{
  color:#ffffff;
}

.sn-active-link{
  background:#1abc9c !important;
  color:#ffffff !important;
}

/* === DEPTH-BASED INDENTATION (UNLIMITED LEVELS) === */
.sn-sidebar li[data-depth] > .sn-menu-item {
  padding-left: calc(12px + (var(--sn-depth) * 16px));
}

/* Map depth attribute to CSS variable */
.sn-sidebar li[data-depth="0"] { --sn-depth: 0; }
.sn-sidebar li[data-depth="1"] { --sn-depth: 1; }
.sn-sidebar li[data-depth="2"] { --sn-depth: 2; }
.sn-sidebar li[data-depth="3"] { --sn-depth: 3; }
.sn-sidebar li[data-depth="4"] { --sn-depth: 4; }
.sn-sidebar li[data-depth="5"] { --sn-depth: 5; }

.sn-divider{
  height:1px;
  margin:0 0 15px;
  background:rgba(255,255,255,.15);
  list-style:none;
}

.ajax-toggle{
  cursor:pointer;
  transition:transform .2s ease;
  pointer-events:auto;
}
.ajax-toggle:hover{ opacity:.7; }
.sn-submenu.ajax-submenu{ transition:all .3s ease; }
.ajax-loading-placeholder .sn-text{ font-style:italic; opacity:.7; }
.error .sn-text{ color:#dc3545; }

@keyframes spin{
  from{ transform:rotate(0); }
  to{ transform:rotate(360deg); }
}
.fa-spinner.fa-spin{ animation:spin 1s linear infinite; }

.sn-meta{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:4px 0 6px 28px;
}
.sn-badge{
  display:inline-flex;
  align-items:center;
  padding:2px 6px;
  border-radius:10px;
  font-size:11px;
  line-height:1;
  color:#0f1419;
  background:#e5efff;
  border:1px solid rgba(255,255,255,.16);
}
.sn-badge--ok{ background:#c9f7d1; }
.sn-badge--warn{ background:#ffe9a8; }
.sn-badge--alert{ background:#ffcdc9; }
.sn-badge--muted{ background:#e7eaef; }
.sn-badge code{
  font-family:inherit;
  font-size:11px;
  background:transparent;
  padding:0;
}
.ajax-toggle,
.sn-submenu-icon{
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}

.custom-nav-tabs-container .custom-nav-link{
  color:#dcdcdc !important;
  background:transparent !important;
  padding:0;
  font-size:13px;
}
.custom-nav-tabs-container .custom-nav-link.active{
  color:#ffffff !important;
  background:transparent !important;
  border-bottom:1px solid #ffffff;
  font-weight:700;
}
.custom-nav-tabs-container .custom-nav-link:hover{
  color:#ffffff !important;
}
.custom-nav-tabs-container .custom-nav-item{
  margin-right:0;
  padding:0;
}
.custom-nav-tabs-container .dropdown-item{ color:#000000 !important; }
.custom-nav-tabs-container .dropdown-item:hover{
  color:#ffffff !important;
  background:#232f3e !important;
}

.card,
.dropdown-menu {
  border-radius: 10px !important;
  background: #ffffff !important;
  border: 1px solid #e0e2e5 !important;
}

.dropdown-menu.menu-dark{
  background:#000;
  color:#fff;
  border:1px solid #222;
}

.dropdown-menu.menu-dark .dropdown-header{ color:#bdbdbd; }
.dropdown-menu.menu-dark .dropdown-divider{ border-top-color:#333; }

.dropdown-menu.menu-dark .dropdown-item,
.dropdown-menu.menu-dark .dropdown-item:link,
.dropdown-menu.menu-dark .dropdown-item:visited,
.dropdown-menu.menu-dark .dropdown-item:active{
  color:#fff !important;
  text-decoration:none !important;
}

.dropdown-menu.menu-dark .dropdown-item i,
.dropdown-menu.menu-dark .dropdown-item:link i,
.dropdown-menu.menu-dark .dropdown-item:visited i,
.dropdown-menu.menu-dark .dropdown-item:active i{
  color:#fff !important;
  text-decoration:none !important;
}

.dropdown-menu.menu-dark .dropdown-item:hover,
.dropdown-menu.menu-dark .dropdown-item:focus,
.dropdown-menu.menu-dark .dropdown-item:focus-visible{
  background:#111 !important;
  color:#fff !important;
  text-decoration:underline !important;
}
.dropdown-menu.menu-dark .dropdown-item:hover i,
.dropdown-menu.menu-dark .dropdown-item:focus i,
.dropdown-menu.menu-dark .dropdown-item:focus-visible i{
  color:#fff !important;
  text-decoration:none !important;
}

.dropdown-menu.menu-dark .dropdown-item.active,
.dropdown-menu.menu-dark .dropdown-item.active:visited{
  background:#111 !important;
  color:#fff !important;
  text-decoration:underline !important;
}

.dropdown-menu.menu-dark .dropdown-item.disabled,
.dropdown-menu.menu-dark .dropdown-item:disabled{
  color:rgba(255,255,255,.5) !important;
  pointer-events:none;
  text-decoration:none !important;
}

#installHelp{
  position:fixed;
  inset:0;
  z-index:1055;
  display:none;
  align-items:center;
  justify-content:center;
  backdrop-filter:blur(2px);
  background:rgba(0,0,0,.55);
}
#installHelp .card{
  background:#ffffff;
  border-radius:12px;
  max-width:520px;
  width:92%;
  padding:16px 18px;
  color:#111111;
  line-height:1.45;
  box-shadow:0 10px 30px rgba(0,0,0,.35);
}

.share-pop{
  position:fixed;
  z-index:1061;
  min-width:240px;
  max-width:320px;
  border-radius:.75rem;
  box-shadow:0 10px 30px rgba(0,0,0,.25);
  padding:.5rem;
  background:#111;
  color:#fff;
}
.share-pop-light{
  background:#fff;
  color:#111;
  box-shadow:0 10px 30px rgba(0,0,0,.15);
  border:1px solid rgba(0,0,0,.08);
}
.share-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.5rem;
}
.share-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  border-radius:.5rem;
  padding:.5rem .55rem;
  text-decoration:none;
  font-size:.9rem;
  border:1px solid rgba(255,255,255,.15);
  background:rgba(255,255,255,.06);
  color:inherit;
  white-space:nowrap;
}
.share-pop-light .share-btn{
  border:1px solid rgba(0,0,0,.1);
  background:rgba(0,0,0,.03);
}
.share-btn:hover{ filter:brightness(1.1); }
.copy-row{
  display:flex;
  gap:.5rem;
  margin-top:.5rem;
}
.copy-input{
  flex:1;
  border-radius:.5rem;
  border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.08);
  color:inherit;
  padding:.4rem .55rem;
  font-size:.85rem;
}
.share-pop-light .copy-input{
  border-color:rgba(0,0,0,.15);
  background:#fafafa;
}
.copy-btn{
  border-radius:.5rem;
  padding:.4rem .65rem;
  border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.08);
  color:inherit;
}
.share-pop-light .copy-btn{
  border-color:rgba(0,0,0,.15);
  background:rgba(0,0,0,.03);
}

.close-x{
  cursor:pointer;
  padding:.15rem .35rem;
  border-radius:.375rem;
}
.close-x:hover{ background:rgba(255,255,255,.1); }
.share-pop-light .close-x:hover{ background:rgba(0,0,0,.06); }

.truncate{
  overflow:hidden;
  text-overflow:ellipsis;
}
.clearfix::after{
  content:"";
  display:table;
  clear:both;
}
.rTS{ font-size:13px; line-height:14px; }
.no-arrow::after{ display:none; }
.rFQD{ overflow:hidden; margin:0; padding:0; position:relative; }
.favicon{ float:left; margin:10px 10px 0 0; }
.dropdown-container{
  float:right;
  margin-top:-40px;
  position:relative;
}
.dropdown-menu-custom{
  margin-top:-10px;
  border:1px solid #ccc;
  box-shadow:0 4px 8px rgba(0,0,0,.1);
}
.badge-secondary-custom{
  font-size:10px;
  margin-bottom:10px;
  padding:2px;
}

.svg-icon{
  width:24px;
  height:24px;
  display:inline-block;
  background-size:cover;
  background-repeat:no-repeat;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' viewBox='0 -960 960 960' width='24' fill='%23434343'%3E<path d='M480-160q-33 0-56.5-23.5T400-240q0-33 23.5-56.5T480-320q33 0 56.5 23.5T560-240q0 33-23.5 56.5T480-160Zm0-240q-33 0-56.5-23.5T400-480q0-33 23.5-56.5T480-560q33 0 56.5 23.5T560-480q0 33-23.5 56.5T480-400Zm0-240q-33 0-56.5-23.5T400-720q0-33 23.5-56.5T480-800q33 0 56.5 23.5T560-720q0 33-23.5 56.5T480-640Z'/></svg>");
}

.svg-icon,
.sn-submenu-icon,
.ajax-toggle {
  opacity: 0.9;
}
.svg-icon:hover,
.sn-submenu-icon:hover,
.ajax-toggle:hover {
  opacity: 1;
}

.custom-btn-group .btn{
  height:23px;
  line-height:18px;
  padding:0 5px;
  font-size:13px;
  margin-bottom:5px;
  background:transparent;
  border:0;
}

.search-indexes-icon,
.search-keywords-icon,
.search-people-icon,
.search-organziations-icon,
.search-places-icon{
  display:inline-block;
  width:1em;
  height:1em;
  vertical-align:-0.125em;
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
}

.btn-secondary.btn-secondary--search{
  --bs-btn-bg:#d9dee4;
  --bs-btn-border-color:#cbd2d9;
  --bs-btn-hover-bg:#cbd3db;
  --bs-btn-hover-border-color:#bec7d0;
  --bs-btn-active-bg:#bcc6cf;
  --bs-btn-active-border-color:#b0bac4;
  --bs-btn-disabled-bg:#e6eaee;
  --bs-btn-disabled-border-color:#d9dee4;
}

.classification-container {
  min-width: 0 !important;
  max-width: 100%;
  flex-shrink: 1 !important;
  overflow: hidden;
  text-align: left;
}

.classification-container .breadcrumb-scroll {
  display: inline-flex;
  flex-wrap: nowrap;
  white-space: nowrap;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;

  margin: 0;
  padding: 0;
  background: transparent;
  font-size: 0.92rem;
  line-height: 1.3;

  --bs-breadcrumb-divider: "";
}

.classification-container .breadcrumb-scroll::-webkit-scrollbar {
  display: none;
}

.classification-container .breadcrumb-item {
  padding: 0 !important;
  margin: 0 !important;
  display: flex;
  align-items: center;
}

.classification-container .breadcrumb-item + .breadcrumb-item::before {
  content: "›" !important;
  font-size: 1em;
  padding: 0 4px;
  color: #555 !important;
}

.classification-container .breadcrumb-scroll button.js-nav,
.classification-container .breadcrumb-scroll button.js-nav:link,
.classification-container .breadcrumb-scroll button.js-nav:visited,
.classification-container .breadcrumb-scroll button.js-nav:hover,
.classification-container .breadcrumb-scroll button.js-nav:focus,
.classification-container .breadcrumb-scroll button.js-nav:active,
.classification-container .breadcrumb-scroll .btn-link,
.classification-container .breadcrumb-scroll .btn-link:hover,
.classification-container .breadcrumb-scroll .btn-link:focus,
.classification-container .breadcrumb-scroll .btn-link:active {
  color: #0060a9 !important;
  text-decoration: underline !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  font-weight: 400;
  font-size: 12px;
}

.classification-container .breadcrumb-item {
  font-weight: 500;
  color: #555;
}
/* ============================================================================
   GOOGLE CSE – THUMBNAIL 50% HEIGHT (FLUSH LEFT, CLEAN WRAP)
   ============================================================================ */

:root{
  --gcs-thumb-height: 75px;   /* half of original 150px */
}

/* --- Thumbnail Layout (inside snippet container) --- */

.gsc-table-result .gsc-table-cell-thumbnail {
  float: left !important;
  display: block !important;

  margin: 4px 12px 6px 0 !important; /* right spacing only */
  padding: 0 !important;
  margin-left: 0 !important;

  width: auto !important;
  max-width: none !important;
}

/* Remove ALL possible left indentation */
.gsc-table-cell-thumbnail,
.gs-image-box,
.gs-web-image-box,
.gsc-thumbnail {
  margin-left: 0 !important;
  padding-left: 0 !important;
  border-left: 0 !important;
  width: auto !important;
  max-width: none !important;
  height: auto !important;
  overflow: hidden !important;
  border-radius: 8px !important;
}

/* --- Image Sizing (height controlled, width auto) --- */

.gs-image img,
.gsc-thumbnail img,
.gs-image,
.gsc-image {
  height: var(--gcs-thumb-height) !important;
  width: auto !important;              /* preserve aspect ratio */
  max-height: var(--gcs-thumb-height) !important;

  object-fit: cover !important;
  border-radius: 8px !important;

  /* Override Google inline sizing */
  inline-size: auto !important;
  block-size: auto !important;
}

/* Clear float properly */
.gsc-table-result::after {
  content: "";
  display: block;
  clear: both;
}

/* --- Title Styling --- */

.gs-title a {
  font-size: 17px !important;
  font-weight: 400 !important;   /* normal weight */
  letter-spacing: -0.1px !important;
  line-height: 1.35 !important;
  color: #0060a9 !important;
  font-family: var(--font-sans);
}

/* Only bolded search terms */
.gs-title a b {
  font-size: 17px !important;
  font-weight: 600 !important;   /* normal weight */
  letter-spacing: -0.1px !important;
  line-height: 1.35 !important;
  color: #0060a9 !important;
  font-family: var(--font-sans);
}

.gsc-thumbnail-inside {
  margin-bottom: 2px !important;
}

/* Hide duplicate title inside snippet block */
.gsc-table-cell-snippet-close 
  > .gs-title.gsc-table-cell-thumbnail.gsc-thumbnail-left {
  display: none !important;
}

/* Force breadcrumb URL to green */
.gs-visibleUrl-breadcrumb,
.gs-visibleUrl-breadcrumb span {
  color: #0a8a38 !important;
}


hr {
  border-color: rgba(0,0,0,.08);
  margin: 1.25rem 0;
}

.dropdown-menu.menu-dark {
  background-color: #000000 !important;
  color: #ffffff !important;
  border: 1px solid #222 !important;
}

.dropdown-menu.menu-dark,
.dropdown-menu.menu-dark * {
  background-color: #000000 !important;
}

.icon-search {
  display: inline-block;
  background-color: currentColor;

  -webkit-mask-image: url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'>\
<path d='M784-120 532-372q-30 24-69 38t-83 14q-109 0-184.5-75.5T120-580q0-109 75.5-184.5T380-840q109 0 184.5 75.5T640-580q0 44-14 83t-38 69l252 252-56 56ZM380-400q75 0 127.5-52.5T560-580q0-75-52.5-127.5T380-760q-75 0-127.5 52.5T200-580q0 75 52.5 127.5T380-400Z'/>\
</svg>");

  mask-image: url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'>\
<path d='M784-120 532-372q-30 24-69 38t-83 14q-109 0-184.5-75.5T120-580q0-109 75.5-184.5T380-840q109 0 184.5 75.5T640-580q0 44-14 83t-38 69l252 252-56 56ZM380-400q75 0 127.5-52.5T560-580q0-75-52.5-127.5T380-760q-75 0-127.5 52.5T200-580q0 75 52.5 127.5T380-400Z'/>\
</svg>");

  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;

  vertical-align: middle;
}

.icon-arrow-down {
  display: inline-block;
  width: 40px;
  height: 40px;
  background-color: currentColor;

  -webkit-mask-image: url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'>\
<path d='M480-360 280-559.33h400L480-360Z'/>\
</svg>");
  mask-image: url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'>\
<path d='M480-360 280-559.33h400L480-360Z'/>\
</svg>");

  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;

  vertical-align: middle;
}

.icon-arrow-up {
  display: inline-block;
  width: 40px;
  height: 40px;
  background-color: currentColor;

  -webkit-mask-image: url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'>\
<path d='m280-400 200-200.67L680-400H280Z'/>\
</svg>");
  mask-image: url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'>\
<path d='m280-400 200-200.67L680-400H280Z'/>\
</svg>");

  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;

  vertical-align: middle;
}

.icon-menu {
  display: inline-block;
  width: 40px;
  height: 40px;
  background-color: currentColor;

  -webkit-mask-image: url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'>\
<path d='M120-240v-66.67h720V-240H120Zm0-206.67v-66.66h720v66.66H120Zm0-206.66V-720h720v66.67H120Z'/>\
</svg>");
  mask-image: url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'>\
<path d='M120-240v-66.67h720V-240H120Zm0-206.67v-66.66h720v66.66H120Zm0-206.66V-720h720v66.67H120Z'/>\
</svg>");

  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;

  vertical-align: middle;
}

.icon-home {
  display: inline-block;
  width: 40px;
  height: 40px;
  background-color: currentColor;

  -webkit-mask-image: url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'>\
<path d='M226.67-186.67h140v-246.66h226.66v246.66h140v-380L480-756.67l-253.33 190v380ZM160-120v-480l320-240 320 240v480H526.67v-246.67h-93.34V-120H160Zm320-352Z'/>\
</svg>");
  mask-image: url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'>\
<path d='M226.67-186.67h140v-246.66h226.66v246.66h140v-380L480-756.67l-253.33 190v380ZM160-120v-480l320-240 320 240v480H526.67v-246.67h-93.34V-120H160Zm320-352Z'/>\
</svg>");

  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;

  vertical-align: middle;
}

.icon-search.sm { width: 20px; height: 20px; }
.icon-search.md { width: 24px; height: 24px; }
.icon-search.lg { width: 28px; height: 28px; }

.btn:hover .icon-menu {
  color: #084298;
}

.btn[aria-expanded="true"] .icon-menu {
  color: #0a58ca;
}


.sn-submenu-icon.is-loading{
  opacity:.5;
  pointer-events:none;
  animation:snPulse .9s ease-in-out infinite alternate;
}

@keyframes snPulse{
  from{opacity:.35}
  to{opacity:.75}
}

.gs-stylized-error-result {
  display: none !important;
}

.gs-stylized-error-message,
.gs-stylized-error-submessage {
  display: none !important;
}

.ta-menu{
  position:absolute;
  top:100%;
  left:0;
  right:0;
  z-index:1050;
  background-color: #ffffff !important;
  background-image: none !important;
  opacity: 1 !important;
  border:1px solid rgba(0,0,0,.15);
  border-radius:.375rem;
  box-shadow:0 .5rem 1rem rgba(0,0,0,.175);
  margin-top:.25rem;
  overflow:hidden;
  display:none;
  max-height: 280px;
  overflow-y:auto;
}

.ta-item{
  padding:.5rem .75rem;
  cursor:pointer;
  line-height:1.25;
  user-select:none;
}

.ta-item:hover,
.ta-item.is-active{
  background: rgba(13,110,253,.12);
}

.ta-hint{
  color:#666;
  font-size:.85rem;
  padding:.35rem .75rem;
  border-top:1px solid rgba(0,0,0,.08);
}

.cse-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  min-height: 40px;
  gap: 10px;
  color: #555;
  font-size: 14px;
}

.cse-spinner {
  width: 36px;
  height: 36px;
  border: 3px solid rgba(0,0,0,.15);
  border-top-color: #0060a9;
  border-radius: 50%;
  animation: cse-spin .8s linear infinite;
}

.cse-loading-text {
  font-weight: 500;
  letter-spacing: .2px;
}

@keyframes cse-spin {
  to { transform: rotate(360deg); }
}


/* ============================================================================
   6. MODERN REFINEMENTS (v4)
   Visual polish layer: keeps the brand (navy header, blue titles, green URLs,
   dark sidebar, teal accent) but modernizes the execution — cards, pill search
   bar, animated tab underline, softer menus, hover states, AI overview.
   Declared last so it wins at equal specificity.
   ============================================================================ */
:root{
  --radius-sm:8px; --radius:12px; --radius-lg:16px;
  --shadow-1:0 1px 2px rgba(16,24,40,.05);
  --shadow-2:0 6px 20px rgba(16,24,40,.09);
  --accent:#1abc9c;
  --ease:cubic-bezier(.2,.6,.2,1);
}
::selection{ background:rgba(26,188,156,.28); }
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation:none !important; transition:none !important; }
}

/* --- Header / sticky search bar --- */
#search-header{ box-shadow:0 2px 14px rgba(9,14,22,.22); }

/* --- Search bar: unified pill --- */
#searchgroup{
  background:#fff; border-radius:999px; padding:4px; gap:4px;
  align-items:center; box-shadow:var(--shadow-1);
  transition:box-shadow .2s var(--ease);
}
#searchgroup:focus-within{ box-shadow:0 0 0 3px rgba(26,188,156,.35), var(--shadow-2); }
#searchgroup .form-control{
  border:0; background:transparent !important; box-shadow:none; min-height:38px;
  padding:.375rem 1rem; border-radius:999px !important; font-size:15px;
}
#searchgroup .form-control:focus{ box-shadow:none; }
#searchgroup > .btn{ border-radius:999px !important; margin-left:0 !important; }
#searchgroup .btn-warning{
  min-height:38px; padding:4px 18px !important; font-weight:600;
  box-shadow:0 1px 2px rgba(16,24,40,.15);
}
#searchgroup .ta-menu{ left:8px; right:8px; border-radius:var(--radius-lg); margin-top:10px; border:1px solid rgba(16,24,40,.08); box-shadow:0 16px 40px rgba(16,24,40,.16); }
.ta-item{ border-radius:8px; margin:2px 4px; }

/* --- Tabs: animated accent underline --- */
.custom-nav-tabs-container .nav{ gap:16px; }
.custom-nav-tabs-container .custom-nav-link{
  position:relative; padding:6px 2px 8px; font-size:13.5px; letter-spacing:.01em;
  transition:color .15s ease;
}
.custom-nav-tabs-container .custom-nav-link::after{
  content:""; position:absolute; left:0; right:100%; bottom:2px; height:2px;
  border-radius:2px; background:var(--accent); transition:right .22s var(--ease);
}
.custom-nav-tabs-container .custom-nav-link:hover::after,
.custom-nav-tabs-container .custom-nav-link.active::after{ right:0; }
.custom-nav-tabs-container .custom-nav-link.active{ border-bottom:0; }

/* --- Result cards (replaces the old grey rule-line separators) --- */
.result-card{
  background:#fff; border:1px solid #e7eaf0; border-radius:var(--radius);
  padding:0; margin:12px 0; box-shadow:var(--shadow-1);
  transition:box-shadow .18s var(--ease), border-color .18s var(--ease);
}
.result-card:hover{ box-shadow:var(--shadow-2); border-color:#d9e0e9; }
.result-card-header{
  padding:9px 18px 8px;
  border-bottom:1px solid #e2e8f0;
  border-radius:calc(var(--radius) - 1px) calc(var(--radius) - 1px) 0 0;
  background:inherit;
}
.result-card-body{ padding:14px 18px 16px; }
.result-card-header .classification-container .breadcrumb-scroll{
  font-size:12.5px;
  line-height:1.35;
}
@media (max-width:575.98px){
  .result-card-header{ padding:8px 12px 7px; }
  .result-card-body{ padding:12px; }
}
.rtitle{ font-weight:600; font-size:16.5px; letter-spacing:-.01em; line-height:1.35 !important; }
.rdesc{ color:#374151; }
.rSN{ color:#111827; font-weight:600; }
.result-card .favicon img{ border-radius:6px; }

/* --- Buttons: subtle motion, pill chips for small actions --- */
.btn{ transition:transform .06s ease, box-shadow .18s var(--ease), background-color .15s ease, border-color .15s ease, color .15s ease; }
.btn:active{ transform:translateY(1px); }
.btn-sm{ border-radius:999px; }
.pagination-buttons .btn{ border-radius:999px; box-shadow:var(--shadow-1); }

/* --- Dropdown menus: soft elevated panels --- */
.dropdown-menu{
  border-radius:var(--radius); border:1px solid rgba(16,24,40,.08);
  box-shadow:0 14px 36px rgba(16,24,40,.16); padding:6px;
}
.dropdown-item{ border-radius:8px; padding:.45rem .8rem; }
.dropdown-menu.menu-dark{ border-radius:var(--radius) !important; }

/* --- Sidebar: remove rule lines, add hover + active pill --- */
.sn-sidebar li{ border-bottom:0; }
.sn-sidebar .sn-menu-item{ border-radius:8px; margin:1px 6px; transition:background .15s ease; }
.sn-sidebar .sn-menu-item:hover{ background:rgba(255,255,255,.06); }
.sn-sidebar li.active-row > .sn-menu-item{ background:var(--accent); border-radius:8px; }

/* --- Footer: quieter, tidier --- */
.fs-footer h4{ letter-spacing:.07em; color:#98a4b3; font-size:12px; }
.fs-footer li a{ transition:color .15s ease; }
.fs-footer li a:hover{ color:#ffffff; text-decoration:none; }

/* --- Slim modern scrollbars (WebKit; sidebar already styled) --- */
::-webkit-scrollbar{ width:10px; height:10px; }
::-webkit-scrollbar-thumb{ background:#c6cdd7; border-radius:8px; border:2px solid transparent; background-clip:content-box; }
::-webkit-scrollbar-thumb:hover{ background-color:#aab3c0; }

/* ============================================================================
   7. AI OVERVIEW (async component above search results)
   ============================================================================ */
.ai-overview{
  background:linear-gradient(#fff,#fff) padding-box,
             linear-gradient(120deg,#6ea8fe,#845ef7 55%,#1abc9c) border-box;
  border:1px solid transparent; border-radius:var(--radius-lg);
  padding:16px 18px 12px; margin:12px 0 6px; box-shadow:var(--shadow-1);
}
.ai-ov-head{ display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.ai-ov-badge{
  display:inline-flex; align-items:center; gap:6px;
  background:linear-gradient(120deg,#4c8dfb,#845ef7); color:#fff;
  font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
  padding:4px 10px; border-radius:999px;
}
.ai-ov-badge .ico{ width:12px; height:12px; }
.ai-ov-body{ font-size:14.5px; line-height:1.62; color:#1f2937; overflow-wrap:break-word; }
.ai-ov-body p{ margin:0 0 .55rem; }
.ai-ov-body p:last-child{ margin-bottom:0; }
.ai-ov-body ul{ margin:.25rem 0 .55rem 1.15rem; padding:0; }
.ai-ov-body li{ margin:.15rem 0; }
.ai-ov-disclaimer{ font-size:11.5px; color:#8b93a1; margin-top:8px; border-top:1px dashed #e5e9f0; padding-top:7px; }
.ai-ov-loading .shimmer-line{
  height:12px; border-radius:6px; margin:10px 0;
  background:linear-gradient(90deg,#eef1f6 25%,#e3e9f1 45%,#eef1f6 65%);
  background-size:200% 100%; animation:ai-shimmer 1.2s linear infinite;
}
@keyframes ai-shimmer{ to{ background-position:-200% 0; } }
.ai-ov-body .ai-ov-h{ margin:.55rem 0 .15rem; font-size:.98em; }
.ai-ov-body strong{ font-weight:600; }
.ai-ov-body em{ font-style:italic; }
.ai-ov-body code{ background:rgba(16,24,40,.06); padding:.05em .35em; border-radius:5px; font-size:.9em; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; }

/* ============================================================================
   8. AI-CHAT SEARCH BOX + TOPICS SIDEBAR REFINEMENT (v6)
   ============================================================================ */

/* --- Search box: multi-line AI-chat field inside the rounded container --- */
.search-topic-context{
  display:flex; align-items:baseline; flex-wrap:wrap; gap:.35rem;
  width:100%; margin:0 0 3px; padding:0 2px !important;
  color:#ffb347; font-size:14px; line-height:1.5;
  overflow-wrap:anywhere;
}
.search-topic-context-label{ font-weight:600; }
.search-topic-context-path{ font-weight:400; }
#searchgroup{ align-items:flex-end; border-radius:24px; }
#searchgroup textarea.search-input{
  display:block; resize:none; border:0; background:transparent !important;
  box-shadow:none; outline:none;
  min-height:38px; max-height:132px; overflow-y:hidden;
  line-height:1.45; font-size:15px;
  padding:.5rem 1rem .45rem; border-radius:18px !important;
}
#searchgroup textarea.search-input-lg{ min-height:44px; font-size:16.5px; }
#searchgroup textarea.search-input::placeholder{ color:#8b93a1; }
#searchgroup .btn-warning{ margin-bottom:1px; }
#searchgroup textarea.search-input::-webkit-scrollbar{ width:8px; }

/* --- Topics sidebar: fluid type, no wrapping, lighter chrome --- */

/* Caption above the tree (desktop only; mobile off-canvas has its own header) */
.sn-caption{
  font-size:10.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:rgba(255,255,255,.42); padding:12px 14px 4px;
}
@media (max-width:991.98px){ .sn-caption{ display:none; } }

/* Fluid text size: 14px at 1440px+, scaling down to ~12px on narrow columns.
   Single line with ellipsis — no more ugly two-line wrapping. */
.sn-sidebar .sn-link{ min-width:0; }
.sn-sidebar .sn-text{
  font-size:clamp(12px, 0.42vw + 8px, 14px);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  letter-spacing:.01em; line-height:1.35;
}
.sn-sidebar > ul > li > .sn-menu-item .sn-text{
  font-size:clamp(12.5px, 0.42vw + 8.5px, 14px);
  font-weight:500;
}

/* Icons scale with the text and never squeeze the label */
.sn-sidebar .sn-icon.ico{
  width:clamp(13px, 0.3vw + 9px, 16px); height:clamp(13px, 0.3vw + 9px, 16px);
  margin-right:9px; opacity:.8; flex-shrink:0;
}

/* The expand/collapse arrows were 40x40 — massive next to 13px text. */
.sn-sidebar .icon-arrow-down,
.sn-sidebar .icon-arrow-up{ width:26px; height:26px; opacity:.65; flex-shrink:0; }
.sn-sidebar .sn-menu-item:hover .icon-arrow-down,
.sn-sidebar .sn-menu-item:hover .icon-arrow-up{ opacity:.95; }

/* Tighter indent steps below 1440px so deep levels still fit */
@media (max-width:1439.98px){
  .sn-sidebar li[data-depth] > .sn-menu-item{
    padding-left:calc(8px + (var(--sn-depth) * 12px));
  }
}

/* Mobile off-canvas is full-width: restore comfortable touch sizing there */
@media (max-width:767.98px){
  .sn-sidebar .sn-text,
  .sn-sidebar > ul > li > .sn-menu-item .sn-text{ font-size:14px; }
  .sn-sidebar .sn-icon.ico{ width:16px; height:16px; }
  .sn-sidebar .icon-arrow-down,
  .sn-sidebar .icon-arrow-up{ width:32px; height:32px; }
}

/* ============================================================================
   9. RESULTS AREA + GOOGLE CSE RESTYLE (v7)
   The old markup was solid-white column slabs with inline-styled headers.
   Now: transparent columns, card-based results (native + CSE identical),
   kicker-style section headers, pill pagination.
   ============================================================================ */

/* --- Section structure --- */
.results-col{ background:transparent; }
.results-panel{ padding:2px 2px 10px; }

.results-head{
  display:flex; align-items:baseline; gap:10px;
  margin:14px 2px 4px; padding-bottom:8px;
  border-bottom:1px solid #e7eaf0;
}
.results-title{
  position:relative; margin:0; padding-left:12px;
  font-size:12.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color:#5b6472; line-height:1.6;
}
.results-title::before{
  content:""; position:absolute; left:0; top:50%; transform:translateY(-50%);
  width:4px; height:14px; border-radius:2px; background:var(--accent);
}
.results-jump{
  margin-left:auto; font-size:12px; font-weight:600; color:#0060a9;
  background:#eef3f9; border:1px solid #dde6f0; border-radius:999px;
  padding:2px 10px; cursor:pointer; text-decoration:none !important;
  transition:background .15s ease;
}
.results-jump:hover{ background:#e2ebf5; }

/* ============================================================
   Google CSE — make injected results look identical to ours
   (!important throughout: Google's stylesheet loads after ours)
   ============================================================ */
.gsc-control-cse{
  padding:0 !important; border:0 !important; background:transparent !important;
  font-family:var(--font-sans) !important;
}
.gsc-control-cse *, .gsc-table-result{ font-family:var(--font-sans) !important; }

/* Each web result = a card matching .result-card */
.gsc-webResult.gsc-result{
  background:#fff !important; border:1px solid #e7eaf0 !important;
  border-radius:var(--radius) !important; box-shadow:var(--shadow-1) !important;
  padding:14px 16px !important; margin:12px 0 !important;
  transition:box-shadow .18s var(--ease), border-color .18s var(--ease);
}
.gsc-webResult.gsc-result:hover{
  box-shadow:var(--shadow-2) !important; border-color:#d9e0e9 !important;
}
.gsc-table-result, .gsc-table-cell-snippet-close{ border:0 !important; padding:0 !important; }

/* Title: same as native .rtitle */
.gsc-webResult .gs-title{ height:auto !important; text-decoration:none !important; }
.gsc-webResult .gs-title a.gs-title,
.gsc-webResult .gs-title a.gs-title *{
  font-size:16.5px !important; font-weight:600 !important; letter-spacing:-.01em !important;
  line-height:1.35 !important; color:#0060a9 !important; text-decoration:none !important;
}
.gsc-webResult .gs-title a.gs-title:hover,
.gsc-webResult .gs-title a.gs-title:hover *{ text-decoration:underline !important; }

/* URL line: green like .rURL */
.gsc-webResult .gs-visibleUrl,
.gsc-webResult .gs-visibleUrl-breadcrumb,
.gsc-webResult .gs-visibleUrl-breadcrumb span{
  color:#0a8a38 !important; font-size:13px !important; font-weight:600 !important;
}

/* Snippet: same as native .rdesc */
.gsc-webResult .gs-snippet{
  font-size:14px !important; line-height:1.58 !important; color:#374151 !important;
}

/* Native-style title search appended after each asynchronously rendered
   Google result card. */
.fs-google-result-actions{
  display:flex !important; align-items:center; justify-content:flex-start;
  margin-top:12px !important; padding-top:10px !important;
  border-top:1px solid #eef2f6 !important;
}
.fs-google-full-coverage{
  display:inline-flex !important; align-items:center !important; gap:4px !important;
  min-height:32px; border-radius:999px !important;
  font-family:var(--font-sans) !important; font-weight:600 !important;
  line-height:1.2 !important; text-decoration:none !important;
}

/* Thumbnails: rounded, consistent */
.gsc-table-cell-thumbnail .gs-image,
.gsc-table-cell-thumbnail img{
  border-radius:10px !important; border:0 !important;
}

/* Remove Google-rendered navigation and promotional chrome. 4Search supplies
   its own service heading, pagination, and search controls. */
.gsc-tabsArea,
.gsc-tabsAreaInvisible,
.gsc-tabHeader,
.gsc-above-wrapper-area,
.gsc-result-info,
.gsc-result-info-container,
.gcsc-more-maybe-branding-root,
.gcsc-find-more-on-google{
  display:none !important;
}
.gsc-orderby-container{ display:none !important; }

/* CSE pagination: pill buttons like the rest of the site */
.gsc-cursor-box{ margin:16px 2px !important; }
.gsc-cursor{ display:flex !important; flex-wrap:wrap; gap:6px; }
.gsc-cursor-page{
  display:inline-flex !important; align-items:center; justify-content:center;
  min-width:32px; height:32px; padding:0 6px;
  background:#fff !important; border:1px solid #e2e7ee !important; border-radius:999px !important;
  color:#0060a9 !important; font-size:13.5px !important; font-weight:600 !important;
  text-decoration:none !important; cursor:pointer;
  transition:background .15s ease, border-color .15s ease;
}
.gsc-cursor-page:hover{ background:#f2f6fa !important; }
.gsc-cursor-current-page{
  background:var(--accent) !important; border-color:var(--accent) !important;
  color:#fff !important;
}

/* container hook that replaced the old margin-top:-20px hack */
.cse-wrap{ margin-top:0; }

/* ============================================================================
   10. AI-COMPOSER SEARCH BOX (v8)
   The textarea was still dressed as the old one-line pill. Restyle the whole
   group as a chat-composer: a visibly tall rounded box, textarea on top,
   circular send button anchored bottom-right — the ChatGPT/Gemini pattern.
   ============================================================================ */
#searchgroup{
  border-radius:20px;
  padding:8px 8px 8px 12px;
  gap:6px;
  background:#fff;
  border:1px solid #dfe5ec;
  box-shadow:0 2px 10px rgba(9,14,22,.10);
  align-items:flex-end;
}
#searchgroup:focus-within{
  border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(26,188,156,.22), 0 6px 22px rgba(9,14,22,.12);
}

/* The field: visibly multi-line at rest */
#searchgroup textarea.search-input{
  min-height:52px;
  padding:.6rem .5rem .5rem .35rem;
  font-size:15.5px;
  line-height:1.5;
  border-radius:12px !important;
}
#searchgroup textarea.search-input-lg{ min-height:64px; font-size:16.5px; }
#searchgroup textarea.search-input::placeholder{ color:#93a0af; }

/* Send button: circular icon, bottom-right, brand amber */
#searchgroup .btn-warning{
  width:42px; height:42px; min-height:0;
  padding:0 !important;
  border-radius:50% !important;
  display:inline-flex; align-items:center; justify-content:center;
  margin:0 0 1px 0 !important;
  box-shadow:0 2px 6px rgba(16,24,40,.18);
  flex-shrink:0;
}
#searchgroup .btn-warning .icon-search{ width:20px; height:20px; }
#searchgroup .btn-warning:hover{ transform:translateY(-1px); }
#searchgroup .btn-warning:active{ transform:translateY(0); }

/* Clear search: secondary circular control immediately before Search. */
#searchgroup .search-clear-button{
  width:42px; height:42px; min-height:0;
  padding:0 !important;
  border:1px solid #cbd5e1;
  border-radius:50% !important;
  display:inline-flex; align-items:center; justify-content:center;
  margin:0 0 1px 0 !important;
  background:#f8fafc;
  color:#526071;
  box-shadow:0 1px 4px rgba(16,24,40,.12);
  flex-shrink:0;
  font-size:1.65rem;
  font-weight:400;
  line-height:1;
  transition:background-color .15s ease, border-color .15s ease, color .15s ease, transform .15s ease;
}
#searchgroup .search-clear-button span{
  display:block;
  line-height:1;
  transform:translateY(-1px);
}
#searchgroup .search-clear-button:hover{
  background:#eef2f6;
  border-color:#94a3b8;
  color:#172033;
  transform:scale(1.04);
}
#searchgroup .search-clear-button:active{ transform:scale(.96); }
#searchgroup .search-clear-button:focus-visible{
  outline:3px solid rgba(37,99,235,.25);
  outline-offset:2px;
}
#searchgroup .search-clear-button[hidden]{ display:none !important; }

/* Advanced-search toggle (dev): keep it tucked bottom-left, round */
#searchgroup #cindexbut{
  border-radius:50% !important; width:42px; height:42px; padding:0 !important;
  min-height:0; display:inline-flex; align-items:center; justify-content:center;
  flex-shrink:0; margin-bottom:1px !important;
}

/* Typeahead drops below the taller box */
#searchgroup .ta-menu{ margin-top:14px; }

/* Mobile: slightly shorter rest height so it doesn't dominate the header */
@media (max-width:575.98px){
  #searchgroup textarea.search-input,
  #searchgroup textarea.search-input-lg{ min-height:46px; font-size:15px; }
  #searchgroup .btn-warning,
  #searchgroup .search-clear-button,
  #searchgroup #cindexbut{ width:38px; height:38px; }
}

/* ============================================================================
   11. SIDEBAR SUBTOPIC HIERARCHY (v9)
   Subtopics scale fluidly like the topics but sit one clear step SMALLER,
   with lighter weight + slightly dimmer color. (Overrides the legacy fixed
   `.sn-submenu a .sn-text{font-size:14px}` rule, which was making subtopics
   LARGER than topics at sub-1440 widths.)
   ============================================================================ */
.sn-sidebar .sn-submenu .sn-text,
.sn-sidebar .sn-submenu a .sn-text{
  font-size:clamp(11px, 0.38vw + 7px, 12.5px);
  font-weight:400;
  color:#b9c3d0 !important;
  letter-spacing:.005em;
}
.sn-sidebar .sn-submenu .sn-link{ padding:3px 0; }
.sn-sidebar .sn-submenu .sn-link:hover .sn-text{ color:#e8fdf7 !important; }

/* Subtopic icons + expand arrows shrink with the text */
.sn-sidebar .sn-submenu .sn-icon.ico{
  width:clamp(11px, 0.28vw + 8px, 13px);
  height:clamp(11px, 0.28vw + 8px, 13px);
  margin-right:8px; opacity:.65;
}
.sn-sidebar .sn-submenu .icon-arrow-down,
.sn-sidebar .sn-submenu .icon-arrow-up{ width:22px; height:22px; }

/* Active subtopic keeps full-contrast text */
.sn-sidebar .sn-submenu li.active-row > .sn-menu-item .sn-text,
.sn-sidebar .sn-submenu .sn-active-link .sn-text{ color:#ffffff !important; }

/* Mobile off-canvas (full-width): comfortable touch sizes, hierarchy kept */
@media (max-width:767.98px){
  .sn-sidebar .sn-submenu .sn-text,
  .sn-sidebar .sn-submenu a .sn-text{ font-size:12.5px; }
  .sn-sidebar .sn-submenu .sn-icon.ico{ width:14px; height:14px; }
  .sn-sidebar .sn-submenu .icon-arrow-down,
  .sn-sidebar .sn-submenu .icon-arrow-up{ width:28px; height:28px; }
}

/* ============================================================================
   12. HEADER DEPTH + SIDEBAR CAPTION (v10)
   ============================================================================ */

/* Sidebar "Topics" caption: real breathing room + hairline underline so it
   reads as a deliberate section label instead of crowding the first topic. */
.sn-caption{
  font-size:10.5px !important;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:rgba(255,255,255,.5);
  line-height:1;
  padding:16px 14px 10px !important;
  margin:0 0 8px !important;
  border-bottom:1px solid rgba(255,255,255,.08);
}

/* Header band: layered gradients + hairline paint OVER the per-tenant
   background-color (inline style), adding depth without touching config.
   The soft radial glow sits behind the logo. */
#search-header{
  background-image:
    radial-gradient(900px 260px at 50% -120px, rgba(102,170,255,.16), transparent 65%),
    linear-gradient(180deg, rgba(255,255,255,.045), rgba(0,0,0,.14));
  border-bottom:1px solid rgba(255,255,255,.07);
  box-shadow:0 14px 34px -22px rgba(0,0,0,.55);
}

/* Logo: gentle lift off the dark band. */
#search-header #logo{
  filter: drop-shadow(0 2px 8px rgba(0,0,0,.4));
}

/* ============================================================================
   13. V11 — sticky Topics caption, search/tab/card/footer polish, dark mode
   ============================================================================ */

/* --- Topics caption: pinned INSIDE the sidebar with an opaque backing.
       It no longer slides under the page header at all — topics scroll
       beneath IT, and nothing shows through. --- */
.sn-caption{
  position:sticky; top:0; z-index:2;
  background:inherit; /* tenant sidebar color — opaque while items pass under */
}
/* Base paint for the header even if a tenant's color config is missing/invalid
   (a transparent sticky header would let the sidebar show through). */
#search-header{ background-color:#232F3E; }

/* One continuous paint layer for every adjoining dark site surface. The fixed
   attachment aligns the gradient to the viewport instead of restarting it in
   the header, introduction strip, sidebar column, and sidebar navigation. */
#search-header,
#search-header nav,
#search-header nav > .row,
.site-chrome-surface,
.custom-sidebar-menu,
.sn-sidebar,
.sn-oc-header,
.sn-caption{
  background-color:var(--search-bg) !important;
  background-image:var(--site-chrome-gradient) !important;
  background-attachment:fixed !important;
  background-position:0 0 !important;
  background-repeat:no-repeat !important;
  background-size:100vw 100vh !important;
}
#search-header{
  border-bottom:0;
  box-shadow:none;
}
/* The primary Home/Menu strip is intentionally distinct from the continuous
   blue site chrome below it. */
#search-header nav[aria-label="Primary navigation"],
#search-header nav[aria-label="Primary navigation"] > .row{
  background-color:#000 !important;
  background-image:none !important;
  background-attachment:scroll !important;
}
.custom-sidebar-menu,
.sn-sidebar{
  border-right:0;
  box-shadow:none;
}

/* --- 1. Search box: focus lift + glow, animated send button --- */
#searchgroup{
  transition:box-shadow .25s var(--ease), transform .25s var(--ease);
}
#searchgroup:focus-within{
  transform:translateY(-1px);
  box-shadow:0 0 0 4px rgba(26,188,156,.22), 0 12px 32px -10px rgba(16,24,40,.35);
}
#searchgroup .btn-warning{
  transition:transform .15s var(--ease), box-shadow .15s var(--ease), background-color .15s ease;
}
#searchgroup .btn-warning:hover{ transform:scale(1.07); box-shadow:0 3px 12px rgba(255,193,7,.5); }
#searchgroup .btn-warning:active{ transform:scale(.93); }

/* --- 2. Tabs: bigger touch targets, hover surface, smoother underline --- */
.custom-nav-tabs-container .nav{ gap:6px; }
.custom-nav-tabs-container .custom-nav-link{
  padding:8px 13px 10px; font-size:14px; border-radius:9px 9px 0 0;
  transition:color .15s ease, background-color .15s ease;
}
.custom-nav-tabs-container .custom-nav-link:hover{ background:rgba(255,255,255,.07); }
.custom-nav-tabs-container .custom-nav-link::after{
  left:13px; right:calc(100% - 13px); bottom:4px; height:2.5px;
  transition:right .28s var(--ease);
}
.custom-nav-tabs-container .custom-nav-link:hover::after,
.custom-nav-tabs-container .custom-nav-link.active::after{ right:13px; }

/* --- 3. Result cards: staggered entrance on first paint --- */
@keyframes fs-card-in{
  from{ opacity:0; transform:translateY(12px); }
  to  { opacity:1; transform:none; }
}
.result-card{ animation:fs-card-in .45s var(--ease) backwards; }
.result-card:nth-child(1){ animation-delay:.03s; }
.result-card:nth-child(2){ animation-delay:.08s; }
.result-card:nth-child(3){ animation-delay:.13s; }
.result-card:nth-child(4){ animation-delay:.18s; }
.result-card:nth-child(5){ animation-delay:.23s; }
.result-card:nth-child(6){ animation-delay:.28s; }
@media (prefers-reduced-motion: reduce){ .result-card{ animation:none; } }

/* --- 4. Footer: hairline + depth, bookending the header treatment --- */
.fs-footer{
  background:linear-gradient(180deg, #232b36, #1c232c) !important;
  border-top:1px solid rgba(255,255,255,.07);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03);
}

/* --- 5. Dark mode (prefers-color-scheme) -----------------------------------
   Header + sidebar are already dark; this darkens the light surfaces.
   body's inline tenant color is overridden (author !important beats inline). */
/* DARK MODE — parked for now. To re-enable, replace the media condition on
   the next line with: prefers-color-scheme: dark */
@media not all {
  body{ background-color:#10151c !important; color:#c6d0dc; }

  /* result areas */
  .result-card{ background:#161d26; border-color:#232e3b; }
  .result-card:hover{ border-color:#2f3c4c; box-shadow:0 6px 24px -8px rgba(0,0,0,.5); }
  .result-card-header{ border-bottom-color:#2a3542; }
  .rdesc{ color:#b4bfcd; }
  .rtitle{ color:#79b8ff !important; } /* base rule uses !important */
  .rtitle:hover{ color:#a3ccff !important; }
  .rSN{ color:#a9b7c6; }
  .rURL{ color:#7fa650; }
  .results-title, h1, h2, h3, h4, h5{ color:#dde5ef; }
  .results-head{ border-color:#232e3b; }
  .results-jump{ color:#8fa2b8; }

  /* AI overview box */
  .ai-overview{ background:#161d26; border-color:#232e3b; color:#c6d0dc; }
  .ai-overview p, .ai-overview li{ color:#c6d0dc; }
  .ai-ov-disclaimer{ color:#7c8b9d; }
  .shimmer-line{ background:linear-gradient(90deg,#1d2631 25%,#26313f 50%,#1d2631 75%); background-size:400% 100%; }

  /* search pill + typeahead */
  #searchgroup{ background:#1a222d; }
  #searchgroup textarea.search-input, #searchgroup .form-control{ color:#dbe4ee; }
  #searchgroup textarea.search-input::placeholder{ color:#6f7e90; }
  #searchgroup .ta-menu{ background:#1a222d; border-color:#2a3542; }
  .ta-item{ color:#c6d0dc; }
  .ta-item:hover, .ta-item.active{ background:#232e3c; }

  /* dropdowns, forms, cards, tables (content + form pages) */
  .dropdown-menu{ background:#1a222d; border-color:#2a3542; }
  .dropdown-item, .custom-nav-tabs-container .dropdown-item{ color:#c6d0dc !important; }
  .dropdown-item:hover{ background:#232e3c; color:#ffffff !important; }
  .card, .card-body{ background:#161d26; color:#c6d0dc; border-color:#232e3b; }
  .form-control, .form-select{ background:#141b24; color:#dbe4ee; border-color:#2a3542; }
  .form-control:focus{ background:#141b24; color:#dbe4ee; }
  .form-control::placeholder{ color:#6f7e90; }
  table, th, td{ border-color:#232e3b !important; }
  .breadcrumb-item a{ color:#8fb4e8; }

  /* Google CSE block (light-mode rules use !important, so match it) */
  .gsc-control-cse{ background-color:transparent !important; }
  .gsc-webResult.gsc-result{ background:#161d26 !important; border-color:#232e3b !important; }
  .gsc-webResult.gsc-result:hover{ border-color:#2f3c4c !important; }
  .fs-google-result-actions{ border-top-color:#283442 !important; }
  .gsc-tabHeader, .gsc-tabsArea, .gsc-above-wrapper-area{ background:transparent !important; border-color:#232e3b !important; }
  .gsc-tabHeader.gsc-tabhActive{ color:#dde5ef !important; border-color:#79b8ff !important; }
  .gsc-tabHeader.gsc-tabhInactive{ color:#8fa2b8 !important; }
  .gsc-input-box, .gsc-input{ background:#141b24 !important; color:#dbe4ee !important; border-color:#2a3542 !important; }
  .gs-title, .gs-title *{ color:#79b8ff !important; }
  .gs-snippet{ color:#b4bfcd !important; }
  .gsc-url-top, .gsc-url-bottom, .gs-visibleUrl{ color:#7fa650 !important; }
  .gsc-cursor-page{ color:#8fa2b8 !important; }
  .gsc-cursor-current-page{ color:#dde5ef !important; }

  /* misc chrome */
  .pagination-buttons .btn{ filter:brightness(.92); }
  .breadcrumb-scroll{ scrollbar-color:#2a3542 transparent; }
}

/* --- Search suggestions always in the foreground ---------------------------
   Keep the composer in the normal header layer. Its suggestion menu already
   owns a foreground z-index; elevating the entire composer caused the textarea
   to compete with the primary dropdown and off-canvas navigation. */
#searchgroup{ position:relative; z-index:2; }

/* ============================================================================
   V19 — compact, visible topic controls and resilient footer columns
   ============================================================================ */

/* The toggle itself owns the SVG mask, so a transparent button background made
   every chevron invisible. Keep the masked paint visible and size desktop rows
   compactly; mobile retains a larger touch target. */
.sn-sidebar button.sn-submenu-icon{
  width:28px;
  min-width:28px;
  height:28px;
  background-color:currentColor;
  -webkit-mask-size:20px 20px;
  mask-size:20px 20px;
}
.sn-sidebar .sn-menu-item{ margin:0 4px; }
.sn-sidebar .sn-link{ padding:3px 7px; }
.sn-sidebar .sn-text{ line-height:1.2; }
.sn-sidebar li{ border-bottom-color:rgba(255,255,255,.07); }
.sn-sidebar .sn-submenu .sn-link{ padding-top:2px; padding-bottom:2px; }

@media (max-width:767.98px){
  .sn-sidebar button.sn-submenu-icon{
    width:36px;
    min-width:36px;
    height:36px;
    -webkit-mask-size:24px 24px;
    mask-size:24px 24px;
  }
  .sn-sidebar .sn-link{ padding-top:5px; padding-bottom:5px; }
}

/* Footer text and links must remain readable on the dark surface. The website
   directory uses intrinsic grid columns so long names wrap inside their own
   group instead of painting over the next Bootstrap column. */
.fs-footer,
.fs-footer p,
.fs-footer address,
.fs-footer span,
.fs-footer li,
.fs-footer h4{ color:#fff; }
.fs-footer a,
.fs-footer a:visited{ color:#fff !important; }
.fs-footer a:hover,
.fs-footer a:focus-visible{ color:#8ff4dc !important; }
.fs-footer .footer-site-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(145px,1fr));
  gap:1.25rem 1rem;
  margin:.25rem !important;
}
.fs-footer .footer-site-grid > [class*="col-"]{
  width:auto;
  max-width:none;
  min-width:0;
  margin:0 !important;
  padding:0 .25rem;
}
.fs-footer .footer-site-grid ul{ margin-bottom:0; }
.fs-footer .footer-site-grid li,
.fs-footer .footer-site-grid a,
.fs-footer .footer-site-grid h4{
  min-width:0;
  overflow-wrap:anywhere;
  word-break:normal;
}
.fs-footer .footer-site-grid a{ display:inline-block; max-width:100%; }
.fs-footer .footer-legal{width:100%;text-align:center}
.fs-footer .footer-legal-rule{height:1px;margin:1.5rem 0;border:0;background:rgba(255,255,255,.42);opacity:1}
.fs-footer .footer-legal-links{display:grid;gap:.55rem;justify-items:center}
.fs-footer .footer-legal-link-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.4rem 1.25rem;width:100%;text-align:center}
.fs-footer .footer-legal-rule-bottom{margin-top:1.35rem;margin-bottom:1rem}
.fs-footer .footer-copyright{margin:0;text-align:center}

@media (max-width:991.98px){
  .fs-footer .footer-site-grid{ grid-template-columns:repeat(auto-fit,minmax(135px,1fr)); }
}
/* Server-backed press-and-hold check for bot-classified interactive visitors. */
.fs-human-check {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 300px);
  gap: 22px;
  align-items: center;
  margin: 0 0 18px;
  border-width: 1px;
}
.fs-human-check h2 { margin: 0 0 8px; font-size: 1.22rem; }
.fs-human-check p { margin: 0 0 7px; }
.fs-human-check-note { font-size: .88rem; opacity: .82; }
.fs-human-check-control { text-align: center; }
.fs-human-hold-button {
  --fs-hold-progress: 0;
  position: relative;
  isolation: isolate;
  width: 100%;
  min-height: 58px;
  overflow: hidden;
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
  border: 2px solid #8a5b00;
  border-radius: 999px;
  background: #fff;
  color: #493000;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}
.fs-human-hold-button::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 0 auto 0 0;
  width: calc(var(--fs-hold-progress) * 100%);
  background: #ffd36a;
}
.fs-human-hold-button:hover { background: #fff9e8; }
.fs-human-hold-button:focus-visible { outline: 3px solid #0b57d0; outline-offset: 3px; }
.fs-human-hold-button.is-holding { cursor: grabbing; }
.fs-human-hold-button.is-verified { border-color: #146c43; background: #d1e7dd; color: #0f5132; }
.fs-human-hold-status { min-height: 2.6em; margin-top: 8px; font-size: .88rem; }
.fs-human-access-active { margin: 0 0 14px; }
@media (max-width: 700px) {
  .fs-human-check { grid-template-columns: 1fr; gap: 12px; }
}
