/* ============================================================
   Exira — Modern Design System (shared across all pages)
   ============================================================ */
@import url("https://fonts.googleapis.com/css2?family=Tajawal:wght@300;400;500;700;800;900&display=swap");

:root{
  --teal:#0E9C8A; --teal-600:#0B8C7B; --teal-700:#0A7567; --teal-50:#E8F7F4; --teal-100:#CFEFE9;
  --ink:#11272C; --slate:#3D5159; --muted:#6E838B; --line:#E8EDEF;
  --bg:#F3F6F7; --surface:#FFFFFF; --soft:#F7FAFB;
  --amber:#F59E0B; --red:#E4453A; --green:#16A34A;
  --shadow-sm:0 1px 2px rgba(16,40,44,.06);
  --shadow:0 6px 22px rgba(16,40,44,.08);
  --shadow-lg:0 16px 40px rgba(16,40,44,.14);
  --r-sm:12px; --r:16px; --r-lg:22px; --r-xl:30px;
  --maxw:1280px;
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:'Tajawal',system-ui,sans-serif;background:var(--bg);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font-family:inherit;cursor:pointer;border:none;background:none}
.exira-wrap{max-width:var(--maxw);margin:0 auto;padding:0 18px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}

/* ===== Buttons ===== */
.ex-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 22px;border-radius:13px;font-weight:800;font-size:14.5px;transition:.2s;cursor:pointer}
.ex-btn svg{width:18px;height:18px}
.ex-btn--primary{background:var(--teal);color:#fff;box-shadow:0 6px 16px rgba(14,156,138,.28)}
.ex-btn--primary:hover{background:var(--teal-700);box-shadow:0 10px 22px rgba(14,156,138,.4);transform:translateY(-1px)}
.ex-btn--ghost{background:var(--teal-50);color:var(--teal-700)}
.ex-btn--ghost:hover{background:var(--teal-100)}
.ex-btn--dark{background:var(--ink);color:#fff}
.ex-btn--block{width:100%}
.ex-btn--lg{height:52px;font-size:16px;border-radius:14px}

/* ===== Announcement / Header / Catbar ===== */
.ex-announce{background:linear-gradient(90deg,var(--teal-700),var(--teal));color:#fff;font-size:13.5px;font-weight:500}
.ex-announce .exira-wrap{display:flex;align-items:center;justify-content:space-between;height:40px;gap:12px}
.ex-announce a{color:#fff;opacity:.95}
.ex-announce .a-mini{display:flex;gap:18px;align-items:center}
.ex-announce .a-mini span{display:inline-flex;align-items:center;gap:6px}
@media(max-width:720px){.ex-announce .a-mini span:nth-child(2){display:none}}

.ex-header{position:sticky;top:0;z-index:50;background:var(--surface);box-shadow:var(--shadow-sm)}
.ex-head-main{display:flex;align-items:center;gap:22px;height:78px}
.ex-logo{display:flex;align-items:center;gap:10px;font-weight:900;font-size:25px;color:var(--ink);white-space:nowrap}
.ex-logo .mark{width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,var(--teal),var(--teal-700));display:grid;place-items:center;color:#fff;font-size:22px;box-shadow:0 6px 16px rgba(14,156,138,.35)}
.ex-logo b{color:var(--teal)}
.ex-search{flex:1;position:relative;max-width:640px}
.ex-search input{width:100%;height:50px;border:2px solid var(--line);border-radius:var(--r-sm);background:var(--soft);padding:0 50px 0 16px;font-size:15px;font-family:inherit;transition:.2s;color:var(--ink)}
.ex-search input:focus{outline:none;border-color:var(--teal);background:#fff;box-shadow:0 0 0 4px var(--teal-50)}
.ex-search button{position:absolute;top:5px;right:5px;width:40px;height:40px;border-radius:9px;background:var(--teal);color:#fff;display:grid;place-items:center;transition:.2s}
.ex-search button:hover{background:var(--teal-700)}
.ex-head-actions{display:flex;align-items:center;gap:8px;margin-inline-start:auto}
.ex-hbtn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 12px;border-radius:12px;color:var(--slate);font-size:11.5px;font-weight:600;transition:.2s;position:relative}
.ex-hbtn:hover{background:var(--teal-50);color:var(--teal-700)}
.ex-hbtn svg{width:23px;height:23px}
.nav-cart-badge{position:absolute;top:2px;left:6px;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:var(--amber);color:#fff;font-size:11px;font-weight:800;display:none;align-items:center;justify-content:center}
.ex-catbar{border-top:1px solid var(--line);background:#fff}
.ex-catbar .exira-wrap{display:flex;align-items:center;gap:6px;height:52px;overflow-x:auto;scrollbar-width:none}
.ex-catbar .exira-wrap::-webkit-scrollbar{display:none}
.ex-catbar a{white-space:nowrap;padding:8px 14px;border-radius:999px;font-size:14px;font-weight:600;color:var(--slate);transition:.2s}
.ex-catbar a:hover{background:var(--teal-50);color:var(--teal-700)}
.ex-catbar a.all{font-weight:800}
/* active item follows the current category (tinted with its own color when themed) */
.ex-catbar a.on{background:var(--cat-soft,var(--teal-50));color:var(--cat-dark,var(--teal-700));font-weight:800}
.ex-catbar a.all svg{width:16px;height:16px;vertical-align:-3px;margin-inline-end:4px}
@media(max-width:860px){
  .ex-head-main{height:64px;gap:12px;flex-wrap:wrap;padding-top:12px}
  .ex-logo{font-size:20px}.ex-logo .mark{width:36px;height:36px;font-size:18px}
  .ex-search{order:3;flex-basis:100%;max-width:none;margin-bottom:12px}
  .ex-hbtn span{display:none}
}

/* ===== Page heading / breadcrumb ===== */
.ex-page-head{background:#fff;border-bottom:1px solid var(--line);padding:22px 0}
.ex-crumb{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--muted);margin-bottom:8px}
.ex-crumb a:hover{color:var(--teal-700)}
.ex-page-head h1{margin:0;font-size:28px;font-weight:900}
.ex-page-head p{margin:6px 0 0;color:var(--muted)}

/* ===== Section heading ===== */
.ex-sec{padding:34px 0}
.ex-sec-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.ex-sec-head h2{margin:0;font-size:24px;font-weight:900;position:relative;padding-inline-start:16px}
.ex-sec-head h2::before{content:"";position:absolute;right:0;top:6px;bottom:6px;width:5px;border-radius:999px;background:linear-gradient(var(--teal),var(--teal-700))}
.ex-sec-head a.more{color:var(--teal-700);font-weight:700;font-size:14px}

/* ===== Product card (shared) ===== */
/* Container-based columns (auto-fill) so cards never squish when the grid sits
   next to a sidebar — the column count follows the grid's OWN width, not the viewport. */
.ex-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:16px}
@media(max-width:620px){.ex-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}}
.ex-rail{display:flex;gap:16px;overflow-x:auto;padding-bottom:8px;scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth}
.ex-rail::-webkit-scrollbar{display:none}
.ex-rail .pcard{flex:0 0 230px}
@media(max-width:620px){.ex-rail .pcard{flex-basis:165px}}
/* professional slider wrapper with prev/next arrows (added by exEnhanceRails) */
.ex-slider{position:relative}
.ex-slider-nav{position:absolute;top:44%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;background:#fff;border:1px solid var(--line);box-shadow:0 8px 22px rgba(16,40,44,.16);display:grid;place-items:center;cursor:pointer;z-index:6;color:var(--teal-700);transition:opacity .2s,background .18s,color .18s,transform .18s}
.ex-slider-nav:hover{background:var(--teal);color:#fff;border-color:var(--teal);transform:translateY(-50%) scale(1.06)}
.ex-slider-nav svg{width:21px;height:21px}
.ex-slider-nav.prev{inset-inline-start:-14px}
.ex-slider-nav.next{inset-inline-end:-14px}
.ex-slider-nav[disabled]{opacity:0;pointer-events:none}
@media(max-width:760px){.ex-slider-nav{display:none}}

/* Smooth cross-document page transitions (no white flash) — Chromium 126+, no-op elsewhere */
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.2s}
@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}

.pcard{background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden;display:flex;flex-direction:column;transition:.26s cubic-bezier(.4,0,.2,1);position:relative}
.pcard::after{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--teal),var(--teal-700));transform:scaleX(0);transform-origin:right;transition:.32s;z-index:4}
.pcard:hover{box-shadow:0 20px 44px rgba(16,40,44,.17);transform:translateY(-6px);border-color:transparent}
.pcard:hover::after{transform:scaleX(1)}
.pcard .imgwrap{position:relative;aspect-ratio:1;background:#eef4f4;overflow:hidden}
.pcard .imgwrap img{width:100%;height:100%;object-fit:cover;transition:.4s cubic-bezier(.4,0,.2,1)}
.pcard:hover .imgwrap img{transform:scale(1.08)}
.pcard .disc{position:absolute;top:12px;right:12px;background:linear-gradient(135deg,#E4453A,#F26B61);color:#fff;font-weight:900;font-size:12.5px;padding:5px 11px;border-radius:9px;box-shadow:0 5px 12px rgba(228,69,58,.4);z-index:3}
.pcard .badge2{position:absolute;top:12px;right:12px;background:linear-gradient(135deg,var(--teal),var(--teal-700));color:#fff;font-weight:800;font-size:11.5px;padding:5px 11px;border-radius:9px;box-shadow:0 5px 12px rgba(14,156,138,.35);z-index:3}
.pcard .fav{position:absolute;top:11px;left:11px;width:37px;height:37px;border-radius:50%;background:rgba(255,255,255,.92);backdrop-filter:blur(6px);box-shadow:0 4px 12px rgba(0,0,0,.12);display:grid;place-items:center;color:#b3bfc3;transition:.2s;z-index:3}
.pcard .fav:hover{color:var(--red);transform:scale(1.12)}
.pcard .fav.on{color:var(--red)}
.pcard .fav svg{width:18px;height:18px}
.pbody{padding:14px 15px 15px;display:flex;flex-direction:column;flex:1}
.pbody .brand{font-size:11px;color:var(--teal-700);font-weight:800;letter-spacing:.4px;text-transform:uppercase;margin-bottom:5px}
.pbody .pname{font-size:14.5px;font-weight:700;color:var(--ink);line-height:1.45;min-height:42px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:9px}
.pbody .pname:hover{color:var(--teal-700)}
.rate{display:flex;align-items:center;gap:7px;margin-bottom:11px}
.rate .rnum{display:inline-flex;align-items:center;gap:3px;background:var(--teal-50);color:var(--teal-700);font-weight:800;font-size:11.5px;padding:2px 8px;border-radius:7px}
.rate .rnum svg{width:11px;height:11px}
.rate .stars{color:#F5B301;letter-spacing:1px;font-size:13px}
.rate .rcount{font-size:11.5px;color:var(--muted)}
.price-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:7px}
.price-row .now{font-size:21px;font-weight:900;color:var(--ink);display:inline-flex;align-items:baseline;gap:3px;line-height:1}
.price-row .now i{font-size:12px;font-weight:800;color:var(--muted);font-style:normal}
.price-row .was{font-size:13px;color:var(--muted);text-decoration:line-through}
.price-row .save{background:#E7F7EF;color:#16A34A;font-weight:800;font-size:11px;padding:3px 8px;border-radius:7px}
.deliv{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted);margin-bottom:12px;font-weight:600}
.deliv svg{width:15px;height:15px;color:var(--teal);flex:none}
.pbody .addbtn{margin-top:auto;height:46px;border-radius:13px;background:var(--teal);color:#fff;font-weight:800;font-size:14.5px;display:flex;align-items:center;justify-content:center;gap:8px;position:relative;overflow:hidden;transition:.2s;box-shadow:0 6px 16px rgba(14,156,138,.28)}
.pbody .addbtn::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--teal-700),#0a655a);transform:translateX(105%);transition:.34s cubic-bezier(.4,0,.2,1);z-index:0}
.pbody .addbtn:hover::before{transform:translateX(0)}
.pbody .addbtn span,.pbody .addbtn svg{position:relative;z-index:1}
.pbody .addbtn:disabled{opacity:.7;cursor:default}
.pbody .addbtn svg{width:18px;height:18px}

/* ===== Cards / panels ===== */
.ex-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px}
.ex-field{margin-bottom:16px}
.ex-field label{display:block;font-weight:700;font-size:13.5px;margin-bottom:7px;color:var(--slate)}
.ex-input,.ex-select,.ex-textarea{width:100%;height:48px;border:2px solid var(--line);border-radius:12px;background:var(--soft);padding:0 14px;font-size:15px;font-family:inherit;color:var(--ink);transition:.2s}
.ex-textarea{height:auto;padding:12px 14px;min-height:110px}
.ex-input:focus,.ex-select:focus,.ex-textarea:focus{outline:none;border-color:var(--teal);background:#fff;box-shadow:0 0 0 4px var(--teal-50)}
.ex-chip{display:inline-flex;align-items:center;gap:6px;background:var(--teal-50);color:var(--teal-700);font-weight:700;font-size:12.5px;padding:5px 11px;border-radius:999px}

/* ===== Footer ===== */
.ex-footer{background:#0E2A2E;color:#cdd9db;margin-top:30px}
.ex-foot-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:28px;padding:48px 0 32px}
.ex-foot-col h4{color:#fff;font-size:16px;font-weight:800;margin:0 0 16px}
.ex-foot-col a{display:block;color:#a9bcbf;font-size:14px;padding:6px 0;transition:.2s}
.ex-foot-col a:hover{color:var(--teal);padding-inline-start:5px}
.ex-foot-brand .ex-logo{color:#fff;margin-bottom:14px}
.ex-foot-brand p{font-size:13.5px;color:#9fb3b6;line-height:1.8}
.ex-foot-social{display:flex;gap:10px;margin-top:16px}
.ex-foot-social a{width:40px;height:40px;border-radius:11px;background:rgba(255,255,255,.08);display:grid;place-items:center;color:#fff;transition:.2s}
.ex-foot-social a:hover{background:var(--teal)}
.ex-foot-social svg{width:19px;height:19px}
.ex-foot-bar{border-top:1px solid rgba(255,255,255,.1);padding:18px 0;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:13px;color:#90a4a7}
.ex-pay{display:flex;gap:8px;align-items:center}
.ex-pay span{background:#fff;color:#0E2A2E;border-radius:6px;padding:4px 9px;font-weight:800;font-size:11px}
@media(max-width:860px){.ex-foot-top{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.ex-foot-top{grid-template-columns:1fr}}

/* ===== Toast / skeleton ===== */
.ex-toast{position:fixed;bottom:24px;inset-inline-start:50%;transform:translateX(50%) translateY(120px);background:var(--ink);color:#fff;padding:13px 22px;border-radius:13px;font-weight:700;z-index:9999;box-shadow:var(--shadow-lg);transition:.35s}
.ex-toast.show{transform:translateX(50%) translateY(0)}
.ex-toast.err{background:var(--red)}
.ex-skel{background:linear-gradient(90deg,#eef2f3,#f7fafb,#eef2f3);background-size:200% 100%;animation:exsk 1.2s infinite;border-radius:var(--r);min-height:280px}
@keyframes exsk{0%{background-position:200% 0}100%{background-position:-200% 0}}
.ex-empty{text-align:center;padding:60px 20px;color:var(--muted)}
.ex-empty .ic{font-size:46px;margin-bottom:12px}

/* ===== Unified breadcrumb bar (injected by the shell on every page) ===== */
.ex-crumbbar{background:#fff;border-bottom:1px solid var(--line)}
.ex-crumbbar .exira-wrap{display:flex;align-items:center;gap:8px;height:46px;font-size:13px;color:var(--muted);overflow-x:auto;white-space:nowrap;scrollbar-width:none}
.ex-crumbbar .exira-wrap::-webkit-scrollbar{display:none}
.ex-crumbbar a{color:var(--muted);transition:.15s}
.ex-crumbbar a:hover{color:var(--teal-700)}
.ex-crumbbar .sep{color:#c8d2d5}
.ex-crumbbar .cur{color:var(--ink);font-weight:700}
.ex-crumbbar.cat-themed{background:var(--cat-soft,#fff);border-bottom-color:transparent}
.ex-crumbbar.cat-themed .cur{color:var(--cat-dark,var(--ink))}
.ex-crumbbar.cat-themed a:hover{color:var(--cat-dark)}

/* ===== Per-category theming (active when body.cat-on; vars set by exApplyCatTheme) ===== */
.ex-page-head.cat-band{background:linear-gradient(120deg,var(--cat-dark,var(--teal-700)),var(--cat-main,var(--teal)));border-bottom:none;color:#fff;position:relative;overflow:hidden}
.ex-page-head.cat-band::after{content:"";position:absolute;width:300px;height:300px;border-radius:50%;background:rgba(255,255,255,.08);top:-130px;left:-70px}
.ex-page-head.cat-band .exira-wrap{position:relative;z-index:2}
.ex-page-head.cat-band h1{color:#fff}
.ex-page-head.cat-band p{color:rgba(255,255,255,.92)}
body.cat-on .pcard .addbtn{background:var(--cat-main,var(--teal));box-shadow:0 6px 16px rgba(0,0,0,.14)}
body.cat-on .pcard .addbtn::before{background:var(--cat-dark,var(--teal-700))}
body.cat-on .pcard::after{background:linear-gradient(90deg,var(--cat-main,var(--teal)),var(--cat-dark,var(--teal-700)))}
body.cat-on .rate .rnum{background:var(--cat-soft,var(--teal-50));color:var(--cat-dark,var(--teal-700))}
body.cat-on .pbody .brand{color:var(--cat-dark,var(--teal-700))}
