/* ============================================================
   Crate — Storefront design system
   Ink #14171F · Paper #EEF1EE · Marigold #E8A33D · Indigo #2A2F6D · Jade #1F7A5C
   Display: Fraunces · Body: Inter · Utility: IBM Plex Mono
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@500;600&display=swap');

:root{
  --ink:#14171F;
  --ink-soft:#2A2E38;
  --paper:#EEF1EE;
  --paper-raised:#FFFFFF;
  --line:#DCE0DA;
  --marigold:#E8A33D;
  --marigold-dark:#C9832199;
  --marigold-ink:#5A3B0E;
  --indigo:#2A2F6D;
  --indigo-soft:#EEF0FA;
  --jade:#1F7A5C;
  --jade-soft:#E7F5EF;
  --red:#B3402B;
  --red-soft:#FBEAE6;
  --text:#1B1D22;
  --text-mute:#5B5F6B;
  --radius-s:6px;
  --radius-m:12px;
  --radius-l:20px;
  --shadow-card: 0 1px 2px rgba(20,23,31,.06), 0 8px 24px rgba(20,23,31,.06);
  --shadow-pop: 0 12px 40px rgba(20,23,31,.18);
  --font-display:'Fraunces', Georgia, serif;
  --font-body:'Inter', -apple-system, Segoe UI, sans-serif;
  --font-mono:'IBM Plex Mono', ui-monospace, monospace;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--text);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  line-height:1.5;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none;margin:0;padding:0}
button{font-family:inherit;cursor:pointer}
input,select,textarea{font-family:inherit;font-size:1rem}
:focus-visible{outline:2.5px solid var(--indigo);outline-offset:2px}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;margin:0 0 .4em;letter-spacing:-.01em}
p{margin:0 0 1em}
.container{max-width:1280px;margin:0 auto;padding:0 24px}
@media (max-width:640px){.container{padding:0 16px}}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:13px 24px;border-radius:999px;border:1.5px solid transparent;
  font-weight:600;font-size:.95rem;transition:transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease;
  white-space:nowrap;
}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--marigold);color:var(--marigold-ink)}
.btn-primary:hover{background:#f0ae4b;box-shadow:0 6px 18px rgba(232,163,61,.35)}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:var(--ink-soft)}
.btn-outline{background:transparent;border-color:var(--ink);color:var(--ink)}
.btn-outline:hover{background:var(--ink);color:#fff}
.btn-outline-light{background:transparent;border-color:rgba(255,255,255,.4);color:#fff}
.btn-outline-light:hover{background:rgba(255,255,255,.12)}
.btn-ghost{background:transparent;color:var(--text)}
.btn-ghost:hover{background:rgba(20,23,31,.06)}
.btn-block{width:100%}
.btn-sm{padding:9px 16px;font-size:.85rem}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* ---------- Signature: price tag chip ---------- */
.price-tag{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--font-mono);font-weight:600;
  background:var(--ink);color:#fff;
  padding:6px 14px 6px 10px;
  border-radius:0 var(--radius-s) var(--radius-s) 0;
  position:relative;
}
.price-tag::before{
  content:'';position:absolute;left:-1px;top:50%;transform:translateY(-50%);
  width:9px;height:9px;border-radius:50%;background:var(--paper);
  box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.25);
}
.price-tag .price-cur{opacity:.65;font-size:.8em;margin-right:1px}
.price-tag.tag-sale{background:var(--marigold);color:var(--marigold-ink)}
.price-tag.tag-sale::before{background:var(--paper)}
.price-strike{
  font-family:var(--font-mono);color:var(--text-mute);text-decoration:line-through;
  font-size:.82em;margin-right:6px;
}

