/* ==========================================================
   Bootstrap-UL Overrides
   - Keep small and scoped.
   - Prefer theme wrappers over global element rules.
   ========================================================== */


/* ==========================================================
   HERO SYSTEM
   ========================================================== */

/* -------------------------------------------------------
   HERO HEIGHTS
-------------------------------------------------------- */
.hero-h-sm { min-height: 200px; }
.hero-h-md { min-height: 260px; }
.hero-h-lg { min-height: 320px; }
.hero-h-xl { min-height: 360px; }

@media (min-width: 768px) {
  .hero-h-sm { min-height: 260px; }
  .hero-h-md { min-height: 380px; }
  .hero-h-lg { min-height: 520px; }
  .hero-h-xl { min-height: 620px; }
}

@media (min-width: 992px) {
  .hero-h-xl { min-height: 720px; }
}

/* -------------------------------------------------------
   HERO BASE
-------------------------------------------------------- */
.bootstrap-ul-hero {
  width: 100%;
}

/* Static + Figure text */
.bootstrap-ul-hero:not(.bootstrap-ul-hero-carousel) .hero-title {
  font-size: clamp(2rem, 5vw, 4.25rem);
  line-height: 1.1;
  margin-bottom: .5rem;
}

.bootstrap-ul-hero:not(.bootstrap-ul-hero-carousel) .hero-subtitle {
  font-size: clamp(1.1rem, 2.2vw, 1.35rem);
  line-height: 1.4;
  margin-bottom: 0;
}

/* Shared caption box */
.hero-caption-box {
  display: inline-block;
  padding: .35rem .9rem;
  border-radius: .5rem;
  background: rgba(0, 0, 0, .75);
  text-shadow: 0 2px 6px rgba(0, 0, 0, .7);
  transform-origin: top center;
}

@media (min-width: 768px) {
  .hero-caption-box {
    transform: scale(1.25);
  }
}

/* -------------------------------------------------------
   FIGURE HERO
-------------------------------------------------------- */
.figure-ratio-24x7 { aspect-ratio: 24 / 7; }
.figure-ratio-3x1  { aspect-ratio: 3 / 1; }
.figure-ratio-16x9 { aspect-ratio: 16 / 9; }

.bootstrap-ul-hero-figure {
  width: 100%;
  background: #000;
}

.bootstrap-ul-hero-figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* -------------------------------------------------------
   CAROUSEL HERO
-------------------------------------------------------- */
.bootstrap-ul-hero.bootstrap-ul-hero-carousel {
  position: relative;
  overflow: hidden;
  display: block;
}

.bootstrap-ul-hero.bootstrap-ul-hero-carousel .carousel,
.bootstrap-ul-hero.bootstrap-ul-hero-carousel .carousel-inner {
  position: absolute;
  inset: 0;
  height: 100%;
}

.bootstrap-ul-hero.bootstrap-ul-hero-carousel .carousel-item {
  position: absolute;
  inset: 0;
  height: 100%;
}

.bootstrap-ul-hero.bootstrap-ul-hero-carousel .carousel-item > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* Carousel caption */
.bootstrap-ul-hero.bootstrap-ul-hero-carousel .carousel-caption {
  left: 50%;
  right: auto;
  top: 2rem;
  bottom: auto;
  transform: translateX(-50%);
  transform-origin: top center;
  width: min(88%, 760px);
  max-width: 760px;
  padding: 0;
  color: #fff;
  text-align: center;
}

.bootstrap-ul-hero.bootstrap-ul-hero-carousel .carousel-caption,
.bootstrap-ul-hero.bootstrap-ul-hero-carousel .carousel-caption * {
  color: #fff;
}

.bootstrap-ul-hero.bootstrap-ul-hero-carousel .carousel-caption .hero-title,
.bootstrap-ul-hero.bootstrap-ul-hero-carousel .carousel-caption .display-1,
.bootstrap-ul-hero.bootstrap-ul-hero-carousel .carousel-caption .display-2,
.bootstrap-ul-hero.bootstrap-ul-hero-carousel .carousel-caption .display-3,
.bootstrap-ul-hero.bootstrap-ul-hero-carousel .carousel-caption .display-4,
.bootstrap-ul-hero.bootstrap-ul-hero-carousel .carousel-caption h1,
.bootstrap-ul-hero.bootstrap-ul-hero-carousel .carousel-caption h2,
.bootstrap-ul-hero.bootstrap-ul-hero-carousel .carousel-caption h3 {
  font-size: clamp(1.5rem, 3vw, 2.75rem);
  line-height: 1.1;
  margin-bottom: .35rem;
}

.bootstrap-ul-hero.bootstrap-ul-hero-carousel .carousel-caption .hero-subtitle,
.bootstrap-ul-hero.bootstrap-ul-hero-carousel .carousel-caption p {
  font-size: clamp(.95rem, 1.5vw, 1.125rem);
  line-height: 1.3;
  margin-bottom: 0;
}

