/*
Theme Name: Spode
Theme URI: https://shop.spode.co.za
Author: Origin Thrive
Author URI: https://originthrive.com
Description: Spode — lightweight WooCommerce block theme (FSE) for shop.spode.co.za. Brand-matched, page-builder-free, built for speed and conversion.
Requires at least: 6.5
Tested up to: 6.7
Requires PHP: 8.0
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: spode
Tags: block-theme, full-site-editing, ecommerce, woocommerce
*/

/* ===================================================================
   HOMEPAGE / DESIGN SYSTEM  — ported from approved prototype
   =================================================================== */


/* ============================ TOKENS ============================ */
:root{
  --blue:#007BC4; --blue-light:#2194CB; --blue-dark:#00629d; --blue-wash:#eaf4fb;
  --ink:#181818; --black:#101113; --slate:#3D4857; --muted:#5b6675;
  --line:#e4e7ec; --line-soft:#eef1f4; --paper:#f7f8fa; --white:#fff;
  --cream:#F3EED9; --yellow:#FFD64F; --green:#1f9d54; --green-soft:#e7f6ee; --red:#e23b3b;
  --radius:6px; --radius-lg:10px; --radius-pill:999px;
  --shadow-sm:0 1px 2px rgba(29,40,56,.06);
  --shadow-md:0 6px 22px rgba(29,40,56,.10);
  --shadow-lg:0 18px 46px rgba(16,30,54,.16);
  --content:1200px; --wide:1320px;
  --ease:cubic-bezier(.16,1,.3,1);
  --hdr-h:118px;
  font-family:'Poppins',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--white);color:var(--ink);
  font-family:'Poppins',system-ui,sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block}
a{color:var(--blue);text-decoration:none}
button{font-family:inherit;cursor:pointer}
h1,h2,h3{margin:0;line-height:1.15;letter-spacing:-.02em;font-weight:800}
h2{font-size:clamp(1.7rem,3.2vw,2.4rem);letter-spacing:-.015em}
h3{font-size:1.15rem;font-weight:700;letter-spacing:-.01em}
p{margin:0}
:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 55%,transparent);outline-offset:2px;border-radius:3px}
.wrap{max-width:var(--content);margin-inline:auto;padding-inline:22px}
.wide{max-width:var(--wide)}
.eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);display:inline-flex;align-items:center;gap:.5rem}
.num{font-variant-numeric:tabular-nums}
.icon{width:22px;height:22px;flex:0 0 auto;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.i-sm{width:18px;height:18px}
.i-lg{width:30px;height:30px;stroke-width:1.5}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font-weight:600;font-size:1rem;
  padding:.8rem 1.5rem;border-radius:var(--radius);border:1px solid transparent;transition:transform .18s var(--ease),background .18s,box-shadow .18s;white-space:nowrap}
