/* ===== مكتبة الفجر — bookstore theme (brand: navy #0c1046 + maroon #521B25, from fjr-book.com) ===== */
:root{
  --bg:#f4f4f7;            /* page bg — light gray */
  --surface:#ffffff;       /* card / header surface */
  --muted:#f0f3f7;         /* sunken */
  --ink:#14162e;           /* navy charcoal — text */
  --ink-soft:#5f6178;      /* secondary text */
  --brand:#0c1046;         /* Fajr navy — primary */
  --brand-2:#1d2a7a;       /* lighter navy */
  --gold:#521B25;          /* Fajr maroon — accent / prices / CTA */
  --gold-2:#7a2a3a;        /* lighter maroon */
  --on-accent:#ffffff;     /* text on accent */
  --line:rgba(12,16,70,.10);
  --line-strong:rgba(12,16,70,.22);
  --ok:#5AA788;
  --sale:#EC5550;
  --shadow:0 1px 2px rgba(16,32,48,.05), 0 10px 28px -14px rgba(16,32,48,.20);
  --shadow-lift:0 8px 18px rgba(16,32,48,.10), 0 28px 54px -20px rgba(16,32,48,.34);
  --r:16px; --r-sm:11px; --maxw:1240px;

  /* legacy aliases so ported drawer/toast styles work unchanged */
  --paper:var(--surface); --cream:var(--bg); --cream-2:var(--muted);
  --espresso:var(--ink); --gold-soft:var(--gold-2);
}
:root[data-theme="dark"]{
  --bg:#0b0c1c; --surface:#141633; --muted:#1c1f42;
  --ink:#eceef8; --ink-soft:#a3a6c2; --brand:#6f78e0; --brand-2:#8c93ec;
  --gold:#e58a9a; --gold-2:#f0aab6; --on-accent:#1a0a0e;
  --line:rgba(255,255,255,.09); --line-strong:rgba(255,255,255,.20);
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 12px 30px -14px rgba(0,0,0,.6);
  --shadow-lift:0 10px 22px rgba(0,0,0,.45), 0 30px 60px -20px rgba(0,0,0,.7);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:150px}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:"Cairo",system-ui,sans-serif;font-size:16px;line-height:1.7;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
  transition:background .3s,color .3s;
}
h1,h2,h3,h4{font-family:"Cairo",sans-serif;font-weight:800;line-height:1.25;margin:0;color:var(--ink)}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit}
img{max-width:100%}
s{color:var(--ink-soft)}
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:24px}
.eyebrow{font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;color:var(--gold)}

.btn{display:inline-flex;align-items:center;gap:9px;padding:13px 26px;border-radius:12px;
  font-family:"Cairo";font-weight:700;font-size:.98rem;transition:.22s;white-space:nowrap}
.btn svg{width:18px;height:18px}
.btn-primary{background:var(--brand);color:#fff;box-shadow:var(--shadow)}
.btn-primary:hover{filter:brightness(1.1);transform:translateY(-2px);box-shadow:var(--shadow-lift)}
.btn-gold{background:linear-gradient(135deg,var(--gold),var(--gold-2));color:#3a2c08;box-shadow:var(--shadow)}
.btn-gold:hover{transform:translateY(-2px);box-shadow:var(--shadow-lift)}
.btn-ghost{border:1.5px solid var(--line-strong);color:var(--ink)}
.btn-ghost:hover{border-color:var(--brand);color:var(--brand)}

/* ---------- utility bar ---------- */
.ubar{background:linear-gradient(90deg,var(--brand),var(--brand-2));color:#dfe8f0;font-size:.8rem;
  border-bottom:1px solid rgba(255,255,255,.08)}
.ubar-in{display:flex;align-items:center;gap:14px;height:44px}
.ubar-start{flex:1;min-width:0}
.ubar-promo{display:inline-flex;align-items:center;gap:8px;font-size:.82rem;color:#eaf1f7;white-space:nowrap}
.ubar-promo b{color:var(--gold-2);font-weight:800}
.ubar-promo svg{width:16px;height:16px;color:var(--gold-2);flex:0 0 auto}
.ubar-end{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.ubar-lnk{display:inline-flex;align-items:center;gap:6px;color:#dfe8f0;opacity:.9;transition:opacity .2s}
.ubar-lnk:hover{opacity:1;color:#fff}
.ubar-lnk svg{width:15px;height:15px}
.ubar-sep{width:1px;height:16px;background:rgba(255,255,255,.2);flex:0 0 auto}
/* custom currency dropdown */
.ubar-dd{position:relative}
.ubar-btn{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:8px;
  background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.16);color:#fff;font-size:.78rem;transition:background .2s}
.ubar-btn:hover{background:rgba(255,255,255,.18)}
.ubar-btn b{font-weight:700}
.ubar-btn>svg{width:14px;height:14px}
.ubar-btn .caret{width:13px;height:13px;transition:transform .25s}
.ubar-dd.open .ubar-btn .caret{transform:rotate(180deg)}
.ubar-menu{position:absolute;top:calc(100% + 8px);inset-inline-end:0;z-index:80;width:230px;
  background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lift);
  padding:6px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .2s,transform .2s,visibility .2s}
.ubar-dd.open .ubar-menu{opacity:1;visibility:visible;transform:none}
.cur-opt{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border-radius:8px;color:var(--ink);text-align:start}
.cur-opt:hover{background:var(--muted)}
.cur-opt.on{background:color-mix(in srgb,var(--brand) 12%,transparent)}
.cur-opt b{font-weight:800;font-size:.82rem;min-width:40px}
.cur-opt span{flex:1;font-size:.8rem;color:var(--ink-soft)}
.cur-opt i{font-style:normal;color:var(--gold);font-weight:700}
/* language switch with flags */
.lng{display:inline-flex;border:1px solid rgba(255,255,255,.2);border-radius:8px;overflow:hidden}
.lng button{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;font-size:.76rem;color:#cfe;opacity:.75;transition:.2s}
.lng button.on{background:var(--gold);color:#3a2c08;opacity:1;font-weight:800}
.lng .flag{width:18px;height:12px;border-radius:2px;overflow:hidden;display:inline-block;line-height:0;box-shadow:0 0 0 1px rgba(0,0,0,.12)}
.lng .flag svg{width:100%;height:100%;display:block}
.ttog{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:#fff;
  border:1px solid rgba(255,255,255,.2)}
.ttog:hover{background:rgba(255,255,255,.12)}
.ttog svg{width:16px;height:16px}
.ttog .moon{display:block}.ttog .sun{display:none}
:root[data-theme="dark"] .ttog .moon{display:none}
:root[data-theme="dark"] .ttog .sun{display:block}

/* ---------- header ---------- */
.head{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--surface) 94%,transparent);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--line);transition:box-shadow .3s}
.head.stuck{box-shadow:0 6px 24px -14px rgba(16,32,48,.4)}
.head-in{display:flex;align-items:center;gap:22px;height:82px}
.brand{display:flex;align-items:center;gap:12px;flex:0 0 auto}
.logo-mark{width:48px;height:48px;flex:0 0 auto;border-radius:14px;display:grid;place-items:center;
  background:linear-gradient(140deg,var(--brand),var(--brand-2));color:var(--gold-2);
  box-shadow:0 8px 18px -6px color-mix(in srgb,var(--brand) 70%,transparent);position:relative;overflow:hidden}
.logo-mark::after{content:"";position:absolute;top:-40%;inset-inline-start:-40%;width:60%;height:180%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-18deg);
  animation:logoSheen 6s ease-in-out infinite}
@keyframes logoSheen{0%,70%{inset-inline-start:-50%}85%,100%{inset-inline-start:130%}}
.logo-mark svg{width:27px;height:27px}
.brand .name{font-family:"Cairo";font-weight:800;font-size:1.34rem;line-height:1;color:var(--ink);white-space:nowrap}
.brand .name small{display:block;font-family:"Cairo";font-weight:600;font-size:.5rem;
  letter-spacing:.24em;color:var(--gold);margin-top:5px}
/* search with category select */
.search{flex:1;max-width:560px;display:flex;align-items:stretch;height:48px;border-radius:13px;
  border:1.6px solid var(--line-strong);background:var(--surface);overflow:hidden;transition:border-color .2s,box-shadow .2s}
.search:focus-within{border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 12%,transparent)}
.search-cat{border:0;background:var(--muted);color:var(--ink);font-family:inherit;font-size:.85rem;font-weight:600;
  padding:0 12px;cursor:pointer;border-inline-end:1px solid var(--line);max-width:130px}
.search-cat:focus{outline:none}
.search input{flex:1;min-width:0;border:0;background:transparent;color:var(--ink);padding:0 16px;
  font-family:inherit;font-size:.95rem}
.search input:focus{outline:none}
.search-go{width:54px;flex:0 0 auto;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--gold),var(--gold-2));color:#3a2c08;transition:filter .2s}
.search-go:hover{filter:brightness(1.06)}
.search-go svg{width:20px;height:20px}
/* tools */
.tools{display:flex;align-items:center;gap:4px;margin-inline-start:auto;flex:0 0 auto}
.tool{position:relative;display:inline-flex;align-items:center;gap:9px;height:52px;padding:0 12px;border-radius:12px;
  color:var(--ink);transition:background .2s}
.tool:hover{background:var(--muted)}
.tool>svg{width:23px;height:23px;color:var(--brand);flex:0 0 auto}
.acct-tx{display:flex;flex-direction:column;line-height:1.15;text-align:start}
.acct-tx small{font-size:.66rem;color:var(--ink-soft)}
.acct-tx b{font-size:.86rem;font-weight:700;white-space:nowrap}
.tbadge{position:absolute;top:6px;inset-inline-end:6px;min-width:18px;height:18px;padding:0 4px;
  border-radius:9px;background:var(--gold);color:#3a2c08;font-size:.64rem;font-weight:800;
  display:grid;place-items:center;transform:scale(0);transition:transform .25s}
.tbadge.show,.acct .tbadge{transform:scale(1)}
.cart-btn .cart-tx b{color:var(--gold);font-weight:800}
.icon-btn{width:44px;height:44px;border-radius:11px;display:grid;place-items:center;
  color:var(--brand);transition:background .2s;position:relative}
.icon-btn:hover{background:var(--muted)}
.icon-btn svg{width:22px;height:22px}
.burger{display:none}

/* ---------- category mega nav ---------- */
.mega{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:82px;z-index:39}
.mega-in{display:flex;align-items:center;gap:6px;height:54px}
.mega-all{display:inline-flex;align-items:center;gap:9px;height:40px;padding:0 18px;border-radius:11px;
  background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff;font-weight:800;font-size:.92rem;
  flex:0 0 auto;box-shadow:var(--shadow);transition:filter .2s,transform .2s}
.mega-all:hover{filter:brightness(1.1);transform:translateY(-1px)}
.mega-all .ic{width:17px;height:17px}
.mega-all .caret{width:15px;height:15px;transition:transform .3s}
.mega-all:hover .caret{transform:rotate(180deg)}
.mega-links{display:flex;align-items:center;gap:2px;overflow-x:auto;scrollbar-width:none;flex:1;padding-inline:4px}
.mega-links::-webkit-scrollbar{display:none}
.mega-links a{position:relative;padding:8px 14px;border-radius:9px;font-weight:600;font-size:.92rem;
  color:var(--ink);white-space:nowrap;opacity:.85;transition:.2s}
.mega-links a::after{content:"";position:absolute;inset-inline:14px;bottom:5px;height:2px;border-radius:2px;
  background:var(--gold);transform:scaleX(0);transition:transform .25s}
.mega-links a:hover{opacity:1;color:var(--brand)}
.mega-links a:hover::after{transform:scaleX(1)}
.mega-hot{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 16px;border-radius:11px;flex:0 0 auto;
  color:var(--sale);font-weight:800;font-size:.9rem;background:color-mix(in srgb,var(--sale) 12%,transparent);
  transition:.2s}
.mega-hot:hover{background:var(--sale);color:#fff}
.mega-hot svg{width:17px;height:17px}
/* mega dropdown panel */
.mega-dd{position:relative;flex:0 0 auto}
.mega-panel{position:absolute;top:calc(100% + 12px);inset-inline-start:0;z-index:60;width:min(660px,92vw);
  background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-lift);
  padding:12px;display:grid;grid-template-columns:repeat(2,1fr);gap:4px;
  opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .22s,transform .22s,visibility .22s}
.mega-dd.open .mega-panel{opacity:1;visibility:visible;transform:none}
.mega-dd.open .mega-all .caret{transform:rotate(180deg)}
.mega-panel::before{content:"";position:absolute;top:-6px;inset-inline-start:26px;width:12px;height:12px;
  background:var(--surface);border-inline-start:1px solid var(--line);border-top:1px solid var(--line);transform:rotate(45deg)}
.mp-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;transition:background .18s,transform .18s}
.mp-item:hover{background:var(--muted)}
.mp-item i{width:40px;height:40px;flex:0 0 auto;border-radius:11px;display:grid;place-items:center;
  background:color-mix(in srgb,var(--brand) 12%,transparent);color:var(--brand);transition:.2s}