/* -------------------------------------------------------
   MOBILE HERO TUNING
-------------------------------------------------------- */
@media (max-width: 767.98px) {
  .hero-h-lg { min-height: 260px; }
  .hero-h-xl { min-height: 300px; }

  .bootstrap-ul-hero:not(.bootstrap-ul-hero-carousel) .hero-title {
    font-size: 1.5rem;
    line-height: 1.15;
    margin-bottom: .35rem;
  }

  .bootstrap-ul-hero:not(.bootstrap-ul-hero-carousel) .hero-subtitle {
    font-size: .95rem;
    line-height: 1.3;
  }

  .bootstrap-ul-hero:not(.bootstrap-ul-hero-carousel) .hero-caption,
  .bootstrap-ul-hero:not(.bootstrap-ul-hero-carousel) .hero-overlay-content,
  .bootstrap-ul-hero:not(.bootstrap-ul-hero-carousel) .hero-content {
    top: .5rem;
    bottom: auto !important;
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    width: calc(100% - 1rem);
    text-align: center;
  }

  .bootstrap-ul-hero.bootstrap-ul-hero-carousel .carousel-caption {
    top: .5rem;
    bottom: auto !important;
    width: calc(100% - 1rem);
  }

  .bootstrap-ul-hero.bootstrap-ul-hero-carousel .hero-caption-box {
    padding: .25rem .65rem;
    transform: scale(.75);
  }
}

@media (max-width: 575.98px) {
  .bootstrap-ul-hero:not(.bootstrap-ul-hero-carousel) .hero-caption,
  .bootstrap-ul-hero:not(.bootstrap-ul-hero-carousel) .hero-overlay-content,
  .bootstrap-ul-hero:not(.bootstrap-ul-hero-carousel) .hero-content {
    top: .25rem;
    bottom: auto !important;
    width: calc(100% - .5rem);
  }

  .bootstrap-ul-hero.bootstrap-ul-hero-carousel .carousel-caption {
    top: .25rem;
    bottom: auto !important;
    width: calc(100% - .5rem);
  }

  .bootstrap-ul-hero.bootstrap-ul-hero-carousel .hero-caption-box {
    padding: .2rem .55rem;
    transform: scale(.62);
  }
}


/* ==========================================================
   GUTENBERG TABLES
   ========================================================== */

