:root{
  --merah:#d81324;
  --merah-dark:#b20f1d;
  --putih:#ffffff;
  --abu:#6c757d;
}

/* Navbar */
#mainNav{background-color:#fff;}
#mainNav .nav-link{font-weight:600}

/* Scroll indicator */
#scrollIndicator{
  position:fixed;top:0;left:0;height:3px;width:0;
  background:linear-gradient(90deg,var(--merah),#ff6b6b);
  z-index:1100;
}

/* ===== Hero Merdeka ===== */
.masthead-merdeka{
  position:relative;
  padding:7rem 0 4rem;
  background:
    radial-gradient(1000px 400px at -10% -10%, rgba(216,19,36,0.08), transparent 60%),
    radial-gradient(800px 300px at 110% -10%, rgba(216,19,36,0.08), transparent 60%),
    linear-gradient(180deg,#fff 0%,#fff5f5 100%);
}
.text-merah{color:var(--merah);}

.btn-merah{
  background:var(--merah);
  color:#fff;
  border:none;
}
.btn-merah:hover,
.btn-merah:focus{
  background:var(--merah-dark);
  color:#fff;
}

/* ===== Promo Countdown ===== */
.promo-countdown{max-width:520px;}
#cd-label{letter-spacing:.3px;}

.countdown{
  display:grid;
  grid-template-columns:repeat(4,minmax(72px,1fr));
  gap:.75rem;
}
.countdown>div{
  background:#ffffff;
  border:1px solid #f1d5d5;
  border-radius:.75rem;
  padding:.6rem .4rem;
  box-shadow:0 4px 18px rgba(214,29,29,.06);
  text-align:center;
}
.countdown span{
  display:block;
  font-family:"Kanit",system-ui,-apple-system,Segoe UI,Roboto,"Helvetica Neue",Arial,sans-serif;
  font-weight:700;
  font-size:1.85rem;
  line-height:1;
  color:#c11212;
}
.countdown small{
  display:block;
  margin-top:.15rem;
  font-size:.75rem;
  color:var(--abu);
}

/* Hero image */
.hero-img{
  max-width:360px;
  border:1px solid #f1d5d5;
  box-shadow:0 12px 30px rgba(214,29,29,.12);
  border-radius:1rem;
}

/* Cards & hover */
.testimoni-hover{transition:transform .2s ease;}
.testimoni-hover:hover{transform:translateY(-3px);}

/* Floating buttons */
.scroll-float-btn{
  position:fixed;display:flex;align-items:center;gap:8px;
  background:#0d6efd;color:#fff;padding:.6rem .9rem;border-radius:999px;
  box-shadow:0 10px 20px rgba(0,0,0,.15);z-index:1080;text-decoration:none;
}
.scroll-float-btn.hide{display:none;}
.scroll-float-btn .badge-notif{
  background:#fff;color:#0d6efd;font-weight:800;border-radius:999px;
  padding:.15rem .4rem;margin-left:4px;
}

/* Toast slide */
.toast-slide-out{animation:slideOut 4s ease forwards}
@keyframes slideOut{
  0%{transform:translateX(0);opacity:0}
  10%{opacity:1}
  80%{transform:translateX(-6px);opacity:1}
  100%{transform:translateX(0);opacity:0}
}

/* Cookie banner */
.cookie-banner{
  position:fixed;left:0;right:0;bottom:0;z-index:1080;
  background:rgba(33,37,41,.95);color:#fff;padding:.75rem 1rem;
  display:flex;align-items:center;justify-content:center;gap:.6rem;
  font-size:.9rem
}

/* Buttons animated (subtle) */
.btn-animated{position:relative;overflow:hidden}
.btn-animated::after{
  content:"";position:absolute;top:0;left:-120%;height:100%;width:120%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);
  transform:skewX(-20deg);
}
.btn-animated:hover::after{animation:shine .8s linear;}
@keyframes shine{from{left:-120%}to{left:120%}}

/* Utilities */
.bg-danger-subtle{background:rgba(216,19,36,.08)}

/* ===== Alur visual (ikon bulat + garis/arrow) ===== */
#alur .alur-flow{
  display:flex;gap:2rem;justify-content:center;position:relative;flex-wrap:wrap;
}
#alur .alur-step{
  position:relative;text-align:center;width:220px;padding-top:.25rem;
}
#alur .alur-node{
  width:72px;height:72px;margin:0 auto 10px;border-radius:50%;
  display:grid;place-items:center;background:#fff;border:2px solid var(--bs-danger);
  box-shadow:0 6px 20px rgba(220,53,69,.12);
}
#alur .alur-node i{font-size:34px;color:var(--bs-danger);}
#alur .alur-title{margin:6px 0 4px;font-weight:700;}
#alur .alur-desc{margin:0;font-size:.925rem;color:#6c757d;}

/* Garis penghubung + panah (desktop) */
@media (min-width:768px){
  #alur .alur-step:not(:last-child)::after{
    content:"";position:absolute;top:36px;right:-1rem;width:60px;height:2px;background:var(--bs-danger);
  }
  #alur .alur-step:not(:last-child)::before{
    content:"";position:absolute;top:33px;right:-1rem;
    border-left:8px solid var(--bs-danger);
    border-top:6px solid transparent;border-bottom:6px solid transparent;
  }
}

/* Mode mobile: vertikal dengan garis turun */
@media (max-width:767.98px){
  #alur .alur-flow{flex-direction:column;align-items:center;gap:1.5rem;}
  #alur .alur-step{width:100%;max-width:420px;}
  #alur .alur-step:not(:last-child)::after{
    content:"";position:absolute;left:50%;transform:translateX(-50%);
    top:84px;width:2px;height:38px;background:var(--bs-danger);
  }
  #alur .alur-step:not(:last-child)::before{
    content:"";position:absolute;left:50%;transform:translateX(-50%);
    top:118px;border-top:8px solid var(--bs-danger);
    border-left:6px solid transparent;border-right:6px solid transparent;
  }
}

/* ===== Responsive tweaks ===== */
@media (max-width:991.98px){
  .masthead-merdeka{padding-top:6rem;}
  .countdown{gap:.5rem;}
  .countdown span{font-size:1.6rem;}
}
@media (max-width:575.98px){
  .countdown{grid-template-columns:repeat(4,1fr);}
  .countdown>div{padding:.55rem .35rem;}
  .countdown span{font-size:1.45rem;}
}

/* ===== Reduced motion accessibility ===== */
@media (prefers-reduced-motion:reduce){
  .hero-img,.countdown>div{animation:none!important;transition:none!important;}
}

/* Highlight saat di-scroll ke #sk */
#sk.anchor-highlight {
  animation: skPulse 1.2s ease-in-out 2;
  outline: 2px dashed rgba(214,19,36,.5);
  outline-offset: 6px;
  border-radius: .75rem;
}
@keyframes skPulse{
  0%{background-color:transparent}
  50%{background-color:rgba(216,19,36,.06)}
  100%{background-color:transparent}
}

/* Badge Promo Miring */
.badge-promo {
  position: absolute;
  top: 16px;
  right: -40px;
  background: #d61d1d;
  color: #fff;
  font-weight: 700;
  padding: 6px 50px;
  font-size: 0.9rem;
  transform: rotate(45deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
  z-index: 10;
}
