/**
 * Afriswap BDC — thin layer over Bootstrap 5
 */

:root {
  --bdc-navy: #252d6c;
  --bdc-navy-dark: #1a204f;
  /* Legacy names --bdc-gold / --bdc-gold-hover: mid-navy accents (replaced former gold) */
  --bdc-gold: #3d4a9e;
  --bdc-gold-hover: #545fbd;
  /* Periwinkle highlight for elements on dark navy (e.g. footer, carousel dots) */
  --bdc-accent-light: #b4c2f0;
  --bdc-cream: #f6f4ef;
  --bdc-surface: #ffffff;
  --bdc-muted: #5c6478;
  --bdc-border: rgba(37, 45, 108, 0.12);
  --bdc-shadow: 0 12px 40px rgba(26, 32, 79, 0.08);
  --bdc-radius: 0.75rem;
  --font-display: "DM Sans", system-ui, sans-serif;
  --font-body: "Source Sans 3", system-ui, sans-serif;
}

@import url("https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=Source+Sans+3:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap");

.bdc-body {
  font-family: var(--font-body);
  color: #1e2433;
  background: linear-gradient(180deg, var(--bdc-cream) 0%, #eef0f7 45%, #e8ebf4 100%);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  position: relative;
}

.bdc-body::before {
  content: "";
  position: fixed;
  inset: 0;
  background-image: url("../../images/favicon.png");
  background-repeat: repeat;
  background-position: 5px 5px;
  background-size: 80px auto;
  opacity: 0.05;
  pointer-events: none;
  z-index: 0;
}

/* Stack page chrome above the body ::before; do NOT target .modal / .modal-backdrop /
   .bdc-float-widgets / .bdc-float-call — same specificity as those utilities loads after
   Bootstrap and would override position:fixed, breaking overlays and fixed quick actions. */
.bdc-body > *:not(.modal):not(.modal-backdrop):not(.aro-modal-backdrop):not(.bdc-float-widgets):not(.bdc-float-call) {
  position: relative;
  z-index: 1;
}

/* Later siblings (reviews, footer) were painting above <main> (same z-index, later in DOM),
   which hid fixed reserve modals (order/converter) behind “What our customers say” / footer. */
.bdc-body > main.bdc-main {
  z-index: 2;
}

.bdc-body > footer.bdc-footer,
.bdc-body > section.bdc-reviews-section {
  z-index: 0;
}

.bdc-main {
  flex: 1 0 auto;
}

/* Tight gap under header services strip on small screens (Bootstrap .py-4 was ~1.5rem top) */
@media (max-width: 767.98px) {
  .bdc-main > .container.py-4:first-child {
    padding-top: 0.5rem !important;
  }
}

.text-navy {
  color: var(--bdc-navy) !important;
}

.text-gold {
  color: var(--bdc-gold) !important;
}

.border-gold {
  border-color: var(--bdc-gold) !important;
}

.bg-navy {
  background-color: var(--bdc-navy) !important;
}

/* Top ticker — infinite marquee; pauses on hover for links */
.bdc-ticker {
  background: var(--bdc-navy);
  color: #fff;
  font-size: 0.8125rem;
  padding: 0.35rem 0;
  overflow: hidden;
  position: sticky;
  top: 0;
  z-index: 1030;
}

.bdc-ticker-marquee {
  overflow: hidden;
  width: 100%;
  cursor: default;
}

.bdc-ticker-marquee:hover .bdc-ticker-track {
  animation-play-state: paused;
}

.bdc-ticker-track {
  display: flex;
  width: max-content;
  flex-wrap: nowrap;
  align-items: center;
  white-space: nowrap;
  animation: bdc-ticker-scroll 35s linear infinite;
  will-change: transform;
}

.bdc-ticker.is-reverse .bdc-ticker-track {
  animation-direction: reverse;
}

.bdc-ticker-segment {
  flex: 0 0 auto;
}

.bdc-ticker-sep {
  opacity: 0.65;
}

@keyframes bdc-ticker-scroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .bdc-ticker-track {
    animation: none;
    justify-content: center;
    margin-left: auto;
    margin-right: auto;
  }

  .bdc-ticker-controls {
    display: none;
  }

  .bdc-ticker-segment[aria-hidden="true"] {
    display: none;
  }
}

/* Services strip — boxed card in .container; images flush to left/right inside the box (padding 0) */
.bdc-services-strip {
  color: #fff;
  margin-top: 0.75rem;
  margin-bottom: 0;
  padding-bottom: 0;
}

@media (min-width: 768px) {
  .bdc-services-strip {
    margin-top: 1rem;
  }
}

.bdc-services-strip__box {
  background: linear-gradient(135deg, var(--bdc-navy) 0%, #3a4494 50%, var(--bdc-navy-dark) 100%);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--bdc-radius);
  box-shadow: var(--bdc-shadow);
  overflow: hidden;
  padding: 0;
}

.bdc-services-strip .bdc-services-carousel,
.bdc-services-strip .carousel-inner {
  margin: 0;
  padding: 0;
}

.bdc-services-strip .carousel-item {
  padding: 0;
}

.bdc-services-strip__image-link {
  color: inherit;
}

.bdc-services-strip__image-link:focus-visible {
  outline: 2px solid rgba(255, 255, 255, 0.85);
  outline-offset: 2px;
}

.bdc-services-strip__picture {
  line-height: 0;
}

/* Full width inside the rounded box (no horizontal padding on __box) */
.bdc-services-strip__full-img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  object-fit: contain;
}

/* Crossfade between slides */
.bdc-services-strip .bdc-services-carousel.carousel-fade .carousel-item,
.bdc-services-strip .bdc-services-carousel.carousel-fade .carousel-item.active,
.bdc-services-strip .bdc-services-carousel.carousel-fade .carousel-item-next.carousel-item-start,
.bdc-services-strip .bdc-services-carousel.carousel-fade .carousel-item-prev.carousel-item-end {
  transition-property: opacity;
  transition-duration: 1.25s;
  transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}

@media (prefers-reduced-motion: reduce) {
  .bdc-services-strip .bdc-services-carousel.carousel-fade .carousel-item,
  .bdc-services-strip .bdc-services-carousel.carousel-fade .carousel-item.active,
  .bdc-services-strip .bdc-services-carousel.carousel-fade .carousel-item-next.carousel-item-start,
  .bdc-services-strip .bdc-services-carousel.carousel-fade .carousel-item-prev.carousel-item-end {
    transition-duration: 0.01ms !important;
  }
}