/* -------------------------------------------------------
   Gutenberg Tables styled like Bootstrap Card Tables
-------------------------------------------------------- */
figure.wp-block-table {
  background: var(--bs-body-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: var(--bs-border-radius);
  padding: 1.25rem;
  margin: 1rem 0 1.5rem;
  overflow-x: auto;
}

figure.wp-block-table table {
  width: 100%;
  margin-bottom: 0;
  border-collapse: separate;
  border-spacing: 0;
  color: var(--bs-body-color);
}

figure.wp-block-table table.table,
figure.wp-block-table table.table th,
figure.wp-block-table table.table td {
  border: none;
}

figure.wp-block-table table.table th,
figure.wp-block-table table.table td {
  padding: .6rem .75rem;
  vertical-align: middle;
}

figure.wp-block-table table.table thead th {
  border-bottom: 0 solid var(--bs-border-color);
}

figure.wp-block-table table.table tbody td {
  border-top: 1px solid var(--bs-border-color);
}

figure.wp-block-table table.table tbody tr:last-child td {
  border-bottom: 1px solid var(--bs-border-color);
}

figure.wp-block-table table.table-striped tbody tr:nth-of-type(odd) {
  background-color: rgba(0, 0, 0, .03);
}

figure.wp-block-table table.table-hover tbody tr:hover {
  background-color: rgba(0, 0, 0, .05);
}


/* ==========================================================
   LIGHTBOX / IMAGE UX
   ========================================================== */

/* Apply zoom cursor to all lightbox-enabled images */
.bootstrap-ul-lightbox img,
img.wp-post-image,
figure.wp-block-image img {
  cursor: zoom-in;
}

.wp-block-image.bootstrap-ul-lightbox,
figure.wp-block-image,
img.wp-post-image {
  position: relative;
}

.wp-block-image.bootstrap-ul-lightbox::after,
figure.wp-block-image::after {
  content: "";
  position: absolute;
  top: 12px;
  right: 12px;
  width: 22px;
  height: 22px;
  border-radius: 4px;
  opacity: 0;
  pointer-events: none;
  background: rgba(0,0,0,.35)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23fff' d='M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z'/%3E%3C/svg%3E")
    no-repeat center / 14px 14px;
}

.wp-block-image.bootstrap-ul-lightbox:hover::after,
figure.wp-block-image:hover::after {
  opacity: 1;
}


/* ==========================================================
   ACCORDION
   ========================================================== */

.accordion-button:focus {
  box-shadow: none;
  outline: none;
}

.accordion-button:focus-visible {
  box-shadow: 0 0 0 2px rgba(0,0,0,.25);
}

.bootstrap-ul-accordion,
.bu-accordion {
  margin-bottom: 2rem;
}

/* -------------------------------------------------------
   Bootstrap-UL Accordion Theme System
-------------------------------------------------------- */
.bu-accordion {
  --bu-panel-bg: var(--bs-body-bg);
  --bu-panel-color: var(--bs-body-color);
}

/* Header themes: solid */
.bu-accordion.bu-h-primary-solid   { --bu-head-bg: var(--bs-primary);   --bu-head-color: #fff; }
.bu-accordion.bu-h-secondary-solid { --bu-head-bg: var(--bs-secondary); --bu-head-color: #fff; }
.bu-accordion.bu-h-success-solid   { --bu-head-bg: var(--bs-success);   --bu-head-color: #fff; }
.bu-accordion.bu-h-danger-solid    { --bu-head-bg: var(--bs-danger);    --bu-head-color: #fff; }
.bu-accordion.bu-h-warning-solid   { --bu-head-bg: var(--bs-warning);   --bu-head-color: #000; }
.bu-accordion.bu-h-info-solid      { --bu-head-bg: var(--bs-info);      --bu-head-color: #000; }

/* Header themes: subtle */
.bu-accordion.bu-h-primary-subtle   { --bu-head-bg: var(--bs-primary-bg-subtle);   --bu-head-color: var(--bs-primary-text-emphasis); }
.bu-accordion.bu-h-secondary-subtle { --bu-head-bg: var(--bs-secondary-bg-subtle); --bu-head-color: var(--bs-secondary-text-emphasis); }
.bu-accordion.bu-h-success-subtle   { --bu-head-bg: var(--bs-success-bg-subtle);   --bu-head-color: var(--bs-success-text-emphasis); }
.bu-accordion.bu-h-danger-subtle    { --bu-head-bg: var(--bs-danger-bg-subtle);    --bu-head-color: var(--bs-danger-text-emphasis); }
.bu-accordion.bu-h-warning-subtle   { --bu-head-bg: var(--bs-warning-bg-subtle);   --bu-head-color: var(--bs-warning-text-emphasis); }
.bu-accordion.bu-h-info-subtle      { --bu-head-bg: var(--bs-info-bg-subtle);      --bu-head-color: var(--bs-info-text-emphasis); }
.bu-accordion.bu-h-light-subtle     { --bu-head-bg: var(--bs-light-bg-subtle);     --bu-head-color: var(--bs-emphasis-color); }
.bu-accordion.bu-h-dark-subtle      { --bu-head-bg: var(--bs-dark-bg-subtle);      --bu-head-color: var(--bs-dark-text-emphasis); }

.bu-accordion[class*="bu-h-"] .accordion-button,
.bu-accordion[class*="bu-h-"] .accordion-button:not(.collapsed) {
  background-color: var(--bu-head-bg) !important;
  color: var(--bu-head-color) !important;
}

.bu-accordion[class*="bu-h-"] .accordion-button {
  border-color: rgba(0,0,0,.125) !important;
}

.bu-accordion.bu-h-primary-solid .accordion-button::after,
.bu-accordion.bu-h-secondary-solid .accordion-button::after,
.bu-accordion.bu-h-success-solid .accordion-button::after,
.bu-accordion.bu-h-danger-solid .accordion-button::after,
.bu-accordion.bu-h-dark-subtle .accordion-button::after {
  filter: invert(1);
}

.bu-accordion .accordion-button:focus {
  box-shadow: none;
  outline: none;
}

.bu-accordion .accordion-button:focus-visible {
  box-shadow: 0 0 0 2px rgba(0,0,0,.25);
}

/* Panel themes: solid */
.bu-accordion.bu-p-primary-solid   { --bu-panel-bg: var(--bs-primary);   --bu-panel-color: #fff; }
.bu-accordion.bu-p-secondary-solid { --bu-panel-bg: var(--bs-secondary); --bu-panel-color: #fff; }
.bu-accordion.bu-p-success-solid   { --bu-panel-bg: var(--bs-success);   --bu-panel-color: #fff; }
.bu-accordion.bu-p-danger-solid    { --bu-panel-bg: var(--bs-danger);    --bu-panel-color: #fff; }
.bu-accordion.bu-p-warning-solid   { --bu-panel-bg: var(--bs-warning);   --bu-panel-color: #000; }
.bu-accordion.bu-p-info-solid      { --bu-panel-bg: var(--bs-info);      --bu-panel-color: #000; }

/* Panel themes: subtle */
.bu-accordion.bu-p-primary-subtle   { --bu-panel-bg: var(--bs-primary-bg-subtle);   --bu-panel-color: var(--bs-primary-text-emphasis); }
.bu-accordion.bu-p-secondary-subtle { --bu-panel-bg: var(--bs-secondary-bg-subtle); --bu-panel-color: var(--bs-secondary-text-emphasis); }
.bu-accordion.bu-p-success-subtle   { --bu-panel-bg: var(--bs-success-bg-subtle);   --bu-panel-color: var(--bs-success-text-emphasis); }
.bu-accordion.bu-p-danger-subtle    { --bu-panel-bg: var(--bs-danger-bg-subtle);    --bu-panel-color: var(--bs-danger-text-emphasis); }
.bu-accordion.bu-p-warning-subtle   { --bu-panel-bg: var(--bs-warning-bg-subtle);   --bu-panel-color: var(--bs-warning-text-emphasis); }
.bu-accordion.bu-p-info-subtle      { --bu-panel-bg: var(--bs-info-bg-subtle);      --bu-panel-color: var(--bs-info-text-emphasis); }
.bu-accordion.bu-p-light-subtle     { --bu-panel-bg: var(--bs-light-bg-subtle);     --bu-panel-color: var(--bs-emphasis-color); }
.bu-accordion.bu-p-dark-subtle      { --bu-panel-bg: var(--bs-dark-bg-subtle);      --bu-panel-color: var(--bs-dark-text-emphasis); }

.bu-accordion[class*="bu-p-"] .accordion-body,
.bu-accordion[class*="bu-p-"] .accordion-collapse {
  background-color: var(--bu-panel-bg) !important;
  color: var(--bu-panel-color) !important;
}


/* ==========================================================
   SHARED UTILITY TOKENS
   ========================================================== */

.bu-hover-lift {
  transition: transform .15s ease, box-shadow .15s ease;
}

.bu-hover-lift:hover {
  transform: translateY(-2px);
  box-shadow: var(--bs-box-shadow);
}

.bu-corners-rounded {
  border-radius: 1rem;
}

.bu-corners-square {
  border-radius: 0;
}

.bu-accent-thin  { --bu-accent-h: 5px; }
.bu-accent-md    { --bu-accent-h: 10px; }
.bu-accent-thick { --bu-accent-h: 16px; }


/* ==========================================================
   FEATURE GRID
   ========================================================== */

.bu-feature-grid {
  margin-bottom: 3rem;
}

.bu-feature-grid .bu-feature-icon {
  font-size: 1.5rem;
  line-height: 1;
}

.bu-feature-grid .card {
  box-sizing: border-box;
}

.bu-feature-grid.bu-corners-rounded .card,
.bu-feature-grid .bu-corners-rounded {
  border-radius: 1rem;
}

.bu-feature-grid.bu-corners-square .card,
.bu-feature-grid .bu-corners-square {
  border-radius: 0;
}

.bu-feature-grid .card .card-body {
  border-radius: inherit;
}

/* Accent stripe system */
.bu-feature-grid .bu-card-accent-primary-solid   { border-top: var(--bu-accent-h, 8px) solid var(--bs-primary); }
.bu-feature-grid .bu-card-accent-secondary-solid { border-top: var(--bu-accent-h, 8px) solid var(--bs-secondary); }
.bu-feature-grid .bu-card-accent-success-solid   { border-top: var(--bu-accent-h, 8px) solid var(--bs-success); }
.bu-feature-grid .bu-card-accent-danger-solid    { border-top: var(--bu-accent-h, 8px) solid var(--bs-danger); }
.bu-feature-grid .bu-card-accent-warning-solid   { border-top: var(--bu-accent-h, 8px) solid var(--bs-warning); }
.bu-feature-grid .bu-card-accent-info-solid      { border-top: var(--bu-accent-h, 8px) solid var(--bs-info); }
.bu-feature-grid .bu-card-accent-dark-solid      { border-top: var(--bu-accent-h, 8px) solid var(--bs-dark); }

.bu-feature-grid .bu-card-accent-primary-subtle   { border-top: var(--bu-accent-h, 8px) solid var(--bs-primary-border-subtle); }
.bu-feature-grid .bu-card-accent-secondary-subtle { border-top: var(--bu-accent-h, 8px) solid var(--bs-secondary-border-subtle); }
.bu-feature-grid .bu-card-accent-success-subtle   { border-top: var(--bu-accent-h, 8px) solid var(--bs-success-border-subtle); }
.bu-feature-grid .bu-card-accent-danger-subtle    { border-top: var(--bu-accent-h, 8px) solid var(--bs-danger-border-subtle); }
.bu-feature-grid .bu-card-accent-warning-subtle   { border-top: var(--bu-accent-h, 8px) solid var(--bs-warning-border-subtle); }
.bu-feature-grid .bu-card-accent-info-subtle      { border-top: var(--bu-accent-h, 8px) solid var(--bs-info-border-subtle); }
.bu-feature-grid .bu-card-accent-light-subtle     { border-top: var(--bu-accent-h, 8px) solid var(--bs-light-border-subtle); }
.bu-feature-grid .bu-card-accent-dark-subtle      { border-top: var(--bu-accent-h, 8px) solid var(--bs-dark-border-subtle); }


/* ==========================================================
   CALL TO ACTION (CTA)
   ========================================================== */

.bu-cta .bu-cta-card {
  background: linear-gradient(0deg, var(--bs-body-bg), var(--bs-tertiary-bg));
  border: 1px solid var(--bs-border-color);
  text-align: center;
}

.bu-cta .bu-card-accent-primary-solid   { border-left: var(--bu-accent-h, 6px) solid var(--bs-primary); }
.bu-cta .bu-card-accent-secondary-solid { border-left: var(--bu-accent-h, 6px) solid var(--bs-secondary); }
.bu-cta .bu-card-accent-success-solid   { border-left: var(--bu-accent-h, 6px) solid var(--bs-success); }
.bu-cta .bu-card-accent-danger-solid    { border-left: var(--bu-accent-h, 6px) solid var(--bs-danger); }
.bu-cta .bu-card-accent-warning-solid   { border-left: var(--bu-accent-h, 6px) solid var(--bs-warning); }
.bu-cta .bu-card-accent-info-solid      { border-left: var(--bu-accent-h, 6px) solid var(--bs-info); }
.bu-cta .bu-card-accent-dark-solid      { border-left: var(--bu-accent-h, 6px) solid var(--bs-dark); }

.bu-cta .bu-card-accent-primary-subtle   { border-left: var(--bu-accent-h, 6px) solid var(--bs-primary-border-subtle); }
.bu-cta .bu-card-accent-secondary-subtle { border-left: var(--bu-accent-h, 6px) solid var(--bs-secondary-border-subtle); }
.bu-cta .bu-card-accent-success-subtle   { border-left: var(--bu-accent-h, 6px) solid var(--bs-success-border-subtle); }
.bu-cta .bu-card-accent-danger-subtle    { border-left: var(--bu-accent-h, 6px) solid var(--bs-danger-border-subtle); }
.bu-cta .bu-card-accent-warning-subtle   { border-left: var(--bu-accent-h, 6px) solid var(--bs-warning-border-subtle); }
.bu-cta .bu-card-accent-info-subtle      { border-left: var(--bu-accent-h, 6px) solid var(--bs-info-border-subtle); }
.bu-cta .bu-card-accent-light-subtle     { border-left: var(--bu-accent-h, 6px) solid var(--bs-light-border-subtle); }
.bu-cta .bu-card-accent-dark-subtle      { border-left: var(--bu-accent-h, 6px) solid var(--bs-dark-border-subtle); }

.bu-cta .wp-block-buttons {
  justify-content: center;
}

.bu-cta .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  border: 1px solid transparent;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease, filter .2s ease;
}

.bu-cta .bu-btn-sm .wp-block-button__link {
  padding: .375rem .75rem;
  font-size: .875rem;
}

.bu-cta .bu-btn-md .wp-block-button__link {
  padding: .5rem 1rem;
  font-size: 1rem;
}

.bu-cta .bu-btn-lg .wp-block-button__link {
  padding: .85rem 1.75rem;
  font-size: 1.2rem;
}

.bu-cta .bu-btn-primary-solid .wp-block-button__link   { background-color: var(--bs-primary);   color: #fff; border-color: var(--bs-primary); }
.bu-cta .bu-btn-secondary-solid .wp-block-button__link { background-color: var(--bs-secondary); color: #fff; border-color: var(--bs-secondary); }
.bu-cta .bu-btn-success-solid .wp-block-button__link   { background-color: var(--bs-success);   color: #fff; border-color: var(--bs-success); }
.bu-cta .bu-btn-danger-solid .wp-block-button__link    { background-color: var(--bs-danger);    color: #fff; border-color: var(--bs-danger); }
.bu-cta .bu-btn-warning-solid .wp-block-button__link   { background-color: var(--bs-warning);   color: #000; border-color: var(--bs-warning); }
.bu-cta .bu-btn-info-solid .wp-block-button__link      { background-color: var(--bs-info);      color: #000; border-color: var(--bs-info); }
.bu-cta .bu-btn-dark-solid .wp-block-button__link      { background-color: var(--bs-dark);      color: #fff; border-color: var(--bs-dark); }

.bu-cta .bu-btn-primary-subtle .wp-block-button__link   { background-color: var(--bs-primary-bg-subtle);   color: var(--bs-primary-text-emphasis);   border-color: var(--bs-primary-border-subtle); }
.bu-cta .bu-btn-secondary-subtle .wp-block-button__link { background-color: var(--bs-secondary-bg-subtle); color: var(--bs-secondary-text-emphasis); border-color: var(--bs-secondary-border-subtle); }
.bu-cta .bu-btn-success-subtle .wp-block-button__link   { background-color: var(--bs-success-bg-subtle);   color: var(--bs-success-text-emphasis);   border-color: var(--bs-success-border-subtle); }
.bu-cta .bu-btn-danger-subtle .wp-block-button__link    { background-color: var(--bs-danger-bg-subtle);    color: var(--bs-danger-text-emphasis);    border-color: var(--bs-danger-border-subtle); }
.bu-cta .bu-btn-warning-subtle .wp-block-button__link   { background-color: var(--bs-warning-bg-subtle);   color: var(--bs-warning-text-emphasis);   border-color: var(--bs-warning-border-subtle); }
.bu-cta .bu-btn-info-subtle .wp-block-button__link      { background-color: var(--bs-info-bg-subtle);      color: var(--bs-info-text-emphasis);      border-color: var(--bs-info-border-subtle); }
.bu-cta .bu-btn-light-subtle .wp-block-button__link     { background-color: var(--bs-light-bg-subtle);     color: var(--bs-emphasis-color);          border-color: var(--bs-light-border-subtle); }
.bu-cta .bu-btn-dark-subtle .wp-block-button__link      { background-color: var(--bs-dark-bg-subtle);      color: var(--bs-dark-text-emphasis);      border-color: var(--bs-dark-border-subtle); }

.bu-cta .wp-block-button .wp-block-button__link:hover {
  filter: brightness(0.96);
}

.bu-cta .wp-block-button.rounded-pill .wp-block-button__link {
  border-radius: 50rem;
}


/* ==========================================================
   CONTENT + IMAGE SPLIT
   ========================================================== */

.bu-split {
  --bu-split-radius: 1rem;
  --bu-split-media-radius: 1rem;
  --bu-split-bg: transparent;
  --bu-split-border: transparent;
  --bu-split-shadow: none;
  background: var(--bu-split-bg);
  border: 1px solid var(--bu-split-border);
  box-shadow: var(--bu-split-shadow);
}

.bu-split .bu-split-media img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: var(--bu-split-media-radius);
}

.bu-split .bu-split-content > *:last-child {
  margin-bottom: 0;
}

.bu-split .wp-block-buttons.bu-split-actions {
  margin-top: 1rem;
}

.bu-split.bu-split-card {
  --bu-split-bg: var(--bs-body-bg);
  --bu-split-border: var(--bs-border-color);
  --bu-split-shadow: var(--bs-box-shadow-sm);
  border-radius: var(--bu-split-radius);
  padding: 1.5rem;
}

@media (min-width: 768px) {
  .bu-split.bu-split-card {
    padding: 2rem;
  }
}

.bu-split.bu-split-accent {
  position: relative;
  padding-left: 1.5rem;
}

.bu-split.bu-split-accent::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 6px;
  background: var(--bs-primary);
  border-radius: 999px;
}

@media (min-width: 768px) {
  .bu-split.bu-split-accent {
    padding-left: 2rem;
  }
}


/* ==========================================================
   STATS / METRICS
   ========================================================== */

.bu-stats {
  --bu-stat-bg: var(--bs-body-bg);
  --bu-stat-border: var(--bs-border-color);
  --bu-stat-divider: var(--bs-border-color);
  --bu-stat-pad: 1.25rem;
  --bu-stat-pad-md: 1.5rem;
  --bu-stat-number-size: 2.5rem;
  --bu-stat-label-size: 1rem;
  --bu-stat-note-size: .875rem;
}

.bu-stats .bu-stats-head > *:last-child {
  margin-bottom: 0;
}

.bu-stats .bu-stats-strip {
  row-gap: 2rem;
}

.bu-stats .bu-stat {
  background: var(--bu-stat-bg);
  border: 1px solid var(--bu-stat-border);
  padding: var(--bu-stat-pad);
  height: 100%;
  text-align: center;
}

@media (min-width: 768px) {
  .bu-stats .bu-stat {
    padding: var(--bu-stat-pad-md);
  }
}

.bu-stats .bu-stat-number {
  margin: 0 0 .5rem;
  font-size: var(--bu-stat-number-size);
  line-height: 1.1;
  font-weight: 700;
  letter-spacing: -.02em;
}

.bu-stats .bu-stat-label {
  margin: 0 0 .5rem;
  font-size: var(--bu-stat-label-size);
  font-weight: 600;
  line-height: 1.3;
}

.bu-stats .bu-stat-note {
  margin: 0 auto;
  max-width: 22ch;
  font-size: var(--bu-stat-note-size);
  line-height: 1.6;
  opacity: .85;
}

.bu-stats .bu-stat.bu-stat-lg {
  --bu-stat-pad: 1.5rem;
  --bu-stat-pad-md: 2rem;
}

.bu-stats.bu-stats-accent .bu-stat {
  position: relative;
  overflow: hidden;
  padding-left: calc(var(--bu-stat-pad) + 1rem);
}

.bu-stats.bu-stats-accent .bu-stat::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 6px;
  background: var(--bs-primary);
}

@media (min-width: 768px) {
  .bu-stats.bu-stats-accent .bu-stat {
    padding-left: calc(var(--bu-stat-pad-md) + 1rem);
  }

  .bu-stats .bu-stats-strip > .wp-block-column {
    position: relative;
  }

  .bu-stats.bu-stats-dividers-on .bu-stats-strip > .wp-block-column:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 10%;
    right: 0;
    width: 1px;
    height: 80%;
    background: var(--bu-stat-divider);
  }

  .bu-stats.bu-stats-dividers-off .bu-stats-strip > .wp-block-column:not(:last-child)::after {
    content: none;
  }
}


/* ==========================================================
   TEAM
   ========================================================== */

.bu-team {
  --bu-team-radius: 1rem;
  --bu-team-border: var(--bs-border-color);
  --bu-team-shadow: var(--bs-box-shadow-sm);
  --bu-team-pad: 1.25rem;
}

.bu-team .bu-team-head > *:last-child {
  margin-bottom: 0;
}

.bu-team .bu-team-card {
  border: 1px solid var(--bu-team-border);
  box-shadow: var(--bu-team-shadow);
  border-radius: var(--bu-team-radius);
  overflow: hidden;
  background: var(--bs-body-bg);
}

.bu-team .bu-team-photo {
  margin: 0;
}

.bu-team .bu-team-photo img {
  width: 100%;
  aspect-ratio: 4 / 3;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
}

.bu-team .bu-team-photo.bu-team-photo-lg img {
  aspect-ratio: 1 / 1;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  border-radius: var(--bu-team-radius);
}

.bu-team .bu-team-body {
  padding: var(--bu-team-pad);
}

.bu-team .bu-team-name {
  margin: 0 0 .25rem 0;
}

.bu-team .bu-team-role {
  margin: 0 0 .75rem 0;
  font-weight: 600;
  opacity: .85;
}

.bu-team .bu-team-bio {
  margin: 0 0 1rem 0;
  opacity: .9;
}

.bu-team .bu-team-links {
  gap: .5rem;
}

.bu-team .bu-team-links .wp-block-button__link {
  padding: .4rem .75rem;
  transition: border-color .15s ease, color .15s ease, background-color .15s ease;
}

.bu-team .bu-team-links .wp-block-button__link:hover {
  border-color: var(--bs-primary);
  color: var(--bs-primary);
  background-color: rgba(var(--bs-primary-rgb), .05);
}


/* ==========================================================
   BLOCKQUOTES
   ========================================================== */

blockquote,
.wp-block-quote,
.wp-block-pullquote blockquote {
  font-family: var(--bu-font-blockquote, var(--bu-font-body));
  font-size: 1.125rem;
  line-height: 1.6;
  margin: 1.5rem 0;
  padding: 0.75rem 1.25rem;
  border-left: 4px solid var(--bs-border-color);
  color: var(--bs-secondary-color);
  background: transparent;
}

blockquote p:last-child,
.wp-block-quote p:last-child,
.wp-block-pullquote blockquote p:last-child {
  margin-bottom: 0;
}

.wp-block-quote cite,
blockquote footer,
blockquote cite {
  display: block;
  margin-top: 0.5rem;
  font-size: 0.875rem;
  color: var(--bs-tertiary-color);
}

.wp-block-pullquote {
  padding: 1.5rem;
  margin: 2rem 0;
  border-top: 1px solid var(--bs-border-color);
  border-bottom: 1px solid var(--bs-border-color);
  text-align: center;
}

.wp-block-pullquote blockquote {
  border-left: 0;
  padding: 0;
  margin: 0;
  color: var(--bs-body-color);
}

blockquote cite::before {
  content: "— ";
}


/* ==========================================================
   NAVBAR OFFSET
   ========================================================== */

body.bu-navbar-fixed {
  padding-top: 56px;
}

body.admin-bar.bu-navbar-fixed {
  padding-top: 96px;
}

@media screen and (max-width: 782px) {
  body.bu-navbar-fixed {
    padding-top: 56px;
  }

  body.admin-bar.bu-navbar-fixed {
    padding-top: 110px;
  }
}


/* ==========================================================
   CARD BACKGROUND INHERITANCE
   ========================================================== */

.bu-sidebar-region[class*="bg-"] .card,
.bu-footer-region[class*="bg-"] .card,
.bu-content-region[class*="bg-"] .card {
  background-color: inherit;
}


/* ==========================================================
   AUTHOR BOX
   ========================================================== */

.bu-author-box {
  border: 1px solid var(--bs-border-color);
  transition: box-shadow .15s ease, transform .15s ease;
}

.bu-author-box:hover {
  box-shadow: var(--bs-box-shadow-sm);
}

.bu-author-box img {
  width: 72px;
  height: 72px;
  object-fit: cover;
}

.bu-author-box .bu-author-name {
  font-weight: 600;
}

.bu-author-box .bu-author-meta {
  font-size: .85rem;
  opacity: .85;
}

.bu-author-box .bu-author-bio {
  font-size: .9rem;
}


/* ==========================================================
   AUTO CONTRAST SUPPORT
   ========================================================== */

.text-white a:not(.btn),
.text-white .btn-link {
  color: inherit;
}

.text-white a:not(.btn):hover,
.text-white .btn-link:hover {
  color: inherit;
  opacity: .85;
}

.text-white .text-muted,
.text-white .text-body-secondary,
.text-white .text-body-tertiary,
.text-white small,
.text-white .small {
  color: rgba(255,255,255,.75) !important;
}

.text-white hr,
.text-white .border,
.text-white .border-top,
.text-white .border-bottom,
.text-white .list-group-item,
.text-white .card {
  border-color: rgba(255,255,255,.2) !important;
}


/* Fix nested cards inside dark content surfaces */
.bu-content-region.text-white .card {
  color: var(--bs-body-color);
}

.bu-content-region.text-white .card a:not(.btn) {
  color: var(--bs-link-color);
}

.bu-content-region.text-white .card .text-muted,
.bu-content-region.text-white .card .text-body-secondary,
.bu-content-region.text-white .card .text-body-tertiary,
.bu-content-region.text-white .card small,
.bu-content-region.text-white .card .small {
  color: var(--bs-secondary-color) !important;
}


/* ==========================================================
   CONTENT AUTO TEXT COLOR
   Only affects normal editorial content, not pattern/card UI
   ========================================================== */
/* Entry header text on dark content surfaces */
article.bg-dark .entry-header,
article.bg-dark .entry-header h1,
article.bg-dark .entry-header .entry-title,
article.bg-primary .entry-header,
article.bg-primary .entry-header h1,
article.bg-primary .entry-header .entry-title,
article.bg-secondary .entry-header,
article.bg-secondary .entry-header h1,
article.bg-secondary .entry-header .entry-title,
article.bg-success .entry-header,
article.bg-success .entry-header h1,
article.bg-success .entry-header .entry-title,
article.bg-danger .entry-header,
article.bg-danger .entry-header h1,
article.bg-danger .entry-header .entry-title,
article.bg-info .entry-header,
article.bg-info .entry-header h1,
article.bg-info .entry-header .entry-title {
  color: #fff !important;
}

.bu-content-text-white > p,
.bu-content-text-white > ul,
.bu-content-text-white > ol,
.bu-content-text-white > blockquote,
.bu-content-text-white > h1,
.bu-content-text-white > h2,
.bu-content-text-white > h3,
.bu-content-text-white > h4,
.bu-content-text-white > h5,
.bu-content-text-white > h6,
.bu-content-text-white > .wp-block-heading,
.bu-content-text-white > div > p,
.bu-content-text-white > div > ul,
.bu-content-text-white > div > ol,
.bu-content-text-white > div > blockquote,
.bu-content-text-white > div > h1,
.bu-content-text-white > div > h2,
.bu-content-text-white > div > h3,
.bu-content-text-white > div > h4,
.bu-content-text-white > div > h5,
.bu-content-text-white > div > h6,
.bu-content-text-white > div > .wp-block-heading {
  color: #fff;
}

.bu-content-text-white > p a,
.bu-content-text-white > ul a,
.bu-content-text-white > ol a,
.bu-content-text-white > blockquote a,
.bu-content-text-white > div > p a,
.bu-content-text-white > div > ul a,
.bu-content-text-white > div > ol a,
.bu-content-text-white > div > blockquote a {
  color: inherit;
}

.bu-content-text-white .wp-block-table,
.bu-content-text-white .wp-block-table *,
.bu-content-text-white table,
.bu-content-text-white table * {
  color: inherit;
}

/* ==========================================================
   SIDEBAR DARK CARD TEXT
   ========================================================== */

.sidebar .card.bg-dark,
.sidebar .card.bg-primary,
.sidebar .card.bg-secondary,
.sidebar .card.bg-success,
.sidebar .card.bg-danger,
.sidebar .card.bg-info,
.sidebar .card.bg-dark-subtle.text-white,
.sidebar .card.bg-primary-subtle.text-white,
.sidebar .card.bg-secondary-subtle.text-white,
.sidebar .card.bg-success-subtle.text-white,
.sidebar .card.bg-danger-subtle.text-white,
.sidebar .card.bg-info-subtle.text-white {
  color: #fff;
}

.sidebar .card.bg-dark h1,
.sidebar .card.bg-dark h2,
.sidebar .card.bg-dark h3,
.sidebar .card.bg-dark h4,
.sidebar .card.bg-dark h5,
.sidebar .card.bg-dark h6,
.sidebar .card.bg-dark p,
.sidebar .card.bg-dark li,
.sidebar .card.bg-dark label,
.sidebar .card.bg-dark .wp-block-heading,
.sidebar .card.bg-dark .wp-block-latest-comments__comment-meta,
.sidebar .card.bg-dark .wp-block-latest-posts__post-title,
.sidebar .card.bg-dark .wp-block-categories-list,
.sidebar .card.bg-dark .wp-block-archives-list {
  color: inherit;
}

.sidebar .card.bg-dark a {
  color: rgba(255,255,255,.9);
}

.sidebar .card.bg-dark a:hover,
.sidebar .card.bg-dark a:focus {
  color: #fff;
}

.sidebar .card.bg-dark .wp-block-search__label {
  color: #fff;
}

/* ==========================================================
   AUTHOR BOX + POST META DARK SURFACE SUPPORT
   ========================================================== */

.bg-dark .text-muted,
.bg-primary .text-muted,
.bg-secondary .text-muted,
.bg-success .text-muted,
.bg-danger .text-muted,
.bg-info .text-muted {
  color: rgba(255,255,255,.75) !important;
}

.bu-author-box.bg-dark,
.bu-author-box.bg-primary,
.bu-author-box.bg-secondary,
.bu-author-box.bg-success,
.bu-author-box.bg-danger,
.bu-author-box.bg-info,
.post-meta-footer.bg-dark,
.post-meta-footer.bg-primary,
.post-meta-footer.bg-secondary,
.post-meta-footer.bg-success,
.post-meta-footer.bg-danger,
.post-meta-footer.bg-info {
  color: #fff;
}

.bu-author-box.bg-dark a:not(.btn),
.bu-author-box.bg-primary a:not(.btn),
.bu-author-box.bg-secondary a:not(.btn),
.bu-author-box.bg-success a:not(.btn),
.bu-author-box.bg-danger a:not(.btn),
.bu-author-box.bg-info a:not(.btn),
.post-meta-footer.bg-dark a:not(.btn),
.post-meta-footer.bg-primary a:not(.btn),
.post-meta-footer.bg-secondary a:not(.btn),
.post-meta-footer.bg-success a:not(.btn),
.post-meta-footer.bg-danger a:not(.btn),
.post-meta-footer.bg-info a:not(.btn) {
  color: rgba(255,255,255,.92);
}

.bu-author-box.bg-dark a:not(.btn):hover,
.bu-author-box.bg-primary a:not(.btn):hover,
.bu-author-box.bg-secondary a:not(.btn):hover,
.bu-author-box.bg-success a:not(.btn):hover,
.bu-author-box.bg-danger a:not(.btn):hover,
.bu-author-box.bg-info a:not(.btn):hover,
.post-meta-footer.bg-dark a:not(.btn):hover,
.post-meta-footer.bg-primary a:not(.btn):hover,
.post-meta-footer.bg-secondary a:not(.btn):hover,
.post-meta-footer.bg-success a:not(.btn):hover,
.post-meta-footer.bg-danger a:not(.btn):hover,
.post-meta-footer.bg-info a:not(.btn):hover {
  color: #fff;
}

.post-meta-footer.bg-dark .border-top,
.post-meta-footer.bg-primary .border-top,
.post-meta-footer.bg-secondary .border-top,
.post-meta-footer.bg-success .border-top,
.post-meta-footer.bg-danger .border-top,
.post-meta-footer.bg-info .border-top {
  border-color: rgba(255,255,255,.2) !important;
}