/* =========================================================
   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:center !important; align-items:center; flex-wrap:wrap; gap:10px 24px; font-size:.8rem; color:#8a8374; text-align:center !important; }
.lx-footer-bottom .lx-copy{ text-align:center; }
.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:center; }
.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:0; }
  .lx-footer-bottom .lx-copy, .lx-credit{ justify-self:center; }
}
@media (max-width:768px){
  .lx-footer-bottom{ padding-bottom:calc(66px + env(safe-area-inset-bottom, 0px)) !important; }
}

/* ---------- 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; } }

/* Required field marker (checkout, forms) */
.req { color: #c0392b; font-weight: 700; margin-left: 2px; }

/* ---------- Mobile alignment fixes (2026-09-27) ---------- */
/* grid "1fr" = minmax(auto,1fr): long content pushed cards past the right edge */
.cart-layout > *, .policy-layout > *, .checkout-layout > *{ min-width:0; }
.contact-resolution-grid{ grid-template-columns:repeat(4, minmax(0,1fr)) !important; }
@media (max-width:1024px){
  .cart-layout{ grid-template-columns:minmax(0,1fr) !important; }
  .contact-resolution-grid{ grid-template-columns:repeat(2, minmax(0,1fr)) !important; gap:14px !important; }
}
@media (max-width:860px){ .policy-layout{ grid-template-columns:minmax(0,1fr); } }
@media (max-width:640px){
  .resolution-tile{ padding:16px 14px !important; }
  .resolution-tile-icon{ width:36px !important; height:36px !important; margin-bottom:10px !important; }
  .resolution-tile h4{ font-size:1rem !important; line-height:1.25; }
  .resolution-tile p{ font-size:.8rem !important; line-height:1.5; }
  .resolution-tile-link{ font-size:.8rem !important; gap:6px; }
}
/* Shipping table becomes stacked cards on phones (no sideways scrolling) */
@media (max-width:640px){
  .policy-table-wrap{ border:0; overflow:visible; }
  .policy-table, .policy-table tbody, .policy-table tr, .policy-table td{ display:block; width:100%; }
  .policy-table thead{ display:none; }
  .policy-table tr{ border:1px solid var(--line); border-radius:12px; margin-bottom:10px; padding:10px 14px; background:#fff; }
  .policy-table td{ display:flex; justify-content:space-between; gap:12px; padding:5px 0; border:0; font-size:.86rem; }
  .policy-table td::before{ content:attr(data-label); color:#8a8374; font-size:.74rem; letter-spacing:.06em; text-transform:uppercase; }
  .policy-table td:first-child{ font-weight:700; }
}
/* Small phones (320 px): inputs inside flex rows may shrink, long emails wrap */
input, select, textarea{ min-width:0; }
a[href^="mailto:"], .policy-contact dd, .alert{ overflow-wrap:anywhere; }

/* ================= Site search (header overlay + shop search box) ================= */
html.so-open{ overflow:hidden; }
.search-ov{ position:fixed; inset:0; z-index:10050; background:rgba(8,7,5,.72); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); display:flex; justify-content:center; align-items:flex-start; padding:7vh 16px 16px; opacity:0; transition:opacity .18s ease; }
.search-ov[hidden]{ display:none; }
.search-ov.is-open{ opacity:1; }
.so-panel{ width:100%; max-width:720px; max-height:82vh; display:flex; flex-direction:column; background:#12100c; border:1px solid rgba(216,178,106,.3); border-radius:18px; box-shadow:0 30px 80px rgba(0,0,0,.6); overflow:hidden; transform:translateY(-8px); transition:transform .18s ease; }
.search-ov.is-open .so-panel{ transform:none; }
.so-form{ display:flex; align-items:center; gap:12px; padding:14px 16px; border-bottom:1px solid rgba(216,178,106,.18); }
.so-icon{ color:#d8b26a; flex:0 0 auto; }
.so-input{ flex:1; min-width:0; height:46px; background:transparent; border:0; outline:0; color:#f3ead8; font:500 1.08rem/1 var(--font-body, inherit); }
.so-input::placeholder{ color:#8f8573; }
.so-input::-webkit-search-cancel-button{ filter:invert(.7) sepia(1) saturate(3) hue-rotate(5deg); cursor:pointer; }
.so-close{ flex:0 0 auto; background:rgba(216,178,106,.1); color:#d8b26a; border:1px solid rgba(216,178,106,.35); border-radius:8px; padding:6px 10px; font:700 .72rem/1 inherit; letter-spacing:.08em; cursor:pointer; }
.so-spinner{ width:18px; height:18px; border:2px solid rgba(216,178,106,.25); border-top-color:#d8b26a; border-radius:50%; opacity:0; animation:so-spin .7s linear infinite; }
.search-ov.is-loading .so-spinner{ opacity:1; }
@keyframes so-spin{ to{ transform:rotate(360deg); } }
.so-body{ overflow-y:auto; padding:10px 16px 18px; overscroll-behavior:contain; }
.so-sec{ margin:14px 0 4px; }
.so-sec h3{ font:700 .68rem/1 var(--font-body, inherit); letter-spacing:.16em; text-transform:uppercase; color:#d8b26a; margin:0 0 10px; }
.search-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.search-chip{ display:inline-flex; align-items:center; padding:8px 14px; border-radius:999px; border:1px solid rgba(216,178,106,.35); color:#e9dcc2; background:rgba(216,178,106,.06); font-size:.84rem; text-decoration:none; transition:background .15s, border-color .15s; }
.search-chip:hover{ background:rgba(216,178,106,.16); border-color:#d8b26a; color:#fff; }
.empty-state .search-chip{ color:var(--brass,#a9793f); background:#fff; }
.so-origins{ display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); gap:8px; }
.so-origin{ display:flex; flex-direction:column; align-items:center; gap:6px; padding:10px 6px; border-radius:12px; border:1px solid rgba(216,178,106,.2); background:#17140f; color:#e9dcc2; text-decoration:none; font-size:.8rem; text-align:center; }
.so-origin img{ width:28px; height:19px; object-fit:cover; border-radius:3px; box-shadow:0 0 0 1px rgba(255,255,255,.15); }
.so-origin:hover{ border-color:#d8b26a; }
.so-mini{ display:grid; grid-template-columns:repeat(6, minmax(0,1fr)); gap:8px; }
.so-mini-card{ display:flex; flex-direction:column; gap:6px; text-decoration:none; color:#e9dcc2; font-size:.76rem; text-align:center; min-width:0; }
.so-mini-card img{ width:100%; aspect-ratio:4/5; height:auto; object-fit:cover; border-radius:10px; background:#1d1912; border:1px solid rgba(216,178,106,.18); }
.so-mini-card span{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.so-buyagain h3::after{ content:" · one tap to reorder"; color:#8f8573; letter-spacing:.06em; text-transform:none; font-weight:600; }
.so-list{ list-style:none; margin:4px 0 0; padding:0; display:grid; gap:4px; }
.so-item{ display:flex; align-items:center; gap:12px; padding:8px; border-radius:12px; text-decoration:none; color:#e9dcc2; border:1px solid transparent; }
.so-item:hover, .so-item.is-active{ background:rgba(216,178,106,.1); border-color:rgba(216,178,106,.3); }
.so-item img{ width:56px; height:70px; object-fit:cover; border-radius:8px; flex:0 0 auto; background:#1d1912; }
.so-item-txt{ flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; }
.so-item-txt strong{ font:600 1rem/1.2 var(--font-display, Georgia, serif); color:#f6ecd6; }
.so-item-txt small{ color:#a39985; font-size:.78rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.so-item-price{ flex:0 0 auto; text-align:right; color:#f0d9a6; font-weight:700; font-size:.92rem; display:flex; flex-direction:column; }
.so-item-price s{ color:#7d7464; font-weight:400; font-size:.76rem; }
.so-all{ display:block; margin:12px 0 0; padding:12px; text-align:center; border-radius:12px; background:linear-gradient(135deg,#f3dba4,#c9a45c); color:#17120a; font-weight:700; text-decoration:none; letter-spacing:.04em; }
.so-empty{ padding:22px 6px; text-align:center; color:#a39985; display:flex; flex-direction:column; gap:6px; }
.so-empty strong{ color:#f3ead8; }
.so-hint{ margin:18px 0 0; font-size:.8rem; color:#8f8573; }
.so-hint a{ color:#d8b26a; }
.so-hint strong{ color:#e9dcc2; }
@media (max-width:640px){
  .search-ov{ padding:0; align-items:stretch; }
  .so-panel{ max-width:none; max-height:none; height:100%; border-radius:0; border:0; }
  .so-form{ padding:10px 12px; padding-top:max(10px, env(safe-area-inset-top)); }
  .so-input{ font-size:16px; } /* no iOS zoom */
  .so-body{ padding:6px 14px calc(24px + env(safe-area-inset-bottom)); }
  .so-origins{ grid-template-columns:repeat(3, minmax(0,1fr)); }
  .so-mini{ grid-template-columns:repeat(3, minmax(0,1fr)); }
}

/* Shop page search box (top row of the filter bar) */
.sfb-search{ grid-column:1 / -1; position:relative; display:flex; align-items:center; gap:10px; height:48px; padding:0 6px 0 14px; background:#1f1a12; border:1px solid rgba(216,178,106,.35); border-radius:12px; }
.sfb-search:focus-within{ border-color:#d8b26a; box-shadow:0 0 0 3px rgba(216,178,106,.2); }
.sfb-search > svg{ color:#d8b26a; flex:0 0 auto; }
.sfb-search input{ flex:1; min-width:0; height:100%; background:transparent; border:0; outline:0; color:#ede5d5; font:inherit; font-size:16px; }
.sfb-search input::placeholder{ color:#8f8573; }
.sfb-search input::-webkit-search-cancel-button{ display:none; }
.sfb-search-clear{ color:#c4b49a; text-decoration:none; font-size:1.4rem; line-height:1; padding:0 6px; }
.sfb-search-btn{ flex:0 0 auto; height:36px; padding:0 16px; border:0; border-radius:9px; background:linear-gradient(135deg,#f3dba4,#c9a45c); color:#17120a; font-weight:700; font-size:.82rem; cursor:pointer; }
@media (max-width:760px){ .sfb-search{ height:46px; } .sfb-search-btn{ padding:0 12px; } }
@media (max-width:360px){ .sfb-search-btn{ display:none; } }
@media (max-width:400px){ .header-actions .search-trigger{ display:none !important; } }
/* Track Order steps: every reached step is filled (with a tick), the live step glows, delivered = all filled */
.track-steps .dot{ display:grid; place-items:center; }
.track-steps li.done .dot{ background:var(--brass); border-color:var(--brass); }
.track-steps li.current .dot{ background:var(--brass); border-color:var(--brass); box-shadow:0 0 0 5px rgba(169,121,63,.2); }
.track-steps li.done{ color:var(--ink); }
.track-steps li.current{ color:var(--brass); }

/* ================= Product gallery: any number of photos ================= */
.pd-gallery-main{ position:relative; }
.pd-nav{ position:absolute; top:50%; transform:translateY(-50%); width:40px; height:40px; border-radius:50%; border:1px solid rgba(20,18,15,.12); background:rgba(255,255,255,.88); color:#14120f; font-size:1.6rem; line-height:1; display:grid; place-items:center; cursor:pointer; box-shadow:0 4px 14px rgba(0,0,0,.12); z-index:2; opacity:0; transition:opacity .2s; }
.pd-prev{ left:10px; } .pd-next{ right:10px; }
.pd-gallery-main:hover .pd-nav, .pd-nav:focus-visible{ opacity:1; }
.pd-count{ position:absolute; right:10px; bottom:10px; background:rgba(14,12,9,.72); color:#f3e6c8; font-size:.74rem; font-weight:700; letter-spacing:.06em; padding:4px 10px; border-radius:999px; z-index:2; }
.pd-thumbs{ overflow-x:auto; scrollbar-width:thin; scroll-snap-type:x proximity; padding-bottom:4px; }
.pd-thumbs img{ flex:0 0 auto; scroll-snap-align:center; }
@media (max-width:768px){
  .pd-thumbs{ justify-content:flex-start !important; overflow-x:auto !important; }
  .pd-thumbs:has(img:nth-child(-n+4):last-child){ justify-content:center !important; }
  .pd-nav{ display:none; }
}
@media (hover:none){ .pd-nav{ display:none; } }