.bdc-ticker-inner {
  max-width: 100%;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.bdc-ticker-controls {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  flex: 0 0 auto;
}

.bdc-ticker-control {
  border: 1px solid rgba(255, 255, 255, 0.28);
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  border-radius: 4px;
  width: 1.35rem;
  height: 1.25rem;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  cursor: pointer;
}

.bdc-ticker-control:hover,
.bdc-ticker-control:focus-visible,
.bdc-ticker-control[aria-pressed="true"] {
  background: rgba(255, 255, 255, 0.22);
  color: #fff;
  outline: none;
}

.bdc-ticker a {
  color: #a8e6ff;
  text-decoration: none;
}
.bdc-ticker a:hover {
  text-decoration: underline;
}

/* Header */
.bdc-header {
  background: linear-gradient(180deg, #ffffff 0%, #fbfbfc 100%);
  border-bottom: 1px solid var(--bdc-border);
  box-shadow: var(--bdc-shadow);
}

.bdc-brand-logo {
  max-height: 62px;
  width: auto;
  height: auto;
  display: block;
  border-radius: 0.35rem;
}

@media (min-width: 992px) {
  .bdc-brand-logo {
    max-height: 68px;
  }
}

.bdc-brand {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.35rem;
  letter-spacing: -0.02em;
  color: var(--bdc-navy);
  text-decoration: none;
}
.bdc-brand:hover {
  color: var(--bdc-navy-dark);
}

.bdc-brand-mark {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.bdc-meta {
  font-size: 0.8125rem;
  color: var(--bdc-muted);
}

/* Header: small pills for account name / Login / Register / Logout */
.bdc-auth-badge {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0.38em 0.75em;
  line-height: 1.2;
  border-width: 1px;
  border-style: solid;
  transition:
    background 0.15s ease,
    color 0.15s ease,
    border-color 0.15s ease,
    box-shadow 0.15s ease;
}

.bdc-auth-badge--name {
  color: var(--bdc-navy);
  background: rgba(37, 45, 108, 0.08);
  border-color: rgba(37, 45, 108, 0.14);
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0.01em;
  max-width: 11rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: middle;
}

a.bdc-auth-badge--name:hover,
a.bdc-auth-badge--name:focus-visible {
  color: var(--bdc-navy);
  background: rgba(37, 45, 108, 0.14);
  border-color: rgba(37, 45, 108, 0.22);
}

.bdc-auth-badge--logout {
  color: #fff;
  background: var(--bdc-navy);
  border-color: var(--bdc-navy);
}

.bdc-auth-badge--logout:hover,
.bdc-auth-badge--logout:focus-visible {
  color: #fff;
  background: var(--bdc-navy-dark);
  border-color: var(--bdc-navy-dark);
}

.bdc-auth-badge--login {
  color: var(--bdc-navy);
  background: #fff;
  border-color: rgba(37, 45, 108, 0.22);
}

.bdc-auth-badge--login:hover,
.bdc-auth-badge--login:focus-visible {
  color: #fff;
  background: var(--bdc-navy);
  border-color: var(--bdc-navy);
}

.bdc-auth-badge--register {
  color: #fff;
  background: linear-gradient(135deg, var(--bdc-navy) 0%, #3a4494 100%);
  border-color: transparent;
}

.bdc-auth-badge--register:hover,
.bdc-auth-badge--register:focus-visible {
  color: #fff;
  filter: brightness(1.06);
  box-shadow: 0 2px 10px rgba(37, 45, 108, 0.25);
}

.bdc-header-auth--mobile .bdc-auth-badge--name {
  max-width: min(11rem, 85vw);
}

.bdc-profile-otp-input {
  letter-spacing: 0.22em;
  font-variant-numeric: tabular-nums;
  max-width: 13rem;
  margin-left: auto;
  margin-right: auto;
}

.bdc-social a {
  color: var(--bdc-navy);
  font-size: 1.1rem;
  margin-left: 0.5rem;
}
.bdc-social a:hover {
  color: var(--bdc-gold);
}

.navbar.bdc-navbar {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

/* Stacked bar: logo + actions on one row; nav links full width below (matches expand-lg) */
.bdc-navbar--bar.navbar-expand-lg {
  flex-direction: column !important;
  align-items: stretch !important;
  flex-wrap: nowrap;
}

@media (min-width: 992px) {
  .bdc-navbar--bar .navbar-collapse {
    width: 100%;
  }

  .bdc-navbar--bar .navbar-nav {
    justify-content: flex-end;
  }
}

.bdc-header-actions .bdc-social a {
  margin-left: 0;
}

.bdc-social-label {
  font-weight: 600;
  letter-spacing: 0.03em;
  white-space: nowrap;
}

/* Top main menu: Home, Forex Rates, Currency Converter, … */
.bdc-navbar .navbar-nav .nav-link {
  font-weight: 600;
  font-size: 0.8rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #2a3350;
  padding: 0.5rem 0.65rem;
  border-radius: 0.35rem;
}

.bdc-navbar .navbar-nav .nav-link:hover,
.bdc-navbar .navbar-nav .nav-link:focus-visible {
  background: var(--bdc-navy) !important;
  color: #fff !important;
}

.bdc-navbar .navbar-nav .nav-link:active {
  background: var(--bdc-navy-dark) !important;
  color: #fff !important;
}

.bdc-navbar .navbar-nav .nav-link.active {
  background: var(--bdc-navy) !important;
  color: #fff !important;
}

.navbar-toggler {
  border-color: var(--bdc-border);
}

/* —— Mobile: hamburger + dropdown menu panel (< lg) —— */
@media (max-width: 991.98px) {
  .bdc-navbar .navbar-toggler {
    border: 2px solid var(--bdc-navy);
    border-radius: 0.5rem;
    padding: 0.5rem 0.6rem;
    background: #fff;
    transition:
      background 0.15s ease,
      box-shadow 0.15s ease,
      border-color 0.15s ease;
  }

  .bdc-navbar .navbar-toggler:hover {
    background: rgba(37, 45, 108, 0.06);
    border-color: var(--bdc-navy-dark);
  }

  .bdc-navbar .navbar-toggler:focus {
    box-shadow: 0 0 0 0.2rem rgba(37, 45, 108, 0.22);
  }

  .bdc-navbar .navbar-toggler-icon {
    width: 1.35rem;
    height: 1.35rem;
  }

  .bdc-navbar .navbar-collapse {
    margin-top: 0.65rem;
    padding: 0.6rem 0.75rem 0.85rem;
    background: linear-gradient(180deg, #ffffff 0%, #f6f7fb 100%);
    border: 1px solid var(--bdc-border);
    border-top: 4px solid var(--bdc-navy);
    border-radius: var(--bdc-radius);
    box-shadow:
      0 10px 36px rgba(26, 32, 79, 0.12),
      0 1px 0 rgba(255, 255, 255, 0.8) inset;
  }

  .bdc-navbar .navbar-collapse .navbar-nav {
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 0.2rem;
    width: 100%;
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  .bdc-navbar .navbar-collapse .nav-item {
    width: 100%;
  }

  .bdc-navbar .navbar-collapse .nav-link {
    display: flex;
    align-items: center;
    width: 100%;
    padding: 0.7rem 0.9rem;
    border-radius: 0.5rem;
    border: 1px solid transparent;
    text-align: left;
  }

  .bdc-navbar .navbar-collapse .nav-link:hover,
  .bdc-navbar .navbar-collapse .nav-link:focus-visible {
    background: var(--bdc-navy) !important;
    color: #fff !important;
    border-color: transparent;
  }

  .bdc-navbar .navbar-collapse .nav-link.active {
    background: linear-gradient(135deg, var(--bdc-navy) 0%, #3a4494 100%) !important;
    color: #fff !important;
    box-shadow: 0 4px 14px rgba(37, 45, 108, 0.28);
  }

  .bdc-navbar .navbar-collapse .nav-item:not(:last-child) .nav-link {
    border-bottom: 1px solid rgba(37, 45, 108, 0.08);
    margin-bottom: 0.15rem;
    padding-bottom: 0.75rem;
  }
}
.bdc-hero {
  background: linear-gradient(135deg, var(--bdc-navy) 0%, #3a4494 55%, var(--bdc-navy-dark) 100%);
  color: #fff;
  border-radius: var(--bdc-radius);
  padding: 2rem 1.5rem;
  margin-bottom: 1.5rem;
  box-shadow: var(--bdc-shadow);
}

.bdc-hero h1 {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -0.03em;
}

.bdc-card-soft {
  background: var(--bdc-surface);
  border: 1px solid var(--bdc-border);
  border-radius: var(--bdc-radius);
  box-shadow: var(--bdc-shadow);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.bdc-card-soft:hover {
  box-shadow: 0 16px 48px rgba(26, 32, 79, 0.12);
}

/* How To Buy — right sidebar (shared partial on home, FAQ, converter, order, tracker, etc.) */
.bdc-how-to-buy {
  text-align: center;
  background: #fff;
  border: 1px solid var(--bdc-border);
  border-radius: var(--bdc-radius);
  box-shadow: var(--bdc-shadow);
  padding: 0 1.1rem 1.35rem;
  overflow: hidden;
}

/* Navy “blue liner” — explicit bar so it shows consistently next to reserve.css / scoped converter styles */
.bdc-how-to-buy__liner {
  display: block;
  height: 5px;
  margin: 0 -1.1rem 1.1rem -1.1rem;
  width: calc(100% + 2.2rem);
  max-width: none;
  background: linear-gradient(90deg, var(--bdc-navy) 0%, #3a4494 52%, var(--bdc-navy-dark) 100%);
  border-radius: calc(var(--bdc-radius) - 1px) calc(var(--bdc-radius) - 1px) 0 0;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.12) inset;
}

.bdc-how-to-buy__title {
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 700;
  color: #0b0f24;
  margin: 0 0 1rem;
  letter-spacing: -0.02em;
}

.bdc-how-to-buy__section {
  margin-bottom: 1.1rem;
}

.bdc-how-to-buy__section:last-child {
  margin-bottom: 0;
}

.bdc-how-to-buy__label {
  font-size: 0.8rem;
  font-weight: 600;
  color: #5c6478;
  margin: 0 0 0.45rem;
  text-transform: none;
}

.bdc-how-to-buy__call-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem;
}

.bdc-how-to-buy__btn {
  /* Brighter navy than legacy #0f1438 — aligned with brand tokens */
  background: var(--bdc-navy);
  color: #fff !important;
  border: 1px solid var(--bdc-navy);
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.25;
  padding: 0.55rem 0.35rem;
  border-radius: 0.35rem;
  text-decoration: none;
  white-space: normal;
  word-break: break-word;
  transition: background 0.15s ease, border-color 0.15s ease, transform 0.12s ease;
}

.bdc-how-to-buy__call-grid .bdc-how-to-buy__btn {
  font-size: 0.84rem;
  padding: 0.6rem 0.4rem;
}

.bdc-how-to-buy__btn:hover,
.bdc-how-to-buy__btn:focus-visible {
  /* Lighter navy (still blue), not the periwinkle --bdc-gold-hover */
  background: #3a4494;
  border-color: #3a4494;
  color: #fff !important;
}

.bdc-how-to-buy__btn--block {
  display: block;
  width: 100%;
  font-size: 0.78rem;
  padding: 0.65rem 0.75rem;
}

@media (max-width: 399.98px) {
  .bdc-how-to-buy__call-grid {
    grid-template-columns: 1fr;
  }
}

/* My reservations — loading (spinner + skeleton) */
@keyframes bdc-res-sk-shimmer {
  0% {
    background-position: 100% 0;
  }
  100% {
    background-position: -100% 0;
  }
}

.bdc-reservations-loading__card {
  border-radius: 0.5rem;
  border: 1px solid rgba(37, 45, 108, 0.12);
  background: linear-gradient(145deg, rgba(37, 45, 108, 0.06) 0%, #fff 42%);
  box-shadow: 0 2px 12px rgba(26, 32, 79, 0.06);
  padding: 0.85rem 1rem;
}

.bdc-reservations-loading--page .bdc-reservations-loading__card {
  padding: 1.15rem 1.25rem;
}

.bdc-reservations-loading__header {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.bdc-reservations-loading__spin {
  width: 1.75rem;
  height: 1.75rem;
  border-width: 0.2em;
  color: var(--bdc-navy);
  flex-shrink: 0;
}

.bdc-reservations-loading__title {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 0.92rem;
  color: var(--bdc-navy);
  letter-spacing: -0.02em;
}

.bdc-reservations-loading__hint {
  margin-top: 0.15rem !important;
}

.bdc-reservations-loading__skeleton {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  padding-top: 0.25rem;
}

.bdc-res-sk-row {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.bdc-res-sk-row:nth-child(2) .bdc-res-sk-bar {
  animation-delay: 0.1s;
}

.bdc-res-sk-row:nth-child(3) .bdc-res-sk-bar {
  animation-delay: 0.2s;
}

.bdc-res-sk-row:nth-child(4) .bdc-res-sk-bar {
  animation-delay: 0.3s;
}

.bdc-res-sk-row:nth-child(5) .bdc-res-sk-bar {
  animation-delay: 0.4s;
}

.bdc-res-sk-bar {
  display: block;
  height: 0.55rem;
  border-radius: 999px;
  background: linear-gradient(
    110deg,
    rgba(37, 45, 108, 0.08) 0%,
    rgba(37, 45, 108, 0.16) 45%,
    rgba(37, 45, 108, 0.08) 90%
  );
  background-size: 200% 100%;
  animation: bdc-res-sk-shimmer 1.35s ease-in-out infinite;
}

.bdc-res-sk-bar--date {
  flex: 1.15;
  min-width: 3.5rem;
}

.bdc-res-sk-bar--mid {
  flex: 1;
  min-width: 2rem;
}

.bdc-res-sk-bar--wide {
  flex: 1.2;
  min-width: 3rem;
}

.bdc-res-sk-bar--btn {
  flex: 0 0 2.25rem;
  height: 1.5rem;
}

.bdc-reservations-empty {
  border-color: rgba(37, 45, 108, 0.14) !important;
  background: rgba(37, 45, 108, 0.03) !important;
  color: #3a4156;
}

/* My reservations — list shell + table (sidebar + full page) */
.bdc-reservations-list-card {
  border-radius: 0.5rem;
  border: 1px solid rgba(37, 45, 108, 0.12);
  background: linear-gradient(180deg, rgba(37, 45, 108, 0.05) 0%, #fff 12%);
  box-shadow: 0 2px 14px rgba(26, 32, 79, 0.07);
  overflow: hidden;
}

.bdc-reservations-list-card .table {
  margin-bottom: 0;
}

.bdc-reservations-list-card .table-responsive {
  border-top: 1px solid rgba(37, 45, 108, 0.06);
}

.bdc-reservations-list-thead th {
  background: linear-gradient(180deg, rgba(37, 45, 108, 0.11) 0%, rgba(37, 45, 108, 0.05) 100%);
  color: var(--bdc-navy);
  font-weight: 600;
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border-bottom: 2px solid rgba(37, 45, 108, 0.2) !important;
  padding-top: 0.6rem;
  padding-bottom: 0.6rem;
  vertical-align: bottom;
}

.bdc-reservations-list-table tbody tr {
  transition: background-color 0.12s ease;
}

.bdc-reservations-list-table tbody tr:hover {
  background: rgba(37, 45, 108, 0.055);
}

.bdc-reservations-list-table tbody td {
  padding: 0.55rem 0.45rem;
  border-color: rgba(37, 45, 108, 0.07);
}

.bdc-reservations-list-table tbody tr:last-child td {
  border-bottom: 0;
}

@media (min-width: 576px) {
  .bdc-reservations-list-table tbody td {
    padding: 0.65rem 0.55rem;
  }
}

.bdc-res-list-actions {
  white-space: nowrap;
}

.bdc-res-list-action.btn-gold:disabled {
  opacity: 0.55;
  cursor: not-allowed;
  pointer-events: auto;
}

/* My reservations — paginated table above How To Buy (same card shell) */
.bdc-reservations-sidebar-table-wrap {
  margin: 0 -0.15rem;
  max-height: min(28rem, 55vh);
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

.bdc-reservations-sidebar-table {
  text-align: left;
  color: #0b0f24;
  min-width: 26rem;
}

.bdc-res-sb-thead {
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.bdc-reservations-sidebar-table tbody td {
  padding-top: 0.45rem;
  padding-bottom: 0.45rem;
  vertical-align: middle;
}

.bdc-reservations-sidebar-table tbody tr + tr td {
  border-top: 1px solid rgba(15, 20, 56, 0.08);
}

.bdc-res-sb-cell-date {
  font-size: 0.75rem;
  vertical-align: top;
}

/* Clickable reservation date → opens detail modal (same as View) */
.bdc-res-date-btn.btn-link {
  --bs-btn-color: #1e2433;
  --bs-btn-hover-color: var(--bdc-navy);
  --bs-btn-active-color: var(--bdc-navy);
}

.bdc-res-date-btn {
  color: inherit;
  text-decoration: none !important;
  border: 0;
  background: transparent;
  cursor: pointer;
  line-height: 1.3;
  transition: background-color 0.15s ease;
}

.bdc-res-date-btn:hover,
.bdc-res-date-btn:focus-visible {
  background-color: rgba(37, 45, 108, 0.07);
  text-decoration: none !important;
}

.bdc-res-date-btn:focus-visible {
  outline: 2px solid var(--bdc-navy);
  outline-offset: 1px;
}

.bdc-res-date-btn:hover .fw-semibold,
.bdc-res-date-btn:focus-visible .fw-semibold {
  color: var(--bdc-navy) !important;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.bdc-res-date-btn__time {
  font-size: 0.72rem;
}

.bdc-res-sb-cell-pay,
.bdc-res-sb-cell-recv {
  font-size: 0.75rem;
  line-height: 1.25;
  word-break: break-word;
  max-width: 7rem;
}

@media (min-width: 400px) {
  .bdc-res-sb-cell-pay,
  .bdc-res-sb-cell-recv {
    max-width: 9rem;
  }
}

.bdc-reservations-sidebar-pagination .pagination .page-link {
  font-size: 0.72rem;
}

.bdc-res-list-pagination .page-link {
  color: var(--bdc-navy);
  border-color: rgba(37, 45, 108, 0.2);
  font-weight: 500;
}

.bdc-res-list-pagination .page-item.active .page-link {
  background-color: var(--bdc-navy);
  border-color: var(--bdc-navy);
  color: #fff;
}

.bdc-res-list-pagination .page-link:hover:not(.disabled) {
  background-color: rgba(37, 45, 108, 0.08);
  color: var(--bdc-navy);
  border-color: rgba(37, 45, 108, 0.28);
}

.bdc-res-list-pagination .page-item.active .page-link:hover {
  background-color: var(--bdc-navy);
  color: #fff;
}

/* Main column: white content shell — navy top accent (matches How To Buy sidebar) */
.bdc-page-main-shell {
  background: var(--bdc-surface);
  border: 1px solid var(--bdc-border);
  border-top: 5px solid var(--bdc-navy);
  border-radius: var(--bdc-radius);
  box-shadow: var(--bdc-shadow);
}

/* FAQ — card-style accordion (navy / gold tokens) */
.bdc-faq-section-heading {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.08rem;
  letter-spacing: -0.01em;
  color: var(--bdc-navy);
  padding-bottom: 0.45rem;
  margin-top: 1.75rem !important;
  margin-bottom: 1rem !important;
  border-bottom: 2px solid rgba(61, 74, 158, 0.28);
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.bdc-faq-section-heading:first-of-type {
  margin-top: 0 !important;
}

.bdc-faq-section-heading .bi {
  color: var(--bdc-gold);
  font-size: 1.2rem;
  opacity: 0.92;
}

.bdc-faq-accordion.accordion {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.bdc-faq-accordion > .accordion-item {
  border: 1px solid var(--bdc-border);
  border-radius: var(--bdc-radius) !important;
  overflow: hidden;
  background: var(--bdc-surface);
  box-shadow: 0 2px 14px rgba(26, 32, 79, 0.05);
  transition: box-shadow 0.22s ease, border-color 0.22s ease;
}

.bdc-faq-accordion > .accordion-item:not(:first-of-type) {
  margin-top: 0;
  border-top-width: 1px;
}

.bdc-faq-accordion > .accordion-item:first-of-type,
.bdc-faq-accordion > .accordion-item:last-of-type {
  border-radius: var(--bdc-radius) !important;
}

.bdc-faq-accordion > .accordion-item:first-of-type .accordion-button,
.bdc-faq-accordion > .accordion-item:last-of-type .accordion-button.collapsed {
  border-radius: 0 !important;
}

.bdc-faq-accordion > .accordion-item:hover {
  border-color: rgba(37, 45, 108, 0.22);
  box-shadow: 0 6px 22px rgba(26, 32, 79, 0.09);
}

.bdc-faq-accordion > .accordion-item:has(.accordion-button:not(.collapsed)) {
  border-color: rgba(61, 74, 158, 0.42);
  box-shadow: 0 10px 32px rgba(37, 45, 108, 0.11);
}

.bdc-faq-accordion .accordion-button {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1rem;
  line-height: 1.45;
  color: var(--bdc-navy);
  background: linear-gradient(180deg, #ffffff 0%, #f8f9fc 100%);
  padding-top: 1rem;
  padding-bottom: 1rem;
  box-shadow: none !important;
}

.bdc-faq-accordion .accordion-button:not(.collapsed) {
  color: var(--bdc-navy);
  background: linear-gradient(180deg, rgba(61, 74, 158, 0.09) 0%, rgba(255, 255, 255, 0.98) 100%);
  box-shadow: inset 3px 0 0 var(--bdc-gold) !important;
}

.bdc-faq-accordion .accordion-button::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23252d6c' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");
  opacity: 0.85;
}

.bdc-faq-accordion .accordion-button:not(.collapsed)::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%233d4a9e' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");
  opacity: 1;
}

.bdc-faq-accordion .accordion-button:focus {
  box-shadow: 0 0 0 3px rgba(61, 74, 158, 0.22) !important;
  z-index: 1;
}

.bdc-faq-accordion .accordion-button:hover {
  background: linear-gradient(180deg, #ffffff 0%, #f0f2f8 100%);
}

.bdc-faq-accordion .accordion-body {
  background: linear-gradient(180deg, #f6f5fa 0%, #ffffff 55%);
  border-top: 1px solid rgba(37, 45, 108, 0.08);
  color: #2f3648;
  font-size: 0.98rem;
  line-height: 1.65;
  padding-top: 1.05rem;
  padding-bottom: 1.2rem;
}

.bdc-faq-accordion .accordion-body p:last-child {
  margin-bottom: 0;
}

.bdc-faq-accordion .accordion-body a {
  color: var(--bdc-gold);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.bdc-faq-accordion .accordion-body a:hover {
  color: var(--bdc-gold-hover);
}

.bdc-faq-q-inner {
  text-align: start;
}

.bdc-faq-q-inner .bi {
  font-size: 1.05rem;
  line-height: 1;
  margin-top: 0.2rem;
  flex-shrink: 0;
  color: var(--bdc-gold);
  opacity: 0.88;
}

.bdc-faq-accordion .accordion-button:not(.collapsed) .bdc-faq-q-inner .bi {
  opacity: 1;
  color: var(--bdc-navy);
}

/* Nested panels inside contact (single white shell) */
.bdc-contact-nested {
  background: #f4f5f9;
  border: 1px solid var(--bdc-border);
  border-radius: 0.65rem;
}

/* Tabs (home/tracker panels) */
.bdc-main .nav-tabs {
  --bs-nav-tabs-border-width: 0;
  --bs-nav-tabs-border-color: transparent;
  border-bottom: 0;
  gap: 0.5rem;
}

.bdc-main .nav-tabs .nav-link {
  border: 1px solid rgba(37, 45, 108, 0.16);
  background: rgba(255, 255, 255, 0.9);
  color: #2f3a5e;
  border-radius: 999px;
  font-weight: 600;
  font-size: 0.92rem;
  line-height: 1.2;
  padding: 0.52rem 0.9rem;
  margin-bottom: 0;
  transition: all 0.2s ease;
}

.bdc-main .nav-tabs .nav-link:hover,
.bdc-main .nav-tabs .nav-link:focus-visible {
  border-color: rgba(37, 45, 108, 0.36);
  background: #ffffff;
  color: var(--bdc-navy);
}

.bdc-main .nav-tabs .nav-link.active,
.bdc-main .nav-tabs .nav-item.show .nav-link {
  border-color: transparent;
  background: linear-gradient(135deg, var(--bdc-navy) 0%, #3a4494 70%, var(--bdc-navy-dark) 100%);
  color: #fff;
  box-shadow: 0 8px 20px rgba(37, 45, 108, 0.28);
}

.bdc-main .tab-content {
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid var(--bdc-border);
  border-radius: 0.85rem;
  padding: 1rem;
  box-shadow: 0 10px 28px rgba(26, 32, 79, 0.08);
}

.bdc-main .tab-content > .tab-pane {
  animation: bdcTabFadeIn 0.18s ease;
}

@keyframes bdcTabFadeIn {
  from {
    opacity: 0;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Email tracker — highlight threshold rate inputs (above / below) */
.bdc-tracker-rate-input {
  font-weight: 700;
  font-size: 1.05rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.02em;
  color: var(--bdc-navy);
  text-align: center;
  border-radius: 0.5rem;
  border: 2px solid rgba(37, 45, 108, 0.38);
  background: linear-gradient(180deg, rgba(61, 74, 158, 0.12) 0%, rgba(255, 255, 255, 0.98) 55%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
  transition:
    border-color 0.15s ease,
    box-shadow 0.15s ease,
    background 0.15s ease;
}

.bdc-tracker-rate-input::placeholder {
  color: rgba(37, 45, 108, 0.38);
  font-weight: 600;
}

.bdc-tracker-rate-input:hover {
  border-color: rgba(37, 45, 108, 0.55);
}

.bdc-tracker-rate-input:focus {
  border-color: var(--bdc-navy);
  box-shadow:
    0 0 0 0.2rem rgba(37, 45, 108, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
  background: #fff;
  color: var(--bdc-navy-dark);
}

/* Stronger emphasis once a value is entered (placeholder hidden) */
.bdc-tracker-rate-input:not(:placeholder-shown) {
  background: linear-gradient(180deg, rgba(255, 236, 179, 0.55) 0%, rgba(255, 255, 255, 0.98) 100%);
  border-color: var(--bdc-navy);
  box-shadow:
    0 2px 12px rgba(37, 45, 108, 0.14),
    inset 0 1px 0 rgba(255, 255, 255, 0.95);
  font-size: 1.125rem;
}

.btn-gold {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--bdc-gold);
  --bs-btn-border-color: var(--bdc-gold);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--bdc-gold-hover);
  --bs-btn-hover-border-color: var(--bdc-gold-hover);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--bdc-navy-dark);
  --bs-btn-active-border-color: var(--bdc-navy-dark);
  --bs-btn-disabled-color: rgba(255, 255, 255, 0.65);
  --bs-btn-disabled-bg: var(--bdc-gold);
  --bs-btn-disabled-border-color: var(--bdc-gold);
  --bs-btn-focus-shadow-rgb: 61, 74, 158;
  font-weight: 600;
}

.btn-outline-navy {
  --bs-btn-color: var(--bdc-navy);
  --bs-btn-border-color: var(--bdc-navy);
  --bs-btn-hover-bg: var(--bdc-navy);
  --bs-btn-hover-color: #fff;
}

.btn-navy {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--bdc-navy);
  --bs-btn-border-color: var(--bdc-navy);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--bdc-navy-dark);
  --bs-btn-hover-border-color: var(--bdc-navy-dark);
  --bs-btn-focus-shadow-rgb: 37, 45, 108;
  font-weight: 600;
}

/* Glowing CTAs under bureau rates (legacy old/bdc “blinking” buttons) */
@keyframes bdc-btn-glow-pulse {
  0%,
  100% {
    box-shadow:
      0 2px 8px rgba(37, 45, 108, 0.35),
      0 0 0 0 rgba(236, 72, 122, 0.32),
      0 0 18px rgba(236, 72, 122, 0.3);
  }
  50% {
    box-shadow:
      0 4px 14px rgba(37, 45, 108, 0.42),
      0 0 0 4px rgba(236, 72, 122, 0.12),
      0 0 30px rgba(236, 72, 122, 0.48);
  }
}

.btn-navy.bdc-btn-glow {
  color: #fff !important;
  animation: bdc-btn-glow-pulse 2.2s ease-in-out infinite;
}

.btn-navy.bdc-btn-glow:hover,
.btn-navy.bdc-btn-glow:focus-visible {
  color: #fff !important;
  filter: brightness(1.04);
}

@media (prefers-reduced-motion: reduce) {
  .btn-navy.bdc-btn-glow {
    animation: none;
    box-shadow: 0 4px 16px rgba(236, 72, 122, 0.32);
  }
}

.bdc-rates-notes li {
  margin-bottom: 0.4rem;
}

.bdc-rates-notes li:last-child {
  margin-bottom: 0;
}

.bdc-preview-ended-modal {
  border-radius: 1rem;
  box-shadow: 0 24px 48px rgba(26, 32, 79, 0.18), 0 0 0 1px rgba(37, 45, 108, 0.06);
}

.bdc-preview-ended-modal__head {
  background: linear-gradient(135deg, var(--bdc-navy) 0%, #3a4494 55%, var(--bdc-navy-dark) 100%);
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.bdc-preview-ended-modal__icon {
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.22);
  font-size: 1.5rem;
  color: var(--bdc-accent-light);
}

.bdc-preview-ended-modal__badge {
  font-weight: 600;
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0.4rem 0.85rem;
  background: rgba(255, 255, 255, 0.18) !important;
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, 0.28);
}

.bdc-preview-ended-modal__lead {
  font-size: 0.95rem;
  line-height: 1.55;
  color: #3a4156;
}

.bdc-preview-ended-modal__lead strong {
  color: var(--bdc-navy);
  font-weight: 700;
}

.bdc-preview-ended-modal .btn-outline-navy {
  border-width: 2px;
  font-weight: 600;
}

.bdc-preview-ended-modal a:hover,
.bdc-preview-ended-modal a:focus-visible {
  text-decoration: none !important;
}

/* Historical rates — export / share actions */
.history-export-actions .btn {
  font-weight: 600;
  border-width: 0;
  box-shadow: 0 2px 8px rgba(26, 32, 79, 0.12);
}

.history-export-actions .btn:hover,
.history-export-actions .btn:focus-visible {
  filter: brightness(1.06);
  box-shadow: 0 4px 14px rgba(26, 32, 79, 0.18);
}

.btn-bdc-excel {
  background: #217346;
  color: #fff !important;
}

.btn-bdc-excel:hover,
.btn-bdc-excel:focus-visible {
  background: #1a5c38;
  color: #fff !important;
}

.btn-bdc-whatsapp {
  background: #25d366;
  color: #fff !important;
}

.btn-bdc-whatsapp:hover,
.btn-bdc-whatsapp:focus-visible {
  background: #1ebe57;
  color: #fff !important;
}

.btn-bdc-email {
  background: #2563eb;
  color: #fff !important;
}

.btn-bdc-email:hover,
.btn-bdc-email:focus-visible {
  background: #1d4ed8;
  color: #fff !important;
}

/* Historical rates — login gate modal (must live in modals.php as body child for z-index) */
.bdc-history-gate-modal {
  border-radius: 1rem;
  box-shadow:
    0 24px 48px rgba(26, 32, 79, 0.2),
    0 0 0 1px rgba(37, 45, 108, 0.06);
}

.bdc-history-gate-modal__head {
  background: linear-gradient(135deg, var(--bdc-navy) 0%, #3a4494 52%, var(--bdc-navy-dark) 100%);
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.bdc-history-gate-modal__icon {
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.22);
  font-size: 1.5rem;
  color: var(--bdc-accent-light);
}

.bdc-history-gate-modal__lead {
  font-size: 0.95rem;
  line-height: 1.55;
  color: #3a4156;
}

.bdc-history-gate-modal .btn-outline-navy {
  border-width: 2px;
  font-weight: 600;
}

/* Bootstrap modals: must sit above Tawk/chat widgets, reserve overlays (.aro-modal-backdrop ~200000), float rail, ticker */
body.bdc-body > .modal,
.bdc-body > .modal {
  z-index: 2147483646 !important;
}

body.bdc-body > .modal-backdrop,
.bdc-body > .modal-backdrop {
  z-index: 2147483645 !important;
}

/* Reservation detail (sidebar + My reservations page) — navy header, scrollable body */
.bdc-reservation-detail-modal .modal-content {
  border-radius: var(--bdc-radius);
}

.bdc-reservation-detail-modal__head {
  background: linear-gradient(135deg, var(--bdc-navy) 0%, #3d4a9e 48%, var(--bdc-navy-dark) 100%);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.08) inset;
}

.bdc-reservation-detail-modal__icon {
  width: 2.75rem;
  height: 2.75rem;
  font-size: 1.35rem;
  line-height: 1;
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.2);
}

.bdc-reservation-detail-modal__meta .badge {
  font-weight: 500;
  letter-spacing: 0.01em;
}

.bdc-reservation-detail-meta-badge {
  color: #1e2433 !important;
  border-color: rgba(37, 45, 108, 0.18) !important;
}

.bdc-reservation-detail-modal__body {
  max-height: min(55vh, 28rem);
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  line-height: 1.55;
  color: #252a3a;
}

.bdc-reservation-detail-modal__prose h1,
.bdc-reservation-detail-modal__prose h2,
.bdc-reservation-detail-modal__prose h3 {
  font-size: 1rem;
  font-weight: 600;
  margin: 1rem 0 0.5rem;
  color: var(--bdc-navy);
}

.bdc-reservation-detail-modal__prose h1:first-child,
.bdc-reservation-detail-modal__prose h2:first-child,
.bdc-reservation-detail-modal__prose h3:first-child {
  margin-top: 0;
}

.bdc-reservation-detail-modal__prose table {
  width: 100%;
  font-size: 0.88em;
  margin: 0.75rem 0;
  border-collapse: collapse;
}

.bdc-reservation-detail-modal__prose th,
.bdc-reservation-detail-modal__prose td {
  border: 1px solid rgba(37, 45, 108, 0.12);
  padding: 0.35rem 0.5rem;
}

.bdc-reservation-detail-modal__prose img {
  max-width: 100%;
  height: auto;
}

.bdc-reservation-detail-modal__prose a {
  color: var(--bdc-navy);
  font-weight: 600;
}

.bdc-reservation-detail-modal .modal-footer .btn-gold:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.bdc-fake-note-modal-img {
  max-height: min(80vh, 900px);
  width: auto;
  transition: opacity 0.2s ease;
}

.bdc-fake-note-modal-spinner {
  display: none;
  align-items: center;
  justify-content: center;
  min-height: 160px;
  padding: 2rem;
}

.bdc-fake-note-modal-spinner.bdc-fake-note-modal-spinner--active {
  display: flex;
}

.table-rates thead th {
  font-family: var(--font-display);
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--bdc-muted);
  border-bottom-width: 2px;
}

.table-rates tbody td {
  vertical-align: middle;
}

/* Footer */
.bdc-footer {
  background: var(--bdc-navy-dark);
  color: rgba(255, 255, 255, 0.85);
  margin-top: auto;
  padding-top: 2.5rem;
  padding-bottom: 1rem;
}

.bdc-footer a {
  color: #c5d4ff;
  text-decoration: none;
}
.bdc-footer a:hover {
  color: var(--bdc-accent-light);
}

.bdc-footer-logo {
  max-height: 44px;
  width: auto;
  height: auto;
  display: inline-block;
  vertical-align: middle;
  opacity: 0.98;
}

/* When only the colour mark exists: render as white on dark footer */
.bdc-footer-logo--white-from-color {
  filter: brightness(0) invert(1);
  opacity: 1;
}

.bdc-footer .sub-menu {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
  justify-content: flex-end;
}

.bdc-footer-note {
  font-size: 0.875rem;
  line-height: 1.55;
  opacity: 0.92;
}

.bdc-footer-social-panel {
  display: grid;
  grid-template-columns: 1fr;
  align-items: stretch;
  gap: 0.55rem;
  padding: 0;
  border: 0;
  background: transparent;
}

.bdc-footer-social-link {
  grid-column: 1 / -1;
  width: 100%;
  min-height: 2.3rem;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.55rem;
  border-radius: 0.6rem;
  border: 1px solid rgba(255, 255, 255, 0.28);
  background: transparent;
  color: #f4f7ff;
  text-decoration: none;
  padding: 0.4rem 0.6rem;
  transition:
    transform 0.16s ease,
    border-color 0.16s ease,
    background 0.16s ease,
    box-shadow 0.16s ease;
}

.bdc-footer-social-link__icon {
  width: 1.5rem;
  height: 1.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.2);
  flex: 0 0 1.5rem;
}

.bdc-footer-social-link__icon i {
  font-size: 0.82rem;
  line-height: 1;
}

.bdc-footer-social-link__text {
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: #fff;
}

.bdc-footer-social-link:hover,
.bdc-footer-social-link:focus-visible {
  color: #fff;
  border-color: rgba(180, 194, 240, 0.9);
  background: linear-gradient(180deg, rgba(180, 194, 240, 0.28) 0%, rgba(180, 194, 240, 0.12) 100%);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.22);
  transform: translateY(-2px);
}

.bdc-footer-social-link:focus-visible {
  outline: 2px solid rgba(180, 194, 240, 0.85);
  outline-offset: 2px;
}

/* Footer — customer reviews carousel */
.bdc-reviews-card {
  max-width: 42rem;
}

.bdc-reviews-section .carousel-control-prev,
.bdc-reviews-section .carousel-control-next {
  width: 10%;
  opacity: 0.5;
}

.bdc-reviews-section .carousel-control-prev:hover,
.bdc-reviews-section .carousel-control-next:hover,
.bdc-reviews-section .carousel-control-prev:focus,
.bdc-reviews-section .carousel-control-next:focus {
  opacity: 0.85;
}

.bdc-reviews-section .carousel-indicators {
  margin-bottom: 0;
}

.bdc-reviews-section .carousel-indicators [data-bs-target] {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  margin-left: 0.35rem;
  margin-right: 0.35rem;
  background-color: var(--bdc-navy);
  opacity: 0.3;
  border: 0;
}

.bdc-reviews-section .carousel-indicators .active {
  opacity: 1;
  background-color: var(--bdc-accent-light);
}

.bdc-reviews-section .bdc-reviews-carousel.carousel-fade .carousel-item {
  transition-duration: 0.75s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

@media (prefers-reduced-motion: reduce) {
  .bdc-reviews-section .bdc-reviews-carousel.carousel-fade .carousel-item,
  .bdc-reviews-section .bdc-reviews-carousel.carousel-fade .carousel-item.active,
  .bdc-reviews-section .bdc-reviews-carousel.carousel-fade .carousel-item-next.carousel-item-start,
  .bdc-reviews-section .bdc-reviews-carousel.carousel-fade .carousel-item-prev.carousel-item-end {
    transition-duration: 0.01ms !important;
  }
}

/* Modals — match !important rules above so Bootstrap internals stay consistent */
.modal {
  --bs-modal-zindex: 2147483646;
}
.modal-backdrop {
  --bs-backdrop-zindex: 2147483645;
}

.modal-header {
  border-bottom-color: var(--bdc-border);
}

/* Auth modals — login / register / forgot password */
.bdc-auth-modal {
  border-radius: 1rem;
  overflow: hidden;
  border: 1px solid rgba(37, 45, 108, 0.12);
  background: linear-gradient(180deg, #fff 0%, #fafbff 100%);
  box-shadow:
    0 24px 56px rgba(26, 32, 79, 0.18),
    0 0 0 1px rgba(255, 255, 255, 0.6) inset;
}

.bdc-auth-modal__header {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.25rem 1.25rem 1.35rem;
  background: linear-gradient(135deg, var(--bdc-navy) 0%, #3a4494 55%, var(--bdc-navy-dark) 100%);
  color: #fff;
}

.bdc-auth-modal__header--forgot {
  background: linear-gradient(135deg, #1e3a5f 0%, var(--bdc-navy) 65%, #2d3d8a 100%);
}

.bdc-auth-modal__header--register {
  background: linear-gradient(135deg, var(--bdc-navy-dark) 0%, var(--bdc-navy) 45%, #3d4a9e 100%);
}

.bdc-auth-modal__header-text {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  min-width: 0;
}

.bdc-auth-modal__icon {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.65rem;
  height: 2.65rem;
  border-radius: 0.75rem;
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.22);
  font-size: 1.35rem;
  line-height: 1;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
}

.bdc-auth-modal__title {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #fff !important;
  margin: 0 0 0.2rem;
  line-height: 1.25;
}

.bdc-auth-modal__subtitle {
  font-size: 0.8rem;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.82);
  max-width: 22rem;
}

.bdc-auth-modal__body {
  padding: 1.35rem 1.35rem 1.5rem;
  background: linear-gradient(180deg, rgba(37, 45, 108, 0.03) 0%, transparent 120px);
}

@media (min-width: 576px) {
  .bdc-auth-modal__body {
    padding: 1.5rem 1.65rem 1.65rem;
  }
}

.bdc-auth-modal__label {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--bdc-muted);
  margin-bottom: 0.35rem;
  letter-spacing: 0.01em;
}

.bdc-auth-modal__input {
  border-radius: 0.5rem;
  border: 1px solid rgba(37, 45, 108, 0.18);
  padding: 0.55rem 0.85rem;
  font-size: 0.95rem;
  transition:
    border-color 0.15s ease,
    box-shadow 0.15s ease;
}

.bdc-auth-modal__input::placeholder {
  color: rgba(92, 100, 120, 0.55);
}

.bdc-auth-modal__input:hover {
  border-color: rgba(37, 45, 108, 0.28);
}

.bdc-auth-modal__alert {
  border-radius: 0.5rem;
  font-size: 0.875rem;
}

.bdc-auth-modal__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.6rem;
  padding-top: 0.25rem;
}

.bdc-auth-modal__actions--register {
  padding-top: 0.35rem;
}

.bdc-auth-modal__btn-secondary {
  border: 1px solid rgba(37, 45, 108, 0.22);
  background: #fff;
  color: var(--bdc-navy);
  font-weight: 600;
  font-size: 0.875rem;
  padding: 0.45rem 1rem;
  border-radius: 0.5rem;
  transition:
    background 0.15s ease,
    border-color 0.15s ease,
    color 0.15s ease;
}

.bdc-auth-modal__btn-secondary:hover,
.bdc-auth-modal__btn-secondary:focus-visible {
  background: rgba(37, 45, 108, 0.06);
  border-color: rgba(37, 45, 108, 0.35);
  color: var(--bdc-navy-dark);
}

.bdc-auth-modal__footlink {
  text-align: center;
}

.bdc-auth-modal__link {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--bdc-navy);
  text-decoration: none;
}

.bdc-auth-modal__link:hover,
.bdc-auth-modal__link:focus-visible {
  color: var(--bdc-navy-dark);
  text-decoration: underline;
}

.bdc-auth-modal .btn-gold {
  border-radius: 0.5rem;
  font-weight: 600;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

.table-rates tbody tr:nth-child(even) {
  background-color: rgba(37, 45, 108, 0.03);
}

.table-rates tbody tr:hover {
  background-color: rgba(37, 45, 108, 0.07);
}

.btn-gold:focus-visible,
.btn-navy:focus-visible,
.btn-outline-navy:focus-visible,
.form-control:focus,
.form-select:focus {
  box-shadow: 0 0 0 0.2rem rgba(37, 45, 108, 0.2);
  border-color: var(--bdc-navy);
}

/* Avoid slide-in keyframes fighting carousel-fade where hero sits in a carousel */
.carousel-item .bdc-hero:not(.bdc-hero--strip) {
  animation: bdcHeroIn 0.55s ease both;
}

@keyframes bdcHeroIn {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Fixed view rates (side rail) */
.bdc-float-widgets {
  position: fixed;
  top: 70%;
  right: 0;
  bottom: auto;
  z-index: 1040;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.45rem;
  transform: translateY(-50%);
  filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.2));
}

.bdc-float-widgets__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  border-radius: 10px 0 0 10px;
  color: #fff;
  text-decoration: none;
  transition: background 0.2s ease, transform 0.15s ease;
}

.bdc-float-widgets__btn:hover,
.bdc-float-widgets__btn:focus-visible {
  transform: translateX(-2px);
}

/* Legacy pink “view rates” graphic (old/bdc viewrates.jpg) — larger, flush to viewport edge */
.bdc-float-widgets__btn--rates {
  width: auto;
  min-width: auto;
  min-height: 0;
  padding: 0;
  margin-right: 0;
  background: transparent;
  border: 0;
  line-height: 0;
  border-radius: 0;
}

.bdc-float-widgets__btn--rates:hover,
.bdc-float-widgets__btn--rates:focus-visible {
  background: transparent;
  filter: brightness(1.06);
  transform: none;
}

.bdc-float-widgets__rates-img {
  display: block;
  width: 48px;
  height: auto;
  max-width: none;
  object-fit: contain;
}

.bdc-float-widgets__btn:focus-visible {
  outline: 2px solid rgba(37, 45, 108, 0.45);
  outline-offset: 2px;
}

/* WhatsApp — fixed bottom-right (img/WhatsApp-icon.png) */
.bdc-float-call {
  position: fixed;
  right: max(0.75rem, env(safe-area-inset-right, 0px));
  bottom: max(1rem, env(safe-area-inset-bottom, 0px));
  z-index: 1039;
  line-height: 0;
}

.bdc-float-call__btn {
  display: block;
  width: auto;
  height: auto;
  padding: 0;
  margin: 0;
  background: transparent;
  border: 0;
  text-decoration: none;
  line-height: 0;
  filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.2));
  transition: transform 0.15s ease, filter 0.15s ease;
}

.bdc-float-call__btn:hover,
.bdc-float-call__btn:focus-visible {
  background: transparent;
  filter: drop-shadow(0 6px 16px rgba(0, 0, 0, 0.22));
  transform: scale(1.05);
}

.bdc-float-call__img {
  display: block;
  width: 58px;
  height: auto;
  object-fit: contain;
}

.bdc-float-call__btn:focus-visible {
  outline: 2px solid rgba(37, 211, 102, 0.55);
  outline-offset: 4px;
  border-radius: 0.5rem;
}

@media (max-width: 575.98px) {
  .bdc-footer-social-panel {
    width: min(19rem, 100%);
    margin-left: auto;
    margin-right: auto;
  }

  .bdc-footer-social-link {
    min-height: 2.15rem;
  }

  .bdc-main .nav-tabs {
    gap: 0.4rem;
  }

  .bdc-main .nav-tabs .nav-link {
    width: 100%;
    text-align: center;
  }

  .bdc-main .tab-content {
    padding: 0.8rem;
  }

  .bdc-float-widgets {
    top: auto;
    bottom: 5.5rem;
    transform: none;
    flex-direction: row;
    align-items: flex-end;
    justify-content: flex-end;
    right: 0;
    gap: 0.35rem;
    padding-right: 0;
  }

  .bdc-float-widgets__btn {
    border-radius: 10px;
  }

  .bdc-float-widgets__btn--rates {
    border-radius: 0;
  }

  .bdc-float-widgets__rates-img {
    width: 44px;
    height: auto;
  }

  /* Keep WhatsApp button clear of the horizontal float row above */
  .bdc-float-call {
    bottom: max(1rem, env(safe-area-inset-bottom, 0px));
    right: max(0.65rem, env(safe-area-inset-right, 0px));
  }

  .bdc-float-call__img {
    width: 54px;
  }
}
