.rckik-faq-accordion {
  --bsb-accent: var(--rckik-red, #dc3545);
  --bsb-border: var(--rckik-border, #dee2e6);
  --bs-accordion-border-color: var(--bsb-border);
  --bs-accordion-btn-focus-box-shadow: 0 0 0 0.2rem rgba(227, 6, 19, 0.12);
  --bs-accordion-active-color: var(--bsb-accent);
  --bs-accordion-active-bg: #fff;
  --bs-accordion-btn-bg: #fff;
  --bs-accordion-bg: #fff;
  overflow: hidden;
}

.rckik-faq-accordion .accordion-button:not(.collapsed) {
  box-shadow: inset 3px 0 0 var(--bsb-accent);
}

.rckik-bootstrap-html-block {
  min-width: 0;
}

.rckik-lightbox-gallery {
  --rckik-lightbox-radius: 1rem;
}

.rckik-lightbox-item {
  display: block;
  position: relative;
  overflow: hidden;
  border-radius: var(--rckik-lightbox-radius);
  background: #f8fafc;
}

.rckik-lightbox-item img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  transition: transform 0.35s ease, filter 0.35s ease;
}

.rckik-lightbox-item::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.16);
  opacity: 0;
  transition: opacity 0.25s ease;
}

.rckik-lightbox-item:hover img,
.rckik-lightbox-item:focus-visible img {
  transform: scale(1.03);
}

.rckik-lightbox-item:hover::after,
.rckik-lightbox-item:focus-visible::after {
  opacity: 1;
}

.rckik-bootstrap-lightbox {
  --bs-modal-bg: transparent;
  --rckik-lightbox-icon-size: 2.75rem;
  --rckik-lightbox-side-gap: clamp(0.75rem, 2vw, 1.5rem);
}

.rckik-bootstrap-lightbox .modal-dialog {
  margin: 0;
  max-width: 100vw;
  height: 100dvh;
}

.rckik-bootstrap-lightbox .modal-content,
.rckik-bootstrap-lightbox .modal-body {
  width: 100%;
  height: 100%;
  background: transparent;
}

.rckik-lightbox-simple {
  position: relative;
  display: grid;
  grid-template-rows: auto 1fr auto;
  width: 100%;
  height: 100%;
  padding: 1rem;
  background: rgba(15, 15, 15, 0.86);
}

.rckik-lightbox-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  z-index: 3;
}

.rckik-lightbox-counter {
  min-width: 3rem;
  color: rgba(255, 255, 255, 0.8);
  font-size: 0.85rem;
}

.rckik-lightbox-controls {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

.rckik-lightbox-icon,
.rckik-lightbox-nav {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--rckik-lightbox-icon-size);
  height: var(--rckik-lightbox-icon-size);
  border: 0;
  color: #fff;
  background: transparent;
  box-shadow: none;
  transition: none;
}

.rckik-lightbox-icon {
  font-size: 1.1rem;
  line-height: 1;
}

.rckik-lightbox-icon:hover,
.rckik-lightbox-icon:focus-visible {
  background: transparent;
  color: #fff;
  transform: none;
}

.rckik-lightbox-nav:hover,
.rckik-lightbox-nav:focus-visible {
  background: transparent;
  color: #fff;
  transform: translateY(-50%);
}

.rckik-lightbox-stage {
  position: relative;
  display: grid;
  place-items: center;
  min-width: 0;
  min-height: 0;
}

.rckik-lightbox-viewport {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  touch-action: pan-y pinch-zoom;
  user-select: none;
}

.rckik-lightbox-viewport.is-zoomed {
  cursor: grab;
  touch-action: none;
}

.rckik-lightbox-viewport.is-dragging {
  cursor: grabbing;
}

.rckik-lightbox-image {
  display: block;
  max-width: 100%;
  max-height: calc(100dvh - 8rem);
  object-fit: contain;
  transform-origin: center center;
  transition: transform 0.18s ease;
  will-change: transform;
  user-select: none;
  -webkit-user-drag: none;
}

.rckik-lightbox-image.is-zoomed {
  transition: none;
}

.rckik-lightbox-nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  width: auto;
  height: auto;
  padding: 0;
  font-size: 2rem;
  transform: translateY(-50%);
}

.rckik-lightbox-nav.is-prev {
  left: var(--rckik-lightbox-side-gap);
}

.rckik-lightbox-nav.is-next {
  right: var(--rckik-lightbox-side-gap);
}

.rckik-bootstrap-lightbox.has-single-item .rckik-lightbox-nav {
  display: none;
}

.rckik-lightbox-caption {
  min-height: 1.5rem;
  margin: 0;
  color: rgba(255, 255, 255, 0.9);
  text-align: center;
  font-size: 0.92rem;
}

@media (max-width: 767.98px) {
  .rckik-bootstrap-lightbox {
    --rckik-lightbox-icon-size: 2.5rem;
  }

  .rckik-lightbox-simple {
    padding: 0.75rem;
  }

  .rckik-lightbox-topbar {
    position: sticky;
    top: 0;
    padding-bottom: 0.25rem;
  }

  .rckik-lightbox-image {
    max-height: calc(100dvh - 7.5rem);
  }

  .rckik-lightbox-nav {
    top: auto;
    bottom: 1rem;
    transform: none;
    background: transparent;
  }

  .rckik-lightbox-nav.is-prev {
    left: 0.75rem;
  }

  .rckik-lightbox-nav.is-next {
    right: 0.75rem;
  }

  .rckik-lightbox-nav:hover,
  .rckik-lightbox-nav:focus-visible {
    transform: none;
  }

  .rckik-lightbox-caption {
    font-size: 0.84rem;
    padding-inline: 3.5rem;
  }
}
