@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Inter:wght@400;500;600;700&display=swap');

:root{
  --color-primary:#2563EB;
  --color-secondary:#1D4ED8;
  --color-dark:#111827;
  --color-white:#FFFFFF;
  --color-bg:#FAFAF9;
  --color-surface:#FFFFFF;
  --color-border:#E7E5E4;
  --color-muted:#6B6660;
  --color-old-price:#A8A29E;
  --font-display:'Fraunces', serif;
  --font-body:'Inter', -apple-system, sans-serif;
  --radius:10px;
  --max-width:1240px;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:var(--font-body);
  color:var(--color-dark);
  background:var(--color-bg);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}
input{font-family:inherit;}

[hidden]{display:none !important;}

/* ---------- Loading / Error ---------- */
.loading-screen{
  position:fixed;inset:0;background:var(--color-dark);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;z-index:999;
}
.loading-mark{font-family:var(--font-display);font-size:2rem;letter-spacing:0.04em;color:#fff;}
.loading-bar{width:160px;height:2px;background:rgba(255,255,255,.2);overflow:hidden;}
.loading-bar span{display:block;width:40%;height:100%;background:var(--color-primary);animation:loadmove 1.1s ease-in-out infinite;}
@keyframes loadmove{0%{transform:translateX(-100%);}100%{transform:translateX(350%);}}

.error-screen{
  min-height:60vh;display:flex;align-items:center;justify-content:center;
  font-family:var(--font-body);color:var(--color-muted);font-size:1.05rem;padding:2rem;text-align:center;
}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:var(--color-surface);border-bottom:1px solid var(--color-border);}
.header-inner{
  max-width:var(--max-width);margin:0 auto;padding:14px 24px;
  display:flex;align-items:center;gap:28px;
}
.brand{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.brand-logo{height:34px;width:auto;}
.brand-name{font-family:var(--font-display);font-size:1.5rem;font-weight:600;letter-spacing:0.01em;color:var(--color-dark);}

.main-nav{display:flex;gap:26px;flex:1;}
.main-nav a{font-size:0.95rem;font-weight:500;color:var(--color-dark);opacity:.75;transition:opacity .15s;white-space:nowrap;}
.main-nav a:hover, .main-nav a.active{opacity:1;color:var(--color-primary);}

.header-actions{display:flex;align-items:center;gap:14px;margin-left:auto;}
.search-wrap{position:relative;}
.search-input{
  width:210px;padding:9px 14px;border:1px solid var(--color-border);border-radius:999px;
  font-size:0.88rem;background:var(--color-bg);transition:width .2s, border-color .2s;
}
.search-input:focus{outline:none;width:250px;border-color:var(--color-primary);}

.social-row{display:flex;gap:10px;}
.social-row a{color:var(--color-muted);opacity:.8;}
.social-row a:hover{opacity:1;color:var(--color-primary);}

.icon-btn{
  width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:#25D366;color:#fff;flex-shrink:0;
}
.lang-toggle{
  border:1px solid var(--color-border);background:none;border-radius:999px;padding:7px 13px;
  font-size:0.8rem;font-weight:600;letter-spacing:.03em;color:var(--color-dark);
}
.menu-toggle{display:none;flex-direction:column;gap:4px;background:none;border:none;padding:6px;}
.menu-toggle span{width:22px;height:2px;background:var(--color-dark);display:block;}

/* ---------- Banner ---------- */
.banner-section{position:relative;overflow:hidden;background:var(--color-dark);}
.banner-track{display:flex;transition:transform .5s ease;}
.banner-slide{
  min-width:100%;position:relative;aspect-ratio:16/6;background-size:cover;background-position:center;
  display:flex;align-items:center;
}
.banner-slide::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg, rgba(17,24,39,.72) 0%, rgba(17,24,39,.25) 55%, rgba(17,24,39,0) 100%);}
.banner-copy{position:relative;z-index:1;color:#fff;max-width:520px;padding:0 60px;}
.banner-copy h2{font-family:var(--font-display);font-size:2.4rem;font-weight:500;margin:0 0 10px;line-height:1.15;}
.banner-copy p{font-size:1.05rem;opacity:.9;margin:0 0 22px;}
.banner-btn{
  display:inline-block;background:var(--color-primary);color:#fff;padding:12px 26px;
  border-radius:6px;font-weight:600;font-size:0.92rem;
}
.banner-nav{
  position:absolute;top:50%;transform:translateY(-50%);z-index:2;background:rgba(255,255,255,.15);
  color:#fff;border:none;width:38px;height:38px;border-radius:50%;font-size:1.4rem;line-height:1;
}
.banner-nav:hover{background:rgba(255,255,255,.3);}
.banner-nav.prev{left:16px;}
.banner-nav.next{right:16px;}
.banner-dots{position:absolute;bottom:16px;left:0;right:0;display:flex;justify-content:center;gap:7px;z-index:2;}
.banner-dots button{width:7px;height:7px;border-radius:50%;border:none;background:rgba(255,255,255,.45);padding:0;}
.banner-dots button.active{background:#fff;width:20px;border-radius:4px;}

/* ---------- Sections ---------- */
.section-inner{max-width:var(--max-width);margin:0 auto;padding:52px 24px;}
.section-title{font-family:var(--font-display);font-size:1.6rem;font-weight:500;margin:0 0 26px;}
.products-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:26px;}
.products-header .section-title{margin:0;}
.products-count{font-size:0.85rem;color:var(--color-muted);}

/* ---------- Categories ---------- */
.categories-section{background:var(--color-surface);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);}
.categories-section .section-inner{padding-top:44px;padding-bottom:44px;}
.category-row{display:flex;gap:12px;flex-wrap:wrap;}
.category-chip{
  padding:10px 20px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-bg);
  font-size:0.9rem;font-weight:500;color:var(--color-dark);transition:all .15s;
}
.category-chip:hover{border-color:var(--color-primary);color:var(--color-primary);}
.category-chip.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;}

