ol.li-mb-2 li:not(:last-child),
ul.li-mb-2 li:not(:last-child) {
  margin-bottom: 0.5rem;
}
div p:last-child {
  margin-bottom: 0;
}
td > p:last-child {
  margin-bottom: 0;
}

:root {
  --navbar-height: 2.5rem;
  @media (min-width: 576px) {
    --navbar-height: 3.5rem;
  }
}
.navbar {
  min-height: var(--navbar-height);
}
.navbar-margin {
  margin-top: var(--navbar-height);
}
section {
  scroll-margin-top: var(--navbar-height);
}

.howto-cards {
  text-wrap: balance;
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 32px;
  @media (min-width: 576px) {
    grid-template-columns: 1fr 1fr;
    grid-gap: 24px 48px;
  }
  @media (min-width: 992px) {
    grid-template-columns: 1fr 1fr 1fr;
    grid-gap: 24px 56px;
  }
}
.howto-cards .card {
  border: none;
}
.howto-cards .card-img-top {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
}

.onboarding-instructions {
  position: absolute;
  top: 0;
  min-height: 100%;
  width: calc(100% + var(--bs-gutter-x));
  margin-left: calc(-0.5 * var(--bs-gutter-x));
  margin-right: calc(-0.5 * var(--bs-gutter-x));

  --bs-bg-opacity: 0.6;
  background-color: rgba(var(--bs-white-rgb), var(--bs-bg-opacity));

  --bs-border-width: 3px;
  --bs-border-style: dashed;
  border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;

  border-radius: var(--bs-border-radius);
}
.onboarding-instructions.offset-1-line {
  top: 2.5rem !important;
  min-height: calc(100% - 2.5rem) !important;
}

/* Bootstrap */
.break {
  position: relative;
  z-index: 0;
}
.break > span {
  display: inline-block;
  background: var(--bs-white);
}
.break:before {
  content: "";
  position: absolute;
  inset-block-start: 50%;
  inset-inline-start: 0;
  inset-inline-end: 0;
  border-block-end: 1px solid var(--bs-gray-300);
  z-index: -1;
}
.break.break-blue-dark:before {
  border-block-end: 2px solid var(--color-blue-dark);
}
.break.break-peach-bright:before {
  border-block-end: 2px solid var(--color-peach-bright);
}
.break.break-raspberry:before {
  border-block-end: 2px solid var(--color-raspberry);
}
.break.break-violet-bright:before {
  border-block-end: 2px solid var(--color-violet-bright);
}
.btn-close:focus {
  box-shadow: none;
}
.btn-xs {
  /* @include button-size(0rem, 0.25rem, $btn-font-size-sm, $btn-border-radius-sm); */
  padding: 0 0.25rem;
  font-size: 0.875rem;
  border-radius: 0.2rem;
}
.cursor-pointer {
  cursor: pointer;
}
.dropdown-toggle.dropdown-toggle-no-arrow:after {
  content: none;
}
.fs-7 {
  font-size: 0.875rem;
}
.form-label {
  font-weight: bold;
  margin-bottom: 0.5rem;
}
.img-16-9 {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
}
.max-w-24rem {
  max-width: 24rem;
}
.max-w-6ch {
  max-width: 6ch;
}
.max-w-8ch {
  max-width: 8ch;
}
.max-w-15ch {
  max-width: 15ch;
}
.navbar-nav .nav-link.active {
  font-weight: 700;
}
.navbar .offcanvas-lg {
  --bs-offcanvas-width: 12rem;
}
.offcanvas-header-navbar {
  /* Align close button with navbar toggle (compensates for btn-close -0.5rem margin) */
  padding: calc(var(--bs-navbar-padding-y, 0.5rem) + 0.75rem) calc(var(--bs-gutter-x, 1.5rem) * 0.5 + 0.25rem)
    var(--bs-offcanvas-padding-y, 1rem) 0;
}
.striped {
  --striped-background-color: var(--bs-white);
}
.striped > *:nth-of-type(odd) {
  background-color: var(--striped-background-color);
}
.striped-tertiary {
  --striped-background-color: var(--bs-tertiary-bg) !important;
}
.text-balance {
  text-wrap: balance;
}
.text-pretty {
  text-wrap: pretty;
}
.z-4 {
  z-index: 4 !important;
}
@media (min-width: 768px) {
  .w-md-50 {
    width: 50% !important;
  }
}

