/* assets/frontend/css/styles.css */
:root { color-scheme: light dark; }
html.dark img[loading="lazy"] { filter: brightness(.95) contrast(1.02); }

.slider { position: relative; }
.slider .slides { transform: translateX(0); }
.slider .dots button { width: 10px; height: 10px; border-radius: 9999px; border: 1px solid rgba(148,163,184,.6); }
.slider .dots button[aria-current="true"] { background: rgb(16,185,129); border-color: rgb(16,185,129); }

.container { max-width: 1100px; }
.prose ol {
  list-style-type: decimal;
  margin-left: 1.25em; /* supaya ada indent */
  padding-left: 1.25em;
}

.prose ul {
  list-style-type: disc;
  margin-left: 1.25em;
  padding-left: 1.25em;
}

.dark .prose ol,
.dark .prose ul {
  color: rgb(226 232 240); /* text-slate-200 */
}

.text-emboss {
  text-shadow:
    0 1px 0 #d4b45f,
    0 2px 0 #c2a24d,
    0 3px 0 #a88a3a,
    0 8px 16px rgba(0,0,0,.35);
}

.text-3d-glow {
  text-shadow:
    0 2px 6px rgba(0,0,0,.35),
    0 0 14px rgba(34,197,94,.45);
}

/* ===============================
   HERO IMAGE ANIMATION (SMOOTH)
================================ */
.hero-animate {
  animation: heroZoomFade 1.4s ease-out both;
}

@keyframes heroZoomFade {
  0% {
    opacity: 0;
    transform: scale(1.05);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

/* ===============================
   FORCE HERO MOBILE FIX
================================ */
@media (max-width: 768px) {

  .hero-content {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }

  .hero-text {
    max-width: 100% !important;
    text-align: left !important;
    margin-left: 0 !important;
  }

  .hero-title {
    font-size: 2.1rem !important;
    line-height: 1.15 !important;
    margin-bottom: 0.75rem;
  }

  .hero-tagline {
    font-size: 0.95rem !important;
    line-height: 1.6;
    margin-bottom: 0.75rem;
    max-width: 95%;
  }

  .hero-address {
    font-size: 0.72rem !important;
    line-height: 1.5;
    opacity: 0.75;
    max-width: 90%;
    margin-bottom: 1rem;
  }

  .hero-btn {
    display: inline-block;
    padding: 0.6rem 1.25rem;
    font-size: 0.85rem;
  }
}

/* ===============================
   HERO IMAGE MOBILE POSITION
================================ */
@media (max-width: 768px) {
  .hero-banner img,
  section img.hero-animate {
    object-position: right center !important;
  }
}

/* ===============================
   HERO OVERLAY MOBILE SOFT
================================ */
@media (max-width: 768px) {
  .hero-overlay,
  section > div.absolute.inset-0.bg-gradient-to-r {
    background: linear-gradient(
      to right,
      rgba(6, 78, 59, 0.92) 0%,
      rgba(6, 78, 59, 0.75) 40%,
      rgba(6, 78, 59, 0.35) 70%,
      rgba(6, 78, 59, 0) 100%
    ) !important;
  }
}

/* ===============================
   HERO TITLE MOBILE BIGGER
================================ */
@media (max-width: 768px) {
  h1 {
    font-size: 2.8rem !important;   /* BESAR TAPI AMAN */
    line-height: 1.15 !important;
  }
}

/* ===============================
   HERO TITLE MOBILE BIGGER
================================ */
@media (max-width: 768px) {
  h1 {
    font-size: 2.8rem !important;
    line-height: 1.15 !important;
  }
}

/* =====================================================
   NAVBAR – PENDIS STYLE (FINAL LOCK)
===================================================== */

/* ===============================
   MENU UTAMA – HANYA WARNA
================================ */

.nav-press {
  background: transparent !important;
  box-shadow: none !important;

  display: inline-block;
  position: relative;

  font-weight: 500;

  /* default dark */
  color: rgb(226, 232, 240);

  transition: color 0.2s ease;
}

/* Hover menu utama → warna saja */
.nav-press:hover {
  color: rgb(16, 185, 129) !important;
}

/* Tidak ada efek tekan */
.nav-press:active {
  transform: none;
}

/* ===============================
   SUB MENU – WARNA + TEKAN KE SAMPING
================================ */

.nav-press-sub {
  background: transparent !important;
  box-shadow: none !important;

  display: block;

  font-weight: 400;
  color: rgb(226, 232, 240);

  transition:
    color 0.2s ease,
    transform 0.2s ease;
}

/* Hover submenu */
.nav-press-sub:hover {
  color: rgb(16, 185, 129) !important;
  transform: translateX(6px); /* ⬅️ TERTEKAN KE SAMPING */
}

/* ===============================
   LIGHT MODE
================================ */

html:not(.dark) .nav-press,
html:not(.dark) .nav-press-sub {
  color: rgb(15, 23, 42); /* slate-900 */
}

html:not(.dark) .nav-press:hover,
html:not(.dark) .nav-press-sub:hover {
  color: rgb(5, 150, 105) !important; /* emerald-600 */
}

/* ===============================
   MOBILE – NO ANIMATION
================================ */

@media (max-width: 1023px) {
  .nav-press:hover,
  .nav-press-sub:hover {
    transform: none;
  }
}

/* =====================================================
   MOBILE TOUCH FEEDBACK (FINAL — FIXED)
   Prinsip:
   - Menu utama & parent: warna saja
   - Submenu (anak accordion): warna + geser
===================================================== */

@media (max-width: 1023px) {

  /* Transisi umum */
  .nav-touch-parent span,
  .nav-touch-sub {
    transition:
      color 0.18s ease,
      transform 0.18s ease;
  }

  /* MENU UTAMA & PARENT DROPDOWN → WARNA SAJA */
  .nav-touch-parent.is-touch span,
  #mobileNav > nav > ul > li > .nav-touch-sub.is-touch {
    color: rgb(16, 185, 129) !important;
    transform: none !important;
  }

  /* SUBMENU (ANAK ACCORDION) → WARNA + GESER */
  #mobileNav ul ul .nav-touch-sub.is-touch {
    color: rgb(16, 185, 129) !important;
    transform: translateX(8px);
  }

}

