/* ============================================================
   Stitch — Complete Stylesheet v1.0
   Editorial Nordic restraint for premium clothing brands.
   EB Garamond serif · Geist body · 0px radius · hairline borders
   Self-contained. Quarter Moon Web Studio · September 2026
   ============================================================ */

/* ── Reset ──────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{overflow-x:hidden;scroll-behavior:smooth;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;}
input,select,textarea{font-family:inherit;}
::-webkit-scrollbar{display:none;}
*{scrollbar-width:none;}

/* ── Design Tokens ──────────────────────────────────────────── */
:root {
  /* Merchant palette (injected by layout — these are fallbacks) */
  --primary:    #1B1C1A;
  --accent:     #6E7765;
  --surface:    #FAF8F5;
  --muted:      #F4F1EC;

  /* Stitch surface scale */
  --on-surface:     #1B1C1A;
  --dim:            #706E6B;
  --outline:        #7C766F;
  --border:         #E8E4DC;
  --border-dim:     #F0EDE8;
  --container:      #EFEEEB;
  --container-low:  #F5F3F0;
  --container-high: #E4E2DF;
  --white:          #FFFFFF;

  /* Layout */
  --max-w:      1280px;
  --margin-mob: 20px;
  --margin-dsk: 64px;

  /* Frosted overlays — derived from palette so they update when merchant changes colours */
  --frosted-sf-88: color-mix(in srgb, var(--surface) 88%, transparent);
  --frosted-sf-90: color-mix(in srgb, var(--surface) 90%, transparent);
  --frosted-sf-72: color-mix(in srgb, var(--surface) 72%, transparent);
  --frosted-pr-18: color-mix(in srgb, var(--primary) 18%, transparent);

  /* Transitions */
  --t:    .18s ease;
  --t-md: .32s ease;
}

/* ── Base ───────────────────────────────────────────────────── */
/* .st-theme is applied to <body> — used as a scoping hook for merchant Custom CSS overrides */
.st-theme { display: block; }
body {
  background: var(--surface);
  color: var(--on-surface);
  font-family: 'Geist','Inter',system-ui,sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
main{flex:1;}

/* ── Material Symbols ───────────────────────────────────────── */
.ms {
  font-family: 'Material Symbols Outlined';
  font-variation-settings: 'FILL' 0,'wght' 300,'GRAD' 0,'opsz' 24;
  vertical-align: middle;
  line-height: 1;
  display: inline-block;
  font-size: 20px;
}
.ms-fill{font-variation-settings:'FILL' 1,'wght' 300,'GRAD' 0,'opsz' 24;}

/* ── Typography ─────────────────────────────────────────────── */
h1,h2,h3,h4 {
  font-family: 'EB Garamond','Georgia',serif;
  font-weight: 400;
  color: var(--on-surface);
}
h1 {
  font-size: clamp(2.05rem,7vw,2.9rem);
  line-height: 1.28;
  letter-spacing: -0.02em;
}
h1 em {font-style:italic;font-weight:400;}
h2 {
  font-size: clamp(1.35rem,3.5vw,1.9rem);
  line-height: 1.28;
  letter-spacing: -0.01em;
}
h3 {
  font-family: 'EB Garamond','Georgia',serif;
  font-size: 1.05rem;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.01em;
}

/* Caps utility — apothecary / label / eyebrow */
.st-caps-xs {
  font-family: 'Geist','Inter',sans-serif;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  line-height: 1.4;
}
.st-caps-sm {
  font-family: 'Geist','Inter',sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.st-body-sm  {font-size:12px;line-height:1.65;letter-spacing:0.02em;}
.st-body-md  {font-size:13px;line-height:1.6;letter-spacing:0.015em;}
.st-body-lg  {font-size:15px;font-weight:300;line-height:1.75;letter-spacing:0.01em;}

/* ── Layout ─────────────────────────────────────────────────── */
.st-container {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--margin-mob);
}

/* ── Hairline Divider ───────────────────────────────────────── */
.st-divider {width:100%;height:.5px;background:var(--border);}

/* ── Buttons ────────────────────────────────────────────────── */
.st-btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: 48px;
  padding: 0 28px;
  background: var(--primary);
  color: var(--surface);
  border: 1px solid var(--primary);
  border-radius: 0;
  font-family: 'Geist',sans-serif;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background var(--t),border-color var(--t),color var(--t);
  white-space: nowrap;
  text-decoration: none;
  min-height: 48px;
  -webkit-tap-highlight-color: transparent;
}
.st-btn-primary:hover{background:var(--dim);border-color:var(--dim);}
.st-btn-primary:active{transform:scale(.98);}
.st-btn-primary:disabled{opacity:.4;cursor:not-allowed;}