/* Badge */
.badge-initial {
  font-size: 0.65rem;
}

/* Filters */
@media (max-width: 767.98px) {
  .filters-toggle {
    --bs-btn-hover-color: var(--bs-btn-color);
    --bs-btn-hover-bg: transparent;
    --bs-btn-hover-border-color: var(--bs-btn-border-color);
    --bs-btn-active-color: var(--bs-btn-color);
    --bs-btn-active-bg: transparent;
    --bs-btn-active-border-color: var(--bs-btn-border-color);
    --bs-btn-active-shadow: none;
  }
  .filters-toggle__chevron {
    transition: transform 0.2s ease;
  }
  .filters-toggle[aria-expanded="true"] .filters-toggle__chevron {
    transform: rotate(-180deg);
  }
  .filters-form .col-auto {
    flex: 0 0 100%;
    width: 100%;
  }
  .filters-form .form-control,
  .filters-form .form-select {
    width: 100%;
  }
}

/* FullCalendar */
.fc .fc-toolbar-title {
  font-size: 1.25rem;
}
.fc .fc-button {
  padding: 0.25rem 0.5rem;
  font-size: 0.875rem;
  border: none;
}
.fc .fc-button:focus {
  box-shadow: none;
}

.fc .fc-button-primary {
  --fc-button-bg-color: var(--color-blue-dark);
  --fc-button-hover-bg-color: var(--color-blue-darker);
  --fc-button-active-bg-color: var(--color-blue-darker);
}
.fc .fc-button-primary:not(:disabled):active:focus,
.fc .fc-button-primary:not(:disabled).fc-button-active:focus {
  box-shadow: none;
}
.fc .fc-timeGridDay-button,
.fc .fc-timeGridThreeDay-button,
.fc .fc-timeGridWeek-button,
.fc .fc-dayGridWeek-button,
.fc .fc-dayGridMonth-button {
  --fc-button-bg-color: var(--color-salmon-dark);
  --fc-button-hover-bg-color: var(--color-salmon-darker);
  --fc-button-active-bg-color: var(--color-salmon-dark-0-5);
}

.fc .fc-col-header-cell a,
.fc .fc-daygrid-day-top a {
  color: var(--bs-gray-700);
  font-weight: 500;
  text-decoration: initial;
}
.fc .fc-daygrid-day-frame a.fc-care-session {
  color: var(--bs-gray-700);
}

.fc .fc-available-slot {
  justify-content: center;
}
.fc .fc-available-slot .fc-event-title,
.fc .fc-available-slot .fc-daygrid-event-dot {
  display: none;
}
.fc .fc-available-slot .fc-event-time {
  margin-right: 0 !important;
}

.fc .fc-care-session {
  --fc-event-bg-color: var(--color-blue-dark);
  --fc-event-border-color: var(--color-blue-dark);
}

/* Analytics – Visitor dialog */
body:has(.visitor-dialog[open]) {
  overflow: hidden;
}

.visitor-dialog {
  border: none;
  border-radius: var(--bs-border-radius-lg);
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
  padding: 0;
  max-width: 900px;
  width: calc(100% - 2rem);
  max-height: calc(100vh - 4rem);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.visitor-dialog::backdrop {
  background-color: rgba(0, 0, 0, 0.5);
}
.visitor-dialog__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
}
.visitor-dialog__fixed {
  flex-shrink: 0;
  padding: 1.5rem 1.5rem 0;
}
.visitor-dialog__scroll {
  flex: 1;
  overflow-y: auto;
  padding: 0 1.5rem 1.5rem;
}

/* Pagy */
.pagy-bootstrap ul.pagination {
  margin-bottom: 0;
}
