/* =========================================================
   EKAMI — GLOBAL "LUXE" POLISH LAYER
   Loaded on every storefront page after style.css.
   Keep rules here small and targeted; homepage-only styles
   live in home-luxe.css.
   ========================================================= */

/* ---------- Track order: progress + shipment journey ---------- */
.track-steps{ list-style:none; display:flex; justify-content:space-between; gap:6px; margin:22px 0 18px; padding:0; position:relative; counter-reset:none; }
.track-steps::before{ content:""; position:absolute; left:8%; right:8%; top:8px; height:2px; background:var(--line); }
.track-steps li{ position:relative; flex:1; display:flex; flex-direction:column; align-items:center; gap:8px; font-size:.74rem; text-align:center; color:#8a8374; font-weight:600; }
.track-steps .dot{ width:18px; height:18px; border-radius:50%; background:var(--cream-2); border:2px solid var(--sand); position:relative; z-index:1; }
.track-steps li.done{ color:var(--ink); }
.track-steps li.done .dot{ background:var(--brass); border-color:var(--brass); }
.track-steps li.current{ color:var(--brass); }
.track-steps li.current .dot{ background:#fff; border-color:var(--brass); box-shadow:0 0 0 5px rgba(169,121,63,.18); }
.track-events{ margin-top:24px; border-top:1px solid var(--line); padding-top:16px; }
.track-events h4{ font-size:1rem; margin:0 0 12px; }
.track-event{ display:grid; grid-template-columns:120px 1fr; gap:12px; padding:9px 0; border-bottom:1px dashed var(--line); font-size:.84rem; }
.track-event .te-date{ color:#8a8374; font-size:.76rem; }
.track-event .te-text span{ color:#8a8374; }
@media (max-width:520px){ .track-event{ grid-template-columns:1fr; gap:2px; } }

/* ---------- Legal / policy pages ---------- */
.policy-hero{ background:radial-gradient(60% 120% at 80% 0%, rgba(201,164,92,.18), transparent 60%), #0e0c09; color:#f3ecdf; padding:56px 0 46px; }
.policy-hero .breadcrumb{ font-size:.78rem; color:#a2998a; margin-bottom:14px; }
.policy-hero .breadcrumb a{ color:#d8b26a; }
.policy-hero h1{ font-size:clamp(2rem,4vw,3rem); color:#f3ecdf; margin:0 0 10px; font-weight:500; }
.policy-hero p{ color:#cfc6b4; margin:0 0 16px; }
.policy-date{ display:inline-block; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:#d8b26a; border:1px solid rgba(216,178,106,.35); border-radius:999px; padding:6px 12px; }
.policy-layout{ display:grid; grid-template-columns:240px minmax(0,1fr); gap:48px; padding-top:48px; padding-bottom:80px; align-items:start; }
.policy-toc{ position:sticky; top:100px; font-size:.86rem; }
.policy-toc strong{ display:block; font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--brass); margin-bottom:10px; }
.policy-toc ol{ margin:0 0 20px; padding-left:18px; display:grid; gap:7px; color:#8a8374; }
.policy-toc a:hover{ color:var(--brass); }
.policy-links{ display:flex; flex-wrap:wrap; gap:6px; }
.policy-links a{ font-size:.74rem; padding:6px 10px; border:1px solid var(--line); border-radius:999px; }
.policy-body{ max-width:760px; font-size:1rem; line-height:1.8; color:#3a362f; }
.policy-body h2{ font-size:1.35rem; margin:36px 0 12px; scroll-margin-top:110px; }
.policy-body p, .policy-body li{ max-width:none; }
.policy-body ul, .policy-body ol{ padding-left:20px; margin:0 0 16px; }
.policy-body ul{ list-style:disc; } .policy-body ol{ list-style:decimal; }
.policy-body li{ margin-bottom:6px; }
.policy-body a{ color:var(--brass); text-decoration:underline; text-underline-offset:3px; }
.policy-table-wrap{ overflow-x:auto; margin:10px 0 18px; border:1px solid var(--line); border-radius:12px; }
.policy-table{ width:100%; border-collapse:collapse; font-size:.9rem; background:#fff; }
.policy-table th, .policy-table td{ padding:11px 14px; text-align:left; border-bottom:1px solid var(--line); }
.policy-table th{ background:var(--cream-2); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; }
.policy-table tr:last-child td{ border-bottom:0; }
.policy-contact{ margin-top:44px; padding:26px; border-radius:16px; background:#fff; border:1px solid var(--line); }
.policy-contact h2{ margin-top:0; }
.policy-contact dl{ display:grid; gap:12px; margin:0; }
.policy-contact dl div{ display:grid; grid-template-columns:170px 1fr; gap:12px; }
.policy-contact dt{ font-size:.76rem; letter-spacing:.08em; text-transform:uppercase; color:#8a8374; font-weight:700; padding-top:3px; }
.policy-contact dd{ margin:0; }
@media (max-width:860px){
  .policy-layout{ grid-template-columns:1fr; gap:24px; padding-top:28px; }
  .policy-toc{ position:static; padding:16px; border:1px solid var(--line); border-radius:12px; background:#fff; }
  .policy-contact dl div{ grid-template-columns:1fr; gap:2px; }
  .policy-hero{ padding:40px 0 34px; }
}

/* ---------- Footer: bottom bar + credit ---------- */
.lx-footer-bottom{ display:flex !important; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px 24px; font-size:.8rem; color:#8a8374; }
.lx-footer-bottom .lx-copy{ justify-self:start; }
.lx-footer-links{ display:flex; flex-wrap:wrap; justify-content:center; gap:6px 18px; }
.lx-footer-links a{ color:#a69e8f; }
.lx-footer-links a:hover, .lx-credit a:hover{ color:#f0d49a; }
.lx-credit{ justify-self:end; }
.lx-credit a{ color:#d8b26a; font-weight:700; letter-spacing:.02em; border-bottom:1px solid rgba(216,178,106,.35); padding-bottom:1px; }
@media (max-width:900px){
  .lx-footer-bottom{ flex-direction:column; justify-content:center; text-align:center; padding-bottom:78px; }
  .lx-footer-bottom .lx-copy, .lx-credit{ justify-self:center; }
}

/* ---------- Footer trust cards: compact 2 × 2 on phones ---------- */
@media (max-width:640px){
  .trust-strip-grid{ display:grid !important; grid-template-columns:1fr 1fr !important; gap:10px !important; }
  .trust-card{ flex-direction:column !important; align-items:flex-start !important; gap:10px !important; padding:14px 12px !important; min-height:0 !important; }
  .trust-card .trust-icon-wrap{ width:36px !important; height:36px !important; }
  .trust-card h3, .trust-card .trust-title, .trust-info strong{ font-size:.82rem !important; line-height:1.3 !important; }
  .trust-card p, .trust-info p, .trust-info span{ font-size:.72rem !important; line-height:1.5 !important; }
}

/* ---------- Floating WhatsApp (premium) ---------- */
.lx-wa{ position:fixed; right:22px; bottom:24px; z-index:900; display:flex; align-items:center; gap:10px; text-decoration:none; }
.lx-wa-btn{ width:54px; height:54px; border-radius:50%; display:grid; place-items:center; color:#25D366;
  background:radial-gradient(circle at 30% 25%, #2a241b, #0e0c09 70%); border:1px solid rgba(216,178,106,.55);
  box-shadow:0 12px 30px -10px rgba(0,0,0,.6), 0 0 0 4px rgba(216,178,106,.08); transition:transform .3s ease, box-shadow .3s ease, border-color .3s; }
.lx-wa-label{ padding:9px 14px; border-radius:999px; background:#0e0c09; color:#f3ecdf; border:1px solid rgba(216,178,106,.35);
  font:600 .78rem/1 var(--font-body); letter-spacing:.04em; white-space:nowrap; box-shadow:0 10px 24px -12px rgba(0,0,0,.6);
  opacity:0; transform:translateX(8px); pointer-events:none; transition:opacity .3s ease, transform .3s ease; }
.lx-wa:hover .lx-wa-btn, .lx-wa:focus-visible .lx-wa-btn{ transform:translateY(-3px); border-color:#d8b26a; box-shadow:0 18px 36px -12px rgba(0,0,0,.65), 0 0 0 5px rgba(37,211,102,.14); }
.lx-wa:hover .lx-wa-label, .lx-wa:focus-visible .lx-wa-label{ opacity:1; transform:none; }
.lx-wa:focus-visible{ outline:none; }
@media (max-width:980px){
  .lx-wa{ right:14px; bottom:84px; }           /* sits above the mobile bottom nav */
  .lx-wa.is-raised{ bottom:150px; }            /* clear of sticky checkout buttons */
  .lx-wa-btn{ width:48px; height:48px; }
  .lx-wa-btn svg{ width:23px; height:23px; }
  .lx-wa-label{ display:none; }
}
@media (min-width:981px){ .lx-wa.is-raised{ bottom:24px; } }
@media print{ .lx-wa{ display:none; } }

/* Keep "no sideways scroll" without breaking position:sticky (style.css uses overflow-x:hidden) */
html, body{ overflow-x:clip !important; }

/* ---------- One layout grid for the whole site ----------
   Content column = 1200px on desktop (same left/right edge as the header logo and icons),
   14px side gutter on phones (same as the header). */
@media (min-width:981px){
  .header-inner{ max-width:1256px !important; }
}

/* ---------- Product page ---------- */
.pd-accordion .acc-head{ gap:16px; }
.pd-accordion .acc-icon{ flex:0 0 28px; height:28px; border-radius:50%; border:1px solid var(--line); display:grid; place-items:center; font-weight:400; color:var(--brass); }
.pd-accordion .pd-spec-minitable td{ vertical-align:top; padding:9px 12px 9px 0 !important; }
.pd-stickybar{ display:none; }
@media (max-width:980px){
  /* buy row: never sticky (it used to cover the name and price) */
  .pd-buy-row{ position:static !important; display:grid !important; grid-template-columns:120px 1fr !important; gap:10px !important;
    background:none !important; padding:0 !important; margin:18px 0 !important; z-index:auto !important; align-items:center !important; }
  .pd-buy-row .qty-selector{ width:120px !important; min-width:120px !important; height:50px !important; min-height:50px !important; border-radius:6px !important; margin:0 !important; box-sizing:border-box !important; }
  .pd-buy-row button[value="buy"]{ grid-column:1 / -1; }
  .pd-buy-row .btn{ min-height:50px !important; height:50px !important; border-radius:6px !important; font-size:0.92rem !important; font-weight:600 !important; box-sizing:border-box !important; }
  .pd-accordion .pd-spec-minitable td:first-child{ width:42% !important; }

  .pd-stickybar{ position:fixed; left:10px; right:10px; bottom:76px; z-index:850; display:flex; align-items:center; gap:12px;
    padding:10px 10px 10px 16px; border-radius:16px; background:rgba(14,12,9,.96); border:1px solid rgba(216,178,106,.35);
    box-shadow:0 16px 40px -14px rgba(0,0,0,.6); backdrop-filter:blur(8px);
    transform:translateY(140%); opacity:0; pointer-events:none; transition:transform .35s ease, opacity .35s ease; }
  .pd-stickybar.is-on{ transform:none; opacity:1; pointer-events:auto; }
  .pd-stickybar-info{ flex:1; min-width:0; display:flex; flex-direction:column; line-height:1.3; }
  .pd-stickybar-info strong{ color:#f3ecdf; font-family:var(--font-display); font-size:1rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .pd-stickybar-info span{ color:#f0d49a; font-weight:700; font-size:.9rem; }
  .pd-stickybar-info s{ color:#8a8374; font-weight:400; font-size:.76rem; margin-left:4px; }
  .pd-stickybar-btn{ flex:0 0 auto; min-height:44px; padding:0 18px; border:0; border-radius:12px; font:700 .78rem/1 var(--font-body); letter-spacing:.08em; text-transform:uppercase;
    color:#17120a; background:linear-gradient(135deg,#f3dba4,#d8b26a 50%,#b8883f); }
  body.pd-bar-on .lx-wa{ bottom:150px; }
}

/* ---------- Track order ---------- */
.track-wrap{ max-width:620px !important; padding-top:56px !important; padding-bottom:90px !important; }
.track-card{ background:#fff; border:1px solid var(--line); border-radius:18px; padding:28px; box-shadow:0 20px 50px -34px rgba(20,18,15,.35); }
.track-card-head{ display:flex; gap:14px; align-items:flex-start; margin-bottom:22px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.track-card-head strong{ display:block; font-family:var(--font-display); font-size:1.2rem; font-weight:600; }
.track-card-head span:not(.track-ico){ display:block; font-size:.86rem; color:#6b6558; margin-top:4px; }
.track-ico{ flex:0 0 44px; height:44px; border-radius:50%; display:grid; place-items:center; color:var(--brass); background:rgba(169,121,63,.1); }
.track-help{ margin:16px 0 0; font-size:.84rem; color:#6b6558; max-width:none; }
.track-help a{ color:var(--brass); text-decoration:underline; text-underline-offset:3px; }
.track-result{ border-radius:18px !important; }
@media (max-width:640px){ .track-wrap{ padding-top:28px !important; padding-bottom:60px !important; } .track-card{ padding:20px; } }

/* ---------- Page banners: same rhythm on every inner page ---------- */
.page-banner p{ max-width:60ch; margin:10px auto 0; color:#b5ad9e; line-height:1.6; }
.page-banner .breadcrumb{ font-size:.78rem; margin-bottom:10px; }
.page-banner .breadcrumb a{ color:#d8b26a; }

/* Form fields never spill out of their card (legacy inputs used width:100% + padding without border-box) */
.form-group input, .form-group select, .form-group textarea, .track-card input, .checkout-form input, .contact-form input, .contact-form textarea{ box-sizing:border-box; max-width:100%; }

/* ---------- Phones: shop action bar + drawer polish ---------- */
@media (max-width:980px){
  .mobile-action-bar-inner{ display:grid !important; grid-template-columns:auto 1fr auto; align-items:center; gap:8px !important; min-width:0; }
  .mobile-sort-select-wrap, .mobile-sort-form{ min-width:0; max-width:100%; }
  .mobile-sort-select-wrap select{ max-width:150px; width:100%; min-width:0; text-overflow:ellipsis; }
  .mobile-results-count{ min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .mobile-origins-grid > a:last-child:nth-child(odd){ grid-column:1 / -1; }
}
@media (max-width:380px){
  .mobile-sort-select-wrap select{ max-width:124px; font-size:.74rem !important; padding-left:8px !important; padding-right:22px !important; }
  .mobile-filter-open-btn{ padding-left:12px !important; padding-right:12px !important; }
  .mobile-results-count{ font-size:.7rem !important; }
}
/* Filter chips strip: soft fade on the right edge shows it scrolls */
@media (max-width:980px){
  .quick-filter-scroll{ -webkit-mask-image:linear-gradient(90deg,#000 88%,transparent); mask-image:linear-gradient(90deg,#000 88%,transparent); }
}

/* ---------- Shop: dropdown filter bar � dark luxury style (2026-09-22) ---------- */
.shop-filterbar{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 220px)) 1fr;
  align-items:end;
  gap:14px;
  margin:28px 0 0;
  padding:18px 20px;
  background:linear-gradient(135deg,#13110d 0%,#1a160f 100%);
  border:1px solid rgba(216,178,106,.22);
  border-radius:14px;
  box-shadow:0 6px 32px rgba(0,0,0,.45);
}
.sfb-field{ display:flex; flex-direction:column; gap:6px; margin:0; min-width:0; }
.sfb-label{
  display:flex; align-items:center; gap:5px;
  font-size:.66rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase;
  color:#d8b26a;
}
.sfb-label svg{ flex-shrink:0; opacity:.8; stroke:#d8b26a; }
.shop-filterbar select{
  width:100%; height:44px;
  padding:0 36px 0 13px;
  font:inherit; font-size:.88rem;
  color:#ede5d5;
  background-color:#1f1a12;
  border:1px solid rgba(216,178,106,.28);
  border-radius:10px;
  cursor:pointer;
  -webkit-appearance:none; appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23d8b26a' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 13px center;
  transition:border-color .2s, box-shadow .2s;
}
.shop-filterbar select:hover{ border-color:rgba(216,178,106,.6); }
.shop-filterbar select:focus-visible{ outline:none; border-color:#d8b26a; box-shadow:0 0 0 3px rgba(216,178,106,.22); }
.shop-filterbar option{ background:#1f1a12; color:#ede5d5; }
.sfb-meta{
  display:flex; align-items:center; justify-content:flex-end; gap:14px;
  height:44px; font-size:.84rem; color:#9a9186;
}
.sfb-count{ color:#c4b49a; font-weight:600; }
.sfb-reset{
  display:inline-flex; align-items:center; gap:5px;
  color:#d8b26a; font-weight:700;
  text-decoration:none; border:1px solid rgba(216,178,106,.35);
  padding:5px 12px; border-radius:20px; font-size:.78rem; letter-spacing:.05em;
  transition:background .2s, border-color .2s;
}
.sfb-reset:hover{ background:rgba(216,178,106,.12); border-color:rgba(216,178,106,.6); }
.sfb-reset svg{ stroke:#d8b26a; }
.shop-layout.shop-layout--full{ grid-template-columns:1fr !important; padding-top:26px !important; }
@media (max-width:760px){
  .shop-filterbar{
    grid-template-columns:1fr 1fr;
    gap:10px; margin:14px 0 0;
    padding:14px; border-radius:12px;
  }
  .sfb-field:nth-of-type(3){ grid-column:1 / -1; }
  .shop-filterbar select{ height:42px; font-size:.85rem; }
  .sfb-meta{ grid-column:1 / -1; justify-content:space-between; height:auto; }
  .shop-layout.shop-layout--full{ padding-top:14px !important; }
}

/* ---------- Mobile footer: compact, professional bullet lists (2026-09-25) ---------- */
@media (max-width: 767px){
  .trust-strip-section{ padding:26px 0 !important; }
  .site-footer{ padding:30px 0 16px !important; }

  .site-footer .footer-vip-strip{ gap:14px !important; padding:0 0 24px !important; margin:0 0 24px !important; text-align:center; }
  .site-footer .footer-vip-strip h3{ font-size:1.2rem !important; margin:6px 0 !important; }
  .site-footer .footer-vip-strip p{ font-size:.82rem !important; margin:0 !important; line-height:1.55 !important; }

  .site-footer .footer-grid{ gap:24px 14px !important; margin-bottom:0 !important; }
  .site-footer .footer-brand{ margin:0 !important; padding-bottom:22px; border-bottom:1px solid rgba(255,255,255,.08); }
  .site-footer .footer-brand > a{ margin-bottom:10px !important; }
  .site-footer .footer-brand img{ height:48px !important; }
  .site-footer .footer-brand > p{ font-size:.82rem !important; line-height:1.6 !important; margin-bottom:12px !important; }
  .site-footer .footer-brand > div:not(.footer-social){ font-size:.8rem !important; line-height:1.75 !important; margin-bottom:14px !important; }
  .site-footer .footer-social{ justify-content:center; gap:10px !important; }

  .site-footer .footer-col h3{ font-size:.74rem !important; letter-spacing:.1em !important; line-height:1.35 !important; margin:0 0 10px !important; padding-bottom:8px; border-bottom:1px solid rgba(200,165,90,.35); }
  .site-footer .footer-col a{ position:relative; display:block; min-height:0 !important; padding:5px 0 5px 13px !important; margin:0 !important; font-size:.8rem !important; line-height:1.45 !important; }
  .site-footer .footer-col a::before{ content:""; position:absolute; left:0; top:calc(5px + .5em); width:5px; height:5px; border-radius:50%; background:var(--brass); opacity:.85; }
  .site-footer .footer-col a:hover{ transform:none; }
  .site-footer .footer-col a[href*="communication-preferences"]{ margin-top:6px !important; }
  .site-footer .footer-col a[href*="communication-preferences"]::before{ display:none; }
  .site-footer .footer-col a[href*="communication-preferences"]{ padding-left:0 !important; }
  .site-footer .footer-col > div{ margin-top:10px !important; font-size:.74rem !important; line-height:1.55 !important; }

  .site-footer .footer-trust-badges-row{ gap:14px !important; padding:18px 0 !important; margin-top:24px !important; justify-content:center; text-align:center; }
  .site-footer .payment-methods-col{ align-items:center; gap:8px !important; }
  .site-footer .payment-icons-list{ justify-content:center; gap:6px !important; }
  .site-footer .security-seals-col{ flex-direction:row !important; flex-wrap:wrap; justify-content:center; align-items:center !important; gap:8px !important; }
  .site-footer .sec-seal{ font-size:.72rem !important; padding:6px 10px !important; }

  .site-footer .footer-bottom{ padding-top:16px !important; gap:8px 18px !important; }
}

/* 2026-09-26: footer consent note (was inline 11.8px) */
.footer-consent-note{ font-size:.8rem; line-height:1.5; color:#a2998a; margin-top:8px; }
.footer-consent-note a{ color:var(--brass-lite, #d8b26a); text-decoration:underline; }

/* ===== 2026-09-26 site-wide usability fixes ===== */
.sr-only{ position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
/* "Add to Bag" is the primary action everywhere: solid gold */
.quick-add, .btn.btn-buy, .pd-stickybar-btn{
  background:linear-gradient(135deg,#f3dba4 0%,#d8b26a 45%,#b8883f 100%) !important; color:#17120a !important;
  border:1px solid transparent !important; font-weight:700 !important; }
.quick-add:hover, .btn.btn-buy:hover, .pd-stickybar-btn:hover{ filter:brightness(1.08); transform:translateY(-1px); }
.quick-add:disabled, .btn.btn-buy:disabled, .pd-stickybar-btn:disabled{ opacity:.55; filter:none; transform:none; }
/* minimum readable size for small labels (was 10.6-11.8px) */
.sfb-label, .badge-discount, .price-save-badge, .pd-notes-eyebrow, .pd-note-phase, .pd-note-timing,
.site-footer .eyebrow, .payment-label, .lx-origin-flag, .lx-origin-go, .concierge-trust-text,
.related-item-date, .policy-toc strong, .policy-toc a, .policy-related a{ font-size:.78rem !important; }
/* subtler discount badges on product photos */
.product-card .badge-discount{ background:rgba(11,10,8,.72) !important; color:#f0d49a !important; border:1px solid rgba(216,178,106,.34) !important; }
/* readable minimum for small labels on phones too */
.product-cat, .pd-info .eyebrow, .save, .lx-post-meta, .copy-status, .lx-price em, .lx-offer small{ font-size:.75rem !important; }
.mobile-nav-label{ font-size:.75rem !important; }
@media (max-width:767px){
  .mobile-app-bottom-bar .bottom-bar-item span{ font-size:.72rem !important; }
  .lx-hero-facts dd{ font-size:.72rem !important; letter-spacing:.08em; }
}
body .save, body .lx-ticket-value small{ font-size:.75rem !important; }
@media (max-width:640px){ body .lx-card-meta{ font-size:.72rem; } }