/* Ghost button — surface-container-low fill, no border */
.st-btn-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  height: 48px;
  padding: 0 24px;
  background: var(--container-low);
  color: var(--on-surface);
  border-radius: 0;
  font-family: 'Geist',sans-serif;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background var(--t),color var(--t);
  white-space: nowrap;
  text-decoration: none;
  min-height: 48px;
  -webkit-tap-highlight-color: transparent;
}
.st-btn-ghost:hover{background:var(--container);}
.st-btn-ghost .ms{font-size:16px;transition:transform var(--t);}
.st-btn-ghost:hover .ms{transform:translateX(3px);}

.st-btn-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  padding: 0 28px;
  background: transparent;
  color: var(--primary);
  border: 1px solid var(--primary);
  border-radius: 0;
  font-family: 'Geist',sans-serif;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background var(--t),color var(--t);
  text-decoration: none;
  min-height: 48px;
}
.st-btn-outline:hover{background:var(--primary);color:var(--surface);}
.st-btn-full{width:100%;}

.st-text-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.20em;
  text-transform: uppercase;
  color: var(--on-surface);
  border-bottom: .5px solid var(--on-surface);
  padding-bottom: 2px;
  transition: opacity var(--t),gap var(--t);
  text-decoration: none;
}
.st-text-link:hover{opacity:.55;gap:8px;}
.st-text-link .ms{font-size:14px;transition:transform var(--t);}
.st-text-link:hover .ms{transform:translateX(2px);}

/* ── Announce Bar ───────────────────────────────────────────── */
.st-announce {
  background: var(--primary);
  color: var(--surface);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px var(--margin-mob);
  position: relative;
  z-index: 200;
}
.st-announce button {
  position: absolute;
  right: 14px;
  color: var(--surface);
  opacity: .6;
  min-height: 44px;
  min-width: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.st-announce button:hover{opacity:1;}

/* ── Header ─────────────────────────────────────────────────── */
.st-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--frosted-sf-88);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: .5px solid var(--border);
}
.st-nav-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--margin-mob);
  height: 64px;
  display: flex;
  align-items: center;
  gap: 20px;
}
.st-logo{display:flex;align-items:center;text-decoration:none;flex-shrink:0;}
.st-wordmark {
  font-family: 'EB Garamond','Georgia',serif;
  font-size: 19px;
  font-weight: 500;
  color: var(--on-surface);
  letter-spacing: 0.08em;
}

/* Desktop nav */
.st-nav {
  display: none;
  align-items: center;
  gap: 2px;
  flex: 1;
  justify-content: center;
}
.st-nav-link {
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.20em;
  text-transform: uppercase;
  color: var(--dim);
  padding: 6px 12px;
  transition: color var(--t);
  white-space: nowrap;
  border-bottom: 1px solid transparent;
  min-height: 44px;
  display: flex;
  align-items: center;
}
.st-nav-link:hover,.st-nav-active{color:var(--on-surface);}
.st-nav-active{border-bottom-color:var(--on-surface);}

.st-nav-actions{display:flex;align-items:center;gap:0;margin-left:auto;}

.st-icon-btn {
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--on-surface);
  transition: opacity var(--t);
  -webkit-tap-highlight-color: transparent;
  text-decoration: none;
  position: relative;
}
.st-icon-btn:hover{opacity:.45;}
.st-cart-btn{position:relative;}
.st-cart-count {
  position: absolute;
  top: 9px;
  right: 8px;
  font-size: 9px;
  font-weight: 600;
  color: var(--on-surface);
  font-family: 'Geist',sans-serif;
  line-height: 1;
}
.st-avatar {
  width: 28px;height: 28px;
  background: var(--primary);
  color: var(--surface);
  border-radius: 50%;
  display: flex;align-items: center;justify-content: center;
  font-size: 11px;font-weight: 600;font-family: 'Geist',sans-serif;
}