/* ---------- Badges / tags ---------- */
.badge{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:4px 9px;border-radius:5px}
.badge-sale{background:var(--red-soft);color:var(--red)}
.badge-new{background:var(--indigo-soft);color:var(--indigo)}
.badge-stock{background:var(--jade-soft);color:var(--jade)}
.badge-out{background:#eee;color:#888}

/* ============================================================
   Header
   ============================================================ */
.announce-bar{background:var(--ink);color:#fff;font-size:.82rem;text-align:center;padding:8px 12px;letter-spacing:.02em}
.announce-bar strong{color:var(--marigold)}

.site-header{background:var(--paper-raised);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.header-main{display:flex;align-items:center;gap:28px;padding:16px 24px}
.logo{display:flex;align-items:center;gap:9px;font-family:var(--font-display);font-weight:700;font-size:1.5rem;color:var(--ink);flex-shrink:0}
.logo-mark{width:34px;height:34px;background:var(--ink);border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--marigold)}
.logo-mark svg{width:19px;height:19px}
.logo small{display:block;font-family:var(--font-body);font-weight:500;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-mute)}

.search-form{flex:1;max-width:640px;position:relative}
.search-form input{
  width:100%;padding:12px 48px 12px 18px;border-radius:999px;border:1.5px solid var(--line);
  background:var(--paper);font-size:.92rem;transition:border-color .15s;
}
.search-form input:focus{border-color:var(--indigo);background:#fff}
.search-form button{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:50%;background:var(--ink);border:none;display:flex;align-items:center;justify-content:center}
.search-form button svg{width:16px;height:16px;stroke:#fff}
.search-suggest{position:absolute;top:calc(100% + 8px);left:0;right:0;background:#fff;border-radius:var(--radius-m);box-shadow:var(--shadow-pop);border:1px solid var(--line);overflow:hidden;z-index:60;display:none}
.search-suggest.open{display:block}
.search-suggest a{display:flex;align-items:center;gap:12px;padding:10px 16px;font-size:.88rem;border-bottom:1px solid var(--line)}
.search-suggest a:last-child{border-bottom:none}
.search-suggest a:hover{background:var(--paper)}
.search-suggest img{width:34px;height:34px;object-fit:cover;border-radius:6px;background:var(--paper)}
.search-suggest .sg-price{margin-left:auto;font-family:var(--font-mono);font-size:.82rem;color:var(--text-mute)}

.header-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
.icon-link{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 12px;border-radius:var(--radius-s);color:var(--ink);font-size:.68rem;font-weight:600}
.icon-link:hover{background:var(--paper)}
.icon-link svg{width:22px;height:22px;stroke:var(--ink);fill:none;stroke-width:1.6}
.icon-link .count{position:absolute;top:2px;right:2px;background:var(--marigold);color:var(--marigold-ink);font-size:.62rem;font-weight:800;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center}

.nav-strip{border-top:1px solid var(--line)}
.nav-strip .container{display:flex;align-items:center;gap:2px;overflow-x:auto}
.nav-strip a{padding:12px 14px;font-size:.86rem;font-weight:600;color:var(--ink-soft);white-space:nowrap;border-bottom:2px solid transparent}
.nav-strip a:hover, .nav-strip a.active{color:var(--indigo);border-color:var(--marigold)}

.mobile-only{display:none}
@media (max-width:900px){
  .header-main{flex-wrap:wrap;padding:14px 16px}
  .search-form{order:3;max-width:none;flex-basis:100%}
  .mobile-only{display:flex}
  .nav-strip{display:none}
}

/* ============================================================
   Hero
   ============================================================ */
.hero{background:var(--ink);color:#fff;overflow:hidden;position:relative}
.hero.has-bg{background-size:cover;background-position:center;background-repeat:no-repeat}
.hero .container{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;padding-top:56px;padding-bottom:56px}
.hero.hero-full .container{grid-template-columns:1fr}
.hero.hero-full .hero-copy{max-width:760px}
.hero.hero-full h1{max-width:22ch}
.hero.hero-full p{max-width:58ch}
.hero-eyebrow{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--marigold);margin-bottom:16px;display:block}
.hero h1{font-size:clamp(2.2rem,4.2vw,3.6rem);line-height:1.05;color:#fff;max-width:14ch}
.hero h1 em{font-style:italic;color:var(--marigold)}
.hero p{color:rgba(255,255,255,.72);font-size:1.05rem;max-width:42ch}
.hero-ctas{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}
.hero-stats{display:flex;gap:28px;margin-top:40px;flex-wrap:wrap}
.hero-stats div b{display:block;font-family:var(--font-display);font-size:1.6rem;color:#fff}
.hero-stats div span{font-size:.78rem;color:rgba(255,255,255,.55)}
.hero-visual{position:relative}
.hero-visual .stage{background:linear-gradient(160deg,#1c2030,#0f1119);border-radius:var(--radius-l);padding:34px;position:relative}
.hero-visual img{border-radius:var(--radius-m);width:100%;aspect-ratio:1/1;object-fit:cover}
.hero-visual .float-tag{position:absolute;bottom:-18px;left:24px;background:#fff;color:var(--ink);border-radius:var(--radius-m);padding:12px 16px;box-shadow:var(--shadow-pop);display:flex;align-items:center;gap:10px}
.hero-visual .float-tag .price-tag{font-size:1.05rem}
@media (max-width:900px){.hero .container{grid-template-columns:1fr;padding-top:36px}
  .hero-visual{order:-1;max-width:320px;margin:0 auto}}

/* ============================================================
   Category strip
   ============================================================ */
.cat-strip{padding:52px 0 8px}
.section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:22px;gap:16px;flex-wrap:wrap}
.section-head h2{font-size:1.7rem;margin:0}
.section-head .eyebrow{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-mute);display:block;margin-bottom:4px}
.section-head a{font-size:.85rem;font-weight:700;color:var(--indigo)}
.cat-scroll{overflow:hidden;position:relative;margin:0 -4px}
.cat-scroll::before,.cat-scroll::after{content:'';position:absolute;top:0;bottom:0;width:70px;z-index:2;pointer-events:none}
.cat-scroll::before{left:0;background:linear-gradient(90deg,var(--paper),transparent)}
.cat-scroll::after{right:0;background:linear-gradient(-90deg,var(--paper),transparent)}
.cat-track{display:flex;gap:16px;width:max-content;animation:catScroll 34s linear infinite;padding:4px}
.cat-scroll:hover .cat-track{animation-play-state:paused}
@keyframes catScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.cat-track{animation:none}}
.cat-card{flex:0 0 168px;background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-m);padding:20px 16px;text-align:center;transition:transform .15s, box-shadow .15s}
.cat-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-card)}
.cat-card .ico{width:46px;height:46px;border-radius:50%;background:var(--indigo-soft);display:flex;align-items:center;justify-content:center;margin:0 auto 12px;overflow:hidden}
.cat-card .ico svg{width:22px;height:22px;stroke:var(--indigo);fill:none;stroke-width:1.6}
.cat-card .ico img{width:100%;height:100%;object-fit:cover}
.cat-card b{display:block;font-size:.88rem;font-weight:700}
.cat-card span{font-size:.74rem;color:var(--text-mute)}
@media (max-width:640px){.cat-card{flex-basis:140px}}
@media (max-width:900px){.cat-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:560px){.cat-grid{grid-template-columns:repeat(2,1fr)}}

/* ============================================================
   Product grid + cards
   ============================================================ */
.section{padding:52px 0}
.product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
@media (max-width:1100px){.product-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:760px){.product-grid{grid-template-columns:repeat(2,1fr);gap:12px}}

.product-card{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-m);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .15s, transform .15s;position:relative}
.product-card:hover{box-shadow:var(--shadow-card);transform:translateY(-2px)}
.product-card .thumb{position:relative;aspect-ratio:1/1;background:#F5F6F4;overflow:hidden}
.product-card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .35s}
.product-card:hover .thumb img{transform:scale(1.05)}
.product-card .thumb-badges{position:absolute;top:10px;left:10px;display:flex;flex-direction:column;gap:6px}
.wish-btn{position:absolute;top:10px;right:10px;width:34px;height:34px;border-radius:50%;background:#fff;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(0,0,0,.08)}
.wish-btn svg{width:17px;height:17px;stroke:var(--ink);fill:none;stroke-width:1.7}
.wish-btn.active svg{fill:var(--red);stroke:var(--red)}
.product-card .body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px;flex:1}
.product-card .cat-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-mute);font-weight:600}
.product-card h3{font-family:var(--font-body);font-size:.92rem;font-weight:600;margin:0;line-height:1.35}
.product-card h3 a{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.product-card .stars{display:inline-flex;gap:1px}
.product-card .star{width:13px;height:13px}
.star-full path{fill:var(--marigold)}
.star-empty path{fill:var(--line)}
.star-half .star-bg{fill:var(--line)}
.star-half path:last-child{fill:var(--marigold)}
.rating-count{font-size:.72rem;color:var(--text-mute);margin-left:4px}
.product-card .price-row{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:6px}
.product-card .add-btn{width:38px;height:38px;border-radius:50%;background:var(--ink);border:none;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}
.product-card .add-btn:hover{background:var(--indigo)}
.product-card .add-btn svg{width:17px;height:17px;stroke:#fff;fill:none;stroke-width:2}

.tabs-filter{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}
.tab-pill{padding:9px 18px;border-radius:999px;border:1.5px solid var(--line);font-size:.85rem;font-weight:600;background:#fff}
.tab-pill.active,.tab-pill:hover{border-color:var(--ink);background:var(--ink);color:#fff}

/* ---------- Promo band ---------- */
.promo-band{background:var(--indigo);border-radius:var(--radius-l);color:#fff;padding:44px;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center}
.promo-band h2{color:#fff;font-size:1.9rem;max-width:16ch;margin-bottom:8px}
.promo-band p{color:rgba(255,255,255,.75);margin:0}
@media (max-width:700px){.promo-band{grid-template-columns:1fr;text-align:left}}

.trust-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding:36px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.trust-item{display:flex;gap:12px;align-items:flex-start}
.trust-item .ico{width:38px;height:38px;border-radius:50%;background:var(--jade-soft);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.trust-item .ico svg{width:18px;height:18px;stroke:var(--jade);fill:none;stroke-width:1.7}
.trust-item b{display:block;font-size:.87rem}
.trust-item span{font-size:.78rem;color:var(--text-mute)}
@media (max-width:800px){.trust-strip{grid-template-columns:repeat(2,1fr)}}

/* ============================================================
   Breadcrumb / page header
   ============================================================ */
.breadcrumb{font-size:.82rem;color:var(--text-mute);padding:18px 0}
.breadcrumb a:hover{color:var(--indigo)}
.breadcrumb span{margin:0 6px}
.page-title-bar{padding:8px 0 28px}
.page-title-bar h1{font-size:2rem}
.page-title-bar p{color:var(--text-mute)}

/* ============================================================
   Shop layout (sidebar + grid)
   ============================================================ */
.shop-layout{display:grid;grid-template-columns:250px 1fr;gap:32px;align-items:start}
.shop-sidebar{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-m);padding:22px;position:sticky;top:96px}
.filter-block + .filter-block{margin-top:22px;padding-top:22px;border-top:1px solid var(--line)}
.filter-block h4{font-size:.82rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:12px}
.filter-block label{display:flex;align-items:center;gap:9px;font-size:.87rem;padding:5px 0;cursor:pointer;color:var(--ink-soft)}
.filter-block input[type=checkbox],.filter-block input[type=radio]{accent-color:var(--indigo);width:15px;height:15px}
.price-range-inputs{display:flex;gap:8px;align-items:center}
.price-range-inputs input{width:100%;padding:8px 10px;border:1.5px solid var(--line);border-radius:var(--radius-s)}
.shop-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:12px;flex-wrap:wrap}
.shop-toolbar select{padding:9px 14px;border-radius:var(--radius-s);border:1.5px solid var(--line);background:#fff}
.result-count{font-size:.87rem;color:var(--text-mute)}
@media (max-width:860px){.shop-layout{grid-template-columns:1fr}.shop-sidebar{position:static}}

/* ============================================================
   Product detail
   ============================================================ */
.pdp{display:grid;grid-template-columns:.9fr 1fr;gap:48px;align-items:flex-start}
.pdp-gallery .main-image{background:#fff;border:1px solid var(--line);border-radius:var(--radius-l);overflow:hidden;aspect-ratio:1/1}
.pdp-gallery .main-image img{width:100%;height:100%;object-fit:cover}
.pdp-thumbs{display:flex;gap:10px;margin-top:12px}
.pdp-thumbs img{width:72px;height:72px;object-fit:cover;border-radius:var(--radius-s);border:1.5px solid var(--line);cursor:pointer}
.pdp-thumbs img.active{border-color:var(--ink)}
.pdp-info .cat-label a{color:var(--indigo);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}
.pdp-info h1{font-size:1.9rem;margin:10px 0 12px}
.pdp-rating-row{display:flex;align-items:center;gap:10px;margin-bottom:18px}
.pdp-price-block{display:flex;align-items:center;gap:14px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:18px 0}
.pdp-price-block .price-tag{font-size:1.35rem;padding:10px 18px 10px 12px}
.pdp-desc{color:var(--text-mute);margin-bottom:20px}
.stock-line{display:flex;align-items:center;gap:8px;font-size:.86rem;font-weight:600;margin-bottom:18px}
.stock-dot{width:8px;height:8px;border-radius:50%;background:var(--jade)}
.stock-line.out .stock-dot{background:var(--red)}
.qty-selector{display:flex;align-items:center;border:1.5px solid var(--line);border-radius:999px;width:fit-content}
.qty-selector button{width:38px;height:38px;background:none;border:none;font-size:1.1rem;font-weight:700}
.qty-selector input{width:44px;text-align:center;border:none;background:none;font-weight:700}
.pdp-actions{display:flex;gap:12px;margin-top:22px;align-items:center;flex-wrap:wrap}
.pdp-meta{margin-top:26px;font-size:.85rem;color:var(--text-mute)}
.pdp-meta div{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line)}
@media (max-width:900px){.pdp{grid-template-columns:1fr;gap:28px}}

.pdp-tabs{margin-top:56px}
.pdp-tabs .tab-nav{display:flex;gap:6px;border-bottom:1.5px solid var(--line);margin-bottom:26px}
.pdp-tabs .tab-nav button{background:none;border:none;padding:13px 20px;font-weight:700;font-size:.92rem;color:var(--text-mute);border-bottom:2.5px solid transparent;margin-bottom:-1.5px}
.pdp-tabs .tab-nav button.active{color:var(--ink);border-color:var(--marigold)}
.tab-panel{display:none}
.tab-panel.active{display:block}

.review-summary{display:flex;gap:36px;padding:24px;background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-m);margin-bottom:28px;flex-wrap:wrap}
.review-summary .big-score{font-family:var(--font-display);font-size:3rem;line-height:1}
.review-item{padding:20px 0;border-bottom:1px solid var(--line)}
.review-item .rev-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.review-item .avatar{width:34px;height:34px;border-radius:50%;background:var(--indigo-soft);color:var(--indigo);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem}
.review-item b{font-size:.9rem}
.review-item .rev-date{font-size:.78rem;color:var(--text-mute);margin-left:auto}

/* ============================================================
   Cart & checkout
   ============================================================ */
.cart-layout{display:grid;grid-template-columns:1fr 360px;gap:32px;align-items:flex-start}
.cart-line{display:grid;grid-template-columns:80px 1fr auto auto;gap:16px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}
.cart-line img{width:80px;height:80px;object-fit:cover;border-radius:var(--radius-s);background:#fff;border:1px solid var(--line)}
.cart-line h4{font-size:.92rem;margin:0 0 6px}
.cart-line .remove-link{font-size:.8rem;color:var(--red);font-weight:600}
.summary-card{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-m);padding:24px;position:sticky;top:96px}
.summary-card h3{font-size:1.1rem}
.summary-row{display:flex;justify-content:space-between;padding:9px 0;font-size:.9rem;color:var(--text-mute)}
.summary-row.total{border-top:1px solid var(--line);margin-top:8px;padding-top:14px;font-weight:700;color:var(--ink);font-size:1.05rem}
.coupon-row{display:flex;gap:8px;margin:16px 0}
.coupon-row input{flex:1;padding:11px 14px;border-radius:var(--radius-s);border:1.5px solid var(--line)}
.empty-state{text-align:center;padding:80px 20px}
.empty-state .ico{width:76px;height:76px;border-radius:50%;background:var(--indigo-soft);display:flex;align-items:center;justify-content:center;margin:0 auto 22px}
.empty-state .ico svg{width:34px;height:34px;stroke:var(--indigo);fill:none;stroke-width:1.5}
@media (max-width:860px){.cart-layout{grid-template-columns:1fr}.summary-card{position:static}}

.checkout-layout{display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:flex-start}
.form-card{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-m);padding:26px}
.form-card + .form-card{margin-top:20px}
.form-card h3{font-size:1.05rem;display:flex;align-items:center;gap:10px}
.step-num{width:26px;height:26px;border-radius:50%;background:var(--ink);color:#fff;font-size:.78rem;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}
.form-grid .full{grid-column:1/-1}
.field label{display:block;font-size:.82rem;font-weight:600;margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;padding:11px 14px;border-radius:var(--radius-s);border:1.5px solid var(--line);background:#fff}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--indigo)}
.pay-option{display:flex;align-items:flex-start;gap:12px;padding:14px;border:1.5px solid var(--line);border-radius:var(--radius-s);margin-bottom:10px;cursor:pointer}
.pay-option.selected{border-color:var(--indigo);background:var(--indigo-soft)}
.pay-option input{margin-top:3px;accent-color:var(--indigo)}
.pay-option b{display:block;font-size:.9rem}
.pay-option span{font-size:.8rem;color:var(--text-mute)}
@media (max-width:900px){.checkout-layout{grid-template-columns:1fr}}

/* ============================================================
   Auth pages
   ============================================================ */
.auth-wrap{min-height:calc(100vh - 300px);display:flex;align-items:center;justify-content:center;padding:60px 16px}
.auth-card{width:100%;max-width:440px;background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-l);padding:40px}
.auth-card h1{font-size:1.6rem}
.auth-card .sub{color:var(--text-mute);margin-bottom:26px}
.auth-card .field{margin-bottom:16px}
.auth-foot{text-align:center;margin-top:20px;font-size:.88rem;color:var(--text-mute)}
.auth-foot a{color:var(--indigo);font-weight:700}

/* ============================================================
   Account dashboard
   ============================================================ */
.account-layout{display:grid;grid-template-columns:230px 1fr;gap:32px;align-items:flex-start}
.account-nav{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-m);padding:10px;position:sticky;top:96px}
.account-nav a{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:var(--radius-s);font-size:.9rem;font-weight:600;color:var(--ink-soft)}
.account-nav a.active,.account-nav a:hover{background:var(--paper)}
.account-nav a svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.7}
.stat-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:28px}
.stat-card{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-m);padding:20px}
.stat-card b{font-family:var(--font-display);font-size:1.7rem;display:block}
.stat-card span{font-size:.8rem;color:var(--text-mute)}
.order-row{display:grid;grid-template-columns:100px 1fr auto auto;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}
@media (max-width:800px){.account-layout{grid-template-columns:1fr}.account-nav{position:static;display:flex;overflow-x:auto}.stat-cards{grid-template-columns:1fr}}

table.data-table{width:100%;border-collapse:collapse;font-size:.88rem}
table.data-table th{text-align:left;padding:12px 14px;background:var(--paper);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-mute)}
table.data-table td{padding:14px;border-bottom:1px solid var(--line)}
.status-pill{padding:4px 11px;border-radius:999px;font-size:.74rem;font-weight:700;text-transform:capitalize}
.status-pending{background:#FDF3E3;color:#96660F}
.status-processing{background:var(--indigo-soft);color:var(--indigo)}
.status-shipped{background:#E5EEFB;color:#1D5FAE}
.status-delivered{background:var(--jade-soft);color:var(--jade)}
.status-cancelled{background:var(--red-soft);color:var(--red)}

/* ============================================================
   Footer
   ============================================================ */
.newsletter-band{background:var(--marigold);padding:44px 0}
.newsletter-band .inner{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.newsletter-band h3{font-size:1.4rem;color:var(--marigold-ink);margin-bottom:4px}
.newsletter-band p{color:var(--marigold-ink);opacity:.8;margin:0}
.newsletter-form{display:flex;gap:8px}
.newsletter-form input{padding:12px 18px;border-radius:999px;border:none;min-width:260px}
.site-footer{background:var(--ink);color:rgba(255,255,255,.65);padding:56px 0 24px}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
.footer-grid h4{color:#fff;font-family:var(--font-body);font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:16px}
.footer-grid li{margin-bottom:10px;font-size:.87rem}
.footer-grid a:hover{color:#fff}
.footer-brand p{max-width:32ch;font-size:.87rem}
.footer-social{display:flex;gap:10px;margin-top:16px}
.footer-social a{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center}
.footer-social svg{width:16px;height:16px;stroke:#fff;fill:none;stroke-width:1.6}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:40px;padding-top:22px;display:flex;justify-content:space-between;font-size:.8rem;flex-wrap:wrap;gap:10px}
@media (max-width:800px){.footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:500px){.footer-grid{grid-template-columns:1fr}}

/* ---------- Toast ---------- */
.toast-wrap{position:fixed;bottom:24px;right:24px;z-index:200;display:flex;flex-direction:column;gap:10px}
.toast{background:var(--ink);color:#fff;padding:14px 18px;border-radius:var(--radius-s);box-shadow:var(--shadow-pop);font-size:.87rem;display:flex;align-items:center;gap:10px;animation:toastIn .25s ease}
.toast.success{background:var(--jade)}
.toast.error{background:var(--red)}
@keyframes toastIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

/* ---------- Alerts ---------- */
.alert{padding:14px 18px;border-radius:var(--radius-s);font-size:.88rem;margin-bottom:18px;display:flex;gap:10px;align-items:flex-start}
.alert-success{background:var(--jade-soft);color:var(--jade)}
.alert-error{background:var(--red-soft);color:var(--red)}
.alert-info{background:var(--indigo-soft);color:var(--indigo)}

/* ---------- misc ---------- */
.text-mute{color:var(--text-mute)}
.mono{font-family:var(--font-mono)}
.center{text-align:center}
.mt-0{margin-top:0}
.flex-between{display:flex;align-items:center;justify-content:space-between}
.skeleton{background:linear-gradient(90deg,#eee,#f5f5f5,#eee);background-size:200% 100%;animation:shimmer 1.2s infinite}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms !important;transition-duration:.001ms !important}}

/* ============================================================
   Account extras: avatar, tracker, history, addresses
   ============================================================ */
.avatar{width:34px;height:34px;border-radius:50%;background:var(--indigo-soft);color:var(--indigo);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;flex-shrink:0}
.avatar-lg{width:44px;height:44px;font-size:1rem}
.account-nav-user{display:flex;align-items:center;gap:10px;padding:10px 12px 16px;margin-bottom:6px;border-bottom:1px solid var(--line)}
.account-nav-user b{display:block;font-size:.88rem;line-height:1.3}
.account-nav-user span{font-size:.76rem;color:var(--text-mute);word-break:break-all}
.account-nav a.logout-link{color:var(--red);margin-top:6px}
.stat-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}

.order-tracker{display:flex;justify-content:space-between;position:relative}
.order-tracker::before{content:'';position:absolute;top:6px;left:6%;right:6%;height:2px;background:var(--line);z-index:0}
.tracker-step{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:8px;flex:1;text-align:center}
.tracker-step .dot{width:14px;height:14px;border-radius:50%;background:var(--paper-raised);border:2px solid var(--line)}
.tracker-step b{font-size:.78rem;color:var(--text-mute);font-weight:600}
.tracker-step.done .dot{background:var(--jade);border-color:var(--jade)}
.tracker-step.done b{color:var(--ink)}
.history-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:.85rem}
.history-row:last-child{border-bottom:none}

.contact-layout{display:grid;grid-template-columns:1.3fr 1fr;gap:28px;align-items:start;padding-bottom:60px}
.contact-detail-row{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px}
.contact-detail-row .ico{width:38px;height:38px;border-radius:50%;background:var(--indigo-soft);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.contact-detail-row .ico svg{width:17px;height:17px;stroke:var(--indigo);fill:none;stroke-width:1.6}
.contact-detail-row b{display:block;font-size:.85rem}
.contact-detail-row span{font-size:.85rem;color:var(--text-mute)}

.faq-layout{display:grid;grid-template-columns:1.6fr 1fr;gap:28px;align-items:start;padding-bottom:60px}
.faq-block{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-m);padding:22px 24px;margin-bottom:18px}
.faq-block h3{font-size:1.1rem;margin-bottom:10px}
.faq-block details{border-top:1px solid var(--line);padding:12px 0}
.faq-block details:first-of-type{border-top:none}
.faq-block summary{cursor:pointer;font-weight:600;font-size:.92rem;list-style:none;display:flex;justify-content:space-between;align-items:center}
.faq-block summary::after{content:'+';font-size:1.2rem;color:var(--text-mute)}
.faq-block details[open] summary::after{content:'\2212'}
.faq-block p{margin:10px 0 0;color:var(--text-mute);font-size:.88rem;line-height:1.6}

.about-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.page-hero{background:var(--ink);color:#fff;padding:64px 0 56px;text-align:center}
.page-hero .hero-eyebrow{color:var(--marigold)}
.page-hero h1{color:#fff;font-size:2.3rem;max-width:26ch;margin:14px auto}
.page-hero h1 em{color:var(--marigold);font-style:normal}
.page-hero .lead{color:rgba(255,255,255,.72);max-width:56ch;margin:0 auto;font-size:1.02rem}
.promo-band{background:var(--indigo);color:#fff;border-radius:var(--radius-l);padding:40px 44px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:60px}
.promo-band h2{color:#fff;font-size:1.5rem;margin-bottom:4px}
.promo-band p{color:rgba(255,255,255,.75);margin:0}

.address-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}
.address-card{position:relative}
.address-card b{font-size:.95rem}
.address-card p{font-size:.86rem;color:var(--text-mute);line-height:1.6}

.confirm-wrap{max-width:640px;margin:0 auto;text-align:center;padding:56px 0 70px}
.confirm-check{width:64px;height:64px;border-radius:50%;background:var(--jade-soft);display:flex;align-items:center;justify-content:center;margin:0 auto 18px}
.confirm-check svg{width:30px;height:30px;stroke:var(--jade);fill:none}
.order-number-chip{display:inline-block;font-family:var(--font-mono);font-weight:700;background:var(--ink);color:#fff;padding:8px 18px;border-radius:999px;margin-top:8px;letter-spacing:.02em}
.confirm-summary{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:32px;text-align:left}
.summary-row{display:flex;justify-content:space-between;padding:8px 0;font-size:.88rem;border-bottom:1px solid var(--line)}
.summary-row.total{border-bottom:none;border-top:2px solid var(--ink);margin-top:6px;padding-top:12px;font-weight:700;font-size:1rem}
@media (max-width:760px){.contact-layout,.faq-layout,.confirm-summary{grid-template-columns:1fr}.about-grid{grid-template-columns:1fr}}

.btn-sm{padding:8px 16px;font-size:.8rem}
.btn-ghost{background:transparent;color:var(--red)}
.btn-block{width:100%;display:flex;justify-content:center}

/* ---------- Pagination ---------- */
.pagination{display:flex;justify-content:center;align-items:center;gap:6px;margin:36px 0;flex-wrap:wrap}
.pagination .page-link{min-width:38px;height:38px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-s);border:1.5px solid var(--line);background:#fff;font-size:.85rem;font-weight:600;color:var(--ink)}
.pagination .page-link:hover{border-color:var(--ink)}
.pagination .page-link.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.pagination .page-dots{color:var(--text-mute);padding:0 4px}

/* ============================================================
   Colour themes — override the accent variables per palette.
   Semantic colours (jade=success, red=error) stay constant.
   ============================================================ */
html[data-theme="ocean"]{
  --ink:#0E1B26; --ink-soft:#1B3040;
  --marigold:#3BA7CF; --marigold-dark:#2C8CB199; --marigold-ink:#0C3245;
  --indigo:#123A5C; --indigo-soft:#E8F1F6;
}
html[data-theme="rose"]{
  --ink:#241318; --ink-soft:#3A222A;
  --marigold:#D07689; --marigold-dark:#B95E7199; --marigold-ink:#5C1F2B;
  --indigo:#7A2E43; --indigo-soft:#FBEEF1;
}
html[data-theme="forest"]{
  --ink:#101B15; --ink-soft:#1E3126;
  --marigold:#5FA37B; --marigold-dark:#4A8A6499; --marigold-ink:#173A28;
  --indigo:#1F4A38; --indigo-soft:#E9F4EE;
}
html[data-theme="slate"]{
  --ink:#1C1F26; --ink-soft:#2C3038;
  --marigold:#8A94A6; --marigold-dark:#6E7A8F99; --marigold-ink:#242833;
  --indigo:#33475B; --indigo-soft:#ECEFF3;
}

/* ============================================================
   Homepage layout: Spotlight
   ============================================================ */
.spotlight-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:20px;align-items:stretch}
.spotlight-main{display:block;border-radius:var(--radius-l);overflow:hidden;background:var(--paper-raised);border:1px solid var(--line);transition:box-shadow .15s}
.spotlight-main:hover{box-shadow:var(--shadow-card)}
.spotlight-main img{width:100%;aspect-ratio:16/11;object-fit:cover;display:block}
.spotlight-main .spotlight-info{padding:24px}
.spotlight-main .spotlight-info h3{font-family:var(--font-display);font-size:1.5rem;margin:8px 0 6px;color:var(--text)}
.spotlight-list{display:flex;flex-direction:column;gap:12px}
.spotlight-row{display:flex;gap:14px;align-items:center;background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-m);padding:12px;transition:box-shadow .15s;flex:1}
.spotlight-row:hover{box-shadow:var(--shadow-card)}
.spotlight-row img{width:60px;height:60px;border-radius:8px;object-fit:cover;flex-shrink:0}
.spotlight-row .info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.spotlight-row b{font-size:.85rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.spotlight-row .price{font-size:.85rem;font-weight:700;color:var(--ink)}

.deal-scroll{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 4px 14px}
.deal-scroll::-webkit-scrollbar{height:6px}
.deal-scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px}
.deal-scroll .product-card{scroll-snap-align:start;flex:0 0 240px}

.arrival-rows{display:flex;flex-direction:column;gap:10px}
.arrival-row{display:flex;align-items:center;gap:16px;background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-m);padding:12px 18px;transition:box-shadow .15s}
.arrival-row:hover{box-shadow:var(--shadow-card)}
.arrival-row img{width:52px;height:52px;border-radius:8px;object-fit:cover;flex-shrink:0}
.arrival-row .name{flex:1;font-weight:600;font-size:.9rem;color:var(--text)}
.arrival-row .price{font-size:.88rem;font-weight:700;min-width:80px;text-align:right}
@media (max-width:760px){
  .spotlight-grid{grid-template-columns:1fr}
  .arrival-row .btn{display:none}
}

/* ============================================================
   Homepage layout: Editorial
   ============================================================ */
.feature-block{display:flex;min-height:340px;border-radius:var(--radius-l);overflow:hidden;background:var(--paper-raised);border:1px solid var(--line);margin-bottom:22px}
.feature-block.reverse{flex-direction:row-reverse}
.feature-block img,.feature-block .fb-fallback{flex:1 1 46%;width:46%;object-fit:cover;display:block}
.feature-block .fb-fallback{display:flex;align-items:center;justify-content:center;background:var(--indigo-soft)}
.feature-block .fb-fallback svg{width:60px;height:60px;stroke:var(--indigo)}
.feature-block .fb-copy{flex:1 1 54%;padding:44px;display:flex;flex-direction:column;justify-content:center;gap:6px}
.feature-block .fb-copy h3{font-family:var(--font-display);font-size:2rem;margin:4px 0 10px;color:var(--text)}
.feature-block .fb-copy p{font-size:.95rem;line-height:1.6;max-width:42ch;margin-bottom:16px}
@media (max-width:760px){
  .feature-block,.feature-block.reverse{flex-direction:column;min-height:0}
  .feature-block img,.feature-block .fb-fallback{width:100%;aspect-ratio:16/9}
  .feature-block .fb-copy{padding:26px}
}
