/* =====================================================================
   Design tokens
   Contrast is deliberately mid-weight: body text sits at ~11:1 on white,
   secondary text at ~5.4:1 (never the washed-out #999 default), and
   surfaces step gently rather than jumping black-on-white.
   ===================================================================== */
:root{
  --brand:#1f6feb;
  --brand-ink:#ffffff;
  --brand-soft:color-mix(in srgb, var(--brand) 10%, #ffffff);

  --ink:#1a1d21;          /* primary text   */
  --ink-2:#4a5159;        /* secondary text */
  --ink-3:#6b737c;        /* tertiary/meta  */

  --surface:#ffffff;
  --surface-2:#f7f8fa;
  --surface-3:#eef0f3;
  --line:#dfe3e8;

  --ok:#16794b; --ok-bg:#e8f5ee;
  --warn:#8a5a00; --warn-bg:#fdf3e0;
  --err:#b3261e; --err-bg:#fdeceb;

  --radius:12px;
  --radius-sm:8px;
  --shadow:0 1px 2px rgba(16,24,40,.05), 0 4px 12px rgba(16,24,40,.06);
  --maxw:1200px;
  --font-ar:'IBM Plex Sans Arabic', system-ui, sans-serif;
  --font-en:'Inter', system-ui, -apple-system, sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--surface-2);
  color:var(--ink);
  font-family:var(--font-en);
  font-size:16px;
  line-height:1.65;
}
body.lang-ar{font-family:var(--font-ar); line-height:1.85}

img{max-width:100%;height:auto;display:block}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{margin:0 0 .5em;line-height:1.3;font-weight:650;color:var(--ink)}
h1{font-size:1.9rem} h2{font-size:1.45rem} h3{font-size:1.15rem} h4{font-size:1rem}
p{margin:0 0 1em}
.muted{color:var(--ink-2)}
.meta{color:var(--ink-3);font-size:.875rem}

.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:20px}

/* ---------- header ---------- */
.site-header{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.header-inner{display:flex;align-items:center;gap:24px;min-height:68px}
.brand-text{font-weight:700;font-size:1.2rem;color:var(--ink)}
.brand-logo{max-height:40px;width:auto}
.brand:hover{text-decoration:none}
.main-nav{display:flex;gap:22px;margin-inline-end:auto}
.main-nav a{color:var(--ink-2);font-weight:500;padding:6px 0;border-bottom:2px solid transparent}
.main-nav a:hover{color:var(--ink);text-decoration:none}
.main-nav a.is-active{color:var(--brand);border-bottom-color:var(--brand)}
.header-actions{display:flex;align-items:center;gap:10px}
.lang-toggle{
  border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:5px 11px;font-size:.85rem;font-weight:600;color:var(--ink-2);background:var(--surface)
}
.lang-toggle:hover{background:var(--surface-3);text-decoration:none;color:var(--ink)}
.icon-btn{position:relative;display:grid;place-items:center;width:38px;height:38px;border-radius:var(--radius-sm);color:var(--ink-2)}
.icon-btn:hover{background:var(--surface-3)}
.cart-badge{
  position:absolute;inset-block-start:2px;inset-inline-end:2px;
  background:var(--brand);color:var(--brand-ink);font-size:.68rem;font-weight:700;
  min-width:17px;height:17px;border-radius:9px;display:grid;place-items:center;padding:0 4px
}
.icon-cart,.icon-user{width:21px;height:21px;background:currentColor;display:block}
.icon-cart{-webkit-mask:var(--m) center/contain no-repeat;mask:var(--m) center/contain no-repeat;
  --m:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='9' cy='21' r='1'/><circle cx='20' cy='21' r='1'/><path d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'/></svg>")}
.icon-user{-webkit-mask:var(--m) center/contain no-repeat;mask:var(--m) center/contain no-repeat;
  --m:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/><circle cx='12' cy='7' r='4'/></svg>")}
.nav-toggle{display:none;flex-direction:column;gap:4px;background:none;border:0;padding:8px;cursor:pointer}
.nav-toggle span{width:20px;height:2px;background:var(--ink-2);border-radius:2px}

/* ---------- layout ---------- */
.site-main{min-height:60vh;padding-block:32px}
.section{margin-block:44px}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:20px}

.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.card-pad{padding:22px}

.grid{display:grid;gap:20px}
.grid-products{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}

/* ---------- product card ---------- */
.product-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .18s,transform .18s}
.product-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.product-thumb{aspect-ratio:1;background:var(--surface-3);object-fit:cover;width:100%}
.product-body{padding:14px 15px 16px;display:flex;flex-direction:column;gap:6px;flex:1}
.product-name{font-weight:600;font-size:.97rem;color:var(--ink);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.product-price{font-weight:700;color:var(--ink);margin-top:auto}
.product-price .was{color:var(--ink-3);font-weight:500;text-decoration:line-through;font-size:.87rem;margin-inline-start:8px}
.badge{display:inline-block;font-size:.72rem;font-weight:700;padding:3px 8px;border-radius:99px}
.badge-sale{background:var(--err-bg);color:var(--err)}
.badge-out{background:var(--surface-3);color:var(--ink-2)}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font:inherit;font-weight:600;cursor:pointer;border:1px solid transparent;
  padding:11px 20px;border-radius:var(--radius-sm);transition:background .15s,border-color .15s;
}
.btn:hover{text-decoration:none}
.btn-primary{background:var(--brand);color:var(--brand-ink)}
.btn-primary:hover{filter:brightness(.93)}
.btn-outline{background:var(--surface);border-color:var(--line);color:var(--ink)}
.btn-outline:hover{background:var(--surface-3)}
.btn-ghost{background:transparent;color:var(--ink-2)}
.btn-ghost:hover{background:var(--surface-3);color:var(--ink)}
.btn-block{width:100%}
.btn-sm{padding:7px 14px;font-size:.875rem}
.btn:disabled{opacity:.55;cursor:not-allowed}

/* ---------- forms ---------- */
.field{margin-bottom:16px}
.label{display:block;font-weight:600;font-size:.9rem;margin-bottom:6px;color:var(--ink)}
.input,.select,.textarea{
  width:100%;font:inherit;color:var(--ink);background:var(--surface);
  border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 13px;
}
.input:focus,.select:focus,.textarea:focus{
  outline:none;border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)
}
.textarea{min-height:110px;resize:vertical}
.help{font-size:.82rem;color:var(--ink-3);margin-top:4px}
.error-text{font-size:.85rem;color:var(--err);margin-top:4px}

