/* Bootstrap Link Color Overrides - Very Targeted for Body Content Only */
/* Only affect inline text links within body content, not view blocks or carousels */

/* Target only body field content links - very specific */
.field--name-body a:not(.btn):not(.nav-link):not(.caption),
.field--name-field-body a:not(.btn):not(.nav-link):not(.caption),
.text-content a:not(.btn):not(.nav-link):not(.caption):not(.views-field-title a),
.node--type-page .field--name-body p a:not(.btn):not(.nav-link):not(.caption),
.node--type-article .field--name-body p a:not(.btn):not(.nav-link):not(.caption),
.paragraph--type-text .field--name-field-text p a:not(.btn):not(.nav-link):not(.caption) {
  color: var(--qridaOrange) !important;
  text-decoration: underline !important;
}

/* Hover states for body content links only */
.field--name-body a:not(.btn):not(.nav-link):not(.caption):hover,
.field--name-body a:not(.btn):not(.nav-link):not(.caption):focus,
.field--name-field-body a:not(.btn):not(.nav-link):not(.caption):hover,
.field--name-field-body a:not(.btn):not(.nav-link):not(.caption):focus,
.text-content a:not(.btn):not(.nav-link):not(.caption):not(.views-field-title a):hover,
.text-content a:not(.btn):not(.nav-link):not(.caption):not(.views-field-title a):focus,
.node--type-page .field--name-body p a:not(.btn):not(.nav-link):not(.caption):hover,
.node--type-page .field--name-body p a:not(.btn):not(.nav-link):not(.caption):focus,
.node--type-article .field--name-body p a:not(.btn):not(.nav-link):not(.caption):hover,
.node--type-article .field--name-body p a:not(.btn):not(.nav-link):not(.caption):focus,
.paragraph--type-text .field--name-field-text p a:not(.btn):not(.nav-link):not(.caption):hover,
.paragraph--type-text .field--name-field-text p a:not(.btn):not(.nav-link):not(.caption):focus {
  color: var(--orangeEarthy) !important;
  text-decoration: underline !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border: none !important;
}

.field--name-body a:not(.btn):not(.nav-link):not(.caption):focus,
.field--name-field-body a:not(.btn):not(.nav-link):not(.caption):focus,
.text-content a:not(.btn):not(.nav-link):not(.caption):not(.views-field-title a):focus,
.node--type-page .field--name-body p a:not(.btn):not(.nav-link):not(.caption):focus,
.node--type-article .field--name-body p a:not(.btn):not(.nav-link):not(.caption):focus,
.paragraph--type-text .field--name-field-text p a:not(.btn):not(.nav-link):not(.caption):focus {
  outline: var(--focus-ring) !important;
  outline-offset: 2px !important;
}

/* Additional fixes for underline and background issues - body content only */
.field--name-body a:not(.btn):not(.nav-link):not(.caption),
.field--name-field-body a:not(.btn):not(.nav-link):not(.caption),
.text-content a:not(.btn):not(.nav-link):not(.caption):not(.views-field-title a),
.node--type-page .field--name-body p a:not(.btn):not(.nav-link):not(.caption),
.node--type-article .field--name-body p a:not(.btn):not(.nav-link):not(.caption),
.paragraph--type-text .field--name-field-text p a:not(.btn):not(.nav-link):not(.caption) {
  background-color: transparent !important;
  box-shadow: none !important;
  border: none !important;
  text-decoration-color: var(--qridaOrange) !important;
}

/* Alert banners: ALL text and links must be white.
   Must match or exceed specificity of body-content rules (0,5,2) */
.alert .field--name-body,
.alert .field--name-field-body,
.alert .text-content,
.alert .alert-msg,
.alert .alert-msg p,
.alert .field--name-body p,
.alert .text-content p,
.alert p {
  color: #ffffff !important;
}

