:root{
  --bg: #0b0f17;
  --bg2:#0f1724;
  --card:#121a2b;
  --border: rgba(255,255,255,.08);
  --text: rgba(255,255,255,.92);
  --muted: rgba(255,255,255,.65);

  --primary: #c92c8e;     /* MAIN COLOR */
  --primary2:#ff76c7;     /* accent */
  --wa:#25d366;
}

html,body{
  background: radial-gradient(1200px 600px at 15% 10%, rgba(201,44,142,.18), transparent 60%),
              radial-gradient(900px 500px at 80% 30%, rgba(255,118,199,.10), transparent 55%),
              var(--bg);
  color: var(--text);
}

.topbar{
  background: linear-gradient(90deg, rgba(201,44,142,.22), rgba(255,118,199,.10));
  border-bottom: 1px solid var(--border);
}
.topbar-link{
  color: rgba(255,255,255,.8);
  text-decoration: none;
  font-size: .875rem;
}
.topbar-link:hover{ color: #fff; }

.navbar-glass{
  background: rgba(10, 14, 24, .65);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--border);
}
.navbar .nav-link{ color: rgba(255,255,255,.75); }
.navbar .nav-link:hover{ color:#fff; }

.brand-badge{
  display:inline-flex;
  width: 34px;
  height: 34px;
  align-items:center;
  justify-content:center;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--primary), var(--primary2));
  color:#fff;
}

.btn-primary{
  background: linear-gradient(135deg, var(--primary), var(--primary2));
  border: none;
}
.btn-primary:hover{ opacity:.95; }

.hero-img{
  height: 72vh;
  object-fit: cover;
  filter: brightness(.75) contrast(1.05);
}
.glass{
  background: rgba(15, 23, 36, .55);
  border: 1px solid var(--border);
  border-radius: 18px;
  backdrop-filter: blur(10px);
  box-shadow: 0 12px 40px rgba(0,0,0,.35);
}

.section-title{
  font-weight: 800;
  letter-spacing: .2px;
  color: #fff;
}
.section-subtitle{
  color: var(--muted);
}

