/*
Theme Name: Shree Murugan Steel Palace
Theme URI: https://smsp.local
Author: Shree Murugan Steel Palace
Author URI: https://smsp.local
Description: Custom heritage e-commerce theme for Shree Murugan Steel Palace (established 1966, Mulund, Mumbai). Brass & navy palette, mega-menu, "Est. 1966" hero seal, category tiles, product cards, trust strip and heritage footer. WooCommerce-ready. Placeholder logo and colours are intentional and can be swapped later.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: murugan-steel-palace
Tags: e-commerce, custom-menu, custom-logo, custom-colors, featured-images, full-width-template, sticky-post
WC requires at least: 8.0
WC tested up to: 11.0
*/

/* =========================================================================
   Design tokens + base  (from the approved homepage comp)
   ====================================================================== */
:root{
  --navy:#1C2430;
  --navy-2:#252F3D;
  --ivory:#FFFFFF;      /* main page background — plain white */
  --ivory-2:#F4F5F6;    /* neutral wells: section bands, icon discs, media */
  --brass:#C99A3E;
  --brass-light:#E4BE71;
  --rust:#8B3A2B;
  --steel:#9AA3AE;
  --steel-light:#E3E5E8;
  --ink:#20262E;
  --sale:#C1272D;       /* discount / sale accent */
  --green-tag:#C1272D;  /* legacy alias -> now red */
  --radius:4px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Work Sans', sans-serif;
  color:var(--ink);
  background:var(--ivory);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.display{
  font-family:'Fraunces', serif;
  font-weight:600;
  letter-spacing:-0.01em;
}
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; }
img,svg{ display:block; }
.wrap{ max-width:1280px; margin:0 auto; padding:0 clamp(18px, 5vw, 28px); }
html, body{ overflow-x:clip; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; }

/* ---------- Top utility bar ---------- */
/* The whole masthead is black + gold, echoing the 1966 shop's name board.
   Fixed colours (not skin tokens) so it looks identical in both styles. */