/* Hamburger */
.st-ham{flex-direction:column;gap:5px;}
.st-ham-line{display:block;width:16px;height:1px;background:var(--on-surface);transition:transform var(--t),opacity var(--t);}

/* ── Drawer ─────────────────────────────────────────────────── */
.st-drawer {
  position: fixed;
  top: 0;left: 0;
  width: min(300px,86vw);
  height: 100%;
  background: var(--surface);
  border-right: .5px solid var(--border);
  z-index: 400;
  transform: translateX(-100%);
  transition: transform .28s ease;
  display: flex;flex-direction: column;
}
.st-drawer.open{transform:translateX(0);}
.st-drawer-inner{padding:20px;flex:1;overflow-y:auto;display:flex;flex-direction:column;}
.st-drawer-close{align-self:flex-end;margin-bottom:16px;}
.st-drawer nav{display:flex;flex-direction:column;border-top:.5px solid var(--border);}
.st-drawer nav a {
  display: block;
  padding: 14px 0;
  border-bottom: .5px solid var(--border);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.20em;
  text-transform: uppercase;
  color: var(--on-surface);
  transition: color var(--t);
  min-height: 44px;
  display: flex;
  align-items: center;
}
.st-drawer nav a:hover{color:var(--dim);}
.st-drawer-footer{margin-top:auto;padding-top:24px;}

.st-overlay {
  position: fixed;inset: 0;
  background: var(--frosted-pr-18);
  z-index: 300;
  opacity: 0;pointer-events: none;
  transition: opacity .28s;
}
.st-overlay.open{opacity:1;pointer-events:auto;}

/* ── Toast ──────────────────────────────────────────────────── */
.st-toast {
  position: fixed;
  bottom: 24px;left: 50%;
  transform: translateX(-50%) translateY(70px);
  background: var(--primary);
  color: var(--surface);
  padding: 12px 24px;
  font-size: 11px;font-weight: 500;letter-spacing: 0.14em;text-transform: uppercase;
  z-index: 999;
  transition: transform .3s cubic-bezier(.34,1.56,.64,1);
  pointer-events: none;
  max-width: calc(100vw - 32px);
  white-space: nowrap;
}
.st-toast.show{transform:translateX(-50%) translateY(0);}

/* ── Hero (editorial stacked layout) ───────────────────────── */
.st-hero{padding:0;}

.st-hero-text {
  padding: 48px var(--margin-mob) 36px;
  max-width: var(--max-w);
  margin: 0 auto;
}

/* Edition marker: • Edition No. 04 */
.st-edition-mark {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 18px;
}
.st-edition-dot {
  width: 6px;height: 6px;
  border-radius: 50%;
  background: var(--accent);
  flex-shrink: 0;
}

.st-display {
  font-family: 'EB Garamond','Georgia',serif;
  font-size: clamp(2.05rem,8vw,3rem);
  font-weight: 400;
  line-height: 1.28;
  letter-spacing: -0.02em;
  color: var(--on-surface);
  margin-bottom: 0;
}
.st-display em{font-style:italic;font-weight:400;}

.st-hero-sub {
  color: var(--dim);
  margin-top: 16px;
  margin-bottom: 28px;
  max-width: 340px;
}

/* Full-width hero image frame (below text) */
.st-hero-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 4/5;
  background: var(--container-low);
  overflow: hidden;
}
.st-hero-placeholder {
  width: 100%;height: 100%;
  background: var(--container);
}
.st-hero-frame img {
  width: 100%;height: 100%;
  object-fit: cover;
  display: block;
}
.st-batch-label {
  position: absolute;
  bottom: 12px;left: 16px;
  background: var(--frosted-sf-88);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  padding: 6px 12px;
}

