/*
 * Orelux — orelux-eg.com
 * Copyright (c) 2026 Orelux. All rights reserved.
 * حقوق النشر محفوظة لـ Orelux — orelux-eg.com
 * 
 * This file is proprietary. Copying, redistribution, resale or reuse of
 * this source, its design, its text or its images — in whole or in part,
 * by any person or automated system — is prohibited without written
 * permission from the owner.
 * 
 * يُمنع نسخ أو إعادة نشر أو بيع أو إعادة استخدام هذا الملف أو تصميمه أو
 * نصوصه أو صوره، كلياً أو جزئياً، بأي وسيلة بشرية أو آلية، دون إذن كتابي.
 * 
 * ORELUX-COPYRIGHT
 */
/* ==========================================================================
   Orelux — Luxury Marble Store  |  Storefront styles
   Palette: charcoal + warm gold + cream marble
   ========================================================================== */
:root{
  --ink:#171310;          /* near-black charcoal */
  --ink-2:#2b2621;
  --gold:#c9a24b;         /* warm gold */
  --gold-d:#a9832f;
  --gold-l:#e4cd94;       /* light champagne */
  --gold-grad:linear-gradient(135deg,#e6cf95 0%,#c9a24b 45%,#a9832f 100%);
  --cream:#f7f3ec;        /* marble cream */
  --sand:#efe9df;
  --paper:#ffffff;
  --muted:#8a8073;
  --line:#e7e0d4;
  --hair:rgba(201,162,75,.28);   /* gold hairline */
  --text:#2c2822;
  --danger:#b23b3b;
  --green:#3c7a52;
  --radius:14px;
  --radius-lg:22px;
  --shadow:0 22px 60px -18px rgba(26,23,19,.22);
  --shadow-sm:0 10px 30px -12px rgba(26,23,19,.14);
  --shadow-gold:0 18px 40px -14px rgba(169,131,47,.4);
  --maxw:1200px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --ff-head:'Cormorant Garamond', 'Cairo', Georgia, serif;
  --ff-body:'Jost','Cairo', system-ui, -apple-system, 'Segoe UI', Tahoma, sans-serif;

  /* Surfaces that stay dark in BOTH themes (footer, hero, dark sections).
     Kept separate from --ink, which is a text colour and flips with theme. */
  --brand-ink:#171310;
  --surface-dark:var(--brand-ink);
  --surface-dark-2:#241f19;
  --on-dark:#e7ddcb;
  --on-dark-soft:#b8ad99;
  --on-dark-strong:#ffffff;
  --hero-1:#3a332b; --hero-2:#211d18; --hero-3:#120f0c;
  --header-bg:rgba(247,243,236,.82);
  --header-bg-solid:rgba(247,243,236,.96);
  --glass:rgba(255,255,255,.82);
  --glass-solid:#ffffff;
  --scheme:light;
}

/* ---------- Dark theme ---------- */
:root[data-theme="dark"]{
  --ink:#f2ece2;              /* text role flips; dark surfaces do not */
  --ink-2:#ddd5c8;
  --text:#ddd5c8;
  --muted:#9d9487;
  --cream:#14110e;            /* page background */
  --sand:#1b1713;             /* soft section background */
  --paper:#1f1a16;            /* cards */
  --line:#332c24;
  --hair:rgba(201,162,75,.30);
  --gold-d:#e0bd6d;   /* lifted for contrast on dark */
  --shadow:0 22px 60px -18px rgba(0,0,0,.62);
  --shadow-sm:0 10px 30px -12px rgba(0,0,0,.5);
  --shadow-gold:0 18px 40px -14px rgba(201,162,75,.28);
  --header-bg:rgba(20,17,14,.82);
  --header-bg-solid:rgba(20,17,14,.96);
  --glass:rgba(40,34,28,.86);
  --glass-solid:#2a241e;
  --surface-dark:#0f0d0b;
  --surface-dark-2:#1a1611;
  --hero-1:#2b2620; --hero-2:#181510; --hero-3:#0b0908;
  --green:#66b183;
  --danger:#e07272;
  --scheme:dark;
  color-scheme:dark;
}
.rtl{ --ff-head:'Cairo','Cormorant Garamond', serif; --ff-body:'Cairo', system-ui, 'Segoe UI', Tahoma, sans-serif; }

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;font-family:var(--ff-body);color:var(--text);background:var(--cream);
  line-height:1.7;font-weight:400;font-size:16px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
::selection{background:var(--gold);color:var(--ink)}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--ff-head);color:var(--ink);line-height:1.12;margin:0 0 .4em;font-weight:600;letter-spacing:.005em}
h1{font-size:clamp(2.2rem,5vw,3.8rem);font-weight:700}
h2{font-size:clamp(1.7rem,3.2vw,2.7rem)}
.container{max-width:var(--maxw);margin:0 auto;padding:0 22px}
.text-center{text-align:center}

/* ---------- Scroll reveal ---------- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal[data-d="1"]{transition-delay:.08s}
.reveal[data-d="2"]{transition-delay:.16s}
.reveal[data-d="3"]{transition-delay:.24s}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ---------- Buttons ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 32px;border-radius:40px;font-family:var(--ff-body);font-weight:500;
  font-size:.95rem;cursor:pointer;border:1.5px solid transparent;transition:.35s var(--ease);
  letter-spacing:.05em;white-space:nowrap;overflow:hidden}
.btn::after{content:"";position:absolute;top:0;inset-inline-start:-120%;width:60%;height:100%;
  background:linear-gradient(115deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-18deg);transition:.7s var(--ease)}
.btn:hover::after{inset-inline-start:140%}
.btn-lg{padding:16px 38px;font-size:1.02rem}
.btn-block{display:flex;width:100%}
.btn-dark{background:var(--surface-dark);color:var(--on-dark-strong)}
.btn-dark:hover{background:#000;transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.btn-gold{background:var(--gold-grad);color:#2a2113;font-weight:600;box-shadow:var(--shadow-gold)}
.btn-gold:hover{transform:translateY(-2px);box-shadow:0 22px 46px -14px rgba(169,131,47,.55);color:#241c10}
.btn-outline{background:transparent;border-color:var(--ink);color:var(--ink)}
.btn-outline:hover{background:var(--surface-dark);color:var(--on-dark-strong);transform:translateY(-2px)}
.btn-outline-light{background:transparent;border-color:rgba(255,255,255,.5);color:#fff}
.btn-outline-light:hover{background:#fff;color:var(--ink);border-color:#fff;transform:translateY(-2px)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold-d)}
.btn-whatsapp{background:#25d366;color:#fff}
.btn-whatsapp:hover{background:#1eb257;transform:translateY(-2px)}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.btn[disabled]::after{display:none}
.link-danger{background:none;border:none;color:var(--danger);cursor:pointer;font-size:.85rem;text-decoration:underline;padding:0}

/* ---------- Top bar ---------- */
.topbar{background:var(--surface-dark);color:#cdbfa6;font-size:.78rem;letter-spacing:.04em}
.topbar-inner{display:flex;justify-content:space-between;align-items:center;height:38px}
.topbar-ship{color:var(--gold)}
@media(max-width:640px){.topbar-inner span:first-child{display:none}.topbar-inner{justify-content:center}}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:100;background:var(--header-bg);
  backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);
  border-bottom:1px solid transparent;transition:.4s var(--ease)}
.site-header.scrolled{background:var(--header-bg-solid);border-bottom-color:var(--hair);box-shadow:0 10px 30px -18px rgba(26,23,19,.3)}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:82px;gap:20px;transition:.4s var(--ease)}
.site-header.scrolled .header-inner{height:70px}
.logo-text{font-family:var(--ff-head);font-size:1.75rem;font-weight:700;letter-spacing:.2em;
  color:var(--ink);text-transform:uppercase;background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.main-nav{display:flex;align-items:center;gap:24px}
.main-nav a{font-size:.9rem;letter-spacing:.04em;color:var(--ink-2);position:relative;padding:6px 0;font-weight:500}
.main-nav a::after{content:"";position:absolute;bottom:0;inset-inline:0;height:2px;background:var(--gold);transform:scaleX(0);transition:.25s}
.main-nav a:hover::after,.main-nav a.active::after{transform:scaleX(1)}
.main-nav a.active{color:var(--gold-d)}
.header-actions{display:flex;align-items:center;gap:11px}
/* One step down before the drawer takes over: the bar still fits, but only
   just, so the nav loosens its grip on space rather than crowding the logo. */
@media(max-width:1320px){
  .main-nav{gap:18px}
  .main-nav a{font-size:.86rem}
  .header-actions{gap:9px}
}
.lang-btn{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--line);
  border-radius:50%;font-size:.8rem;font-weight:600;transition:.2s}
.lang-btn:hover{border-color:var(--gold);color:var(--gold-d)}
.cart-btn{position:relative;color:var(--ink);display:grid;place-items:center}
.cart-count{position:absolute;top:-8px;inset-inline-end:-8px;background:var(--gold);color:var(--ink);
  font-size:.68rem;font-weight:700;min-width:18px;height:18px;border-radius:10px;display:grid;place-items:center;padding:0 4px}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px}
.nav-toggle span{width:24px;height:2px;background:var(--ink);transition:.3s}
/* Created by main.js on every page; only the drawer layout uses it. */
.nav-close,.nav-backdrop{display:none}

@media(max-width:1180px){
  .nav-toggle{display:flex;order:3}
  .main-nav{position:fixed;inset:0 0 0 auto;top:0;height:100vh;width:82%;max-width:320px;
    background:var(--cream);flex-direction:column;align-items:flex-start;justify-content:flex-start;
    padding:90px 30px;gap:6px;transform:translateX(100%);transition:.3s;box-shadow:var(--shadow);z-index:99}
  .rtl .main-nav{inset:0 auto 0 0;transform:translateX(-100%)}
  .main-nav.open{transform:translateX(0)}
  .main-nav a{width:100%;padding:14px 0;border-bottom:1px solid var(--line);font-size:1.05rem}

  /* Ways out of the open drawer. The toggle that opened it ends up
     underneath, and a phone has no Escape key, so without these a visitor
     who opened the menu only to look has to pick a link to escape it. */
  .nav-close{position:absolute;top:22px;inset-inline-end:22px;width:40px;height:40px;
    display:grid !important;place-items:center;background:none;border:none;cursor:pointer;
    font-size:2rem;line-height:1;color:var(--ink);opacity:.65;padding:0}
  .nav-close:hover,.nav-close:focus-visible{opacity:1;color:var(--gold-d)}
  .nav-backdrop{display:block;position:fixed;inset:0;z-index:98;background:rgba(0,0,0,.5);border:none;
    -webkit-tap-highlight-color:transparent}
  .nav-backdrop[hidden]{display:none !important}
  body.nav-open{overflow:hidden}

  /* The drawer is position:fixed inside .site-header. A backdrop-filter on
     an ancestor makes that ancestor the containing block for fixed children,
     which breaks the off-canvas placement and leaves the closed menu sitting
     on top of the page. The glass effect is a desktop refinement; drop it at
     drawer widths and give the bar a solid background instead. */
  .site-header{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--header-bg-solid)}
}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:90vh;display:flex;align-items:center;color:var(--on-dark-strong);
  background:radial-gradient(120% 130% at 75% 15%,var(--hero-1) 0,var(--hero-2) 45%,var(--hero-3) 100%);overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;opacity:.5;pointer-events:none;
  background:radial-gradient(circle at 22% 28%,rgba(201,162,75,.35) 0,transparent 42%),radial-gradient(circle at 82% 72%,rgba(230,214,176,.22) 0,transparent 48%)}