.btn-primary{background:var(--blue);color:#fff}
.btn-primary:hover{background:var(--blue-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:#000;transform:translateY(-1px)}
.btn-ghost{background:#fff;color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--blue);color:var(--blue-dark)}
.btn-lg{padding:.95rem 1.9rem;font-size:1.05rem}
.btn-block{width:100%}


/* ============================ HEADER ============================ */
.site-header{position:sticky;top:0;z-index:100;background:#fff}
.util{background:var(--black);color:#cfd6e0;font-size:.8rem}
.util .wrap{display:flex;justify-content:flex-end;gap:1.5rem;align-items:center;min-height:38px;flex-wrap:wrap}
.util a{color:#cfd6e0;display:inline-flex;align-items:center;gap:.4rem}
.util a:hover{color:#fff}
.util .u-left{margin-right:auto;color:#9aa3b0;display:inline-flex;align-items:center;gap:.5rem}
.util .u-left b{color:#fff;font-weight:600}

.mainbar{border-bottom:1px solid var(--line);background:#fff;transition:box-shadow .25s}
.site-header.scrolled .mainbar{box-shadow:var(--shadow-md)}
.mainbar .wrap{display:flex;align-items:center;gap:1.4rem;min-height:80px}
.brand{display:flex;align-items:center;gap:.7rem;flex:0 0 auto;color:var(--ink)}
.brand .logo{width:42px;height:42px;border-radius:8px;background:linear-gradient(135deg,var(--blue),var(--blue-dark));display:grid;place-items:center;color:#fff;font-weight:800;font-size:1.35rem;box-shadow:var(--shadow-sm)}
.brand .bt{font-weight:800;font-size:1.35rem;letter-spacing:-.02em;line-height:1}
.brand .bs{display:block;font-size:.62rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:2px}

/* search in header */
.hsearch{flex:1 1 auto;max-width:520px;position:relative;display:flex;align-items:center}
.hsearch input{width:100%;height:46px;border:1.5px solid var(--line);border-radius:var(--radius-pill);padding:0 3rem 0 1.1rem;font-size:.95rem;font-family:inherit;background:var(--paper);transition:border-color .18s,background .18s}
.hsearch input:focus{outline:none;border-color:var(--blue);background:#fff;box-shadow:0 0 0 4px var(--blue-wash)}
.hsearch button{position:absolute;right:5px;height:38px;width:38px;border:0;border-radius:var(--radius-pill);background:var(--blue);color:#fff;display:grid;place-items:center}
.hsearch button:hover{background:var(--blue-dark)}

.hactions{display:flex;align-items:center;gap:.3rem;flex:0 0 auto;margin-left:auto}
.iconbtn{display:inline-flex;flex-direction:column;align-items:center;gap:2px;background:none;border:0;color:var(--ink);padding:.45rem .6rem;border-radius:var(--radius);font-size:.68rem;font-weight:600;letter-spacing:.02em}
.iconbtn:hover{color:var(--blue);background:var(--paper)}
.iconbtn .cart-wrap{position:relative}
.cart-badge{position:absolute;top:-7px;right:-9px;background:var(--blue);color:#fff;font-size:.62rem;font-weight:700;min-width:17px;height:17px;border-radius:var(--radius-pill);display:grid;place-items:center;padding:0 3px}
.burger{display:none}

/* nav bar */
.navbar{background:#fff;border-bottom:1px solid var(--line)}
.nav-root{list-style:none;margin:0;padding:0;display:flex;align-items:stretch;gap:.2rem}
.nav-item{position:static}
.nav-top{display:inline-flex;align-items:center;gap:.35rem;background:none;border:0;color:var(--ink);font-weight:600;font-size:.95rem;
  padding:.95rem .95rem;border-bottom:3px solid transparent;transition:color .15s,border-color .15s}
.nav-top .chev{width:15px;height:15px;transition:transform .2s var(--ease);stroke:currentColor;fill:none;stroke-width:2}
.nav-item:hover .nav-top,.nav-item:focus-within .nav-top,.nav-top[aria-expanded="true"]{color:var(--blue);border-bottom-color:var(--blue)}
.nav-item:hover .chev,.nav-item:focus-within .chev{transform:rotate(180deg)}

/* MEGA */
.mega{position:absolute;left:0;right:0;top:100%;background:#fff;border-top:1px solid var(--line);
  box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transform:translateY(8px);pointer-events:none;
  transition:opacity .2s var(--ease),transform .2s var(--ease),visibility .2s;z-index:90}
.nav-item.has-mega:hover .mega,.nav-item.has-mega:focus-within .mega,.mega.open{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}
.mega-inner{max-width:var(--content);margin-inline:auto;padding:26px 22px 30px;display:grid;grid-template-columns:1fr 1fr 1fr 300px;gap:28px}
.mega-col h4{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:700;margin:0 0 .7rem;padding-bottom:.5rem;border-bottom:1px solid var(--line-soft)}
.mega-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.15rem}
.mega-col a{display:flex;justify-content:space-between;align-items:center;gap:.5rem;color:var(--slate);font-size:.9rem;font-weight:500;padding:.4rem .5rem;border-radius:var(--radius);transition:background .14s,color .14s}
.mega-col a:hover{background:var(--blue-wash);color:var(--blue-dark)}
.mega-col a .c{color:var(--muted);font-size:.78rem;font-variant-numeric:tabular-nums}
.mega-feature{background:linear-gradient(160deg,var(--slate),var(--ink));border-radius:var(--radius-lg);padding:22px;color:#fff;display:flex;flex-direction:column;justify-content:space-between;min-height:210px;position:relative;overflow:hidden}
.mega-feature::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:22px 22px;opacity:.5}
.mega-feature .mf-k{position:relative;font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;color:var(--yellow);font-weight:700}
.mega-feature h5{position:relative;margin:.5rem 0 .4rem;font-size:1.25rem;font-weight:800;letter-spacing:-.01em}
.mega-feature p{position:relative;font-size:.85rem;color:#c9d0da;margin-bottom:1rem}
.mega-feature .btn{position:relative;align-self:flex-start;background:#fff;color:var(--ink);padding:.55rem 1rem;font-size:.85rem}
.mega-feature .btn:hover{background:var(--yellow)}

/* ============================ HERO ============================ */
.hero{position:relative;background:
  radial-gradient(120% 90% at 88% -10%,var(--blue-wash),transparent 60%),
  linear-gradient(180deg,#fff, #fbfcfe);overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;
  background-image:linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);
  background-size:32px 32px;-webkit-mask-image:radial-gradient(120% 80% at 80% 0%,#000,transparent 70%);mask-image:radial-gradient(120% 80% at 80% 0%,#000,transparent 70%);opacity:.7}
.hero .wrap{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:center;padding-block:56px 60px}
.hero-copy h1{font-size:clamp(2.1rem,4.6vw,3.4rem);font-weight:800;letter-spacing:-.03em;margin:.9rem 0 0;text-wrap:balance}
.hero-copy .lead{font-size:1.12rem;color:var(--slate);margin-top:1rem;max-width:34ch}
.hero-copy .lead b{color:var(--ink);font-weight:600}
.herosearch{margin-top:1.7rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:8px;display:flex;gap:8px;max-width:500px}
.herosearch .cat{display:flex;align-items:center;gap:.4rem;padding:0 .9rem;border-right:1px solid var(--line);color:var(--slate);font-weight:600;font-size:.9rem;white-space:nowrap}
.herosearch input{border:0;flex:1;font-family:inherit;font-size:.98rem;padding:.7rem .2rem;min-width:0}
.herosearch input:focus{outline:none}
.herosearch .btn{padding:.7rem 1.2rem}
.hero-chips{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.3rem}
.chip{display:inline-flex;align-items:center;gap:.45rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius-pill);padding:.42rem .85rem;font-size:.82rem;font-weight:600;color:var(--slate)}
.chip svg{width:16px;height:16px;color:var(--blue);stroke:currentColor;fill:none;stroke-width:1.8}

/* hero visual */
.hero-visual{position:relative}
.hv-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:20px;position:relative}
.hv-tag{position:absolute;top:-13px;left:20px;background:var(--yellow);color:var(--ink);font-weight:700;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;padding:.35rem .7rem;border-radius:var(--radius-pill)}
.hv-img{background:var(--paper);border-radius:var(--radius);aspect-ratio:4/3;display:grid;place-items:center;overflow:hidden}
.hv-img img{width:78%;height:78%;object-fit:contain;filter:drop-shadow(0 12px 18px rgba(16,30,54,.14))}
.hv-meta{display:flex;justify-content:space-between;align-items:flex-end;margin-top:16px;gap:1rem}
.hv-meta h3{font-size:1.02rem;font-weight:700;letter-spacing:-.01em}
.hv-meta .k{font-size:.75rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.08em}
.hv-meta .price{font-size:1.3rem;font-weight:800;color:var(--ink);white-space:nowrap}
.hv-instock{display:inline-flex;align-items:center;gap:.35rem;color:var(--green);font-size:.78rem;font-weight:700;margin-top:.3rem}
.hv-instock span{width:8px;height:8px;border-radius:50%;background:var(--green)}
.hv-float{position:absolute;bottom:-22px;right:-14px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:.7rem .95rem;display:flex;align-items:center;gap:.6rem}
.hv-float .r{display:flex;gap:1px;color:var(--yellow)}
.hv-float .r svg{width:15px;height:15px;fill:currentColor;stroke:none}
.hv-float small{display:block;color:var(--muted);font-size:.68rem;font-weight:600}
.hv-float b{font-size:.85rem}

/* ============================ TRUST STRIP ============================ */
.trust{background:var(--ink);color:#fff}
.trust .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;padding:0}
.trust .t{display:flex;align-items:center;gap:.85rem;padding:20px 18px;position:relative}
.trust .t:not(:last-child)::after{content:"";position:absolute;right:0;top:22%;bottom:22%;width:1px;background:rgba(255,255,255,.12)}
.trust .t svg{color:var(--blue-light);width:26px;height:26px;flex:0 0 auto;stroke:currentColor;fill:none;stroke-width:1.6}
.trust .t b{display:block;font-size:.92rem;font-weight:600}
.trust .t small{display:block;color:#9aa3b0;font-size:.78rem}

/* ============================ SECTIONS ============================ */
.section{padding-block:64px}
.section.tight{padding-block:48px}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:30px;flex-wrap:wrap}
.sec-head p.sub{color:var(--muted);margin-top:.5rem;max-width:52ch;font-size:.98rem}
.sec-head .link{font-weight:600;font-size:.92rem;display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap}
.sec-head .link:hover{gap:.6rem}

/* category bento */
.bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:170px;gap:16px}
.cat{position:relative;border:1px solid var(--line);border-radius:var(--radius-lg);padding:18px;background:#fff;overflow:hidden;
  display:flex;flex-direction:column;justify-content:space-between;transition:transform .2s var(--ease),box-shadow .2s,border-color .2s;color:var(--ink)}
.cat:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:color-mix(in srgb,var(--blue) 35%,var(--line))}
.cat .cat-ico{width:44px;height:44px;border-radius:10px;background:var(--blue-wash);color:var(--blue-dark);display:grid;place-items:center}
.cat .cat-ico svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1.6}
.cat h3{font-size:1.05rem;font-weight:700}
.cat .cat-c{font-size:.8rem;color:var(--muted);font-weight:600;font-variant-numeric:tabular-nums;margin-top:2px}
.cat .go{position:absolute;top:16px;right:16px;color:var(--muted);opacity:0;transform:translateX(-4px);transition:.18s var(--ease)}
.cat:hover .go{opacity:1;transform:translateX(0);color:var(--blue)}
.cat.big{grid-column:span 2;grid-row:span 2;background:linear-gradient(160deg,var(--blue),var(--blue-dark));color:#fff;border:0;justify-content:flex-end}
.cat.big::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:26px 26px;opacity:.6}
.cat.big .cat-ico{background:rgba(255,255,255,.16);color:#fff;width:54px;height:54px;position:relative}
.cat.big .cat-ico svg{width:32px;height:32px}
.cat.big h3{position:relative;font-size:1.7rem;font-weight:800;letter-spacing:-.02em;margin-top:14px}
.cat.big .cat-c{position:relative;color:#d5e6f5;font-size:.9rem}
.cat.big .big-cta{position:relative;margin-top:12px;display:inline-flex;align-items:center;gap:.4rem;font-weight:600;font-size:.9rem;color:#fff}
.cat.cream{background:var(--cream)}
.cat.cream .cat-ico{background:#fff;color:var(--slate)}

/* browse / filter demo */
.browse{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.browse-grid{display:grid;grid-template-columns:262px 1fr;gap:26px;align-items:start}
.filters{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:6px;position:sticky;top:130px}
.filters .fh{display:flex;align-items:center;justify-content:space-between;padding:12px 12px 10px}
.filters .fh b{font-size:.92rem}
.filters .fh a{font-size:.78rem;color:var(--muted);font-weight:600}
.fgroup{border-top:1px solid var(--line-soft);padding:12px}
.fgroup h4{font-size:.82rem;font-weight:700;margin:0 0 .7rem;display:flex;justify-content:space-between;align-items:center}
.fopt{display:flex;align-items:center;gap:.6rem;padding:.32rem 0;font-size:.87rem;color:var(--slate);cursor:pointer}
.fopt input{accent-color:var(--blue);width:16px;height:16px}
.fopt .c{margin-left:auto;color:var(--muted);font-size:.76rem;font-variant-numeric:tabular-nums}
.fopt:hover{color:var(--ink)}
.price-row{display:flex;align-items:center;gap:.5rem;margin-top:.3rem}
.price-row input{width:100%;height:36px;border:1px solid var(--line);border-radius:var(--radius);padding:0 .5rem;font-family:inherit;font-size:.82rem;background:var(--paper)}
.swatch{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.2rem}
.swatch button{width:26px;height:26px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--line);cursor:pointer}
.swatch button[aria-pressed="true"]{box-shadow:0 0 0 2px var(--blue)}

.browse-main .toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:16px;flex-wrap:wrap}
.browse-main .toolbar .rc{font-size:.85rem;color:var(--muted)}
.browse-main .toolbar .rc b{color:var(--ink)}
.pills{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:16px}
.pill{display:inline-flex;align-items:center;gap:.4rem;background:var(--blue-wash);color:var(--blue-dark);border:1px solid color-mix(in srgb,var(--blue) 25%,transparent);border-radius:var(--radius-pill);padding:.3rem .7rem;font-size:.78rem;font-weight:600}
.pill button{background:none;border:0;color:inherit;display:grid;place-items:center;padding:0;line-height:0}
.sortsel{height:40px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:0 .8rem;font-family:inherit;font-weight:600;font-size:.85rem;color:var(--ink)}

/* product grid + cards */
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.pcard{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:14px;display:flex;flex-direction:column;transition:transform .2s var(--ease),box-shadow .2s,border-color .2s}
.pcard:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:color-mix(in srgb,var(--blue) 32%,var(--line))}
.pcard .pimg{background:var(--paper);border-radius:var(--radius);aspect-ratio:1;display:grid;place-items:center;overflow:hidden;margin-bottom:12px}
.pcard .pimg img{width:82%;height:82%;object-fit:contain;transition:transform .3s var(--ease)}
.pcard:hover .pimg img{transform:scale(1.05)}
.pbadge{position:absolute;top:20px;left:20px;background:var(--ink);color:#fff;font-size:.66rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:.28rem .55rem;border-radius:var(--radius-pill)}
.pbadge.sale{background:var(--yellow);color:var(--ink)}
.pcard .pcat{font-size:.7rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.pcard h3{font-size:.94rem;font-weight:600;line-height:1.35;letter-spacing:-.005em;margin:.25rem 0 .5rem;min-height:2.5em}
.pcard h3 a{color:var(--ink)}
.pcard h3 a:hover{color:var(--blue)}
.pcard .stock{display:inline-flex;align-items:center;gap:.35rem;font-size:.74rem;font-weight:600;color:var(--green);margin-bottom:.6rem}
.pcard .stock span{width:7px;height:7px;border-radius:50%;background:var(--green)}
.pcard .pfoot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding-top:.4rem}
.pcard .price{font-size:1.12rem;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.pcard .price del{font-size:.82rem;color:var(--muted);font-weight:500;margin-right:.3rem}
.pcard .add{width:42px;height:42px;border-radius:var(--radius);background:var(--blue);color:#fff;border:0;display:grid;place-items:center;flex:0 0 auto;transition:background .16s,transform .16s}
.pcard .add:hover{background:var(--blue-dark);transform:translateY(-1px)}
.pcard.wide-add .add{width:auto;padding:0 1rem;gap:.4rem;font-weight:600;font-size:.85rem}

/* featured range row */
.range{background:linear-gradient(180deg,#fff,var(--paper))}
.range .sec-head .badge{background:var(--ink);color:#fff;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:.3rem .6rem;border-radius:var(--radius-pill)}
.note{font-size:.76rem;color:var(--muted);margin-top:.6rem;display:inline-flex;align-items:center;gap:.4rem}

/* services cross-link band */
.crossband{background:var(--black);color:#fff;position:relative;overflow:hidden}
.crossband::after{content:"";position:absolute;inset:0;background:
  repeating-linear-gradient(45deg,rgba(255,214,79,.06) 0 22px,transparent 22px 44px);pointer-events:none}
.crossband .wrap{position:relative;display:flex;align-items:center;justify-content:space-between;gap:2rem;padding-block:44px;flex-wrap:wrap}
.crossband .cb-k{font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:var(--yellow);font-weight:700}
.crossband h2{color:#fff;font-size:clamp(1.5rem,3vw,2.1rem);margin-top:.6rem;max-width:20ch}
.crossband p{color:#c9d0da;margin-top:.7rem;max-width:46ch;font-size:.98rem}

/* logo + hero fast-movers + wide category tile */
.brand .logo-img{height:44px;width:auto;display:block}
.brand .bs-shop{background:var(--blue-wash);color:var(--blue-dark);font-size:.58rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:.22rem .5rem;border-radius:var(--radius-pill);align-self:center}
.hf-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.hf-more{font-size:.84rem;font-weight:600;display:inline-flex;gap:.3rem;align-items:center}
.hf-more:hover{gap:.5rem}
.hf-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.hf-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:12px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;color:var(--ink);transition:transform .2s var(--ease),box-shadow .2s,border-color .2s}
.hf-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:color-mix(in srgb,var(--blue) 32%,var(--line))}
.hf-img{background:var(--paper);border-radius:var(--radius);aspect-ratio:1;display:grid;place-items:center;overflow:hidden;margin-bottom:10px}
.hf-img img{width:82%;height:82%;object-fit:contain;transition:transform .3s var(--ease)}
.hf-card:hover .hf-img img{transform:scale(1.05)}
.hf-badge{position:absolute;top:15px;left:15px;background:var(--green-soft);color:var(--green);font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.2rem .45rem;border-radius:var(--radius-pill)}
.hf-card h3{font-size:.8rem;font-weight:600;line-height:1.3;letter-spacing:-.005em}
.hf-foot{margin-top:auto;padding-top:8px;display:flex;align-items:center;justify-content:space-between}
.hf-foot .price{font-size:.95rem;font-weight:800;font-variant-numeric:tabular-nums}
.hf-add{width:30px;height:30px;border-radius:8px;background:var(--blue);color:#fff;display:grid;place-items:center;flex:0 0 auto}
.hf-add svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2}
.hf-card:hover .hf-add{background:var(--blue-dark)}
.cat.wide{grid-column:span 2;background:var(--blue-wash);border-color:transparent;flex-direction:row;align-items:center;gap:16px}
.cat.wide .cat-ico{background:#fff}
.cat.wide .cat-txt{flex:1}
.cat.wide .big-cta2{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;color:var(--blue-dark);font-size:.9rem;white-space:nowrap}
.cat.wide .big-cta2 svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2}

/* ============================ FOOTER ============================ */
.footer{background:var(--black);color:#c9d0da}
.footer .wrap{padding-block:56px 30px}
.fcols{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.5fr;gap:34px}
.footer .fbrand .brand{color:#fff;margin-bottom:1rem}
.footer .fbrand .brand .bs{color:#8b93a1}
.footer .fbrand p{font-size:.88rem;color:#9aa3b0;max-width:34ch;margin-bottom:1.1rem}
.wa{display:inline-flex;align-items:center;gap:.5rem;background:#25D366;color:#062b16;font-weight:700;font-size:.9rem;padding:.6rem 1rem;border-radius:var(--radius-pill)}
.wa:hover{filter:brightness(1.05)}
.footer h4{color:#fff;font-size:.95rem;font-weight:700;margin:0 0 1rem}
.flinks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}
.flinks a{color:#c9d0da;font-size:.88rem}
.flinks a:hover{color:#fff}
.branches{display:flex;flex-direction:column;gap:1rem}
.branch{display:flex;gap:.7rem;font-size:.85rem}
.branch svg{width:18px;height:18px;color:var(--blue-light);flex:0 0 auto;margin-top:2px;stroke:currentColor;fill:none;stroke-width:1.7}
.branch b{color:#fff;font-weight:600;display:block;font-size:.87rem}
.branch span{color:#9aa3b0}
.branch a{color:#c9d0da}
.fbot{border-top:1px solid #23262b;margin-top:38px;padding-top:22px;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.fbot p{font-size:.8rem;color:#8b93a1}
.fbot .pays{display:flex;gap:.5rem;align-items:center}
.fbot .pays span{background:#1b1e23;border:1px solid #2a2e34;border-radius:5px;padding:.3rem .55rem;font-size:.66rem;font-weight:700;color:#aeb6c1;letter-spacing:.03em}

/* ============================ MOBILE NAV ============================ */
.scrim{position:fixed;inset:0;background:rgba(16,19,22,.5);opacity:0;visibility:hidden;transition:.2s;z-index:150}
.scrim.show{opacity:1;visibility:visible}
.drawer{position:fixed;top:0;left:0;bottom:0;width:min(86vw,360px);background:#fff;z-index:160;transform:translateX(-100%);transition:transform .28s var(--ease);display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}
.drawer.show{transform:none}
.drawer .dh{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--line)}
.drawer .dbody{overflow-y:auto;padding:8px}
.macc>button{width:100%;display:flex;align-items:center;justify-content:space-between;background:none;border:0;padding:.9rem .8rem;font-weight:600;font-size:1rem;color:var(--ink);border-bottom:1px solid var(--line-soft)}
.macc>button svg{width:18px;height:18px;transition:transform .2s;stroke:currentColor;fill:none;stroke-width:2}
.macc.open>button svg{transform:rotate(180deg)}
.macc.open>button{color:var(--blue)}
.macc .sub{display:none;padding:.2rem .4rem .8rem 1rem}
.macc.open .sub{display:block}
.macc .sub a{display:block;padding:.5rem .6rem;color:var(--slate);font-size:.9rem;border-radius:var(--radius)}
.macc .sub a:hover{background:var(--blue-wash)}

/* ============================ RESPONSIVE ============================ */
@media(max-width:1024px){
  .mega-inner{grid-template-columns:1fr 1fr 260px}
  .trust .wrap{grid-template-columns:repeat(2,1fr)}
  .trust .t:nth-child(2)::after{display:none}
  .bento{grid-template-columns:repeat(2,1fr)}
  .cat.big{grid-column:span 2}
}
@media(max-width:860px){
  .navbar{display:none}
  .burger{display:inline-flex}
  .hsearch{display:none}
  .hero .wrap{grid-template-columns:1fr;padding-block:38px 46px}
  .hero-visual{max-width:440px}
  .browse-grid{grid-template-columns:1fr}
  .filters{position:relative;top:0}
  .pgrid{grid-template-columns:repeat(2,1fr)}
  .fcols{grid-template-columns:1fr 1fr}
  .crossband .wrap{flex-direction:column;align-items:flex-start}
}
@media(max-width:560px){
  :root{--hdr-h:104px}
  .util .u-left{display:none}
  .pgrid{grid-template-columns:repeat(2,1fr);gap:12px}
  .bento{grid-template-columns:1fr 1fr;grid-auto-rows:150px}
  .trust .wrap{grid-template-columns:1fr 1fr}
  .fcols{grid-template-columns:1fr}
  .pcard h3{min-height:0}
  .hv-float{display:none}
  .brand .bs{display:none}
  }
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* ===================================================================
   WooCommerce component overrides (kept from v0.1 for archive/single)
   =================================================================== */


/* ---- WooCommerce: buttons inherit brand button styling ---- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.wc-block-components-button:not(.is-link) {
  background: var(--wp--preset--color--blue);
  color: #fff;
  border-radius: var(--wp--custom--radius, 6px);
  font-weight: 600;
  transition: transform .18s cubic-bezier(0.16,1,0.3,1), background .18s ease;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.wc-block-components-button:not(.is-link):hover {
  background: var(--wp--preset--color--blue-dark);
  transform: translateY(-1px);
}

.woocommerce a.button.alt,
.woocommerce button.button.alt {
  background: var(--wp--preset--color--slate);
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover {
  background: var(--wp--preset--color--ink);
}

/* ---- Sale / price accents ---- */
.woocommerce span.onsale {
  background: var(--wp--preset--color--yellow);
  color: var(--wp--preset--color--ink);
  font-weight: 700;
  border-radius: 999px;
}
.woocommerce .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  color: var(--wp--preset--color--ink);
  font-weight: 700;
}

/* ---- Product cards: subtle lift ---- */
.woocommerce ul.products li.product {
  transition: transform .2s cubic-bezier(0.16,1,0.3,1), box-shadow .2s ease;
}
.woocommerce ul.products li.product:hover {
  transform: translateY(-3px);
}

/* ---- Notices: brand-aligned ---- */
.woocommerce-message,
.woocommerce-info {
  border-top-color: var(--wp--preset--color--blue);
}
.woocommerce-error {
  border-top-color: var(--wp--preset--color--red);
}

/* ---- Focus ring for accessibility ---- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--wp--preset--color--blue) 55%, transparent);
  outline-offset: 2px;
}

/* =====================================================================
   Header
   ===================================================================== */
/* Main bar: title | nav (flex center) | actions (right), single row on desktop */
.site-header .main-bar > .wp-block-group {
  display: flex !important; flex-wrap: nowrap !important; align-items: center; gap: 1.5rem;
}
.site-header .main-bar .wp-block-site-title { flex: 0 0 auto; margin: 0; }
.site-header .main-bar .primary-nav { flex: 1 1 auto; }
.site-header .main-bar .header-actions { flex: 0 0 auto; margin-left: auto; align-items: center; }
@media (max-width: 781px) {
  .site-header .main-bar > .wp-block-group { flex-wrap: wrap; }
}
/* Util strip: force a single right-aligned row */
.site-header .util-strip > .wp-block-group {
  display: flex; flex-direction: row; flex-wrap: wrap;
  justify-content: flex-end; align-items: center; gap: 1.5rem;
}
.site-header .util-strip p { margin: 0; }
/* Primary nav: real spacing between items */
.site-header .primary-nav.wp-block-navigation { gap: 1.5rem; }
.site-header .primary-nav .wp-block-navigation__container { gap: 1.5rem; }
.site-header .primary-nav .wp-block-navigation-item { margin: 0; }
.site-header .util-strip a { color: var(--wp--preset--color--on-dark); text-decoration: none; }
.site-header .util-strip a:hover { text-decoration: underline; }
.site-header .primary-nav a { color: var(--wp--preset--color--ink); text-decoration: none; }
.site-header .primary-nav a:hover { color: var(--wp--preset--color--blue); }
.site-header .header-actions .hdr-link { margin: 0; }
.site-header .header-actions .hdr-link a { color: var(--wp--preset--color--ink); text-decoration: none; font-weight: 600; }
.site-header .header-actions .hdr-link a:hover { color: var(--wp--preset--color--blue); }
.site-header .header-actions .hdr-basket a {
  display: inline-block;
  background: var(--wp--preset--color--blue);
  color: #fff;
  padding: 0.5rem 1rem;
  border-radius: 999px;
}
.site-header .header-actions .hdr-basket a:hover { background: var(--wp--preset--color--blue-dark); color: #fff; }

/* Never let a stray block SVG icon blow up to full width */
.site-header svg { max-width: 24px; max-height: 24px; height: auto; }

/* Footer link lists */
footer .footer-links { list-style: none; padding-left: 0; margin: 0; display: flex; flex-direction: column; gap: 0.5rem; }
footer .footer-links a { color: #c9d0da; text-decoration: none; }
footer .footer-links a:hover { color: #fff; }

/* =====================================================================
   WooCommerce — product grid + cards
   ===================================================================== */
.woocommerce ul.products,
ul.products.columns-3,
ul.products.columns-4 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
@media (min-width: 700px) { .woocommerce ul.products { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1000px) { .woocommerce ul.products { grid-template-columns: repeat(4, 1fr); } }

.woocommerce ul.products li.product {
  position: relative;
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--wp--preset--color--line);
  border-radius: var(--wp--custom--radius, 6px);
  padding: 1rem;
  margin: 0 !important;
  width: auto !important;
  float: none !important;
  text-align: left;
  box-shadow: 0 1px 2px rgba(29,40,56,.05);
  transition: transform .2s cubic-bezier(0.16,1,0.3,1), box-shadow .2s ease, border-color .2s ease;
}
.woocommerce ul.products li.product:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 34px rgba(29,40,56,.13);
  border-color: color-mix(in srgb, var(--wp--preset--color--blue) 40%, var(--wp--preset--color--line));
}
.woocommerce ul.products li.product a img {
  width: 100%;
  height: 190px;
  object-fit: contain;
  margin-bottom: 0.85rem;
  background: var(--wp--preset--color--paper);
  border-radius: 4px;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--wp--preset--color--ink);
  padding: 0 0 0.4rem;
}
.woocommerce ul.products li.product .price {
  color: var(--wp--preset--color--ink);
  font-weight: 700;
  font-size: 1.05rem;
  margin-top: auto;
}
.woocommerce ul.products li.product .price del { color: var(--wp--preset--color--muted); font-weight: 400; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart {
  margin-top: 0.75rem;
  display: inline-block;
  text-align: center;
  border-radius: var(--wp--custom--radius, 6px);
}
.woocommerce ul.products li.product .onsale {
  position: absolute; top: 0.75rem; right: 0.75rem; margin: 0;
  min-height: auto; min-width: auto; line-height: 1; padding: 0.35rem 0.6rem;
}

/* Shop toolbar (result count + ordering from legacy template) */
.woocommerce .woocommerce-result-count { color: var(--wp--preset--color--muted); font-size: 0.9rem; }
.woocommerce .woocommerce-ordering { margin-bottom: 1.5rem; }
.woocommerce-breadcrumb { color: var(--wp--preset--color--muted); font-size: 0.9rem; }
.woocommerce-breadcrumb a { color: var(--wp--preset--color--blue); text-decoration: none; }

/* Pagination */
.woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; gap: 0.4rem; justify-content: center; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  border: 1px solid var(--wp--preset--color--line); border-radius: 6px; padding: 0.4rem 0.75rem;
}
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--wp--preset--color--blue); color: #fff; border-color: var(--wp--preset--color--blue); }

/* =====================================================================
   WooCommerce — single product
   ===================================================================== */
.woocommerce div.product { display: grid; grid-template-columns: 1fr; gap: 2rem; }
@media (min-width: 850px) { .woocommerce div.product { grid-template-columns: 1fr 1fr; align-items: start; } }
.woocommerce div.product .woocommerce-product-gallery { margin: 0; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--wp--preset--color--ink); font-size: 1.5rem; }
.woocommerce div.product .woocommerce-tabs { grid-column: 1 / -1; }

/* Add-to-cart: force brand colours + full-width primary CTA (was rendering empty) */
.woocommerce div.product form.cart .button,
.woocommerce div.product .single_add_to_cart_button {
  background: var(--wp--preset--color--blue) !important;
  color: #fff !important;
  border: 0 !important;
  padding: 0.9rem 2rem !important;
  font-size: 1rem;
  font-weight: 600;
  width: 100%;
  max-width: 340px;
  cursor: pointer;
}
.woocommerce div.product form.cart .button:hover,
.woocommerce div.product .single_add_to_cart_button:hover {
  background: var(--wp--preset--color--blue-dark) !important;
}
.woocommerce div.product form.cart { display: flex; gap: 0.75rem; align-items: stretch; flex-wrap: wrap; }
.woocommerce div.product form.cart .quantity input.qty {
  width: 72px; padding: 0.6rem; border: 1px solid var(--wp--preset--color--line); border-radius: var(--wp--custom--radius,6px);
}
.woocommerce div.product .woocommerce-tabs ul.tabs { list-style: none; margin: 0 0 1rem; padding: 0; display: flex; gap: 0.5rem; border-bottom: 1px solid var(--wp--preset--color--line); }
.woocommerce div.product .woocommerce-tabs ul.tabs li { border: 0; background: none; margin: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 0.6rem 1rem; font-weight: 600; color: var(--wp--preset--color--muted); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--wp--preset--color--ink); border-bottom: 2px solid var(--wp--preset--color--blue); }

/* ===== Dynamic mega-menu children ===== */
.mega-inner.single{grid-template-columns:1fr 300px}
.mega-childlist{list-style:none;margin:0;padding:0;column-count:3;column-gap:26px}
.mega-childlist li{break-inside:avoid;margin:0 0 2px}
.mega-childlist a{display:flex;justify-content:space-between;gap:.5rem;color:var(--slate);font-size:.9rem;font-weight:500;padding:.4rem .5rem;border-radius:var(--radius);text-decoration:none}
.mega-childlist a:hover{background:var(--blue-wash);color:var(--blue-dark)}
.mega-childlist a .c{color:var(--muted);font-size:.78rem;font-variant-numeric:tabular-nums}
.mega-colhead{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:700;margin:0 0 .9rem}
@media(max-width:1024px){.mega-inner.single{grid-template-columns:1fr 240px}.mega-childlist{column-count:2}}

/* ===================================================================
   PRODUCT ARCHIVE (category / shop / search)
   =================================================================== */
.arch-head{background:radial-gradient(120% 100% at 90% -20%,var(--blue-wash),transparent 60%),linear-gradient(180deg,#fff,#fbfcfe);border-bottom:1px solid var(--line);position:relative;overflow:hidden}
.arch-head::before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);background-size:32px 32px;-webkit-mask-image:radial-gradient(120% 90% at 85% 0%,#000,transparent 70%);mask-image:radial-gradient(120% 90% at 85% 0%,#000,transparent 70%);opacity:.6}
.arch-head .wrap{position:relative;padding-block:22px 26px}
.breadcrumbs{font-size:.82rem;color:var(--muted);margin-bottom:1rem;display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.breadcrumbs a{color:var(--muted);text-decoration:none}
.breadcrumbs a:hover{color:var(--blue)}
.breadcrumbs .sep{color:var(--line)}
.breadcrumbs [aria-current]{color:var(--ink);font-weight:600}
.arch-head-inner{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap}
.arch-intro{max-width:62ch}
.arch-intro h1{font-size:clamp(1.9rem,4vw,2.8rem);font-weight:800;letter-spacing:-.02em;margin:.5rem 0 0}
.arch-desc{color:var(--slate);margin-top:.7rem;font-size:.98rem}
.arch-desc p{margin:0 0 .5rem}
.arch-meta{text-align:right;flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:.2rem}
.arch-meta .arch-count{font-size:2rem;font-weight:800;color:var(--blue-dark);line-height:1;font-variant-numeric:tabular-nums}
.arch-meta .arch-count-l{font-size:.82rem;color:var(--muted);font-weight:600}
.arch-meta .chip{margin-top:.5rem}
.subcat-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.3rem}
.subcat-chip{display:inline-flex;align-items:center;gap:.4rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius-pill);padding:.45rem .9rem;font-size:.85rem;font-weight:600;color:var(--slate);transition:transform .16s var(--ease),border-color .16s,color .16s}
.subcat-chip:hover{border-color:var(--blue);color:var(--blue-dark);transform:translateY(-1px)}
.subcat-chip .num{color:var(--muted);font-size:.75rem;font-weight:600}
.sortwrap{display:inline-flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--muted);font-weight:600}
.fgroup-apply{padding-top:14px}
.pill-clear{background:none;border:0;color:var(--muted);font-weight:600}
.pill-clear:hover{color:var(--red)}
.empty-state{text-align:center;padding:64px 20px;color:var(--muted);grid-column:1/-1}
.empty-state svg{width:44px;height:44px;stroke:var(--line);fill:none;stroke-width:1.5;display:block;margin:0 auto 1rem}
.empty-state h3{color:var(--ink);margin-bottom:.4rem}
.empty-state .btn{margin-top:1.2rem}
.spode-pagination{margin-top:32px;display:flex;justify-content:center}
.spode-pagination ul{list-style:none;display:flex;gap:.4rem;padding:0;margin:0;flex-wrap:wrap}
.spode-pagination a,.spode-pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 .6rem;border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);text-decoration:none;font-weight:600;font-size:.9rem;background:#fff;font-variant-numeric:tabular-nums}
.spode-pagination a:hover{border-color:var(--blue);color:var(--blue-dark)}
.spode-pagination .current{background:var(--blue);color:#fff;border-color:var(--blue)}
.spode-pagination .dots{border:0;background:none;min-width:auto}
@media(max-width:860px){.arch-head-inner{align-items:flex-start}.arch-meta{text-align:left;align-items:flex-start}}

/* ===================================================================
   SINGLE PRODUCT
   =================================================================== */
.sp-head .wrap{padding-block:16px 0}
.sp-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px;padding-block:26px 40px;align-items:start}
@media(min-width:1000px){.sp-grid{grid-template-columns:1.05fr .95fr}.sp-gallery{position:sticky;top:130px}}
.woocommerce-product-gallery{position:relative}
.woocommerce-product-gallery .flex-viewport,.woocommerce-product-gallery>.woocommerce-product-gallery__image,.woocommerce-product-gallery__wrapper{border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;background:var(--paper)}
.woocommerce-product-gallery img{border-radius:var(--radius-lg)}
.woocommerce-product-gallery .flex-control-thumbs{display:flex;gap:10px;list-style:none;margin:12px 0 0;padding:0;flex-wrap:wrap}
.woocommerce-product-gallery .flex-control-thumbs li{width:72px}
.woocommerce-product-gallery .flex-control-thumbs img{border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;opacity:.65}
.woocommerce-product-gallery .flex-control-thumbs img.flex-active,.woocommerce-product-gallery .flex-control-thumbs img:hover{opacity:1;border-color:var(--blue)}
.woocommerce-product-gallery__trigger{position:absolute;top:12px;right:12px;z-index:2;background:#fff;border:1px solid var(--line);border-radius:50%;width:40px;height:40px;display:grid;place-items:center}
.sp-summary .eyebrow a{color:var(--blue)}
.sp-summary .product_title{font-size:clamp(1.5rem,3vw,2.1rem);font-weight:800;letter-spacing:-.02em;margin:.5rem 0 0;line-height:1.18}
.sp-rating{margin-top:.4rem}
.sp-price{margin:.9rem 0}
.sp-price .price,.sp-price .amount,.sp-price ins .amount{font-size:1.9rem;font-weight:800;color:var(--ink)}
.sp-price del,.sp-price del .amount{color:var(--muted);font-weight:500;font-size:1.1rem;margin-right:.4rem}
.sp-price ins{text-decoration:none}
.sp-price .woocommerce-price-suffix{font-size:.8rem;color:var(--muted);font-weight:500}
.sp-excerpt{color:var(--slate);font-size:.98rem;line-height:1.7;margin-bottom:1.3rem}
.sp-excerpt ul{padding-left:1.1rem;margin:.5rem 0}
.sp-excerpt li{margin:.25rem 0}
.sp-buybox{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:20px;margin-bottom:1.2rem}
.sp-buybox form.cart{margin:0;display:flex;flex-wrap:wrap;gap:12px;align-items:stretch}
.sp-buybox .quantity input.qty{width:80px;height:52px;border:1px solid var(--line);border-radius:var(--radius);padding:0 .6rem;font-size:1rem;text-align:center}
.sp-buybox .single_add_to_cart_button,.sp-buybox button.button{flex:1;min-width:190px;height:52px;background:var(--blue)!important;color:#fff!important;border:0!important;border-radius:var(--radius)!important;font-weight:700;font-size:1.05rem;cursor:pointer;transition:transform .18s cubic-bezier(.16,1,.3,1),background .18s}
.sp-buybox .single_add_to_cart_button:hover,.sp-buybox button.button:hover{background:var(--blue-dark)!important;transform:translateY(-1px)}
.sp-buybox .variations{width:100%;border-collapse:collapse;margin-bottom:2px;display:block;position:relative}
.sp-buybox .variations tbody{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px 12px}
.sp-buybox .variations tr{display:flex;flex-direction:column;gap:.3rem;margin:0;min-width:0}
.sp-buybox .variations th{text-align:left;font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:0}
.sp-buybox .variations th label{margin:0}
.sp-buybox .variations td{padding:0}
.sp-buybox .variations select{width:100%;height:46px;border:1px solid var(--line);border-radius:var(--radius);padding:0 2.1rem 0 .75rem;font-family:inherit;font-size:.95rem;font-weight:600;color:var(--ink);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%23667085' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right .8rem center;-webkit-appearance:none;appearance:none;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.sp-buybox .variations select:hover{border-color:var(--blue)}
.sp-buybox .variations select:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 3px rgba(2,119,189,.12)}
.sp-buybox .reset_variations{position:absolute;right:0;top:calc(100% + 3px);font-size:.75rem;font-weight:600;color:var(--muted);text-decoration:none;white-space:nowrap;line-height:1}
.sp-buybox .reset_variations:hover{color:var(--blue);text-decoration:underline}
.sp-buybox .single_variation_wrap{width:100%;border-top:1px solid var(--line);margin-top:14px;padding-top:14px}
.sp-buybox .single_variation{display:flex;align-items:baseline;gap:.7rem;flex-wrap:wrap;margin-bottom:.8rem}
.sp-buybox .single_variation:empty{display:none}
.sp-buybox .single_variation .price{font-size:1.55rem;font-weight:800;display:inline-flex;align-items:baseline;margin:0;color:var(--ink)}
.sp-buybox .woocommerce-variation-availability{font-size:.85rem;color:var(--green);font-weight:600;margin:0}
.sp-buybox .woocommerce-variation-availability p{margin:0}
.sp-buybox .woocommerce-variation-availability p.out-of-stock{color:var(--red)}
.sp-buybox .woocommerce-variation-description:empty{display:none}
.sp-buybox .single_variation .woocommerce-variation-description p{margin:0;font-size:.85rem;color:var(--muted)}
.sp-buybox .grouped_form{display:block}
.sp-buybox table.woocommerce-grouped-product-list{width:100%;border:0;margin-bottom:14px;display:block}
.sp-buybox .woocommerce-grouped-product-list tbody{display:flex;flex-direction:column;gap:8px}
.sp-buybox .woocommerce-grouped-product-list-item{display:flex!important;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px}
.sp-buybox .woocommerce-grouped-product-list-item td{padding:0;border:0;vertical-align:middle}
.sp-buybox .woocommerce-grouped-product-list-item__label{flex:1;font-weight:600;font-size:.92rem;order:2}
.sp-buybox .woocommerce-grouped-product-list-item__label a{color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:.6rem}
.sp-buybox .woocommerce-grouped-product-list-item__label a:hover{color:var(--blue)}
.sp-buybox .woocommerce-grouped-product-list-item__price{font-weight:700;color:var(--ink);white-space:nowrap;order:3;font-size:.92rem}
.sp-buybox .woocommerce-grouped-product-list-item__price del{color:var(--muted);font-weight:400}
.sp-buybox .woocommerce-grouped-product-list-item__quantity{flex:0 0 auto;order:1}
.sp-buybox .woocommerce-grouped-product-list-item__quantity .quantity input.qty{width:60px;height:40px}
.sp-swatch{width:20px;height:20px;border-radius:50%;border:1px solid rgba(0,0,0,.18);flex:0 0 auto;box-shadow:inset 0 0 0 2px #fff}
.sp-trust{list-style:none;padding:0;margin:0 0 1.2rem;display:flex;flex-direction:column;gap:.55rem}
.sp-trust li{display:flex;align-items:center;gap:.6rem;font-size:.88rem;color:var(--slate);font-weight:500}
.sp-trust li svg{width:20px;height:20px;stroke:var(--blue);fill:none;stroke-width:1.8;flex:0 0 auto}
.sp-trust li.ok{color:var(--ink);font-weight:600}
.sp-trust li.ok svg{stroke:var(--green)}
.sp-trust li.muted svg{stroke:var(--muted)}
.sp-secondary{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:1.2rem}
.sp-wa{display:inline-flex;align-items:center;gap:.5rem;color:#128C4B;font-weight:700;font-size:.9rem}
.sp-wa svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.7}
.sp-sep{color:var(--muted);font-size:.85rem}
.sp-bulk{font-weight:600;color:var(--blue);font-size:.9rem}
.sp-meta .product_meta{font-size:.82rem;color:var(--muted);display:flex;flex-direction:column;gap:.3rem}
.sp-meta .product_meta a{color:var(--blue)}
.sp-details{padding-block:24px 10px}
.woocommerce-tabs ul.tabs{list-style:none;margin:0 0 1.4rem;padding:0;display:flex;gap:.4rem;border-bottom:1px solid var(--line);flex-wrap:wrap}
.woocommerce-tabs ul.tabs li{margin:0}
.woocommerce-tabs ul.tabs li a{display:inline-block;padding:.7rem 1.1rem;font-weight:600;color:var(--muted);text-decoration:none;border-bottom:2px solid transparent}
.woocommerce-tabs ul.tabs li.active a{color:var(--ink);border-bottom-color:var(--blue)}
.woocommerce-tabs .panel{max-width:80ch}
.woocommerce-tabs .panel>h2:first-child{font-size:1.3rem;margin:0 0 .8rem}
.woocommerce-tabs table.shop_attributes{width:100%;border-collapse:collapse;font-size:.92rem}
.woocommerce-tabs table.shop_attributes th{text-align:left;padding:.6rem .8rem;background:var(--paper);border:1px solid var(--line);font-weight:700;width:32%}
.woocommerce-tabs table.shop_attributes td{padding:.6rem .8rem;border:1px solid var(--line)}
.sp-sticky{position:fixed;left:0;right:0;bottom:0;z-index:80;background:#fff;border-top:1px solid var(--line);box-shadow:0 -6px 20px rgba(16,30,54,.1);padding:10px 16px;display:none;align-items:center;justify-content:space-between;gap:12px}
.sp-sticky .ssp{font-weight:800;font-size:1.05rem;color:var(--ink)}
.sp-sticky .ssb{background:var(--blue);color:#fff;border:0;border-radius:var(--radius);padding:.8rem 1.4rem;font-weight:700;font-size:1rem;cursor:pointer}
.sp-sticky .ssb:hover{background:var(--blue-dark)}
@media(max-width:768px){.sp-grid{grid-template-columns:1fr;gap:24px;padding-block:18px 32px}.sp-sticky{display:flex}body.sp-has-sticky{padding-bottom:74px}}

/* Single-product fixes: force gallery visible (Woo opacity:0 fade can stick); grouped label flex for swatch. */
.woocommerce-product-gallery{opacity:1!important}
.sp-buybox .woocommerce-grouped-product-list-item__label label{display:flex;align-items:center;gap:.6rem;margin:0;cursor:pointer}

/* +/- quantity steppers (replace native number spinners) */
.sp-buybox input.qty::-webkit-outer-spin-button,.sp-buybox input.qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.sp-buybox input.qty{-moz-appearance:textfield;appearance:textfield}
.sp-qty{display:inline-flex!important;align-items:stretch;border:1px solid var(--line)!important;border-radius:var(--radius)!important;overflow:hidden;background:#fff;height:52px;width:auto!important}
.sp-qty input.qty{border:0!important;border-radius:0!important;width:48px!important;height:100%!important;padding:0!important;text-align:center;font-weight:600;background:transparent}
.sp-qty .qtybtn{border:0;background:var(--paper);color:var(--slate);width:42px;font-size:1.3rem;line-height:1;cursor:pointer;display:grid;place-items:center;user-select:none;transition:background .14s,color .14s;font-family:inherit}
.sp-qty .qtybtn:hover{background:var(--blue-wash);color:var(--blue-dark)}
.sp-qty .qtybtn:active{background:var(--blue);color:#fff}
.woocommerce-grouped-product-list-item .sp-qty{height:40px}
.woocommerce-grouped-product-list-item .sp-qty .qtybtn{width:34px;font-size:1.1rem}
.woocommerce-grouped-product-list-item .sp-qty input.qty{width:40px!important}

/* Grouped colour options: title spans full width, then quantity | price as two 50% columns */
.sp-buybox .woocommerce-grouped-product-list-item{display:grid!important;grid-template-columns:1fr 1fr;gap:.55rem 1rem;align-items:center;padding:14px 16px}
.sp-buybox .woocommerce-grouped-product-list-item__label{grid-column:1 / -1;grid-row:1;order:0;flex:none;padding-bottom:.65rem;border-bottom:1px solid var(--line-soft);font-size:.95rem}
.sp-buybox .woocommerce-grouped-product-list-item__quantity{grid-column:1;grid-row:2;order:0;justify-self:start}
.sp-buybox .woocommerce-grouped-product-list-item__price{grid-column:2;grid-row:2;order:0;justify-self:end;text-align:right;font-size:1.1rem}

/* ==========================================================================
   Checkout: delivery vs collection choice
   Makes the WooCommerce block checkout "Shipping / Collect from Spode" toggle
   the loudest thing on the page, and spotlights it until the customer picks.
   Class names below come from WooCommerce Blocks (checkout-shipping-method-block).
   ========================================================================== */

.wc-block-checkout__shipping-method{margin-block:8px 28px}

/* Heading we place above the two cards (rendered by checkout-fulfilment.js into
   the overlay, and by CSS here for the in-page state). */
.sp-fulfil-heading{font-size:1.15rem;font-weight:800;color:var(--ink);margin:0 0 4px}
.sp-fulfil-sub{font-size:.92rem;color:var(--muted);margin:0 0 14px}

/* The two options, as large side-by-side cards. */
.wc-block-checkout__shipping-method-container{
  display:grid!important;grid-template-columns:1fr 1fr;gap:14px;
  background:none!important;border:0!important;padding:0!important;
}
.wc-block-checkout__shipping-method-option{
  display:flex!important;flex-direction:column;align-items:flex-start;justify-content:flex-start;
  gap:2px;text-align:left;
  min-height:104px;padding:18px 18px 16px!important;
  background:#fff!important;border:2px solid var(--line)!important;
  border-radius:var(--radius-lg)!important;box-shadow:var(--shadow-sm);
  cursor:pointer;transition:border-color .16s var(--ease),background .16s var(--ease),box-shadow .16s var(--ease),transform .16s var(--ease);
}
.wc-block-checkout__shipping-method-option:hover{
  border-color:var(--blue-light)!important;background:var(--blue-wash)!important;
  box-shadow:var(--shadow-md);transform:translateY(-1px);
}
.wc-block-checkout__shipping-method-option:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.wc-block-checkout__shipping-method-option--selected{
  border-color:var(--blue)!important;background:var(--blue-wash)!important;
  box-shadow:0 0 0 3px rgba(0,123,196,.18),var(--shadow-sm);
}
.wc-block-checkout__shipping-method-option-title-wrapper{display:flex;align-items:center;gap:.5rem;width:100%}
.wc-block-checkout__shipping-method-option-title{font-size:1.05rem!important;font-weight:800!important;color:var(--ink)!important;line-height:1.25}
.wc-block-checkout__shipping-method-option-price{font-size:.95rem!important;font-weight:700!important;color:var(--blue-dark)!important}
.wc-block-checkout__shipping-method-option-icon{flex:0 0 auto;width:22px;height:22px;color:var(--blue)}

/* Supporting line under each card title. Set as a class by checkout-fulfilment.js
   (never by DOM position) so single-option carts cannot show the wrong copy. */
.wc-block-checkout__shipping-method-option.sp-opt--delivery::after,
.wc-block-checkout__shipping-method-option.sp-opt--collect::after{
  font-size:.88rem;line-height:1.4;color:var(--muted);font-weight:500;margin-top:2px;
}
.wc-block-checkout__shipping-method-option.sp-opt--delivery::after{content:"Courier delivery to your address. Enter your address to see the cost."}
.wc-block-checkout__shipping-method-option.sp-opt--collect::after{content:"Collect free from our Germiston warehouse. No delivery charge."}
.wc-block-checkout__shipping-method-option--selected.sp-opt--delivery::after,
.wc-block-checkout__shipping-method-option--selected.sp-opt--collect::after{color:var(--slate)}

/* Chosen-mode confirmation banner, so the choice stays visible further down the form. */
.sp-fulfil-confirm{
  display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;
  margin:14px 0 0;padding:12px 14px;border-radius:var(--radius);
  background:var(--green-soft);border:1px solid rgba(31,157,84,.28);
  font-size:.94rem;font-weight:600;color:#155f36;
}
.sp-fulfil-confirm .sp-fulfil-change{margin-left:auto;font-weight:700;color:var(--blue-dark);text-decoration:underline;cursor:pointer;background:none;border:0;font-size:.9rem;font-family:inherit}

/* --- Spotlight: dim the page and lift the choice until the customer picks --- */
.sp-fulfil-overlay{
  position:fixed;inset:0;z-index:9998;background:rgba(16,30,54,.55);
  opacity:0;transition:opacity .22s var(--ease);backdrop-filter:blur(1.5px);
}
.sp-fulfil-overlay.is-visible{opacity:1}
body.sp-fulfil-locked{overflow:hidden}

/* The real block is lifted above the dim, so the customer interacts with the
   genuine WooCommerce control rather than a copy of it. */
body.sp-fulfil-locked .wc-block-checkout__shipping-method{
  position:relative;z-index:9999;background:#fff;
  border-radius:var(--radius-lg);padding:22px 20px 20px;
  box-shadow:0 24px 70px rgba(16,30,54,.35);
}

.sp-fulfil-callout{
  position:fixed;z-index:10000;
  max-width:520px;padding:0 4px;
  font-size:1.02rem;font-weight:700;color:#fff;
  text-shadow:0 1px 12px rgba(16,30,54,.6);
  transition:opacity .22s var(--ease);pointer-events:none;
}
.sp-fulfil-callout span{display:block;font-size:.9rem;font-weight:500;opacity:.9;margin-top:2px}

@media(max-width:720px){
  .wc-block-checkout__shipping-method-container{grid-template-columns:1fr;gap:12px}
  .wc-block-checkout__shipping-method-option{min-height:0;padding:16px!important}
  body.sp-fulfil-locked .wc-block-checkout__shipping-method{padding:16px 14px 14px}
  .sp-fulfil-callout{max-width:none;left:14px!important;right:14px!important}
}

@media(prefers-reduced-motion:reduce){
  .wc-block-checkout__shipping-method-option,
  .sp-fulfil-overlay,.sp-fulfil-callout{transition:none}
  .wc-block-checkout__shipping-method-option:hover{transform:none}
}