/* ── Sticky Tab Bar ─────────────────────────────────────────── */
.st-tabs-wrap {
  position: sticky;
  top: 64px;
  z-index: 50;
  background: var(--surface);
  overflow-x: auto;
  scrollbar-width: none;
}
.st-tabs-wrap::-webkit-scrollbar{display:none;}
.st-tabs {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--margin-mob);
  display: flex;
  white-space: nowrap;
  min-width: max-content;
}
.st-tab {
  display: flex;
  align-items: center;
  height: 48px;
  padding: 0 16px;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.20em;
  text-transform: uppercase;
  color: var(--dim);
  border-bottom: 1.5px solid transparent;
  transition: color var(--t),border-color var(--t);
  text-decoration: none;
  white-space: nowrap;
  position: relative;
}
.st-tab:hover{color:var(--on-surface);}
.st-tab-active{color:var(--on-surface);border-bottom-color:var(--on-surface);}

/* ── Section wrapper ─────────────────────────────────────────── */
.st-section{padding:56px var(--margin-mob);}
.st-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 32px;
  flex-wrap: wrap;
}
.st-section-eyebrow{
  color:var(--dim);
  display:block;
  margin-bottom:6px;
}
.st-empty{padding:80px 0;text-align:center;color:var(--dim);}

/* ── Product Grid ───────────────────────────────────────────── */
.product-grid {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
}

/* ── Product Card ───────────────────────────────────────────── */
.product-card {
  background: var(--surface);
  cursor: pointer;
  transition: background var(--t);
  -webkit-tap-highlight-color: transparent;
  display: flex;
  flex-direction: column;
}
.product-card:hover{background:var(--container-low);}