.hero::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E")}
.hero-overlay{position:absolute;inset:0;pointer-events:none;background:
  repeating-linear-gradient(115deg,rgba(255,255,255,.025) 0 1px,transparent 1px 68px)}

/* ---------- Hero with a photograph ----------
   The image sits behind a directional scrim: opaque where the headline is,
   clearing toward the far side so the room stays visible. Without this the
   white type is unreadable over a bright interior shot. */
/* The hero photo pans with a scale() animation. .hero-photo clips it, but the
   scaled box still rounds a couple of pixels past the section edge on narrow
   screens, which is enough to give the page a horizontal scrollbar. */
.hero{overflow:hidden}
.hero.has-photo{background:var(--surface-dark)}
.hero-photo{position:absolute;inset:0;z-index:0;overflow:hidden}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 62%;
  transform:scale(1.04);animation:heroPan 22s ease-in-out infinite alternate}
@keyframes heroPan{from{transform:scale(1.04) translate3d(0,0,0)}to{transform:scale(1.12) translate3d(-1.2%,-1%,0)}}
@media(prefers-reduced-motion:reduce){.hero-photo img{animation:none}}

.hero.has-photo .hero-scrim{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(to left,rgba(14,11,9,.06) 0%,rgba(14,11,9,.55) 42%,rgba(14,11,9,.86) 72%,rgba(14,11,9,.94) 100%),
    linear-gradient(to top,rgba(14,11,9,.72) 0%,transparent 45%);}
.rtl .hero.has-photo .hero-scrim{
  background:
    linear-gradient(to right,rgba(14,11,9,.06) 0%,rgba(14,11,9,.55) 42%,rgba(14,11,9,.86) 72%,rgba(14,11,9,.94) 100%),
    linear-gradient(to top,rgba(14,11,9,.72) 0%,transparent 45%);}
/* the brand glow still reads on top of the photo, just softer */
.hero.has-photo::before{opacity:.28;z-index:2}
.hero.has-photo::after{opacity:.22;z-index:2}
.hero.has-photo .hero-overlay{z-index:2}
.hero.has-photo .hero-content{z-index:3}
.hero.has-photo .hero-scroll{z-index:3}
@media(max-width:820px){
  /* on narrow screens the text covers the frame, so darken evenly */
  .hero.has-photo .hero-scrim{background:linear-gradient(to top,rgba(14,11,9,.92) 12%,rgba(14,11,9,.66) 60%,rgba(14,11,9,.6) 100%)}
  .hero-photo img{object-position:center 58%}
}
.hero-content{position:relative;max-width:760px;padding-top:60px;padding-bottom:60px;z-index:2}
.hero-eyebrow{display:inline-flex;align-items:center;gap:14px;color:var(--gold-l);letter-spacing:.32em;text-transform:uppercase;
  font-size:.78rem;margin-bottom:24px;font-weight:600;
  opacity:0;animation:heroUp .9s var(--ease) .1s forwards}
.hero-eyebrow::before{content:"";width:46px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}
.hero h1{color:#fff;font-weight:700;margin-bottom:.32em;letter-spacing:.01em;text-shadow:0 2px 30px rgba(0,0,0,.3);
  opacity:0;animation:heroUp 1s var(--ease) .22s forwards}
.hero h1 em{font-style:italic;color:var(--gold-l)}
.hero p{font-size:1.18rem;color:#ddd4c6;max-width:580px;margin-bottom:36px;line-height:1.8;
  opacity:0;animation:heroUp 1s var(--ease) .36s forwards}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap;opacity:0;animation:heroUp 1s var(--ease) .5s forwards}
@keyframes heroUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
.hero-scroll{position:absolute;bottom:26px;inset-inline-start:50%;transform:translateX(-50%);z-index:2;
  color:rgba(255,255,255,.55);font-size:.7rem;letter-spacing:.25em;text-transform:uppercase;text-align:center;
  opacity:0;animation:heroUp 1s var(--ease) .8s forwards}
.rtl .hero-scroll{transform:translateX(50%)}
.hero-scroll span{display:block;width:1px;height:44px;margin:10px auto 0;background:linear-gradient(var(--gold),transparent);
  animation:scrollPulse 2.4s var(--ease) infinite}
@keyframes scrollPulse{0%,100%{opacity:.3;transform:scaleY(.6)}50%{opacity:1;transform:scaleY(1)}}

/* ---------- Trust strip ---------- */
.trust-strip{background:var(--surface-dark);color:#e7ddcb;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.trust-strip .container{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding-top:26px;padding-bottom:26px}
.trust{display:flex;align-items:center;gap:12px;justify-content:center;font-size:.88rem;letter-spacing:.02em;position:relative}
.trust:not(:last-child)::after{content:"";position:absolute;inset-inline-end:0;top:50%;transform:translateY(-50%);width:1px;height:32px;background:var(--hair)}
.trust b{font-size:1.5rem;filter:saturate(1.1)}
@media(max-width:640px){.trust:nth-child(2)::after,.trust:not(:last-child)::after{display:none}}
@media(max-width:640px){.trust-strip .container{grid-template-columns:1fr 1fr}.trust{font-size:.8rem}}

/* ---------- Sections ---------- */
.section{padding:92px 0}
.section-soft{background:var(--sand)}
.section-dark{background:radial-gradient(120% 130% at 80% 10%,var(--surface-dark-2),var(--surface-dark));color:var(--on-dark)}
.section-head{text-align:center;max-width:640px;margin:0 auto 56px}
.section-head .kicker{display:inline-flex;align-items:center;gap:12px;color:var(--gold-d);letter-spacing:.26em;text-transform:uppercase;
  font-size:.74rem;font-weight:700;margin-bottom:16px}
.section-head .kicker::before,.section-head .kicker::after{content:"";width:26px;height:1px;background:var(--gold);opacity:.6}
.section-head.light h2{color:#fff}
.section-head.light .kicker{color:var(--gold)}
.section-head h2{margin:0}
.kicker{font-family:var(--ff-body)}

/* ---------- Grids ---------- */
.grid{display:grid;gap:26px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:1000px){.grid-4{grid-template-columns:repeat(3,1fr)}}
@media(max-width:860px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}

/* ---------- Category cards ---------- */
.cat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}
@media(max-width:900px){.cat-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.cat-grid{grid-template-columns:1fr 1fr}}
.cat-card{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  padding:30px 16px;text-align:center;transition:.4s var(--ease);box-shadow:var(--shadow-sm);overflow:hidden}
.cat-card::before{content:"";position:absolute;inset:0;background:var(--gold-grad);opacity:0;transition:.4s var(--ease)}
.cat-card>*{position:relative}
.cat-card:hover{transform:translateY(-6px);border-color:transparent;box-shadow:var(--shadow)}
.cat-card:hover::before{opacity:.06}
.cat-name{display:block;font-family:var(--ff-head);font-size:1.2rem;font-weight:600;color:var(--ink)}
.cat-card:hover .cat-name{color:var(--gold-d)}
.cat-count{display:block;color:var(--muted);font-size:.78rem;margin-top:5px;letter-spacing:.03em}

/* ---------- Product cards ---------- */
.product-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;transition:.45s var(--ease);display:flex;flex-direction:column;box-shadow:var(--shadow-sm)}
.product-card:hover{transform:translateY(-8px);box-shadow:var(--shadow);border-color:var(--hair)}
.product-thumb{position:relative;display:block;aspect-ratio:1/1;overflow:hidden;background:var(--sand)}
.product-thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(23,19,16,.28),transparent 45%);opacity:0;transition:.4s var(--ease)}
.product-card:hover .product-thumb::after{opacity:1}
.product-thumb img{width:100%;height:100%;object-fit:cover;transition:1.1s var(--ease)}
.product-card:hover .product-thumb img{transform:scale(1.08)}
.badge-sale{position:absolute;top:12px;inset-inline-start:12px;background:var(--gold-grad);color:#2a2113;
  font-size:.72rem;font-weight:700;padding:5px 11px;border-radius:20px;letter-spacing:.02em;box-shadow:var(--shadow-gold);z-index:2}
.badge-sale.big{top:16px;inset-inline-start:16px;font-size:.85rem;padding:7px 14px}
.badge-out{position:absolute;bottom:0;inset-inline:0;background:rgba(26,23,19,.82);color:#fff;
  text-align:center;font-size:.78rem;padding:7px}
.product-body{padding:18px;display:flex;flex-direction:column;flex:1}
.product-meta-top{color:var(--gold-d);font-size:.8rem;font-weight:600;margin-bottom:6px}
.product-body h3{font-size:1.15rem;margin:0 0 6px}
.product-body h3 a:hover{color:var(--gold-d)}
.product-summary{color:var(--muted);font-size:.86rem;margin:0 0 16px;flex:1;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.product-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}
.product-price{display:flex;flex-direction:column;line-height:1.2}
.price-now{font-family:var(--ff-head);font-size:1.4rem;font-weight:700;color:var(--ink)}
.price-old{font-size:.85rem;color:var(--muted);text-decoration:line-through}
.btn-add{width:46px;height:46px;border-radius:50%;background:var(--surface-dark);color:var(--on-dark-strong);border:none;
  cursor:pointer;display:grid;place-items:center;transition:.3s var(--ease);flex-shrink:0}