.section-dark{
  background: linear-gradient(180deg, rgba(255,255,255,.03), transparent 60%);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.card-soft{
  background: rgba(18, 26, 43, .9);
  border: 1px solid var(--border);
  border-radius: 18px;
  box-shadow: 0 12px 40px rgba(0,0,0,.28);
}

/* pastikan title-title putih */
.card-soft h1,
.card-soft h2,
.card-soft h3,
.card-soft h4,
.card-soft h5,
.card-soft h6{
  color:#fff !important;
}

.card-soft .text-muted{ color: rgba(255,255,255,.65) !important; }

.icon-pill{
  width: 44px;
  height: 44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius: 14px;
  background: rgba(201,44,142,.16);
  border: 1px solid rgba(201,44,142,.35);
  color: #ffd0ea;
  font-size: 1.2rem;
}

/* bootstrap primary override for badges, icons, etc */
.text-primary{ color: var(--primary) !important; }
.badge.text-bg-primary{
  background: linear-gradient(135deg, var(--primary), var(--primary2)) !important;
}

.stat-card{
  display:flex;
  gap: 14px;
  align-items:flex-start;
  padding: 18px;
  border-radius: 18px;
  background: rgba(18,26,43,.65);
  border: 1px solid var(--border);
}
.stat-icon{ font-size: 1.6rem; color: #ffd0ea; }
.stat-title{ font-weight: 700; color:#fff; }
.stat-text{ color: var(--muted); font-size: .95rem; }

.product-card{
  background: rgba(18,26,43,.9);
  border: 1px solid var(--border);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 12px 40px rgba(0,0,0,.25);
}
.product-card img{
  height: 190px;
  object-fit: cover;
  filter: contrast(1.05) brightness(.95);
}
.price{ font-weight: 800; color: #fff; }

.table-dark{
  --bs-table-bg: transparent;
  --bs-table-border-color: rgba(255,255,255,.08);
}

/* form labels & title putih */
.form-label{ color:#fff; }
.form-control{
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.10);
  color: #fff;
}
.form-control:focus{
  background: rgba(255,255,255,.08);
  border-color: rgba(201,44,142,.65);
  box-shadow: 0 0 0 .25rem rgba(201,44,142,.18);
  color:#fff;
}

.contact-item{
  display:flex;
  gap: 14px;
  padding: 14px 0;
  border-bottom: 1px dashed rgba(255,255,255,.10);
}
.contact-item:last-child{ border-bottom:none; }
.contact-icon{
  width: 44px;
  height: 44px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius: 14px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.10);
  color:#fff;
  font-size: 1.2rem;
}

.footer{
  border-top: 1px solid var(--border);
  background: rgba(10, 14, 24, .7);
}

.wa-float{
  position: fixed;
  right: 18px;
  bottom: 18px;
  width: 56px;
  height: 56px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius: 18px;
  background: var(--wa);
  color:#083312;
  font-size: 1.6rem;
  box-shadow: 0 16px 40px rgba(0,0,0,.35);
  text-decoration: none;
  z-index: 999;
}
.wa-float:hover{ opacity:.95; }

/* =========================
   MOBILE FIXES (AVLEXY)
   ========================= */

/* 1) Topbar lebih ringkas di HP */
@media (max-width: 576px){
  .topbar .container{
    gap: 8px !important;
  }
  .topbar .small{
    font-size: .78rem;
    line-height: 1.2rem;
  }
  .topbar-link{
    font-size: .82rem;
  }
}

/* 2) Navbar logo & tombol biar aman di HP */
@media (max-width: 576px){
  .navbar-brand img{
    width: 86px !important;
    height: auto;
  }
  .navbar .btn{
    width: 100%;
  }
  .navbar .d-flex.ms-lg-3{
    flex-direction: column;
    width: 100%;
    margin-top: 10px;
  }
}

/* 3) Slider/hero: tinggi disesuaikan dan caption tidak kepotong */
@media (max-width: 768px){
  .hero-img{
    height: 58vh !important;   /* sebelumnya 72vh, terlalu tinggi di HP */
    min-height: 420px;         /* biar tetap terlihat bagus */
    object-position: center;
  }

  /* caption posisi lebih aman */
  .carousel-caption{
    left: 6% !important;
    right: 6% !important;
    bottom: 10% !important;
  }

  /* glass card: padding lebih kecil */
  .glass{
    padding: 16px !important;
    border-radius: 16px;
  }

  /* ukuran teks turun biar ga “meledak” */
  .carousel-caption h1{
    font-size: 1.6rem !important;
    line-height: 1.15;
  }
  .carousel-caption h2{
    font-size: 1.35rem !important;
    line-height: 1.2;
  }
  .carousel-caption .lead{
    font-size: 0.95rem !important;
    margin-bottom: 12px !important;
  }

  /* tombol jadi stack */
  .carousel-caption .btn{
    width: 100%;
  }
}

/* 4) Rapihin spacing card di mobile (layanan, aroma, dll) */
@media (max-width: 576px){
  .section-title{
    font-size: 1.4rem;
  }
  .stat-card{
    padding: 14px;
  }
  .product-card img{
    height: 200px; /* biar konsisten di HP */
    object-fit: cover;
  }
}

/* =========================
   NAVBAR LOGO CENTER MOBILE
   ========================= */
@media (max-width: 576px){
  .navbar .container{
    position: relative;
  }

  .navbar-brand{
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    margin: 0;
  }

  .navbar-toggler{
    margin-left: auto;
  }
}

/* =========================
   TOPBAR CENTER (MOBILE FIX)
   ========================= */
@media (max-width: 576px){
  .topbar .container{
    flex-direction: column !important;
    justify-content: center !important;   /* override justify-content-between */
    align-items: center !important;
    text-align: center;
    gap: 6px !important;
  }

  .topbar .small{
    font-size: 0.78rem;
    line-height: 1.25rem;
  }

  .topbar .d-flex{
    justify-content: center !important;
    align-items: center;
    gap: 14px !important;
    flex-wrap: wrap;
  }
}

/* Mobile: sembunyikan kolom Durasi & Harga, tampilkan versi ringkas di bawah nama */
@media (max-width: 576px){
  .price-table .col-durasi,
  .price-table .col-harga{
    display: none !important;
  }

  .price-table .mobile-meta{
    display: block !important;
    margin-top: 4px;
    font-size: 0.9rem;
    color: rgba(255,255,255,.65);
  }

  .price-table .service-name{
    line-height: 1.2;
  }

  .price-table .btn{
    padding: .25rem .5rem;
    font-size: .85rem;
    white-space: nowrap;
  }
}

/* Desktop: meta mobile disembunyikan */
.mobile-meta{ display:none; }