/* ============================================================
   ReGenesis Hero Slider — regenesis-hero-slider.css
   All selectors prefixed with .rg- to avoid theme conflicts
   ============================================================ */

:root {
  --rg-navy:    #062B5B;
  --rg-emerald: #1F5F2C;
  --rg-gold:    #D4A12A;
  --rg-gold-lt: #ECC050;
  --rg-dark:    #041C3A;
  --rg-light:   #F7F7F5;
  --rg-trans:   1.2s cubic-bezier(.4, 0, .2, 1);
}

/* ── HERO WRAPPER ── */
.rg-hero {
  position: relative !important;
  width: 100% !important;
  height: 100vh !important;
  min-height: 560px !important;
  background: var(--rg-dark) !important;
  overflow: hidden !important;
  font-family: 'Inter', sans-serif !important;
  /* Break out of any theme container */
  margin-left: calc(-50vw + 50%) !important;
  margin-right: calc(-50vw + 50%) !important;
  max-width: 100vw !important;
}

/* ── SLIDES ── */
.rg-slide {
  position: absolute !important;
  inset: 0 !important;
  opacity: 0 !important;
  z-index: 1 !important;
  transition: opacity var(--rg-trans) !important;
  display: flex !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
}
.rg-slide.rg-active  { opacity: 1 !important; z-index: 3 !important; }
.rg-slide.rg-leaving { opacity: 0 !important; z-index: 2 !important; }

/* ── BACKGROUND ── */
.rg-slide-bg {
  position: absolute !important;
  inset: 0 !important;
  background-size: cover !important;
  background-position: center !important;
  transform: scale(1.07) !important;
  transition: transform 8s ease-out !important;
  will-change: transform !important;
}
.rg-slide.rg-active .rg-slide-bg { transform: scale(1.00) !important; }

/* ── OVERLAY ── */
.rg-slide-overlay {
  position: absolute !important;
  inset: 0 !important;
}

/* ── FLOATING SHAPES ── */
.rg-shapes {
  position: absolute !important;
  inset: 0 !important;
  pointer-events: none !important;
  overflow: hidden !important;
}
.rg-shape {
  position: absolute !important;
  border-radius: 50% !important;
  opacity: .065 !important;
}
.rg-shape-1 { animation: rg-floatA 9s  ease-in-out infinite; }
.rg-shape-2 { animation: rg-floatB 11s ease-in-out infinite; animation-delay: -4s; }
.rg-shape-3 { animation: rg-floatC 7s  ease-in-out infinite; animation-delay: -2s; }
.rg-shape-4 { animation: rg-floatA 13s ease-in-out infinite; animation-delay: -7s; }

@keyframes rg-floatA {
  0%,100% { transform: translateY(0)   rotate(0deg);  }
  50%     { transform: translateY(-22px) rotate(12deg); }
}
@keyframes rg-floatB {
  0%,100% { transform: translateY(0)  rotate(0deg); }
  50%     { transform: translateY(18px) rotate(-9deg); }
}
@keyframes rg-floatC {
  0%,100% { transform: translateX(0)  rotate(0deg); }
  50%     { transform: translateX(16px) rotate(6deg); }
}

/* ── CONTENT AREA ── */
.rg-slide-content {
  position: relative !important;
  z-index: 10 !important;
  max-width: 720px !important;
  padding: 0 clamp(28px, 7vw, 100px) !important;
}

/* ── TAG PILL ── */
.rg-tag {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 3.5px !important;
  text-transform: uppercase !important;
  color: var(--rg-gold) !important;
  border: 1px solid rgba(212,161,42,.35) !important;
  background: rgba(212,161,42,.08) !important;
  padding: 6px 16px !important;
  border-radius: 30px !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
  margin-bottom: 22px !important;
  opacity: 0 !important;
  transform: translateY(14px) !important;
  transition: opacity .7s .15s ease, transform .7s .15s ease !important;
  line-height: 1 !important;
}
.rg-tag::before {
  content: '' !important;
  display: block !important;
  width: 6px !important;
  height: 6px !important;
  border-radius: 50% !important;
  background: var(--rg-gold) !important;
  flex-shrink: 0 !important;
}
.rg-slide.rg-active .rg-tag { opacity: 1 !important; transform: translateY(0) !important; }

