/* style.css â€“ Final Enhanced Version With Animation, Glass, Hover Effects */

/* -------------------------
   RESET
------------------------- */
* { box-sizing: border-box; margin: 0; padding: 0; }
html,body{ height: 100%; font-family: Inter, 'Segoe UI', Roboto, system-ui, -apple-system, Arial; }

/* -------------------------
   THEME VARIABLES
------------------------- */
:root{
  --bg: #0f1720;
  --panel: #0b1220;
  --muted: #9aa4b2;
  --accent: #19a3ff;
  --card: #0c1218;
  --glass: rgba(255,255,255,0.04);
  --glass-2: rgba(255,255,255,0.02);
  --glass-3: rgba(255,255,255,0.01);
  --text: #e6eef6;
  --soft: rgba(255,255,255,0.06);
  --radius: 12px;

  /* Animation Controls */
  --lift: translateY(-6px) scale(1.02);
  --transition: 260ms cubic-bezier(.25,.8,.25,1);
}

/* -------------------------
   GLOBAL BACKGROUND
------------------------- */
body.dark-mode{
  background: radial-gradient(1200px 400px at 10% 10%, rgba(25,160,255,0.04), transparent), var(--bg);
  color: var(--text);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
.container{ max-width: 1180px; margin: 0 auto; padding: 28px; }

body.light-mode{
  background: radial-gradient(1200px 400px at 10% 10%, rgba(0, 0, 0, 0.04), transparent), var(--bg);
  color: var(--text);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
.container{ max-width: 1180px; margin: 0 auto; padding: 28px; }

/* -------------------------
   FADE-IN ANIMATION
------------------------- */
.fade-in{
  opacity: 0;
  transform: translateY(20px);
  animation: fadeIn 0.7s ease forwards;
}
@keyframes fadeIn{
  to { opacity:1; transform:none; }
}

/* -------------------------
   HEADER
------------------------- */
.site-header{
  background: linear-gradient(180deg, rgba(255,255,255,0.02), transparent);
  border-bottom: 1px solid var(--glass-2);
  position: sticky;
  top: 0;
  z-index: 40;
  backdrop-filter: blur(10px);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}

.brand-logo{
  height: 80px;
  width: auto;
  display: block;
  transition: var(--transition);
}
.brand-logo:hover{
  transform: var(--lift);
  filter: drop-shadow(0 0 6px rgba(25,163,255,0.4));
}

.brand{
  display:flex;
  align-items:center;
  text-decoration:none;
}

/* -------------------------
   ICON BUTTONS
------------------------- */
.icon-btn{
  background:transparent;
  border:0;
  color:var(--muted);
  font-size:18px;
  padding:8px;
  border-radius:8px;
  cursor:pointer;
  transition: var(--transition);
}
.icon-btn:hover{
  color:var(--text);
  background:var(--glass);
  transform: var(--lift);
}

/* -------------------------
   PRODUCT PAGE LAYOUT
------------------------- */
.product-page{ display:grid; gap:28px; padding-bottom:40px; }
.product-hero{
  display:grid;
  grid-template-columns: 1fr 420px;
  gap:28px;
  align-items:start;
}
@media (max-width: 980px){
  .product-hero{ grid-template-columns:1fr; }
  .header-inner{ padding:6px 0; }
}

/* -------------------------
   GALLERY
------------------------- */
.gallery{
  background:linear-gradient(180deg, rgba(255,255,255,0.01), transparent);
  border-radius:var(--radius);
  padding:18px;
  display:flex;
  flex-direction:column;
  gap:12px;
  align-items:center;
  position:relative;
  transition: var(--transition);
}
.gallery:hover{
  transform: var(--lift);
  background: var(--soft);
  box-shadow:0 10px 28px rgba(0,0,0,0.35);
}
.gallery:hover::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(120deg, transparent 15%, rgba(255,255,255,0.06), transparent 85%);
  border-radius: inherit;
  pointer-events:none;
  animation: shimmer 1.4s linear;
}
@keyframes shimmer{
  0%{ transform: translateX(-130%); }
  100%{ transform: translateX(130%); }
}

.hero-image img{
  width:100%;
  height:auto;
  display:block;
  border-radius:10px;
  box-shadow:0 8px 30px rgba(2,6,23,0.6);
  transition:400ms cubic-bezier(.2,.9,.3,1);
}
.hero-image img:hover{
  transform: var(--lift);
}

.thumbs{ display:flex; gap:10px; margin-top:8px; }
.thumb{
  background:var(--glass-3);
  padding:6px;
  border-radius:8px;
  cursor:pointer;
  transition: var(--transition);
}
.thumb:hover{
  transform: translateY(-4px);
  box-shadow:0 6px 20px rgba(0,0,0,0.45);
}
.thumb img{
  width:64px;
  height:48px;
  object-fit:cover;
  border-radius:6px;
}
.thumb.active{
  box-shadow:0 6px 18px rgba(0,0,0,0.6);
  transform:translateY(-4px);
}

/* -------------------------
   PRODUCT INFO
------------------------- */
.product-info{
  background: linear-gradient(180deg, rgba(255,255,255,0.01), transparent);
  padding:22px;
  border-radius:12px;
  border:1px solid var(--glass-2);
  position:relative;
  transition: var(--transition);
}
.product-info:hover{
  transform: var(--lift);
  background:var(--soft);
  box-shadow:0 10px 28px rgba(0,0,0,0.35);
}
.product-info:hover::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(120deg, transparent 15%, rgba(255,255,255,0.05), transparent 85%);
  pointer-events:none;
  border-radius: inherit;
  animation: shimmer 1.4s linear;
}