/* Image container */
.product-card__img {
  position: relative;
  aspect-ratio: 4/5;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.product-card__img img{
  width:100%;height:100%;
  object-fit:cover;
  transition:transform var(--t-md);
}
.product-card:hover .product-card__img img{transform:scale(1.04);}

/* Badge — frosted glass pill */
.product-card__badge {
  position: absolute;
  top: 10px;left: 10px;
  background: var(--frosted-sf-90);
  font-size: 9px;font-weight: 500;
  letter-spacing: 0.20em;text-transform: uppercase;
  padding: 4px 8px;
  color: var(--on-surface);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

/* Discount % tag */
.st-pct-tag {
  position: absolute;
  top: 10px;right: 10px;
  background: var(--frosted-sf-90);
  color: var(--accent);
  font-size: 9px;font-weight: 500;
  letter-spacing: 0.15em;text-transform: uppercase;
  padding: 4px 8px;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

/* Out of stock */
.product-card__out {
  position: absolute;inset: 0;
  background: var(--frosted-sf-72);
  display: flex;align-items: center;justify-content: center;
  color: var(--dim);
}

/* Quick-add — circular (32×32), bottom-right, hover-reveal */
.product-card__quick-add {
  position: absolute;
  bottom: 10px;right: 10px;
  width: 32px;height: 32px;
  border-radius: 50%;
  background: var(--frosted-sf-90);
  color: var(--on-surface);
  display: flex;align-items: center;justify-content: center;
  opacity: 0;
  transform: translateY(4px) scale(.9);
  transition: opacity var(--t),transform var(--t),background var(--t),color var(--t);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  cursor: pointer;
  z-index: 4;
  min-height: 32px;
  /* tap-zone expansion without affecting layout */
  padding: 0;
}
.product-card__quick-add .ms{font-size:16px;}
.product-card:hover .product-card__quick-add,
.product-card:focus-within .product-card__quick-add{
  opacity: 1;
  transform: translateY(0) scale(1);
}
.product-card__quick-add:hover{
  background: var(--primary);
  color: var(--surface);
}

/* Card info area */
.product-card__info{
  padding: 12px 12px 18px;
  border-top: .5px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 3px;
}

/* Apothecary category caption */
.product-card__badge-cat {
  color: var(--dim);
  display: block;
}

/* Product name */
.product-card__name {
  font-family: 'EB Garamond','Georgia',serif;
  font-size: 1rem;
  font-weight: 400;
  color: var(--on-surface);
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Prices */
.product-card__prices{display:flex;align-items:baseline;gap:7px;margin-top:3px;}
.product-card__price{font-size:13px;font-weight:400;color:var(--on-surface);font-family:'Geist',sans-serif;}
.product-card__compare{font-size:11px;color:var(--dim);text-decoration:line-through;}

/* ── Philosophy Block ───────────────────────────────────────── */
.st-philosophy{
  padding: 0 var(--margin-mob);
  background: var(--container-low);
}
.st-philosophy-border{width:100%;height:.5px;background:var(--border);}
.st-philosophy-inner{
  max-width: 580px;
  margin: 0 auto;
  padding: 56px 0;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.st-philosophy-inner blockquote {
  font-family: 'EB Garamond','Georgia',serif;
  font-size: clamp(1.15rem,2.5vw,1.6rem);
  font-style: italic;
  font-weight: 400;
  color: var(--on-surface);
  line-height: 1.4;
  letter-spacing: -0.01em;
}

/* ── Testimonial ────────────────────────────────────────────── */
.st-testimonial{padding:64px var(--margin-mob);}
.st-testimonial-inner{
  max-width: 480px;
  margin: 0 auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.st-stars{display:flex;gap:2px;margin-bottom:18px;}
.st-star{
  font-size:14px;color:var(--accent);
  font-variation-settings:'FILL' 1,'wght' 300,'GRAD' 0,'opsz' 24;
}
.st-testimonial-quote{
  font-family: 'EB Garamond','Georgia',serif;
  font-size: clamp(1.05rem,2.5vw,1.25rem);
  font-style: italic;
  font-weight: 400;
  line-height: 1.55;
  color: var(--on-surface);
  margin-bottom: 20px;
}
.st-testimonial-attr{display:flex;flex-direction:column;gap:4px;align-items:center;}
.st-testimonial-role{color:var(--dim);}

/* ── Trust Strip ────────────────────────────────────────────── */
.st-trust{padding:0 var(--margin-mob);}
.st-trust-grid{
  max-width: var(--max-w);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(130px,1fr));
  gap: 1px;
  background: var(--border);
  border: .5px solid var(--border);
}
.st-trust-item{
  padding: 20px 16px;
  background: var(--surface);
  display: flex;
  flex-direction: column;
  gap: 4px;
}

/* ── Footer ─────────────────────────────────────────────────── */
.st-footer{margin-top:auto;}
.st-footer-grid{
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 56px var(--margin-mob) 40px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px 24px;
}
.st-footer-brand{grid-column:1/-1;}
.st-footer-col{display:flex;flex-direction:column;}
.st-footer-head{margin-bottom:18px;display:block;}
.st-footer-col a{
  font-size: 12px;font-weight: 400;
  color: var(--dim);
  padding: 5px 0;
  transition: color var(--t);
  min-height: 28px;
  display: flex;align-items: center;
}
.st-footer-col a:hover{color:var(--on-surface);}
.st-footer-bottom{
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 20px var(--margin-mob);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.st-payments{display:flex;gap:12px;}
.st-payments span{
  font-size:10px;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--dim);border:.5px solid var(--border);padding:3px 7px;
}

/* ── Product Detail ─────────────────────────────────────────── */
.st-breadcrumb{
  display:flex;align-items:center;gap:8px;
  padding:20px 0;
  font-size:11px;color:var(--dim);letter-spacing:0.04em;
}
.st-breadcrumb a{color:var(--dim);transition:color var(--t);}
.st-breadcrumb a:hover{color:var(--on-surface);}

.st-product-layout{
  display:grid;
  grid-template-columns:1fr;
  gap:40px;
  padding-bottom:80px;
}

/* Gallery */
.st-gallery{}
.st-gallery-main{
  position:relative;
  aspect-ratio:4/5;
  overflow:hidden;
  display:flex;align-items:center;justify-content:center;
}
.st-gallery-main img{width:100%;height:100%;object-fit:cover;}
.st-sold-overlay{
  position:absolute;inset:0;
  background:var(--frosted-sf-72);
  display:flex;align-items:center;justify-content:center;
  color:var(--dim);
}
.st-thumb-row{
  display:flex;gap:6px;margin-top:8px;overflow-x:auto;scrollbar-width:none;
}
.st-thumb-row::-webkit-scrollbar{display:none;}
.st-thumb{
  flex-shrink:0;
  width:72px;height:90px;
  overflow:hidden;display:flex;align-items:center;justify-content:center;
  cursor:pointer;border:.5px solid var(--border);
  transition:border-color var(--t);
}
.st-thumb img{width:100%;height:100%;object-fit:cover;}
.st-thumb:hover{border-color:var(--dim);}
.st-thumb-active{border-color:var(--on-surface);}

/* Product info */
.st-product-info{}
.st-price-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
.st-price{
  font-size:1.3rem;font-weight:400;
  font-family:'EB Garamond',serif;
  color:var(--on-surface);
}
.st-compare{font-size:1rem;color:var(--dim);text-decoration:line-through;}
.st-pct-badge{
  background:var(--container-low);
  color:var(--accent);
  font-size:10px;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;
  padding:3px 8px;
}
.st-low-stock{
  font-size:11px;color:var(--accent);letter-spacing:0.08em;font-family:'Geist',sans-serif;
  display:flex;align-items:center;gap:6px;
}

/* Variant chips */
.st-chips{display:flex;flex-wrap:wrap;gap:6px;}
.st-chip{
  height:36px;padding:0 14px;
  border:.5px solid var(--border);
  background:var(--surface);
  color:var(--on-surface);
  font-size:11px;font-weight:400;letter-spacing:0.04em;
  cursor:pointer;
  transition:border-color var(--t),background var(--t);
  min-width:36px;
}
.st-chip:hover{border-color:var(--on-surface);}
.st-chip-active{border-color:var(--primary);background:var(--primary);color:var(--surface);}
.st-chip-sold{opacity:.4;text-decoration:line-through;cursor:not-allowed;}

/* Apothecary qty stepper */
.st-qty-wrap{display:flex;align-items:center;gap:0;border:.5px solid var(--border);}
.st-qty-btn{
  width:44px;height:44px;
  display:flex;align-items:center;justify-content:center;
  color:var(--on-surface);font-size:20px;
  transition:background var(--t);
  min-height:44px;min-width:44px;
  cursor:pointer;
}
.st-qty-btn:hover{background:var(--container-low);}
.st-qty-val{
  width:40px;text-align:center;
  font-size:14px;color:var(--on-surface);
  border-left:.5px solid var(--border);
  border-right:.5px solid var(--border);
  height:44px;line-height:44px;
}

/* Product description / accordion */
.st-accordion{border-top:.5px solid var(--border);}
.st-accordion-item{border-bottom:.5px solid var(--border);}
.st-accordion-btn{
  width:100%;display:flex;align-items:center;justify-content:space-between;
  padding:16px 0;background:none;
  font-size:11px;font-weight:500;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--on-surface);cursor:pointer;
  min-height:48px;
  transition:color var(--t);
}
.st-accordion-btn:hover{color:var(--dim);}
.st-accordion-body{
  font-size:13px;line-height:1.7;color:var(--dim);
  padding-bottom:16px;
  display:none;letter-spacing:0.01em;
}
.st-accordion-item.open .st-accordion-body{display:block;}
.st-accordion-item.open .st-accordion-icon{transform:rotate(45deg);}
.st-accordion-icon{transition:transform var(--t);font-size:18px;}

/* Related products heading */
.st-related{padding:48px var(--margin-mob) 80px;}

/* ── Collections / Shop Page ────────────────────────────────── */
.st-shop-header{padding:32px 0;}
.st-shop-topbar{
  display:flex;align-items:flex-start;
  justify-content:space-between;gap:16px;flex-wrap:wrap;
}
.st-shop-filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.st-filter-chip{
  height:34px;padding:0 14px;
  border:.5px solid var(--border);background:transparent;
  font-size:10px;font-weight:500;letter-spacing:0.16em;text-transform:uppercase;
  color:var(--dim);cursor:pointer;transition:all var(--t);
}
.st-filter-chip:hover,.st-filter-chip.active{border-color:var(--on-surface);color:var(--on-surface);}
.st-select{
  height:34px;padding:0 10px;
  border:.5px solid var(--border);background:transparent;
  font-size:10px;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--dim);cursor:pointer;
  appearance:none;
}
.st-search-field{
  display:flex;align-items:center;
  border-bottom:.5px solid var(--on-surface);
  padding-bottom:4px;gap:6px;
}
.st-search-field input{
  background:none;border:none;outline:none;
  color:var(--on-surface);font-size:13px;
  width:160px;min-height:36px;
}

/* Pagination */
.st-pagination{
  display:flex;align-items:center;justify-content:center;gap:4px;
  padding:48px var(--margin-mob);
}
.st-page-btn{
  width:36px;height:36px;
  display:flex;align-items:center;justify-content:center;
  border:.5px solid var(--border);background:transparent;
  font-size:12px;color:var(--dim);cursor:pointer;
  transition:all var(--t);min-height:36px;
}
.st-page-btn:hover,.st-page-btn.active{border-color:var(--on-surface);color:var(--on-surface);}

/* ── Cart Drawer ────────────────────────────────────────────── */
.st-cart-drawer{
  position:fixed;top:0;right:0;
  width:min(380px,95vw);height:100%;
  background:var(--surface);border-left:.5px solid var(--border);
  z-index:500;
  transform:translateX(100%);
  transition:transform .28s ease;
  display:flex;flex-direction:column;
}
.st-cart-drawer.open{transform:translateX(0);}
.st-cart-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:20px;border-bottom:.5px solid var(--border);
}
.st-cart-body{flex:1;overflow-y:auto;padding:20px;}
.st-cart-footer{
  padding:20px;border-top:.5px solid var(--border);
}
.st-cart-item{
  display:grid;grid-template-columns:72px 1fr auto;gap:12px;
  padding:16px 0;border-bottom:.5px solid var(--border);
}
.st-cart-img{
  width:72px;height:90px;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;flex-shrink:0;
}
.st-cart-img img{width:100%;height:100%;object-fit:cover;}
.st-cart-remove{
  width:32px;height:32px;
  display:flex;align-items:center;justify-content:center;
  color:var(--dim);transition:color var(--t);cursor:pointer;
  align-self:flex-start;
}
.st-cart-remove:hover{color:var(--on-surface);}

/* ── Focus visible (a11y) ───────────────────────────────────── */
:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:2px;
}
button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}

