/* =========================================================
   রেদোয়ান আসিফ রিসান — Design System
   Premium / Minimal / Modern Author + Book Store Theme
   ========================================================= */

:root{
  --color-primary:#111111;
  --color-secondary:#ffffff;
  --color-accent:#8B5CF6;
  --color-accent-light:#EDE9FE;
  --color-success:#16A34A;
  --color-bg:#FAFAFA;
  --color-muted:#6b7280;
  --color-border:#eeeeee;
  --radius-lg:20px;
  --radius-md:14px;
  --radius-sm:10px;
  --shadow-soft:0 10px 40px rgba(17,17,17,0.06);
  --shadow-hover:0 20px 50px rgba(17,17,17,0.10);
  --font-bn:'Hind Siliguri', sans-serif;
  --font-en:'Poppins', sans-serif;
}

*{box-sizing:border-box;}

body{
  font-family:var(--font-bn), var(--font-en);
  background:var(--color-bg);
  color:var(--color-primary);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4,h5,h6{font-weight:700;letter-spacing:-0.01em;}

a{text-decoration:none;color:inherit;transition:color .2s ease;}

/* ---------- Navbar ---------- */
.site-navbar{
  background:rgba(255,255,255,0.85);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--color-border);
  position:sticky; top:0; z-index:1000;
}
.site-navbar .navbar-brand{font-weight:700;font-size:1.25rem;}
.site-navbar .nav-link{font-weight:500;color:var(--color-primary);margin:0 6px;}
.site-navbar .nav-link:hover{color:var(--color-accent);}
.cart-badge{
  background:var(--color-accent); color:#fff; border-radius:50%;
  font-size:.7rem; padding:1px 6px; position:relative; top:-8px; right:6px;
}

/* ---------- Buttons ---------- */
.btn-accent{
  background:var(--color-accent); color:#fff; border:none; border-radius:var(--radius-sm);
  padding:12px 28px; font-weight:600; position:relative; overflow:hidden; transition:transform .2s ease, box-shadow .2s ease;
}
.btn-accent:hover{ transform:translateY(-2px); box-shadow:var(--shadow-hover); color:#fff; }
.btn-outline-dark-soft{
  border:1.5px solid var(--color-primary); border-radius:var(--radius-sm); padding:11px 26px; font-weight:600; color:var(--color-primary);
  transition:all .2s ease;
}
.btn-outline-dark-soft:hover{ background:var(--color-primary); color:#fff; }

/* Button ripple effect */
.ripple{position:relative; overflow:hidden;}
.ripple-effect{
  position:absolute; border-radius:50%; transform:scale(0);
  animation:ripple-anim .6s linear; background:rgba(255,255,255,.5); pointer-events:none;
}
@keyframes ripple-anim{ to{ transform:scale(4); opacity:0; } }

/* ---------- Glass Effect ---------- */
.glass{
  background:rgba(255,255,255,0.55);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,0.4);
  box-shadow:var(--shadow-soft);
}

/* ---------- Hero ---------- */
.hero-section{ padding:80px 0; overflow:hidden; }
.hero-photo{
  border-radius:var(--radius-lg); box-shadow:var(--shadow-soft);
  width:100%; object-fit:cover;
}
.hero-badge{
  display:inline-block; background:var(--color-accent-light); color:var(--color-accent);
  padding:6px 16px; border-radius:999px; font-size:.85rem; font-weight:600; margin-bottom:16px;
}
.hero-title{ font-size:clamp(2rem, 5vw, 3.2rem); margin-bottom:16px; }
.hero-bio{ color:var(--color-muted); font-size:1.05rem; margin-bottom:28px; max-width:520px; }

/* ---------- Section ---------- */
.section{ padding:70px 0; }
.section-title{ font-size:clamp(1.5rem,3vw,2.2rem); margin-bottom:8px; }
.section-subtitle{ color:var(--color-muted); margin-bottom:40px; }

/* ---------- Book Card ---------- */
.book-card{
  background:#fff; border-radius:var(--radius-md); box-shadow:var(--shadow-soft);
  overflow:hidden; transition:transform .25s ease, box-shadow .25s ease; height:100%;
  display:flex; flex-direction:column;
}
.book-card:hover{ transform:translateY(-8px); box-shadow:var(--shadow-hover); }
.book-card .cover-wrap{ position:relative; aspect-ratio:3/4; overflow:hidden; background:#f2f2f2; }
.book-card .cover-wrap img{ width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.book-card:hover .cover-wrap img{ transform:scale(1.05); }
.book-card .discount-badge{
  position:absolute; top:10px; left:10px; background:var(--color-accent); color:#fff;
  font-size:.75rem; font-weight:700; padding:4px 10px; border-radius:999px;
}
.book-card .stock-badge{
  position:absolute; top:10px; right:10px; background:rgba(17,17,17,0.75); color:#fff;
  font-size:.7rem; padding:3px 9px; border-radius:999px;
}
.book-card .body{ padding:16px; display:flex; flex-direction:column; flex:1; }
.book-card .category{ font-size:.75rem; color:var(--color-accent); font-weight:600; text-transform:uppercase; letter-spacing:.03em;}
.book-card .title{ font-size:1.02rem; font-weight:700; margin:4px 0 6px; }
.book-card .desc{ font-size:.85rem; color:var(--color-muted); flex:1; }
.book-card .price-row{ display:flex; align-items:center; justify-content:space-between; margin-top:12px; }
.book-card .price{ font-weight:700; }
.book-card .price .old{ color:#9ca3af; text-decoration:line-through; font-weight:400; font-size:.85rem; margin-left:6px; }

/* ---------- Reviews ---------- */
.review-card{
  background:#fff; border-radius:var(--radius-md); padding:24px; box-shadow:var(--shadow-soft); height:100%;
}
.review-card .stars{ color:#f59e0b; }

/* ---------- Stats ---------- */
.stat-box{ text-align:center; padding:20px; }
.stat-box .num{ font-size:2.2rem; font-weight:700; color:var(--color-accent); }
.stat-box .label{ color:var(--color-muted); }

/* ---------- Newsletter ---------- */
.newsletter-box{
  background:var(--color-primary); color:#fff; border-radius:var(--radius-lg); padding:50px;
}
.newsletter-box input{ border-radius:var(--radius-sm); border:none; padding:12px 16px; }

/* ---------- Footer ---------- */
footer{ background:#111111; color:#d1d5db; padding:60px 0 20px; }
footer a{ color:#d1d5db; }
footer a:hover{ color:var(--color-accent); }
footer .footer-brand{ color:#fff; font-weight:700; font-size:1.2rem; }

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

/* ---------- Loading Skeleton ---------- */
.skeleton{
  background:linear-gradient(90deg, #eee 25%, #f5f5f5 37%, #eee 63%);
  background-size:400% 100%; animation:skeleton-loading 1.4s ease infinite; border-radius:var(--radius-sm);
}
@keyframes skeleton-loading{ 0%{background-position:100% 50%;} 100%{background-position:0 50%;} }

/* ---------- Utilities ---------- */
.text-accent{ color:var(--color-accent) !important; }
.bg-soft{ background:var(--color-accent-light); }
.shadow-soft{ box-shadow:var(--shadow-soft); }
.rounded-xl{ border-radius:var(--radius-lg); }

@media (max-width:768px){
  .hero-section{ padding:48px 0; text-align:center; }
  .hero-bio{ margin-left:auto; margin-right:auto; }
  .section{ padding:48px 0; }
}