.brand-name{ color:var(--muted); font-size:13px; margin-bottom:6px; }
h1{ font-size:32px; margin-bottom:6px; line-height:1.05; color:var(--text); }
.tagline{ color:var(--muted); margin-bottom:12px; }

/* Rating with Pulse */
.rating{ display:flex; gap:12px; align-items:center; margin-bottom:14px; color:var(--muted); }
.stars{
  color:var(--accent);
  letter-spacing:2px;
  font-weight:700;
  animation:pulse 2s infinite;
}
@keyframes pulse{
  0%,100%{opacity:.9;}
  50%{opacity:1;}
}

/* -------------------------
   PRICE & OPTIONS
------------------------- */
.price{ font-size:28px; margin:6px 0 12px; color:var(--text); }
.options{ margin-bottom:14px; }
.option-label{ display:block; color:var(--muted); margin-bottom:6px; }
.choices{ display:flex; gap:8px; flex-wrap:wrap; }

.chip{
  background:var(--glass);
  border:1px solid var(--glass-2);
  padding:8px 12px;
  border-radius:999px;
  cursor:pointer;
  color:var(--text);
  transition: var(--transition);
}
.chip:hover{
  transform: translateY(-4px);
  background:var(--soft);
}
.chip[aria-pressed="true"]{
  background:linear-gradient(90deg,var(--accent), #7be0ff);
  color:#04121b;
  box-shadow:0 8px 30px rgba(25,163,255,0.12);
  transform:translateY(-2px);
}

/* -------------------------
   ACTION BUTTONS
------------------------- */
.product-actions {
    display: flex;
    gap: 14px;
    margin-top: 28px;
    margin-bottom: 28px;
}

/* Base Button */
.btn {
    padding: 14px 30px;
    border-radius: 10px;
    font-size: 16px;
    text-decoration: none;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: 
        background 0.25s ease,
        border-color 0.25s ease,
        transform 0.25s ease;
    backdrop-filter: blur(6px);
}

/* Login Button */
.btn-login {
    background: var(--primary, #29D6BD);
    color: #fff;
    box-shadow: 0 4px 14px rgba(0, 102, 255, 0.25);
}

.btn-login:hover {
    transform: translateY(-3px);
    background: var(--primary-hover, #0052cc);
    box-shadow: 0 6px 18px rgba(0, 102, 255, 0.35);
}

/* Daftar Button (Ghost-like but solid) */
.btn-daftar {
    background: rgba(255, 255, 255, 0.15);
    border: 1px solid rgba(255, 255, 255, 0.45);
    color: var(--text, #222);
}

.btn-daftar:hover {
    background: rgba(255, 255, 255, 0.3);
    transform: translateY(-3px);
    border-color: rgba(255, 255, 255, 0.6);
}

/* Ghost Button (if used elsewhere) */
.btn.ghost {
    background: transparent;
    border: 1px solid var(--glass-2);
    color: var(--muted);
}

.btn.ghost:hover {
    background: var(--glass);
    transform: translateY(-4px);
    color: var(--text);
}

/* -------------------------
   FEATURES & FAQ
------------------------- */
.features ul{
  list-style:none;
  display:grid;
  gap:8px;
  margin-top:10px;
}
.features li{
  display:flex;
  gap:10px;
  align-items:center;
  color:var(--muted);
  font-size:15px;
}
.features i{ width:26px; text-align:center; color:var(--accent); }

.faq .accordion{
  margin-top:10px;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.acc-btn{
  text-align:left;
  padding:12px;
  border-radius:10px;
  background:var(--glass-3);
  border:1px solid var(--glass-2);
  color:var(--text);
  cursor:pointer;
  transition: var(--transition);
}
.acc-btn:hover{
  transform:translateY(-4px);
  background:var(--soft);
}
.acc-btn[aria-expanded="true"]{
  background:linear-gradient(90deg,#0b1830, #081523);
}
.acc-panel{
  padding:12px;
  background:var(--card);
  border-radius:8px;
  border:1px solid var(--glass);
  margin-top:6px;
}

/* -------------------------
   REVIEWS & RELATED
------------------------- */
.reviews-related{
  display:grid;
  grid-template-columns:1fr 360px;
  gap:20px;
  margin-top:20px;
}
@media (max-width:1100px){
  .reviews-related{ grid-template-columns:1fr; }
}
.rating,
.price,
.options {
    display: none;
}
.review-cards{ display:flex; flex-direction:column; gap:12px; }
.review{
  display:flex;
  gap:12px;
  padding:12px;
  background:var(--glass-2);
  border-radius:10px;
  border:1px solid var(--glass-3);
  transition: var(--transition);
}
.review:hover{
  transform: var(--lift);
  background:var(--soft);
  box-shadow:0 8px 22px rgba(0,0,0,0.35);
}
.avatar{
  width:48px;
  height:48px;
  border-radius:50%;
  background:linear-gradient(180deg,#08202a,#06202a);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--accent);
  font-size:20px;
  transition: var(--transition);
}
.review:hover .avatar{
  transform: var(--lift);
}

.related-list{
  display:flex;
  gap:12px;
  align-items:center;
  flex-wrap:wrap;
}
.related-list figure{
  width:110px;
  text-align:center;
  color:var(--muted);
  cursor:pointer;
  transition: var(--transition);
}
.related-list figure:hover{
  transform: var(--lift);
}
.related-list img{
  width:100%;
  height:70px;
  object-fit:cover;
  border-radius:8px;
  transition: var(--transition);
}
.related-list figure:hover img{
  transform: var(--lift);
}

/* -------------------------
   FOOTER
------------------------- */
.site-footer{
  margin-top:40px;
  padding:24px 0;
  border-top:1px solid var(--glass-3);
  background:linear-gradient(180deg, rgba(255,255,255,0.01), transparent);
}
.footer-inner{
  display:flex;
  gap:20px;
  align-items:center;
  justify-content:space-between;
}
.footer-brand p{
  color:var(--muted);
  font-size:14px;
  margin-top:6px;
}
.social a{
  color:var(--muted);
  margin-left:8px;
  font-size:18px;
  transition: var(--transition);
}
.social a:hover{
  color:var(--accent);
  transform: var(--lift);
}
.footer-bottom{
  display:flex;
  gap:12px;
  justify-content:space-between;
  margin-top:18px;
  color:var(--muted);
  align-items:center;
  font-size:13px;
}

/* -------------------------
   RESPONSIVE
------------------------- */
@media (max-width:640px){
  .container{ padding:16px; }
  h1{ font-size:24px; }
  .product-hero{ gap:12px; }
  .footer-inner{
    flex-direction:column;
    gap:12px;
    align-items:flex-start;
  }
 .rating,
.price,
.options {
    display: none;
}
}