.alert .field--name-body a:not(.btn):not(.nav-link):not(.caption),
.alert .field--name-field-body a:not(.btn):not(.nav-link):not(.caption),
.alert .text-content a:not(.btn):not(.nav-link):not(.caption):not(.views-field-title a),
.alert a {
  color: #ffffff !important;
  text-decoration: underline !important;
  text-decoration-color: #ffffff !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border: none !important;
}

.alert .field--name-body a:not(.btn):not(.nav-link):not(.caption):hover,
.alert .field--name-body a:not(.btn):not(.nav-link):not(.caption):focus,
.alert .text-content a:not(.btn):not(.nav-link):not(.caption):not(.views-field-title a):hover,
.alert .text-content a:not(.btn):not(.nav-link):not(.caption):not(.views-field-title a):focus,
.alert a:hover,
.alert a:focus {
  color: #ffffff !important;
  text-decoration: none !important;
  opacity: 0.85;
}

/* Remove navigation menu borders and shadows — exclude focus states so
   the inset box-shadow focus ring remains visible on dropdown items */
.dropdown-menu,
.dropdown-menu .dropdown-item,
.nav-item,
.dropdown .dropdown-menu .nav-item,
.dropdown .dropdown-menu .nav-link:not(:focus):not(:focus-visible) {
  border: none !important;
  border-top: none !important;
  border-bottom: none !important;
  border-left: none !important;
  border-right: none !important;
  box-shadow: none !important;
}

/* Ensure no white lines between menu items */
.dropdown-menu .dropdown-item,
.dropdown .dropdown-menu .nav-item {
  border-top: none !important;
  border-bottom: none !important;
}

/* Remove any Bootstrap default dropdown styling that creates lines */
.dropdown-menu .dropdown-item:first-child,
.dropdown-menu .dropdown-item:last-child,
.dropdown .dropdown-menu .nav-item:first-child,
.dropdown .dropdown-menu .nav-item:last-child {
  border: none !important;
}

/* Footer link overrides - force white color on dark background */
.footer-bottom a,
.footer-bottom .text-content a,
#block-footer-bottom-copyright a,
#block-footer-bottom-copyright .text-content a {
  color: var(--white) !important;
  text-decoration: underline !important;
}

.footer-bottom a:hover,
.footer-bottom a:focus,
.footer-bottom .text-content a:hover,
.footer-bottom .text-content a:focus,
#block-footer-bottom-copyright a:hover,
#block-footer-bottom-copyright a:focus,
#block-footer-bottom-copyright .text-content a:hover,
#block-footer-bottom-copyright .text-content a:focus {
  color: var(--white) !important;
  text-decoration: none !important;
}

/* Override Olivero's blue hover styles on radio buttons and checkboxes */
input[type="checkbox"]:hover,
input[type="radio"]:hover {
  border-color: var(--qridaOrange) !important;
}

/* Override Olivero's blue focus styles on radio buttons and checkboxes */
input[type="checkbox"]:focus,
input[type="radio"]:focus,
input[type="checkbox"]:focus-visible,
input[type="radio"]:focus-visible {
  border-color: var(--qridaOrange) !important;
  outline: var(--focus-ring) !important;
  outline-offset: 1px !important;
  box-shadow: 0 0 0 2px white, 0 0 0 4px var(--orangeEarthy) !important;
}

/* Remove focus styles on hover for checked radio buttons to prevent persistent ring */
input[type="radio"]:checked:hover,
input[type="checkbox"]:checked:hover {
  box-shadow: none !important;
  outline: none !important;
}

/* Only show focus outline when actually focused, not just checked */
input[type="radio"]:checked:not(:focus):not(:focus-visible),
input[type="checkbox"]:checked:not(:focus):not(:focus-visible) {
  box-shadow: none !important;
  outline: none !important;
}

/* ==========================================================================
   Neutralize Olivero Theme Layout Styles
   Olivero uses its own grid/flex system that conflicts with Bootstrap
   ========================================================================== */