/* ── GOLD RULE ── */
.rg-rule {
  width: 0 !important;
  height: 2px !important;
  background: linear-gradient(90deg, var(--rg-gold), transparent) !important;
  margin-bottom: 22px !important;
  opacity: 0 !important;
  transition: opacity .5s .3s ease, width .7s .3s ease !important;
  border: none !important;
}
.rg-slide.rg-active .rg-rule { opacity: 1 !important; width: 56px !important; }

/* ── HEADING ── */
.rg-heading {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 700 !important;
  font-size: clamp(34px, 5.2vw, 62px) !important;
  line-height: 1.1 !important;
  color: var(--rg-light) !important;
  margin-bottom: 20px !important;
  margin-top: 0 !important;
  opacity: 0 !important;
  transform: translateY(22px) !important;
  transition: opacity .85s .4s ease, transform .85s .4s ease !important;
}
.rg-slide.rg-active .rg-heading { opacity: 1 !important; transform: translateY(0) !important; }
.rg-heading em {
  font-style: normal !important;
  color: var(--rg-gold) !important;
}

/* ── SUBHEADING ── */
.rg-sub {
  font-size: clamp(13px, 1.6vw, 15px) !important;
  line-height: 1.75 !important;
  color: rgba(247,247,245,.72) !important;
  max-width: 540px !important;
  margin-bottom: 36px !important;
  margin-top: 0 !important;
  opacity: 0 !important;
  transform: translateY(18px) !important;
  transition: opacity .85s .58s ease, transform .85s .58s ease !important;
}
.rg-slide.rg-active .rg-sub { opacity: 1 !important; transform: translateY(0) !important; }

/* ── BUTTONS ROW ── */
.rg-btns {
  display: flex !important;
  gap: 14px !important;
  flex-wrap: wrap !important;
  opacity: 0 !important;
  transform: translateY(16px) !important;
  transition: opacity .85s .75s ease, transform .85s .75s ease !important;
}
.rg-slide.rg-active .rg-btns { opacity: 1 !important; transform: translateY(0) !important; }