.utility-bar{
  background:var(--navy);
  color:var(--steel-light);
  font-size:12.5px;
  letter-spacing:0.03em;
}
.utility-bar .wrap{
  display:flex; justify-content:space-between; align-items:center;
  padding-top:7px; padding-bottom:7px;
}
.utility-bar .est{ color:var(--brass-light); font-weight:600; }
.utility-links{ display:flex; gap:22px; }
.utility-links a:hover{ color:#fff; }

/* ---------- Header ---------- */
header.main{
  background:#fff;
  border-bottom:1px solid var(--steel-light);
  position:sticky; top:0; z-index:50;
}
.header-row{
  display:flex; align-items:center; gap:28px;
  padding-top:16px; padding-bottom:16px;
}
.logo-block{ display:flex; align-items:center; gap:11px; flex-shrink:0; }
.logo-img{ display:flex; flex-shrink:0; }
.logo-img .custom-logo{ height:50px; width:auto; display:block; }
.logo-mark{
  width:46px; height:46px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%, var(--brass-light), var(--brass) 60%, #9c752b 100%);
  display:flex; align-items:center; justify-content:center;
  color:var(--navy); font-family:'Fraunces',serif; font-weight:700; font-size:18px;
  box-shadow: inset 0 0 0 2px rgba(255,255,255,0.4);
}
.logo-text{ display:flex; flex-direction:column; gap:2px; }
.logo-text .name{
  display:block; white-space:nowrap;
  font-family:'Fraunces', serif; font-weight:600; font-size:20px; line-height:1.05;
  letter-spacing:0.005em; color:var(--navy);
}
.logo-text .sub{
  font-size:9px; letter-spacing:0.22em; text-transform:uppercase; color:var(--rust); font-weight:700;
}
.custom-logo{ max-height:52px; width:auto; }
.search-wrap{ flex:1; position:relative; }
.search-bar{
  display:flex; align-items:center; gap:6px; width:100%;
  border:1.5px solid var(--steel-light); border-radius:999px;
  padding:6px 6px 6px 18px;
  background:var(--ivory);
}
.search-wrap:focus-within .search-bar{ border-color:var(--brass); }
.search-bar input[type="search"]{
  border:none; outline:none; background:transparent; flex:1; min-width:0;
  font-family:inherit; font-size:14.5px; color:var(--ink);
}
.search-bar input::placeholder{ color:#8b93a1; }
/* the browser's built-in clear "x" crowds the search button — use our own */
.search-bar input[type="search"]::-webkit-search-cancel-button{ -webkit-appearance:none; display:none; }
.search-clear{
  flex-shrink:0; width:26px; height:26px; border-radius:50%; border:none;
  display:flex; align-items:center; justify-content:center;
  background:transparent; color:#98a0ab; cursor:pointer; transition:background .12s, color .12s;
}
.search-clear:hover{ background:var(--ivory-2); color:var(--navy); }
.search-clear[hidden]{ display:none; }
.search-btn{
  width:36px; height:36px; border-radius:50%; background:var(--navy);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.header-actions{ display:flex; align-items:center; gap:10px; flex-shrink:0; }
.header-action{
  display:flex; align-items:center; justify-content:center;
  width:40px; height:40px; border-radius:10px;
  line-height:1; color:var(--navy); position:relative;
  background:none; border:0; padding:0; cursor:pointer;
  transition:background .12s, color .12s;
}
.header-action:hover{ background:var(--ivory-2); color:var(--rust); }
.header-action svg{ display:block; }
.header-action .icon-wrap{ position:relative; display:flex; }

/* ---------- Light / dark style switch ---------- */
.msp-skin-toggle{
  flex-shrink:0; padding:0; border:0; background:none; cursor:pointer;
  display:flex; align-items:center; margin-right:2px;
}
.msp-skin-toggle__track{
  position:relative; display:block; width:48px; height:26px; border-radius:999px;
  background:var(--ivory-2); border:1px solid var(--steel-light);
  transition:background .18s, border-color .18s;
}
.msp-skin-toggle__thumb{
  position:absolute; top:2px; left:2px; width:20px; height:20px; border-radius:50%;
  background:var(--brass); color:#241905;
  display:grid; place-items:center;
  box-shadow:0 1px 3px rgba(0,0,0,.28);
  transition:transform .22s cubic-bezier(.3,1.3,.5,1), background .18s;
}
.msp-skin-toggle__ico{ grid-area:1 / 1; transition:opacity .16s; }
.msp-skin-toggle[aria-checked="false"] .msp-skin-toggle__ico--moon{ opacity:0; }
.msp-skin-toggle[aria-checked="true"]  .msp-skin-toggle__ico--sun{ opacity:0; }
.msp-skin-toggle[aria-checked="true"]  .msp-skin-toggle__thumb{
  transform:translateX(22px); background:var(--brass-light);
}
.msp-skin-toggle:hover .msp-skin-toggle__track{ border-color:var(--brass); }
.msp-skin-toggle:focus-visible{ outline:2px solid var(--brass); outline-offset:3px; border-radius:999px; }

/* the cross-fade while switching styles */
@media (prefers-reduced-motion: no-preference){
  html.msp-skin-anim body,
  html.msp-skin-anim .utility-bar,
  html.msp-skin-anim header.main,
  html.msp-skin-anim nav.mega,
  html.msp-skin-anim footer,
  html.msp-skin-anim .hero,
  html.msp-skin-anim section.block,
  html.msp-skin-anim .card,
  html.msp-skin-anim .card-media,
  html.msp-skin-anim [class^="msp-"],
  html.msp-skin-anim [class*=" msp-"]{
    transition:background-color .26s ease, color .26s ease, border-color .26s ease !important;
  }
}
/* the bell is a <button> — keep it pixel-identical to the <a> actions */
button.msp-bell{ -webkit-appearance:none; appearance:none; }
.msp-bell-wrap.is-open button.msp-bell{ color:var(--brass); background:var(--ivory-2); }
.badge-count{
  position:absolute; top:-7px; right:-9px;
  background:var(--rust); color:#fff; font-size:10px; font-weight:700;
  min-width:16px; height:16px; padding:0 3px; border-radius:9px;
  display:flex; align-items:center; justify-content:center;
  border:1.5px solid #fff;
}
.badge-count.is-empty{ display:none; }

/* ---------- Mega nav (symmetric row + hover panels) ---------- */
nav.mega{ background:var(--navy); color:#fff; position:relative; z-index:40; }
.mega-wrap{ display:flex; align-items:stretch; position:relative; }
.mega-track{
  display:flex; align-items:center; gap:2px; flex:1 1 0; min-width:0;
  overflow-x:auto; scroll-behavior:smooth;
  scrollbar-width:none; -ms-overflow-style:none;
}
.mega-track::-webkit-scrollbar{ display:none; height:0; }
/* wrappers exist only to split the row into two symmetric halves on desktop;
   on narrow screens they collapse so the row scrolls as one flat strip */
.mega-side{ display:contents; }
.nav-item{ position:relative; flex-shrink:0; }
.nav-item > a{
  display:flex; align-items:center; gap:4px;
  padding:13px 12px; font-family:'Work Sans',sans-serif;
  font-size:13px; font-weight:600; white-space:nowrap; letter-spacing:0.005em;
  color:#fff; border-bottom:2.5px solid transparent; transition:color .12s, border-color .12s;
}
.nav-item__caret{ width:10px; height:10px; opacity:.55; transition:transform .16s, opacity .12s; }
.nav-item:hover > a,
.nav-item > a:focus-visible{ color:var(--brass-light); border-bottom-color:var(--brass); }
.nav-item:hover .nav-item__caret{ transform:rotate(-180deg); opacity:1; }

/* "Our Legacy" — the illuminated golden centrepiece */
.nav-item--legacy{ margin:0 4px; }
.nav-item--legacy > a,
.nav-item > a.nav-accent{
  font-family:'Fraunces',serif; font-weight:600; font-size:14px; letter-spacing:.02em;
  color:#f3d79a;
  text-shadow:0 0 10px rgba(233,193,116,.5), 0 0 22px rgba(201,154,62,.28);
  animation:msp-legacy-glow 3.6s ease-in-out infinite;
}
.nav-item--legacy:hover > a{ color:#ffe9bf; border-bottom-color:var(--brass-light); }
@keyframes msp-legacy-glow{
  0%,100%{ text-shadow:0 0 8px rgba(233,193,116,.38), 0 0 18px rgba(201,154,62,.18); }
  50%    { text-shadow:0 0 13px rgba(245,214,154,.7), 0 0 30px rgba(228,190,113,.42); }
}

/* Hover panel */
.mega-panel{
  position:absolute; top:100%; z-index:60; width:max-content; min-width:264px; max-width:390px;
  background:var(--ivory); color:var(--ink);
  border:1px solid var(--steel-light); border-top:3px solid var(--brass);
  border-radius:0 0 12px 12px; box-shadow:0 26px 48px -14px rgba(20,26,34,.4);
  padding:15px 10px 11px;
  opacity:0; visibility:hidden; transform:translateY(6px);
  transition:opacity .16s ease, transform .16s ease, visibility 0s linear .16s;
}
.nav-item--left .mega-panel{ left:0; }
.nav-item--right .mega-panel{ right:0; }
.has-panel:hover .mega-panel,
.has-panel:focus-within .mega-panel{
  opacity:1; visibility:visible; transform:translateY(0);
  transition:opacity .16s ease, transform .16s ease, visibility 0s;
}
/* invisible bridge so the pointer can cross the gap from link to panel */
.mega-panel::before{ content:""; position:absolute; left:0; right:0; top:-8px; height:8px; }
.mega-panel__heading{
  font-family:'Work Sans',sans-serif; font-size:10px; font-weight:800; letter-spacing:.12em;
  text-transform:uppercase; color:var(--rust); padding:0 12px 8px;
}
.mega-panel__list{ list-style:none; margin:0; padding:0; column-count:2; column-gap:4px; }
.mega-panel__list li{ break-inside:avoid; }
.mega-panel__list a{
  display:block; padding:7px 12px; border-radius:7px;
  font-size:12.75px; font-weight:500; color:var(--ink); line-height:1.35; white-space:nowrap;
  transition:background .12s, color .12s;
}
.mega-panel__list a:hover{ background:var(--ivory-2); color:var(--rust); }
.mega-panel__foot{
  display:flex; align-items:center; gap:6px; margin:9px 12px 3px; padding-top:9px;
  border-top:1px solid var(--steel-light);
  font-size:11.5px; font-weight:800; letter-spacing:.03em; color:var(--brass);
  text-transform:uppercase;
}
.mega-panel__foot:hover{ color:var(--rust); }

.mega-arrow{
  flex-shrink:0; width:34px; display:flex; align-items:center; justify-content:center;
  background:var(--navy); color:#fff; border:none; cursor:pointer;
  position:relative; z-index:2; transition:opacity .15s, color .12s;
}
.mega-arrow--prev{ box-shadow:16px 0 18px -6px var(--navy); }
.mega-arrow--next{ box-shadow:-16px 0 18px -6px var(--navy); }
.mega-arrow:hover{ color:var(--brass-light); }
.mega-arrow[disabled]{ opacity:0; pointer-events:none; }
.mega-arrow[hidden]{ display:none; }

/* Desktop: two symmetric halves with "Our Legacy" dead-centre; panels escape the row */
@media (min-width:1240px){
  nav.mega{ overflow:visible; }
  .mega-wrap{ overflow:visible; }
  .mega-track{
    overflow:visible; gap:0;
    display:grid; grid-template-columns:1fr auto 1fr; align-items:center; column-gap:12px;
  }
  .mega-side{ display:flex; align-items:center; min-width:0; justify-content:space-between; }
  .mega-track > .nav-item--legacy{ justify-self:center; margin:0; }
  .nav-item > a{ padding:13px 8px; font-size:12.5px; }
  .nav-item--legacy > a{ font-size:13.5px; padding:13px 8px; }
  /* the right-hand labels are shorter — pad them out so both groups take the
     same width and the inter-item gaps match the left group's */
  .mega-side--right .nav-item > a{ padding-left:15px; padding-right:15px; }
  .mega-arrow{ display:none !important; }
}
/* Snug band: shrink the labels a touch so both halves still fit either side of centre */
@media (min-width:1240px) and (max-width:1360px){
  .nav-item > a{ padding:13px 6px; font-size:12px; }
  .mega-side--right .nav-item > a{ padding-left:12px; padding-right:12px; }
}
/* Narrow: horizontal scroll, no hover panels */
@media (max-width:1239.98px){
  .mega-panel{ display:none; }
  .nav-item__caret{ display:none; }
  .nav-item--legacy > a{ animation:none; }
}
@media (prefers-reduced-motion:reduce){
  .nav-item--legacy > a,
  .nav-item > a.nav-accent{ animation:none; }
  .nav-item__caret{ transition:none; }
}

/* ---------- Hero ---------- */
.hero{
  background:linear-gradient(135deg, var(--navy) 0%, var(--navy-2) 55%, #2c3849 100%);
  color:#fff; position:relative; overflow:hidden;
}
.hero::before{
  content:"";
  position:absolute; right:-120px; top:-120px;
  width:520px; height:520px; border-radius:50%;
  border:1px solid rgba(201,154,62,0.18);
}
.hero::after{
  content:"";
  position:absolute; right:-40px; top:60px;
  width:340px; height:340px; border-radius:50%;
  border:1px solid rgba(201,154,62,0.14);
}
.hero-row{
  display:grid; grid-template-columns:1.1fr 0.9fr; gap:40px;
  align-items:center; padding-top:64px; padding-bottom:60px; position:relative; z-index:2;
}
.eyebrow-badge{
  display:inline-flex; align-items:center; gap:8px;
  border:1px solid rgba(228,190,113,0.5); border-radius:999px;
  padding:6px 14px; font-size:12px; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--brass-light); margin-bottom:22px; font-weight:600;
}
.hero h1{
  font-size:44px; line-height:1.12; margin-bottom:18px; max-width:560px;
}
.hero h1 em{ font-style:normal; color:var(--brass-light); }
.hero p.lede{
  font-size:16px; line-height:1.6; color:#C9CFD8; max-width:480px; margin-bottom:30px;
}
.hero-ctas{ display:flex; gap:14px; margin-bottom:38px; }
.btn-primary{
  background:var(--brass); color:var(--navy); font-weight:700; font-size:14.5px;
  padding:14px 26px; border-radius:2px; transition:background .15s;
}
.btn-primary:hover{ background:var(--brass-light); }
.btn-ghost{
  border:1.5px solid rgba(255,255,255,0.35); color:#fff; font-weight:600; font-size:14.5px;
  padding:13px 26px; border-radius:2px;
}
.btn-ghost:hover{ border-color:#fff; }
.hero-stats{ display:flex; gap:36px; }
.hero-stat .num{ font-family:'Fraunces',serif; font-size:26px; color:var(--brass-light); }
.hero-stat .lbl{ font-size:12px; color:#A9B1BC; letter-spacing:0.03em; margin-top:2px; }

/* Hero seal graphic */
.hero-seal-wrap{ display:flex; align-items:center; justify-content:center; position:relative; z-index:2; }
.seal{
  width:300px; height:300px; border-radius:50%;
  background:radial-gradient(circle at 32% 28%, #f0d28c, var(--brass) 45%, #a67a2e 100%);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 30px 60px rgba(0,0,0,0.35), inset 0 0 0 6px rgba(255,255,255,0.15);
  position:relative;
}
.seal::before{
  content:"";
  position:absolute; inset:18px; border-radius:50%;
  border:1.5px dashed rgba(28,36,48,0.35);
}
.seal-inner{ text-align:center; color:var(--navy); }
.seal-inner .since{ font-size:11px; letter-spacing:0.2em; text-transform:uppercase; font-weight:700; }
.seal-inner .year{ font-family:'Fraunces',serif; font-size:52px; font-weight:700; line-height:1; margin:6px 0; }
.seal-inner .gen{ font-size:11px; letter-spacing:0.1em; text-transform:uppercase; font-weight:600; }

/* ---------- Legacy strip ---------- */
.legacy-strip{ background:var(--ivory-2); border-top:1px solid var(--steel-light); border-bottom:1px solid var(--steel-light); }
.legacy-row{
  display:flex; align-items:center; justify-content:space-between;
  padding-top:26px; padding-bottom:26px; gap:24px; flex-wrap:wrap;
}
.legacy-line{ display:flex; align-items:center; gap:14px; flex:1; min-width:260px; }
.legacy-line .dot{
  width:10px; height:10px; border-radius:50%; background:var(--rust); flex-shrink:0;
}
.legacy-line p{ font-size:14.5px; color:var(--ink); line-height:1.5; }
.legacy-line p strong{ color:var(--rust); font-family:'Fraunces',serif; font-weight:600; }
.legacy-cta{ font-size:13.5px; font-weight:700; color:var(--navy); border-bottom:2px solid var(--brass); padding-bottom:2px; white-space:nowrap; }

/* ---------- Section shell ---------- */
section.block{ padding:52px 0; }
section.block + section.block{ border-top:1px solid var(--steel-light); }
.block-head{
  display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:26px;
}
.block-head .eyebrow{
  font-size:12px; letter-spacing:0.12em; text-transform:uppercase; color:var(--rust); font-weight:700; margin-bottom:6px;
}
.block-head h2{ font-size:28px; color:var(--navy); }
.view-all{ font-size:13.5px; font-weight:700; color:var(--navy); border-bottom:2px solid var(--brass); padding-bottom:2px; white-space:nowrap; }

/* ---------- Category tiles ---------- */
.cat-grid{
  display:grid; grid-template-columns:repeat(5, 1fr); gap:18px;
}
.cat-tile{
  background:#fff; border:1px solid var(--steel-light); border-radius:6px;
  padding:22px 14px; text-align:center; transition:transform .15s, box-shadow .15s, border-color .15s;
}
.cat-tile:hover{ transform:translateY(-3px); box-shadow:0 14px 26px rgba(28,36,48,0.1); border-color:var(--brass); }
.cat-icon{
  width:56px; height:56px; margin:0 auto 12px; border-radius:50%;
  background:var(--ivory-2); display:flex; align-items:center; justify-content:center;
  color:var(--rust);
}
.cat-tile .cat-name{ font-size:13.5px; font-weight:700; color:var(--navy); }
.cat-tile .cat-count{ font-size:11.5px; color:#8b93a1; margin-top:3px; }

/* ---------- Brand tiles (Shop by brand) ---------- */
.brand-grid{
  display:grid; grid-template-columns:repeat(8, 1fr); gap:20px 14px;
}
.brand-tile{
  display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center;
}
.brand-medallion{
  width:104px; height:104px; border-radius:50%;
  background:#fff; border:1px solid var(--steel-light);
  display:flex; align-items:center; justify-content:center; overflow:hidden;
  transition:transform .15s, box-shadow .15s, border-color .15s;
}
.brand-tile:hover .brand-medallion{
  transform:translateY(-3px); box-shadow:0 14px 26px rgba(28,36,48,0.14); border-color:var(--brass);
}
/* Logo assets are pre-normalised (scripts/normalize-brand-logos.php): trimmed,
   re-centred on a 640² canvas with consistent padding — so the medallion just
   needs object-fit. */
.brand-logo{ display:block; width:100%; height:100%; }
.brand-logo.brand-logo--fill{ object-fit:cover; }
.brand-logo.brand-logo--fit{ object-fit:contain; }
.brand-monogram{
  font-family:'Fraunces', serif; font-weight:700; font-size:23px;
  color:var(--navy); letter-spacing:0.02em;
}
.brand-name{ font-size:12px; font-weight:600; color:var(--navy); }
.brand-count{ font-size:11px; color:#8b93a1; }

/* ---------- Brand marquee (homepage "Shop by brand" — auto-scrolls) ---------- */
.block--brands{ padding:40px 0; }
.block--brands .block-head{ margin-bottom:16px; }

.brand-marquee{
  position:relative; overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
          mask-image:linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
}
.brand-marquee__track{
  display:flex; width:max-content;
  padding:6px 0 2px;
  animation:brand-marquee 60s linear infinite;
}
.brand-marquee:hover .brand-marquee__track,
.brand-marquee:focus-within .brand-marquee__track{ animation-play-state:paused; }
/* margin (not gap) so the duplicated set lines up exactly at translateX(-50%) */
.brand-marquee .brand-tile{ flex:0 0 auto; width:118px; margin-right:16px; }

@keyframes brand-marquee{
  from{ transform:translate3d(0,0,0); }
  to  { transform:translate3d(-50%,0,0); }
}
@media (prefers-reduced-motion:reduce){
  .brand-marquee{
    overflow-x:auto; scrollbar-width:none; -ms-overflow-style:none;
    -webkit-mask-image:none; mask-image:none;
  }
  .brand-marquee::-webkit-scrollbar{ display:none; }
  .brand-marquee__track{ animation:none; }
  .brand-marquee__track > .brand-tile[aria-hidden="true"]{ display:none; }
}

/* ---------- Category / brand index pages ---------- */
.shop-index__title{ font-size:30px; color:var(--navy); }
.shop-index__intro{ max-width:640px; margin-bottom:8px; font-size:14.5px; color:#4b5563; line-height:1.7; }
.cat-grid--index{ margin-top:8px; }
.cat-grid--index .cat-tile{ padding:26px 16px; }
.brand-grid--index{ margin-top:14px; row-gap:30px; }
.brand-grid--index .brand-medallion{ width:120px; height:120px; }

/* ---------- Product cards ---------- */
.product-row{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:22px;
}
.card{
  background:#fff; border:1px solid var(--steel-light); border-radius:6px; overflow:hidden;
  display:flex; flex-direction:column; transition:box-shadow .15s, border-color .15s;
  position:relative;
}
.card:hover{ box-shadow:0 16px 30px rgba(28,36,48,0.12); border-color:#d9dde2; }
.card-media{
  aspect-ratio:1/1; background:#fff; border-bottom:1px solid var(--steel-light);
  display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden;
}
.card-media.is-empty{ background:linear-gradient(160deg, #F5F6F7, #ECEEF1); }
.card-media svg{ width:52%; height:52%; color:var(--steel); opacity:0.85; }
.card-photo{ display:block; width:100%; height:100%; object-fit:contain; padding:8px; }
.discount-tag{
  position:absolute; top:10px; left:10px;
  background:var(--sale); color:#fff; font-size:11px; font-weight:700;
  padding:3px 8px; border-radius:2px;
}
.warranty-tag{
  position:absolute; bottom:10px; left:10px; z-index:2;
  background:var(--navy); color:#fff; font-size:11px; font-weight:700;
  padding:3px 8px; border-radius:2px; white-space:nowrap;
}

/* Occasional playful "pop" on discount badges (JS-triggered, one at a time) */
@keyframes msp-badge-pop{
  0%   { transform:translateY(0) scale(1); }
  28%  { transform:translateY(-5px) scale(1.07) rotate(-2deg); }
  52%  { transform:translateY(0) scale(1); }
  70%  { transform:translateY(-2px) scale(1.02); }
  100% { transform:translateY(0) scale(1); }
}
.discount-tag.is-pop,
.msp-badge--off.is-pop{ animation:msp-badge-pop .62s cubic-bezier(.3,1.4,.5,1); }
@media (prefers-reduced-motion:reduce){
  .discount-tag.is-pop,
  .msp-badge--off.is-pop{ animation:none; }
}
.wish-btn{
  position:absolute; right:10px; bottom:10px; z-index:3; width:32px; height:32px; border-radius:50%;
  background:rgba(255,255,255,0.94); border:1px solid var(--steel-light);
  box-shadow:0 3px 12px rgba(28,36,48,.15); cursor:pointer;
  display:flex; align-items:center; justify-content:center; color:var(--navy);
  transition:color .14s, border-color .14s, background .14s, transform .12s;
}
.wish-btn:hover{ color:var(--rust); border-color:var(--rust); transform:scale(1.08); }
.wish-btn.is-on{ background:var(--rust); border-color:var(--rust); color:#fff; }
.wish-btn.is-on svg,
.msp-wish.is-on svg{ fill:currentColor; }
.wish-btn.is-busy,
.msp-wish.is-busy{ opacity:.5; pointer-events:none; }
.card-body{ padding:14px 14px 16px; display:flex; flex-direction:column; gap:6px; flex:1; }
.card-tags{ display:flex; justify-content:space-between; align-items:baseline; gap:10px; }
.card-brand{ font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:#8b93a1; font-weight:700; }
.card-cat{ font-size:10.5px; letter-spacing:0.05em; text-transform:uppercase; color:#aab0ba; font-weight:600; text-align:right; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.card-name{ font-size:13.5px; font-weight:600; color:var(--ink); line-height:1.35; min-height:36px; }
.price-row{ display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 8px; margin-top:2px; min-height:23px; }
.price-now{ font-size:16px; font-weight:800; color:var(--navy); white-space:nowrap; }
.price-mrp{ font-size:12.5px; color:#9AA3AE; text-decoration:line-through; white-space:nowrap; }
.price-off{ font-size:12px; color:var(--sale); font-weight:700; white-space:nowrap; }
.card-meta{ font-size:11px; color:#8b93a1; }
/* Card bodies in the same row are stretched to equal height (grid/flex
   default) — pin the button to the bottom so it lines up across the row no
   matter how many lines the title / price wrap to above it. */
.add-btn{
  margin-top:auto; width:100%; height:38px; padding:0 9px;
  display:flex; align-items:center; justify-content:center;
  border:1.5px solid var(--navy); border-radius:2px;
  font-size:12.5px; font-weight:700; color:var(--navy); text-transform:uppercase; letter-spacing:0.03em;
  transition:background .15s, color .15s;
}
/* Simple, bargain-enabled products get both a Bargain link and Add to Cart,
   side by side. Both are locked to the same height as the standalone
   "Select Options" / "Add to Cart" button so the row never looks chunkier. */
.card-cta{ display:flex; gap:8px; margin-top:auto; align-items:stretch; }
.card-cta .add-btn,
.card-bargain{
  height:38px; padding-top:0; padding-bottom:0;
  display:flex; align-items:center; justify-content:center;
  white-space:nowrap; overflow:hidden;
}
.card-cta .add-btn{ margin-top:0; flex:1; min-width:0; padding-left:8px; padding-right:8px; font-size:11px; letter-spacing:0.02em; }
.card-bargain{
  flex:0 0 auto; gap:4px;
  padding-left:10px; padding-right:11px;
  border:1.5px solid var(--brass); border-radius:2px; background:#fff;
  font-size:10.5px; font-weight:800; color:#9a6f20; text-transform:uppercase; letter-spacing:0.03em;
  cursor:pointer;
  box-shadow:0 0 12px rgba(201,154,62,0.4);
  transition:background .14s, color .14s, box-shadow .14s, transform .14s;
  animation:card-bargain-bob 3.2s ease-in-out infinite;
}
.card-bargain svg{ flex-shrink:0; }
.card-bargain:hover{
  background:var(--brass); color:var(--navy);
  box-shadow:0 4px 16px rgba(201,154,62,0.55);
  transform:translateY(-1px);
  animation-play-state:paused;
}
/* stagger so a whole shelf doesn't bob in unison */
.card:nth-child(2n) .card-bargain{ animation-delay:-1.1s; }
.card:nth-child(3n) .card-bargain{ animation-delay:-2.2s; }

@keyframes card-bargain-bob{
  0%, 68%, 100%{ transform:translateY(0); }
  80%{ transform:translateY(-4px); }
  90%{ transform:translateY(-1px); }
}
@media (prefers-reduced-motion:reduce){
  .card-bargain{ animation:none; }
}
.add-btn:hover{ background:var(--navy); color:#fff; }

/* ---------- Trust strip ---------- */
.trust-strip{ background:var(--navy); color:#fff; }
.trust-row{
  display:grid; grid-template-columns:repeat(4,1fr); gap:20px; padding:32px 0;
}
.trust-item{ display:flex; align-items:center; gap:14px; }
.trust-item .ic{
  width:42px; height:42px; border-radius:50%; background:rgba(201,154,62,0.15);
  display:flex; align-items:center; justify-content:center; color:var(--brass-light); flex-shrink:0;
}
.trust-item .t{ font-size:13.5px; font-weight:700; }
.trust-item .d{ font-size:11.5px; color:#A9B1BC; margin-top:2px; }

/* ---------- Store locator strip ---------- */
.store-block{ background:var(--ivory-2); padding:52px 0; border-top:1px solid var(--steel-light); border-bottom:1px solid var(--steel-light); }
.store-row{
  display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center;
}
.store-card{
  background:#fff; border:1px solid var(--steel-light); border-radius:8px; padding:30px;
}
.store-card .kicker{ font-size:12px; letter-spacing:0.1em; text-transform:uppercase; color:var(--rust); font-weight:700; margin-bottom:10px; }
.store-card h3{ font-size:22px; color:var(--navy); margin-bottom:14px; }
.store-card p{ font-size:14.5px; line-height:1.7; color:#4b5563; margin-bottom:6px; }
.store-card .addr{ font-weight:600; color:var(--ink); }

.timeline{ display:flex; flex-direction:column; gap:22px; }
.tl-item{ display:flex; gap:16px; }
.tl-year{
  font-family:'Fraunces',serif; font-weight:700; font-size:17px; color:var(--rust);
  width:64px; flex-shrink:0;
}
.tl-text{ font-size:14px; line-height:1.6; color:var(--ink); padding-bottom:18px; border-left:2px solid var(--steel-light); padding-left:16px; margin-left:-2px; }
.tl-item:last-child .tl-text{ border-left-color:transparent; }

/* ---------- Footer ---------- */
footer{ background:var(--navy); color:#C9CFD8; padding-top:56px; }
.footer-grid{
  display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr 1fr; gap:32px;
  padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,0.1);
}
.footer-col h4{
  font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:#fff; font-weight:700; margin-bottom:16px;
}
.footer-col li{ margin-bottom:10px; font-size:13.5px; }
.footer-col a:hover{ color:var(--brass-light); }
.footer-brand .name{ font-family:'Fraunces',serif; font-size:20px; color:#fff; margin-bottom:8px; }
.footer-brand p{ font-size:13.5px; line-height:1.6; color:#A9B1BC; max-width:260px; }
.footer-bottom{
  display:flex; justify-content:space-between; align-items:center; padding-top:20px; padding-bottom:20px; font-size:12px; color:#8892a0;
}

/* ---------- Responsive ---------- */
@media (max-width:1024px){
  .cat-grid{ grid-template-columns:repeat(3,1fr); }
  .brand-grid{ grid-template-columns:repeat(5,1fr); }
  .product-row{ grid-template-columns:repeat(2,1fr); }
  .hero-row{ grid-template-columns:1fr; text-align:center; }
  .hero p.lede, .hero-ctas, .hero-stats{ margin-left:auto; margin-right:auto; justify-content:center; }
  .hero h1{ margin-left:auto; margin-right:auto; }
  .store-row{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
}

/* Tablet & down: header reflows to two rows — [logo · icons] then a
   full-width search bar. The placeholder utility links drop away. */
@media (max-width:920px){
  .header-row{ flex-wrap:wrap; gap:14px 16px; padding-top:14px; padding-bottom:14px; }
  .logo-block{ order:1; }
  .header-actions{ order:2; margin-left:auto; gap:4px; }
  .search-wrap{ order:3; flex:1 1 100%; }
  .utility-links{ display:none; }
  .utility-bar .wrap{ justify-content:center; }
  .cat-grid{ grid-template-columns:repeat(3,1fr); }
}

@media (max-width:640px){
  /* the search bar was hidden here before — it now has its own row */
  .search-bar{ display:flex; }
  .utility-bar{ display:none; }

  .logo-img .custom-logo,
  .custom-logo{ height:40px; max-height:40px; }
  .logo-block{ gap:9px; }
  .logo-text .name{ font-size:15.5px; }
  .logo-text .sub{ font-size:8px; letter-spacing:0.14em; }
  .header-action{ width:38px; height:38px; }
  .header-action svg{ width:19px; height:19px; }

  .cat-grid{ grid-template-columns:repeat(2,1fr); }
  .brand-grid{ grid-template-columns:repeat(3,1fr); }
  .brand-medallion{ width:88px; height:88px; }
  .brand-marquee .brand-tile{ width:100px; }
  .product-row{ grid-template-columns:repeat(2,1fr); }
  .price-row{ flex-wrap:wrap; row-gap:4px; }
  .price-now{ white-space:nowrap; }
  .card-body{ padding:12px 12px 14px; }

  section.block{ padding:34px 0; }
  .block-head{ margin-bottom:20px; }
  .block-head h2{ font-size:22px; }

  .hero-row{ padding-top:36px; padding-bottom:40px; gap:26px; }
  .hero h1{ font-size:29px; }
  .hero p.lede{ font-size:15px; }
  .hero-ctas{ flex-direction:column; gap:10px; align-items:stretch; }
  .hero-ctas .btn-primary, .hero-ctas .btn-ghost{ text-align:center; }
  .hero-stats{ gap:22px; flex-wrap:wrap; justify-content:center; }
  .seal{ width:min(208px,56vw); height:min(208px,56vw); }
  .seal::before{ inset:13px; }
  .seal-inner .year{ font-size:38px; }
  .seal-inner .since, .seal-inner .gen{ font-size:10px; }

  .trust-row{ grid-template-columns:repeat(2,1fr); }
  .legacy-row{ flex-direction:column; align-items:flex-start; }
  .footer-grid{ grid-template-columns:1fr; }
}

@media (max-width:400px){
  .header-actions{ gap:0; }
  .header-action{ width:36px; height:36px; }
  .logo-text .name{ font-size:14.5px; }
  .cat-grid{ grid-template-columns:1fr 1fr; }
}

/* =========================================================================
   WordPress + WooCommerce compatibility
   ====================================================================== */
.screen-reader-text{
  border:0; clip:rect(1px,1px,1px,1px); clip-path:inset(50%);
  height:1px; width:1px; margin:-1px; overflow:hidden; padding:0; position:absolute; word-wrap:normal !important;
}
.screen-reader-text:focus{
  background:#fff; clip:auto; clip-path:none; color:var(--navy); display:block;
  font-size:14px; font-weight:700; height:auto; width:auto; line-height:normal;
  padding:15px 23px 14px; text-decoration:none; left:5px; top:5px; z-index:100000;
}
.admin-bar header.main{ top:32px; }
@media (max-width:782px){ .admin-bar header.main{ top:46px; } }

a.card-media{ cursor:pointer; }
a.add-btn{ display:flex; align-items:center; justify-content:center; text-align:center; text-decoration:none; }
.card-name a{ color:inherit; }
.card-name a:hover{ color:var(--rust); }
.card .add-btn.loading{ opacity:.6; pointer-events:none; }
.card .add-btn.added{ background:var(--navy); color:#fff; }

/* Generic content pages (posts, cart, checkout, account, 404) */
/* padding-top/bottom only — a `padding` shorthand would wipe the horizontal
   gutter that .page-shell inherits from the .wrap class it also carries */
.page-shell{ padding-top:52px; padding-bottom:52px; min-height:52vh; }
.page-shell > .entry-title,
.page-shell h1.entry-title{ font-size:30px; color:var(--navy); margin-bottom:20px; }
@media (max-width:640px){
  .page-shell{ padding-top:22px; padding-bottom:38px; }
  .page-shell > .entry-title,
  .page-shell h1.entry-title{ font-size:25px; }
}
.entry-content{ font-size:15px; line-height:1.75; }
.entry-content > * + *{ margin-top:16px; }
.entry-content a{ color:var(--rust); text-decoration:underline; }
.entry-content h2,.entry-content h3{ font-family:'Fraunces',serif; color:var(--navy); margin-top:28px; }
.entry-content ul,.entry-content ol{ margin-left:22px; }
.entry-content img{ max-width:100%; height:auto; border-radius:4px; }
/* ---------- Pagination (shop archives, search, blog) ---------- */
.pagination,.woocommerce-pagination{ margin-top:36px; }
.woocommerce-pagination .page-numbers,
nav.pagination .nav-links,
.posts-navigation .nav-links{
  display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:8px;
  list-style:none; margin:0; padding:0;
}
.woocommerce-pagination .page-numbers li{ margin:0; }
.woocommerce-pagination .page-numbers .page-numbers,
nav.pagination .page-numbers,
.posts-navigation a{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:40px; height:40px; padding:0 12px;
  border:1.5px solid var(--steel-light); border-radius:9px;
  font-family:'Work Sans',sans-serif; font-size:14px; font-weight:700;
  color:var(--navy); background:#fff; text-decoration:none;
  transition:border-color .14s, background .14s, color .14s;
}
.woocommerce-pagination .page-numbers a.page-numbers:hover,
nav.pagination a.page-numbers:hover,
.posts-navigation a:hover{ border-color:var(--brass); color:var(--rust); }
.woocommerce-pagination .page-numbers .page-numbers.current,
nav.pagination .page-numbers.current{
  background:var(--navy); border-color:var(--navy); color:#fff;
}
.woocommerce-pagination .page-numbers .page-numbers.dots{
  border-color:transparent; background:none; min-width:24px; color:var(--steel);
}
.woocommerce-pagination .page-numbers .prev,
.woocommerce-pagination .page-numbers .next{ font-size:16px; }

/* WooCommerce — nudge default styles toward the heritage palette */
.woocommerce-page-wrap{ padding-top:4px; }
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error{ border-top-color:var(--brass); }
.woocommerce span.onsale{ background:var(--sale); color:#fff; }
.woocommerce .price,
.woocommerce ul.products li.product .price{ color:var(--navy); font-weight:700; }
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce div.product .product_title{ font-family:'Fraunces',serif; color:var(--navy); }
.woocommerce .woocommerce-breadcrumb{ font-size:12.5px; color:#8b93a1; margin-bottom:22px; }

/* Single product — "Features" short description + Description tab */
.woocommerce div.product .woocommerce-product-details__short-description{ margin:16px 0 20px; }
.woocommerce-product-details__short-description p{ margin:0 0 6px; }
.woocommerce-product-details__short-description p strong{
  font-family:'Fraunces',serif; font-weight:600; font-size:13px; letter-spacing:.03em;
  text-transform:uppercase; color:var(--rust);
}
.woocommerce-product-details__short-description ul{
  list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:7px;
}
.woocommerce-product-details__short-description ul li{
  position:relative; padding-left:24px; font-size:13.5px; line-height:1.5; color:#3f4753;
}
.woocommerce-product-details__short-description ul li::before{
  content:""; position:absolute; left:4px; top:2px; width:5px; height:10px;
  border:solid var(--brass); border-width:0 2px 2px 0; transform:rotate(45deg);
}
.woocommerce-Tabs-panel h2{ font-family:'Fraunces',serif; color:var(--navy); font-size:22px; margin-bottom:12px; }
.woocommerce-Tabs-panel p{ font-size:14.5px; line-height:1.75; color:#3f4753; max-width:70ch; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{ border-bottom-color:var(--brass); }
.woocommerce div.product .woocommerce-tabs ul.tabs li a{ color:var(--navy); font-weight:600; }
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt{
  background:var(--navy); color:#fff; border-radius:2px; font-weight:700;
  letter-spacing:.03em; text-transform:uppercase; font-size:12.5px;
}
.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover{
  background:var(--brass); color:var(--navy);
}

/* =========================================================================
   Shop / search archive — filter sidebar, sort control, modern product cards
   ====================================================================== */

/* ---------- Two-column layout ---------- */
.shop-layout{ display:grid; grid-template-columns:264px 1fr; gap:34px; align-items:start; }
.shop-layout--empty{ display:block; }
.shop-results{ min-width:0; }
.shop-filter-toggle{ display:none; }

/* ---------- Filter sidebar ---------- */
.shop-sidebar{ position:sticky; top:150px; }
.shop-filters{ font-size:13.5px; }
.shop-filters__head{
  display:flex; align-items:center; justify-content:space-between;
  padding-bottom:14px; border-bottom:1px solid var(--steel-light); margin-bottom:6px;
}
.shop-filters__title{
  display:flex; align-items:center; gap:9px;
  font-family:'Fraunces',serif; font-weight:600; font-size:19px; color:var(--navy);
}
.shop-filters__clear{ font-size:12.5px; font-weight:600; color:var(--rust); text-decoration:underline; }
.shop-filters__clear:hover{ color:var(--navy); }

.filter-group{ padding:16px 0; border-bottom:1px solid var(--steel-light); }
.filter-group__toggle{
  display:flex; align-items:center; justify-content:space-between; width:100%;
  font-size:13.5px; font-weight:700; color:var(--navy); letter-spacing:.01em;
}
.filter-group__toggle .chev{
  width:9px; height:9px; border-right:2px solid var(--navy); border-bottom:2px solid var(--navy);
  transform:rotate(-135deg); transition:transform .15s;
}
.filter-group__toggle[aria-expanded="false"] .chev{ transform:rotate(45deg); }
.filter-group__body{ margin-top:12px; display:flex; flex-direction:column; gap:9px; }
.filter-group__body[hidden]{ display:none; }

.filter-check{ display:flex; align-items:center; gap:10px; cursor:pointer; color:#4b5563; line-height:1.3; }
.filter-check input{
  appearance:none; -webkit-appearance:none; width:17px; height:17px; flex-shrink:0;
  border:1.5px solid #c3c8cf; border-radius:4px; background:#fff; cursor:pointer; position:relative;
  transition:border-color .12s, background .12s;
}
.filter-check input:checked{ background:var(--navy); border-color:var(--navy); }
.filter-check input:checked::after{
  content:""; position:absolute; left:5px; top:1.5px; width:5px; height:9px;
  border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg);
}
.filter-check:hover span{ color:var(--navy); }
.filter-check.is-extra{ display:none; }
.filter-group__body.show-all .filter-check.is-extra{ display:flex; }
.filter-more{ font-size:12.5px; font-weight:600; color:var(--navy); text-decoration:underline; align-self:flex-start; margin-top:2px; }

.filter-price{ display:flex; align-items:center; gap:8px; }
.filter-price label{ display:flex; align-items:center; gap:4px; font-size:12.5px; color:#6b7280; flex:1; }
.filter-price input{
  width:100%; min-width:0; padding:7px 8px; border:1.5px solid var(--steel-light); border-radius:6px;
  font-family:inherit; font-size:13px; color:var(--ink);
}
.filter-price input:focus{ outline:none; border-color:var(--brass); }

.shop-filters__apply{
  margin-top:18px; width:100%; padding:11px; border-radius:6px;
  background:var(--navy); color:#fff; font-weight:700; font-size:12.5px;
  text-transform:uppercase; letter-spacing:.04em; transition:background .15s;
}
.shop-filters__apply:hover{ background:var(--brass); color:var(--navy); }

/* ---------- Active filter chips ---------- */
.active-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:20px; }
.chip{
  display:inline-flex; align-items:center; gap:7px;
  padding:5px 11px; border-radius:999px; background:var(--ivory-2);
  border:1px solid var(--steel-light); font-size:12px; font-weight:600; color:var(--navy);
}
.chip:hover{ border-color:var(--rust); color:var(--rust); }
.chip span{ font-size:13px; line-height:1; }
.chip--clear{ background:transparent; border-style:dashed; }

/* ---------- Toolbar: result count + sort ---------- */
.woocommerce-page-wrap .woocommerce-result-count{ float:none; margin:0; font-size:13px; color:#6b7280; }
.shop-results .woocommerce-result-count{ display:inline-block; }
.woocommerce-page-wrap::after{ content:""; display:table; clear:both; }

.msp-sort{ float:right; display:flex; align-items:center; gap:10px; margin:0; }
.msp-sort__label{ font-size:12.5px; font-weight:600; color:#6b7280; }
.msp-sort__field{ position:relative; display:inline-flex; align-items:center; }
.msp-sort__field select.orderby{
  appearance:none; -webkit-appearance:none; -moz-appearance:none;
  padding:9px 38px 9px 14px; border:1.5px solid var(--steel-light); border-radius:8px;
  background:#fff; font-family:inherit; font-size:13px; font-weight:600; color:var(--navy);
  cursor:pointer; line-height:1.2;
}
.msp-sort__field select.orderby:focus{ outline:none; border-color:var(--brass); }
.msp-sort__chev{ position:absolute; right:12px; pointer-events:none; color:var(--navy); }

/* ---------- Product grid ---------- */
.shop-results ul.products{
  display:grid !important; grid-template-columns:repeat(3, 1fr); gap:22px 20px;
  margin:22px 0 0; padding:0; list-style:none;
}
.shop-results ul.products::before,
.shop-results ul.products::after{ display:none; content:none; }
.shop-results ul.products li.product{
  width:auto !important; margin:0 !important; padding:0 !important; float:none !important; clear:none;
}

/* ---------- Modern product card ---------- */
.msp-card{
  display:flex; flex-direction:column;
  background:#fff; border:1px solid var(--steel-light); border-radius:12px; overflow:hidden;
  transition:box-shadow .16s, border-color .16s, transform .16s;
}
.msp-card:hover{ box-shadow:0 18px 36px rgba(28,36,48,.12); border-color:#d4d8dd; transform:translateY(-2px); }

.msp-card__media{ position:relative; }
.msp-badge{
  position:absolute; z-index:3; top:12px;
  font-size:10.5px; font-weight:800; letter-spacing:.03em; text-transform:uppercase;
  padding:4px 9px; border-radius:6px; line-height:1.1;
}
.msp-badge--seller{ left:12px; background:var(--navy); color:#fff; }
.msp-badge--off{ right:12px; background:var(--sale); color:#fff; }
.msp-badge--oos{ left:12px; top:auto; bottom:12px; background:#fff; color:#6b7280; border:1px solid var(--steel-light); }
.msp-badge--warranty{
  left:12px; right:auto; top:auto; bottom:12px;
  background:var(--navy); color:#fff; white-space:nowrap;
}
.msp-card__media:has(.msp-badge--warranty) .msp-badge--oos{ bottom:40px; }

.msp-carousel{ position:relative; }
.msp-carousel__viewport{
  display:block; position:relative; width:100%; aspect-ratio:1/1;
  background:#fff; border-bottom:1px solid var(--steel-light); overflow:hidden;
}
.msp-carousel--empty .msp-carousel__viewport{ background:linear-gradient(160deg,#F6F7F8,#EDEEF0); border-bottom-color:transparent; }
.msp-carousel__slide{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:contain; padding:10px; opacity:0; transition:opacity .25s;
}
.msp-carousel__slide.is-active{ opacity:1; }
.msp-carousel__nav{
  position:absolute; top:50%; transform:translateY(-50%); z-index:3;
  width:32px; height:32px; border-radius:50%; background:rgba(255,255,255,.94);
  box-shadow:0 2px 10px rgba(0,0,0,.14); color:var(--navy);
  display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .15s;
}
.msp-card__media:hover .msp-carousel__nav{ opacity:1; }
.msp-carousel__nav--prev{ left:8px; }
.msp-carousel__nav--next{ right:8px; }
.msp-carousel__nav:hover{ background:#fff; }
.msp-carousel__dots{
  position:absolute; left:0; right:0; bottom:9px; z-index:3;
  display:flex; justify-content:center; gap:6px;
}
.msp-carousel__dot{
  width:6px; height:6px; border-radius:50%; background:rgba(28,36,48,.25);
  transition:background .15s, transform .15s;
}
.msp-carousel__dot.is-active{ background:var(--navy); transform:scale(1.3); }

.msp-card__body{ display:flex; flex-direction:column; gap:7px; padding:14px 15px 16px; flex:1; }
.msp-card__tags{ display:flex; justify-content:space-between; align-items:baseline; gap:10px; }
.msp-card__brand{ font-size:10.5px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; color:#98a0ab; }
.msp-card__cat{ font-size:10px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:#aeb4bd; text-align:right; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.msp-card__title{
  font-size:14px; font-weight:600; line-height:1.35; color:var(--ink);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:38px;
}
.msp-card__title:hover{ color:var(--rust); }

.msp-card__price{ display:flex; align-items:baseline; flex-wrap:wrap; gap:8px; margin-top:2px; }
.msp-price-now{ font-size:18px; font-weight:800; color:var(--navy); letter-spacing:-.01em; }
.msp-price-mrp{ font-size:12.5px; color:#98a0ab; text-decoration:line-through; text-decoration-color:#c3c8cf; }
.msp-price-off{
  font-size:11px; font-weight:800; color:#fff; background:var(--sale);
  padding:2px 7px; border-radius:5px; letter-spacing:.02em;
}
.msp-card__variants{ font-size:11.5px; color:#6b7280; font-weight:600; }
.msp-card__deal{
  display:inline-flex; align-items:center; gap:6px; align-self:flex-start;
  font-size:11.5px; font-weight:600; color:var(--green-tag);
  background:rgba(62,107,79,.08); padding:5px 10px; border-radius:7px;
}

.msp-card__foot{
  margin-top:auto; padding-top:11px; border-top:1px dashed var(--steel-light);
  display:flex; flex-direction:column; gap:10px;
}
.msp-card__delivery{
  display:flex; align-items:center; gap:7px; font-size:11px; color:#6b7280; line-height:1.35;
}
.msp-card__delivery svg{ flex-shrink:0; }
.msp-card__delivery strong{ color:var(--navy); font-weight:700; white-space:nowrap; }
.msp-card__actions{ display:flex; gap:8px; justify-content:flex-end; }
.msp-icon-btn{
  width:34px; height:34px; border-radius:50%; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  border:1.5px solid var(--steel-light); background:#fff; color:var(--navy);
  transition:background .14s, color .14s, border-color .14s;
}
.msp-icon-btn.msp-card__cart{ background:var(--navy); color:#fff; border-color:var(--navy); }
.msp-icon-btn.msp-card__cart:hover{ background:var(--brass); border-color:var(--brass); color:var(--navy); }
.msp-icon-btn svg{ width:17px; height:17px; }
.msp-icon-btn.msp-wish:hover{ border-color:var(--rust); color:var(--rust); }
.msp-icon-btn.msp-wish.is-on{ background:var(--rust); border-color:var(--rust); color:#fff; }
.msp-icon-btn.loading{ opacity:.55; pointer-events:none; }
.msp-icon-btn.added{ background:var(--green-tag); border-color:var(--green-tag); color:#fff; }

.shop-results .woocommerce-pagination{ margin-top:34px; }

/* ---------- Responsive ---------- */
@media (max-width:1180px){
  .shop-layout{ grid-template-columns:240px 1fr; gap:26px; }
  .shop-results ul.products{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width:900px){
  .shop-layout{ grid-template-columns:1fr; }
  .shop-filter-toggle{
    display:inline-flex; align-items:center; gap:8px; align-self:flex-start;
    padding:10px 16px; border:1.5px solid var(--navy); border-radius:8px;
    font-size:13px; font-weight:700; color:var(--navy); background:#fff;
  }
  .shop-sidebar{ position:fixed; inset:0; z-index:200; background:rgba(20,26,34,.5); display:none; padding:0; }
  .shop-sidebar.is-open{ display:block; }
  .shop-filters{
    position:absolute; left:0; top:0; bottom:0; width:min(340px,86vw);
    background:#fff; padding:22px 20px 30px; overflow-y:auto;
  }
  body.msp-filter-lock{ overflow:hidden; }
}
@media (max-width:620px){
  .shop-results ul.products{ grid-template-columns:repeat(2, 1fr); gap:14px 12px; }
  .msp-card__body{ padding:12px 12px 14px; gap:6px; }
  .msp-price-now{ font-size:16px; }
  .msp-sort__label{ display:none; }
  .msp-card__delivery{ font-size:10px; align-items:flex-start; }
  .msp-card__delivery strong{ white-space:normal; }
}

/* =========================================================================
   Single product page
   ====================================================================== */
.single-product .woocommerce div.product{
  display:grid; grid-template-columns:minmax(0,1.02fr) minmax(0,0.98fr); gap:52px; align-items:start;
}
.single-product .woocommerce div.product > .related{ grid-column:1 / -1; }
.single-product .woocommerce div.product .summary{ float:none; width:auto; margin:0; }
.single-product .woocommerce div.product .woocommerce-tabs{ grid-column:1 / -1; margin-top:8px; }
.single-product .woocommerce div.product .product_title{
  font-size:27px; line-height:1.2; margin:0 0 4px;
}

/* ---------- Gallery ---------- */
.msp-gallery{ align-self:start; }
.msp-gallery__stage{
  position:relative; aspect-ratio:1/1; background:#fff;
  border:1px solid var(--steel-light); border-radius:14px; overflow:hidden;
}
.msp-gallery--empty .msp-gallery__stage{ background:linear-gradient(160deg,#F6F7F8,#EDEEF0); }
.msp-gallery__slide{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:contain; padding:26px; opacity:0; transition:opacity .22s;
}
.msp-gallery__slide.is-active{ opacity:1; }

/* ---------- Hover-to-zoom (fine pointer only) ---------- */
.msp-gallery__stage--zoom{ cursor:zoom-in; }
.msp-gallery__stage--zoom .msp-gallery__slide{
  transition:opacity .22s, transform .18s ease, padding .18s ease;
  transform-origin:center center;
}
.msp-gallery__stage--zoom.is-zooming{ cursor:crosshair; }
.msp-gallery__stage--zoom.is-zooming .msp-gallery__slide.is-active{
  transform:scale(2.3); padding:6px;
}
.msp-gallery__stage--zoom.is-zooming .msp-gallery__slide:not(.is-active){ transition:none; }
.msp-gallery__stage--zoom.is-zooming .msp-gallery__nav{ opacity:0 !important; pointer-events:none; }
@media (prefers-reduced-motion:reduce){
  .msp-gallery__stage--zoom .msp-gallery__slide{ transition:opacity .22s; }
  .msp-gallery__stage--zoom.is-zooming .msp-gallery__slide.is-active{ transform:none; padding:26px; }
}
.msp-gallery__nav{
  position:absolute; top:50%; transform:translateY(-50%); z-index:3;
  width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.95);
  border:1px solid var(--steel-light); box-shadow:0 4px 14px rgba(0,0,0,.12);
  color:var(--navy); display:flex; align-items:center; justify-content:center;
  opacity:0; transition:opacity .15s, background .15s;
}
.msp-gallery__stage:hover .msp-gallery__nav{ opacity:1; }
.msp-gallery__nav:hover{ background:#fff; }
.msp-gallery__nav--prev{ left:10px; }
.msp-gallery__nav--next{ right:10px; }
.msp-gallery__thumbrail{ display:flex; align-items:center; gap:8px; margin-top:14px; }
.msp-gallery__thumbs{
  display:flex; flex-wrap:wrap; gap:10px; justify-content:center; flex:1 1 auto; min-width:0;
}
/* >5 photos: single row, exactly 5 visible, arrows page through the rest */
.msp-gallery__thumbs--paged{
  flex-wrap:nowrap; justify-content:flex-start;
  overflow-x:auto; scroll-behavior:smooth; scroll-snap-type:x mandatory;
  scrollbar-width:none; -ms-overflow-style:none;
}
.msp-gallery__thumbs--paged::-webkit-scrollbar{ display:none; }
.msp-gallery__thumb{
  flex:0 0 66px; width:66px; height:66px; padding:4px; border-radius:9px;
  border:1.5px solid var(--steel-light); background:#fff; cursor:pointer;
  transition:border-color .12s;
}
.msp-gallery__thumbs--paged .msp-gallery__thumb{
  flex:0 0 calc((100% - 40px) / 5); width:auto; aspect-ratio:1/1; height:auto;
  scroll-snap-align:start;
}
.msp-gallery__thumb img{ width:100%; height:100%; object-fit:contain; display:block; }
.msp-gallery__thumb.is-active{ border-color:var(--navy); }
.msp-gallery__thumb:hover{ border-color:var(--brass); }
.msp-gallery__thumbnav{
  flex:0 0 auto; width:28px; height:28px; border-radius:50%;
  border:1px solid var(--steel-light); background:#fff; color:var(--navy);
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  transition:border-color .12s, opacity .12s;
}
.msp-gallery__thumbnav:hover{ border-color:var(--brass); }
.msp-gallery__thumbnav[disabled]{ opacity:.3; cursor:default; }

/* ---------- Offer pills ---------- */
.msp-offers{ display:flex; flex-wrap:wrap; gap:8px; margin:10px 0 14px; }
.msp-offer{
  display:inline-flex; align-items:center; gap:6px;
  padding:5px 11px; border-radius:999px; font-size:11.5px; font-weight:700;
  letter-spacing:.01em; border:1px solid transparent;
}
.msp-offer--sale{ background:rgba(193,39,45,.09); color:var(--sale); }
.msp-offer--pick{ background:rgba(201,154,62,.14); color:#8a6a24; }
.msp-offer--ship{ background:rgba(62,107,79,.10); color:var(--green-tag); }

/* ---------- Price block ---------- */
.msp-price-block{ margin:0 0 20px; padding-bottom:18px; border-bottom:1px solid var(--steel-light); }
.msp-pb__mrp{ display:block; font-size:12.5px; color:#8b93a1; margin-bottom:2px; }
.msp-pb__strike{ text-decoration:line-through; }
.msp-pb__row{ display:flex; align-items:baseline; gap:12px; }
.msp-pb__now{ font-family:'Fraunces',serif; font-size:30px; font-weight:700; color:var(--navy); letter-spacing:-.01em; }
.msp-pb__pct{ font-size:15px; font-weight:800; color:var(--sale); }
.msp-pb__save{ display:block; margin-top:5px; font-size:13px; font-weight:600; color:var(--green-tag); }
.msp-pb__tax{ display:block; margin-top:3px; font-size:11.5px; color:#98a0ab; }

/* ---------- FEATURES short description ---------- */
.single-product .woocommerce-product-details__short-description{ margin:0 0 20px; }

/* ---------- Variation choosers (size cards / colour swatches) ---------- */
.msp-opts{ margin:4px 0 18px; display:flex; flex-direction:column; gap:16px; }
.msp-opt-group__label{ font-size:13px; font-weight:700; color:var(--navy); margin-bottom:9px; }
.msp-opt-group__chosen{ font-weight:600; color:#4b5563; }
.msp-opt-group__grid{ display:flex; flex-wrap:wrap; gap:10px; }

.msp-opt{
  min-width:76px; padding:9px 12px 10px; border:1.5px solid var(--steel-light); border-radius:9px;
  background:#fff; text-align:center; cursor:pointer; line-height:1.25;
  display:flex; flex-direction:column; align-items:center; gap:2px;
  transition:border-color .12s, box-shadow .12s, opacity .12s;
}
.msp-opt:hover{ border-color:var(--navy); }
.msp-opt.is-active{ border-color:var(--navy); box-shadow:inset 0 0 0 1px var(--navy); }
.msp-opt__name{ font-size:13.5px; font-weight:700; color:var(--navy); }
.msp-opt__price{ font-size:12.5px; font-weight:700; color:var(--ink); }
.msp-opt__mrp{ font-size:11px; color:#98a0ab; text-decoration:line-through; }
.msp-opt__tag{ font-size:10px; font-weight:700; color:#98a0ab; text-transform:uppercase; }

.msp-opt.is-oos{ opacity:.5; cursor:not-allowed; }
.msp-opt.is-oos .msp-opt__name{ text-decoration:line-through; }
/* value that can't be combined with the other picks right now */
.msp-opt.is-unavailable{
  opacity:.32; cursor:not-allowed; border-style:dashed;
}
.msp-opt.is-unavailable .msp-opt__name{ text-decoration:line-through; }

/* colour / finish → a dot instead of a box */
.msp-opt-group--swatch .msp-opt-group__grid{ gap:12px; }
.msp-opt--swatch{
  min-width:0; padding:6px 12px 6px 6px; border-radius:999px; flex-direction:row; gap:8px;
}
.msp-opt--swatch .msp-opt__dot{
  width:20px; height:20px; border-radius:50%; flex-shrink:0;
  background:var(--sw, #ccc); box-shadow:inset 0 0 0 1px rgba(0,0,0,.16);
}
.msp-opt--swatch .msp-opt__name{ font-size:12.5px; font-weight:600; }
.msp-opt--swatch.is-active{ border-color:var(--navy); box-shadow:inset 0 0 0 1.5px var(--navy); }

.msp-opts__reset{
  align-self:flex-start; font-family:inherit; font-size:12px; font-weight:700;
  color:#8b93a1; background:none; border:0; border-bottom:1.5px solid transparent;
  padding:0 0 1px; cursor:pointer; transition:color .12s, border-color .12s;
}
.msp-opts__reset:hover{ color:var(--rust); border-bottom-color:var(--brass); }
.msp-opts__reset[hidden]{ display:none; }

.msp-variations__native{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); margin:-1px; }

/* ---------- Quantity stepper ---------- */
.single-product .woocommerce div.product form.cart{ margin:0 0 20px; }
.single-product .quantity{
  display:inline-flex; align-items:stretch; height:48px;
  border:1.5px solid var(--steel-light); border-radius:9px; overflow:hidden; background:#fff;
}
.single-product .quantity .msp-qty-btn{
  width:38px; flex-shrink:0; border:none; background:#fff; color:var(--navy);
  font-size:18px; font-weight:700; line-height:1; cursor:pointer;
}
.single-product .quantity .msp-qty-btn:hover{ background:var(--ivory-2); }
.single-product .quantity input.qty{
  width:42px; border:none; border-left:1.5px solid var(--steel-light); border-right:1.5px solid var(--steel-light);
  text-align:center; font-family:inherit; font-size:14px; font-weight:700; color:var(--navy);
  -moz-appearance:textfield; padding:0; background:#fff;
}
.single-product .quantity input.qty::-webkit-outer-spin-button,
.single-product .quantity input.qty::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }

.single-product .woocommerce div.product .woocommerce-variation-add-to-cart,
.single-product .woocommerce div.product form.cart:not(.variations_form){
  display:flex; flex-wrap:wrap; align-items:center; gap:12px;
}
.single-product .woocommerce div.product .single_add_to_cart_button,
.single-product .msp-buy-now{
  flex:1 1 190px; min-height:48px; border-radius:9px; font-size:13px !important;
  letter-spacing:.04em; padding:0 22px; border:none; text-transform:uppercase; font-weight:800;
}
.single-product .woocommerce div.product .single_add_to_cart_button{
  background:var(--navy) !important; color:#fff !important;
}
.single-product .woocommerce div.product .single_add_to_cart_button:hover{ background:#2a3646 !important; }
.single-product .msp-buy-now{ background:var(--brass) !important; color:var(--navy) !important; }
.single-product .msp-buy-now:hover{ background:var(--brass-light) !important; }
/* Disabled (no size chosen yet) — muted, not lavender */
.single-product .woocommerce div.product .single_add_to_cart_button.disabled,
.single-product .woocommerce div.product .single_add_to_cart_button.wc-variation-selection-needed{
  background:#c7ccd3 !important; color:#fff !important; cursor:not-allowed; opacity:1;
}
.single-product .msp-buy-now.disabled,
.single-product .msp-buy-now:disabled{
  background:#e5ddca !important; color:#a99e82 !important; cursor:not-allowed; pointer-events:none;
}
/* Our price block + size cards already convey price; hide WC's duplicate. */
.single-product .woocommerce-variation-price{ display:none; }
.single-product .woocommerce-variation-availability{ font-size:12.5px; color:var(--green-tag); margin:2px 0 8px; }
.single-product .woocommerce-variation-description{ font-size:13px; color:#6b7280; }
.single-product .woocommerce div.product .woocommerce-variation-add-to-cart.woocommerce-variation-add-to-cart-disabled{ opacity:1; }
.single-product form.cart .reset_variations{ display:inline-block; margin-top:8px; font-size:12px; color:var(--rust); }
.single-product form.cart .msp-variations__native + .reset_variations{ display:none; }

/* ---------- Delivery block ---------- */
.msp-delivery{
  border:1px solid var(--steel-light); border-radius:12px; padding:16px 16px 14px; margin-top:4px;
}
.msp-delivery__head{
  display:flex; align-items:center; gap:8px; font-size:13px; font-weight:700; color:var(--navy);
  margin-bottom:11px;
}
.msp-delivery__form{ display:flex; gap:8px; }
.msp-delivery__form input{
  flex:1; min-width:0; padding:10px 12px; border:1.5px solid var(--steel-light); border-radius:8px;
  font-family:inherit; font-size:13.5px; letter-spacing:.06em;
}
.msp-delivery__form input:focus{ outline:none; border-color:var(--brass); }
.msp-delivery__form button{
  padding:0 18px; border-radius:8px; background:var(--navy); color:#fff;
  font-weight:700; font-size:12.5px; text-transform:uppercase; letter-spacing:.03em;
}
.msp-delivery__result{ margin:10px 0 0; font-size:12.5px; color:#6b7280; min-height:1em; display:flex; align-items:center; gap:7px; }
.msp-delivery__result:empty{ margin:0; min-height:0; }
.msp-delivery__result.is-ok{ color:var(--green-tag); }
.msp-delivery__result strong{ color:var(--navy); }
.msp-spinner{
  width:13px; height:13px; flex-shrink:0; border-radius:50%;
  border:2px solid var(--steel-light); border-top-color:var(--navy);
  animation:msp-spin .7s linear infinite;
}
@keyframes msp-spin{ to{ transform:rotate(360deg); } }

/* ---------- FEATURES moved to the Additional information tab ---------- */
.msp-tab-features{ margin:0 0 18px; }
.msp-tab-features p:first-child strong{
  font-family:'Fraunces',serif; font-weight:600; font-size:14px; letter-spacing:.02em;
  text-transform:none; color:var(--navy);
}
.msp-tab-features ul{
  list-style:none; margin:6px 0 0; padding:0;
  display:grid; gap:9px;
}
.msp-tab-features ul li{
  position:relative; padding-left:26px;
  font-size:14px; line-height:1.6; color:#3f4753;
}
.msp-tab-features ul li::before{
  content:""; position:absolute; left:4px; top:8px;
  width:8px; height:8px; border-radius:2px; transform:rotate(45deg);
  background:var(--brass);
}
.msp-delivery__perks{ list-style:none; margin:12px 0 0; padding:12px 0 0; border-top:1px dashed var(--steel-light); }
.msp-delivery__perks li{ font-size:12px; color:#4b5563; margin-bottom:6px; }

/* ---------- Related products carousel ---------- */
.msp-related{ margin-top:52px; padding-top:32px; border-top:1px solid var(--steel-light); }
.msp-related > h2{ font-family:'Fraunces',serif; font-size:22px; color:var(--navy); margin-bottom:18px; }
.msp-related__viewport{ position:relative; }
.msp-related ul.products{
  display:flex !important; gap:18px; overflow-x:auto; margin:0; padding:4px 0;
  scroll-behavior:smooth; scroll-snap-type:x proximity;
  scrollbar-width:none; -ms-overflow-style:none;
}
.msp-related ul.products::before,
.msp-related ul.products::after{ display:none; content:none; }
.msp-related ul.products::-webkit-scrollbar{ display:none; }
.msp-related li.product{
  flex:0 0 240px !important; width:240px !important; margin:0 !important; padding:0 !important;
  float:none !important; scroll-snap-align:start;
}
.msp-related__nav{
  position:absolute; top:120px; z-index:3;
  width:36px; height:36px; border-radius:50%;
  background:#fff; border:1px solid var(--steel-light); color:var(--navy);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 18px rgba(28,36,48,0.14); transition:opacity .15s, background .15s;
}
.msp-related__nav:hover{ background:var(--brass); border-color:var(--brass); }
.msp-related__nav--prev{ left:-14px; }
.msp-related__nav--next{ right:-14px; }
.msp-related__nav[disabled]{ opacity:0; pointer-events:none; }

@media (max-width:960px){
  /* minmax(0,1fr) — a bare 1fr lets wide descendants (related strip, tabs)
     blow the single column out to their max-content width */
  .single-product .woocommerce div.product{ grid-template-columns:minmax(0,1fr); gap:30px; }
  .single-product .woocommerce div.product > *{ min-width:0; }
  /* stacked layout — keep the square image from eating the whole screen */
  .msp-gallery{ position:static; max-width:460px; margin-left:auto; margin-right:auto; width:100%; }
  .msp-related li.product{ flex-basis:200px !important; width:200px !important; }
  .msp-related__nav{ display:none; }
}
@media (max-width:620px){
  .single-product .woocommerce div.product .product_title{ font-size:22px; }
  .msp-pb__now{ font-size:25px; }
  .msp-gallery__nav{ opacity:1; }
}

/* =========================================================================
 * BARGAIN FEATURE
 * ====================================================================== */

/* ---------- Trigger (full-width, below Add to cart / Buy it now) ---------- */
.msp-bargain{ margin:0 0 22px; }
.msp-bargain__trigger{
  display:flex; flex-direction:column; align-items:center; gap:2px;
  width:100%; padding:12px 18px; cursor:pointer;
  border:1.5px solid var(--brass); border-radius:10px;
  background:linear-gradient(180deg,#fffdf7,#fbf3e0);
  color:var(--navy); text-align:center;
  position:relative; overflow:hidden;
  transition:transform .12s, box-shadow .2s, border-color .2s;
}
.msp-bargain__trigger:hover{ transform:translateY(-1px); box-shadow:0 10px 26px rgba(201,154,62,0.28); }
.msp-bargain__trigger::after{
  content:""; position:absolute; top:0; left:-60%; width:40%; height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,0.75),transparent);
  transform:skewX(-18deg); animation:msp-bargain-sheen 4.6s ease-in-out infinite;
}
@keyframes msp-bargain-sheen{
  0%,72%{ left:-60%; } 88%,100%{ left:130%; }
}
.msp-bargain__trigger .msp-bargain__spark{ color:var(--brass); display:inline-flex; }
.msp-bargain__trigger-text{
  font-family:'Fraunces',serif; font-size:16px; font-weight:700; letter-spacing:.01em;
  display:flex; align-items:center; gap:7px;
}
.msp-bargain__trigger-sub{ font-size:11.5px; color:#8a7b57; font-weight:600; }
.msp-bargain__trigger-chevron{
  position:absolute; right:14px; top:50%; margin-top:-8px;
  display:none; color:var(--brass);
}
.msp-bargain__trigger.is-exhausted{
  border-color:var(--steel-light); background:#f4f5f6; color:#9aa3ae; cursor:not-allowed;
}
.msp-bargain__trigger.is-exhausted::after{ display:none; }
.msp-bargain__trigger[disabled]{ opacity:1; }

/* Accordion "open" state — trigger slims to a header that toggles the slider shut */
.msp-bargain.is-bargain-open .msp-bargain__trigger{
  flex-direction:row; justify-content:center; gap:8px;
  padding:10px 34px; border-radius:10px 10px 0 0;
  border-bottom-color:transparent; box-shadow:none; transform:none;
}
.msp-bargain.is-bargain-open .msp-bargain__trigger::after{ display:none; } /* stop the sheen */
.msp-bargain.is-bargain-open .msp-bargain__trigger-text{ font-size:13.5px; }
.msp-bargain.is-bargain-open .msp-bargain__trigger-sub{ display:none; }
.msp-bargain.is-bargain-open .msp-bargain__trigger-chevron{ display:inline-flex; transform:rotate(180deg); }
.msp-bargain.is-bargain-open .msp-bargain__panel{
  margin-top:0; border-top:none; border-radius:0 0 10px 10px;
  border-color:var(--brass);
}

@media (prefers-reduced-motion: reduce){
  .msp-bargain__trigger::after{ animation:none; display:none; }
  .msp-bargain__trigger:hover{ transform:none; }
  .msp-bargain__trigger-chevron{ transition:none; }
}

/* ---------- Panel shell ---------- */
.msp-bargain__panel{
  margin-top:10px; padding:16px 16px 14px;
  border:1px solid var(--steel-light); border-radius:10px; background:#fff;
}
.msp-bargain__note{ font-size:12.5px; color:#6b7280; font-weight:600; }

/* ---------- Login prompt ---------- */
.msp-bargain__login-title{ font-family:'Fraunces',serif; font-size:16px; color:var(--navy); margin-bottom:4px; }
.msp-bargain__login-body{ font-size:12.5px; color:#6b7280; line-height:1.55; margin-bottom:12px; }
.msp-bargain__login-btns{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.msp-bargain__signin{
  background:var(--navy) !important; color:#fff !important; border-radius:8px;
  padding:9px 20px; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.04em;
}
.msp-bargain__register{ font-size:12.5px; font-weight:700; color:var(--rust); text-decoration:underline; }

/* ---------- Slider ---------- */
.msp-slider__replace{
  font-size:12px; color:#8a6d00; background:#fff3cd; border-radius:7px;
  padding:8px 10px; margin-bottom:12px; line-height:1.45;
}
.msp-slider__head{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
.msp-slider__label{ font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:#6b7280; flex-shrink:0; }

/* boxed, glowing "your offer" amount — sizes tight to its content (JS widths the input) */
.msp-slider__pricebox{
  display:inline-flex; align-items:baseline; gap:2px; min-width:0;
  padding:5px 12px; border-radius:10px;
  background:radial-gradient(130% 160% at 50% 0%, #fffaf0 0%, #fcefd6 100%);
  border:1.5px solid rgba(201,154,62,.55);
  box-shadow:inset 0 1px 6px rgba(201,154,62,.16);
  animation:msp-box-glow 3.4s ease-in-out infinite;
}
@keyframes msp-box-glow{
  0%,100%{ box-shadow:0 0 0 3px rgba(201,154,62,.07), inset 0 1px 6px rgba(201,154,62,.14); }
  50%    { box-shadow:0 0 0 4px rgba(201,154,62,.15), 0 0 22px rgba(245,200,66,.38), inset 0 1px 9px rgba(201,154,62,.22); }
}
.msp-slider__cur-sym{
  font-family:'Fraunces',serif; font-weight:700; font-size:16px; color:#a5760f; flex-shrink:0;
}
input.msp-slider__price{
  min-width:2ch; width:4ch; text-align:left; padding:0;
  border:none; background:transparent; outline:none; border-radius:0; -moz-appearance:textfield;
  font-family:'Fraunces',serif; font-size:23px; font-weight:800; letter-spacing:-.01em;
  /* solid rich gold — always legible; a metallic top-light via gradient, no pale band */
  color:#a5760f;
  background-image:linear-gradient(178deg,#d8a12c 0%,#b07d16 62%,#8f6410 100%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  animation:msp-treasure-glow 2.6s ease-in-out infinite;
  caret-color:#a5760f;
}
input.msp-slider__price::-webkit-outer-spin-button,
input.msp-slider__price::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
input.msp-slider__price:hover{ cursor:text; }
input.msp-slider__price:focus{ -webkit-text-fill-color:#8f6410; animation:none; filter:none; }

/* Treasure "illumination": a soft gold glow that pulses. It never touches the
   glyph fill, so the number stays crisp and readable. */
@keyframes msp-treasure-glow{
  0%,100%{ filter:drop-shadow(0 1px 2px rgba(140,95,15,.16)) drop-shadow(0 0 4px rgba(226,178,60,.22)); }
  50%    { filter:drop-shadow(0 1px 3px rgba(140,95,15,.22)) drop-shadow(0 0 15px rgba(247,206,92,.6)); }
}
@media (prefers-reduced-motion:reduce){
  .msp-slider__pricebox,
  input.msp-slider__price,
  .msp-pb__now--bargain,
  .msp-pb__combo{ animation:none; }
}

/* qty stepper (matches the page one) */
.msp-stepper{
  display:inline-flex; align-items:stretch; height:38px;
  border:1.5px solid var(--steel-light); border-radius:9px; overflow:hidden; background:#fff;
}
.msp-stepper__btn{
  width:34px; flex-shrink:0; border:none; background:#fff; color:var(--navy);
  font-size:17px; font-weight:700; line-height:1; cursor:pointer;
}
.msp-stepper__btn:hover{ background:var(--ivory-2); }
.msp-stepper__val{
  width:44px; border:none; border-left:1.5px solid var(--steel-light); border-right:1.5px solid var(--steel-light);
  text-align:center; font-family:inherit; font-size:14px; font-weight:700; color:var(--navy);
  padding:0; background:#fff; outline:none; -moz-appearance:textfield;
}
.msp-stepper__val::-webkit-outer-spin-button,
.msp-stepper__val::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.msp-slider__range{
  -webkit-appearance:none; appearance:none; width:100%; height:6px; border-radius:6px;
  background:#e7e2d6; /* JS paints a gold fill from the left edge up to the thumb */
  outline:none; margin:4px 0 2px;
  direction:rtl; /* thumb starts at the RIGHT (0%); drag LEFT for a bigger discount */
}
.msp-slider__range::-webkit-slider-thumb{
  -webkit-appearance:none; appearance:none; width:22px; height:22px; border-radius:50%;
  background:#fff; border:2px solid var(--brass); cursor:pointer;
  box-shadow:0 3px 10px rgba(28,36,48,0.22);
}
.msp-slider__range::-moz-range-thumb{
  width:22px; height:22px; border-radius:50%; background:#fff; border:2px solid var(--brass); cursor:pointer;
}
.msp-slider__scale{ display:flex; justify-content:space-between; font-size:11px; color:#9aa3ae; margin-bottom:6px; }
.msp-slider__cur{ color:var(--navy); font-weight:800; }
.msp-slider__hint{
  font-size:11px; color:#9aa3ae; margin:0 0 15px; display:flex; align-items:center; gap:5px;
}
.msp-slider__hint::before{ content:"\2190"; font-size:13px; font-weight:800; color:var(--brass); }

/* One row: [− n +] · Submit · Cancel · … · Add a note · (i).
   "Add a note" expands the field below the whole row. */
.msp-slider__bar{
  display:flex; align-items:center; gap:8px 9px; flex-wrap:wrap; margin-bottom:4px;
}
.msp-slider__qty.msp-stepper{ height:36px; flex-shrink:0; }
.msp-slider__qty .msp-stepper__btn{ width:30px; }
.msp-slider__qty .msp-stepper__val{ width:32px; }
.msp-slider__submit{
  background:var(--brass) !important; color:var(--navy) !important; border:none !important; border-radius:8px !important;
  padding:10px 15px !important; font-size:11.5px !important; font-weight:800; text-transform:uppercase; letter-spacing:.03em; cursor:pointer;
  box-shadow:0 2px 10px rgba(201,154,62,.32); line-height:1.2 !important; white-space:nowrap;
}
.msp-slider__submit:hover{ background:var(--brass-light) !important; }
.msp-slider__submit[disabled]{ opacity:.6; cursor:default; box-shadow:none; }
.msp-slider__cancel{
  background:none; border:none; font-size:12px; font-weight:700; color:#6b7280; cursor:pointer; white-space:nowrap;
  text-decoration:underline; text-underline-offset:3px; padding:0 2px;
}
.msp-slider__cancel:hover{ color:var(--sale); }
.msp-slider__note-toggle{
  margin-left:auto; /* push it + the "i" to the right end of the row */
  display:inline-flex; align-items:center; gap:5px;
  background:none; border:1px dashed var(--steel-light); border-radius:8px;
  padding:6px 9px; font-size:11px; font-weight:700; color:#6b7280; cursor:pointer; white-space:nowrap;
  transition:border-color .14s, color .14s, background .14s;
}
.msp-slider__note-toggle:hover{ border-color:var(--brass); color:var(--brass); }
.msp-slider__note-toggle.is-on{
  border-style:solid; border-color:var(--brass); color:#8f6410; background:#fff8ea;
}
.msp-slider__note-toggle svg{ flex-shrink:0; }
.msp-slider__bar .msp-bargain__info--inline{ margin-left:0; width:27px; height:27px; }

/* Collapsible note field — drops down under the row. */
.msp-slider__note{ margin:11px 0 2px; }
.msp-slider__note-field{
  width:100%; box-sizing:border-box; resize:vertical; min-height:52px;
  border:1.5px solid var(--steel-light); border-radius:9px; padding:9px 11px;
  font-family:inherit; font-size:13px; line-height:1.5; color:var(--ink); background:#fff; outline:none;
}
.msp-slider__note-field:focus{ border-color:var(--brass); }

.msp-slider__resume{
  margin:0 0 12px; padding:8px 11px; border-radius:8px;
  background:#eef6ee; border:1px solid #c9e3c9; color:#276c34;
  font-size:12px; font-weight:700;
}
.msp-slider__err{ margin-top:10px; font-size:12px; font-weight:700; color:var(--sale); }
@media (max-width:460px){
  .msp-slider__note-toggle{ margin-left:0; }
  .msp-slider__submit{ flex:1 1 auto; text-align:center; }
}

/* a short message the shop attached to an approve / counter */
.msp-bargain__team-note{
  margin:12px 0 4px; padding:9px 12px; border-radius:9px;
  background:#fff8ea; border:1px solid rgba(201,154,62,.4);
  font-size:12.5px; line-height:1.5; color:#5c4a1f;
}
.msp-bargain__team-note span{
  display:block; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.05em;
  color:#a5760f; margin-bottom:2px;
}

/* ---------- Pending ---------- */
.msp-pend__status{
  display:flex; align-items:center; gap:8px;
  font-family:'Fraunces',serif; font-size:16px; font-weight:700; color:#8a6d00; margin-bottom:6px;
}
.msp-pend__dot{
  width:9px; height:9px; border-radius:50%; background:#e0a800;
  box-shadow:0 0 0 0 rgba(224,168,0,0.6); animation:msp-pend-pulse 1.8s infinite;
}
@keyframes msp-pend-pulse{
  0%{ box-shadow:0 0 0 0 rgba(224,168,0,0.55); }
  70%{ box-shadow:0 0 0 9px rgba(224,168,0,0); }
  100%{ box-shadow:0 0 0 0 rgba(224,168,0,0); }
}
.msp-pend__line{ font-size:14px; font-weight:700; color:var(--navy); margin-bottom:3px; }
.msp-pend__pct{ font-weight:600; color:#6b7280; font-size:12.5px; }
.msp-pend__note{ font-size:12px; color:#6b7280; margin-bottom:12px; }
.msp-pend__actions{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.msp-pend__new{
  background:var(--navy); color:#fff; border:none; border-radius:8px;
  padding:9px 18px; font-size:11.5px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; cursor:pointer;
}
.msp-pend__cancel{ background:none; border:none; font-size:12.5px; font-weight:700; color:#6b7280; cursor:pointer; }
.msp-pend__cancel:hover{ color:var(--sale); }

/* ---------- Approved ---------- */
.msp-appr{ border-left:3px solid var(--brass); padding-left:12px; }
.msp-appr__status{
  display:flex; align-items:center; gap:8px;
  font-family:'Fraunces',serif; font-size:16px; font-weight:700; color:var(--brass); margin-bottom:5px;
}
.msp-appr__check{
  width:18px; height:18px; border-radius:50%; background:var(--brass); color:#fff;
  font-size:12px; display:flex; align-items:center; justify-content:center; font-weight:800;
}
.msp-appr__line{ font-size:14px; font-weight:700; color:var(--navy); margin-bottom:6px; }
.msp-appr__count{
  display:inline-block; font-size:12px; font-weight:800; letter-spacing:.03em;
  color:#8a6d00; background:#fff3cd; border-radius:6px; padding:4px 10px;
}
.msp-appr__warn{ margin-top:9px; font-size:12px; font-weight:700; color:var(--sale); }

/* ---------- Countered ---------- */
.msp-counter__title{ font-size:13px; font-weight:700; color:var(--navy); margin-bottom:6px; line-height:1.45; }
.msp-counter__offer{
  font-family:'Fraunces',serif; font-size:19px; font-weight:700; color:var(--brass); margin-bottom:12px;
}
.msp-counter__actions{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.msp-counter__accept{
  background:var(--brass) !important; color:var(--navy) !important; border:none; border-radius:9px;
  padding:10px 24px; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; cursor:pointer;
}
.msp-counter__accept:hover{ background:var(--brass-light) !important; }
.msp-counter__new{ background:none; border:none; font-size:12.5px; font-weight:700; color:#6b7280; cursor:pointer; }
.msp-counter__new:hover{ color:var(--navy); }

/* ---------- Price block: bargained "treasure" state ---------- */
.msp-pb--treasure{ display:flex; flex-direction:column; }
.msp-pb--treasure .msp-pb__mrp{
  font-size:14px; color:#8b93a1; margin-bottom:2px;
}
.msp-pb__murugan{
  display:block; font-size:16px; font-weight:600; color:#6b7280; margin-bottom:8px;
}
.msp-pb__murugan .msp-pb__strike{ text-decoration:line-through; text-decoration-color:#b9bfc7; }

.msp-pb__treasure-row{ display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.msp-pb__now--bargain{
  font-family:'Fraunces',serif; font-weight:800; font-size:44px; line-height:1; letter-spacing:-.02em;
  /* solid rich gold, subtle metallic top-light; NO moving highlight band */
  color:#a5760f;
  background-image:linear-gradient(176deg,#dda52d 0%,#b17d16 60%,#8c620f 100%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  animation:msp-treasure-glow 2.6s ease-in-out infinite;
}
.msp-pb__combo{
  font-size:13px; font-weight:800; letter-spacing:.02em; color:#fff;
  padding:5px 11px; border-radius:7px; white-space:nowrap;
  background:var(--sale);
  box-shadow:0 3px 12px rgba(193,39,45,.22);
  animation:msp-combo-pulse 2.6s ease-in-out infinite;
}
@keyframes msp-combo-pulse{
  0%,100%{ box-shadow:0 3px 10px rgba(193,39,45,.20); }
  50%    { box-shadow:0 3px 20px rgba(193,39,45,.42); }
}
.msp-pb__special-label{
  display:block; margin-top:8px; font-family:'Fraunces',serif; font-size:14px; font-weight:700;
  color:#a86f12; letter-spacing:.01em;
}
.msp-pb--treasure .msp-pb__save{
  display:block; margin-top:4px; font-size:13px; font-weight:700; color:var(--sale);
}
.msp-pb__timer{ display:inline-flex; align-items:center; gap:4px; font-weight:700; color:#8a6d00; }
.msp-pb__timer svg{ opacity:.8; }

@media (prefers-reduced-motion:reduce){
  .msp-pb__now--bargain,
  .msp-pb__combo{ animation:none; }
}
@media (max-width:620px){
  .msp-pb__now--bargain{ font-size:36px; }
}

/* ---------- Bargain info "i" + Terms modal ---------- */
.msp-bargain{ position:relative; }
.msp-bargain__info{
  position:absolute; right:12px; bottom:12px; z-index:3;
  width:26px; height:26px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  border:1.5px solid var(--steel-light); background:#fff; color:var(--steel);
  transition:color .14s, border-color .14s;
}
.msp-bargain__info:hover{ color:var(--brass); border-color:var(--brass); }
.msp-bargain__panel[hidden] ~ .msp-bargain__info{ display:none; }
/* pulled onto the slider's Quantity / actions row */
.msp-bargain__info--inline{
  position:static; right:auto; bottom:auto; z-index:auto;
  width:30px; height:30px; flex-shrink:0;
}

.msp-modal{
  position:fixed; inset:0; z-index:10000;
  display:flex; align-items:center; justify-content:center; padding:22px;
}
.msp-modal[hidden]{ display:none; }
.msp-modal__backdrop{ position:absolute; inset:0; background:rgba(20,26,34,.62); backdrop-filter:blur(2px); }
.msp-modal__dialog{
  position:relative; width:640px; max-width:100%; max-height:88vh; overflow:hidden;
  display:flex; flex-direction:column;
  background:#fff; border-radius:14px; border-top:4px solid var(--brass);
  box-shadow:0 40px 90px rgba(20,26,34,.5);
}
.msp-modal__head{
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding:20px 24px; border-bottom:1px solid var(--steel-light);
}
.msp-modal__title{ font-family:'Fraunces',serif; font-size:22px; font-weight:600; color:var(--navy); }
.msp-modal__x{
  flex-shrink:0; width:34px; height:34px; border-radius:50%; border:none; background:var(--ivory-2);
  font-size:22px; line-height:1; color:var(--navy); cursor:pointer;
}
.msp-modal__x:hover{ background:var(--steel-light); }
.msp-modal__body{ padding:8px 24px 26px; overflow-y:auto; }
body.msp-modal-open{ overflow:hidden; }

/* Terms content */
.msp-modal__body .msp-tc__lead{
  font-size:14px; line-height:1.6; color:var(--ink); margin:16px 0 4px;
  padding:14px 16px; background:var(--ivory-2); border-radius:10px;
}
.msp-modal__body .msp-tc__first{
  font-size:13.5px; line-height:1.62; color:#5b4a1e; margin:10px 0 4px;
  padding:13px 16px; border-radius:10px;
  background:linear-gradient(180deg,#fffaf0,#fbf1da);
  border:1px solid rgba(201,154,62,.4);
}
.msp-modal__body .msp-tc__first strong{ color:#8a6d00; }
.msp-modal__body h3{
  font-family:'Fraunces',serif; font-size:15.5px; font-weight:600; color:var(--navy);
  margin:22px 0 7px;
}
.msp-modal__body p{ font-size:13.5px; line-height:1.6; color:#3f4650; margin:0 0 8px; }
.msp-modal__body ul,
.msp-modal__body ol{ margin:0 0 8px; padding-left:20px; }
.msp-modal__body ul{ list-style:disc; }
.msp-modal__body ol{ list-style:decimal; }
.msp-modal__body li{ font-size:13.5px; line-height:1.6; color:#3f4650; margin-bottom:5px; }
.msp-modal__body li::marker{ color:var(--brass); }
.msp-modal__body strong{ color:var(--navy); }

/* ---------- Toast ---------- */
.msp-toast{
  position:fixed; left:50%; bottom:28px; transform:translate(-50%,20px);
  background:var(--navy); color:#fff; font-size:13px; font-weight:600;
  padding:12px 20px; border-radius:10px; box-shadow:0 14px 40px rgba(28,36,48,0.35);
  opacity:0; transition:opacity .3s, transform .3s; z-index:9999; max-width:90vw;
}
.msp-toast.is-in{ opacity:1; transform:translate(-50%,0); }

/* ---------- "Added to basket" confirmation ---------- */
.msp-carttoast{
  position:fixed; right:20px; bottom:20px; z-index:9998;
  display:flex; align-items:center; gap:10px;
  padding:11px 14px; border-radius:12px; max-width:calc(100vw - 40px);
  background:#fff; border:1px solid var(--steel-light); border-left:3px solid #1e7d3c;
  box-shadow:0 16px 44px rgba(20,26,34,.18);
  font-family:'Work Sans',sans-serif; font-size:13px; font-weight:600; color:var(--navy);
  opacity:0; transform:translateY(14px); pointer-events:none;
  transition:opacity .28s ease, transform .28s ease;
}
.msp-carttoast.is-in{ opacity:1; transform:none; pointer-events:auto; }
.msp-carttoast__ico{
  flex-shrink:0; width:22px; height:22px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:#e6f4ea; color:#1e7d3c;
}
.msp-carttoast__txt{ white-space:nowrap; }
.msp-carttoast__link{
  margin-left:2px; font-size:11.5px; font-weight:800; letter-spacing:.03em; text-transform:uppercase;
  color:var(--rust); white-space:nowrap;
}
.msp-carttoast__link:hover{ color:var(--brass); }
@media (max-width:520px){
  .msp-carttoast{ left:16px; right:16px; bottom:16px; justify-content:center; }
}
@media (prefers-reduced-motion:reduce){
  .msp-carttoast{ transition:opacity .2s; transform:none; }
}

/* add-to-cart button while the AJAX request is in flight */
.single_add_to_cart_button.is-loading{ opacity:.72; cursor:progress; }

/* ---------- Branded alert (replaces the browser's grey "smsp.local says…") ---------- */
.msp-alert{ z-index:100000; }
.msp-alert__dialog{
  position:relative; width:400px; max-width:100%;
  background:#fff; border-radius:16px; border-top:4px solid var(--brass);
  box-shadow:0 40px 90px rgba(20,26,34,.5);
  padding:28px 26px 22px; text-align:center;
  transform:translateY(8px) scale(.97); opacity:0;
  transition:transform .18s ease, opacity .18s ease;
}
.msp-alert:not([hidden]) .msp-alert__dialog{ transform:none; opacity:1; }
.msp-alert__mark{
  width:54px; height:54px; margin:0 auto 12px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:radial-gradient(120% 120% at 50% 25%, #2b3648, var(--navy));
  border:1.5px solid rgba(228,190,113,.55); box-shadow:0 6px 18px rgba(20,26,34,.28);
}
.msp-alert__mark img{ width:76%; height:76%; object-fit:contain; }
.msp-alert__title{
  font-family:'Fraunces',serif; font-size:16px; font-weight:600; color:var(--navy); margin-bottom:5px;
}
.msp-alert__msg{ font-size:13.5px; line-height:1.55; color:#3f4650; margin:0 0 18px; }
.msp-alert__ok{
  min-width:120px; height:42px; padding:0 22px; border:none; border-radius:9px; cursor:pointer;
  background:var(--navy); color:#fff;
  font-size:11.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
  transition:background .14s, color .14s;
}
.msp-alert__ok:hover{ background:var(--brass); color:var(--navy); }

/* nudge to draw the eye to the field that needs input */
@keyframes msp-shake{
  0%,100%{ transform:translateX(0); }
  20%{ transform:translateX(-6px); } 40%{ transform:translateX(5px); }
  60%{ transform:translateX(-3px); } 80%{ transform:translateX(2px); }
}
.msp-shake{ animation:msp-shake .5s ease; }
@media (prefers-reduced-motion:reduce){
  .msp-alert__dialog{ transition:none; }
  .msp-shake{ animation:none; }
}

/* ---------- My Account: notifications ---------- */
.msp-acct-badge{
  display:inline-block; min-width:17px; padding:0 5px; height:17px; line-height:17px;
  text-align:center; border-radius:9px; background:var(--sale); color:#fff;
  font-size:10px; font-weight:800; vertical-align:middle; margin-left:5px;
}
.msp-notifications__empty{ font-size:14px; color:#6b7280; }
.msp-notifications__list{ list-style:none; margin:0; padding:0; }
.msp-notification{
  display:flex; gap:14px; padding:16px 4px; border-bottom:1px solid var(--steel-light);
}
.msp-notification.is-unread{ background:linear-gradient(90deg,rgba(201,154,62,0.09),transparent); }
.msp-notification__icon{
  flex-shrink:0; width:34px; height:34px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:#f4f5f6; color:var(--navy);
}
.msp-notification--bargain_approved .msp-notification__icon{ background:rgba(201,154,62,0.16); color:var(--brass); }
.msp-notification--bargain_countered .msp-notification__icon{ background:#e2e3ff; color:#3b3f8c; }
.msp-notification__title{ font-weight:700; color:var(--navy); font-size:14px; margin-bottom:2px; }
.msp-notification__body{ font-size:12.5px; color:#4b5563; line-height:1.5; margin-bottom:4px; }
.msp-notification__meta{ font-size:11.5px; color:#9aa3ae; }
.msp-notification__meta a{ color:var(--rust); font-weight:700; }

@media (max-width:620px){
  .msp-bargain__trigger-text{ font-size:15px; }
  .msp-slider__price{ font-size:22px; }
}

/* =========================================================================
 * Notification bell dropdown  (heritage palette — navy / brass / rust)
 * ====================================================================== */
.msp-bell-wrap{ position:relative; display:flex; }

.msp-notif-pop{
  position:absolute; top:calc(100% + 10px); right:-8px; z-index:120;
  width:380px; max-width:calc(100vw - 24px);
  background:#fff; border:1px solid var(--steel-light); border-top:3px solid var(--brass);
  border-radius:4px 4px 10px 10px;
  box-shadow:0 26px 60px rgba(28,36,48,0.22);
  display:flex; flex-direction:column; overflow:hidden;
  font-family:'Work Sans', sans-serif; font-size:13px;
}
.msp-notif-pop::before{
  content:""; position:absolute; top:-9px; right:23px; width:14px; height:14px;
  background:var(--brass); transform:rotate(45deg);
}
.msp-notif-pop[hidden]{ display:none; }

.msp-notif-pop__head{
  display:flex; align-items:center; gap:10px; padding:15px 18px 11px;
  border-bottom:1px solid var(--steel-light);
}
.msp-notif-pop__title{ font-family:'Fraunces',serif; font-size:18px; font-weight:600; color:var(--navy); letter-spacing:-.01em; }
.msp-notif-pop__badge{
  font-size:10.5px; font-weight:800; letter-spacing:.03em; text-transform:uppercase;
  color:#fff; background:var(--sale); border-radius:999px; padding:3px 9px;
}
.msp-notif-pop__badge.is-empty{ display:none; }

.msp-notif-pop__list{
  max-height:min(58vh,432px); overflow-y:auto; padding:6px;
  display:flex; flex-direction:column; gap:2px;
}
.msp-notif-pop__empty{ padding:28px 10px; text-align:center; color:var(--steel); font-size:12.5px; }

.msp-notif-item{
  display:flex; align-items:flex-start; gap:12px; padding:12px 11px;
  border-radius:8px; background:#fff; text-decoration:none; transition:background .12s;
}
.msp-notif-item:hover{ background:var(--ivory-2); }
.msp-notif-item.is-unread{ background:rgba(201,154,62,.08); }
.msp-notif-item.is-unread:hover{ background:rgba(201,154,62,.14); }

.msp-notif-item__icon{
  flex-shrink:0; width:40px; height:40px; border-radius:9px;
  display:flex; align-items:center; justify-content:center;
  background:var(--ivory-2); color:var(--navy);
}
.msp-notif-item__icon--bargain_approved{ background:rgba(201,154,62,.16); color:var(--brass); }
.msp-notif-item__icon--bargain_countered{ background:rgba(28,36,48,.08); color:var(--navy); }
.msp-notif-item__icon--bargain_submitted{ background:rgba(139,58,43,.12); color:var(--rust); }

.msp-notif-item__main{ flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; }
.msp-notif-item__title{
  font-size:12.5px; font-weight:600; color:var(--navy); line-height:1.42;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.msp-notif-item__date{ font-size:10.5px; color:var(--steel); }

.msp-notif-item__aside{ flex-shrink:0; display:flex; align-items:center; gap:7px; padding-top:2px; }
.msp-notif-item__ago{ font-size:10.5px; color:var(--steel); white-space:nowrap; }
.msp-notif-item__dot{ width:7px; height:7px; border-radius:50%; background:var(--sale); flex-shrink:0; }

.msp-notif-pop__foot{
  display:flex; align-items:center; gap:9px; padding:10px;
  border-top:1px solid var(--steel-light); background:var(--ivory-2);
}
.msp-notif-pop__all{
  flex:1; display:flex; align-items:center; justify-content:center; gap:7px;
  padding:11px 14px; border-radius:6px;
  background:var(--navy); color:#fff; font-size:11.5px; font-weight:800;
  text-transform:uppercase; letter-spacing:.04em; text-decoration:none; transition:background .14s, color .14s;
}
.msp-notif-pop__all:hover{ background:var(--brass); color:var(--navy); }
.msp-notif-pop__gear{
  flex-shrink:0; width:40px; height:40px; border-radius:6px;
  display:flex; align-items:center; justify-content:center;
  border:1px solid var(--steel-light); color:var(--steel); background:#fff; transition:color .14s, border-color .14s;
}
.msp-notif-pop__gear:hover{ color:var(--navy); border-color:var(--brass); }

@media (max-width:640px){
  .msp-notif-pop{ position:fixed; top:62px; right:8px; left:8px; width:auto; max-width:none; }
  .msp-notif-pop::before{ display:none; }
  .admin-bar .msp-notif-pop{ top:108px; }
}

/* =========================================================================
 * Product card refinements (Jun 2026 batch)
 * ====================================================================== */

/* ---- animated red-gradient discount pill (subtle sheen) ---- */
.msp-price-off,
.price-off{
  color:#fff; font-weight:800; letter-spacing:.02em;
  background-image:linear-gradient(105deg,
    #9c1c21 0%, var(--sale) 30%, #d94b41 50%, var(--sale) 70%, #9c1c21 100%);
  background-size:260% 100%;
  animation:msp-off-sheen 3.6s ease-in-out infinite;
}
.msp-price-off{ font-size:11px; padding:2px 7px; border-radius:5px; }
.price-off{ font-size:10.5px; padding:2px 7px; border-radius:5px; }
@keyframes msp-off-sheen{
  0%,100%{ background-position:0% 50%; }
  50%{ background-position:100% 50%; }
}
@media (prefers-reduced-motion:reduce){
  .msp-price-off,.price-off{ animation:none; background-position:0 50%; }
}

/* ---- wishlist heart: overlaid on the image, bottom-right ---- */
.msp-card__media .msp-wish{
  position:absolute; right:12px; bottom:12px; z-index:4;
  width:34px; height:34px; border-radius:50%;
  background:rgba(255,255,255,.94); border:1px solid var(--steel-light);
  color:var(--navy); box-shadow:0 3px 12px rgba(28,36,48,.16);
  transition:background .14s, color .14s, border-color .14s, transform .12s;
}
.msp-card__media .msp-wish:hover{ border-color:var(--rust); color:var(--rust); transform:scale(1.08); }
.msp-card__media .msp-wish.is-on{ background:var(--rust); border-color:var(--rust); color:#fff; }

/* ---- small "Bargain" button beside the cart ---- */
.msp-card__actions{ align-items:center; }
.msp-card__bargain{
  display:inline-flex; align-items:center; gap:5px; height:34px; padding:0 13px;
  border:1.5px solid var(--brass); border-radius:999px; background:#fff;
  color:#9a6f20; font-size:11px; font-weight:800; letter-spacing:.03em; text-transform:uppercase;
  white-space:nowrap; transition:background .14s, color .14s;
}
.msp-card__bargain svg{ flex-shrink:0; }
.msp-card__bargain:hover{ background:var(--brass); color:var(--navy); }

/* ---- Type facet count ---- */
.filter-count{
  color:var(--steel); font-weight:600; font-size:11px; margin-left:2px;
}

/* =========================================================================
 * Header search — live suggestions dropdown
 * ====================================================================== */
.search-suggest{
  position:absolute; left:0; right:0; top:calc(100% + 10px); z-index:130;
  background:#fff; border:1px solid var(--steel-light); border-top:3px solid var(--brass);
  border-radius:4px 4px 12px 12px; overflow:hidden;
  box-shadow:0 24px 55px rgba(28,36,48,.20);
  font-family:'Work Sans',sans-serif;
}
.search-suggest[hidden]{ display:none; }
.search-suggest__list{ padding:6px; display:flex; flex-direction:column; }
.search-suggest__row{
  display:flex; align-items:center; gap:13px; padding:9px 10px;
  border-radius:8px; text-decoration:none; color:var(--ink);
}
.search-suggest__row.is-active,
.search-suggest__row:hover{ background:var(--ivory-2); }
.search-suggest__thumb{
  flex-shrink:0; width:44px; height:44px; border-radius:7px;
  background:var(--ivory-2) center/contain no-repeat; border:1px solid var(--steel-light);
}
.search-suggest__meta{ min-width:0; display:flex; flex-direction:column; gap:2px; }
.search-suggest__name{
  font-size:13px; font-weight:600; color:var(--navy); line-height:1.35;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.search-suggest__price{ font-size:12px; font-weight:700; color:var(--rust); }
.search-suggest__price del{ color:var(--steel); font-weight:400; margin-right:4px; }
.search-suggest__empty{ padding:20px 14px; text-align:center; color:var(--steel); font-size:12.5px; }
.search-suggest__all{
  display:flex; align-items:center; justify-content:center; gap:8px;
  padding:12px 14px; border-top:1px solid var(--steel-light); background:var(--ivory-2);
  font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.03em; color:var(--navy);
}
.search-suggest__all:hover{ color:var(--rust); }

@media (max-width:640px){
  .search-suggest{ position:fixed; left:8px; right:8px; top:auto; }
}

/* =========================================================================
 * Sign-in / Register modal
 * ====================================================================== */
.msp-auth .msp-modal__dialog{ width:720px; }
.msp-auth__dialog{ padding:0; }
.msp-auth .msp-modal__x{ position:absolute; top:14px; right:14px; z-index:4; }

.msp-auth__head{
  text-align:center; padding:30px 28px 22px;
  background:linear-gradient(180deg,#fffdf7,#fbf3e2);
  border-bottom:1px solid var(--steel-light);
}
.msp-auth__mark{
  width:62px; height:62px; margin:0 auto 10px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:radial-gradient(120% 120% at 50% 25%, #2b3648, var(--navy));
  border:1.5px solid rgba(228,190,113,.55);
  box-shadow:0 6px 18px rgba(20,26,34,.28);
}
.msp-auth__mark img{ width:76%; height:76%; object-fit:contain; display:block; }
.msp-auth__title{
  font-family:'Fraunces',serif; font-size:20px; font-weight:600; color:var(--navy);
  line-height:1.2;
}
.msp-auth__since{
  margin-top:4px; font-family:'Work Sans',sans-serif;
  font-size:10.5px; font-weight:700; letter-spacing:.22em; text-transform:uppercase;
  color:var(--rust); text-align:center;
}
.msp-auth__sub{ margin-top:8px; font-size:12.5px; color:#6b7280; }

.msp-auth__cols{ display:grid; grid-template-columns:1fr 1fr; }
.msp-auth__col{ padding:24px 26px 26px; }
.msp-auth__col--register{ background:var(--ivory-2); border-left:1px solid var(--steel-light); }
.msp-auth__col h3{
  font-family:'Fraunces',serif; font-size:16px; font-weight:600; color:var(--navy); margin-bottom:14px;
}

.msp-auth__form{ display:flex; flex-direction:column; gap:11px; }
.msp-auth__form label{ display:flex; flex-direction:column; gap:5px; font-size:12px; font-weight:600; color:#4b5563; }
.msp-auth__form label span{ letter-spacing:.01em; }
.msp-auth__form label em{ font-style:normal; font-weight:500; color:#9aa3ae; }
.msp-auth__row{ display:grid; grid-template-columns:1fr 1fr; gap:11px; }
.msp-auth__form input[type="text"],
.msp-auth__form input[type="email"],
.msp-auth__form input[type="tel"],
.msp-auth__form input[type="password"]{
  height:42px; padding:0 12px; border:1.5px solid var(--steel-light); border-radius:9px;
  font-family:inherit; font-size:14px; color:var(--ink); background:#fff; outline:none; width:100%;
}
.msp-auth__form input:focus{ border-color:var(--brass); }
.msp-auth__check{
  flex-direction:row !important; align-items:center; gap:8px !important;
  font-weight:500 !important; font-size:12px; color:#6b7280; cursor:pointer;
}
.msp-auth__check input{ width:15px; height:15px; }

.msp-auth__submit{
  margin-top:4px; height:44px; border:none; border-radius:9px; cursor:pointer;
  font-size:12px; font-weight:800; letter-spacing:.05em; text-transform:uppercase;
  background:var(--navy); color:#fff; transition:background .14s, color .14s;
}
.msp-auth__submit:hover{ background:var(--brass); color:var(--navy); }
.msp-auth__submit.is-busy{ opacity:.65; cursor:default; }
.msp-auth__col--register .msp-auth__submit{ background:var(--brass); color:var(--navy); }
.msp-auth__col--register .msp-auth__submit:hover{ background:var(--brass-light); }

.msp-auth__err{
  font-size:12px; font-weight:600; color:var(--sale);
  background:rgba(193,39,45,.08); border-radius:7px; padding:8px 10px;
}
.msp-auth__lost{ font-size:12px; font-weight:600; color:var(--rust); text-decoration:underline; align-self:flex-start; }
.msp-auth__fine{ font-size:11px; color:#9aa3ae; line-height:1.5; }

@media (max-width:600px){
  .msp-auth .msp-modal__dialog{ width:100%; max-height:92vh; overflow-y:auto; }
  .msp-auth__cols{ grid-template-columns:1fr; }
  .msp-auth__col--register{ border-left:none; border-top:1px solid var(--steel-light); }
  .msp-auth__row{ grid-template-columns:1fr; }
}

/* ---- Auth forms on the My Account page (not a modal) ---- */
.msp-auth--page{
  max-width:780px; margin:6px auto 44px;
  background:#fff; border:1px solid var(--steel-light); border-top:4px solid var(--brass);
  border-radius:16px; overflow:hidden;
}
.msp-auth--page .msp-auth__col{ padding:26px 30px 30px; }

/* =========================================================================
 * My Account (logged in)
 * ====================================================================== */
.woocommerce-account.logged-in .woocommerce{
  display:grid; grid-template-columns:244px minmax(0,1fr); gap:34px; align-items:start;
  max-width:1120px; margin:26px auto 56px;
}
/* WooCommerce's clearfix pseudo-elements become stray grid cells — kill them */
.woocommerce-account.logged-in .woocommerce::before,
.woocommerce-account.logged-in .woocommerce::after{ display:none !important; }
/* beat WooCommerce's default float layout */
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation,
.woocommerce-account.logged-in .woocommerce-MyAccount-content{
  float:none !important; width:auto !important; margin:0 !important;
}
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper{ grid-column:1 / -1; }
.woocommerce-account .woocommerce > h2{ grid-column:1 / -1; font-family:'Fraunces',serif; color:var(--navy); }

/* "My account" page heading — centred */
.woocommerce-account .entry-title{ text-align:center; }

/* ---------- Account nav (sidebar) ---------- */
.woocommerce-account .woocommerce-MyAccount-navigation{ position:sticky; top:96px; }
.woocommerce-account .woocommerce-MyAccount-navigation ul{
  list-style:none; margin:0; padding:7px; background:#fff;
  border:1px solid var(--steel-light); border-radius:14px;
  box-shadow:0 1px 3px rgba(20,26,34,.04);
}
.woocommerce-account .woocommerce-MyAccount-navigation li{ border:0; margin:0; }
.woocommerce-account .woocommerce-MyAccount-navigation li + li{ margin-top:1px; }
.woocommerce-account .woocommerce-MyAccount-navigation li a{
  display:flex; align-items:center; gap:11px;
  padding:9px 12px; border-radius:9px;
  font-family:'Work Sans',sans-serif; font-size:13.5px; font-weight:600; line-height:1.2;
  color:var(--navy); text-decoration:none;
  transition:background .12s, color .12s;
}
.msp-acct-nav__ico{ display:flex; flex-shrink:0; color:var(--steel); transition:color .12s; }
.msp-acct-nav__label{ flex:1 1 auto; }
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover{ background:var(--ivory-2); color:var(--rust); }
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover .msp-acct-nav__ico{ color:var(--rust); }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{
  background:var(--navy); color:#fff;
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active .msp-acct-nav__ico{ color:var(--brass-light); }
/* set the "Log out" action apart */
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout{
  margin-top:7px; padding-top:7px; border-top:1px solid var(--steel-light);
}
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a{ color:#6b7280; }
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a:hover{ color:var(--sale); background:#fdf1f0; }

.msp-acct-badge{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:17px; height:17px; padding:0 5px;
  border-radius:9px; background:var(--sale); color:#fff;
  font-size:10px; font-weight:800;
}

.woocommerce-account .woocommerce-MyAccount-content{ min-width:0; font-size:14px; line-height:1.6; color:#3f4650; }
.woocommerce-account .woocommerce-MyAccount-content p{ margin:0 0 12px; }
.woocommerce-account .woocommerce-MyAccount-content a:not(.button){ color:var(--rust); font-weight:600; }
.woocommerce-account .woocommerce-MyAccount-content h3{ font-family:'Fraunces',serif; font-size:18px; color:var(--navy); margin:20px 0 10px; }

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-order{ font-size:13.5px; }
.woocommerce-account table.woocommerce-orders-table,
.woocommerce-account table.shop_table{
  width:100%; border-collapse:collapse; font-size:13px; border:1px solid var(--steel-light); border-radius:10px; overflow:hidden;
}
.woocommerce-account table.shop_table th{
  background:var(--ivory-2); text-align:left; padding:11px 12px; font-weight:700; color:var(--navy); font-size:11.5px; text-transform:uppercase; letter-spacing:.04em;
}
.woocommerce-account table.shop_table td{ padding:11px 12px; border-top:1px solid var(--steel-light); }

.woocommerce-account form .woocommerce-form-row label,
.woocommerce-account .woocommerce-EditAccountForm label{ font-size:12px; font-weight:600; color:#4b5563; display:block; margin-bottom:5px; }
.woocommerce-account .woocommerce-Input,
.woocommerce-account input.input-text,
.woocommerce-account .select2-selection{
  height:42px; padding:0 12px; border:1.5px solid var(--steel-light); border-radius:9px;
  font-family:inherit; font-size:14px; width:100%; background:#fff;
}
.woocommerce-account textarea.input-text{ border:1.5px solid var(--steel-light); border-radius:9px; padding:10px 12px; font-family:inherit; }
.woocommerce-account .woocommerce-Input:focus,
.woocommerce-account input.input-text:focus{ outline:none; border-color:var(--brass); }

/* ---------- Dashboard ---------- */
.msp-dash{ display:flex; flex-direction:column; gap:22px; }
.woocommerce-account .woocommerce-MyAccount-content .msp-dash a{ text-decoration:none; }
.woocommerce-account .woocommerce-MyAccount-content .msp-dash__panel-head a{ color:var(--rust); }
.msp-dash__hero{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:24px 26px; border-radius:16px;
  background:linear-gradient(135deg,var(--navy) 0%,var(--navy-2,#25303f) 60%,#33404f 100%);
  color:#fff; position:relative; overflow:hidden;
}
.msp-dash__hero .msp-dash__eyebrow{
  display:block; font-family:'Work Sans',sans-serif;
  font-size:10.5px; font-weight:800; letter-spacing:.16em; text-transform:uppercase;
  color:var(--brass-light);
}
.msp-dash__hero .msp-dash__name{
  font-family:'Fraunces',serif; font-size:26px; font-weight:600; color:#fff; margin:6px 0 4px;
}
.msp-dash__hero .msp-dash__since{ font-size:12.5px; color:rgba(255,255,255,.72); margin:0; line-height:1.5; }
.msp-dash__hero .msp-dash__since-wink{ color:var(--brass-light); font-style:italic; }
@media (max-width:600px){
  .msp-dash__hero .msp-dash__since-wink{ display:block; margin-top:2px; }
}
.msp-dash__seal{
  flex-shrink:0; width:64px; height:64px; border-radius:50%;
  border:2px solid rgba(228,190,113,.5); display:flex; align-items:center; justify-content:center;
  font-family:'Fraunces',serif; font-weight:700; font-size:16px; color:var(--brass-light);
  background:rgba(255,255,255,.04);
}

.msp-dash__tiles{
  display:grid; grid-template-columns:repeat(3,1fr); gap:12px;
}
.msp-dash__tile{
  display:flex; flex-direction:column; gap:3px;
  padding:16px 15px 15px; border-radius:13px;
  background:#fff; border:1px solid var(--steel-light);
  color:var(--navy) !important; font-weight:400 !important;
  transition:border-color .14s, box-shadow .14s, transform .14s;
}
.msp-dash__tile:hover{
  border-color:var(--brass); box-shadow:0 8px 22px -10px rgba(20,26,34,.28); transform:translateY(-2px);
}
.msp-dash__tile-ico{
  position:relative; width:38px; height:38px; border-radius:10px; margin-bottom:7px;
  display:flex; align-items:center; justify-content:center;
  background:var(--ivory-2); color:var(--rust);
}
.msp-dash__tile-badge{
  position:absolute; top:-6px; right:-6px; min-width:18px; height:18px; line-height:18px;
  padding:0 5px; text-align:center; border-radius:9px; background:var(--sale); color:#fff;
  font-size:10px; font-weight:800;
}
.msp-dash .msp-dash__tile{ text-decoration:none !important; }
.msp-dash .msp-dash__tile-label{ font-size:14px; font-weight:700; color:var(--navy); }
.msp-dash .msp-dash__tile-sub{ font-size:11.5px; font-weight:500; color:#8b93a1; }

.msp-dash__cols{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.msp-dash__panel{
  background:#fff; border:1px solid var(--steel-light); border-radius:14px; padding:16px 18px 18px;
}
.msp-dash__panel-head{
  display:flex; align-items:baseline; justify-content:space-between; margin-bottom:12px;
}
.msp-dash__panel-head h3{
  font-family:'Fraunces',serif; font-size:16px; font-weight:600; color:var(--navy); margin:0 !important;
}
.msp-dash__panel-head a{ font-size:12px; font-weight:700; color:var(--rust); }

.msp-dash__orders{ list-style:none; margin:0; padding:0; }
.msp-dash__orders li + li{ border-top:1px solid var(--steel-light); }
.msp-dash .msp-dash__orders a{
  display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:4px 12px;
  padding:10px 0; color:var(--navy) !important; font-weight:400 !important; text-decoration:none !important;
}
.msp-dash__order-no{ font-weight:800; font-size:13px; }
.msp-dash .msp-dash__order-date{ font-size:11.5px; font-weight:500; color:#8b93a1; }
.msp-dash__order-status{
  grid-column:1 / 2; justify-self:start; font-size:10px; font-weight:800; text-transform:uppercase;
  letter-spacing:.04em; padding:2px 7px; border-radius:6px; background:var(--ivory-2); color:#6b7280;
}
.msp-dash__order-status.is-completed{ background:#e6f4ea; color:#1e7d3c; }
.msp-dash__order-status.is-processing{ background:#fff3cd; color:#8a6d00; }
.msp-dash__order-total{ grid-row:1 / 3; align-self:center; font-weight:800; font-size:13.5px; }

.msp-dash__empty{ text-align:center; padding:14px 10px 6px; }
.msp-dash__empty p{ font-size:13px; color:#6b7280; margin-bottom:12px !important; }
.msp-dash__empty .button{
  display:inline-block; background:var(--navy); color:#fff; border-radius:9px;
  padding:9px 20px; font-size:11.5px; font-weight:800; text-transform:uppercase; letter-spacing:.04em;
}
.msp-dash__address{
  font-style:normal; font-size:13.5px; line-height:1.7; color:#3f4650;
}

@media (max-width:1000px){
  .msp-dash__tiles{ grid-template-columns:repeat(2,1fr); }
  .msp-dash__cols{ grid-template-columns:1fr; }
}
@media (max-width:860px){
  /* selector must match the base rule's specificity (.logged-in .woocommerce)
     or the two-column grid-template-columns is never overridden */
  .woocommerce-account.logged-in .woocommerce{ grid-template-columns:1fr; gap:22px; margin:16px auto 40px; }
  .woocommerce-account .woocommerce-MyAccount-navigation{ position:static; top:auto; }
}
@media (max-width:480px){
  .msp-dash__tiles{ grid-template-columns:1fr; }
  .msp-dash__hero{ flex-direction:column; align-items:flex-start; text-align:left; }
}

/* =========================================================================
 * My Account -> Wishlist page
 * ====================================================================== */
.msp-wishlist-page__empty{ font-size:14px; color:#6b7280; }
.msp-wishlist-page__empty a{ color:var(--rust); font-weight:700; text-decoration:underline; }
.msp-wishlist-page ul.products{
  display:grid !important; grid-template-columns:repeat(3,1fr); gap:20px 18px;
  margin:0; padding:0; list-style:none;
}
.msp-wishlist-page ul.products::before,
.msp-wishlist-page ul.products::after{ content:none; display:none; }
.msp-wishlist-page ul.products li.product{ width:auto !important; margin:0 !important; float:none !important; }
@media (max-width:900px){ .msp-wishlist-page ul.products{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .msp-wishlist-page ul.products{ grid-template-columns:1fr; } }

/* =========================================================================
 * Cart & Checkout
 * ====================================================================== */
.woocommerce-cart .page-shell,
.woocommerce-checkout .page-shell{ max-width:1180px; }
.woocommerce-cart .entry-title,
.woocommerce-checkout .entry-title,
.woocommerce-order-received .entry-title{ text-align:center; margin-bottom:24px; }

/* ---------- Themed WooCommerce notices ---------- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
ul.woocommerce-error{
  list-style:none; margin:0 0 20px; padding:13px 16px 13px 44px; position:relative;
  border-radius:11px; font-size:13.5px; font-weight:600; line-height:1.5;
  border:1px solid var(--steel-light); background:#fff; color:var(--ink);
}
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before{
  content:"i"; position:absolute; left:0; top:0; bottom:0; width:34px;
  display:flex; align-items:center; justify-content:center;
  font-family:'Fraunces',serif; font-weight:700; font-size:15px; color:#fff;
}
.woocommerce-message{ border-left:3px solid #1e7d3c; color:#1e7d3c; }
.woocommerce-message::before{ content:"\2713"; background:#1e7d3c; }
.woocommerce-info{ border-left:3px solid var(--brass); color:#8a6d00; }
.woocommerce-info::before{ background:var(--brass); }
.woocommerce-error{ border-left:3px solid var(--sale); color:var(--sale); }
.woocommerce-error::before{ content:"!"; background:var(--sale); }
.woocommerce-message .button,
.woocommerce-error .button,
.woocommerce-info .button{
  float:right; margin-top:-3px; font-size:11px; font-weight:800; letter-spacing:.04em;
  text-transform:uppercase; text-decoration:none; color:var(--navy); background:var(--ivory-2);
  padding:6px 12px; border-radius:7px;
}
.wc-block-components-notice-banner{ position:static !important; }

/* ---------- Cart ---------- */
.woocommerce-cart .msp-cart{ display:grid; grid-template-columns:minmax(0,1fr) 344px; gap:34px; align-items:start; }
.msp-cart__main{ min-width:0; }
.msp-cart__head{
  font-size:11.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
  color:var(--steel); padding:0 2px 10px; border-bottom:1px solid var(--steel-light);
}
.msp-cart__items{ list-style:none; margin:0; padding:0; }
.msp-cart__row{
  display:grid; grid-template-columns:84px minmax(0,1fr) 110px 116px; gap:16px;
  align-items:start; padding:20px 12px; border-bottom:1px solid var(--steel-light);
  transition:opacity .15s; border-radius:12px;
}
.msp-cart__row.is-updating{ opacity:.5; pointer-events:none; }
.msp-cart__row.is-bargain{
  background:linear-gradient(90deg, rgba(201,154,62,.07), rgba(201,154,62,.02) 72%);
}
.msp-cart__thumb{ display:block; width:84px; height:84px; border:1px solid var(--steel-light); border-radius:10px; overflow:hidden; background:#fff; }
.msp-cart__thumb img{ width:100%; height:100%; object-fit:contain; padding:6px; }
.msp-cart__info{ min-width:0; }
.msp-cart__name{ font-family:'Fraunces',serif; font-size:15px; font-weight:600; line-height:1.3; }
.msp-cart__name a{ color:var(--navy) !important; font-weight:600 !important; text-decoration:none !important; }
.msp-cart__name a:hover{ color:var(--rust) !important; }
.msp-cart__meta{ font-size:11.5px; color:#8b93a1; margin-top:3px; line-height:1.5; }
.msp-cart__meta p{ margin:0; }
.msp-cart__meta dl{ margin:2px 0 0; }
.msp-cart__unit{ margin-top:6px; font-size:12.5px; font-weight:700; color:var(--navy); }
.msp-cart__unit del{ color:var(--steel); font-weight:400; margin-right:5px; }
.msp-cart__unit-label{ font-weight:500; color:#8b93a1; font-size:11px; margin-left:3px; }

.msp-cart__qty{ display:flex; align-items:flex-start; }
.msp-cart__qty .quantity{
  display:flex; align-items:stretch; width:104px; height:38px; margin:0;
  border:1.5px solid var(--steel-light); border-radius:9px; overflow:hidden; background:#fff;
}
.msp-cart__qty .quantity label.screen-reader-text{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.msp-cart__qty .msp-qty-btn{ flex:0 0 32px; width:32px; border:none; background:#fff; color:var(--navy); font-size:16px; font-weight:700; cursor:pointer; line-height:1; padding:0; }
.msp-cart__qty .msp-qty-btn:hover{ background:var(--ivory-2); }
.msp-cart__qty input.qty{
  flex:1 1 auto; width:100%; min-width:0; height:auto; margin:0;
  border:none; border-left:1.5px solid var(--steel-light); border-right:1.5px solid var(--steel-light);
  text-align:center; font-family:inherit; font-size:13.5px; font-weight:700; color:var(--navy); background:#fff;
  -moz-appearance:textfield; -webkit-appearance:none; box-shadow:none;
}
.msp-cart__qty input.qty::-webkit-outer-spin-button,
.msp-cart__qty input.qty::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.msp-cart__qty input.qty:focus{ outline:none; }

/* keep WooCommerce's AJAX overlay quiet & on-brand */
.blockUI.blockOverlay{ background:#fff !important; opacity:.6 !important; }
.blockUI.blockMsg{ display:none !important; }
.msp-cart__row.processing, .msp-cart .processing{ position:relative; }

.msp-cart__line{ text-align:right; display:flex; flex-direction:column; align-items:flex-end; gap:4px; min-width:96px; }
.msp-cart__line-total{ font-family:'Fraunces',serif; font-size:16px; font-weight:700; color:var(--navy); }
.msp-cart__line-total del{ display:block; font-size:11.5px; color:var(--steel); font-weight:400; }
.msp-cart__line-total--bargain{
  color:#a5760f;
  background-image:linear-gradient(176deg,#dda52d 0%,#b17d16 60%,#8c620f 100%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  animation:msp-treasure-glow 2.6s ease-in-out infinite;
}
.msp-cart__bargain{
  display:inline-flex; align-items:center; gap:4px;
  font-size:10.5px; font-weight:800; letter-spacing:.02em;
  color:#fff; background:var(--sale); padding:3px 8px; border-radius:6px;
  box-shadow:0 3px 12px rgba(193,39,45,.22);
}
.msp-cart__bargain.is-expired{ background:var(--steel); box-shadow:none; }
.msp-cart__bargain-tag{ font-size:10px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:#a86f12; }
.msp-cart__remove{
  margin-top:4px; width:30px; height:30px; border-radius:8px;
  display:inline-flex; align-items:center; justify-content:center;
  color:var(--steel) !important; background:none; border:1px solid transparent;
  text-decoration:none !important;
}
.msp-cart__remove:hover{ color:var(--sale) !important; background:#fdf1f0; border-color:#f5d9d6; }

.msp-cart__foot{ display:flex; align-items:center; gap:16px; padding:18px 2px 0; }
.msp-cart__keep{
  display:inline-flex; align-items:center; gap:7px;
  font-size:12.5px; font-weight:700; color:var(--rust) !important; text-decoration:none !important;
}
.msp-cart__keep:hover{ color:var(--brass) !important; }
.msp-cart__update{
  margin-left:auto; font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase;
  color:var(--navy); background:var(--ivory-2); border:none; border-radius:8px; padding:9px 16px; cursor:pointer;
  display:none;
}

/* ---------- Customise panel ---------- */
.msp-customise{ margin-top:10px; }
.msp-customise__toggle{
  display:inline-flex; align-items:center; gap:6px;
  font-size:11.5px; font-weight:700; color:var(--brass); background:none; border:1px dashed rgba(201,154,62,.6);
  padding:5px 11px; border-radius:8px; cursor:pointer;
}
.msp-customise__toggle:hover,
.msp-customise__toggle.is-set{ background:rgba(201,154,62,.08); color:#8a6d00; border-style:solid; }
.msp-customise__panel{
  margin-top:10px; padding:12px 13px; border-radius:10px;
  background:var(--ivory-2); border:1px solid var(--steel-light);
}
.msp-customise__lead{ font-size:11.5px; color:#6b7280; margin:0 0 8px; }
.msp-customise__opt{ display:flex; align-items:center; gap:8px; font-size:12.5px; font-weight:600; color:var(--navy); margin-bottom:6px; cursor:pointer; }
.msp-customise__opt input{ width:15px; height:15px; accent-color:var(--brass); }
.msp-customise__text{
  width:100%; height:34px; margin-top:4px; padding:0 10px;
  border:1.5px solid var(--steel-light); border-radius:8px; font-family:inherit; font-size:12.5px; background:#fff;
}
.msp-customise__text:focus{ outline:none; border-color:var(--brass); }
.msp-customise__note{ font-size:11px; color:#98a0ab; margin:6px 0 0; line-height:1.45; }
.msp-customise__saving{ display:block; font-size:11px; font-weight:700; color:var(--brass); margin-top:6px; }

/* ---------- Order summary ---------- */
.msp-summary{
  background:#fff; border:1px solid var(--steel-light); border-top:3px solid var(--brass);
  border-radius:14px; padding:18px 18px 20px;
}
/* Sticky only on the cart page (the checkout aside also holds payment +
   Place Order below the summary — sticking just the top overlaps them). */
.woocommerce-cart .msp-summary{ position:sticky; top:96px; }
.msp-summary__title{ font-family:'Fraunces',serif; font-size:18px; font-weight:600; color:var(--navy); margin:0 0 14px; }

.msp-summary__coupon{ margin-bottom:12px; border-bottom:1px solid var(--steel-light); padding-bottom:12px; }
.msp-summary__coupon-toggle{
  display:flex; align-items:center; justify-content:space-between; width:100%;
  font-size:12.5px; font-weight:700; color:var(--navy); background:none; border:none; padding:0; cursor:pointer;
}
.msp-summary__coupon-toggle svg{ transition:transform .16s; }
.msp-summary__coupon-toggle.is-open svg{ transform:rotate(180deg); }
.msp-summary__coupon-form{ display:flex; gap:7px; margin-top:10px; }
.msp-summary__coupon-form[hidden]{ display:none; }
.msp-customise__panel[hidden],
.msp-customise__text[hidden]{ display:none; }
.msp-summary__coupon-input{
  flex:1 1 auto; min-width:0; height:38px; padding:0 11px;
  border:1.5px solid var(--steel-light); border-radius:8px; font-family:inherit; font-size:12.5px; background:#fff;
}
.msp-summary__coupon-input:focus{ outline:none; border-color:var(--brass); }
.msp-summary__coupon-apply{
  flex-shrink:0; padding:0 15px; height:38px; border:none; border-radius:8px; cursor:pointer;
  font-size:11px; font-weight:800; letter-spacing:.04em; text-transform:uppercase;
  background:var(--navy); color:#fff;
}
.msp-summary__coupon-apply:hover{ background:var(--brass); color:var(--navy); }
.msp-summary__coupon-remove{ color:var(--sale) !important; font-weight:800; text-decoration:none !important; margin-left:4px; }

.msp-summary__items{ list-style:none; margin:0 0 14px; padding:0; }
.msp-summary__item{ display:grid; grid-template-columns:44px minmax(0,1fr) auto; gap:10px; align-items:start; padding:9px 0; border-bottom:1px solid var(--steel-light); }
.msp-summary__item-thumb{ position:relative; width:44px; height:44px; border:1px solid var(--steel-light); border-radius:8px; overflow:hidden; background:#fff; }
.msp-summary__item-thumb img{ width:100%; height:100%; object-fit:contain; padding:3px; }
.msp-summary__item-qty{
  position:absolute; top:-7px; right:-7px; min-width:18px; height:18px; padding:0 4px;
  background:var(--navy); color:#fff; font-size:10px; font-weight:800; border-radius:9px; border:1.5px solid #fff;
  display:flex; align-items:center; justify-content:center;
}
.msp-summary__item-name{ display:block; font-size:12.5px; font-weight:600; color:var(--navy); line-height:1.35; }
.msp-summary__item-meta{ display:block; font-size:10.5px; color:#98a0ab; margin-top:2px; line-height:1.5; }
.msp-summary__item-meta p, .msp-summary__item-meta dl{ margin:0; }
.msp-summary__item-total{ font-size:12.5px; font-weight:700; color:var(--navy); white-space:nowrap; }
.msp-summary__item-total--bargain{
  color:#a5760f; background-image:linear-gradient(176deg,#dda52d,#8c620f);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  animation:msp-treasure-glow 2.6s ease-in-out infinite;
}

.msp-summary__rows{ margin:0; }
.msp-summary__row{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding:6px 0; font-size:13px; }
.msp-summary__row dt{ color:#5b6270; font-weight:500; }
.msp-summary__row dd{ margin:0; font-weight:700; color:var(--navy); text-align:right; }
.msp-summary__row--discount dd,
.msp-summary__row--discount dt{ color:#1e7d3c; }
.msp-summary__row--shipping{ display:block; padding:8px 0; }
.msp-summary__row--total{ border-top:1px solid var(--steel-light); margin-top:6px; padding-top:12px; }
.msp-summary__row--total dt{ font-family:'Fraunces',serif; font-size:16px; font-weight:600; color:var(--navy); }
.msp-summary__row--total dd{ font-family:'Fraunces',serif; font-size:19px; }
.msp-summary__ship-calc{ text-align:left; width:100%; }

.msp-summary__saved{
  display:flex; align-items:center; gap:7px; margin:12px 0 0;
  font-size:12px; font-weight:700; color:#1e7d3c;
  background:#e6f4ea; padding:9px 12px; border-radius:9px;
}
.msp-summary__trust{ margin:12px 0 0; font-size:10.5px; color:#98a0ab; text-align:center; }

.wc-proceed-to-checkout, .msp-summary__go{ margin-top:14px; }
.checkout-button, a.checkout-button,
.wc-proceed-to-checkout .button{
  display:block !important; width:100%; text-align:center; text-decoration:none !important;
  background:var(--navy) !important; color:#fff !important;
  font-family:'Work Sans',sans-serif; font-size:12.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
  padding:15px 20px; border-radius:11px; border:none;
  transition:background .14s, color .14s;
}
.checkout-button:hover, a.checkout-button:hover{ background:var(--brass) !important; color:var(--navy) !important; }

/* ---------- Empty cart ---------- */
.msp-cart-empty{ text-align:center; padding:56px 20px 64px; max-width:420px; margin:0 auto; }
.msp-cart-empty__ico{
  display:inline-flex; align-items:center; justify-content:center; width:74px; height:74px;
  border-radius:50%; background:var(--ivory-2); color:var(--brass); margin-bottom:18px;
}
.msp-cart-empty h2{ font-family:'Fraunces',serif; font-size:22px; color:var(--navy); margin-bottom:8px; }
.msp-cart-empty p{ font-size:13.5px; color:#6b7280; margin-bottom:20px; }
.msp-cart-empty__btn{
  display:inline-block; background:var(--navy); color:#fff !important; text-decoration:none !important;
  font-size:12px; font-weight:800; letter-spacing:.05em; text-transform:uppercase;
  padding:13px 28px; border-radius:10px;
}
.msp-cart-empty__btn:hover{ background:var(--brass); color:var(--navy) !important; }

/* ---------- Checkout layout ---------- */
.msp-checkout{ display:grid; grid-template-columns:minmax(0,1fr) 372px; gap:38px; align-items:start; }
.msp-checkout__main{ min-width:0; }
.msp-checkout .col2-set{ display:block; }
.msp-checkout .col2-set .col-1,
.msp-checkout .col2-set .col-2{ width:auto; float:none; }
.woocommerce-checkout h3,
.woocommerce-checkout #ship-to-different-address label{
  font-family:'Fraunces',serif; font-size:17px; font-weight:600; color:var(--navy); margin:0 0 14px;
}
.woocommerce-checkout .woocommerce-additional-fields h3{ margin-top:20px; }
.woocommerce-checkout .form-row{ margin:0 0 13px; padding:0; display:flex; flex-direction:column; }
.woocommerce-checkout .form-row label{ font-size:12px; font-weight:600; color:#4b5563; margin-bottom:5px; }
.woocommerce-checkout .form-row .required{ color:var(--sale); border:0; }
.woocommerce-checkout .input-text,
.woocommerce-checkout select,
.woocommerce-checkout .select2-selection{
  height:44px; padding:0 12px; border:1.5px solid var(--steel-light); border-radius:9px;
  font-family:inherit; font-size:14px; background:#fff; width:100%; color:var(--ink);
}
.woocommerce-checkout textarea.input-text{ min-height:80px; padding:10px 12px; border:1.5px solid var(--steel-light); border-radius:9px; }
.woocommerce-checkout .input-text:focus,
.woocommerce-checkout select:focus{ outline:none; border-color:var(--brass); }
.woocommerce-checkout .form-row-first,
.woocommerce-checkout .form-row-last{ float:none; width:auto; }
@media (min-width:560px){
  .woocommerce-checkout .form-row-first,
  .woocommerce-checkout .form-row-last{ display:inline-flex; width:calc(50% - 6px); }
  .woocommerce-checkout .form-row-first{ margin-right:12px; }
}
.woocommerce-checkout #ship-to-different-address{ margin:6px 0 14px; }
.woocommerce-checkout #ship-to-different-address label{ display:flex; align-items:center; gap:9px; cursor:pointer; }
.woocommerce-checkout .woocommerce-form__input-checkbox{ width:16px; height:16px; accent-color:var(--brass); }

#shipping_method li{
  display:flex; align-items:center; gap:9px; padding:9px 11px; margin:0 0 6px;
  border:1.5px solid var(--steel-light); border-radius:9px; font-size:12.5px; font-weight:600; color:var(--navy); list-style:none;
}
#shipping_method li input[type="radio"]{ accent-color:var(--brass); width:15px; height:15px; }
#shipping_method li label{ margin:0 !important; font-weight:600 !important; color:var(--navy) !important; cursor:pointer; }
#shipping_method li .amount{ margin-left:auto; font-weight:800; color:var(--brass); }

.woocommerce-checkout #payment{ background:var(--ivory-2); border-radius:12px; padding:14px 15px; margin-top:14px; }
.woocommerce-checkout #payment ul.payment_methods{ list-style:none; margin:0; padding:0; border:0; }
.woocommerce-checkout #payment li.wc_payment_method{ margin-bottom:6px; }
.woocommerce-checkout #payment li.wc_payment_method > label{
  display:flex; align-items:center; gap:9px; font-size:13px; font-weight:700; color:var(--navy); cursor:pointer;
}
.woocommerce-checkout #payment li.wc_payment_method input[type="radio"]{ accent-color:var(--brass); width:16px; height:16px; }
.woocommerce-checkout #payment .payment_box{
  background:#fff; border:1px solid var(--steel-light); border-radius:9px;
  padding:11px 13px; margin:7px 0 4px; font-size:12px; color:#6b7280; line-height:1.55;
}
.woocommerce-checkout #payment .payment_box::before{ display:none; }
.woocommerce-checkout #place_order{
  width:100%; margin-top:12px; border:none; border-radius:11px; cursor:pointer;
  background:var(--brass); color:var(--navy);
  font-family:'Work Sans',sans-serif; font-size:13px; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
  padding:16px 20px; transition:background .14s;
}
.woocommerce-checkout #place_order:hover{ background:var(--brass-light); }
.woocommerce-checkout .woocommerce-privacy-policy-text{ font-size:11px; color:#98a0ab; margin:10px 0 0; line-height:1.55; }
.woocommerce-checkout .woocommerce-privacy-policy-text a{ color:var(--rust); font-weight:600; }
.woocommerce-checkout .woocommerce-form-login-toggle,
.woocommerce-checkout .woocommerce-form-coupon-toggle{ margin-bottom:16px; }

/* --- Terms &amp; conditions consent (WooCommerce default markup) --- */
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper{
  background:#fff; border:1px solid var(--steel-light); border-radius:10px;
  padding:12px 14px; margin:10px 0 2px;
}
.woocommerce-checkout .woocommerce-terms-and-conditions{
  border:1px solid var(--steel-light); border-radius:8px; background:var(--ivory-2);
  padding:12px 14px; margin:10px 0 4px; font-size:12px; line-height:1.6; color:#5b6270;
  max-height:180px;
}
.woocommerce-checkout .woocommerce-terms-and-conditions h2,
.woocommerce-checkout .woocommerce-terms-and-conditions h3{ font-size:13px; margin:10px 0 4px; color:var(--navy); }
.woocommerce-checkout p.form-row.validate-required .woocommerce-form__label-for-checkbox{
  display:flex; align-items:flex-start; gap:9px;
  font-size:12.5px; line-height:1.5; color:var(--navy); font-weight:600; cursor:pointer; margin:0;
}
.woocommerce-checkout p.form-row.validate-required input#terms{
  flex-shrink:0; width:16px; height:16px; margin-top:1px; accent-color:var(--brass);
}
.woocommerce-checkout .woocommerce-terms-and-conditions-checkbox-text a{ color:var(--rust); font-weight:700; }
.woocommerce-checkout .required{ color:var(--sale); border:0; }
.woocommerce-checkout p.form-row.validate-required.woocommerce-invalid .woocommerce-form__label-for-checkbox{ color:var(--sale); }

/* the small inline "tick the terms box" nudge (assets/js/cart.js) */
.msp-terms-error{
  display:flex; align-items:flex-start; gap:8px;
  margin:10px 0 0; padding:9px 12px;
  background:#fdecea; border:1px solid #f3c6c1; border-left:3px solid var(--sale);
  border-radius:9px; font-size:12.5px; font-weight:600; line-height:1.45; color:#a5271b;
}
.msp-terms-error::before{
  content:"!"; flex-shrink:0;
  width:16px; height:16px; border-radius:50%; background:var(--sale); color:#fff;
  font-family:'Fraunces',serif; font-size:12px; font-weight:700;
  display:flex; align-items:center; justify-content:center; margin-top:1px;
}
.msp-terms-error[hidden]{ display:none; }

/* keep any WooCommerce checkout notice that still slips through from
   blowing out the layout — compact card, no full-bleed banner */
.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup-checkout{
  margin:0 0 18px;
}
.woocommerce-checkout .woocommerce-NoticeGroup-checkout .woocommerce-error{
  margin:0; font-size:13px;
}

.msp-pickup-note{
  background:var(--ivory-2); border:1px solid var(--steel-light); border-radius:10px;
  padding:12px 14px; font-size:12.5px; color:#5b6270; line-height:1.6; margin:14px 0;
}

@media (max-width:940px){
  .woocommerce-cart .msp-cart{ grid-template-columns:1fr; gap:24px; }
  .msp-checkout{ grid-template-columns:1fr; gap:26px; }
  .msp-summary{ position:static; }
  /* one column: everything reads top-to-bottom — items/details first,
     then the summary + pay + place-order, so nothing is out of order */
}
@media (max-width:560px){
  .msp-cart__row{ grid-template-columns:66px minmax(0,1fr); grid-template-areas:"thumb info" "qty line"; }
  .msp-cart__thumb{ grid-area:thumb; width:66px; height:66px; }
  .msp-cart__info{ grid-area:info; }
  .msp-cart__qty{ grid-area:qty; }
  .msp-cart__line{ grid-area:line; align-items:flex-start; }
}

/* ---------- Order received / order view ---------- */
.woocommerce-order-received .entry-content{ display:flex; flex-direction:column; align-items:center; }
.msp-thanks{ max-width:760px; width:100%; margin:0 auto; }
.msp-thanks__hero{
  text-align:center; padding:30px 24px 26px; border-radius:16px; margin-bottom:22px;
  background:linear-gradient(135deg,var(--navy) 0%,var(--navy-2) 60%,#33404f 100%); color:#fff;
}
.msp-thanks__tick{
  display:inline-flex; align-items:center; justify-content:center; width:52px; height:52px;
  border-radius:50%; background:#e6f4ea; color:#1e7d3c; margin-bottom:12px;
}
.msp-thanks__hero h2{ font-family:'Fraunces',serif; font-size:24px; font-weight:600; color:#fff; margin-bottom:8px; }
.msp-thanks__hero p{ font-size:13.5px; color:rgba(255,255,255,.78); margin:0; line-height:1.6; }
.msp-thanks__card--fail{ text-align:center; padding:28px; border:1px solid #f5d9d6; background:#fdf1f0; border-radius:14px; }
.msp-thanks__btn{
  display:inline-block; margin-top:12px; background:var(--navy); color:#fff !important; text-decoration:none !important;
  font-size:12px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; padding:12px 26px; border-radius:9px;
}
.msp-thanks__overview{
  list-style:none; margin:0 0 24px; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:2px;
  background:var(--steel-light); border:1px solid var(--steel-light); border-radius:12px; overflow:hidden;
}
.msp-thanks__overview li{ background:#fff; padding:13px 15px; display:flex; flex-direction:column; gap:3px; }
.msp-thanks__overview span{ font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--steel); }
.msp-thanks__overview strong{ font-size:14px; color:var(--navy); font-weight:700; }
.msp-thanks__overview .amount{ font-weight:700; }
.msp-pickup-note + .woocommerce-order-details,
.woocommerce-order-details{ margin-top:8px; }
.woocommerce-order-details__title,
.woocommerce-column__title,
.woocommerce-order-downloads__title{
  font-family:'Fraunces',serif; font-size:17px; font-weight:600; color:var(--navy); margin:22px 0 12px;
}
.woocommerce-table--order-details,
table.woocommerce-table--order-details{
  width:100%; border-collapse:collapse; font-size:13px; border:1px solid var(--steel-light); border-radius:11px; overflow:hidden;
}
.woocommerce-table--order-details th{
  background:var(--ivory-2); text-align:left; padding:11px 13px; font-size:11px; font-weight:800;
  letter-spacing:.04em; text-transform:uppercase; color:var(--navy);
}
.woocommerce-table--order-details td{ padding:11px 13px; border-top:1px solid var(--steel-light); }
.woocommerce-table--order-details tfoot th{ background:#fff; text-transform:none; font-size:12.5px; }
.woocommerce-table--order-details tfoot tr:last-child th,
.woocommerce-table--order-details tfoot tr:last-child td{ font-family:'Fraunces',serif; font-size:15px; color:var(--navy); }
.woocommerce-table--order-details .wc-item-meta{ list-style:none; margin:4px 0 0; padding:0; font-size:11.5px; color:#8b93a1; }
.woocommerce-table--order-details a{ color:var(--navy) !important; font-weight:600 !important; text-decoration:none !important; }
.woocommerce-customer-details{ margin-top:22px; }
.woocommerce-customer-details address{
  font-style:normal; font-size:13px; line-height:1.7; color:#3f4650;
  border:1px solid var(--steel-light); border-radius:11px; padding:14px 16px;
}
.woocommerce-order .woocommerce-columns--addresses{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:600px){
  .msp-thanks__overview{ grid-template-columns:1fr 1fr; }
  .woocommerce-order .woocommerce-columns--addresses{ grid-template-columns:1fr; }
}

/* ---------- Checkout: kill WooCommerce's lavender defaults ---------- */
.woocommerce-checkout #payment,
.woocommerce #payment,
.woocommerce-page #payment{ background:var(--ivory-2) !important; }
.woocommerce-checkout #payment .payment_box,
.woocommerce #payment div.payment_box{
  background:#fff !important; color:#6b7280 !important;
}
.woocommerce-checkout #payment .payment_box::before,
.woocommerce #payment div.payment_box::before{ display:none !important; border:0 !important; }
.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select{ border-color:var(--sale); box-shadow:none; }
.woocommerce form .form-row.woocommerce-validated input.input-text,
.woocommerce form .form-row.woocommerce-validated select{ border-color:var(--steel-light); box-shadow:none; }
.woocommerce form .form-row .select2-container{ line-height:normal; }
.select2-container--default .select2-selection--single{ border:1.5px solid var(--steel-light) !important; border-radius:9px !important; height:44px !important; }
.select2-container--default .select2-selection--single .select2-selection__rendered{ line-height:42px !important; color:var(--ink) !important; }
.select2-container--default .select2-selection--single .select2-selection__arrow{ height:42px !important; }
.select2-dropdown{ border:1.5px solid var(--steel-light) !important; border-radius:9px !important; }
.woocommerce-checkout .woocommerce-billing-fields h3{ margin-bottom:16px; }
.woocommerce-checkout .woocommerce-shipping-fields{ margin-top:6px; }
.woocommerce-checkout .woocommerce-account-fields{ margin-bottom:8px; }
.woocommerce form .form-row label.checkbox{ display:flex; align-items:center; gap:9px; font-size:12.5px; font-weight:600; color:var(--navy); }

/* ---------- Store collection block ---------- */
.msp-pickup{ margin:18px 0 6px; padding:20px 20px 22px; border:1px solid var(--steel-light); border-top:3px solid var(--brass); border-radius:14px; background:#fff; }
.msp-pickup[hidden]{ display:none; }
.msp-pickup h3{ font-family:'Fraunces',serif; font-size:18px; font-weight:600; color:var(--navy); margin:0 0 4px; }
.msp-pickup__lead{ font-size:12.5px; color:#6b7280; margin:0 0 18px; }

/* ---- the three-step rail ---- */
.msp-pickup__steps{ list-style:none; margin:0; padding:0; }
.msp-pickup__step{
  display:grid; grid-template-columns:28px 1fr; gap:14px;
  padding:0 0 18px; position:relative;
}
.msp-pickup__step:last-child{ padding-bottom:0; }
/* connector line between step numbers */
.msp-pickup__step:not(:last-child)::before{
  content:""; position:absolute; left:13px; top:30px; bottom:2px; width:2px; background:var(--steel-light);
}
.msp-pickup__step.is-open:not(:last-child)::before{ background:var(--brass-light); }
.msp-pickup__num{
  width:28px; height:28px; border-radius:50%; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  font-family:'Fraunces',serif; font-size:14px; font-weight:700;
  background:var(--ivory-2); color:var(--steel); border:1.5px solid var(--steel-light);
  transition:background .2s, color .2s, border-color .2s;
}
.msp-pickup__step.is-open .msp-pickup__num{ background:var(--navy); color:#fff; border-color:var(--navy); }
.msp-pickup__step.is-done .msp-pickup__num{ background:var(--brass); color:var(--navy); border-color:var(--brass); }
.msp-pickup__step-body{ min-width:0; padding-top:3px; }
.msp-pickup__step-label{
  display:block; font-size:11px; font-weight:800; letter-spacing:.07em; text-transform:uppercase;
  color:var(--rust); margin:0 0 9px;
}
.msp-pickup__step:not(.is-open) .msp-pickup__step-label{ color:var(--steel); }
.msp-pickup__locked{ display:block; font-size:12px; color:#9aa3ae; font-style:italic; }
.msp-pickup__step.is-open .msp-pickup__locked{ display:none; }

/* ---- steps 2 + 3 reveal on unlock ---- */
.msp-pickup__reveal{
  max-height:0; opacity:0; overflow:hidden;
  transition:max-height .34s ease, opacity .28s ease;
}
.msp-pickup__step.is-open .msp-pickup__reveal{ max-height:280px; opacity:1; }

/* ---- branches ---- */
.msp-pickup__branches{ display:grid; gap:8px; }
.msp-pickup__branch{
  display:flex; align-items:flex-start; gap:11px; padding:12px 14px;
  background:#fff; border:1.5px solid var(--steel-light); border-radius:10px; cursor:pointer;
  transition:border-color .12s, background .12s;
}
.msp-pickup__branch:hover{ border-color:var(--brass-light); }
.msp-pickup__branch:has(input:checked){ border-color:var(--brass); background:#fffaf0; box-shadow:0 0 0 3px rgba(201,154,62,.14); }
.msp-pickup__branch input{ margin-top:2px; accent-color:var(--brass); width:16px; height:16px; flex-shrink:0; }
.msp-pickup__branch-name{ display:block; font-size:13.5px; font-weight:700; color:var(--navy); }
.msp-pickup__branch-addr{ display:block; font-size:11.5px; color:#8b93a1; margin-top:2px; line-height:1.45; }

/* ---- day cards ---- */
.msp-pickup__days{ display:flex; flex-wrap:wrap; gap:8px; }
.msp-pickup__day{
  flex:1 1 96px; min-width:0; padding:11px 8px; cursor:pointer;
  background:#fff; border:1.5px solid var(--steel-light); border-radius:10px;
  display:flex; flex-direction:column; align-items:center; gap:2px;
  font-family:inherit; transition:border-color .14s, background .14s, box-shadow .14s;
}
.msp-pickup__day:hover{ border-color:var(--brass); }
.msp-pickup__day.is-selected{ border-color:var(--brass); background:#fffaf0; box-shadow:0 0 0 3px rgba(201,154,62,.16); }
.msp-pickup__day-name{ font-size:12.5px; font-weight:700; color:var(--navy); }
.msp-pickup__day-date{ font-size:11px; color:#8b93a1; }
.msp-pickup__day.is-selected .msp-pickup__day-date{ color:#a86f12; }

/* ---- time-window cards ---- */
.msp-pickup__slots{ display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }
.msp-pickup__slot{
  padding:11px 10px; cursor:pointer; text-align:center;
  background:#fff; border:1.5px solid var(--steel-light); border-radius:10px;
  font-family:inherit; font-size:12px; font-weight:700; color:var(--navy);
  transition:border-color .14s, background .14s, box-shadow .14s;
}
.msp-pickup__slot:hover{ border-color:var(--brass); }
.msp-pickup__slot.is-selected{ border-color:var(--brass); background:#fffaf0; color:#a86f12; box-shadow:0 0 0 3px rgba(201,154,62,.16); }

@media (max-width:480px){
  .msp-pickup{ padding:16px 15px 18px; }
  .msp-pickup__slots{ grid-template-columns:1fr; }
  .msp-pickup__day{ flex-basis:calc(33.333% - 6px); }
}
@media (prefers-reduced-motion:reduce){
  .msp-pickup__reveal{ transition:none; }
}

.msp-pickup-note{
  background:var(--ivory-2); border:1px solid var(--steel-light); border-left:3px solid var(--brass);
  border-radius:10px; padding:13px 15px; font-size:12.5px; color:#5b6270; line-height:1.65; margin:16px 0;
}
.msp-pickup-note strong{ color:var(--navy); font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }

/* cart: tidy the orphan shipping-destination line + GST note */
.msp-summary .woocommerce-shipping-destination{ font-size:11px; color:#98a0ab; margin:4px 0 0; }
.msp-summary .shipping-calculator-button{ display:none; }
.msp-summary__row--total .includes_tax,
.msp-summary__row--total small{ display:block; font-family:'Work Sans',sans-serif; font-size:10.5px; font-weight:600; color:#98a0ab; margin-top:2px; }
.woocommerce-checkout .cart-subtotal .includes_tax,
.woocommerce-checkout .order-total small{ font-size:10.5px; color:#98a0ab; font-weight:600; }

/* =========================================================================
 * Help Centre + policy / legal pages
 * ====================================================================== */
.msp-doc__head{ max-width:760px; margin:0 0 30px; }
.msp-doc__eyebrow{
  font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--rust); font-weight:700; margin:0 0 10px;
}
.msp-doc .entry-title{ text-align:left; margin:0 0 8px; }
.msp-doc__updated{ font-size:12.5px; color:#8b93a1; margin:0; }

.msp-doc__grid{
  display:grid; grid-template-columns:224px minmax(0,1fr); gap:44px; align-items:start;
}

/* --- side nav --- */
.msp-doc__nav{ position:sticky; top:96px; }
.msp-doc__nav-head{
  font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  color:#8b93a1; font-weight:700; margin:0 0 10px; padding-left:12px;
}
.msp-doc__nav ul{ list-style:none; margin:0; padding:0; }
.msp-doc__nav li{ margin:1px 0; }
.msp-doc__nav a{
  display:block; padding:9px 12px; border-radius:9px;
  font-size:13.5px; font-weight:600; color:var(--navy); text-decoration:none;
  transition:background .12s, color .12s;
}
.msp-doc__nav a:hover{ background:var(--ivory-2); color:var(--rust); }
.msp-doc__nav li.is-current a{ background:var(--navy); color:#fff; }

/* --- body copy --- */
.msp-doc__body{ font-size:15px; line-height:1.75; color:#3f4650; max-width:760px; }
.msp-doc__body .msp-doc__lead{
  font-size:16.5px; line-height:1.65; color:var(--ink); margin:0 0 26px;
  padding-bottom:20px; border-bottom:1px solid var(--steel-light);
}
.msp-doc__body h2{
  font-family:'Fraunces',serif; font-size:20px; font-weight:600; color:var(--navy);
  margin:30px 0 10px;
}
.msp-doc__body h3{
  font-family:'Work Sans',sans-serif; font-size:15px; font-weight:700; color:var(--navy);
  margin:22px 0 6px;
}
.msp-doc__body p{ margin:0 0 12px; }
.msp-doc__body ul,
.msp-doc__body ol{ margin:0 0 14px; padding-left:22px; }
.msp-doc__body ul{ list-style:disc; }
.msp-doc__body ol{ list-style:decimal; }
.msp-doc__body li{ margin:0 0 7px; }
.msp-doc__body li::marker{ color:var(--brass); }
.msp-doc__body a{ color:var(--rust); font-weight:600; text-decoration:underline; text-underline-offset:2px; }
.msp-doc__body a:hover{ color:var(--navy); }
.msp-doc__body strong{ color:var(--ink); }

/* callout cards inside doc bodies (officer details, contact columns) */
.msp-doc__officer,
.msp-doc__card{
  background:var(--ivory-2); border:1px solid var(--steel-light);
  border-left:3px solid var(--brass); border-radius:12px;
  padding:16px 18px; margin:16px 0;
}
.msp-doc__officer h2,
.msp-doc__card h2{ margin-top:0; }
.msp-doc__cols{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:18px 0; }
.msp-doc__cols .msp-doc__card{ margin:0; }

/* --- appended "still need a hand" card --- */
.msp-doc__help{
  margin-top:30px; padding:20px 22px; border-radius:14px;
  background:linear-gradient(135deg,var(--navy) 0%,var(--navy-2) 65%,#33404f 100%);
  color:#e9edf2;
}
.msp-doc__help h2{ font-family:'Fraunces',serif; font-size:18px; color:#fff; margin:0 0 8px; }
.msp-doc__help p{ margin:0 0 6px; font-size:13.5px; line-height:1.65; }
.msp-doc__help a{ color:var(--brass-light); font-weight:700; text-decoration:none; }
.msp-doc__help a:hover{ color:#fff; }
.msp-doc__help-hours{ font-size:12px; color:#a9b1bc; }
.msp-doc__back{ margin-top:22px; font-size:13px; }
.msp-doc__back a{ color:var(--navy); font-weight:700; text-decoration:none; }
.msp-doc__back a:hover{ color:var(--rust); }

/* --- bargain terms embedded via [msp_bargain_terms] --- */
.msp-doc__bargain{ font-size:14.5px; }
.msp-doc__bargain .msp-tc__lead{ font-size:16px; color:var(--ink); }
.msp-doc__bargain .msp-tc__first{
  background:#fffaf0; border:1px solid var(--brass-light); border-radius:10px;
  padding:13px 15px; font-size:13.5px; color:#7a5a1c;
}
.msp-doc__bargain h3{
  font-family:'Fraunces',serif; font-size:16px; font-weight:600; color:var(--navy); margin:22px 0 6px;
}

/* --- Help Centre hub --- */
.msp-help__intro{ font-size:16px; line-height:1.7; color:var(--ink); max-width:680px; margin:0; }
.msp-help__intro p{ margin:0 0 12px; }
.msp-help__cards{
  display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:34px 0 8px;
}
.msp-help__card{
  display:grid; grid-template-rows:auto auto 1fr auto; gap:8px;
  padding:20px 18px; border-radius:14px; text-decoration:none;
  background:#fff; border:1px solid var(--steel-light);
  transition:transform .14s, box-shadow .14s, border-color .14s;
}
.msp-help__card:hover{ transform:translateY(-3px); box-shadow:0 16px 30px rgba(28,36,48,.1); border-color:var(--brass); }
.msp-help__card-ico{
  width:38px; height:38px; border-radius:10px; background:var(--ivory-2);
  display:flex; align-items:center; justify-content:center; color:var(--rust);
}
.msp-help__card-ico svg{ width:20px; height:20px; }
.msp-help__card-title{ font-family:'Fraunces',serif; font-size:17px; font-weight:600; color:var(--navy); }
.msp-help__card-text{ font-size:13px; line-height:1.55; color:#6b7280; }
.msp-help__card-go{ font-size:15px; color:var(--brass); font-weight:700; }

/* --- FAQ (native <details>) --- */
.msp-help__faq{ margin:40px 0 0; max-width:820px; }
.msp-help__faq > h2{
  font-family:'Fraunces',serif; font-size:22px; color:var(--navy); margin:0 0 14px;
}
.msp-faq{
  border:1px solid var(--steel-light); border-radius:12px;
  margin:0 0 10px; background:#fff; overflow:hidden;
}
.msp-faq summary{
  list-style:none; cursor:pointer; padding:15px 17px;
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  font-size:14.5px; font-weight:700; color:var(--navy);
}
.msp-faq summary::-webkit-details-marker{ display:none; }
.msp-faq summary:hover{ color:var(--rust); }
.msp-faq__mark{
  flex-shrink:0; width:18px; height:18px; position:relative;
}
.msp-faq__mark::before,
.msp-faq__mark::after{
  content:""; position:absolute; background:var(--brass); border-radius:2px;
  top:50%; left:50%; transform:translate(-50%,-50%);
}
.msp-faq__mark::before{ width:14px; height:2px; }
.msp-faq__mark::after{ width:2px; height:14px; transition:transform .2s ease; }
.msp-faq[open] .msp-faq__mark::after{ transform:translate(-50%,-50%) rotate(90deg); opacity:0; }
.msp-faq__a{
  padding:0 17px 16px; font-size:14px; line-height:1.7; color:#4b5563;
}
.msp-faq__a p{ margin:0; }
.msp-faq__a a{ color:var(--rust); font-weight:600; text-decoration:underline; }

.msp-help__contact{ margin-top:34px; }

@media (prefers-reduced-motion:reduce){
  .msp-help__card{ transition:none; }
  .msp-faq__mark::after{ transition:none; }
}

/* --- footer legal row --- */
.footer-legal{ display:flex; gap:18px; flex-wrap:wrap; }
.footer-legal a{ color:#8892a0; }
.footer-legal a:hover{ color:var(--brass-light); }

@media (max-width:900px){
  .msp-doc__grid{ grid-template-columns:1fr; gap:26px; }
  .msp-doc__nav{ position:static; top:auto; }
  .msp-doc__nav ul{
    display:flex; flex-wrap:wrap; gap:6px;
    border:1px solid var(--steel-light); border-radius:12px; padding:8px;
  }
  .msp-doc__nav li{ margin:0; }
  .msp-doc__nav-head{ padding-left:2px; margin-bottom:8px; }
  .msp-doc__nav a{ padding:7px 11px; font-size:12.5px; background:var(--ivory-2); }
  .msp-help__cards{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:600px){
  .msp-doc__grid{ gap:22px; }
  .msp-doc__body,
  .msp-doc__body .msp-doc__lead{ font-size:14.5px; }
  .msp-doc__body h2{ font-size:18px; }
  .msp-doc__cols{ grid-template-columns:1fr; }
  .msp-help__cards{ grid-template-columns:1fr; }
  .footer-legal{ gap:14px; }
}

/* =========================================================================
 * Recently viewed — homepage history strip (hidden until JS fills it)
 * ====================================================================== */
.msp-recent[hidden]{ display:none; }
.msp-recent .block-head{ margin-bottom:18px; }
.msp-recent__clear{
  font-family:inherit; font-size:13px; font-weight:700; color:#8b93a1;
  border:none; border-bottom:2px solid transparent; background:none;
  padding:0 0 2px; cursor:pointer; transition:color .12s, border-color .12s;
}
.msp-recent__clear:hover{ color:var(--rust); border-bottom-color:var(--brass); }

.msp-recent__row{
  display:flex; gap:18px;
  overflow-x:auto; overflow-y:hidden;
  scroll-snap-type:x proximity;
  padding-bottom:10px; margin-bottom:-6px;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin; scrollbar-color:var(--steel-light) transparent;
}
.msp-recent__row::-webkit-scrollbar{ height:6px; }
.msp-recent__row::-webkit-scrollbar-track{ background:transparent; }
.msp-recent__row::-webkit-scrollbar-thumb{ background:var(--steel-light); border-radius:3px; }
.msp-recent__row > .card{
  flex:0 0 clamp(180px, 45vw, 224px);
  scroll-snap-align:start;
}

@media (max-width:600px){
  .msp-recent__row{ gap:14px; }
  .msp-recent__row > .card{ flex-basis:64vw; }
}

/* =========================================================================
 * Empty state — no search results / over-narrow filters / bare category
 * ====================================================================== */
.msp-empty{
  max-width:620px; margin:8px auto 6px; padding:14px 8px 4px;
  text-align:center;
}
.shop-results .msp-empty{ margin-top:22px; }
.msp-empty__badge{
  display:inline-flex; align-items:center; justify-content:center;
  width:64px; height:64px; border-radius:50%;
  background:var(--ivory-2); color:var(--navy);
  border:1px solid var(--steel-light);
  margin-bottom:20px;
}
.msp-empty__eyebrow{
  font-size:12px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--brass); margin-bottom:10px;
}
.msp-empty__title{
  font-family:'Fraunces', serif; font-size:26px; line-height:1.2; color:var(--navy);
  margin-bottom:12px;
}
.msp-empty__lead{
  font-size:14.5px; line-height:1.7; color:#4b5563;
  max-width:440px; margin:0 auto;
}
.msp-empty__lead em{ font-style:normal; font-weight:600; color:var(--ink); }

.msp-empty__search{ margin:24px auto 0; max-width:420px; }
.msp-empty__search .search-bar{
  display:flex; align-items:stretch;
  border:1.5px solid var(--steel-light); border-radius:10px; overflow:hidden;
  background:#fff;
}
.msp-empty__search .search-bar:focus-within{ border-color:var(--brass); }
.msp-empty__search input[type="search"]{
  flex:1; border:none; outline:none; padding:12px 14px;
  font-family:inherit; font-size:14px; color:var(--ink); background:transparent;
}
.msp-empty__search .search-btn{
  display:flex; align-items:center; justify-content:center;
  width:46px; background:var(--navy); border:none;
}
.msp-empty__search .search-btn:hover{ background:var(--navy-2); }

.msp-empty__chips{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:8px;
  margin-top:16px;
}
.msp-empty__chips-label{
  width:100%; font-size:12px; font-weight:600; letter-spacing:0.04em;
  text-transform:uppercase; color:#8b93a1; margin-bottom:2px;
}
.msp-empty__chip{
  font-size:13px; font-weight:600; color:var(--navy);
  padding:7px 14px; border-radius:999px;
  border:1px solid var(--steel-light); background:#fff;
  transition:border-color .12s, background .12s, color .12s;
}
.msp-empty__chip:hover{ border-color:var(--brass); background:var(--ivory-2); color:var(--rust); }

.msp-empty__actions{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:14px 18px;
  margin-top:26px;
}
.msp-empty__actions .btn-primary{ border-radius:8px; }
.msp-empty__reset{
  font-size:13.5px; font-weight:700; color:#6b7280;
  border-bottom:2px solid transparent; padding-bottom:1px;
  transition:color .12s, border-color .12s;
}
.msp-empty__reset:hover{ color:var(--rust); border-bottom-color:var(--brass); }

.msp-empty__cats{ margin-top:34px; padding-top:26px; border-top:1px solid var(--steel-light); }
.msp-empty__cats-head{
  font-size:12px; font-weight:700; letter-spacing:0.12em; text-transform:uppercase;
  color:#8b93a1; margin-bottom:16px;
}
.msp-empty__cat-grid{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:12px;
}
.msp-empty__cat{
  display:flex; flex-direction:column; align-items:center; gap:8px;
  padding:16px 10px; border-radius:12px;
  border:1px solid var(--steel-light); background:#fff;
  transition:border-color .12s, transform .12s;
}
.msp-empty__cat:hover{ border-color:var(--brass); transform:translateY(-2px); }
.msp-empty__cat-icon{ color:var(--navy); }
.msp-empty__cat-name{ font-size:12.5px; font-weight:600; color:var(--ink); line-height:1.3; }

@media (max-width:600px){
  .msp-empty{ padding:8px 4px 4px; }
  .msp-empty__title{ font-size:22px; }
  .msp-empty__lead{ font-size:13.5px; }
  .msp-empty__actions .btn-primary{ width:100%; text-align:center; }
  .msp-empty__cat-grid{ grid-template-columns:repeat(2, 1fr); }
}