/* Override Olivero's footer region - keep flex but control better */
.region--footer_top__inner,
.region--footer_bottom__inner {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: var(--space-2xl, 1.5rem);
}

/* Footer region blocks - control their flex basis properly */
.region--footer_top__inner > *,
.region--footer_bottom__inner > * {
  flex: 1 1 300px !important;
  min-width: 0 !important;
  max-width: 100%;
}

/* Ensure containers inside footer blocks get full width */
.region--footer_top__inner .container,
.region--footer_bottom__inner .container {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Fix Bootstrap rows inside footer blocks */
.region--footer_top__inner .row,
.region--footer_bottom__inner .row {
  display: flex !important;
  flex-wrap: wrap !important;
  margin-left: -0.75rem !important;
  margin-right: -0.75rem !important;
  width: calc(100% + 1.5rem) !important;
}

/* Fix Bootstrap columns inside footer blocks - reset Olivero's flex: 1 */
.region--footer_top__inner .row > [class*="col"],
.region--footer_bottom__inner .row > [class*="col"] {
  flex: 0 0 auto !important;
  padding-left: 0.75rem !important;
  padding-right: 0.75rem !important;
}

/* Neutralize Olivero's views grid styles */

.views-view-grid {
  display: flex !important;
  flex-wrap: wrap !important;
  grid-template-columns: none !important;
  grid-gap: 0 !important;
  column-count: unset !important;
  column-width: unset !important;
}

.views-view-grid.horizontal,
.views-view-grid--horizontal {
  display: flex !important;
  flex-wrap: wrap !important;
  grid-template-columns: none !important;
}

.views-view-grid.vertical,
.views-view-grid--vertical {
  display: flex !important;
  flex-wrap: wrap !important;
  column-count: unset !important;
  column-width: unset !important;
}

/* ==========================================================================
   Bootstrap 5 Grid System Fixes
   Ensures proper row and column behavior when other styles interfere
   ========================================================================== */

/* Ensure Bootstrap rows work properly */
.row {
  display: flex !important;
  flex-wrap: wrap !important;
  margin-right: calc(-.5 * var(--bs-gutter-x, 1.5rem));
  margin-left: calc(-.5 * var(--bs-gutter-x, 1.5rem));
}

/* Critical fix: Ensure view grid rows wrap properly */
.views-view-grid .row,
.view-content .row,
.views-view-grid.row {
  display: flex !important;
  flex-wrap: wrap !important;
  width: 100% !important;
}

/* Ensure columns in view grids can wrap and respect their width constraints */
.views-view-grid .row > [class*="col"],
.view-content .row > [class*="col"],
.views-view-grid.row > [class*="col"] {
  flex-shrink: 1 !important;
  min-width: 0 !important;
  max-width: 100% !important;
}

/* Views grid - ensure proper flexbox behavior */
.views-view-grid.row,
.views-view-grid {
  display: flex !important;
  flex-wrap: wrap !important;
}

/* Ensure all row direct children (columns) get proper padding */
.row > * {
  flex-shrink: 0;
  width: 100%;
  max-width: 100%;
  padding-right: calc(var(--bs-gutter-x, 1.5rem) * .5);
  padding-left: calc(var(--bs-gutter-x, 1.5rem) * .5);
}

/* Bootstrap 5 column width classes - ensure they're not overridden */
.col { flex: 1 0 0% !important; }
.col-auto { flex: 0 0 auto !important; width: auto !important; }
.col-1 { flex: 0 0 auto !important; width: 8.333333% !important; }
.col-2 { flex: 0 0 auto !important; width: 16.666667% !important; }
.col-3 { flex: 0 0 auto !important; width: 25% !important; }
.col-4 { flex: 0 0 auto !important; width: 33.333333% !important; }
.col-5 { flex: 0 0 auto !important; width: 41.666667% !important; }
.col-6 { flex: 0 0 auto !important; width: 50% !important; }
.col-7 { flex: 0 0 auto !important; width: 58.333333% !important; }
.col-8 { flex: 0 0 auto !important; width: 66.666667% !important; }
.col-9 { flex: 0 0 auto !important; width: 75% !important; }
.col-10 { flex: 0 0 auto !important; width: 83.333333% !important; }
.col-11 { flex: 0 0 auto !important; width: 91.666667% !important; }
.col-12 { flex: 0 0 auto !important; width: 100% !important; }

/* SM breakpoint (576px+) */
@media (min-width: 576px) {
  .col-sm { flex: 1 0 0% !important; }
  .col-sm-auto { flex: 0 0 auto !important; width: auto !important; }
  .col-sm-1 { flex: 0 0 auto !important; width: 8.333333% !important; }
  .col-sm-2 { flex: 0 0 auto !important; width: 16.666667% !important; }
  .col-sm-3 { flex: 0 0 auto !important; width: 25% !important; }
  .col-sm-4 { flex: 0 0 auto !important; width: 33.333333% !important; }
  .col-sm-5 { flex: 0 0 auto !important; width: 41.666667% !important; }
  .col-sm-6 { flex: 0 0 auto !important; width: 50% !important; }
  .col-sm-7 { flex: 0 0 auto !important; width: 58.333333% !important; }
  .col-sm-8 { flex: 0 0 auto !important; width: 66.666667% !important; }
  .col-sm-9 { flex: 0 0 auto !important; width: 75% !important; }
  .col-sm-10 { flex: 0 0 auto !important; width: 83.333333% !important; }
  .col-sm-11 { flex: 0 0 auto !important; width: 91.666667% !important; }
  .col-sm-12 { flex: 0 0 auto !important; width: 100% !important; }
}

/* MD breakpoint (768px+) */
@media (min-width: 768px) {
  .col-md { flex: 1 0 0% !important; }
  .col-md-auto { flex: 0 0 auto !important; width: auto !important; }
  .col-md-1 { flex: 0 0 auto !important; width: 8.333333% !important; }
  .col-md-2 { flex: 0 0 auto !important; width: 16.666667% !important; }
  .col-md-3 { flex: 0 0 auto !important; width: 25% !important; }
  .col-md-4 { flex: 0 0 auto !important; width: 33.333333% !important; }
  .col-md-5 { flex: 0 0 auto !important; width: 41.666667% !important; }
  .col-md-6 { flex: 0 0 auto !important; width: 50% !important; }
  .col-md-7 { flex: 0 0 auto !important; width: 58.333333% !important; }
  .col-md-8 { flex: 0 0 auto !important; width: 66.666667% !important; }
  .col-md-9 { flex: 0 0 auto !important; width: 75% !important; }
  .col-md-10 { flex: 0 0 auto !important; width: 83.333333% !important; }
  .col-md-11 { flex: 0 0 auto !important; width: 91.666667% !important; }
  .col-md-12 { flex: 0 0 auto !important; width: 100% !important; }
}

/* LG breakpoint (992px+) */
@media (min-width: 992px) {
  .col-lg { flex: 1 0 0% !important; }
  .col-lg-auto { flex: 0 0 auto !important; width: auto !important; }
  .col-lg-1 { flex: 0 0 auto !important; width: 8.333333% !important; }
  .col-lg-2 { flex: 0 0 auto !important; width: 16.666667% !important; }
  .col-lg-3 { flex: 0 0 auto !important; width: 25% !important; }
  .col-lg-4 { flex: 0 0 auto !important; width: 33.333333% !important; }
  .col-lg-5 { flex: 0 0 auto !important; width: 41.666667% !important; }
  .col-lg-6 { flex: 0 0 auto !important; width: 50% !important; }
  .col-lg-7 { flex: 0 0 auto !important; width: 58.333333% !important; }
  .col-lg-8 { flex: 0 0 auto !important; width: 66.666667% !important; }
  .col-lg-9 { flex: 0 0 auto !important; width: 75% !important; }
  .col-lg-10 { flex: 0 0 auto !important; width: 83.333333% !important; }
  .col-lg-11 { flex: 0 0 auto !important; width: 91.666667% !important; }
  .col-lg-12 { flex: 0 0 auto !important; width: 100% !important; }
}

/* XL breakpoint (1200px+) */
@media (min-width: 1200px) {
  .col-xl { flex: 1 0 0% !important; }
  .col-xl-auto { flex: 0 0 auto !important; width: auto !important; }
  .col-xl-1 { flex: 0 0 auto !important; width: 8.333333% !important; }
  .col-xl-2 { flex: 0 0 auto !important; width: 16.666667% !important; }
  .col-xl-3 { flex: 0 0 auto !important; width: 25% !important; }
  .col-xl-4 { flex: 0 0 auto !important; width: 33.333333% !important; }
  .col-xl-5 { flex: 0 0 auto !important; width: 41.666667% !important; }
  .col-xl-6 { flex: 0 0 auto !important; width: 50% !important; }
  .col-xl-7 { flex: 0 0 auto !important; width: 58.333333% !important; }
  .col-xl-8 { flex: 0 0 auto !important; width: 66.666667% !important; }
  .col-xl-9 { flex: 0 0 auto !important; width: 75% !important; }
  .col-xl-10 { flex: 0 0 auto !important; width: 83.333333% !important; }
  .col-xl-11 { flex: 0 0 auto !important; width: 91.666667% !important; }
  .col-xl-12 { flex: 0 0 auto !important; width: 100% !important; }
}

/* XXL breakpoint (1400px+) */
@media (min-width: 1400px) {
  .col-xxl { flex: 1 0 0% !important; }
  .col-xxl-auto { flex: 0 0 auto !important; width: auto !important; }
  .col-xxl-1 { flex: 0 0 auto !important; width: 8.333333% !important; }
  .col-xxl-2 { flex: 0 0 auto !important; width: 16.666667% !important; }
  .col-xxl-3 { flex: 0 0 auto !important; width: 25% !important; }
  .col-xxl-4 { flex: 0 0 auto !important; width: 33.333333% !important; }
  .col-xxl-5 { flex: 0 0 auto !important; width: 41.666667% !important; }
  .col-xxl-6 { flex: 0 0 auto !important; width: 50% !important; }
  .col-xxl-7 { flex: 0 0 auto !important; width: 58.333333% !important; }
  .col-xxl-8 { flex: 0 0 auto !important; width: 66.666667% !important; }
  .col-xxl-9 { flex: 0 0 auto !important; width: 75% !important; }
  .col-xxl-10 { flex: 0 0 auto !important; width: 83.333333% !important; }
  .col-xxl-11 { flex: 0 0 auto !important; width: 91.666667% !important; }
  .col-xxl-12 { flex: 0 0 auto !important; width: 100% !important; }
}

/* Carousel indicators - override Bootstrap defaults to small dots */
.carousel-indicators {
  gap: 4px !important;
  margin-bottom: 1rem !important;
}

.carousel-indicators button,
.carousel-indicators [data-bs-target] {
  width: 10px !important;
  height: 10px !important;
  border-radius: 50% !important;
  background-color: rgba(255, 255, 255, 0.4) !important;
  border: 1px solid rgba(255, 255, 255, 0.7) !important;
  opacity: 1 !important;
  margin: 0 3px !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  flex: 0 0 auto !important;
  transition: all 0.2s ease !important;
}

.carousel-indicators button.active,
.carousel-indicators [data-bs-target].active,
.carousel-indicators .active {
  background-color: #ffffff !important;
  border-color: #ffffff !important;
  transform: scale(1.2) !important;
}

.carousel-indicators button:hover,
.carousel-indicators [data-bs-target]:hover {
  background-color: rgba(255, 255, 255, 0.7) !important;
}
