/* =========================================
   CSS HERO SLIDER (UPDATED)
   ========================================= */

.heroCover, .heroCover * {
  box-sizing: border-box;
}

.heroCover {
  position: relative;
  min-height: 560px; /* Fallback */
  overflow: hidden;
  font-family: 'Inter', sans-serif;
  width: 100%;
}

/* BACKGROUND IMAGE */
.heroCover .heroBg {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important; 
  object-position: center center !important; 
  z-index: 1;
  margin: 0 !important;
  padding: 0 !important;
  max-width: none !important;
}

/* CONTAINER UTAMA */
.heroContainer {
  position: relative;
  z-index: 2;
  max-width: 1200px;
  margin: 0 auto;
  padding: 80px 20px;
  height: 100%;
  display: flex;
  align-items: center;
}

/* BOX GRADIENT (OVERLAY) */
.heroOverlay {
  position: relative;
  width: 100%;
  min-height: 420px;
  padding: 52px 56px;
  padding-right: 420px; /* Ruang default model PC */
  border-radius: 32px;
  background: linear-gradient(
    135deg,
    rgba(140,195,92,0.70),
    rgba(242,163,42,0.62)
  );
  border: 1px solid rgba(255,255,255,0.28);
  box-shadow: 0 30px 90px rgba(15,23,42,0.22);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* TEXT STYLES */
.heroOverlay h1 {
  font-size: 56px;
  font-weight: 900;
  line-height: 1.05;
  color: #fff;
  text-shadow: 0 10px 28px rgba(0,0,0,0.25);
  margin: 0 0 18px 0;
}

.heroOverlay p {
  margin: 0 0 24px 0;
  max-width: 620px;
  color: rgba(255,255,255,0.92);
  font-weight: 600;
  font-size: 16px;
  line-height: 1.6;
}

/* TOMBOL */
.heroActions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.btnHero {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 54px;
  padding: 0 28px;
  border-radius: 999px;
  font-weight: 800;
  font-size: 15px;
  line-height: 1;
  text-decoration: none !important;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}

/* Style default - nanti ditimpa Elementor jika ada setting */
.btnHero.primary {
  background: #fff;
  color: #111827;
  border: 3px solid rgba(255,255,255,0.8);
  box-shadow: 0 16px 40px rgba(15,23,42,0.12);
}

.btnHero.ghost {
  background: rgba(255,255,255,0.15);
  color: #fff;
  border: 3px solid rgba(255,255,255,0.65);
  backdrop-filter: blur(4px);
}

.btnHero:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 25px rgba(0,0,0,0.15);
}

/* MODEL */
.heroModel {
  position: absolute;
  right: -40px; /* Default Desktop */
  bottom: -20px; /* Default Desktop */
  height: 580px; /* Default Desktop */
  z-index: 3;
  pointer-events: none;
  filter: drop-shadow(0 24px 50px rgba(15,23,42,0.30));
  max-width: none;
  /* CSS ini akan ditimpa oleh setting Elementor */
}

/* SLIDER LOGIC */
.heroSlider {
  position: relative;
}

.heroSlides {
  position: relative;
  height: 560px; /* Fallback */
}

.heroSlide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.8s ease-in-out;
  pointer-events: none;
}

.heroSlide.active {
  opacity: 1;
  z-index: 2;
  pointer-events: auto;
}

/* IMAGE ONLY SLIDE */
.heroOverlay.heroOverlay--imageOnly {
  padding: 0;
  padding-right: 0; 
  overflow: hidden;
  align-items: stretch;
}

.heroImageInBox {
  width: 100%;
  height: 100%;
  min-height: 420px; /* Fallback */
  object-fit: cover; /* Default */
  display: block;
  border-radius: 30px; 
}

/* DOT NAVIGATION */
.heroDots {
  position: absolute;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 10px;
  z-index: 10;
}

.heroDots button {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: none;
  background: rgba(255,255,255,0.5);
  cursor: pointer;
  padding: 0;
  transition: all 0.3s ease;
}

.heroDots button.active {
  background: #fff;
  width: 30px;
  border-radius: 999px;
  box-shadow: 0 0 10px rgba(255,255,255,0.4);
}

/* =========================================
   RESPONSIVE (DEFAULTS - Bisa ditimpa Elementor)
   ========================================= */

@media (max-width: 980px) {
  .heroCover { min-height: auto; }
  .heroSlides { height: auto; min-height: 350px; }
  .heroContainer { padding: 40px 20px; }
  
  .heroOverlay {
    min-height: 280px;
    padding: 30px 20px;
    padding-right: 40%; 
    align-items: flex-start;
    justify-content: center;
    text-align: left;
  }
  
  .heroOverlay h1 { font-size: 28px; }
  .heroOverlay p { font-size: 13px; margin: 10px 0 15px 0; }
  
  /* Default Mobile Model: Jika user tidak setting di elementor, ini fallbacknya */
  .heroModel {
    /* right & bottom nanti dikontrol via Elementor */
    max-width: 45%; 
    display: block;
    margin: 0;
  }
  
  .heroActions { justify-content: flex-start; }
  .btnHero { height: 40px; padding: 0 16px; font-size: 12px; }
  
  .heroOverlay.heroOverlay--imageOnly { padding-right: 0; }
  .heroImageInBox { min-height: 280px; }
}

@media (max-width: 520px) {
  .heroCover, .heroSlides { min-height: 280px; }
  .heroContainer { padding: 20px 15px; }
  
  .heroOverlay {
    padding: 20px 15px;
    padding-right: 42%;
    min-height: 240px;
    border-radius: 20px;
  }
  
  .heroOverlay h1 { font-size: 18px; margin-bottom: 6px; }
  .heroOverlay p { font-size: 10px; margin-top: 6px; margin-bottom: 12px; }
  
  .btnHero { height: 30px; padding: 0 10px; font-size: 10px; border-width: 2px; }
  .heroActions { gap: 6px; }
  
  .heroDots { bottom: 15px; }
  .heroImageInBox { min-height: 240px; border-radius: 20px; }
}