/* ============================================
   SOLOZORA E-COMMERCE — CUSTOM STYLESHEET
   Brand gradient: teal -> blue -> violet -> purple
   ============================================ */

:root{
  --brand-teal:#14c4c4;
  --brand-blue:#2f8fe0;
  --brand-indigo:#5b63e0;
  --brand-violet:#8a3fe0;
  --brand-purple:#a52adb;

  --bg:#ffffff;
  --bg-soft:#f5f7fb;
  --bg-card:#ffffff;
  --text:#111827;
  --text-soft:#5b6472;
  --border:#e7eaf0;
  --header-bg:rgba(255,255,255,.85);
  --shadow: 0 10px 30px -12px rgba(30,40,80,.15);
}

.dark{
  --bg:#0b0e17;
  --bg-soft:#111524;
  --bg-card:#151a2b;
  --text:#f1f3f9;
  --text-soft:#9aa2b8;
  --border:#232a40;
  --header-bg:rgba(11,14,23,.85);
  --shadow: 0 10px 30px -12px rgba(0,0,0,.5);
}

*{scroll-behavior:smooth;}

body{
  background:var(--bg);
  color:var(--text);
  transition:background .25s ease, color .25s ease;
}

.brand-gradient-text{
  background:linear-gradient(90deg,var(--brand-teal),var(--brand-blue),var(--brand-indigo),var(--brand-violet),var(--brand-purple));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

.brand-gradient-bg{
  background:linear-gradient(90deg,var(--brand-teal),var(--brand-blue),var(--brand-indigo),var(--brand-violet),var(--brand-purple));
}

.brand-gradient-border{
  border-image:linear-gradient(90deg,var(--brand-teal),var(--brand-purple)) 1;
}

.bg-surface{background:var(--bg);}
.bg-surface-soft{background:var(--bg-soft);}
.bg-card{background:var(--bg-card);}
.text-main{color:var(--text);}
.text-soft{color:var(--text-soft);}
.border-app{border-color:var(--border);}

/* ---------- Header ---------- */
#site-header{
  background:var(--header-bg);
  backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--border);
}

/* ---------- Mega menu ---------- */
/* IMPORTANT: the positioned ancestor must be the full-width nav bar,
   not the small trigger button — otherwise the panel shrinks to the
   button's width and all columns overlap. */
#mega-nav{ position:relative; }
.mega-panel{
  position:absolute;
  top:100%;
  left:0;
  width:100%;
  background:var(--bg-card);
  border-bottom:1px solid var(--border);
  box-shadow:var(--shadow);
  opacity:0;
  visibility:hidden;
  transform:translateY(-8px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s;
  z-index:60;
}
.mega-group:hover .mega-panel,
.mega-group:focus-within .mega-panel{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.mega-link{
  transition:color .15s ease, transform .15s ease;
}
.mega-link:hover{
  color:var(--brand-blue);
  transform:translateX(3px);
}

/* ---------- Hero slider ---------- */
.hero-slide{
  position:absolute;
  inset:0;
  opacity:0;
  transition:opacity .8s ease;
  pointer-events:none;
}
.hero-slide.active{
  opacity:1;
  pointer-events:auto;
}
.hero-dot{
  width:8px;height:8px;border-radius:9999px;
  background:rgba(255,255,255,.5);
  transition:all .25s ease;
}
.hero-dot.active{
  width:26px;
  background:#fff;
}

/* ---------- Carousels ---------- */
.carousel-track{
  display:flex;
  gap:1rem;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  -ms-overflow-style:none;
  padding-bottom:4px;
}
.carousel-track::-webkit-scrollbar{display:none;}
.carousel-track > *{scroll-snap-align:start;flex:0 0 auto;}

.carousel-btn{
  width:40px;height:40px;
  border-radius:9999px;
  display:flex;align-items:center;justify-content:center;
  background:var(--bg-card);
  border:1px solid var(--border);
  box-shadow:var(--shadow);
  transition:transform .15s ease, background .15s ease;
}
.carousel-btn:hover{
  transform:scale(1.07);
  background:var(--brand-blue);
  color:#fff;
  border-color:transparent;
}

/* ---------- Product card ---------- */
.product-card{
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:1rem;
  overflow:hidden;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  position:relative;
}
.product-card:hover{
  transform:translateY(-5px);
  box-shadow:var(--shadow);
  border-color:transparent;
}
.product-img-wrap{
  position:relative;
  aspect-ratio:1/1;
  overflow:hidden;
  background:var(--bg-soft);
}
.product-img-wrap img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .5s ease;
}
.product-card:hover .product-img-wrap img{
  transform:scale(1.08);
}
.badge-discount{
  background:linear-gradient(90deg,#ff5f6d,#a52adb);
  color:#fff;
  font-weight:700;
}
.price-old{
  text-decoration:line-through;
  color:var(--text-soft);
}
.price-new{
  color:var(--brand-violet);
  font-weight:800;
}
.icon-btn{
  width:36px;height:36px;
  border-radius:9999px;
  display:flex;align-items:center;justify-content:center;
  background:var(--bg-card);
  border:1px solid var(--border);
  transition:all .15s ease;
}
.icon-btn:hover{
  background:var(--brand-purple);
  color:#fff;
  border-color:transparent;
}
.icon-btn.active{
  background:var(--brand-purple);
  color:#fff;
  border-color:transparent;
}
.quick-actions{
  position:absolute;
  right:.6rem; top:.6rem;
  display:flex; flex-direction:column; gap:.5rem;
  opacity:0; transform:translateX(8px);
  transition:opacity .2s ease, transform .2s ease;
}
.product-card:hover .quick-actions{
  opacity:1; transform:translateX(0);
}
.add-cart-btn{
  background:var(--text);
  color:var(--bg);
  transition:background .2s ease, color .2s ease;
}
.add-cart-btn:hover{
  background:var(--brand-blue);
  color:#fff;
}

/* ---------- Category tiles ---------- */
.cat-tile{
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:1.25rem;
  transition:transform .2s ease, box-shadow .2s ease;
}
.cat-tile:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow);
}