/* ── Utility ─────────────────────────────────────────────────── */
.st-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;}

/* ── Reduced Motion ─────────────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition-duration:.01ms!important;}
}

/* ── Desktop: 768px ─────────────────────────────────────────── */
@media (min-width:768px) {
  .st-hero-text{padding:64px var(--margin-mob) 40px;}
  .st-hero-frame{aspect-ratio:16/9;}
  .st-product-layout{
    grid-template-columns:1fr 1fr;
    align-items:start;
    gap:56px;
    padding-top:40px;
  }
  .st-gallery-main{position:sticky;top:88px;}
  .product-grid{grid-template-columns:repeat(3,1fr);}
  .st-footer-grid{grid-template-columns:1.5fr 1fr 1fr;}
  .st-footer-brand{grid-column:auto;}
}

/* ── Desktop: 1024px ────────────────────────────────────────── */
@media (min-width:1024px) {
  .st-nav{display:flex;}
  .st-ham{display:none;}
  .st-container{padding:0 var(--margin-dsk);}
  .st-nav-inner{padding:0 var(--margin-dsk);}
  .st-section{padding:72px var(--margin-dsk);}
  .st-hero-text{padding:80px var(--margin-dsk) 48px;}
  .st-philosophy{padding:0 var(--margin-dsk);}
  .st-testimonial{padding:80px var(--margin-dsk);}
  .st-trust{padding:0 var(--margin-dsk);}
  .st-related{padding:64px var(--margin-dsk) 80px;}
  .st-tabs{padding:0 var(--margin-dsk);}
  .st-footer-grid{padding:72px var(--margin-dsk) 48px;}
  .st-footer-bottom{padding:24px var(--margin-dsk);}
  .product-grid{grid-template-columns:repeat(4,1fr);}
  /* Hero becomes split layout on wide desktop */
  .st-hero{
    display:grid;
    grid-template-columns:1fr 1fr;
    align-items:stretch;
    min-height:600px;
  }
  .st-hero-text{
    padding:80px var(--margin-dsk) 80px;
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
  .st-hero-frame{
    aspect-ratio:auto;
    height:100%;
    min-height:600px;
  }
}

/* ── Wide: 1280px ───────────────────────────────────────────── */
@media (min-width:1280px){
  .product-grid{grid-template-columns:repeat(4,1fr);}
  .st-hero{min-height:680px;}
}

/* ── Header layout variants ─────────────────────────────────── */
/* centered: nav left, logo center, cart right */
.st-header--centered .st-nav-inner { justify-content: space-between; }
.st-logo--center {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}
/* split: already handled by flex:1 spacer in markup */