/* ---------- alerts ---------- */
.alert{padding:12px 16px;border-radius:var(--radius-sm);margin-block:16px;border:1px solid transparent;font-size:.94rem}
.alert-success{background:var(--ok-bg);color:var(--ok);border-color:color-mix(in srgb,var(--ok) 25%,transparent)}
.alert-error{background:var(--err-bg);color:var(--err);border-color:color-mix(in srgb,var(--err) 25%,transparent)}
.alert-warn{background:var(--warn-bg);color:var(--warn);border-color:color-mix(in srgb,var(--warn) 25%,transparent)}

/* ---------- tables ---------- */
.table{width:100%;border-collapse:collapse;background:var(--surface)}
.table th,.table td{padding:12px 14px;text-align:start;border-bottom:1px solid var(--line)}
.table th{font-size:.82rem;font-weight:600;color:var(--ink-2);background:var(--surface-2);text-transform:uppercase;letter-spacing:.02em}
.table tbody tr:hover{background:var(--surface-2)}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius)}

.status{display:inline-block;font-size:.78rem;font-weight:600;padding:3px 10px;border-radius:99px}
.status-pending{background:var(--warn-bg);color:var(--warn)}
.status-paid,.status-delivered{background:var(--ok-bg);color:var(--ok)}
.status-processing,.status-shipped{background:var(--brand-soft);color:var(--brand)}
.status-cancelled,.status-refunded{background:var(--surface-3);color:var(--ink-2)}

/* ---------- hero ---------- */
.hero{background:linear-gradient(180deg,var(--brand-soft),var(--surface));border-bottom:1px solid var(--line);padding-block:56px;text-align:center}
.hero h1{font-size:2.2rem;margin-bottom:.35em}
.hero p{color:var(--ink-2);max-width:600px;margin-inline:auto;font-size:1.05rem}
.hero .btn{margin-top:20px}

/* ---------- empty state ---------- */
.empty{text-align:center;padding:56px 20px;color:var(--ink-2)}
.empty h3{color:var(--ink)}

/* ---------- footer ---------- */
.site-footer{background:var(--surface);border-top:1px solid var(--line);margin-top:56px;padding-block:36px 0}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:28px}
.footer-grid a{display:block;color:var(--ink-2);font-size:.92rem;padding-block:3px}
.footer-grid a:hover{color:var(--brand)}
.footer-bottom{border-top:1px solid var(--line);margin-top:28px;padding-block:18px;color:var(--ink-3);font-size:.87rem}

/* ---------- numerals: keep Latin digits in Arabic ---------- */
.lang-ar .num,.lang-ar .table td,.lang-ar .product-price,.lang-ar [dir="ltr"]{
  font-feature-settings:"tnum";
  font-variant-numeric:tabular-nums;
}

/* ---------- responsive ---------- */
@media (max-width:860px){
  .main-nav{
    display:none;position:absolute;inset-block-start:68px;inset-inline:0;
    flex-direction:column;gap:0;background:var(--surface);
    border-bottom:1px solid var(--line);padding:8px 20px 14px
  }
  .main-nav.is-open{display:flex}
  .main-nav a{padding:11px 0;border-bottom:1px solid var(--line)}
  .main-nav a.is-active{border-bottom-color:var(--line)}
  .nav-toggle{display:flex}
  .hero h1{font-size:1.6rem}
  h1{font-size:1.5rem}
}
