/* ============================================================
   Richscape Banner Slider – richscape-banner-slider.css
   All slider-specific styles. Uses CSS custom properties for
   easy colour theming without touching JS or PHP.
   ============================================================ */

:root {
  --rbs-teal:          #00C7A3;
  --rbs-navy:          #0A2342;
  --rbs-arrow-bg:      rgba(255, 255, 255, 0.20);
  --rbs-arrow-hover:   rgba(255, 255, 255, 0.50);
  --rbs-dot-inactive:  rgba(255, 255, 255, 0.40);
  --rbs-dot-active:    #00C7A3;
  --rbs-height:        clamp(250px, 60vh, 560px);
  --rbs-transition:    0.6s ease-in-out;
}

/* ── Outer wrapper ─────────────────────────────────────────── */
.richscape-banner-slider {
  position: relative;
  width: 100%;
  max-width: 100%;
  margin-top: var(--header-height, 137px);
  margin-left: 0;
  margin-right: 0;
  left: 0;
  height: var(--rbs-height);
  overflow: hidden;
  background: var(--rbs-navy);
  /* subtle dark vignette on the left edge for depth */
  box-shadow: inset 80px 0 120px -60px rgba(0, 0, 0, 0.55);
}

/* ── Slide track (all slides stacked) ─────────────────────── */
.rbs-track {
  position: relative;
  width: 100%;
  height: 100%;
}

/* ── Individual slide ──────────────────────────────────────── */
.rbs-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity var(--rbs-transition);
  pointer-events: none;
}

.rbs-slide.active {
  opacity: 1;
  pointer-events: auto;
  z-index: 1;
}

/* Slide image fills the frame */
.rbs-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  /* prevent layout shift before image loads */
  background: var(--rbs-navy);
}

/* Left-edge depth vignette (separate from the box-shadow above,
   so it sits on top of the image) */
.rbs-slide::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to right,
    rgba(0, 0, 0, 0.45) 0%,
    transparent 30%
  );
  pointer-events: none;
}

/* ── Navigation arrows ─────────────────────────────────────── */
.rbs-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 20;
  background: var(--rbs-arrow-bg);
  border: 1px solid rgba(255, 255, 255, 0.3);
  color: #ffffff;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  transition: background 0.25s, transform 0.25s;
  /* reset button defaults */
  padding: 0;
  outline: none;
  -webkit-appearance: none;
}

.rbs-arrow:hover,
.rbs-arrow:focus-visible {
  background: var(--rbs-arrow-hover);
  transform: translateY(-50%) scale(1.08);
}

.rbs-prev { left: 16px; }
.rbs-next { right: 16px; }

/* ── Dot navigation (bottom-right) ────────────────────────── */
.rbs-dots {
  position: absolute;
  bottom: 18px;
  right: 20px;
  z-index: 20;
  display: flex;
  align-items: center;
  gap: 8px;
}

.rbs-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--rbs-dot-inactive);
  border: none;
  padding: 0;
  cursor: pointer;
  transition: background 0.3s, transform 0.3s;
  outline: none;
  -webkit-appearance: none;
}

.rbs-dot:hover {
  background: rgba(255, 255, 255, 0.7);
}

.rbs-dot.active,
.rbs-dot[aria-selected="true"] {
  background: var(--rbs-dot-active);
  transform: scale(1.35);
}

/* ── Responsive: mobile ────────────────────────────────────── */
@media (max-width: 767px) {
  :root {
    --rbs-height: max(250px, 50vw);
  }

  /* Hide arrows on mobile (swipe is the gesture) */
  .rbs-arrow {
    display: none;
  }
}

/* ── About section: overlaps the bottom of the slider ──────── */
.about-section-overlap {
  position: relative;
  z-index: 30;
  margin-top: -80px;
  margin-bottom: 10px;
  padding-left: 50px;
}

/* ── About card section ─────────────────────────────────────── */
.about-card-inner {
  width: 100%;
  background: linear-gradient(90deg, #1A2251 0%, #2A9D8F 100%);
  padding: 48px 40px;
  color: #ffffff;
}

@media (min-width: 1024px) {
  .about-card-inner {
    width: 50%;
    padding: 64px 64px 56px;
  }
}

/* ── Vision/Mission section: 4/8 column grid ───────────────── */
.vm-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
}

@media (min-width: 1024px) {
  .vm-grid {
    grid-template-columns: 4fr 8fr;
    gap: 4rem;
  }
}

/* ── Core values number badge ───────────────────────────────── */
.cv-badge {
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  min-width: 26px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 12px;
  background: #2A9D8F;
  color: #ffffff;
  margin-top: 2px;
}

/* ── Core value item: badge on top, line + text below ───────── */
.cv-item {
  display: flex;
  flex-direction: column;
}

/* Row below badge: line + text side by side */
.cv-body {
  display: flex;
  align-items: stretch;
  gap: 12px;
  margin-top: 8px;
}

/* Vertical line centered under badge (badge = 26px, center at 13px) */
.cv-line {
  width: 2px;
  flex-shrink: 0;
  background: rgba(42, 157, 143, 0.5);
  margin-left: 12px;
  min-height: 20px;
}

.cv-text-block {
  flex: 1;
}