.rg-btn-primary {
  font-family: 'Inter', sans-serif !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  padding: 14px 30px !important;
  background: linear-gradient(135deg, var(--rg-gold) 0%, #b8891f 100%) !important;
  color: var(--rg-dark) !important;
  border: none !important;
  border-radius: 3px !important;
  cursor: pointer !important;
  transition: transform .22s, box-shadow .22s !important;
  box-shadow: 0 6px 24px rgba(212,161,42,.32) !important;
  text-decoration: none !important;
  display: inline-block !important;
  line-height: 1 !important;
}
.rg-btn-primary:hover  { transform: translateY(-3px) !important; box-shadow: 0 12px 36px rgba(212,161,42,.5) !important; color: var(--rg-dark) !important; }
.rg-btn-primary:active { transform: translateY(-1px) !important; }
.rg-btn-primary:focus  { outline: 2px solid var(--rg-gold); outline-offset: 3px; }

.rg-btn-secondary {
  font-family: 'Inter', sans-serif !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  padding: 13px 30px !important;
  background: rgba(247,247,245,.08) !important;
  color: var(--rg-light) !important;
  border: 1px solid rgba(247,247,245,.28) !important;
  border-radius: 3px !important;
  cursor: pointer !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
  transition: all .22s !important;
  text-decoration: none !important;
  display: inline-block !important;
  line-height: 1 !important;
}
.rg-btn-secondary:hover  { background: rgba(247,247,245,.17) !important; border-color: rgba(247,247,245,.55) !important; transform: translateY(-3px) !important; color: var(--rg-light) !important; }
.rg-btn-secondary:active { transform: translateY(-1px) !important; }
.rg-btn-secondary:focus  { outline: 2px solid var(--rg-light); outline-offset: 3px; }

/* ── GLASS CARD ── */
.rg-glass-card {
  position: absolute !important;
  bottom: clamp(28px, 5vw, 48px) !important;
  right: clamp(28px, 5vw, 56px) !important;
  z-index: 10 !important;
  background: rgba(6,43,91,.42) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  border: 1px solid rgba(212,161,42,.22) !important;
  border-radius: 12px !important;
  padding: 18px 24px !important;
  min-width: 186px !important;
  opacity: 0 !important;
  transform: translateY(12px) !important;
  transition: opacity .8s 1s ease, transform .8s 1s ease !important;
}
.rg-slide.rg-active .rg-glass-card { opacity: 1 !important; transform: translateY(0) !important; }

.rg-gc-label {
  font-size: 9px !important;
  font-weight: 600 !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  color: var(--rg-gold) !important;
  margin-bottom: 7px !important;
}
.rg-gc-value {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 700 !important;
  font-size: 32px !important;
  color: var(--rg-light) !important;
  line-height: 1 !important;
  margin-bottom: 5px !important;
}
.rg-gc-desc {
  font-size: 11px !important;
  color: rgba(247,247,245,.5) !important;
  line-height: 1.5 !important;
  margin: 0 !important;
}

/* ── NAV DOTS ── */
.rg-nav-dots {
  position: absolute !important;
  bottom: clamp(20px, 4vw, 36px) !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  z-index: 20 !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 0 !important;
}
.rg-dot {
  width: 7px !important;
  height: 7px !important;
  border-radius: 4px !important;
  background: rgba(247,247,245,.28) !important;
  border: none !important;
  cursor: pointer !important;
  transition: background .4s, width .4s cubic-bezier(.4,0,.2,1) !important;
  padding: 0 !important;
  display: block !important;
  flex-shrink: 0 !important;
}
.rg-dot.rg-dot-active  { background: var(--rg-gold) !important; width: 32px !important; }
.rg-dot:hover:not(.rg-dot-active) { background: rgba(247,247,245,.58) !important; }

/* ── ARROW BUTTONS ── */
.rg-arrows {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 100% !important;
  display: flex !important;
  justify-content: space-between !important;
  padding: 0 clamp(14px, 3vw, 28px) !important;
  z-index: 20 !important;
  pointer-events: none !important;
  left: 0 !important;
  margin: 0 !important;
}
.rg-arrow {
  width: 48px !important;
  height: 48px !important;
  border-radius: 50% !important;
  background: rgba(6,43,91,.48) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  border: 1px solid rgba(212,161,42,.22) !important;
  color: var(--rg-light) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  pointer-events: all !important;
  transition: all .25s !important;
  padding: 0 !important;
  flex-shrink: 0 !important;
}
.rg-arrow:hover { background: rgba(212,161,42,.22) !important; border-color: var(--rg-gold) !important; color: var(--rg-gold-lt) !important; }
.rg-arrow svg { width: 20px !important; height: 20px !important; display: block !important; }

/* ── SLIDE COUNTER ── */
.rg-counter {
  position: absolute !important;
  top: clamp(20px, 4vw, 32px) !important;
  right: clamp(24px, 5vw, 52px) !important;
  z-index: 20 !important;
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 13px !important;
  color: rgba(212,161,42,.65) !important;
  letter-spacing: 3px !important;
  user-select: none !important;
  margin: 0 !important;
}

/* ── PROGRESS BAR ── */
.rg-progress-bar {
  position: absolute !important;
  bottom: 0 !important;
  left: 0 !important;
  height: 3px !important;
  background: linear-gradient(90deg, var(--rg-gold), var(--rg-emerald)) !important;
  z-index: 20 !important;
  width: 0 !important;
  transition: width 5.2s linear !important;
}

/* ── MOBILE ── */
@media (max-width: 600px) {
  .rg-glass-card { display: none !important; }
  .rg-heading { font-size: clamp(28px, 8vw, 40px) !important; }
  .rg-slide-content { padding: 0 24px !important; }
  .rg-arrow { width: 38px !important; height: 38px !important; }
}