.btn-add:hover{background:var(--gold-grad);color:#2a2113;transform:translateY(-2px) rotate(-4deg);box-shadow:var(--shadow-gold)}
.btn-add[disabled]{opacity:.4;cursor:not-allowed}
.add-mini{margin:0}

/* ---------- Service cards ---------- */
.service-card{background:rgba(255,255,255,.04);border:1px solid rgba(201,162,75,.25);border-radius:var(--radius);
  padding:34px 26px;text-align:center;transition:.25s;color:inherit;display:block}
.service-card.light{background:var(--paper);border-color:var(--line);box-shadow:var(--shadow-sm)}
.section-dark .service-card:hover,.service-card:hover{transform:translateY(-4px);border-color:var(--gold)}
.service-icon{font-size:2.6rem;margin-bottom:14px}
.service-card h3{margin:0 0 8px;font-size:1.3rem}
.section-dark .service-card h3{color:#fff}
.service-card p{font-size:.9rem;color:var(--muted);margin:0}
.section-dark .service-card p{color:#c3b8a4}
.read-more{display:inline-block;margin-top:14px;color:var(--gold-d);font-size:.82rem;font-weight:600}
.service-hero-icon{font-size:4rem;text-align:center;margin-bottom:10px}

/* ---------- Features ---------- */
.feature{text-align:center;padding:24px 20px}
.feature-ic{width:76px;height:76px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;
  font-size:2rem;background:linear-gradient(135deg,#fff,var(--sand));border:1px solid var(--hair);
  box-shadow:var(--shadow-sm);transition:.4s var(--ease)}
.feature:hover .feature-ic{transform:translateY(-4px);box-shadow:var(--shadow-gold);border-color:var(--gold)}
.feature h3{font-size:1.22rem;margin:0 0 6px}
.feature p{color:var(--muted);font-size:.88rem;margin:0}

/* ---------- Reviews ---------- */
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media(max-width:860px){.testi-grid{grid-template-columns:1fr}}
.review-card{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  padding:34px 28px 28px;box-shadow:var(--shadow-sm);transition:.4s var(--ease)}
.review-card::before{content:"\201C";position:absolute;top:6px;inset-inline-end:22px;font-family:var(--ff-head);
  font-size:4.4rem;line-height:1;color:var(--gold);opacity:.22}
.review-card:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:var(--hair)}
.review-stars span{color:#d9d2c4;font-size:1.05rem}
.review-stars span.on{color:var(--gold)}
.review-body{font-style:italic;color:var(--text);margin:14px 0 20px;line-height:1.75}
.review-author{display:flex;align-items:center;gap:12px}
.review-avatar{width:42px;height:42px;border-radius:50%;background:var(--surface-dark);color:var(--gold);
  display:grid;place-items:center;font-weight:700;font-family:var(--ff-head);font-size:1.1rem}
.review-author small{color:var(--muted)}

/* ---------- Posts ---------- */
.post-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);transition:.25s}
.post-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.post-thumb{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--sand)}
.post-thumb img{width:100%;height:100%;object-fit:cover}
.post-body{padding:20px}
.post-date{color:var(--gold-d);font-size:.78rem;font-weight:600}
.post-body h3{font-size:1.25rem;margin:8px 0}
.post-body h3 a:hover{color:var(--gold-d)}
.post-body p{color:var(--muted);font-size:.88rem;margin:0}

/* ---------- CTA ---------- */
.cta{background:radial-gradient(120% 140% at 75% 20%,#3a332b,#1c1813);color:#fff;border-radius:var(--radius-lg);
  padding:76px 30px;text-align:center;max-width:var(--maxw);margin:0 auto;position:relative;overflow:hidden;
  border:1px solid var(--hair)}
.cta::before{content:"";position:absolute;inset:0;opacity:.18;background:radial-gradient(circle at 72% 28%,#c9a24b 0,transparent 42%)}
.cta::after{content:"";position:absolute;inset:14px;border:1px solid rgba(201,162,75,.25);border-radius:calc(var(--radius-lg) - 8px);pointer-events:none}
.cta h2{color:#fff;position:relative;font-size:clamp(1.9rem,3.4vw,2.9rem)}
.cta p{color:#ddd4c6;max-width:520px;margin:0 auto 30px;position:relative}
.cta .btn{position:relative}

/* ---------- Page hero ---------- */
.page-hero{position:relative;background:radial-gradient(120% 160% at 75% 0,#332c24,#1a1611);color:#fff;padding:74px 0 62px;text-align:center;overflow:hidden}
.page-hero::before{content:"";position:absolute;inset:0;opacity:.16;background:radial-gradient(circle at 25% 20%,#c9a24b 0,transparent 45%)}
.page-hero>*{position:relative}
.page-hero h1{color:#fff;margin:0 0 12px}
.breadcrumb{color:#c3b8a4;font-size:.85rem}
.breadcrumb a:hover{color:var(--gold)}
.breadcrumb-top{margin-bottom:26px;color:var(--muted)}
.breadcrumb-top a:hover{color:var(--gold-d)}

/* ---------- Shop layout ---------- */
.shop-layout{display:grid;grid-template-columns:250px 1fr;gap:36px;align-items:start}
@media(max-width:820px){.shop-layout{grid-template-columns:1fr}}
.shop-side{position:sticky;top:96px}
@media(max-width:820px){.shop-side{position:static}}
.side-search{display:flex;flex-direction:column;gap:8px;margin-bottom:24px}
.side-title{font-family:var(--ff-body);text-transform:uppercase;letter-spacing:.1em;font-size:.78rem;
  color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:8px}
.side-cats{list-style:none;padding:0;margin:0}
.side-cats a{display:flex;justify-content:space-between;padding:9px 4px;color:var(--ink-2);
  font-size:.92rem;border-bottom:1px solid var(--line);transition:.2s}
.side-cats a:hover,.side-cats a.active{color:var(--gold-d);padding-inline-start:10px}
.side-cats span{color:var(--muted);font-size:.8rem}
.shop-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:10px}
.result-count{color:var(--muted);font-size:.88rem}
.sort-form{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--muted)}
.sort-form select{padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--paper);font-family:inherit}

/* ---------- Product detail ---------- */
.product-detail{display:grid;grid-template-columns:1.05fr 1fr;gap:48px;align-items:start}
@media(max-width:860px){.product-detail{grid-template-columns:1fr;gap:30px}}
.gallery-main{position:relative;border-radius:var(--radius-lg);overflow:hidden;background:var(--sand);aspect-ratio:1/1}
.gallery-main img{width:100%;height:100%;object-fit:cover}
.gallery-thumbs{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.gallery-thumbs img{width:74px;height:74px;object-fit:cover;border-radius:10px;cursor:pointer;
  border:2px solid transparent;opacity:.7;transition:.2s}
.gallery-thumbs img:hover,.gallery-thumbs img.active{opacity:1;border-color:var(--gold)}
.product-cat-tag{display:inline-block;color:var(--gold-d);letter-spacing:.12em;text-transform:uppercase;font-size:.75rem;font-weight:700;margin-bottom:8px}
.product-info h1{margin:0 0 12px}
.product-rate{display:flex;align-items:center;gap:16px;margin-bottom:18px;color:var(--muted);font-size:.88rem}
.product-rate .stars{color:var(--gold);letter-spacing:2px;font-size:1.05rem}
.product-price-lg{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:18px;
  padding-bottom:18px;border-bottom:1px solid var(--line)}
.product-price-lg .price-now{font-size:2rem}
.product-price-lg .price-save{background:var(--sand);color:var(--gold-d);font-size:.8rem;font-weight:600;padding:4px 10px;border-radius:20px}
.product-lead{color:var(--text);font-size:1.02rem;margin-bottom:16px}
.stock-line{font-size:.85rem;font-weight:600;margin-bottom:20px}
.stock-line.in{color:var(--green)}
.stock-line.out{color:var(--danger)}
.qty-row{display:flex;align-items:center;gap:16px;margin-bottom:18px}
.qty-row label{font-weight:500;font-size:.9rem}
.qty-control{display:flex;align-items:center;border:1px solid var(--line);border-radius:40px;overflow:hidden}
.qty-control button{width:40px;height:44px;background:var(--paper);border:none;font-size:1.2rem;cursor:pointer;color:var(--ink)}
.qty-control button:hover{background:var(--sand)}
.qty-control input{width:54px;height:44px;border:none;text-align:center;font-size:1rem;font-family:inherit;-moz-appearance:textfield}
.qty-control input::-webkit-outer-spin-button,.qty-control input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.add-actions{display:flex;gap:12px;margin-bottom:14px}
.add-actions .btn{flex:1}
.add-form{margin-bottom:8px}
.product-tabs{margin-top:64px;display:grid;grid-template-columns:1fr 1fr;gap:40px}
@media(max-width:760px){.product-tabs{grid-template-columns:1fr;gap:26px}}
.tab-block h2{font-size:1.5rem;border-bottom:2px solid var(--gold);display:inline-block;padding-bottom:6px;margin-bottom:16px}
.tab-block p{color:var(--text);line-height:1.85}
.spec-list{list-style:none;padding:0;margin:0}
.spec-list li{padding:10px 0;border-bottom:1px solid var(--line);position:relative;padding-inline-start:22px;color:var(--text)}
.spec-list li::before{content:"◆";position:absolute;inset-inline-start:0;color:var(--gold);font-size:.7rem;top:14px}
.related{margin-top:70px}

/* ---------- Cart ---------- */
.cart-layout{display:grid;grid-template-columns:1fr 340px;gap:36px;align-items:start}
@media(max-width:820px){.cart-layout{grid-template-columns:1fr}}
.cart-table{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--paper)}
.cart-row{display:grid;grid-template-columns:80px 1fr 90px 100px;gap:14px;align-items:center;
  padding:14px;border-bottom:1px solid var(--line)}
.cart-row:last-child{border-bottom:none}
.cart-thumb img{width:80px;height:80px;object-fit:cover;border-radius:10px}
.cart-name{font-family:var(--ff-head);font-size:1.1rem;font-weight:600;color:var(--ink);display:block}
.cart-unit{color:var(--muted);font-size:.82rem}
.cart-qty input{width:100%;padding:9px;border:1px solid var(--line);border-radius:8px;text-align:center;font-family:inherit}
.cart-line{font-weight:700;text-align:end;font-family:var(--ff-head);font-size:1.1rem}
.cart-actions{display:flex;justify-content:space-between;gap:12px;margin-top:16px;flex-wrap:wrap}
@media(max-width:560px){
  .cart-row{grid-template-columns:64px 1fr;grid-template-areas:"img info" "img qty" "line line"}
  .cart-thumb{grid-area:img}.cart-info{grid-area:info}.cart-qty{grid-area:qty;max-width:120px}.cart-line{grid-area:line;text-align:start}
}
.cart-summary,.checkout-summary{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:26px;position:sticky;top:96px}
.cart-summary h3,.checkout-summary h3{margin-top:0}
.sum-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line);font-size:.95rem}
.sum-total{border-bottom:none;font-family:var(--ff-head);font-size:1.3rem;font-weight:700;color:var(--ink);padding-top:14px}
.cart-summary .btn,.checkout-summary .btn{margin-top:14px}

/* ---------- Checkout ---------- */
.checkout-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:36px;align-items:start}
@media(max-width:820px){.checkout-layout{grid-template-columns:1fr}}
.checkout-form{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:30px}
.pay-note{background:var(--sand);border-radius:12px;padding:16px;margin:18px 0}
.pay-note p{margin:6px 0 0;font-size:.85rem;color:var(--muted)}
.mini-items{margin-bottom:16px;border-bottom:1px solid var(--line);padding-bottom:12px}
.mini-item{display:flex;align-items:center;gap:12px;padding:8px 0}
.mini-item img{width:48px;height:48px;object-fit:cover;border-radius:8px}
.mini-info{flex:1;display:flex;flex-direction:column}
.mini-info span{font-size:.88rem}
.mini-info small{color:var(--muted)}

/* ---------- Order success ---------- */
.order-success{max-width:600px;margin:0 auto;text-align:center}
.success-icon{width:80px;height:80px;border-radius:50%;background:var(--green);color:#fff;font-size:2.4rem;
  display:grid;place-items:center;margin:0 auto 22px}
.success-lead{color:var(--muted);font-size:1.05rem}
.order-ref{background:var(--sand);border-radius:12px;padding:12px;margin:20px 0;font-size:1.05rem;letter-spacing:.05em}
.success-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:22px;text-align:start;margin-bottom:20px}
.s-item{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line)}
.s-total{border-bottom:none;font-weight:700;font-size:1.1rem;padding-top:12px}
.muted{color:var(--muted);font-size:.9rem}

/* ---------- Forms ---------- */
.form-group{margin-bottom:16px}
.form-group label{display:block;font-weight:500;margin-bottom:6px;font-size:.9rem}
.form-group .opt{color:var(--muted);font-weight:400;font-size:.8rem}
input,select,textarea{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;
  font-size:.95rem;font-family:inherit;background:var(--paper);color:var(--text);transition:.2s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,162,75,.15)}
textarea{resize:vertical;min-height:90px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:560px){.form-row{grid-template-columns:1fr}}

/* ---------- Reviews page ---------- */
.rating-summary{display:flex;align-items:center;gap:24px;justify-content:center;margin-bottom:40px;
  background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:24px;max-width:400px;margin-inline:auto}
.rating-big{font-family:var(--ff-head);font-size:3.4rem;font-weight:700;color:var(--gold-d)}
.stars.lg{color:var(--gold);font-size:1.3rem;letter-spacing:2px}
.reviews-layout{display:grid;grid-template-columns:1fr 360px;gap:36px;align-items:start}
@media(max-width:820px){.reviews-layout{grid-template-columns:1fr}}
.reviews-list{display:flex;flex-direction:column;gap:18px}
.review-form-box{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:26px;position:sticky;top:96px}
.review-form-box h3{margin-top:0}
.star-input{display:inline-flex;flex-direction:row-reverse;gap:4px;font-size:1.8rem}
.star-input input{display:none}
.star-input label{color:#d9d2c4;cursor:pointer;transition:.15s;width:auto;padding:0}
.star-input input:checked ~ label,.star-input label:hover,.star-input label:hover ~ label{color:var(--gold)}

/* ---------- Content pages ---------- */
.narrow{max-width:760px}
.lead{font-size:1.2rem;color:var(--ink);font-family:var(--ff-head);margin-bottom:20px}
.content-body{line-height:1.9;color:var(--text)}
.content-body p{margin:0 0 16px}
.article-meta{color:var(--muted);font-size:.85rem;margin-bottom:18px}
.article-cover{width:100%;border-radius:var(--radius-lg);margin-bottom:26px;max-height:440px;object-fit:cover}
.about-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:40px}
@media(max-width:560px){.about-stats{grid-template-columns:1fr 1fr}}
.astat{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:22px;text-align:center}
.astat b{font-family:var(--ff-head);font-size:2rem;color:var(--gold-d);display:block}
.astat span{color:var(--muted);font-size:.85rem}

/* ---------- Contact ---------- */
.contact-layout{display:grid;grid-template-columns:1fr 1.4fr;gap:36px;align-items:start}
@media(max-width:820px){.contact-layout{grid-template-columns:1fr}}
.contact-info{background:var(--surface-dark);color:var(--on-dark);border-radius:var(--radius);padding:32px}
.contact-info h3{color:#fff}
.contact-list{list-style:none;padding:0;margin:0}
.contact-list li{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.1)}
.contact-list a:hover{color:var(--gold)}
.contact-form{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:30px}

/* ---------- Empty / error ---------- */
.empty-state{text-align:center;padding:60px 20px;color:var(--muted)}
.empty-state .big{font-size:3rem;margin-bottom:12px}
.error-page{text-align:center;padding:60px 20px}
.error-code{font-family:var(--ff-head);font-size:6rem;font-weight:700;color:var(--gold);line-height:1}

/* ---------- Alerts ---------- */
.alert{padding:14px 18px;border-radius:12px;margin:18px auto;font-size:.92rem;max-width:var(--maxw)}
.alert-success{background:#e8f3ec;color:var(--green);border:1px solid #cfe6d7}
.alert-error{background:#fbeaea;color:var(--danger);border:1px solid #f0d2d2}

/* ---------- Footer ---------- */
.site-footer{background:var(--surface-dark);color:var(--on-dark-soft);padding-top:60px;margin-top:20px;
  border-top:3px solid transparent;border-image:var(--gold-grad) 1}
/* Five blocks, five tracks. The old grid declared four, so the last column
   dropped onto a row of its own and the footer read as unfinished. */
.footer-grid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr 1.15fr;gap:34px;padding:44px 0 40px}
/* Step 5 -> 3 -> 2 -> 1. Four tracks would leave a single column stranded on
   the second row, which is the exact thing this grid is being fixed for. */
@media(max-width:1180px){.footer-grid{grid-template-columns:1.4fr 1fr 1fr;gap:30px}}
@media(max-width:680px){.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:460px){.footer-grid{grid-template-columns:1fr;gap:26px}}
.footer-logo .logo-text{color:#fff}
.footer-about{font-size:.88rem;line-height:1.8;margin:14px 0 18px;max-width:320px}
.footer-col h4{color:#fff;font-family:var(--ff-body);font-size:.82rem;text-transform:uppercase;letter-spacing:.12em;margin-bottom:16px}
.footer-col ul{list-style:none;padding:0;margin:0}
.footer-col ul li{margin-bottom:10px}
.footer-col a{font-size:.9rem;transition:.2s}
.footer-col a:hover{color:var(--gold)}
.footer-contact li{margin-bottom:12px;font-size:.88rem}
.social-links{display:flex;gap:14px}
.social-links a{font-size:.82rem;color:var(--gold);border:1px solid rgba(201,162,75,.4);padding:6px 14px;border-radius:20px;transition:.2s}
.social-links a:hover{background:var(--gold);color:var(--ink)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding:18px 0;font-size:.82rem;color:#8a8073}
.footer-bottom-inner{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.footer-bottom-inner a{color:#8a8073;transition:.2s}
.footer-bottom-inner a:hover{color:var(--gold)}
@media(max-width:520px){.footer-bottom-inner{justify-content:center;text-align:center}}

/* ---------- WhatsApp float ---------- */
.whatsapp-float{position:fixed;bottom:24px;inset-inline-end:24px;width:58px;height:58px;background:#25d366;
  color:#fff;border-radius:50%;display:grid;place-items:center;box-shadow:0 8px 26px rgba(37,211,102,.45);z-index:90;transition:.25s}
.whatsapp-float:hover{transform:scale(1.08)}

/* ---------- Chips ---------- */
.chips{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}
.chip{padding:8px 18px;border:1px solid var(--line);border-radius:30px;font-size:.85rem;color:var(--ink-2);background:var(--paper);transition:.2s}
.chip:hover,.chip.active{background:var(--surface-dark);color:var(--on-dark-strong);border-color:var(--surface-dark)}

/* ---------- Wishlist ---------- */
.product-card{position:relative}
.card-tools{position:absolute;top:10px;inset-inline-end:10px;z-index:2;display:flex;flex-direction:column;gap:8px}
.wish-mini{margin:0}
.wish-btn{width:40px;height:40px;border-radius:50%;background:var(--glass);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.6);
  cursor:pointer;font-size:1.15rem;line-height:1;color:#b23b3b;display:grid;place-items:center;
  box-shadow:0 4px 14px rgba(0,0,0,.15);transition:.3s var(--ease)}
.wish-btn:hover{transform:scale(1.14);background:var(--glass-solid)}
.wish-btn.on{animation:heartPop .4s var(--ease)}
@keyframes heartPop{0%{transform:scale(1)}45%{transform:scale(1.35)}100%{transform:scale(1)}}
.wish-btn.on{color:#e0245e}
.wish-head{color:var(--ink)}
.wish-line{margin-top:10px}
.wish-toggle.on{color:#e0245e;border-color:#f2c7d3}

/* ---------- Payment choice ---------- */
.pay-choice{display:flex;flex-direction:column;gap:10px;margin:18px 0}
.pay-opt{display:flex;align-items:center;gap:12px;border:1.5px solid var(--line);border-radius:12px;
  padding:14px 16px;cursor:pointer;transition:.2s;font-weight:500}
.pay-opt:hover{border-color:var(--gold)}
.pay-opt input{width:auto;accent-color:var(--gold-d)}
.pay-opt:has(input:checked){border-color:var(--gold);background:var(--sand)}

/* ==========================================================================
   PREMIUM PAGE LAYER — inner-page refinements
   ========================================================================== */

/* Social links → champagne gradient on hover */
.social-links a:hover{background:var(--gold-grad);color:#2a2113;border-color:transparent}
.whatsapp-float{box-shadow:0 10px 30px rgba(37,211,102,.5)}
.whatsapp-float::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #25d366;
  animation:waPulse 2.4s var(--ease) infinite}
@keyframes waPulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.7);opacity:0}}

/* Breadcrumb pages — refined */
.page-hero .breadcrumb{letter-spacing:.04em}
.breadcrumb-top{letter-spacing:.02em;font-size:.82rem}

/* ---- Product detail ---- */
.gallery-main{box-shadow:var(--shadow);border:1px solid var(--hair)}
.gallery-main img{transition:1.2s var(--ease)}
.gallery-main:hover img{transform:scale(1.05)}
.gallery-thumbs img{box-shadow:var(--shadow-sm)}
.product-cat-tag{position:relative}
.product-info h1{font-size:clamp(1.9rem,3.4vw,2.9rem)}
.product-price-lg .price-now{background:none}
.product-price-lg .price-save{background:var(--gold-grad);color:#2a2113;font-weight:700}
.product-rate .stars{filter:drop-shadow(0 1px 2px rgba(201,162,75,.3))}
.stock-line.in::first-letter{color:var(--green)}
.tab-block h2{border-bottom-color:transparent;position:relative;padding-bottom:10px}
.tab-block h2::after{content:"";position:absolute;bottom:0;inset-inline-start:0;width:54px;height:2px;background:var(--gold-grad)}
.spec-list li::before{content:"◆";color:var(--gold-d)}
.wish-toggle{transition:.3s var(--ease)}
.wish-toggle:hover{border-color:var(--gold);color:var(--gold-d)}

/* ---- Shop sidebar ---- */
.side-title{color:var(--gold-d);font-weight:600}
.side-cats a{transition:.25s var(--ease)}
.side-cats a.active{font-weight:600}
.shop-side .side-search input{border-radius:40px}
.sort-form select{border-radius:40px;transition:.25s var(--ease)}

/* ---- Cart / checkout summary ---- */
.cart-summary,.checkout-summary{box-shadow:var(--shadow-sm)}
.cart-summary h3,.checkout-summary h3{padding-bottom:14px;border-bottom:1px solid var(--hair);margin-bottom:8px}
.sum-total{color:var(--gold-d)}
.cart-name{transition:.2s var(--ease)}
.cart-row:hover .cart-name{color:var(--gold-d)}
.checkout-form{box-shadow:var(--shadow-sm)}

/* ---- About stats ---- */
.astat{transition:.4s var(--ease);position:relative;overflow:hidden}
.astat::before{content:"";position:absolute;inset-inline-start:0;top:0;width:100%;height:3px;background:var(--gold-grad);transform:scaleX(0);transform-origin:inline-start;transition:.4s var(--ease)}
.astat:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:var(--hair)}
.astat:hover::before{transform:scaleX(1)}
.lead{position:relative;padding-inline-start:18px}
.lead::before{content:"";position:absolute;inset-inline-start:0;top:6px;bottom:6px;width:3px;background:var(--gold-grad);border-radius:3px}

/* ---- Contact ---- */
.contact-info{background:radial-gradient(120% 130% at 80% 10%,var(--surface-dark-2),var(--surface-dark));border:1px solid var(--hair)}
.contact-info h3{position:relative;padding-bottom:14px;margin-bottom:8px}
.contact-info h3::after{content:"";position:absolute;bottom:0;inset-inline-start:0;width:46px;height:2px;background:var(--gold-grad)}
.contact-list li span{width:34px;height:34px;display:inline-grid;place-items:center;border-radius:50%;
  background:rgba(201,162,75,.14);border:1px solid var(--hair);flex-shrink:0}
.contact-list li{gap:14px}

/* ---- Order / payment success ---- */
.success-icon{background:var(--gold-grad);color:#2a2113;box-shadow:var(--shadow-gold);animation:heartPop .6s var(--ease)}
.order-ref{background:var(--sand);border:1px solid var(--hair);font-family:var(--ff-head);font-weight:600}
.success-card{box-shadow:var(--shadow-sm)}

/* ---- Reviews page ---- */
.rating-summary{box-shadow:var(--shadow-sm);border-color:var(--hair)}
.rating-big{background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.review-form-box{box-shadow:var(--shadow-sm)}

/* ---- Blog posts ---- */
.post-thumb img{transition:1.1s var(--ease)}
.post-card:hover .post-thumb img{transform:scale(1.06)}
.post-card{transition:.45s var(--ease)}
.post-body h3{transition:.2s var(--ease)}

/* ---- Error / empty ---- */
.error-code{background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.empty-state .big{opacity:.5}

/* ---- Service cards ---- */
.service-card.light .service-icon{width:78px;height:78px;margin:0 auto 16px;border-radius:50%;
  display:grid;place-items:center;font-size:2rem;background:linear-gradient(135deg,#fff,var(--sand));
  border:1px solid var(--hair);box-shadow:var(--shadow-sm);transition:.4s var(--ease)}
.service-card.light{transition:.45s var(--ease)}
.service-card.light:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.service-card.light:hover .service-icon{box-shadow:var(--shadow-gold);border-color:var(--gold)}
.section-dark .service-card:hover{box-shadow:0 18px 44px -16px rgba(0,0,0,.5)}
.service-hero-icon{width:110px;height:110px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(135deg,#fff,var(--sand));border:1px solid var(--hair);box-shadow:var(--shadow-sm);font-size:3rem}

/* ---- Category intro copy (SEO content) ---- */
.cat-intro{padding:44px 0 0}
.cat-intro p{color:var(--muted);font-size:1.02rem;line-height:1.95;margin:0;
  position:relative;padding-top:26px}
.cat-intro p::before{content:"";position:absolute;top:0;inset-inline-start:50%;transform:translateX(-50%);
  width:60px;height:2px;background:var(--gold-grad)}
.rtl .cat-intro p::before{transform:translateX(50%)}

/* ---- Article body (semantic, readable long-form) ---- */
.article-body{font-size:1.06rem;line-height:2}
.article-body h2{font-size:clamp(1.4rem,2.4vw,1.9rem);margin:2em 0 .6em;position:relative;padding-bottom:10px}
.article-body h2::after{content:"";position:absolute;bottom:0;inset-inline-start:0;width:52px;height:2px;background:var(--gold-grad)}
.article-body h3{font-size:1.22rem;margin:1.6em 0 .5em;color:var(--gold-d)}
.article-body p{margin:0 0 1.1em}
.article-body a{color:var(--gold-d);border-bottom:1px solid var(--hair);transition:.2s var(--ease)}
.article-body a:hover{border-bottom-color:var(--gold);color:var(--ink)}
.article-list{list-style:none;padding:0;margin:0 0 1.4em}
.article-list li{position:relative;padding-inline-start:26px;margin-bottom:.7em;line-height:1.85}
.article-list li::before{content:"◆";position:absolute;inset-inline-start:0;top:.15em;color:var(--gold);font-size:.72rem}
.article-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.article-updated{color:var(--muted);font-size:.85rem;font-style:italic;margin-top:26px;
  padding-top:14px;border-top:1px solid var(--line)}

/* ---- In-article CTA ---- */
.article-cta{margin-top:48px;padding:36px 30px;text-align:center;border-radius:var(--radius-lg);
  background:radial-gradient(120% 140% at 75% 20%,#3a332b,#1c1813);color:#fff;
  border:1px solid var(--hair);position:relative;overflow:hidden}
.article-cta::before{content:"";position:absolute;inset:0;opacity:.16;
  background:radial-gradient(circle at 72% 28%,#c9a24b 0,transparent 42%)}
.article-cta h3{color:#fff;position:relative;font-size:1.5rem;margin:0 0 8px}
.article-cta p{color:#ddd4c6;position:relative;margin:0 auto 22px;max-width:480px;font-size:.95rem}
.article-cta-actions{position:relative;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.article-cta .btn-outline{border-color:rgba(255,255,255,.5);color:#fff}
.article-cta .btn-outline:hover{background:#fff;color:var(--ink);border-color:#fff}

/* ---- Alerts → floating pill ---- */
.alert{box-shadow:var(--shadow-sm);border-radius:14px;display:flex;align-items:center;gap:10px}

/* ---- FAQ questions inside articles ---- */
.article-body .faq-q{position:relative;padding-inline-start:34px;margin:1.8em 0 .4em;
  color:var(--ink);font-family:var(--ff-head);font-size:1.25rem}
.article-body .faq-q::before{content:"؟";position:absolute;inset-inline-start:0;top:50%;
  transform:translateY(-50%);width:26px;height:26px;display:grid;place-items:center;
  border-radius:50%;background:var(--gold-grad);color:#2a2113;font-size:.85rem;font-weight:700;
  font-family:var(--ff-body)}
.ltr .article-body .faq-q::before{content:"?"}
.article-body .faq-q + p{margin-inline-start:34px;color:var(--text)}

/* ==========================================================================
   THEME TOGGLE + dark-mode component corrections
   ========================================================================== */
.theme-btn{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--line);
  border-radius:50%;background:transparent;color:var(--ink);cursor:pointer;transition:.25s var(--ease);padding:0}
.theme-btn:hover{border-color:var(--gold);color:var(--gold-d);transform:rotate(-12deg)}
.theme-btn svg{width:18px;height:18px}
/* show sun in dark mode, moon in light mode */
.theme-btn .ic-sun{display:none}
:root[data-theme="dark"] .theme-btn .ic-sun{display:block}
:root[data-theme="dark"] .theme-btn .ic-moon{display:none}

/* Cards and inputs need a touch more separation on dark */
:root[data-theme="dark"] .product-card,
:root[data-theme="dark"] .post-card,
:root[data-theme="dark"] .cat-card,
:root[data-theme="dark"] .review-card,
:root[data-theme="dark"] .astat,
:root[data-theme="dark"] .service-card.light,
:root[data-theme="dark"] .cart-summary,
:root[data-theme="dark"] .checkout-summary,
:root[data-theme="dark"] .checkout-form,
:root[data-theme="dark"] .contact-form,
:root[data-theme="dark"] .review-form-box,
:root[data-theme="dark"] .success-card,
:root[data-theme="dark"] .cart-table{border-color:var(--line);background:var(--paper)}

:root[data-theme="dark"] input,
:root[data-theme="dark"] select,
:root[data-theme="dark"] textarea{background:#191512;border-color:var(--line);color:var(--text)}
:root[data-theme="dark"] input::placeholder,
:root[data-theme="dark"] textarea::placeholder{color:#7d7466}
:root[data-theme="dark"] .qty-control button{background:#191512;color:var(--ink)}
:root[data-theme="dark"] .qty-control button:hover{background:#241e19}
:root[data-theme="dark"] .qty-control input{background:#191512;color:var(--text)}
:root[data-theme="dark"] .sort-form select{background:#191512}

/* Product/category imagery sits on a lighter plate so photos stay readable */
:root[data-theme="dark"] .product-thumb,
:root[data-theme="dark"] .post-thumb,
:root[data-theme="dark"] .gallery-main{background:#26201a}

/* Light-on-dark helpers that were tuned for the cream page */
:root[data-theme="dark"] .btn-ghost{color:var(--ink);border-color:var(--line)}
:root[data-theme="dark"] .btn-outline{border-color:var(--gold);color:var(--gold-d)}
:root[data-theme="dark"] .btn-outline:hover{background:var(--gold-grad);color:#241c10;border-color:transparent}
:root[data-theme="dark"] .lang-btn{color:var(--ink)}
:root[data-theme="dark"] .feature-ic,
:root[data-theme="dark"] .service-card.light .service-icon,
:root[data-theme="dark"] .service-hero-icon{background:linear-gradient(135deg,#241e19,#191512);border-color:var(--hair)}
:root[data-theme="dark"] .contact-list li span{background:rgba(201,162,75,.16)}
:root[data-theme="dark"] .alert-success{background:#16281d;border-color:#254933;color:#8fd3a8}
:root[data-theme="dark"] .alert-error{background:#2c1717;border-color:#4a2626;color:#f0a0a0}
:root[data-theme="dark"] .order-ref,
:root[data-theme="dark"] .pay-note{background:#1b1713;border:1px solid var(--line)}
:root[data-theme="dark"] .pay-opt:has(input:checked){background:#241e19}
:root[data-theme="dark"] .review-stars span,
:root[data-theme="dark"] .star-input label{color:#4a423a}
:root[data-theme="dark"] .review-stars span.on,
:root[data-theme="dark"] .star-input input:checked ~ label,
:root[data-theme="dark"] .star-input label:hover,
:root[data-theme="dark"] .star-input label:hover ~ label{color:var(--gold)}
:root[data-theme="dark"] .price-old{color:#8a8073}
:root[data-theme="dark"] .badge-out{background:rgba(0,0,0,.85)}
:root[data-theme="dark"] .empty-state{color:var(--muted)}

/* Mobile drawer follows the page, not the old cream */
:root[data-theme="dark"] .main-nav{background:var(--cream)}

/* ==========================================================================
   ORDER TRACKING
   ========================================================================== */
.track-form-wrap{max-width:520px;margin:0 auto;background:var(--paper);border:1px solid var(--line);
  border-radius:var(--radius-lg);padding:38px 32px;box-shadow:var(--shadow-sm)}
.track-intro{color:var(--muted);text-align:center;margin:0 0 24px;font-size:.95rem}
.track-form .form-group{margin-bottom:18px}
.track-hint{color:var(--muted);font-size:.82rem;text-align:center;margin:18px 0 0;line-height:1.7}

.track-result{max-width:820px;margin:0 auto}
.track-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;
  background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  padding:20px 24px;box-shadow:var(--shadow-sm);margin-bottom:34px}
.track-head-right{text-align:end}
.track-label{display:block;color:var(--muted);font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:3px}
.track-ref{font-family:var(--ff-head);font-size:1.5rem;color:var(--gold-d);letter-spacing:.06em}

/* ---- Progress line ---- */
.track-steps{list-style:none;display:flex;padding:0;margin:0 0 38px;counter-reset:step}
.track-step{flex:1;position:relative;text-align:center;padding-top:46px}
.track-step::before{content:"";position:absolute;top:17px;inset-inline-start:-50%;width:100%;height:2px;
  background:var(--line);z-index:0}
.track-step:first-child::before{display:none}
.track-step.done::before{background:var(--gold-grad)}
.ts-dot{position:absolute;top:0;inset-inline-start:50%;transform:translateX(-50%);
  width:36px;height:36px;border-radius:50%;display:grid;place-items:center;z-index:1;
  background:var(--paper);border:2px solid var(--line);color:var(--muted);font-size:.9rem;transition:.35s var(--ease)}
.rtl .ts-dot{transform:translateX(50%)}
.track-step.done .ts-dot{background:var(--gold-grad);border-color:transparent;color:#241c10;font-weight:700}
.track-step.active .ts-dot{box-shadow:0 0 0 6px rgba(201,162,75,.18);animation:tsPulse 2s var(--ease) infinite}
@keyframes tsPulse{0%,100%{box-shadow:0 0 0 5px rgba(201,162,75,.16)}50%{box-shadow:0 0 0 10px rgba(201,162,75,.05)}}
.ts-name{display:block;font-size:.85rem;font-weight:600;color:var(--muted)}
.track-step.done .ts-name{color:var(--ink)}
.ts-date{display:block;font-size:.72rem;color:var(--muted);margin-top:3px}
@media(max-width:640px){
  /* stack vertically so the labels stay readable on a phone */
  .track-steps{flex-direction:column;gap:4px}
  .track-step{display:flex;align-items:center;gap:14px;text-align:start;padding:10px 0 10px 0;min-height:52px}
  .track-step::before{inset-inline-start:17px;top:-14px;width:2px;height:28px}
  .ts-dot{position:static;transform:none}
  .rtl .ts-dot{transform:none}
  .ts-name{flex:1}
  .ts-date{margin-top:0}
}

.track-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:20px}
@media(max-width:760px){.track-grid{grid-template-columns:1fr}}
.track-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  padding:24px;box-shadow:var(--shadow-sm)}
.track-card h3{margin:0 0 14px;padding-bottom:12px;border-bottom:1px solid var(--hair);font-size:1.15rem}
.track-card .s-item{font-size:.9rem}

.pay-tag{font-size:.76rem;font-weight:700;padding:3px 10px;border-radius:20px}
.pay-paid{background:#e8f3ec;color:var(--green)}
.pay-unpaid,.pay-pending{background:var(--sand);color:var(--gold-d)}
.pay-failed{background:#fbeaea;color:var(--danger)}
:root[data-theme="dark"] .pay-paid{background:#16281d;color:#8fd3a8}
:root[data-theme="dark"] .pay-unpaid,:root[data-theme="dark"] .pay-pending{background:#241e19;color:var(--gold-d)}
:root[data-theme="dark"] .pay-failed{background:#2c1717;color:#f0a0a0}

.track-cancelled{display:flex;align-items:center;gap:16px;background:#fbeaea;border:1px solid #f0d2d2;
  border-radius:var(--radius);padding:20px 24px;margin-bottom:30px;color:var(--danger)}
.track-cancelled p{margin:4px 0 0;font-size:.88rem;color:var(--muted)}
.tc-icon{width:40px;height:40px;border-radius:50%;background:var(--danger);color:#fff;
  display:grid;place-items:center;flex-shrink:0;font-size:1.1rem}
:root[data-theme="dark"] .track-cancelled{background:#2c1717;border-color:#4a2626}

/* ==========================================================================
   CUSTOM ORDER (bespoke enquiry)
   ========================================================================== */
.custom-layout{display:grid;grid-template-columns:320px 1fr;gap:38px;align-items:start}
@media(max-width:860px){.custom-layout{grid-template-columns:1fr}}
.custom-aside{background:radial-gradient(120% 130% at 80% 10%,var(--surface-dark-2),var(--surface-dark));
  color:var(--on-dark);border:1px solid var(--hair);border-radius:var(--radius-lg);padding:32px 28px;
  position:sticky;top:96px}
@media(max-width:860px){.custom-aside{position:static}}
.custom-aside h2{color:#fff;font-size:1.4rem;margin:0 0 20px;padding-bottom:14px;position:relative}
.custom-aside h2::after{content:"";position:absolute;bottom:0;inset-inline-start:0;width:48px;height:2px;background:var(--gold-grad)}
.custom-steps{list-style:none;counter-reset:cs;padding:0;margin:0 0 24px}
.custom-steps li{position:relative;padding-inline-start:46px;margin-bottom:20px;counter-increment:cs}
.custom-steps li::before{content:counter(cs);position:absolute;inset-inline-start:0;top:0;
  width:32px;height:32px;border-radius:50%;display:grid;place-items:center;
  background:var(--gold-grad);color:#241c10;font-weight:700;font-size:.9rem}
.custom-steps strong{display:block;color:#fff;font-size:1rem;margin-bottom:2px}
.custom-steps span{font-size:.86rem;color:#c3b8a4;line-height:1.7}
.custom-form-wrap{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:36px 32px;box-shadow:var(--shadow-sm)}
@media(max-width:560px){.custom-form-wrap{padding:26px 20px}}

/* ==========================================================================
   PRODUCT REVIEWS (with customer photos)
   ========================================================================== */
.product-reviews{margin-top:74px}
.preview-layout{display:grid;grid-template-columns:1fr 360px;gap:34px;align-items:start}
@media(max-width:860px){.preview-layout{grid-template-columns:1fr}}
.preview-list{display:flex;flex-direction:column;gap:18px}
.review-photo{display:block;margin:14px 0;border-radius:12px;overflow:hidden;
  border:1px solid var(--line);max-width:420px}
.review-photo img{width:100%;height:auto;transition:.5s var(--ease)}
.review-photo:hover img{transform:scale(1.03)}
.verified-tag{display:inline-block;margin-inline-start:8px;font-size:.7rem;font-weight:700;
  color:var(--green);background:#e8f3ec;padding:2px 9px;border-radius:20px;vertical-align:middle}
:root[data-theme="dark"] .verified-tag{background:#16281d;color:#8fd3a8}
.product-reviews .review-form-box{position:sticky;top:96px}
@media(max-width:860px){.product-reviews .review-form-box{position:static}}

/* ==========================================================================
   FREE-SHIPPING PROGRESS + COUPONS
   ========================================================================== */
.ship-progress{background:var(--sand);border:1px solid var(--hair);border-radius:12px;
  padding:14px 16px;margin-bottom:18px}
.ship-progress p{margin:0 0 9px;font-size:.85rem;color:var(--ink);font-weight:500}
.ship-progress.reached p{color:var(--green)}
.ship-bar{height:7px;border-radius:6px;background:var(--line);overflow:hidden}
.ship-bar span{display:block;height:100%;border-radius:6px;background:var(--gold-grad);
  transition:width .6s var(--ease)}
.ship-progress.reached .ship-bar span{background:linear-gradient(135deg,#5bb37e,#3c7a52)}

.sum-discount{color:var(--green)}
.sum-discount code{background:var(--sand);padding:1px 7px;border-radius:5px;font-size:.8rem;color:var(--gold-d)}
:root[data-theme="dark"] .sum-discount code{background:#241e19}

.coupon-row{display:flex;gap:8px;align-items:center;margin-top:14px;
  padding-top:14px;border-top:1px dashed var(--line)}
.coupon-row input{flex:1;padding:10px 12px;font-size:.88rem}
.coupon-row .btn{white-space:nowrap;padding:10px 18px}
.coupon-row.applied{justify-content:space-between;font-size:.86rem;color:var(--green)}
.coupon-row.applied strong{color:var(--gold-d)}

/* low-stock urgency */
.stock-left{display:inline-block;background:#fbf0d8;color:#a9791a;font-size:.78rem;font-weight:700;
  padding:3px 11px;border-radius:20px;margin-inline-start:8px}
:root[data-theme="dark"] .stock-left{background:#2e2513;color:#e3bd6b}

/* Newsletter signup in the footer */
.news-form{display:flex;gap:8px;flex-wrap:wrap}
.news-form input{flex:1;min-width:150px;padding:11px 14px;border-radius:40px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);color:#e7ddcb;font-size:.88rem}
.news-form input::placeholder{color:#8a8073}
.news-form input:focus{outline:none;border-color:var(--gold);background:rgba(255,255,255,.09)}
.news-form .btn{padding:11px 22px;font-size:.85rem}

/* Product image zoom (pointer devices only) */
.gallery-main.zoomable{cursor:zoom-in}
.gallery-main.zoomable img{transition:transform .35s var(--ease)}
.gallery-main.zooming img{transform:scale(2.1);transition:transform .18s var(--ease)}
.gallery-main.zoomable::after{content:"⤢";position:absolute;bottom:14px;inset-inline-end:14px;
  width:34px;height:34px;border-radius:50%;display:grid;place-items:center;z-index:3;
  background:rgba(255,255,255,.85);color:var(--ink);font-size:.9rem;
  backdrop-filter:blur(6px);transition:.25s var(--ease);pointer-events:none}
.gallery-main.zooming::after{opacity:0}

/* ==========================================================================
   OUR WORK GALLERY
   ========================================================================== */
.work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:900px){.work-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.work-grid{grid-template-columns:1fr}}
.work-item{position:relative;margin:0;border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow-sm);background:var(--sand);aspect-ratio:4/3;transition:.45s var(--ease)}
.work-item:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.work-item img{width:100%;height:100%;object-fit:cover;transition:1s var(--ease)}
.work-item:hover img{transform:scale(1.07)}
.work-item figcaption{position:absolute;inset-inline:0;bottom:0;padding:44px 18px 18px;
  background:linear-gradient(to top,rgba(14,11,9,.92),transparent);color:#fff;
  display:flex;flex-direction:column;gap:3px}
.work-item figcaption strong{font-family:var(--ff-head);font-size:1.15rem}
.work-item figcaption span{font-size:.84rem;color:#ddd4c6}
.work-item figcaption em{font-style:normal;font-size:.8rem;color:var(--gold-l);font-weight:600;margin-top:5px;
  opacity:0;transform:translateY(6px);transition:.35s var(--ease)}
.work-item:hover figcaption em{opacity:1;transform:none}

/* Invoice / certificate links on the tracking page */
.doc-links{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:16px}
.doc-links .btn{flex:1;min-width:180px}

/* ==========================================================================
   PRODUCT OPTIONS (sizes / finishes)
   ========================================================================== */
.variant-picker{margin-bottom:20px}
.variant-heading{display:block;font-weight:600;font-size:.9rem;margin-bottom:10px}
.variant-opt{display:flex;align-items:center;gap:12px;border:1.5px solid var(--line);
  border-radius:12px;padding:13px 16px;margin-bottom:9px;cursor:pointer;transition:.25s var(--ease)}
.variant-opt:hover{border-color:var(--gold)}
.variant-opt input{width:auto;accent-color:var(--gold-d);flex-shrink:0}
.variant-opt:has(input:checked){border-color:var(--gold);background:var(--sand)}
:root[data-theme="dark"] .variant-opt:has(input:checked){background:#241e19}
.variant-opt .v-label{flex:1;font-weight:500}
.variant-opt .v-price{font-family:var(--ff-head);font-weight:700;color:var(--ink);white-space:nowrap}
.variant-opt .v-price s{font-family:var(--ff-body);font-weight:400;font-size:.8rem;color:var(--muted);margin-inline-start:6px}
.variant-opt.is-out{opacity:.5;cursor:not-allowed}
.variant-opt .v-out{font-size:.74rem;color:var(--danger);font-weight:600}
.variant-label{display:block;font-size:.8rem;color:var(--gold-d);margin-top:2px}

/* ==========================================================================
   ACCESSIBILITY
   ========================================================================== */

/* Keyboard focus must always be obvious. :focus-visible keeps the ring off
   mouse clicks while guaranteeing it for keyboard and assistive tech. */
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:4px}
a:focus-visible,button:focus-visible,.btn:focus-visible,
input:focus-visible,select:focus-visible,textarea:focus-visible,
summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
/* On dark surfaces the gold ring needs a light halo to stay visible. */
.site-footer :focus-visible,.section-dark :focus-visible,.hero :focus-visible,
.contact-info :focus-visible,.custom-aside :focus-visible,.topbar :focus-visible{
  outline-color:#fff;box-shadow:0 0 0 6px rgba(201,162,75,.45)}

/* Skip link: lets keyboard users jump past the navigation. */
/* Hidden off-canvas until focused. inset-inline-start:-9999px reads as
   right:-9999px in RTL, which pushes the link ten thousand pixels past the
   page edge and leaves every Arabic page with a horizontal scroll offset.
   Clipping it to a zero-size box hides it without moving the document. */
.skip-link{position:absolute;inset-inline-start:0;top:0;z-index:2000;
  background:var(--surface-dark);color:#fff;padding:14px 24px;border-radius:0 0 12px 0;
  font-weight:600;text-decoration:none;white-space:nowrap;
  width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%)}
.skip-link:focus{width:auto;height:auto;padding:14px 24px;overflow:visible;clip-path:none}

/* Visually hidden but announced by screen readers. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Respect a reduced-motion preference across every animation we add. */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important}
}


/* ==================================================================
   v11 — customer experience
   Area calculator · delivery zones · samples · comparison · FAQ
   ================================================================== */

/* ---------- Compare button on the card + header ---------- */
.cmp-btn{color:var(--ink-2);font-size:1.05rem}
.cmp-btn.on{color:var(--gold-d);background:var(--glass-solid)}
.cmp-head{color:var(--ink)}
.price-unit,.price-unit-lg{color:var(--muted);font-size:.78rem;font-weight:400;margin-inline-start:4px}
.price-unit-lg{font-size:.9rem}

.secondary-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.secondary-actions form{margin:0}
.secondary-actions .btn{margin:0}
@media(max-width:520px){.secondary-actions{grid-template-columns:1fr}}

/* ---------- Delivery promise on the product page ---------- */
.promise-line{list-style:none;padding:0;margin:14px 0 0;display:flex;flex-wrap:wrap;gap:8px 20px;
  font-size:.9rem;color:var(--text)}
.promise-line li{display:flex;align-items:center;gap:7px}
.promise-line b{color:var(--ink);font-weight:600}

/* ---------- Area calculator ---------- */
.calc-box{margin-top:22px;padding:20px;border:1px solid var(--line);border-radius:var(--radius);
  background:var(--sand)}
.calc-box h3{font-size:1.15rem;margin:0 0 4px}
.calc-intro{color:var(--muted);font-size:.88rem;margin:0 0 16px}
.calc-inputs{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:12px}
.calc-inputs .form-group{margin-bottom:0}
.calc-x{padding-bottom:12px;color:var(--muted);font-size:1.1rem}
.calc-result{margin-top:18px;padding-top:16px;border-top:1px dashed var(--line)}
.calc-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:7px 0;
  font-size:.92rem}
.calc-row b{color:var(--ink);font-weight:600}
.calc-cost{border-top:1px solid var(--line);margin-top:6px;padding-top:12px;font-size:1.02rem}
.calc-cost b{color:var(--gold-d);font-size:1.2rem;font-family:var(--ff-head)}
.calc-note{color:var(--muted);font-size:.82rem;margin:8px 0 14px;line-height:1.6}
.calc-disclaimer{color:var(--muted);font-size:.78rem;margin:10px 0 0;text-align:center}

/* ---------- Technical spec table ---------- */
.tech-table{width:100%;border-collapse:collapse;margin-top:6px}
.tech-table th,.tech-table td{padding:11px 14px;border-bottom:1px solid var(--line);
  text-align:start;font-size:.93rem}
.tech-table th{width:34%;font-weight:500;color:var(--muted)}
.tech-table td{color:var(--ink);font-weight:500}
.tech-table tr:last-child th,.tech-table tr:last-child td{border-bottom:0}

/* ---------- Checkout: delivery zone ---------- */
.zone-note{margin:-6px 0 16px;font-size:.86rem;color:var(--gold-d);font-weight:500}
.sum-discount b{color:var(--green)}

/* ---------- Comparison table ---------- */
.compare-intro{color:var(--muted);max-width:64ch;margin:0 auto 28px;text-align:center}
.compare-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);
  border-radius:var(--radius);background:var(--paper)}
.compare-table{width:100%;border-collapse:collapse;min-width:640px}
.compare-table th,.compare-table td{padding:14px;border-bottom:1px solid var(--line);
  text-align:center;vertical-align:middle;font-size:.92rem}
.compare-table thead th{background:var(--sand);vertical-align:top;position:relative}
.compare-label{text-align:start;font-weight:500;color:var(--muted);background:var(--sand);
  width:150px;min-width:130px}
.compare-head{display:block;color:inherit}
.compare-head img{width:100%;max-width:150px;height:110px;object-fit:cover;
  border-radius:10px;margin:0 auto 8px;display:block}
.compare-head strong{display:block;font-family:var(--ff-head);font-size:1.05rem;color:var(--ink)}
.compare-drop{position:absolute;top:8px;inset-inline-end:8px;width:26px;height:26px;border-radius:50%;
  border:1px solid var(--line);background:var(--paper);color:var(--muted);cursor:pointer;line-height:1;
  font-size:.8rem;transition:.25s var(--ease)}
.compare-drop:hover{border-color:var(--danger);color:var(--danger)}
.compare-price{font-family:var(--ff-head);font-size:1.15rem;color:var(--gold-d);font-weight:600}
.compare-price small{display:block;font-family:var(--ff-body);font-size:.72rem;color:var(--muted);font-weight:400}
.compare-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:26px}
.compare-actions form{margin:0}

/* ---------- FAQ ---------- */
.faq-page{max-width:820px;margin:0 auto}
.faq-jump{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:34px}
.faq-jump a{padding:8px 16px;border:1px solid var(--line);border-radius:999px;font-size:.86rem;
  color:var(--text);transition:.25s var(--ease)}
.faq-jump a:hover{border-color:var(--gold);color:var(--gold-d)}
.faq-group{margin-bottom:36px;scroll-margin-top:100px}
.faq-group-title{font-size:1.35rem;padding-bottom:10px;border-bottom:1px solid var(--hair);margin-bottom:6px}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{padding:18px 4px;cursor:pointer;font-weight:500;font-size:1.02rem;color:var(--ink);
  list-style:none;display:flex;justify-content:space-between;align-items:center;gap:14px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:'+';color:var(--gold);font-size:1.4rem;line-height:1;flex:0 0 auto;
  transition:transform .3s var(--ease)}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-item summary:hover{color:var(--gold-d)}
.faq-answer{padding:0 4px 20px;color:var(--text);line-height:1.85;font-size:.95rem}
.faq-answer p:last-child{margin-bottom:0}
.faq-still{margin-top:48px;padding:32px;border:1px solid var(--hair);border-radius:var(--radius-lg);
  background:var(--sand);text-align:center}
.faq-still h3{margin-bottom:6px}
.faq-still p{color:var(--muted);margin-bottom:22px}
.faq-still .callback-form{text-align:start;max-width:520px;margin:0 auto}

/* ---------- Samples ---------- */
.sample-layout{display:grid;grid-template-columns:1fr 1.15fr;gap:44px;align-items:start}
@media(max-width:880px){.sample-layout{grid-template-columns:1fr;gap:32px}}
.sample-intro h3{font-size:1.5rem}
.sample-intro>p{color:var(--text);line-height:1.9}
.sample-points{list-style:none;padding:0;margin:22px 0}
.sample-points li{display:flex;gap:12px;align-items:flex-start;padding:10px 0;font-size:.94rem;color:var(--text)}
.sample-points span{flex:0 0 auto;font-size:1.05rem}
.sample-fee-box{padding:16px 18px;border:1px solid var(--hair);border-radius:var(--radius);
  background:var(--sand)}
.sample-fee-box strong{color:var(--ink);display:block}
.sample-fee-box p{color:var(--muted);font-size:.85rem;margin:6px 0 0}
.sample-picked{display:flex;gap:14px;align-items:center;margin-top:18px;padding:12px;
  border:1px solid var(--line);border-radius:var(--radius)}
.sample-picked img{width:64px;height:64px;object-fit:cover;border-radius:10px}
.sample-picked small{display:block;color:var(--muted);font-size:.78rem}
.sample-picked strong{color:var(--ink)}
.sample-form{padding:30px;border:1px solid var(--line);border-radius:var(--radius-lg);
  background:var(--paper);box-shadow:var(--shadow-sm)}

/* ---------- Call me back ---------- */
.callback-form{margin:0}
.callback-box{margin-top:34px;padding-top:30px;border-top:1px solid var(--line)}
.callback-box h3{font-size:1.2rem;margin-bottom:4px}
.callback-box>p{color:var(--muted);font-size:.9rem;margin-bottom:20px}
.ship-tbd-note{color:var(--muted);font-size:.8rem;line-height:1.7;margin:8px 0 0}


/* ---------- Footer newsletter band ---------- */
.footer-news{border-bottom:1px solid rgba(255,255,255,.08)}
.footer-news-inner{display:flex;align-items:center;justify-content:space-between;gap:40px;padding:34px 0}
.footer-news-copy h4{color:#fff;font-family:var(--ff-body);font-size:.82rem;text-transform:uppercase;
  letter-spacing:.12em;margin:0 0 6px}
.footer-news-copy p{margin:0;font-size:.88rem;line-height:1.7;color:#a89f90;max-width:46ch}
.footer-news .news-form{flex:0 1 420px;margin:0}
@media(max-width:820px){
  .footer-news-inner{flex-direction:column;align-items:stretch;gap:18px;padding:28px 0}
  .footer-news .news-form{flex:1 1 auto}
}


/* ---------- Small phones: keep the header bar on one line ----------
   Logo + burger + five controls overflowed a 320px screen, which pushed the
   whole page sideways. Shrink the rail rather than dropping a control. */
@media(max-width:430px){
  .logo-text{font-size:1.35rem;letter-spacing:.14em}
  .header-actions{gap:7px}
  .theme-btn,.lang-btn{width:32px;height:32px}
  .theme-btn svg{width:16px;height:16px}
  .lang-btn{font-size:.72rem}
  .cart-btn svg{width:19px;height:19px}
  .header-inner{height:66px;gap:8px}
  .site-header.scrolled .header-inner{height:60px}
}


/* ==================================================================
   Small-screen safety net
   Grid and flex children default to min-width:auto, so a long headline
   or a wide child refuses to shrink and pushes its track past the
   viewport. Every multi-column block on the site opts out of that.
   ================================================================== */
.product-detail > *,
.checkout-layout > *,
.sample-layout > *,
.contact-layout > *,
.preview-layout > *,
.cart-layout > *,
.footer-grid > *,
.footer-news-inner > *,
.header-inner > *,
.track-layout > *,
.blog-layout > *{min-width:0}

/* Long words — Arabic compounds, e-mail addresses, URLs — wrap instead of
   forcing the page wider than the phone. */
h1,h2,h3,h4,p,li,td,th,summary,label,figcaption,.product-info,.faq-answer{
  overflow-wrap:break-word;word-break:break-word}

/* Media never exceeds its column. */
img,video,iframe,svg{max-width:100%}
table img{max-width:none}

/* A comfortable thumb target for the menu button. */
@media(max-width:1180px){
  .nav-toggle{padding:10px 6px}
}


/* ---------- Touch devices ---------- */
@media(max-width:820px){
  /* iOS Safari zooms the whole page whenever a focused field is under 16px.
     The layout then jumps and the visitor has to pinch back out — on the
     checkout form that is enough to lose the order. */
  input,select,textarea,
  .news-form input,.coupon-row input,.qty-control input{font-size:16px}

  /* Comfortable thumb targets for the small text actions. */
  .link-danger,.coupon-row button,.qty-control button{min-height:34px;padding-inline:10px}
  .footer-col ul li{margin-bottom:14px}
  .faq-jump a{padding:10px 16px}

  /* Cards and boxes lose some inner padding so the content keeps its width. */
  .sample-form,.review-form-box{padding:22px}
  .calc-box{padding:16px}
  .faq-still{padding:24px 18px}
}

@media(max-width:400px){
  .sample-form,.review-form-box{padding:16px}
  .container{padding-inline:16px}
  .calc-inputs{grid-template-columns:1fr;gap:6px}
  .calc-x{display:none}
}

/* ---------- Article tables and pull-notes ---------- */
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:22px 0;
  border:1px solid var(--line);border-radius:var(--radius)}
.article-table{width:100%;border-collapse:collapse;min-width:420px;font-size:.92rem}
.article-table th,.article-table td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:start}
.article-table th{background:var(--sand);font-weight:600;color:var(--ink)}
.article-table tr:last-child th,.article-table tr:last-child td{border-bottom:0}
.article-note{margin:22px 0;padding:16px 20px;border-inline-start:3px solid var(--gold);
  background:var(--sand);border-radius:0 var(--radius) var(--radius) 0;color:var(--text);
  font-size:.94rem;line-height:1.85}
.article-note a{color:var(--gold-d);font-weight:600;text-decoration:underline}

/* ---------- Article checklist ---------- */
.article-check{list-style:none;padding:0;margin:18px 0}
.article-check li{display:flex;align-items:flex-start;gap:11px;padding:9px 0;
  border-bottom:1px solid var(--line);line-height:1.75}
.article-check li:last-child{border-bottom:0}
.check-box{flex:0 0 auto;width:17px;height:17px;margin-top:4px;border:2px solid var(--gold);
  border-radius:4px;display:inline-block}
.check-box.on{background:var(--gold);position:relative}
.check-box.on::after{content:"✓";position:absolute;inset:0;display:grid;place-items:center;
  color:#2a2113;font-size:.7rem;font-weight:700}

/* ---------- Product description body ---------- */
.product-copy h2{font-size:1.25rem;margin:26px 0 10px}
.product-copy h3{font-size:1.05rem;margin:20px 0 8px}
.product-copy p{margin:0 0 14px;line-height:1.9}
.product-copy .article-list{margin:0 0 16px;padding-inline-start:20px}
.product-copy .article-list li{margin-bottom:8px;line-height:1.8}
.product-copy > *:first-child{margin-top:0}

/* Cart total when the governorate is not yet known: the amount alone would
   read as the final price, so the shortfall is spelled out beside it. */
.sum-total .sum-plus {
    display: block;
    font-size: .72rem;
    font-weight: 500;
    opacity: .7;
    letter-spacing: 0;
}

/* One sentence under the shop heading. It names what the page sells in the
   words people actually search for, which the bare heading could not do
   without turning into a paragraph. */
.page-hero-intro{max-width:62ch;margin:14px auto 0;font-size:1rem;line-height:1.85;
  color:var(--on-dark-soft,rgba(255,255,255,.78))}

/* Category buying guide. Reuses the article typography so a long answer
   below the grid reads like the blog rather than like a wall of listing text. */
.cat-guide{text-align:start}
.cat-guide h2{font-size:1.35rem;margin:2em 0 .7em}
.cat-guide h2:first-child{margin-top:0}

/* Attribution on a testimonial quoted from Instagram, in place of the stars
   a rated review shows. It links to the original comment, so the claim is
   checkable rather than merely asserted. */
.review-source{display:inline-flex;align-items:center;gap:7px;margin-bottom:12px;
  font-size:.82rem;font-weight:600;color:var(--gold-d);text-decoration:none}
a.review-source:hover{color:var(--gold);text-decoration:underline}
.review-source .ig-mark{display:inline-grid;place-items:center;line-height:0}

/* Numbered walk-through on the services index. */
.steps-list{margin:18px 0 0;padding-inline-start:1.3em;display:grid;gap:14px}
.steps-list li{line-height:1.9;color:var(--muted)}
.steps-list li strong{color:var(--ink)}
.services-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}

/* Measurements table on a product page. Two columns, label muted, value
   emphasised — the value is what the shopper came to read. */
.spec-table{width:100%;border-collapse:collapse;margin-top:6px}
.spec-table th,.spec-table td{padding:12px 0;border-bottom:1px solid var(--line);
  text-align:start;font-size:.95rem;vertical-align:top}
.spec-table th{font-weight:500;color:var(--muted);width:42%;white-space:nowrap}
.spec-table td{font-weight:600;color:var(--ink)}
.spec-table tr:last-child th,.spec-table tr:last-child td{border-bottom:none}
.spec-care{margin-top:16px;font-size:.9rem;line-height:1.9;color:var(--muted)}
@media(max-width:420px){ .spec-table th{width:50%;white-space:normal} }

/* Reassurance list under the buy buttons. Deliberately quiet: it answers
   "what if this goes wrong", which is read, not skimmed. */
.product-promises{list-style:none;margin:22px 0 0;padding:18px 0 0;border-top:1px solid var(--line);
  display:grid;gap:12px}
.product-promises li{display:flex;align-items:flex-start;gap:11px;font-size:.88rem;
  line-height:1.65;color:var(--muted)}
.product-promises .promise-ico{flex:0 0 auto;font-size:1rem;line-height:1.4}

/* Monthly instalment figure under the price. Quiet by design — it supports
   the price rather than competing with it. */
.instalment-line{margin:6px 0 0;font-size:.9rem;color:var(--gold-d);font-weight:600}
