@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+Bengali:wght@400;500;600;700;800&display=swap');

:root{
  --primary:#155eef;
  --dark:#0b1220;
  --text:#273142;
  --muted:#667085;
  --light:#f5f8ff;
  --white:#fff;
  --border:#e4e7ec;
  --success:#16a34a;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:'Noto Sans Bengali',Arial,sans-serif;color:var(--text);background:#fff;line-height:1.7}
a{text-decoration:none;color:inherit}
.site-header{background:#fff;position:sticky;top:0;z-index:50;box-shadow:0 2px 14px rgba(16,24,40,.08)}
.top-strip{background:var(--dark);color:#fff;text-align:center;padding:6px 15px;font-size:13px}
.festival-greeting-bar{overflow:hidden;white-space:nowrap;padding:8px 0;font-size:14.5px;font-weight:700;box-shadow:inset 0 -1px 0 rgba(255,255,255,0.15),0 2px 6px rgba(0,0,0,0.12);letter-spacing:.2px;position:relative;text-shadow:0 1px 2px rgba(0,0,0,0.3);display:flex}
.festival-greeting-bar:hover .festival-moving-track{animation-play-state:paused}
.festival-moving-track{display:inline-flex;white-space:nowrap;animation:festivalMarquee 25s linear infinite;gap:60px;padding-left:100vw}
.festival-greeting-item{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}
.festival-icon{font-size:18px;filter:drop-shadow(0 1px 2px rgba(0,0,0,0.25))}
.festival-text{line-height:1.2}
@keyframes festivalMarquee{0%{transform:translateX(0)}100%{transform:translateX(-100%)}}
.nav-wrap{max-width:1180px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:12px 20px}
.brand{display:flex;align-items:center;gap:10px}
.brand-logo-img{max-height:46px;max-width:160px;object-fit:contain;border-radius:6px;transition:transform .2s ease}
.brand:hover .brand-logo-img{transform:scale(1.02)}
.brand-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:12px;background:var(--primary);color:#fff;font-weight:800}
.brand strong{display:block;font-size:18px;letter-spacing:.5px}
.brand small{display:block;color:var(--muted);font-size:11px}
.nav{display:flex;align-items:center;gap:6px}
.nav a{padding:9px 12px;font-size:14px;font-weight:600}
.nav a:hover{color:var(--primary)}
.nav-cta{background:var(--primary);color:#fff!important;border-radius:8px}
.lang-switch{display:inline-flex;align-items:center;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:20px;padding:2px;margin-left:8px}
.lang-btn{padding:4px 10px!important;font-size:12.5px!important;font-weight:700!important;border-radius:16px;color:#475467!important;text-decoration:none;transition:all .2s ease;line-height:1.2}
.lang-btn:hover{color:var(--primary)!important}
.lang-btn.active{background:var(--primary)!important;color:#fff!important;box-shadow:0 2px 6px rgba(21,94,239,.25)}
.menu-toggle{display:none;border:0;background:none;font-size:24px}
.hero{min-height:570px;display:flex;align-items:center;background:linear-gradient(120deg,#0b1220 0%,#123b88 60%,#155eef 100%);color:#fff;padding:70px 20px}
.hero-content{max-width:1180px;width:100%;margin:auto}
.eyebrow{display:inline-block;font-size:13px;font-weight:700;letter-spacing:.5px;color:#b9d0ff;margin-bottom:8px}
.hero h1{max-width:780px;font-size:clamp(34px,5vw,60px);line-height:1.15;margin:0 0 20px}
.hero p{max-width:720px;font-size:18px;color:#dbe6ff}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:25px}
.btn{display:inline-block;border:0;border-radius:8px;padding:11px 20px;font-weight:700;cursor:pointer;font-family:inherit}
.btn-primary{background:var(--primary);color:#fff}
.hero .btn-primary{background:#fff;color:#1244a2}
.btn-outline{border:1px solid rgba(255,255,255,.6);color:#fff}
.btn-light{background:#fff;color:var(--primary)}
.btn-whatsapp{background:var(--success);color:#fff}
.moving-bar{overflow:hidden;background:#fff7d6;border-top:1px solid #f4df8c;border-bottom:1px solid #f4df8c;white-space:nowrap}
.moving-track{display:inline-block;padding:9px 0;animation:moveText 20s linear infinite}
.moving-track span{padding-left:100vw;font-weight:600;color:#6b4f00}
@keyframes moveText{from{transform:translateX(0)}to{transform:translateX(-100%)}}
.section{max-width:1180px;margin:auto;padding:80px 20px}
.section-light{max-width:none;background:var(--light)}
.section-light>*{max-width:1180px;margin-left:auto;margin-right:auto}
.section-heading{text-align:center;margin-bottom:40px}
.section-heading span,.page-hero .eyebrow{color:var(--primary);font-weight:800}
.section-heading h2{font-size:34px;margin:5px 0}
.section-heading p{color:var(--muted)}
.card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.info-card{border:1px solid var(--border);border-radius:14px;padding:24px;background:#fff;transition:.2s}
.info-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px rgba(16,24,40,.08);border-color:#b9d0ff}
.category-card-link{display:flex;flex-direction:column;justify-content:space-between;text-decoration:none;cursor:pointer}
.category-card-action{display:inline-block;margin-top:12px;font-size:13px;font-weight:700;color:var(--primary);transition:transform .2s ease}
.category-card-link:hover .category-card-action{transform:translateX(4px)}
.card-icon{font-size:32px;margin-bottom:8px}
.info-card h3{margin:5px 0;font-size:18px}
.info-card p{color:var(--muted);font-size:14px}
.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.service-item{background:#fff;border:1px solid var(--border);border-radius:10px;padding:14px 18px;font-weight:600}
.service-item span{color:var(--success);margin-right:10px}
.cta{background:var(--primary);color:#fff;padding:55px max(20px,calc((100% - 1180px)/2));display:flex;align-items:center;justify-content:space-between;gap:30px}
.cta h2{margin:0 0 5px;font-size:30px}
.cta p{margin:0;color:#dbe6ff}
.page-hero{background:var(--light);padding:75px 20px}
.page-hero>div{max-width:1180px;margin:auto}
.page-hero h1{font-size:44px;margin:5px 0}
.page-hero p{color:var(--muted)}
.product-list{display:grid;gap:12px}
.product-row{display:grid;grid-template-columns:70px 1fr auto;align-items:center;gap:18px;border:1px solid var(--border);border-radius:12px;padding:14px 18px}
.product-placeholder{width:60px;height:60px;border-radius:10px;background:#eaf0ff;color:var(--primary);display:grid;place-items:center;font-weight:800}
.product-row h3{margin:0}
.product-row p{margin:0;color:var(--muted);font-size:14px}
.small-link{color:var(--primary);font-weight:700}
.two-column{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:start}
.check-list{padding:0;list-style:none}
.check-list li{padding:8px 0;border-bottom:1px solid var(--border)}
.check-list li:before{content:'✓';color:var(--success);font-weight:800;margin-right:10px}
.contact-box,.contact-form,.stats-box{border:1px solid var(--border);border-radius:14px;padding:28px;background:#fff}
.stats-box{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.stats-box div{background:var(--light);padding:18px;border-radius:10px}
.stats-box strong{display:block;font-size:25px;color:var(--primary)}
.stats-box span{font-size:13px;color:var(--muted)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}
.contact-form{display:grid;gap:8px}
.contact-form input,.contact-form textarea{width:100%;padding:12px;border:1px solid #d0d5dd;border-radius:8px;font:inherit}
.form-note{font-size:12px;color:var(--muted)}
.footer{background:#0b1220;color:#d0d5dd;padding:55px 20px 0}
.footer-grid{max-width:1180px;margin:auto;display:grid;grid-template-columns:2fr 1fr 1fr;gap:50px}
.footer h3{color:#fff;margin-top:0}
.footer a{display:block;margin:5px 0;color:#d0d5dd}
.footer-brand{color:#fff}
.copyright{max-width:1180px;margin:40px auto 0;padding:18px 0;border-top:1px solid rgba(255,255,255,.1);text-align:center;font-size:13px}
@media(max-width:900px){
  .card-grid{grid-template-columns:repeat(2,1fr)}
  .nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;padding:10px 20px;box-shadow:0 10px 20px rgba(0,0,0,.08);flex-direction:column;align-items:stretch}
  .nav.open{display:flex}
  .menu-toggle{display:block}
  .two-column,.contact-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .card-grid,.service-grid,.footer-grid{grid-template-columns:1fr}
  .hero{min-height:500px}
  .hero h1{font-size:36px}
  .hero p{font-size:16px}
  .cta{display:block}
  .cta .btn{margin-top:20px}
  .product-row{grid-template-columns:55px 1fr}
  .product-row .small-link{grid-column:2}
  .page-hero h1{font-size:34px}
}

/* ========================================================
   Dynamic BillBook Product Catalog Styles
   ======================================================== */
.catalog-controls {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 30px;
}
.catalog-search-wrap {
  position: relative;
  max-width: 600px;
  width: 100%;
}
.catalog-search-input {
  width: 100%;
  padding: 14px 18px 14px 44px;
  font-size: 15px;
  border: 1.5px solid var(--border);
  border-radius: 12px;
  outline: none;
  transition: all .2s ease;
  font-family: inherit;
}
.catalog-search-input:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 4px rgba(21,94,239,0.12);
}
.search-icon-svg {
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--muted);
  pointer-events: none;
  font-size: 16px;
}
.category-filter-bar {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}
.cat-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border-radius: 20px;
  background: var(--light);
  border: 1px solid var(--border);
  font-size: 13.5px;
  font-weight: 600;
  color: var(--text);
  cursor: pointer;
  transition: all .15s ease;
}
.cat-chip:hover {
  background: #e0eaff;
  border-color: #b9d0ff;
  color: var(--primary);
}
.cat-chip.active {
  background: var(--primary);
  color: #fff;
  border-color: var(--primary);
  box-shadow: 0 4px 10px rgba(21,94,239,0.25);
}
.catalog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 22px;
}
.product-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 18px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  transition: all .25s ease;
}
.product-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 30px rgba(16,24,40,.09);
  border-color: #c7d7fe;
}
.product-img-box {
  width: 100%;
  height: 180px;
  background: #f8faff;
  border-radius: 12px;
  display: grid;
  place-items: center;
  margin-bottom: 14px;
  overflow: hidden;
  position: relative;
  border: 1px solid #edf2f7;
}
.product-img-box img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 8px;
}
.product-img-placeholder {
  font-size: 42px;
  color: var(--primary);
  opacity: 0.85;
}
.card-badge {
  position: absolute;
  top: 10px;
  left: 10px;
  background: #ff5722;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 6px;
  text-transform: uppercase;
  letter-spacing: .4px;
  z-index: 2;
}
.stock-pill {
  position: absolute;
  top: 10px;
  right: 10px;
  font-size: 11.5px;
  font-weight: 700;
  padding: 3px 9px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  z-index: 2;
}
.stock-pill.in-stock {
  background: #ecfdf3;
  color: #027a48;
  border: 1px solid #a6f4c5;
}
.stock-pill.on-order {
  background: #eff8ff;
  color: #175cd3;
  border: 1px solid #b2ddff;
}
.product-card-cat {
  font-size: 11.5px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--primary);
  letter-spacing: .5px;
  margin-bottom: 4px;
}
.product-card-title {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.35;
  margin: 0 0 6px;
  color: var(--dark);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.product-card-sku {
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 8px;
}
.product-card-desc {
  font-size: 13px;
  color: #475467;
  line-height: 1.5;
  margin-bottom: 14px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.product-price-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}
.product-price-current {
  font-size: 20px;
  font-weight: 800;
  color: var(--dark);
}
.product-price-mrp {
  font-size: 13.5px;
  color: var(--muted);
  text-decoration: line-through;
}
.product-discount-tag {
  font-size: 11.5px;
  font-weight: 700;
  color: #b42318;
  background: #fef3f2;
  padding: 2px 6px;
  border-radius: 4px;
}
.product-card-actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  margin-top: auto;
}
.btn-whatsapp-order {
  background: #25d366;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: 8px;
  font-weight: 700;
  font-size: 13.5px;
  transition: background .2s ease;
  text-align: center;
}
.btn-whatsapp-order:hover {
  background: #1ebc57;
  color: #fff;
}
.btn-view-details {
  background: var(--light);
  color: var(--primary);
  border: 1px solid var(--border);
  padding: 8px 12px;
  border-radius: 8px;
  font-weight: 600;
  font-size: 13px;
  text-align: center;
  cursor: pointer;
}
.btn-view-details:hover {
  background: #eaf0ff;
  border-color: #b9d0ff;
}
.sync-meta-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 10px;
  padding: 10px 16px;
  font-size: 13px;
  color: #166534;
  margin-bottom: 20px;
}
.empty-catalog-box {
  text-align: center;
  padding: 60px 20px;
  background: var(--light);
  border-radius: 16px;
  border: 1px dashed var(--border);
}
.empty-catalog-box h3 {
  margin: 10px 0 6px;
  color: var(--dark);
}
.empty-catalog-box p {
  color: var(--muted);
  margin: 0;
}