/* ==========================================================================
   BRAND CAROUSEL — brands-carousel.css
   Custom skin for Owl Carousel on the "Authorised Brands We Carry" section.
   Loaded only on pages that use the brand carousel.
   ========================================================================== */

/* ── Section wrapper ── */
.brands-owl-section {
  padding: 56px 0;
  background: var(--mct-bg, #f8f9fb);
}

/* ── Carousel outer container ── */
#brandCarousel {
  padding: 8px 0 16px;
}

/* ── Individual brand card ── */
.brand-card {
  background: #fff;
  border: 1px solid rgba(12, 24, 66, .09);
  border-radius: 14px;
  padding: 18px 22px;
  height: 90px;
  display: flex !important;           /* override owl's inline-block */
  align-items: center;
  justify-content: center;
  margin: 6px 10px;                   /* breathing room between cards */
  box-shadow: 0 2px 8px rgba(12, 24, 66, .06);
  transition: transform .25s, box-shadow .25s, border-color .25s;
  cursor: default;
  position: relative;
  overflow: hidden;
}

.brand-card::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(160, 28, 42, .04) 0%, transparent 60%);
  opacity: 0;
  transition: opacity .25s;
}

.brand-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 28px rgba(160, 28, 42, .14);
  border-color: rgba(160, 28, 42, .22);
}

.brand-card:hover::after {
  opacity: 1;
}

/* ── Brand logo image inside card ── */
.brand-card img {
  max-height: 48px;
  max-width: 120px;
  width: auto;
  height: auto;
  object-fit: contain;
  filter: grayscale(35%) contrast(1.05);
  opacity: .78;
  transition: filter .3s, opacity .3s;
  position: relative;
  z-index: 1;
}

.brand-card:hover img {
  filter: grayscale(0%) contrast(1);
  opacity: 1;
}

/* ── Text fallback shown when image missing ── */
.brand-card-fallback {
  font-family: var(--font-heading, 'Inter', sans-serif);
  font-size: .95rem;
  font-weight: 800;
  color: var(--mct-text-body, #374151);
  letter-spacing: .01em;
  text-align: center;
  position: relative;
  z-index: 1;
}

/* ══════════════════════════════════════════════════
   OWL CAROUSEL CUSTOMISATIONS
   ══════════════════════════════════════════════════ */

/* ── Navigation arrows ── */
.brand-carousel-wrap .owl-nav {
  margin-top: 20px;
  display: flex;
  justify-content: center;
  gap: 12px;
}

.brand-carousel-wrap .owl-nav button {
  width: 40px;
  height: 40px;
  border-radius: 50% !important;
  background: #fff !important;
  border: 1.5px solid rgba(160, 28, 42, .18) !important;
  color: #a01c2a !important;
  font-size: 1.1rem !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 10px rgba(0, 0, 0, .07);
  transition: background .2s, box-shadow .2s, transform .2s;
  line-height: 1;
}

.brand-carousel-wrap .owl-nav button:hover {
  background: linear-gradient(135deg, #be2335 0%, #8d1520 100%) !important;
  color: #fff !important;
  border-color: transparent !important;
  box-shadow: 0 6px 18px rgba(160, 28, 42, .35);
  transform: scale(1.08);
}

.brand-carousel-wrap .owl-nav button span {
  font-size: 1.4rem;
  line-height: 1;
  margin-top: -2px;
}

/* ── Dots ── */
.brand-carousel-wrap .owl-dots {
  margin-top: 18px;
  display: flex;
  justify-content: center;
  gap: 6px;
}

.brand-carousel-wrap .owl-dot span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(160, 28, 42, .22) !important;
  transition: background .2s, width .2s;
  display: block;
  margin: 0;
}

.brand-carousel-wrap .owl-dot.active span,
.brand-carousel-wrap .owl-dot:hover span {
  background: #a01c2a !important;
  width: 22px;
  border-radius: 4px;
}

/* ── Stage padding override — give each side room ── */
.brand-carousel-wrap .owl-stage-outer {
  padding: 6px 0;
}

/* ── Hide nav on mobile, show only dots ── */
@media (max-width: 575.98px) {
  .brand-carousel-wrap .owl-nav {
    display: none;
  }
}