/* ---------- Offer / banner cards ---------- */
.offer-card{
  border-radius:1.5rem;
  position:relative;
  overflow:hidden;
  color:#fff;
}
.offer-card::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(135deg, rgba(0,0,0,.15), rgba(0,0,0,.45));
}
.offer-card > *{position:relative; z-index:2;}

/* ---------- Countdown ---------- */
.count-box{
  background:rgba(255,255,255,.15);
  backdrop-filter:blur(6px);
  border-radius:.6rem;
  min-width:52px;
}

/* ---------- Section eyebrow ---------- */
.eyebrow{
  letter-spacing:.18em;
  font-weight:700;
  font-size:.72rem;
}

/* ---------- Toggle switch (theme) ---------- */
.theme-toggle{
  width:52px;height:28px;border-radius:9999px;
  background:var(--bg-soft);
  border:1px solid var(--border);
  position:relative;
  cursor:pointer;
}
.theme-toggle .knob{
  position:absolute; top:2px; left:2px;
  width:22px;height:22px;border-radius:9999px;
  background:linear-gradient(90deg,var(--brand-teal),var(--brand-purple));
  transition:transform .25s ease;
}
.dark .theme-toggle .knob{
  transform:translateX(24px);
}

/* ---------- Search overlay ---------- */
#search-overlay{
  backdrop-filter:blur(6px);
}

/* ---------- Toast ---------- */
#toast{
  transform:translateY(120%);
  transition:transform .3s ease;
}
#toast.show{
  transform:translateY(0);
}

/* ---------- Marquee (trust strip) ---------- */
.marquee-track{
  display:flex;
  width:max-content;
  animation:marquee 22s linear infinite;
  gap:3rem;
}
@keyframes marquee{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}

/* ---------- Reveal on scroll ---------- */
.reveal{
  opacity:0; transform:translateY(24px);
  transition:opacity .6s ease, transform .6s ease;
}
.reveal.in{
  opacity:1; transform:translateY(0);
}

/* Scrollbar (light touch) */
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:9999px;}

/* ---------- Product page tabs ---------- */
.tab-btn{
  color: var(--text-soft);
  border-bottom: 2px solid transparent;
  transition: color .15s ease, border-color .15s ease;
}
.tab-btn.tab-active{
  color: var(--text);
  border-bottom-color: var(--brand-blue);
  font-weight: 600;
}

/* Mobile menu */
#mobile-menu{
  transform:translateX(-100%);
  transition:transform .3s ease;
}
#mobile-menu.open{transform:translateX(0);}