/* ---------- Product grid / cards ---------- */
.product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.product-card{
  background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);
  overflow:hidden;display:flex;flex-direction:column;transition:border-color .15s, transform .15s;cursor:pointer;
}
.product-card:hover{border-color:var(--color-primary);transform:translateY(-2px);}
.product-image-wrap{position:relative;aspect-ratio:1/1;background:#F2F1EF;overflow:hidden;}
.product-image-wrap img{width:100%;height:100%;object-fit:cover;}
.discount-badge{
  position:absolute;top:10px;left:10px;background:var(--color-dark);color:#fff;
  font-size:0.72rem;font-weight:700;padding:4px 9px;border-radius:4px;
}
.product-info{padding:16px;display:flex;flex-direction:column;gap:6px;flex:1;}
.product-category{font-size:0.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-muted);}
.product-name{font-size:0.95rem;font-weight:600;line-height:1.35;color:var(--color-dark);}
.price-row{display:flex;align-items:baseline;gap:8px;margin-top:auto;}
.price-current{font-size:1.05rem;font-weight:700;color:var(--color-primary);}
.price-old{font-size:0.85rem;color:var(--color-old-price);text-decoration:line-through;}
.shop-now-btn{
  margin:0 16px 16px;padding:10px;border:none;border-radius:6px;background:var(--color-dark);
  color:#fff;font-weight:600;font-size:0.85rem;text-align:center;transition:background .15s;
}
.shop-now-btn:hover{background:var(--color-primary);}

.empty-state{color:var(--color-muted);text-align:center;padding:40px 0;}

/* ---------- Modal ---------- */
.modal-overlay{
  position:fixed;inset:0;background:rgba(17,24,39,.55);z-index:200;
  display:flex;align-items:center;justify-content:center;padding:20px;
}
.modal-box{
  background:#fff;border-radius:12px;max-width:820px;width:100%;max-height:88vh;overflow:auto;position:relative;
}
.modal-close{position:absolute;top:14px;right:16px;background:none;border:none;font-size:1.6rem;color:var(--color-muted);z-index:2;}
.modal-content{display:grid;grid-template-columns:1fr 1fr;}
.modal-image{aspect-ratio:1/1;background:#F2F1EF;}
.modal-image img{width:100%;height:100%;object-fit:cover;}
.modal-details{padding:32px;display:flex;flex-direction:column;gap:12px;}
.modal-details .product-category{font-size:0.75rem;}
.modal-details h3{font-family:var(--font-display);font-size:1.4rem;margin:0;font-weight:500;}
.modal-details p{color:var(--color-muted);font-size:0.92rem;line-height:1.55;margin:0;}
.modal-details .price-row{font-size:1.1rem;}
.modal-details .shop-now-btn{margin:10px 0 0;padding:13px;font-size:0.95rem;}

/* ---------- Footer ---------- */
.site-footer{background:var(--color-dark);color:#fff;margin-top:40px;}
.footer-inner{
  max-width:var(--max-width);margin:0 auto;padding:44px 24px 24px;
  display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between;
}
.footer-name{font-family:var(--font-display);font-size:1.3rem;font-weight:600;}
.footer-desc{color:rgba(255,255,255,.6);font-size:0.88rem;max-width:340px;margin-top:8px;}
.footer-contact{display:flex;flex-direction:column;gap:8px;}
.footer-link{font-size:0.9rem;color:rgba(255,255,255,.8);}
.footer-link:hover{color:#fff;}
.footer-social{display:flex;gap:12px;align-items:flex-start;}
.footer-social a{color:rgba(255,255,255,.7);}
.footer-social a:hover{color:#fff;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);text-align:center;padding:16px;font-size:0.78rem;color:rgba(255,255,255,.45);}

/* ---------- RTL ---------- */
html[dir="rtl"] .header-inner, html[dir="rtl"] .footer-inner{direction:rtl;}
html[dir="rtl"] .banner-nav.prev{right:16px;left:auto;}
html[dir="rtl"] .banner-nav.next{left:16px;right:auto;}
html[dir="rtl"] .discount-badge{left:auto;right:10px;}

/* ---------- Responsive ---------- */
@media (max-width:1024px){
  .product-grid{grid-template-columns:repeat(3,1fr);}
  .main-nav{display:none;}
}
@media (max-width:720px){
  .modal-content{grid-template-columns:1fr;}
  .product-grid{grid-template-columns:repeat(2,1fr);gap:12px;}
  .header-inner{padding:12px 16px;gap:12px;}
  .search-input{width:120px;}
  .search-input:focus{width:140px;}
  .social-row{display:none;}
  .menu-toggle{display:flex;}
  .banner-copy{padding:0 24px;max-width:100%;}
  .banner-copy h2{font-size:1.5rem;}
  .banner-copy p{font-size:0.9rem;}
  .section-inner{padding:32px 16px;}
  .main-nav.open{
    display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:#fff;
    border-bottom:1px solid var(--color-border);padding:12px 16px;gap:2px;
  }
  .main-nav.open a{padding:10px 0;border-bottom:1px solid var(--color-border);}
}