.mp-item:hover i{background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff}
.mp-item i svg{width:21px;height:21px}
.mp-tx b{display:block;font-weight:700;font-size:.92rem;color:var(--ink)}
.mp-tx small{color:var(--ink-soft);font-size:.74rem}
@media(max-width:640px){.mega-panel{grid-template-columns:1fr;width:min(340px,92vw)}}

/* ---------- hero (2-col: carousel 60% + side banners 40%) ---------- */
.hero{padding:22px 0}
.hero-layout{display:grid;grid-template-columns:40% 1fr;gap:16px;align-items:stretch}
/* side column — two stacked admin-editable image banners */
.hero-side{display:grid;grid-template-rows:1fr 1fr;gap:16px;min-height:0}
.hero-promo{position:relative;overflow:hidden;border-radius:var(--r);display:flex;min-height:150px;
  box-shadow:var(--shadow);isolation:isolate;transition:transform .3s,box-shadow .3s}
.hero-promo:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift)}
.hp-art{position:absolute;inset:0;z-index:-2;background:var(--img) center/cover no-repeat;transition:transform .6s cubic-bezier(.22,1,.36,1)}
.hero-promo:hover .hp-art{transform:scale(1.08)}
.hp-scrim{position:absolute;inset:0;z-index:-1;background:linear-gradient(120deg,rgba(8,16,26,.42),rgba(8,16,26,.82))}
.hp-in{padding:20px 22px;color:#fff;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:6px}
.hp-tag{background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.3);padding:4px 11px;border-radius:16px;font-size:.7rem;font-weight:700}
.hp-in b{font-size:1.22rem;font-weight:800;line-height:1.2}
.hp-go{display:inline-flex;align-items:center;gap:6px;color:var(--gold-2);font-weight:800;font-size:.84rem;margin-top:2px}
.hp-go svg{width:15px;height:15px}
:root[dir="rtl"] .hp-go svg{transform:scaleX(-1)}
/* carousel column */
.hero-car{position:relative;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow)}
.hero-vp{overflow:hidden;height:100%}
.hero-track{display:flex;height:100%;transition:transform .7s cubic-bezier(.62,.03,.2,1)}
.hslide{min-width:100%;display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:18px;
  padding:44px 46px;color:#fff;position:relative;overflow:hidden}
.hslide .hs-copy{position:relative;z-index:2;padding:0em 2em}
.hslide h2{font-size:2.2rem;color:#fff;margin-bottom:12px;line-height:1.2}
.hslide h2 .hl{color:var(--gold-2)}
.hslide p{max-width:400px;color:rgba(255,255,255,.9);margin-bottom:20px}
.hslide .hs-tag{display:inline-block;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.28);
  padding:5px 14px;border-radius:30px;font-size:.78rem;font-weight:700;margin-bottom:16px}
.hs-art{display:grid;place-items:center;position:relative;z-index:2}
.hs-art .cover{width:184px;filter:drop-shadow(0 24px 40px rgba(0,0,0,.4));transform:rotate(-6deg)}
.hs-art .cover.b2{position:absolute;width:148px;transform:rotate(8deg) translateX(56px);opacity:.9;filter:drop-shadow(0 20px 34px rgba(0,0,0,.35))}
.hslide.s1{background:linear-gradient(120deg,#12314a,#1f5f8b)}
.hslide.s2{background:linear-gradient(120deg,#5a1f2e,#a13a52)}
.hslide.s3{background:linear-gradient(120deg,#173d33,#2a7a62)}
/* decorative sheen sweep across active slide */
.hslide::after{content:"";position:absolute;top:-30%;bottom:-30%;width:40%;inset-inline-start:-60%;z-index:1;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.10),transparent);transform:skewX(-16deg)}
.hslide.active::after{animation:heroSheen 1.6s ease .3s}
@keyframes heroSheen{to{inset-inline-start:130%}}
/* sophisticated staggered content entrance + art reveal */
.hslide .hs-tag,.hslide h2,.hslide p,.hslide .btn{opacity:0;transform:translateY(24px);
  transition:opacity .6s ease,transform .7s cubic-bezier(.22,1,.36,1)}
.hslide.active .hs-tag{opacity:1;transform:none;transition-delay:.12s}
.hslide.active h2{opacity:1;transform:none;transition-delay:.22s}
.hslide.active p{opacity:1;transform:none;transition-delay:.34s}
.hslide.active .btn{opacity:1;transform:none;transition-delay:.46s}
.hs-art{opacity:0;transform:scale(.8) rotate(-4deg);transition:opacity .8s ease,transform 1s cubic-bezier(.22,1,.36,1)}
.hslide.active .hs-art{opacity:1;transform:none;transition-delay:.2s}
@media(prefers-reduced-motion:reduce){
  .hslide .hs-tag,.hslide h2,.hslide p,.hslide .btn,.hs-art{opacity:1;transform:none;transition:none}
  .hslide.active::after{animation:none}
}
.hero-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;
  background:rgba(255,255,255,.9);color:#14202e;display:grid;place-items:center;z-index:5;box-shadow:var(--shadow)}
.hero-nav:hover{background:#fff;transform:translateY(-50%) scale(1.08)}
.hero-nav svg{width:22px;height:22px}
.hero-prev{inset-inline-start:16px}.hero-next{inset-inline-end:16px}
.hero-dots{position:absolute;bottom:16px;inset-inline:0;display:flex;justify-content:center;gap:8px;z-index:5}
.hero-dots button{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.45);transition:.25s}
.hero-dots button.on{background:#fff;width:26px;border-radius:5px}

/* ---------- featured publisher (banner + books grid) ---------- */
.pubfeat{padding:20px 0}
.pf-grid{display:grid;grid-template-columns:310px 1fr;gap:18px;align-items:stretch}
/* image ad banner (special publisher poster) */
.pf-ad{position:relative;overflow:hidden;border-radius:var(--r);display:flex;min-height:340px;
  background:linear-gradient(150deg,var(--brand),var(--brand-2));box-shadow:var(--shadow);
  isolation:isolate;transition:transform .3s,box-shadow .3s}
.pf-ad:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift)}
.ad-art{position:absolute;inset:0;z-index:-2;background-image:var(--img);background-size:cover;
  background-position:center;opacity:.4;transition:transform .6s cubic-bezier(.22,1,.36,1)}
.pf-ad:hover .ad-art{transform:scale(1.07)}
.ad-scrim{position:absolute;inset:0;z-index:-1;background:linear-gradient(160deg,rgba(8,16,26,.55),rgba(8,16,26,.86))}
.pf-ad-in{padding:30px 28px;color:#fff;display:flex;flex-direction:column;justify-content:center;
  align-items:flex-start;gap:9px}
.pf-logo{width:58px;height:58px;border-radius:16px;display:grid;place-items:center;margin-bottom:4px;
  background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.25);
  font-family:"Amiri",serif;font-weight:700;font-size:1.55rem}
.pf-ad h3{color:#fff;font-size:1.5rem;font-weight:800;line-height:1.2}
.pf-ad p{color:rgba(255,255,255,.9);font-size:.9rem;margin:0}
.ad-tag{display:inline-block;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);
  padding:5px 13px;border-radius:20px;font-size:.74rem;font-weight:700}
.ad-btn{margin-top:8px;display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:.9rem;
  padding:11px 20px;border-radius:12px;background:linear-gradient(135deg,var(--gold),var(--gold-2));
  color:#3a2c08;transition:transform .2s,filter .2s}
.pf-ad:hover .ad-btn{transform:translateY(-2px);filter:brightness(1.04)}
.ad-btn svg{width:16px;height:16px}
:root[dir="rtl"] .ad-btn svg{transform:scaleX(-1)}
/* publisher books grid — 5 across, sized to fit */
.pf-books{display:grid;grid-template-columns:repeat(5,1fr);grid-auto-rows:1fr;gap:12px}
.pf-books .pc-cover{padding:16px 12px 12px}
.pf-books .pc-cover .cover{width:104px}
.pf-books .pc-body{padding:11px 12px 13px}
.pf-books .pc-title{font-size:.92rem}
.pf-books .pc-price .now{font-size:.96rem}
.pf-books .pc-add{width:36px;height:36px}
.pf-books .pc-add svg{width:17px;height:17px}
@media(max-width:1080px){.pf-books{grid-template-columns:repeat(4,1fr)}}
@media(max-width:980px){.pf-grid{grid-template-columns:1fr}.pf-ad{min-height:200px}.pf-books .cover{width:120px}}
@media(max-width:760px){.pf-books{grid-template-columns:repeat(3,1fr)}}
@media(max-width:520px){.pf-books{grid-template-columns:repeat(2,1fr)}}

/* ---------- features strip ---------- */
.features{padding:8px 0 20px}
.feat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.feat{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r);padding:18px 20px;box-shadow:var(--shadow)}
.feat i{width:48px;height:48px;flex:0 0 auto;border-radius:12px;display:grid;place-items:center;
  background:color-mix(in srgb,var(--gold) 16%,transparent);color:var(--gold)}
.feat i svg{width:24px;height:24px}
.feat b{display:block;font-weight:800;font-size:1rem}
.feat span{font-size:.82rem;color:var(--ink-soft)}

.sec-head{text-align:center;margin-bottom:26px}
.sec-head h2{font-size:1.9rem;margin-top:4px}
.sec-head .rule{width:64px;height:3px;background:var(--gold);border-radius:3px;margin:14px auto 0}
.sec-sub{max-width:560px;margin:8px auto 0;color:var(--ink-soft);font-size:.96rem}

/* ---------- category cards (redesigned) ---------- */
.cats{position:relative;overflow:hidden;padding:70px 0;
  background:linear-gradient(180deg,var(--bg),color-mix(in srgb,var(--brand) 7%,var(--bg)) 55%,var(--bg))}
/* animated dot pattern with soft edge fade */
.cats::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:radial-gradient(var(--line-strong) 1.1px,transparent 1.2px);
  background-size:24px 24px;opacity:.55;
  -webkit-mask:radial-gradient(130% 75% at 50% 0%,#000 30%,transparent 78%);
  mask:radial-gradient(130% 75% at 50% 0%,#000 30%,transparent 78%)}
.cats .wrap{position:relative;z-index:2}
/* soft gradient blobs (static — cheaper paint, no continuous blur repaint) */
.cats .blob{position:absolute;z-index:0;border-radius:50%;filter:blur(48px);opacity:.2;pointer-events:none}
.cats .blob.b1{width:340px;height:340px;background:var(--brand-2);top:-90px;inset-inline-start:-70px}
.cats .blob.b2{width:300px;height:300px;background:var(--gold);bottom:-110px;inset-inline-end:-50px}
.cats .blob.b3{width:220px;height:220px;background:#6c3fb0;top:40%;inset-inline-start:44%;opacity:.12}
@keyframes blobA{50%{transform:translate(46px,34px) scale(1.12)}}
@keyframes blobB{50%{transform:translate(-38px,-46px) scale(1.16)}}

.catgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;position:relative;z-index:2}
.catcard{position:relative;overflow:hidden;display:flex;align-items:center;gap:14px;
  background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:18px 16px;
  box-shadow:var(--shadow);opacity:0;transform:translateY(26px);
  transition:transform .6s cubic-bezier(.22,1,.36,1),opacity .6s,box-shadow .3s,border-color .3s;
  transition-delay:var(--d)}
.catcard.in{opacity:1;transform:none}
/* gradient fill on hover */
.catcard::before{content:"";position:absolute;inset:0;z-index:0;opacity:0;transition:opacity .35s;
  background:linear-gradient(135deg,var(--c1),var(--c2))}
/* top accent line */
.catcard::after{content:"";position:absolute;top:0;inset-inline:0;height:3px;z-index:3;
  background:linear-gradient(90deg,var(--c1),var(--c2));transform:scaleX(0);transform-origin:right;transition:transform .4s}
.catcard>*{position:relative;z-index:2}
.catcard:hover{transform:translateY(-7px);border-color:transparent;
  box-shadow:0 20px 44px -16px color-mix(in srgb,var(--c1) 72%,transparent)}
.catcard:hover::before{opacity:1}
.catcard:hover::after{transform:scaleX(1)}
/* icon tile */
.cc-ic{width:56px;height:56px;flex:0 0 auto;border-radius:15px;display:grid;place-items:center;color:#fff;
  background:linear-gradient(135deg,var(--c1),var(--c2));
  box-shadow:0 10px 20px -7px color-mix(in srgb,var(--c1) 70%,transparent);
  transition:transform .45s cubic-bezier(.34,1.56,.64,1),background .3s}
.cc-ic svg{width:28px;height:28px}
.catcard:hover .cc-ic{transform:rotate(-8deg) scale(1.1);background:rgba(255,255,255,.16)}
/* text */
.cc-body{min-width:0;flex:1}
.cc-body b{font-weight:800;font-size:.98rem;line-height:1.25;color:var(--ink);transition:color .3s;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cc-n{font-size:.76rem;color:var(--ink-soft);transition:color .3s;margin-top:2px;display:block}
/* arrow — absolute so it never steals title width */
.cc-arrow{position:absolute;z-index:2;inset-inline-end:14px;top:80%;color:var(--ink-soft);opacity:0;
  transform:translateY(-50%) translateX(-8px);transition:.35s}
:root[dir="rtl"] .cc-arrow svg{transform:scaleX(-1)}
.catcard:hover .cc-arrow{opacity:1;transform:translateY(-50%);color:#fff}
.cc-arrow svg{width:20px;height:20px}
/* sheen sweep on hover */
.cc-glow{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none;border-radius:inherit}
.cc-glow::before{content:"";position:absolute;top:-20%;bottom:-20%;width:38%;left:-70%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.38),transparent);transform:skewX(-20deg)}
.catcard:hover .cc-glow::before{animation:sheen .85s ease}
@keyframes sheen{to{left:135%}}
@media(prefers-reduced-motion:reduce){
  .cats::before,.cats .blob,.catcard{animation:none!important}
  .catcard{opacity:1;transform:none;transition:box-shadow .3s,border-color .3s}
}

/* ---------- product rows ---------- */
.prow{padding:20px 0}
.prow:nth-child(even){background:var(--surface)}
.prow-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:20px;gap:14px}
.prow-head h2{font-size:1.6rem;margin-top:2px}
.viewall{display:inline-flex;align-items:center;gap:6px;color:var(--brand);font-weight:700;font-size:.9rem}
.viewall svg{width:17px;height:17px;transition:transform .2s}
.viewall:hover svg{transform:translateX(-4px)}
.prow-car{position:relative}
.prow-scroll{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(210px,1fr);gap:10px;
  overflow-x:auto;padding-bottom:10px;scroll-snap-type:x mandatory;scrollbar-width:none;scroll-behavior:smooth}
.prow-scroll::-webkit-scrollbar{display:none}
/* carousel arrows — logical inset flips automatically for rtl/ltr */
.pc-arrow{position:absolute;top:calc(50% - 26px);z-index:6;width:44px;height:44px;border-radius:50%;
  display:grid;place-items:center;background:var(--surface);color:var(--brand);
  border:1px solid var(--line);box-shadow:var(--shadow-lift);opacity:0;transition:opacity .22s,transform .22s,background .2s}
.prow-car:hover .pc-arrow{opacity:1}
.pc-arrow:hover{background:var(--brand);color:#fff;transform:scale(1.08)}
.pc-arrow svg{width:22px;height:22px}
.pc-prev{inset-inline-start:-8px}
.pc-next{inset-inline-end:-8px}
/* base glyphs (prev=<, next=>) suit ltr; mirror both for rtl edges */
:root[dir="rtl"] .pc-arrow svg{transform:scaleX(-1)}
.prow-car.no-car .pc-arrow{display:none}
@media(hover:none){.pc-arrow{display:none}}

/* ---------- product card ---------- */
.pcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  scroll-snap-align:start;transition:.22s;box-shadow:var(--shadow);display:flex;flex-direction:column}
.prow:nth-child(even) .pcard{background:var(--bg)}
.pcard:hover{transform:translateY(-5px);box-shadow:var(--shadow-lift);border-color:var(--line-strong)}
.pc-cover{position:relative;background:linear-gradient(160deg,var(--muted),var(--bg));
  padding:22px 20px 18px;display:grid;place-items:center;overflow:hidden}
.pc-cover .cover{width:130px;height:auto;filter:drop-shadow(0 12px 22px rgba(16,32,48,.28));transition:transform .3s}
.pcard:hover .pc-cover .cover{transform:translateY(-4px) rotate(-2deg)}
.badge{position:absolute;top:12px;inset-inline-start:12px;z-index:3;padding:4px 10px;border-radius:20px;
  font-size:.68rem;font-weight:800;color:#fff}
.badge.best{background:var(--gold);color:#3a2c08}
.badge.new{background:var(--ok)}
.badge.sale{background:var(--sale)}
.pc-actions{position:absolute;top:12px;inset-inline-end:12px;z-index:3;display:flex;flex-direction:column;gap:8px;
  opacity:0;transform:translateX(10px);transition:.25s}
:root[dir] .pc-actions{transform:translateX(-10px)}
.pcard:hover .pc-actions{opacity:1;transform:translateX(0)}
.pa{width:36px;height:36px;border-radius:10px;background:var(--surface);color:var(--brand);
  display:grid;place-items:center;box-shadow:var(--shadow);border:1px solid var(--line)}
.pa:hover{background:var(--brand);color:#fff}
.pa.on{background:var(--sale);color:#fff}
.pa svg{width:18px;height:18px}
.pc-body{padding:14px 16px 16px;display:flex;flex-direction:column;flex:1}
.pc-cat{font-size:.68rem;font-weight:700;color:var(--gold);letter-spacing:.04em}
.pc-title{font-size:1.02rem;font-weight:800;margin:4px 0 2px;overflow:hidden;
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}
.pc-author{font-size:.8rem;color:var(--ink-soft)}
/* rating stars hidden until reviews feature is active */
.stars{display:none;align-items:center;gap:2px;margin:7px 0;font-size:.82rem;color:#d9b74a;letter-spacing:1px}
.stars span{opacity:.3}.stars span.on{opacity:1}
.stars b{color:var(--ink-soft);font-weight:600;font-size:.74rem;margin-inline-start:5px}
.pc-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-top:auto;padding-top:10px}
.pc-price{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.pc-price .now{font-weight:800;font-size:1.06rem;color:var(--gold);white-space:nowrap}
.pc-price s{font-size:.76rem;margin:0;white-space:nowrap;order:-1;opacity:.8}
.pc-add{width:42px;height:42px;border-radius:11px;background:var(--brand);color:#fff;
  display:grid;place-items:center;flex:0 0 auto;transition:.2s}
.pc-add:hover{background:var(--gold);color:#3a2c08;transform:translateY(-2px)}
.pc-add svg{width:19px;height:19px}

/* ---------- mosaic showcase (interlocking, real images) ---------- */
.showcase{padding:26px 0}
.mosaic{grid-auto-flow:column dense;grid-template-rows:repeat(2,158px);grid-auto-columns:158px;gap:10px;
  padding-bottom:12px}
.mtile{position:relative;overflow:hidden;border-radius:16px;box-shadow:var(--shadow);scroll-snap-align:start;
  display:block;background:var(--muted);transition:transform .3s,box-shadow .3s}
.mtile.s{grid-row:span 1;grid-column:span 1}
.mtile.t{grid-row:span 2;grid-column:span 1}
.mtile.xl{grid-row:span 2;grid-column:span 2}
.mtile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.22,1,.36,1)}
.mtile .mt-scrim{position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(6,14,22,.86))}
.mtile:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift)}
.mtile:hover img{transform:scale(1.09)}
.mt-in{position:absolute;inset-inline:0;bottom:0;padding:12px 13px;color:#fff;z-index:2;display:flex;flex-direction:column;gap:1px}
.mt-cat{font-size:.62rem;font-weight:800;color:var(--gold-2);letter-spacing:.03em;text-transform:uppercase}
.mt-in b{font-weight:800;font-size:.9rem;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mt-a{font-size:.72rem;color:rgba(255,255,255,.78)}
.mtile.s .mt-in b{font-size:.78rem;-webkit-line-clamp:1}
.mtile.s .mt-a{display:none}
.mtile.xl .mt-in{padding:18px 18px}
.mtile.xl .mt-in b{font-size:1.35rem}
.mtile.xl .mt-cat{font-size:.72rem}
.mtile.xl .mt-a{font-size:.86rem}

/* ---------- publishers (redesigned) ---------- */
.pubs{padding:44px 0}
.pub-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.pubcard{position:relative;overflow:hidden;display:flex;align-items:center;gap:14px;
  background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:16px;
  box-shadow:var(--shadow);transition:transform .28s,box-shadow .28s,border-color .28s}
.pubcard::after{content:"";position:absolute;top:0;inset-inline:0;height:3px;
  background:linear-gradient(90deg,var(--c1),var(--c2));transform:scaleX(0);transform-origin:right;transition:transform .4s}
.pubcard:hover{transform:translateY(-6px);border-color:transparent;
  box-shadow:0 20px 44px -16px color-mix(in srgb,var(--c1) 66%,transparent)}
.pubcard:hover::after{transform:scaleX(1)}
.pubcard>*{position:relative;z-index:2}
/* logo monogram */
.pub-logo{width:58px;height:58px;flex:0 0 auto;border-radius:16px;display:grid;place-items:center;
  font-family:"Amiri",serif;font-weight:700;font-size:1.5rem;color:#fff;
  background:linear-gradient(135deg,var(--c1),var(--c2));
  box-shadow:0 10px 20px -7px color-mix(in srgb,var(--c1) 70%,transparent);transition:transform .4s}
.pubcard:hover .pub-logo{transform:rotate(-6deg) scale(1.06)}
.pub-meta{min-width:0;flex:1}
.pub-name{display:block;font-weight:800;font-size:1.02rem;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pub-en{display:block;font-size:.72rem;color:var(--ink-soft);letter-spacing:.02em;margin-bottom:6px}
.pub-stats{display:flex;align-items:center;gap:9px;font-size:.76rem;color:var(--ink-soft)}
.pub-books{display:inline-flex;align-items:center;gap:5px;font-weight:700;color:var(--brand)}
.pub-books svg{width:14px;height:14px}
.pub-books b{font-weight:800}
.pub-since{padding-inline-start:9px;border-inline-start:1px solid var(--line-strong)}
.pub-go{width:34px;height:34px;flex:0 0 auto;border-radius:10px;display:grid;place-items:center;
  background:var(--muted);color:var(--brand);opacity:0;transform:translateX(-8px);transition:.3s}
:root[dir="rtl"] .pub-go svg{transform:scaleX(-1)}
.pubcard:hover .pub-go{opacity:1;transform:none;background:linear-gradient(135deg,var(--c1),var(--c2));color:#fff}
.pub-glow{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none;border-radius:inherit}
.pub-glow::before{content:"";position:absolute;top:-20%;bottom:-20%;width:40%;left:-70%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transform:skewX(-20deg)}
.pubcard:hover .pub-glow::before{animation:sheen .85s ease}
/* featured publisher spans 2 columns, filled gradient */
.pubcard.feat{grid-column:span 2;color:#fff;border-color:transparent;
  background:linear-gradient(135deg,var(--c1),var(--c2))}
.pubcard.feat .pub-logo{background:rgba(255,255,255,.16);box-shadow:none}
.pubcard.feat .pub-name{color:#fff;font-size:1.2rem}
.pubcard.feat .pub-en{color:rgba(255,255,255,.8)}
.pubcard.feat .pub-stats{color:rgba(255,255,255,.85)}
.pubcard.feat .pub-books{color:#fff}
.pubcard.feat .pub-since{border-inline-start-color:rgba(255,255,255,.3)}
.pubcard.feat .pub-go{background:rgba(255,255,255,.18);color:#fff;opacity:1;transform:none}
.pubcard.feat::after{display:none}
.pubcard.feat:hover{transform:translateY(-6px);box-shadow:var(--shadow-lift)}
/* "+N more" card — completes the grid */
.pub-more{flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:5px;
  background:color-mix(in srgb,var(--brand) 6%,var(--surface));border:2px dashed var(--line-strong)}
.pub-more::after{display:none}
.pub-more:hover{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 11%,var(--surface));transform:translateY(-6px)}
.pm-plus{font-family:"Cairo";font-weight:800;font-size:1.8rem;line-height:1;color:var(--brand)}
.pm-tx{font-size:.84rem;font-weight:700;color:var(--ink-soft)}
.pm-go{display:inline-flex;align-items:center;gap:5px;color:var(--gold);font-weight:800;font-size:.8rem;margin-top:4px}
.pm-go svg{width:15px;height:15px}

/* ---------- unified forward-arrow direction (rtl points inline-start, ltr inline-end) ---------- */
:root[dir="rtl"] .btn svg,
:root[dir="rtl"] .viewall svg,
:root[dir="rtl"] .pm-go svg,
:root[dir="rtl"] .ad-btn svg,
:root[dir="rtl"] .hp-go svg,
:root[dir="rtl"] .pub-go svg,
:root[dir="rtl"] .cc-arrow svg{transform:scaleX(-1)}

/* ---------- newsletter ---------- */
.news{padding:20px 0 44px}
.news-in{background:linear-gradient(120deg,var(--brand),var(--brand-2));border-radius:var(--r);
  padding:44px 40px;text-align:center;color:#fff;box-shadow:var(--shadow-lift);position:relative;overflow:hidden}
.news-in h2{color:#fff;font-size:1.8rem}
.news-in p{color:rgba(255,255,255,.88);max-width:520px;margin:8px auto 22px}
.news-form{display:flex;gap:10px;max-width:480px;margin:0 auto}
.news-form input{flex:1;height:50px;border-radius:12px;border:0;padding:0 18px;font-family:inherit;font-size:.95rem;color:var(--ink)}
.news-form input:focus{outline:2px solid var(--gold)}

/* ---------- footer ---------- */
.foot{background:#0c1620;color:#b7c4d2;padding:52px 0 0}
:root[data-theme="dark"] .foot{background:#080d13}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.4fr;gap:32px;padding-bottom:36px;
  border-bottom:1px solid rgba(255,255,255,.09)}
.foot .brand .name{color:#fff}
.foot p{font-size:.9rem;line-height:1.8;margin:14px 0}
.foot h4{color:#fff;font-size:1.05rem;margin-bottom:16px}
.foot ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.foot ul a{font-size:.9rem;opacity:.85}
.foot ul a:hover{color:var(--gold-2);opacity:1}
.foot .fcontact li{display:flex;align-items:flex-start;gap:9px;font-size:.9rem;margin-bottom:11px}
.foot .fcontact svg{width:17px;height:17px;color:var(--gold-2);flex:0 0 auto;margin-top:3px}
.foot .fnews input{width:100%;height:46px;border-radius:11px;border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.06);color:#fff;padding:0 46px 0 14px;font-family:inherit;font-size:.9rem}
.foot .fnews{position:relative;margin-bottom:18px}
.foot .fnews button{position:absolute;inset-inline-end:6px;top:6px;width:34px;height:34px;border-radius:9px;
  background:var(--gold);color:#3a2c08;display:grid;place-items:center}
.foot .fnews svg{width:17px;height:17px}
.appbadges{display:flex;gap:10px;flex-wrap:wrap}
.appbadge{display:flex;align-items:center;gap:9px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);
  border-radius:11px;padding:8px 14px;font-size:.82rem}
.appbadge:hover{background:rgba(255,255,255,.12)}
.appbadge svg{width:22px;height:22px}
.appbadge b{color:#fff;font-size:.92rem;display:block;line-height:1.1}
.socials{display:flex;gap:10px;margin-top:16px}
.socials a{width:40px;height:40px;border-radius:11px;border:1px solid rgba(255,255,255,.16);
  display:grid;place-items:center;color:#cdd8e3;transition:.2s}
.socials a:hover{background:var(--gold);color:#3a2c08;border-color:var(--gold);transform:translateY(-2px)}
.socials svg{width:19px;height:19px}
.copy{text-align:center;padding:20px 0;font-size:.84rem;color:#8494a4}

/* ---------- mobile menu ---------- */
.mnav{position:fixed;inset:0;z-index:60;visibility:hidden;pointer-events:none}
.mnav.open{visibility:visible;pointer-events:auto}
.mnav-scrim{position:absolute;inset:0;background:rgba(10,20,30,.5);backdrop-filter:blur(2px);
  opacity:0;transition:opacity .4s}
.mnav.open .mnav-scrim{opacity:1}
.mnav-panel{position:absolute;top:0;right:0;height:100%;width:min(340px,86vw);background:var(--surface);
  border-inline-start:1px solid var(--line);box-shadow:-26px 0 64px -22px rgba(0,0,0,.5);
  transform:translateX(100%);transition:transform .5s cubic-bezier(.22,1,.36,1);
  display:flex;flex-direction:column;padding:18px 20px;overflow-y:auto}
.mnav.open .mnav-panel{transform:translateX(0)}
.mnav-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid var(--line)}
.mnav-links{display:flex;flex-direction:column;padding:14px 0}
.mnav-links a{display:flex;align-items:center;gap:12px;padding:14px 8px;font-weight:600;border-bottom:1px solid var(--line)}
.mnav-links a:hover{color:var(--brand)}
.mnav-links svg{width:18px;height:18px;color:var(--gold)}

/* ---------- cart drawer (kept as before) ---------- */
.overlay{position:fixed;inset:0;background:rgba(10,20,30,.5);backdrop-filter:blur(2px);
  opacity:0;pointer-events:none;transition:opacity .3s;z-index:60}
.overlay.open{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;left:0;height:100%;width:min(400px,92vw);
  background:var(--bg);z-index:70;display:flex;flex-direction:column;
  transform:translateX(-110%);transition:transform .35s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-lift)}
.drawer.open{transform:translateX(0)}
.drawer-h{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;border-bottom:1px solid var(--line)}
.drawer-h h3{font-size:1.3rem}
.drawer-h button{color:var(--brand);width:38px;height:38px;border-radius:10px}
.drawer-h button:hover{background:var(--muted)}
.drawer-body{flex:1;overflow:auto;padding:18px 22px;display:flex;flex-direction:column;gap:14px}
.empty{text-align:center;color:var(--ink-soft);margin:auto;padding:40px 0}
.empty .seal{width:80px;height:80px;opacity:.5;margin-bottom:14px}
.litem{display:flex;gap:13px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px}
.litem .th{width:52px;height:70px;border-radius:8px;background:var(--muted);display:grid;place-items:center;flex:0 0 auto;overflow:hidden}
.litem .th svg{width:52px;height:auto}
.litem .info{flex:1;min-width:0}
.litem .info b{font-family:"Cairo";font-weight:700;font-size:1rem;display:block}
.litem .info span{font-size:.78rem;color:var(--ink-soft)}
.qty{display:inline-flex;align-items:center;gap:0;border:1px solid var(--line);border-radius:9px;margin-top:7px;overflow:hidden}
.qty button{width:28px;height:28px;color:var(--brand);font-weight:700;font-size:1rem}
.qty button:hover{background:var(--muted)}
.qty span{min-width:26px;text-align:center;font-weight:700}
.litem .lp{text-align:start;font-weight:700;color:var(--gold);white-space:nowrap}
.litem .rm{color:var(--ink-soft);font-size:.74rem;margin-top:6px;display:block}
.litem .rm:hover{color:var(--sale)}
.drawer-f{padding:18px 22px;border-top:1px solid var(--line);background:var(--surface)}
.drawer-f .row{display:flex;justify-content:space-between;font-size:.92rem;color:var(--ink-soft);margin-bottom:8px}
.drawer-f .row.total{color:var(--ink);font-weight:800;font-size:1.18rem;margin:12px 0 16px}
.checkout{width:100%;justify-content:center}

/* ---------- toast ---------- */
.toast{position:fixed;bottom:24px;inset-inline:0;margin:auto;width:max-content;max-width:90vw;
  background:var(--ink);color:var(--surface);padding:13px 22px;border-radius:13px;font-weight:700;font-size:.92rem;
  display:flex;align-items:center;gap:10px;box-shadow:var(--shadow-lift);z-index:90;
  opacity:0;transform:translateY(16px);pointer-events:none;transition:all .3s}
.toast.show{opacity:1;transform:translateY(0)}
.toast svg{width:19px;height:19px;color:var(--gold)}

/* ---------- scroll top ---------- */
.totop{position:fixed;bottom:24px;inset-inline-end:24px;z-index:50;width:52px;height:52px;border-radius:50%;
  display:grid;place-items:center;background:var(--brand);color:#fff;box-shadow:var(--shadow-lift);
  opacity:0;transform:translateY(18px) scale(.8);pointer-events:none;transition:.4s cubic-bezier(.22,1,.36,1)}
.totop.show{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
.totop:hover{transform:translateY(-4px) scale(1.07);background:var(--gold);color:#3a2c08}
.totop svg{width:22px;height:22px}
body.menu-open{overflow:hidden}

/* ---------- responsive ---------- */
@media(max-width:1080px){
  .feat-grid{grid-template-columns:repeat(2,1fr)}
  .catgrid{grid-template-columns:repeat(3,1fr)}
  .pub-grid{grid-template-columns:repeat(3,1fr)}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:920px){
  .hero-layout{grid-template-columns:1fr}
  .hero-car{order:-1}
  .hero-side{grid-template-rows:none;grid-template-columns:1fr 1fr}
  .hero-promo{min-height:120px}
}
@media(max-width:820px){
  .mega,.search{display:none}
  .burger{display:grid}
  .hslide{grid-template-columns:1fr;padding:36px 30px;text-align:center}
  .hs-art{display:none}
  .hslide h2{font-size:1.9rem}
  .catgrid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:460px){.hero-side{grid-template-columns:1fr}}
@media(max-width:560px){
  .ubar .hide-sm{display:none}
  .feat-grid{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
  .pub-grid{grid-template-columns:repeat(2,1fr)}
  .hero-nav{display:none}
}
@media(max-width:560px){.mosaic{grid-template-rows:repeat(2,132px);grid-auto-columns:132px}.mtile.xl .mt-in b{font-size:1.05rem}}

/* ---------- header responsive ---------- */
@media(max-width:1180px){.search-cat{display:none}.brand .name small{display:none}}
@media(max-width:1040px){.acct-tx,.cart-tx{display:none}.tool{padding:0 8px}}
@media(max-width:820px){.mega,.search{display:none}.burger{display:grid}.head-in{gap:12px}}

/* ---------- ubar responsive ---------- */
@media(max-width:700px){.ubar-promo{display:none}.ubar-start{flex:0}.ubar-end{margin-inline-start:auto}}

/* ---------- performance: skip offscreen paint for heavy static sections ---------- */
.features,.cats,.pubs,.news,.foot{content-visibility:auto;contain-intrinsic-size:auto 520px}

/* ---------- clickable card overlay ---------- */
.pcard{position:relative}
.pc-hit{position:absolute;inset:0;z-index:1}
.pcard .badge,.pcard .pc-actions,.pcard .pc-add{z-index:3}

/* ---------- book details page ---------- */
.book-page{padding:20px 0 54px}
.crumb{display:flex;align-items:center;gap:8px;font-size:.84rem;color:var(--ink-soft);margin-bottom:20px;flex-wrap:wrap}
.crumb a:hover{color:var(--brand)}
.crumb i{opacity:.5;font-style:normal}
.crumb span{color:var(--ink);font-weight:600}
.bd-top{display:grid;grid-template-columns:400px 1fr;gap:38px;align-items:start}
.bd-gallery{position:sticky;top:150px}
.bd-cover{position:relative;background:linear-gradient(160deg,var(--muted),var(--bg));border:1px solid var(--line);
  border-radius:var(--r);padding:38px;display:grid;place-items:center;box-shadow:var(--shadow)}
.bd-cover .cover{width:238px;filter:drop-shadow(0 24px 44px rgba(16,32,48,.32))}
.bd-cover .badge{position:absolute;top:16px;inset-inline-start:16px}
.bd-cat{display:inline-block;font-size:.74rem;font-weight:800;color:var(--gold);letter-spacing:.04em}
.bd-info h1{font-size:2rem;margin:6px 0 8px;line-height:1.25}
.bd-author{color:var(--ink-soft);font-size:.95rem}
.bd-author b{color:var(--ink)}
.bd-rate{display:flex;align-items:center;gap:8px;margin:12px 0}
.bd-stars{display:inline-flex;gap:2px;color:#e0b45c;font-size:1rem;letter-spacing:1px}
.bd-stars span{opacity:.3}.bd-stars span.on{opacity:1}
.bd-rate>span{font-size:.82rem;color:var(--ink-soft)}
.bd-priceline{display:flex;align-items:center;gap:16px;margin:16px 0;flex-wrap:wrap}
.bd-price{display:flex;align-items:center;gap:10px}
.bd-now{font-size:1.9rem;font-weight:800;color:var(--gold)}
.bd-price s{font-size:1rem}
.bd-off{background:var(--sale);color:#fff;font-weight:800;font-size:.8rem;padding:3px 9px;border-radius:8px}
.bd-save{font-size:.85rem;color:var(--ok);font-weight:700}
.bd-save b{color:var(--ok)}
.bd-stock{display:inline-flex;align-items:center;gap:8px;color:var(--ok);font-weight:700;font-size:.9rem;margin-bottom:14px}
.bd-stock .dot{width:9px;height:9px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 20%,transparent)}
.bd-short{color:var(--ink-soft);line-height:1.9;margin:0 0 22px}
.bd-buy{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:22px}
.bd-qty{display:inline-flex;align-items:center;border:1.5px solid var(--line-strong);border-radius:12px;height:50px;overflow:hidden}
.bd-qty button{width:44px;height:100%;font-size:1.2rem;font-weight:700;color:var(--brand)}
.bd-qty button:hover{background:var(--muted)}
.bd-qty span{min-width:42px;text-align:center;font-weight:800}
.bd-buy .btn{height:50px}
.bd-wish{width:50px;height:50px;border-radius:12px;border:1.5px solid var(--line-strong);display:grid;place-items:center;color:var(--brand)}
.bd-wish:hover{border-color:var(--sale);color:var(--sale)}
.bd-wish.on{background:var(--sale);border-color:var(--sale);color:#fff}
.bd-perks{list-style:none;padding:18px 0 0;margin:0;display:grid;gap:12px;border-top:1px solid var(--line)}
.bd-perks li{display:flex;align-items:center;gap:10px;font-size:.9rem;color:var(--ink-soft)}
.bd-perks svg{width:20px;height:20px;color:var(--brand);flex:0 0 auto}
.bd-tabs{margin:42px 0 10px}
.bd-tabnav{display:flex;gap:6px;border-bottom:2px solid var(--line);margin-bottom:22px;overflow-x:auto;scrollbar-width:none}
.bd-tabnav::-webkit-scrollbar{display:none}
.bd-tabnav button{padding:12px 20px;font-weight:800;font-size:.98rem;color:var(--ink-soft);position:relative;white-space:nowrap}
.bd-tabnav button.on{color:var(--brand)}
.bd-tabnav button.on::after{content:"";position:absolute;inset-inline:0;bottom:-2px;height:3px;background:var(--gold);border-radius:3px}
.bd-pane{display:none;line-height:1.95;color:var(--ink-soft)}
.bd-pane.on{display:block;animation:bdFade .3s ease}
@keyframes bdFade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.bd-pane p{margin:0 0 14px}
.bd-pane b{color:var(--ink)}
.bd-high{margin:8px 0 0;padding-inline-start:20px}
.bd-high li{margin-bottom:8px}
.bd-specs{display:grid;grid-template-columns:1fr 1fr;gap:0 32px;max-width:780px}
.bd-spec{display:flex;justify-content:space-between;gap:12px;padding:12px 2px;border-bottom:1px solid var(--line)}
.bd-spec span{color:var(--ink-soft)}
.bd-spec b{color:var(--ink);font-weight:700;text-align:end}
.bd-revscore{display:flex;align-items:center;gap:14px;background:var(--muted);border-radius:var(--r);padding:18px 22px;margin-bottom:18px}
.bd-revscore>b{font-size:2.2rem;font-weight:800;color:var(--ink)}
.bd-revscore span{color:var(--ink-soft);font-size:.85rem}
.bd-rev{border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin-bottom:12px;background:var(--surface)}
.bd-rev-h{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.bd-av{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--brand),var(--brand-2))}
.bd-rev-h b{display:block;font-size:.92rem}
.bd-rev-h .bd-stars{font-size:.8rem}
.bd-rev p{margin:0;color:var(--ink-soft);line-height:1.8}
@media(max-width:820px){
  .bd-top{grid-template-columns:1fr;gap:22px}
  .bd-gallery{position:static;max-width:320px;margin-inline:auto}
  .bd-cover .cover{width:200px}
  .bd-specs{grid-template-columns:1fr}
  .bd-info h1{font-size:1.6rem}
}

/* ---------- book gallery (multi-image) + visible facts ---------- */
.bd-cover{overflow:hidden;cursor:zoom-in}
.bd-view{display:grid;place-items:center;width:100%}
.bd-view .cover{width:238px;filter:drop-shadow(0 24px 44px rgba(16,32,48,.32));transition:transform .5s cubic-bezier(.22,1,.36,1)}
.bd-view-img img{width:100%;max-height:360px;object-fit:contain;border-radius:10px;transition:transform .5s cubic-bezier(.22,1,.36,1)}
.bd-cover:hover .bd-view .cover,.bd-cover:hover .bd-view-img img{transform:scale(1.13)}
.bd-thumbs{display:flex;gap:12px;margin-top:16px;flex-wrap:wrap}
.bd-thumb{width:88px;height:112px;border-radius:12px;border:2px solid var(--line);background:var(--muted);
  overflow:hidden;display:grid;place-items:center;padding:7px;transition:border-color .2s,transform .2s;box-shadow:var(--shadow)}
.bd-thumb.on{border-color:var(--brand)}
.bd-thumb:hover{border-color:var(--brand-2);transform:translateY(-3px)}
.bd-thumb .cover{width:100%;height:auto}
.bd-thumb img{width:100%;height:100%;object-fit:cover;border-radius:7px}

/* related section on book page — drop stray surface bg, clean spacing */
.bd-related{background:transparent!important;padding:0!important;margin-top:38px;border-top:1px solid var(--line);padding-top:34px!important}
.bd-facts{margin-top:22px;border-top:1px solid var(--line);padding-top:20px}
.bd-facts-t{display:flex;align-items:center;gap:8px;font-size:1.06rem;font-weight:800;margin-bottom:12px}
.bd-facts-t svg{width:19px;height:19px;color:var(--gold)}
.bd-facts-g{display:grid;grid-template-columns:1fr 1fr;gap:0 28px}
.bd-fact{display:flex;justify-content:space-between;gap:12px;padding:10px 2px;border-bottom:1px solid var(--line);font-size:.9rem}
.bd-fact span{color:var(--ink-soft)}
.bd-fact b{color:var(--ink);font-weight:700;text-align:end}
@media(max-width:560px){.bd-facts-g{grid-template-columns:1fr}}

/* ---------- best-sellers mosaic (ranked tiles) ---------- */
.best-mosaic .btile{position:relative;overflow:hidden;border-radius:16px;box-shadow:var(--shadow);
  scroll-snap-align:start;display:block;background:linear-gradient(150deg,var(--c1),var(--c2));
  transition:transform .3s,box-shadow .3s;isolation:isolate}
.btile.s{grid-row:span 1;grid-column:span 1}
.btile.t{grid-row:span 2;grid-column:span 1}
.btile.xl{grid-row:span 2;grid-column:span 2}
.btile:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift)}
.bt-cover{position:absolute;inset:0;display:grid;place-items:center;padding:14px;z-index:0}
.bt-cover .cover{width:auto;height:76%;filter:drop-shadow(0 14px 26px rgba(0,0,0,.45));
  transition:transform .5s cubic-bezier(.22,1,.36,1)}
.btile:hover .bt-cover .cover{transform:scale(1.08) rotate(-2deg)}
.bt-scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(6,12,20,.15) 0%,transparent 30%,transparent 45%,rgba(6,12,20,.9))}
.bt-rank{position:absolute;top:10px;inset-inline-start:10px;z-index:3;font-weight:800;font-size:.82rem;
  padding:3px 10px;border-radius:20px;color:#3a2c08;background:linear-gradient(135deg,var(--gold),var(--gold-2));
  box-shadow:0 4px 12px rgba(0,0,0,.32)}
.bt-in{position:absolute;inset-inline:0;bottom:0;z-index:2;padding:12px 13px;color:#fff;display:flex;flex-direction:column;gap:2px}
.bt-cat{font-size:.62rem;font-weight:800;color:var(--gold-2);text-transform:uppercase;letter-spacing:.03em}
.bt-title{font-weight:800;font-size:.92rem;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bt-foot{display:flex;align-items:center;gap:6px;margin-top:3px}
.bt-price{font-weight:800;color:var(--gold-2)}
.bt-foot s{font-size:.72rem;color:rgba(255,255,255,.62)}
.bt-add{position:absolute;bottom:10px;inset-inline-end:10px;z-index:3;width:36px;height:36px;border-radius:10px;
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.32);color:#fff;display:grid;place-items:center;
  opacity:0;transform:translateY(6px);transition:.25s}
.btile:hover .bt-add{opacity:1;transform:none}
.bt-add:hover{background:var(--gold);color:#3a2c08;border-color:var(--gold)}
.bt-add svg{width:18px;height:18px}
/* size tuning */
.btile.xl .bt-rank{font-size:1rem;padding:5px 15px}
.btile.xl .bt-cover .cover{height:80%}
.btile.xl .bt-title{font-size:1.35rem;line-height:1.2}
.btile.xl .bt-cat{font-size:.74rem}
.btile.xl .bt-price{font-size:1.15rem}
.btile.s .bt-title,.btile.s .bt-cat{display:none}
.btile.s .bt-cover .cover{height:62%}
.btile.s .bt-add{display:none}
.btile.s .bt-in{padding:9px 11px}

/* =====================================================================
   Fajr overrides — logo, real cover photos, accent contrast, scroll fixes
   ===================================================================== */
/* logo: black calligraphy in a white badge (inverted in dark mode) */
.logo-mark{background:#fff;color:inherit;padding:5px;border:1px solid var(--line)}
.logo-mark::after{content:none;animation:none}
.logo-mark img{width:100%;height:100%;object-fit:contain;display:block}
:root[data-theme="dark"] .logo-mark{background:#fff}
.empty .seal{opacity:.35}
:root[data-theme="dark"] .empty .seal{filter:invert(1)}

/* text on maroon accent must be light */
.btn-gold,.search-go,.badge.best,.tbadge,.bt-rank{color:var(--on-accent)}
.pc-add:hover,.bt-add:hover,.totop:hover{color:var(--on-accent)}
.mega-all,.btn-primary{color:#fff}

/* real cover photos: fixed aspect box so cards never resize while images load */
img.cover{display:block;object-fit:cover;background:var(--muted);border-radius:4px 8px 8px 4px;
  aspect-ratio:3/4;height:auto}
.pc-cover{padding:16px 16px 12px}
.pc-cover .cover{width:100%;max-width:150px;filter:none;box-shadow:0 10px 20px -10px rgba(12,16,70,.45)}
.pcard:hover .pc-cover .cover{transform:translateY(-3px)}
.litem .th img.cover{width:52px;height:70px;border-radius:6px}
.bd-view .cover{width:260px;max-width:100%;filter:none;box-shadow:0 24px 44px -18px rgba(12,16,70,.5)}
.bt-cover .cover{height:76%;width:auto;filter:none;box-shadow:0 14px 26px -8px rgba(0,0,0,.55)}
.best-mosaic .btile{background:linear-gradient(150deg,#0c1046,#521B25)}
.hs-art .cover{width:170px;filter:none;box-shadow:0 24px 40px -10px rgba(0,0,0,.5)}
.hs-art .cover.b2{width:136px}
.hp-img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.22,1,.36,1)}
.hero-promo:hover .hp-img{transform:scale(1.06)}
.hp-scrim{background:linear-gradient(120deg,rgba(12,16,70,.55),rgba(82,27,37,.88))}
.pf-logo{overflow:hidden;background:#fff;padding:4px}
.pf-logo img,.pub-logo img{width:100%;height:100%;object-fit:contain;display:block}
.pub-logo{overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:none;color:var(--brand);font-size:1.1rem}
.pubcard.feat .pub-logo{background:#fff}
.hslide{background:linear-gradient(135deg,#0c1046,#1d2a7a 55%,#521B25)}

/* category cards: always visible (no scroll-triggered reveal = no layout motion while scrolling) */
.catcard{opacity:1;transform:none;transition:transform .25s,box-shadow .25s,border-color .25s}
.catgrid{grid-template-columns:repeat(3,1fr)}
.cats .blob{display:none}

/* ---------- scroll stability ---------- */
/* sticky header: solid bg instead of backdrop blur (blur repaints every scrolled frame) */
.head{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--surface);transition:none}
.head.stuck{box-shadow:0 6px 18px -12px rgba(12,16,70,.45)}
body{transition:none}
/* anchored sections land below the sticky header + nav */
section[id],[id^="cat-"]{scroll-margin-top:150px}
@media(max-width:820px){html{scroll-padding-top:90px}section[id],[id^="cat-"]{scroll-margin-top:90px}}
/* horizontal rows: free swipe, soft snap, never steal the vertical scroll */
.prow-scroll{scroll-snap-type:x proximity;scroll-behavior:auto;overscroll-behavior-x:contain;
  touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch}
/* skip rendering work for off-screen rows (big win with 20+ rows) */
.prow,.pubs,.news,.foot{content-visibility:auto;contain-intrinsic-size:auto 520px}
.pcard{transition:transform .2s,box-shadow .2s,border-color .2s}
.pcard:hover{transform:translateY(-3px)}
@media(hover:none){.pcard:hover,.mtile:hover,.btile:hover,.catcard:hover,.pubcard:hover{transform:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}

/* footer: Fajr navy + shipping/payment methods + VAT number */
.foot{background:#0c1046;--gold:#e58a9a;--gold-2:#f0aab6}
:root[data-theme="dark"] .foot{background:#070926}
.foot .fnews button,.foot .socials a:hover{color:#1a0a0e}
.foot-pay{display:flex;flex-wrap:wrap;justify-content:space-between;gap:18px 40px;padding:22px 0;
  border-top:1px solid rgba(255,255,255,.12)}
.fp-group h5{margin:0 0 10px;font-size:.84rem;font-weight:800;color:#fff}
.foot .fp-logos{list-style:none;margin:0;padding:0;display:flex;flex-direction:row;flex-wrap:wrap;gap:8px}
.foot .fp-logos li{height:40px;min-width:56px;padding:6px 10px;border-radius:10px;background:#fff;
  display:grid;place-items:center;margin:0}
.fp-logos img{height:26px;width:auto;max-width:72px;object-fit:contain;display:block}
.foot-vat{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 18px;padding:14px 0 0;
  border-top:1px solid rgba(255,255,255,.12);font-size:.86rem;color:#c3c6e0}
.foot-vat b{color:#fff;font-weight:800;letter-spacing:.04em}
.foot-vat a{color:var(--gold-2);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.foot .copy{color:#9a9dc0}
@media(max-width:560px){.foot-pay{justify-content:center;text-align:center}.foot .fp-logos{justify-content:center}}

/* ---------- category tiles with store images (same as fjr-book.com) + "المزيد" ---------- */
.catgrid{grid-template-columns:repeat(6,1fr)}
.catcard.cc-img,.catcard.cc-more{flex-direction:column;align-items:stretch;text-align:center;gap:10px;padding:10px 10px 12px;
  font:inherit;color:inherit;cursor:pointer;width:100%}
.catcard.cc-img::before,.catcard.cc-more::before,.catcard.cc-img::after,.catcard.cc-more::after{display:none}
.cc-pic{display:grid;place-items:center;aspect-ratio:1;border-radius:12px;overflow:hidden;background:#fff;
  border:1px solid var(--line);color:var(--brand)}
.cc-pic img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s cubic-bezier(.22,1,.36,1)}
.cc-pic svg{width:42%;height:42%}
.cc-img:hover .cc-pic img{transform:scale(1.06)}
.cc-name{font-weight:800;font-size:.88rem;line-height:1.35;color:var(--ink);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.7em}
.catcard:hover .cc-name{color:var(--brand)}
/* more card — soft tint, not a heavy fill */
.cc-more .cc-pic{background:color-mix(in srgb,var(--brand) 7%,var(--surface));border:1.5px dashed color-mix(in srgb,var(--brand) 28%,transparent);color:var(--brand)}
.cc-more-n{font-size:1.6rem;font-weight:800;line-height:1}
.cc-more .cc-name{display:flex;align-items:center;justify-content:center;gap:6px;color:var(--brand)}
.cc-more .cc-name svg{width:16px;height:16px;flex:0 0 auto;transition:transform .3s}
:root[dir="rtl"] .cc-more .cc-name svg{transform:scaleX(-1)}
.catgrid.all .cc-more .cc-name svg{transform:rotate(-90deg)}
/* collapsed: 2 rows of 6 on desktop (11 tiles + more) */
.catgrid:not(.all) .cc-img:nth-child(n+12){display:none}
:root[data-theme="dark"] .cc-pic{border-color:transparent}

/* ---------- softer card hovers (light tint + gentle lift instead of strong color fills) ---------- */
.catcard:hover,.pubcard:hover,.pub-more:hover{transform:translateY(-3px);
  border-color:color-mix(in srgb,var(--brand) 22%,transparent);
  background:color-mix(in srgb,var(--brand) 3%,var(--surface));
  box-shadow:0 10px 26px -16px rgba(12,16,70,.28)}
.catcard:hover::before,.catcard:hover::after,.pubcard:hover::after{opacity:0;transform:scaleX(0)}
.catcard:hover .cc-ic{transform:none;background:linear-gradient(135deg,var(--c1),var(--c2))}
.catcard:hover .cc-body b{color:var(--brand)}
.catcard:hover .cc-n,.catcard:hover .cc-arrow{color:var(--ink-soft)}
.catcard:hover .cc-glow::before,.pubcard:hover .pub-glow::before{animation:none}
.pubcard:hover .pub-logo{transform:none}
.pubcard:hover .pub-go{background:color-mix(in srgb,var(--brand) 10%,transparent);color:var(--brand)}
.pubcard.feat:hover{background:linear-gradient(135deg,var(--c1),var(--c2));border-color:transparent;transform:translateY(-3px);
  box-shadow:0 10px 26px -16px rgba(12,16,70,.4)}
.pubcard.feat:hover .pub-go{background:rgba(255,255,255,.18);color:#fff}
.pcard:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--brand) 18%,transparent);
  box-shadow:0 10px 24px -16px rgba(12,16,70,.28)}
.pc-add:hover{background:var(--brand-2);color:#fff;transform:none}
.cc-img:hover .cc-pic img{transform:scale(1.03)}
.mtile:hover,.btile:hover{transform:translateY(-2px);box-shadow:0 10px 24px -16px rgba(12,16,70,.35)}
.mtile:hover img{transform:scale(1.03)}
:root[data-theme="dark"] .catcard:hover,:root[data-theme="dark"] .pubcard:not(.feat):hover{background:color-mix(in srgb,#fff 3%,var(--surface))}

/* ---------- featured publisher (Waha) — simple branded row ---------- */
.waha{padding:26px 0;--w1:#0d3326;--w2:#1c5a42;--wg:#e6c96f}
.waha-box{border-radius:22px;padding:22px 24px 24px;color:#fff;background:linear-gradient(150deg,var(--w2),var(--w1))}
.waha-head{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.waha-logo{width:52px;height:52px;flex:0 0 auto;border-radius:14px;background:#fff;padding:4px}
.waha-logo img{width:100%;height:100%;object-fit:contain;display:block}
.waha-tt{flex:1;min-width:0}
.waha-eyebrow{font-size:.72rem;font-weight:700;color:var(--wg)}
.waha-tt h2{color:#fff;font-size:1.5rem}
.waha-all{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;font-weight:700;font-size:.88rem;color:#fff;opacity:.9}
.waha-all:hover{opacity:1;color:var(--wg)}
.waha-all svg{width:16px;height:16px}
:root[dir="rtl"] .waha-all svg{transform:scaleX(-1)}
.waha-books{display:grid;grid-auto-flow:column;grid-auto-columns:150px;gap:14px;overflow-x:auto;scrollbar-width:none;
  scroll-snap-type:x proximity;overscroll-behavior-x:contain}
.waha-books::-webkit-scrollbar{display:none}
.wb{display:flex;flex-direction:column;gap:6px;scroll-snap-align:start;color:#fff}
.wb img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:8px;display:block;background:rgba(255,255,255,.08)}
.wb-t{font-weight:700;font-size:.88rem;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wb-f{display:flex;align-items:center;justify-content:space-between;gap:8px}
.wb-p{font-weight:800;font-size:.9rem;color:var(--wg)}
.wb-add{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:rgba(255,255,255,.14);color:#fff;transition:background .2s}
.wb-add:hover{background:var(--wg);color:var(--w1)}
.wb-add svg{width:15px;height:15px}