/* =====================================================
   GURU CARD (FINAL – STABLE)
===================================================== */
.guru-card {
  border-radius: 16px;
  background: transparent;
}

.guru-card article {
  position: relative;
  border: 1px solid rgba(148,163,184,.45);
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
}

.guru-card img {
  width: 100%;
  transition: filter .2s ease, transform .2s ease;
}

.guru-card article::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 16px;
  border: 1.5px solid rgb(16,185,129);
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease;
}

@media (hover:hover) and (pointer:fine) {
  .guru-card:hover article::after {
    opacity: 1;
  }

  .guru-card:hover img {
    filter: drop-shadow(0 14px 28px rgba(16,185,129,.35));
    transform: scale(1.015);
  }
}

/* =====================================================
   SWIPER PREVENT LOAD BUG (FINAL)
===================================================== */
#guruSlider:not(.swiper-initialized) {
  visibility: hidden;
}

#guruSlider.swiper-initialized {
  visibility: visible;
}

#guruSlider:not(.swiper-initialized) .swiper-slide {
  width: 280px;
  flex-shrink: 0;
}

/* ===============================
   SCROLL UP BUTTON – HARD LOCK
================================ */
#scrollUpBtn {
  position: fixed !important;
  right: 1.5rem;
  bottom: 1.5rem;

  width: 3rem;
  height: 3rem;

  background: rgb(5,150,105);
  color: #fff;
  border-radius: 9999px;

  display: flex;
  align-items: center;
  justify-content: center;

  z-index: 999999 !important;
  isolation: isolate;

  opacity: 0;
  pointer-events: none;   /* 🔑 supaya tidak bisa diklik saat tersembunyi */
  transition: opacity .25s ease, transform .25s ease;
  transform: translateY(8px);
}

/* AKTIF */
#scrollUpBtn.is-visible {
  opacity: 1;
  pointer-events: auto;  /* 🔑 baru bisa diklik */
  transform: translateY(0);
}

/* MATIKAN FOCUS RING */
#scrollUpBtn:focus,
#scrollUpBtn:focus-visible {
  outline: none !important;
}












