@font-face{
  font-family:'DM Sans';
  font-style:normal;
  font-weight:100 1000;
  font-display:swap;
  src:url('../fonts/dmsans-normal-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'DM Sans';
  font-style:normal;
  font-weight:100 1000;
  font-display:swap;
  src:url('../fonts/dmsans-normal-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Cormorant Garamond';
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url('../fonts/cormorant-garamond-latin-500-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Cormorant Garamond';
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url('../fonts/cormorant-garamond-latin-ext-500-normal.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Cormorant Garamond';
  font-style:normal;
  font-weight:600;
  font-display:swap;
  src:url('../fonts/cormorant-garamond-latin-600-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Cormorant Garamond';
  font-style:normal;
  font-weight:600;
  font-display:swap;
  src:url('../fonts/cormorant-garamond-latin-ext-600-normal.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Cormorant Garamond';
  font-style:italic;
  font-weight:500;
  font-display:swap;
  src:url('../fonts/cormorant-garamond-latin-500-italic.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Cormorant Garamond';
  font-style:italic;
  font-weight:500;
  font-display:swap;
  src:url('../fonts/cormorant-garamond-latin-ext-500-italic.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root{
  --bg:#f3f4f2;
  --surface:#fbfbfa;
  --surface-2:#e8eae6;
  --photo-bg:#ffffff;
  --ink:#16191b;
  --ink-2:#3e4447;
  --muted:#596063;
  --line:rgba(22,25,27,.12);
  --line-strong:rgba(22,25,27,.3);
  --accent:#7a5b1f;
  --accent-hover:#6a4e1a;
  --accent-ink:#7a5b1f;
  --accent-soft:#f2ead9;
  --on-accent:#ffffff;
  --danger:#a3261f;
  --danger-soft:#f6e4e2;
  --shadow-sm:0 1px 2px rgba(22,25,27,.06), 0 2px 8px rgba(22,25,27,.05);
  --shadow-md:0 2px 6px rgba(22,25,27,.06), 0 14px 32px rgba(22,25,27,.09);
  --shadow-lg:0 24px 60px rgba(22,25,27,.18);
  --scrim:rgba(16,19,21,.72);
  --logo-gold:#a8843e;
  --logo-ink:#34373c;

  --font-display:'Cormorant Garamond', 'Iowan Old Style', 'Palatino Linotype', Palatino, Georgia, serif;
  --font-body:'DM Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

  --radius:2px;
  --header-h:84px;
  --ease:cubic-bezier(.16, 1, .3, 1);

  color-scheme:light;
}

html[data-theme="dark"]{
  --bg:#121517;
  --surface:#191d20;
  --surface-2:#22272a;
  --photo-bg:#f1f2f0;
  --ink:#eceeeb;
  --ink-2:#c6cbc8;
  --muted:#9aa29f;
  --line:rgba(236,238,235,.12);
  --line-strong:rgba(236,238,235,.3);
  --accent:#d4b476;
  --accent-hover:#dcbf85;
  --accent-ink:#d4b476;
  --accent-soft:#2c261b;
  --on-accent:#121517;
  --danger:#f08c84;
  --danger-soft:#3a1d1b;
  --shadow-sm:0 1px 2px rgba(0,0,0,.3);
  --shadow-md:0 14px 32px rgba(0,0,0,.35);
  --shadow-lg:0 24px 60px rgba(0,0,0,.5);
  --scrim:rgba(0,0,0,.78);
  --logo-gold:#d4b476;
  --logo-ink:#eceeeb;

  color-scheme:dark;
}

*,*::before,*::after{ box-sizing:border-box; }
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  scroll-padding-top:calc(var(--header-h) + 16px);
}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  font-weight:400;
  overflow-x:clip;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
ul, ol{ margin:0; padding:0; }
ul{ list-style:none; }
p{ margin:0; }
figure{ margin:0; }
blockquote{ margin:0; }
button{ font:inherit; color:inherit; cursor:pointer; }
input, select, textarea{ font:inherit; color:inherit; }
[hidden]{ display:none !important; }
::selection{ background:var(--accent); color:var(--on-accent); }

:focus-visible{ outline:2px solid var(--accent-ink); outline-offset:3px; }
:focus:not(:focus-visible){ outline:none; }

.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.skip-link{
  position:absolute; left:16px; top:-60px; z-index:300;
  padding:10px 16px; border-radius:var(--radius);
  background:var(--accent); color:var(--on-accent); font-weight:600;
  transition:top .2s var(--ease);
}
.skip-link:focus{ top:12px; }

.icon{ flex:none; display:inline-block; vertical-align:middle; }

.wrap{
  max-width:1280px;
  margin:0 auto;
  padding:0 clamp(16px, 4vw, 40px);
}

h1, h2, h3{
  font-family:var(--font-display);
  font-weight:500;
  line-height:1.1;
  letter-spacing:-.005em;
  margin:0;
  color:var(--ink);
  text-wrap:balance;
}
h1{ font-size:clamp(38px, 4.6vw, 60px); }
h2{ font-size:clamp(30px, 3.4vw, 44px); }
h3{ font-size:22px; }
.lead{ font-size:18px; line-height:1.55; color:var(--ink-2); max-width:62ch; text-wrap:pretty; }
.muted{ color:var(--muted); }

.eyebrow{
  display:inline-block;
  font-size:13px;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--accent-ink);
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:48px;
  padding:0 24px;
  border:1px solid var(--accent);
  border-radius:var(--radius);
  background:var(--accent);
  color:var(--on-accent);
  font-family:var(--font-body);
  font-size:15px;
  font-weight:600;
  letter-spacing:.01em;
  line-height:1.2;
  white-space:nowrap;
  text-decoration:none;
  transition:background-color .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease), transform .12s var(--ease);
}
.btn:hover{ background:var(--accent-hover); border-color:var(--accent-hover); }
.btn:active{ transform:translateY(1px); }
.btn.ghost{ background:transparent; color:var(--ink); border-color:var(--line-strong); }
.btn.ghost:hover{ border-color:var(--ink); background:var(--surface); }
.btn.block{ width:100%; }
.btn.sm{ min-height:40px; padding:0 16px; font-size:14px; }
.btn[disabled], .btn[aria-disabled="true"]{ opacity:.45; cursor:not-allowed; pointer-events:none; }
.btn[aria-busy="true"]{ opacity:.7; cursor:progress; }

.text-link{
  display:inline-flex; align-items:center; gap:8px;
  font-weight:600; color:var(--accent-ink);
  text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px;
}
.text-link:hover{ text-decoration-thickness:2px; }
.text-link .icon{ transition:transform .2s var(--ease); }
.text-link:hover .icon{ transform:translateX(3px); }

.topbar{ background:var(--accent); color:var(--on-accent); font-size:14px; }
.topbar-row{ display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:40px; }
.topbar-item{ display:inline-flex; align-items:center; gap:8px; flex-wrap:wrap; }
.topbar a{ font-weight:600; text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px; }
.topbar-link{ text-decoration:none !important; }
.topbar-link:hover{ text-decoration:underline !important; }
.topbar-hours{ opacity:.85; }

header.site{
  position:sticky; top:0; z-index:100;
  background:var(--surface);
  border-bottom:1px solid var(--line-strong);
  box-shadow:0 4px 0 -3px var(--line);
}
.header-row{
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  min-height:var(--header-h);
}

.logo{ display:inline-flex; align-items:center; min-height:44px; flex:none; }
.logo-art{ display:block; height:66px; width:auto; aspect-ratio:1536 / 605; overflow:visible; }
.logo-art.is-full{ height:auto; width:240px; aspect-ratio:1536 / 709; }
a.logo{ transition:opacity .2s ease; }
a.logo:hover{ opacity:.82; }

nav.main-nav{ display:flex; align-items:center; gap:4px; }
nav.main-nav a{
  display:inline-flex; align-items:center;
  min-height:44px; padding:0 14px;
  font-size:15px; font-weight:500; color:var(--ink-2);
  border-radius:var(--radius);
  transition:color .15s ease, background-color .15s ease;
}
nav.main-nav a:hover, nav.main-nav a.active, nav.main-nav a[aria-current]{ color:var(--ink); background:var(--surface-2); }

.nav-item{ position:relative; display:flex; align-items:center; }
.nav-item.has-sub > a{ padding-right:30px; }
.nav-item.has-sub::after{
  content:"";
  position:absolute; right:14px; top:50%;
  width:6px; height:6px; margin-top:-5px;
  border-right:1.5px solid var(--muted); border-bottom:1.5px solid var(--muted);
  transform:rotate(45deg);
  pointer-events:none;
}
.sub-toggle{ display:none; background:none; border:0; padding:0; color:var(--muted); line-height:0; }
.sub-nav{
  display:none;
  position:absolute; top:100%; left:0;
  min-width:240px; padding:8px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow-md);
  z-index:120;
}
.nav-item.has-sub:hover .sub-nav,
.nav-item.has-sub:focus-within .sub-nav{ display:block; }
nav.main-nav .sub-nav a{ display:flex; width:100%; min-height:40px; padding:0 12px; font-size:15px; }

.header-actions{ display:flex; align-items:center; gap:8px; }
.icon-btn{
  position:relative;
  width:44px; height:44px;
  display:inline-flex; align-items:center; justify-content:center;
  border:0; border-radius:var(--radius);
  background:transparent; color:var(--ink);
  transition:background-color .15s ease;
}
.icon-btn:hover{ background:var(--surface-2); }
.cart-count{
  position:absolute; top:4px; right:2px;
  min-width:20px; height:20px; padding:0 5px;
  display:flex; align-items:center; justify-content:center;
  border-radius:10px;
  background:var(--accent); color:var(--on-accent);
  font-size:11px; font-weight:700; line-height:1;
  font-variant-numeric:tabular-nums;
}
.cart-count.is-empty{ background:var(--surface-2); color:var(--muted); }
@keyframes cartBump{ 0%{ transform:scale(1); } 40%{ transform:scale(1.15); } 100%{ transform:scale(1); } }
.icon-btn.bump{ animation:cartBump .32s var(--ease); }

.nav-toggle{
  display:none;
  width:44px; height:44px;
  border:1px solid var(--line-strong); border-radius:var(--radius);
  background:transparent;
  align-items:center; justify-content:center; flex-direction:column; gap:5px;
}
.nav-toggle span{ display:block; width:18px; height:1.5px; background:var(--ink); transition:transform .2s var(--ease), opacity .2s ease; }
.nav-toggle.open span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
.nav-toggle.open span:nth-child(2){ opacity:0; }
.nav-toggle.open span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }

.breadcrumb{
  display:flex; flex-wrap:wrap; align-items:center; gap:2px 0;
  margin-bottom:16px;
  font-size:14px; color:var(--muted);
}
.breadcrumb a{ text-decoration:underline; text-decoration-color:transparent; text-underline-offset:3px; transition:color .15s ease, text-decoration-color .15s ease; }
.breadcrumb a:hover{ color:var(--ink); text-decoration-color:currentColor; }
.breadcrumb .sep{ margin:0 8px; opacity:.6; }
.breadcrumb [aria-current]{ color:var(--ink-2); }

section{ padding:88px 0; }
.section-head{ display:grid; gap:12px; margin-bottom:40px; max-width:760px; }
.section-head .lead{ font-size:17px; }
.section-ctas{ display:flex; align-items:center; gap:24px; flex-wrap:wrap; margin-top:40px; }

.hero{ padding:56px 0 72px; }
.hero-grid{
  display:grid;
  grid-template-columns:minmax(0, 5fr) minmax(0, 6fr);
  gap:clamp(32px, 5vw, 72px);
  align-items:center;
}
.hero.no-media .hero-grid{ grid-template-columns:minmax(0, 1fr); }
.hero.no-media .hero-copy{ max-width:780px; padding:32px 0; }
.hero-copy{ display:grid; gap:24px; justify-items:start; }
.hero-copy h1{ font-size:clamp(42px, 5.2vw, 68px); line-height:1.04; }
.hero-copy p{ font-size:18px; line-height:1.55; color:var(--ink-2); max-width:46ch; }
.hero-ctas{ display:flex; gap:12px; flex-wrap:wrap; margin-top:8px; }
.hero-media{
  position:relative;
  aspect-ratio:5 / 4;
  border-radius:var(--radius);
  overflow:hidden;
  background:var(--surface-2);
}
.hero-media img{ width:100%; height:100%; object-fit:cover; }

.trust-strip{ background:var(--surface); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.trust-list{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:16px 32px;
  padding-top:22px; padding-bottom:22px;
}
.trust-list li{ display:flex; align-items:center; gap:12px; font-size:15px; font-weight:500; color:var(--ink-2); }
.trust-list .icon{ color:var(--accent-ink); }

.cat-grid{
  display:grid;
  grid-template-columns:repeat(6, minmax(0, 1fr));
  gap:24px;
}
.cat-card{
  grid-column:span 2;
  display:grid;
  grid-template-rows:auto 1fr;
  position:relative;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  transition:border-color .2s ease, box-shadow .3s var(--ease);
}
.cat-card.is-wide{ grid-column:span 3; }
.cat-card.is-solo{ grid-column:1 / -1; }
.cat-card:hover{ border-color:var(--line-strong); box-shadow:var(--shadow-md); }
.cat-media{
  display:flex; align-items:center; justify-content:center;
  aspect-ratio:4 / 3;
  overflow:hidden;
  background:var(--surface-2);
  color:var(--muted);
}
.cat-card.is-wide .cat-media{ aspect-ratio:16 / 9; }
.cat-media img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.cat-card:hover .cat-media img{ transform:scale(1.03); }
.cat-body{ display:grid; gap:6px; align-content:start; padding:20px 64px 22px 22px; }
.cat-name{ font-family:var(--font-display); font-size:26px; font-weight:600; line-height:1.15; }
.cat-text{ font-size:15px; color:var(--muted); line-height:1.5; }
.cat-arrow{
  position:absolute; right:20px; bottom:22px;
  width:36px; height:36px;
  display:flex; align-items:center; justify-content:center;
  border:1px solid var(--line-strong); border-radius:50%;
  color:var(--ink);
  transition:background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s var(--ease);
}
.cat-card:hover .cat-arrow{ background:var(--accent); border-color:var(--accent); color:var(--on-accent); transform:translateX(2px); }

.prod-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:24px;
}
.prod-grid.is-three{ grid-template-columns:repeat(3, minmax(0, 1fr)); }
.prod-card{
  position:relative;
  display:flex; flex-direction:column;
  min-width:0;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  transition:border-color .2s ease, box-shadow .3s var(--ease);
}
.prod-card:hover{ border-color:var(--line-strong); box-shadow:var(--shadow-md); }
.prod-link{ color:inherit; }
.prod-link::after{ content:""; position:absolute; inset:0; z-index:1; }
.prod-link:focus-visible{ outline:none; }
.prod-link:focus-visible::after{ outline:2px solid var(--accent-ink); outline-offset:-2px; }
.prod-card .prod-add{ position:relative; z-index:2; }
.prod-media{
  display:flex; align-items:center; justify-content:center;
  aspect-ratio:1 / 1;
  padding:8%;
  background:var(--photo-bg);
  border-bottom:1px solid var(--line);
}
.prod-media img{ width:100%; height:100%; object-fit:contain; transition:transform .5s var(--ease); }
.prod-card:hover .prod-media img{ transform:scale(1.03); }
.prod-media.is-empty, .pdp-main.is-empty, .spotlight-media.is-empty{ background:var(--surface-2); color:var(--muted); }
.prod-info{ display:flex; flex-direction:column; gap:8px; flex:1; padding:18px 18px 20px; }
.prod-label{
  align-self:flex-start;
  font-size:12px; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
  color:var(--accent-ink);
}
.prod-info h3{
  font-family:var(--font-display);
  font-size:22px; font-weight:600; line-height:1.2;
  overflow-wrap:anywhere;
}
.prod-price{ display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 10px; margin-top:2px; }
.prod-price .now{ font-size:18px; font-weight:600; color:var(--ink); font-variant-numeric:tabular-nums; white-space:nowrap; }
.prod-price .old, .pdp-price .old{ font-size:14px; color:var(--muted); text-decoration:line-through; white-space:nowrap; }
.price-saving{
  display:inline-flex; align-items:center;
  padding:2px 8px;
  border-radius:var(--radius);
  background:var(--accent-soft); color:var(--accent-ink);
  font-size:13px; font-weight:600; white-space:nowrap;
}
.prod-add, .prod-more{
  margin-top:auto;
  align-self:stretch;
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:44px; padding:0 14px;
  border:1px solid var(--line-strong); border-radius:var(--radius);
  background:transparent; color:var(--ink);
  font-size:14px; font-weight:600;
  transition:background-color .2s ease, color .2s ease, border-color .2s ease;
}
.prod-add:hover{ background:var(--accent); border-color:var(--accent); color:var(--on-accent); }
.prod-add[disabled], .prod-add.is-off{ opacity:.55; cursor:default; background:transparent; color:var(--muted); border-color:var(--line); }
.prod-more{ border-color:transparent; color:var(--accent-ink); padding:0; justify-content:flex-start; align-self:flex-start; }
.prod-card:hover .prod-more{ text-decoration:underline; text-underline-offset:4px; }
.grid-price-note, .price-note{ font-size:13px; color:var(--muted); }
.grid-price-note{ margin-top:20px; }
.grid-price-note a, .price-note a{ text-decoration:underline; text-underline-offset:3px; }
.grid-price-note a:hover, .price-note a:hover{ color:var(--ink); }

.ship-free-tag{
  display:inline-flex; align-items:center; gap:6px;
  font-size:13px; font-weight:600; color:var(--accent-ink);
}

.focus-category{ background:var(--surface-2); }
.focus-grid{
  display:grid;
  grid-template-columns:minmax(0, 4fr) minmax(0, 9fr);
  gap:clamp(32px, 5vw, 64px);
  align-items:start;
}
.focus-copy{ display:grid; gap:18px; justify-items:start; position:sticky; top:calc(var(--header-h) + 32px); }
.focus-copy .lead{ font-size:17px; }

.voices{ background:var(--surface); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.voice-row{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(300px, 1fr);
  gap:24px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  overscroll-behavior-x:contain;
  padding-bottom:12px;
  scrollbar-width:thin;
  scrollbar-color:var(--line-strong) transparent;
}
.voice{
  scroll-snap-align:start;
  display:flex; flex-direction:column; justify-content:space-between; gap:20px;
  padding:28px;
  background:var(--bg);
  border:1px solid var(--line);
  border-radius:var(--radius);
}
.voice blockquote p{
  font-family:var(--font-display);
  font-size:22px; line-height:1.4;
  display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden;
}
.voice blockquote p::before{ content:"\201E"; }
.voice blockquote p::after{ content:"\201C"; }
.voice figcaption{ display:flex; flex-wrap:wrap; gap:4px 10px; font-size:14px; }
.voice-name{ font-weight:600; }
.voice-city{ color:var(--muted); }

.spotlight{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
  gap:clamp(32px, 6vw, 88px);
  align-items:center;
}
.spotlight-media{
  display:flex; align-items:center; justify-content:center;
  aspect-ratio:1 / 1;
  padding:10%;
  background:var(--photo-bg);
  border:1px solid var(--line);
  border-radius:var(--radius);
}
.spotlight-media img{ width:100%; height:100%; object-fit:contain; }
.spotlight-copy{ display:grid; gap:16px; justify-items:start; }
.spotlight-copy p:not(.price-note){ color:var(--ink-2); max-width:52ch; }
.spotlight-copy .prod-price .now{ font-size:22px; }
.spotlight-copy .btn{ margin-top:8px; }

.advice{ padding:0 0 96px; }
.advice-inner{
  display:grid; justify-items:center; gap:18px;
  padding:64px clamp(20px, 6vw, 80px);
  text-align:center;
  background:var(--surface);
  border-top:1px solid var(--line-strong);
  border-bottom:1px solid var(--line-strong);
  box-shadow:inset 0 4px 0 -3px var(--line), inset 0 -4px 0 -3px var(--line);
}
.advice-inner p{ max-width:56ch; color:var(--ink-2); font-size:17px; }
.advice-ctas{ display:flex; align-items:center; justify-content:center; gap:20px 28px; flex-wrap:wrap; margin-top:8px; }
.advice-phone{ display:inline-flex; align-items:center; gap:10px; font-size:18px; font-weight:600; color:var(--ink); }
.advice-phone .icon{ color:var(--accent-ink); }
.advice-phone:hover{ color:var(--accent-ink); }

.page-head{ padding:40px 0 48px; border-bottom:1px solid var(--line); background:var(--surface); }
.page-head h1{ font-size:clamp(36px, 4.2vw, 54px); }
.page-head-text{ margin-top:14px; max-width:68ch; color:var(--ink-2); font-size:17px; }
.page-head-grid{ display:grid; grid-template-columns:minmax(0, 1fr); gap:32px; align-items:center; }
.page-head.has-media .page-head-grid{ grid-template-columns:minmax(0, 7fr) minmax(0, 5fr); }
.page-head-media{ aspect-ratio:16 / 10; border-radius:var(--radius); overflow:hidden; background:var(--surface-2); }
.page-head-media img{ width:100%; height:100%; object-fit:cover; }
.page-head-row{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px 40px; flex-wrap:wrap; }

.listing{ padding-top:40px; }
/* subcategory navigation on category pages */
.subcat-nav{ display:flex; flex-wrap:wrap; gap:8px; margin:0 0 28px; }
.subcat-chip{ display:inline-flex; align-items:center; min-height:38px; padding:0 16px; border:1px solid var(--line-strong); border-radius:999px; font-size:14px; color:var(--ink); background:transparent; text-decoration:none; transition:border-color .2s var(--ease), background .2s var(--ease); }
a.subcat-chip:hover{ border-color:var(--ink); background:var(--surface); }
.subcat-chip.is-active{ background:var(--accent); border-color:var(--accent); color:var(--on-accent); }
@media (max-width:640px){ .subcat-nav{ flex-wrap:nowrap; overflow-x:auto; margin-inline:-16px; padding:0 16px 4px; scrollbar-width:none; } .subcat-chip{ flex:0 0 auto; } }
.cat-seo{ padding:8px 0 72px; }
.cat-seo-text{ max-width:76ch; border-top:1px solid var(--line-strong); padding-top:40px; color:var(--ink-2); font-size:16px; line-height:1.7; }
.cat-seo-text > :first-child{ margin-top:0; }
.cat-seo-text h2{ margin:36px 0 12px; font-size:clamp(24px, 2.4vw, 32px); color:var(--ink); }
.cat-seo-text h3{ margin:22px 0 6px; font-family:var(--font-body); font-size:16px; font-weight:600; color:var(--ink); }
.cat-seo-text p{ margin:0 0 14px; }
.cat-seo-text ul{ margin:0 0 16px; padding-left:20px; }
.cat-seo-text li{ margin-bottom:8px; }
.cat-seo-text a{ color:var(--ink); text-decoration:underline; text-underline-offset:3px; }
.cat-seo-text a:hover{ color:var(--accent); }
@media (max-width:640px){ .cat-seo{ padding-bottom:48px; } .cat-seo-text{ padding-top:28px; font-size:15px; } }
.listing-count{ margin-bottom:20px; font-family:var(--font-body); font-size:14px; font-weight:400; line-height:1.6; color:var(--muted); }

.empty-state{
  display:grid; justify-items:center; gap:12px;
  padding:64px 24px;
  text-align:center;
  border:1px dashed var(--line-strong);
  border-radius:var(--radius);
  color:var(--muted);
}
.empty-state h2{ font-size:28px; color:var(--ink); }
.empty-state p{ max-width:48ch; }
.empty-state .btn{ margin-top:8px; }

.pdp-section{ padding:32px 0 88px; }
.pdp{ display:grid; grid-template-columns:minmax(0, 7fr) minmax(0, 5fr); gap:clamp(32px, 5vw, 72px); align-items:start; }
.pdp > *{ min-width:0; }
.pdp-gallery{ position:sticky; top:calc(var(--header-h) + 24px); display:grid; gap:12px; }
.pdp-main{
  display:flex; align-items:center; justify-content:center;
  aspect-ratio:1 / 1;
  max-height:min(78vh, 760px);
  width:100%;
  padding:6%;
  background:var(--photo-bg);
  border:1px solid var(--line);
  border-radius:var(--radius);
}
.pdp-main img{ width:100%; height:100%; object-fit:contain; }
.pdp-thumbs{
  display:flex; gap:10px;
  overflow-x:auto;
  scroll-snap-type:x proximity;
  scrollbar-width:none;
  padding:2px;
}
.pdp-thumbs::-webkit-scrollbar{ display:none; }
.pdp-thumbs button{
  flex:none; width:84px; height:84px; padding:6px;
  scroll-snap-align:start;
  background:var(--photo-bg);
  border:1px solid var(--line);
  border-radius:var(--radius);
  transition:border-color .15s ease;
}
.pdp-thumbs button:hover{ border-color:var(--line-strong); }
.pdp-thumbs button.active{ border-color:var(--accent-ink); box-shadow:0 0 0 1px var(--accent-ink); }
.pdp-thumbs img{ width:100%; height:100%; object-fit:contain; }

.pdp-info{ display:flex; flex-direction:column; align-items:flex-start; }
.pdp-subline{ font-size:14px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--accent-ink); margin-bottom:10px; }
.pdp-info h1{ font-size:clamp(34px, 3.4vw, 46px); line-height:1.08; overflow-wrap:anywhere; hyphens:auto; }
.pdp-info > .prod-label{ margin-top:12px; }
.pdp-price{ display:flex; align-items:baseline; flex-wrap:wrap; gap:6px 14px; margin:24px 0 6px; }
.pdp-price .now{ font-family:var(--font-display); font-size:40px; font-weight:600; line-height:1; font-variant-numeric:lining-nums tabular-nums; }
.pdp-price .old{ font-size:17px; }
.price-lowest{ width:100%; font-size:13px; color:var(--muted); }
.stock-note{ margin-top:8px; font-size:14px; font-weight:600; color:var(--accent-ink); }
.ship-free-badge{ display:inline-flex; align-items:center; gap:8px; margin-top:10px; font-size:14px; font-weight:600; color:var(--accent-ink); }
.pdp-info .price-note{ margin-top:6px; }
.pdp-short{ margin-top:24px; color:var(--ink-2); max-width:58ch; }
.pdp-short p + p{ margin-top:10px; }

.opt-block{ width:100%; margin-top:28px; }
.opt-label{ margin-bottom:10px; font-size:14px; font-weight:600; color:var(--ink-2); }
.sizes{ display:flex; flex-wrap:wrap; gap:8px; }
.sizes a{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:44px; min-width:52px; padding:0 16px;
  border:1px solid var(--line-strong); border-radius:var(--radius);
  background:var(--surface);
  font-size:14px; font-weight:500;
  transition:border-color .15s ease, background-color .15s ease;
}
.sizes a:hover{ border-color:var(--ink); }
.sizes a.active{ border-color:var(--accent-ink); box-shadow:inset 0 0 0 1px var(--accent-ink); background:var(--accent-soft); font-weight:600; }
.sizes a.is-off{ color:var(--muted); text-decoration:line-through; }
.sizes a.is-image{ padding:4px; width:88px; height:88px; background:var(--photo-bg); }
.sizes a.is-image img{ width:100%; height:100%; object-fit:contain; }

.buy-row{ display:flex; gap:12px; width:100%; margin-top:28px; }
.buy-row .btn{ flex:1; }
.buy-row + .btn{ margin-top:12px; }
.qty-row{ flex:none; }
.stepper{
  display:inline-flex; align-items:center;
  height:48px;
  border:1px solid var(--line-strong); border-radius:var(--radius);
  background:var(--surface);
}
.stepper button{ width:44px; height:100%; border:0; background:transparent; font-size:18px; color:var(--ink); }
.stepper button:hover{ background:var(--surface-2); }
.stepper button[disabled]{ opacity:.35; cursor:not-allowed; }
.stepper span{ min-width:32px; text-align:center; font-weight:600; font-variant-numeric:tabular-nums; }

.sample-box{ display:flex; align-items:center; gap:14px; width:100%; margin-top:14px; padding:14px 16px; border:1px dashed var(--line-strong); border-radius:var(--radius); background:var(--surface); }
.sample-box > .icon{ flex:none; color:var(--accent-ink); }
.sample-copy{ display:flex; flex-direction:column; gap:2px; flex:1; min-width:0; font-size:14px; line-height:1.45; color:var(--muted); }
.sample-copy b{ font-size:15px; color:var(--ink); }
.sample-box .btn{ flex:none; }
.line-tag{ align-self:flex-start; padding:2px 8px; border-radius:var(--radius); background:var(--accent-soft); color:var(--accent-ink); font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
@media (max-width:560px){
  .sample-box{ flex-wrap:wrap; }
  .sample-box .btn{ width:100%; }
}
.pdp-notes{ display:grid; gap:14px; width:100%; margin-top:32px; padding:22px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.pdp-notes li{ display:flex; gap:14px; align-items:flex-start; font-size:14px; color:var(--ink-2); line-height:1.5; }
.pdp-notes .icon{ color:var(--accent-ink); margin-top:1px; }
.pdp-notes b{ display:block; color:var(--ink); font-weight:600; }
.pdp-notes a{ text-decoration:underline; text-underline-offset:3px; }

.tabs{ width:100%; margin-top:36px; }
.tab-heads{
  display:flex; gap:4px;
  border-bottom:1px solid var(--line);
  overflow-x:auto; scrollbar-width:none;
}
.tab-heads::-webkit-scrollbar{ display:none; }
.tab-heads button{
  flex:none;
  min-height:48px; padding:0 14px;
  border:0; border-bottom:2px solid transparent; margin-bottom:-1px;
  background:none;
  font-size:15px; font-weight:500; color:var(--muted);
  white-space:nowrap;
  transition:color .15s ease, border-color .15s ease;
}
.tab-heads button:hover{ color:var(--ink); }
.tab-heads button.active{ color:var(--ink); border-bottom-color:var(--accent); font-weight:600; }
.tab-body{ padding:22px 2px 0; font-size:15px; line-height:1.7; color:var(--ink-2); max-width:64ch; }
.tab-body p + p{ margin-top:12px; }
.tab-body ul{ list-style:disc; padding-left:20px; margin:12px 0; }
.tab-body li{ margin-bottom:6px; }
.tab-body a{ text-decoration:underline; text-underline-offset:3px; }
.tab-body table{ border-collapse:collapse; width:100%; margin:12px 0; }
.tab-body td, .tab-body th{ border-bottom:1px solid var(--line); padding:8px 10px 8px 0; text-align:left; vertical-align:top; }

.project-teaser{ border-top:1px solid var(--line); }
.cg-strip{ display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:24px; }
.cg-strip .cg-card:nth-child(n+7){ display:none; }
.cg-strip .cg-open{ aspect-ratio:4 / 3; }
.cg-strip .cg-open img{ object-fit:cover; }
.cg-strip .cg-caption{ display:none; }

.cg-wall{ columns:3 260px; column-gap:24px; }
.cg-wall .cg-card{ break-inside:avoid; margin-bottom:24px; }
.cg-card{
  display:block;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  transition:box-shadow .3s var(--ease), border-color .2s ease;
}
.cg-card:hover{ border-color:var(--line-strong); box-shadow:var(--shadow-md); }
.cg-open{
  display:block; width:100%; padding:0; border:0;
  background:var(--surface-2);
  cursor:zoom-in;
  aspect-ratio:clamp(.6, var(--r, .8), 1.8);
  overflow:hidden;
}
.cg-open img{ width:100%; height:100%; object-fit:contain; transition:transform .5s var(--ease); }
.cg-card:hover .cg-open img{ transform:scale(1.02); }
.cg-card figcaption, .cg-lightbox-cap{
  display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 10px;
  padding:14px 16px 16px;
}
.cg-name{ font-weight:600; overflow-wrap:anywhere; }
.cg-city{ font-size:14px; color:var(--muted); }
.cg-caption{ flex-basis:100%; margin-top:4px; font-size:14px; line-height:1.5; color:var(--ink-2); white-space:pre-line; overflow-wrap:anywhere; }
.cg-product{ flex-basis:100%; margin-top:8px; font-size:14px; font-weight:600; color:var(--accent-ink); text-decoration:underline; text-underline-offset:3px; }
.cg-product:not([href]){ text-decoration:none; color:var(--muted); }

.cg-lightbox{
  padding:0; border:0; background:transparent; overflow:visible;
  max-width:min(94vw, 1100px); max-height:94vh;
}
.cg-lightbox::backdrop{ background:var(--scrim); }
.cg-lightbox-inner{
  position:relative;
  display:flex; flex-direction:column;
  padding:12px;
  background:var(--surface); color:var(--ink);
  border-radius:var(--radius);
  box-shadow:var(--shadow-lg);
}
.cg-lightbox img{ display:block; margin:0 auto; max-width:100%; height:auto; background:var(--surface-2); }
.cg-lightbox-close{
  position:absolute; top:-18px; right:-18px; z-index:2;
  width:44px; height:44px;
  display:flex; align-items:center; justify-content:center;
  border:1px solid var(--line-strong); border-radius:50%;
  background:var(--surface); color:var(--ink);
  box-shadow:var(--shadow-sm);
}
.cg-lightbox-close:hover{ background:var(--accent); color:var(--on-accent); border-color:var(--accent); }
.cg-lightbox [hidden]{ display:none !important; }

.community-section{ padding:48px 0 88px; }
.community-layout{ display:grid; grid-template-columns:minmax(0, 1fr) 400px; gap:48px; align-items:start; }
.community-aside{ position:sticky; top:calc(var(--header-h) + 24px); }
.community-aside .form-grid{ grid-template-columns:minmax(0, 1fr); }
#erfahrung-teilen, #projekt-einreichen{ scroll-margin-top:calc(var(--header-h) + 24px); }

.ts-list{ list-style:none; display:grid; gap:20px; }
.ts-entry{
  padding:28px 30px 24px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
}
.ts-message p{
  font-family:var(--font-display);
  font-size:22px; line-height:1.45;
  white-space:pre-line; overflow-wrap:anywhere;
}
.ts-sign{
  display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 12px;
  margin-top:18px; padding-top:14px;
  border-top:1px solid var(--line);
  font-size:14px;
}
.ts-name{ font-weight:600; }
.ts-city{ color:var(--muted); }
.ts-date{ margin-left:auto; color:var(--muted); font-variant-numeric:tabular-nums; }
.ts-reply{
  margin-top:18px; padding:16px 18px;
  background:var(--accent-soft);
  border-left:3px solid var(--accent-ink);
  border-radius:var(--radius);
}
.ts-reply-by{ display:block; margin-bottom:6px; font-size:13px; font-weight:600; color:var(--accent-ink); }
.ts-reply p{ font-size:15px; color:var(--ink-2); white-space:pre-line; overflow-wrap:anywhere; }

.pager{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:40px; }
.pager-state{ font-size:14px; color:var(--muted); font-variant-numeric:tabular-nums; }

.upload-section{ background:var(--surface-2); }
.upload-form{ margin:0; }
.upload-grid{ display:grid; grid-template-columns:minmax(0, 5fr) minmax(0, 7fr); gap:32px; align-items:start; }
.upload-side .form-grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
.drop-zone{
  position:relative;
  display:flex; align-items:center; justify-content:center;
  aspect-ratio:4 / 3;
  border:1px dashed var(--line-strong);
  border-radius:var(--radius);
  background:var(--bg);
  overflow:hidden; text-align:center; cursor:pointer;
  transition:border-color .15s ease, background-color .15s ease;
}
.drop-zone:hover, .drop-zone.is-over{ border-color:var(--accent-ink); background:var(--accent-soft); }
.drop-zone:focus-within{ outline:2px solid var(--accent-ink); outline-offset:3px; }
.drop-zone input{ position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.drop-preview{ position:absolute; inset:0; width:100%; height:100%; object-fit:contain; background:var(--bg); pointer-events:none; }
.drop-hint{ display:flex; flex-direction:column; align-items:center; gap:8px; padding:24px; pointer-events:none; font-size:14px; color:var(--muted); line-height:1.5; }
.drop-hint .icon{ color:var(--accent-ink); }
.drop-hint strong{ font-size:16px; color:var(--ink); }
.drop-zone.has-file .drop-hint{ display:none; }
.field.has-error .drop-zone{ border-color:var(--danger); }

.community-done, .service-done{ display:grid; justify-items:center; gap:14px; padding:20px 0 8px; text-align:center; }
.community-done p, .service-done p{ max-width:48ch; color:var(--ink-2); }
.service-done p.field-note{ font-size:13px; color:var(--muted); }
.service-done:focus{ outline:none; }
.done-icon{
  width:56px; height:56px;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%;
  background:var(--accent-soft); color:var(--accent-ink);
}

.form-card{
  position:relative;
  padding:32px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
}
.form-card h2, .form-card h3, .form-title{ font-family:var(--font-display); font-size:26px; font-weight:600; margin:0 0 20px; }
.form-grid{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:18px; }
.form-grid.full{ grid-template-columns:minmax(0, 1fr); }
.field{ display:flex; flex-direction:column; gap:8px; min-width:0; }
.field.span2{ grid-column:1 / -1; }
.field label{ font-size:14px; font-weight:600; color:var(--ink-2); }
.opt-hint{ font-weight:400; color:var(--muted); }
.field input, .field select, .field textarea{
  width:100%; min-width:0;
  min-height:48px;
  padding:12px 14px;
  background:var(--bg);
  border:1px solid var(--line-strong);
  border-radius:var(--radius);
  color:var(--ink);
  font-size:16px; line-height:1.4;
  outline:none;
  transition:border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}
.field textarea{ min-height:132px; resize:vertical; line-height:1.55; }
.field select{
  appearance:none;
  padding-right:40px;
  background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);
  background-position:calc(100% - 20px) 50%, calc(100% - 15px) 50%;
  background-size:5px 5px;
  background-repeat:no-repeat;
}
.field input::placeholder, .field textarea::placeholder{ color:var(--muted); opacity:.75; }
.field input:hover, .field select:hover, .field textarea:hover{ border-color:var(--ink-2); }
.field input:focus, .field select:focus, .field textarea:focus{ border-color:var(--accent-ink); box-shadow:0 0 0 3px var(--accent-soft); background:var(--surface); }
.field.has-error input, .field.has-error select, .field.has-error textarea{ border-color:var(--danger); }
.field.has-error label{ color:var(--danger); }
.field-note{ font-size:13px; color:var(--muted); line-height:1.45; }
.field-note[data-counter]{ align-self:flex-end; font-variant-numeric:tabular-nums; }
.field-note[data-counter].is-full{ color:var(--danger); }
.form-status{ margin-top:14px; padding:12px 14px; border-left:3px solid var(--danger); background:var(--danger-soft); color:var(--ink); font-size:14px; font-weight:500; border-radius:var(--radius); }
.hp-field{ position:absolute; left:-10000px; top:auto; width:1px; height:1px; overflow:hidden; }

.check-row{ display:flex; gap:12px; align-items:flex-start; margin:20px 0; font-size:14px; line-height:1.5; color:var(--ink-2); cursor:pointer; }
.check-row input{ flex:none; width:18px; height:18px; margin-top:2px; accent-color:var(--accent-ink); }
.check-row a{ color:var(--accent-ink); text-decoration:underline; text-underline-offset:3px; }
.field-check.has-error{ color:var(--danger); }

.service-section{ padding:48px 0 88px; }
.service-layout{ display:grid; grid-template-columns:minmax(0, 1fr) 360px; gap:40px; align-items:start; }
.service-form{ margin:0; }
.service-form .form-grid{ margin-bottom:18px; }
.service-privacy{ display:block; margin:0 0 18px; }
.service-privacy a{ text-decoration:underline; text-underline-offset:3px; }
.service-aside{ display:grid; gap:20px; position:sticky; top:calc(var(--header-h) + 24px); }
.service-card{ padding:24px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); }
.service-card h2, .service-card h3{ font-family:var(--font-body); font-size:16px; font-weight:600; margin:0 0 10px; }
.service-card p{ font-size:15px; color:var(--ink-2); margin:0 0 12px; }
.service-card p:last-child{ margin-bottom:0; }
.service-list, .service-steps{ display:grid; gap:8px; padding-left:20px; font-size:15px; color:var(--ink-2); line-height:1.5; }
.service-list{ list-style:disc; }
.service-steps{ list-style:decimal; }
.service-link{ display:inline-flex; align-items:center; gap:6px; min-height:44px; font-weight:600; color:var(--accent-ink); text-decoration:underline; text-underline-offset:4px; }
.service-hotline{ display:inline-flex; align-items:center; gap:10px; font-family:var(--font-display); font-size:28px; font-weight:600; color:var(--ink); margin-bottom:6px; }
.service-hotline .icon{ color:var(--accent-ink); }

.checkout{ padding:40px 0 88px; }
.checkout-head-row{ margin-bottom:32px; }
.checkout-head-row h1{ font-size:clamp(32px, 3.6vw, 46px); }
.checkout-reassure{ margin-top:10px; color:var(--ink-2); }
.cart-layout{ display:grid; grid-template-columns:minmax(0, 7fr) minmax(0, 5fr); gap:40px; align-items:start; }
.cart-layout > *{ min-width:0; }
.checkout .form-card{ margin-bottom:20px; }

.co-step-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:22px; }
.co-step-head h2{ display:flex; align-items:center; gap:14px; margin:0; font-family:var(--font-body); font-size:18px; font-weight:600; }
.co-step-num{
  width:30px; height:30px; flex:none;
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid var(--line-strong); border-radius:50%;
  font-size:14px; font-weight:600; font-variant-numeric:tabular-nums;
}
.co-step[data-state="open"] .co-step-num{ border-color:var(--accent-ink); color:var(--accent-ink); }
.co-step[data-state="done"] .co-step-num{ background:var(--accent); border-color:var(--accent); color:var(--on-accent); }
.co-step[data-state="locked"]{ background:transparent; }
.co-step[data-state="locked"] .co-step-head{ margin-bottom:0; }
.co-step[data-state="locked"] .co-step-head h2{ color:var(--muted); }
.co-locked-note{ margin:10px 0 0 44px; font-size:14px; color:var(--muted); }
.co-next{ margin-top:22px; }
.co-lead{ margin:0 0 18px; font-size:15px; color:var(--ink-2); }
.co-lead b{ color:var(--ink); overflow-wrap:anywhere; }
.co-code-input{ font-size:26px !important; font-weight:600; letter-spacing:.45em; text-align:center; padding-left:.45em !important; font-variant-numeric:tabular-nums; }
.co-actions{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px 20px; margin-top:16px; }
.co-link{
  background:none; border:0; padding:6px 0;
  font-size:14px; font-weight:600; color:var(--accent-ink);
  text-decoration:underline; text-underline-offset:3px;
}
.co-link[disabled]{ color:var(--muted); text-decoration:none; cursor:default; }
.co-error{ margin:16px 0 0; padding:12px 14px; border-left:3px solid var(--danger); background:var(--danger-soft); font-size:14px; font-weight:500; color:var(--ink); border-radius:var(--radius); }
.co-step-summary{ display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:14px 24px; font-size:15px; line-height:1.55; color:var(--ink-2); }
.co-step-summary b{ color:var(--ink); word-break:break-word; }
[data-role="contact-summary"]{ display:flex; flex-direction:column; gap:4px; }
.co-sum-label{ display:block; margin-bottom:4px; font-size:13px; font-weight:600; color:var(--muted); }
.co-address{ border:0; padding:0; margin:0 0 6px; min-width:0; }
.co-address legend{ padding:0; margin-bottom:12px; }
.co-book{ display:grid; grid-template-columns:repeat(auto-fill, minmax(210px, 1fr)); gap:10px; margin-bottom:16px; }
.co-book-opt{
  display:flex; gap:10px; align-items:flex-start;
  padding:14px; cursor:pointer;
  border:1px solid var(--line-strong); border-radius:var(--radius);
  background:var(--bg);
  font-size:14px; line-height:1.5; color:var(--ink-2);
}
.co-book-opt input{ margin-top:3px; accent-color:var(--accent-ink); flex:none; }
.co-book-opt:has(input:checked){ border-color:var(--accent-ink); box-shadow:inset 0 0 0 1px var(--accent-ink); background:var(--accent-soft); color:var(--ink); }
.co-book-opt:focus-within{ outline:2px solid var(--accent-ink); outline-offset:2px; }
.co-book-new{ align-items:center; }
.co-same{ margin:6px 0 18px; }
.co-two{ margin:10px 0 20px; }
.co-company{ margin-bottom:22px; }

.pay-options{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px; }
.pay-opt{
  display:flex; align-items:center; justify-content:center; gap:12px;
  width:100%; min-height:52px; padding:12px 16px;
  border:1px solid var(--line-strong); border-radius:var(--radius);
  background:var(--bg);
  font-size:15px; font-weight:500; line-height:1.35; color:var(--ink-2);
  text-align:center;
  transition:border-color .15s ease, background-color .15s ease;
}
.pay-opt:hover{ border-color:var(--ink-2); }
.pay-opt.active{ border-color:var(--accent-ink); box-shadow:inset 0 0 0 1px var(--accent-ink); background:var(--accent-soft); color:var(--ink); }
.pay-opt:focus-visible{ outline:2px solid var(--accent-ink); outline-offset:2px; }
.shipping-opt{ justify-content:space-between; text-align:left; }
.opt-sub{ font-size:13px; font-weight:400; color:var(--muted); }
.opt-price{ font-weight:600; white-space:nowrap; color:var(--ink); }
.pay-methods{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px; }
.pay-method{ justify-content:flex-start; text-align:left; min-height:58px; }
.pay-method img{ width:32px; height:24px; object-fit:contain; flex:none; }
.pay-method span{ min-width:0; overflow-wrap:anywhere; }
.method-note{ margin-top:14px; font-size:14px; color:var(--ink-2); }
.co-pay-note{ display:block; margin-top:14px; }

.summary-card{
  padding:28px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
}
.summary-head{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:20px; }
.summary-head h2{ font-family:var(--font-display); font-size:28px; font-weight:600; }
.summary-count{ font-size:14px; color:var(--muted); white-space:nowrap; }
.mini-cart-empty{ font-size:15px; color:var(--muted); margin:0 0 12px; }
.mini-cart-row{ display:flex; gap:14px; align-items:flex-start; padding:0 0 16px; margin-bottom:16px; border-bottom:1px solid var(--line); }
.mini-cart-row .thumb{
  width:64px; height:64px; flex:none;
  padding:4px;
  border:1px solid var(--line); border-radius:var(--radius);
  background-color:var(--photo-bg);
  background-size:contain; background-repeat:no-repeat; background-position:center; background-origin:content-box;
}
.mini-cart-body{ min-width:0; display:flex; flex-direction:column; gap:4px; }
.mini-cart-row .name{ font-size:15px; font-weight:600; color:var(--ink); overflow-wrap:anywhere; }
.mini-cart-row .meta{ font-size:13px; color:var(--muted); }
.mini-cart-row .price{ margin-left:auto; font-size:15px; font-weight:600; white-space:nowrap; font-variant-numeric:tabular-nums; }
.mini-cart-row .ship-free{ color:var(--accent-ink); font-weight:600; }
.mini-cart-row.is-busy{ opacity:.5; pointer-events:none; }
.mini-cart-qty{ display:flex; align-items:center; gap:14px; margin-top:6px; flex-wrap:wrap; }
.mini-cart-qty .stepper{ height:36px; }
.mini-cart-qty .stepper button{ width:34px; font-size:16px; }
.mini-cart-qty .stepper span{ min-width:26px; font-size:14px; }
.mini-cart-remove{ background:none; border:0; padding:4px 0; font-size:13px; color:var(--muted); text-decoration:underline; text-underline-offset:3px; }
.mini-cart-remove:hover{ color:var(--danger); }

.co-voucher{ margin:4px 0 16px; }
.co-voucher-toggle summary{
  display:inline-flex; align-items:center; gap:6px; padding:6px 0; cursor:pointer; list-style:none;
  font-size:14px; font-weight:600; color:var(--accent-ink);
  text-decoration:underline; text-underline-offset:3px;
}
.co-voucher-toggle summary::-webkit-details-marker{ display:none; }
.co-voucher-toggle summary::after{ content:"+"; text-decoration:none; }
.co-voucher-toggle[open] summary::after{ content:"\2212"; }
.co-voucher-form{ display:flex; gap:8px; margin-top:10px; }
.co-voucher-form input{
  flex:1; min-width:0; min-height:44px; padding:8px 12px;
  border:1px solid var(--line-strong); border-radius:var(--radius);
  background:var(--bg); color:var(--ink);
  font-size:16px; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  outline:none;
}
.co-voucher-form input:focus{ border-color:var(--accent-ink); box-shadow:0 0 0 3px var(--accent-soft); }
.co-voucher-form .btn{ flex:none; min-height:44px; }
.co-voucher-applied{ display:flex; flex-wrap:wrap; align-items:center; gap:4px 12px; padding:10px 12px; border:1px dashed var(--accent-ink); border-radius:var(--radius); background:var(--accent-soft); }
.co-voucher-code{ font-weight:700; letter-spacing:.06em; overflow-wrap:anywhere; }
.co-voucher-label{ flex:1 1 140px; min-width:0; font-size:14px; }
.co-voucher-note{ margin:8px 0 0; font-size:14px; font-weight:500; color:var(--accent-ink); }
.co-voucher-note[data-kind="error"]{ color:var(--danger); }

.summary-sums{ border-top:1px solid var(--line); margin-top:8px; padding-top:16px; }
.summary-row{ display:flex; justify-content:space-between; gap:12px; margin-bottom:10px; font-size:15px; color:var(--ink-2); }
.summary-row > span:last-child{ font-variant-numeric:tabular-nums; white-space:nowrap; }
.summary-row.total{ margin-top:8px; padding-top:14px; border-top:1px solid var(--line); font-size:18px; font-weight:700; color:var(--ink); }
.summary-discount > span:last-child{ color:var(--accent-ink); font-weight:600; }
.summary-due{ margin-top:6px; }
.summary-card .price-note{ margin-top:10px; }
.summary-card .price-note a{ text-decoration:underline; }
.summary-card .btn.block{ margin-top:8px; }
.order-note{ margin-top:12px; font-size:13px; color:var(--muted); text-align:center; }

.checkout-head .header-row{ gap:16px; }
.checkout-head-meta{ display:flex; align-items:center; gap:24px; flex-wrap:wrap; justify-content:flex-end; }
.secure-note{ display:inline-flex; align-items:center; gap:8px; font-size:14px; font-weight:500; color:var(--accent-ink); }
.back-link{ display:inline-flex; align-items:center; min-height:44px; font-size:14px; font-weight:600; color:var(--ink-2); text-decoration:underline; text-underline-offset:3px; }
.back-link:hover{ color:var(--ink); }

.checkout-bar{
  position:fixed; left:0; right:0; bottom:0; z-index:150;
  display:none;
  align-items:center; justify-content:space-between; gap:16px;
  padding:12px clamp(16px, 4vw, 24px);
  padding-bottom:calc(12px + env(safe-area-inset-bottom));
  background:var(--surface);
  border-top:1px solid var(--line-strong);
  box-shadow:0 -8px 24px rgba(22,25,27,.08);
}
.checkout-bar-sum{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.checkout-bar-sum .k{ font-size:13px; color:var(--muted); }
.checkout-bar-sum .v{ font-size:18px; font-weight:700; font-variant-numeric:tabular-nums; }

.checkout-foot{ padding:28px 0 32px; border-top:1px solid var(--line); }
.foot-legal{
  display:flex; align-items:center; justify-content:space-between; gap:14px 24px; flex-wrap:wrap;
  font-size:14px; color:var(--muted);
}
.foot-legal nav{ display:flex; gap:8px 20px; flex-wrap:wrap; }
.foot-legal a:hover{ color:var(--ink); text-decoration:underline; text-underline-offset:3px; }

.toast-wrap{
  position:fixed; right:20px; bottom:20px; z-index:1000;
  display:flex; flex-direction:column; gap:10px;
  pointer-events:none;
}
.toast{
  max-width:360px;
  padding:14px 18px;
  background:var(--ink); color:var(--bg);
  border-radius:var(--radius);
  box-shadow:var(--shadow-lg);
  font-size:15px; font-weight:500; line-height:1.45;
  opacity:0; transform:translateY(12px);
  transition:opacity .25s var(--ease), transform .25s var(--ease);
}
.toast.show{ opacity:1; transform:none; }
.toast.error{ background:var(--danger); color:#fff; }
html[data-theme="dark"] .toast.error{ color:#1a0d0c; }
.toast-undo{ display:flex; align-items:center; gap:16px; pointer-events:auto; }
.toast-undo a, .toast-undo button{
  background:none; border:0; padding:0;
  font-size:14px; font-weight:700; color:inherit;
  text-decoration:underline; text-underline-offset:3px;
  white-space:nowrap;
}

.order-success{ padding:56px 0 96px; }
.order-success .wrap{ max-width:760px; }
.order-success [data-view]{ text-align:center; }
.order-success [data-view] h1{ font-size:clamp(34px, 4vw, 50px); }
.order-success [data-view] .lead{ margin:16px auto 0; }
.order-hero{ display:grid; justify-items:center; gap:16px; margin-bottom:40px; }
.order-check{
  width:72px; height:72px;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%;
  background:var(--accent); color:var(--on-accent);
}
.order-success .is-shown .order-check{ animation:orderCheck .5s var(--ease) both; }
@keyframes orderCheck{ from{ transform:scale(.6); opacity:0; } to{ transform:none; opacity:1; } }
.success-ctas{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-top:32px; }

.receipt{
  text-align:left;
  padding:32px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  font-size:15px;
}
.receipt-head{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; flex-wrap:wrap; padding-bottom:18px; margin-bottom:18px; border-bottom:1px solid var(--line); }
.receipt-head h2{ font-size:28px; }
.receipt-head p{ font-size:14px; color:var(--muted); }
.receipt-meta{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:14px 24px; padding-bottom:18px; margin-bottom:18px; border-bottom:1px solid var(--line); }
.receipt-meta > div{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.receipt-meta > div > span:first-child{ font-size:13px; color:var(--muted); }
.receipt-meta > div > span:last-child{ font-weight:600; overflow-wrap:anywhere; }
.receipt-lines{ padding-bottom:12px; margin-bottom:14px; border-bottom:1px solid var(--line); }
.receipt-line{ display:grid; grid-template-columns:auto minmax(0, 1fr) auto; gap:12px; margin-bottom:10px; }
.receipt-qty{ color:var(--muted); font-variant-numeric:tabular-nums; }
.receipt-name{ overflow-wrap:anywhere; }
.receipt-price, .receipt-row > span:last-child{ white-space:nowrap; text-align:right; font-variant-numeric:tabular-nums; }
.receipt-row{ display:flex; justify-content:space-between; gap:16px; margin-bottom:6px; color:var(--ink-2); }
.receipt-total{ margin:10px 0 8px; padding-top:12px; border-top:1px solid var(--line); font-size:19px; font-weight:700; color:var(--ink); }
.receipt-tax{ font-size:13px; color:var(--muted); }
.receipt-due{ font-weight:700; color:var(--ink); }
.receipt-addresses{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:20px; margin-top:16px; padding-top:18px; border-top:1px solid var(--line); }
.receipt-label{ display:block; margin-bottom:6px; font-size:13px; color:var(--muted); }
.receipt-addresses p{ font-size:15px; overflow-wrap:anywhere; }
.receipt-foot{ margin-top:18px; padding-top:18px; border-top:1px solid var(--line); font-size:14px; color:var(--ink-2); }
.receipt-foot a{ color:var(--accent-ink); text-decoration:underline; text-underline-offset:3px; }

.status-page{ padding:96px 0; }
.status-inner{ display:grid; justify-items:center; gap:18px; text-align:center; max-width:720px; }
.status-inner .lead{ margin:0 auto; }
.status-code{ font-family:var(--font-display); font-size:clamp(72px, 12vw, 132px); font-weight:500; line-height:1; color:var(--accent-ink); font-variant-numeric:lining-nums; }
.status-ctas{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-top:8px; }
.maintenance{ min-height:calc(100vh - var(--header-h)); min-height:calc(100dvh - var(--header-h)); display:flex; align-items:center; }
.maintenance .logo{ margin-bottom:12px; }

.countdown{ display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:12px; width:100%; max-width:480px; margin:20px auto 0; }
.count-box{ padding:16px 6px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); }
.count-num{ display:block; font-family:var(--font-display); font-size:clamp(30px, 4.2vw, 44px); font-weight:600; line-height:1; font-variant-numeric:lining-nums tabular-nums; }
.count-label{ display:block; margin-top:8px; font-size:13px; color:var(--muted); }
.countdown-done{ margin-top:20px; }

footer.site{ margin-top:0; background:var(--surface); border-top:1px solid var(--line-strong); box-shadow:inset 0 4px 0 -3px var(--line); }
footer.site:not(.checkout-foot){ padding:64px 0 28px; }
.foot-grid{ display:grid; grid-template-columns:minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1fr); gap:40px; padding-bottom:40px; border-bottom:1px solid var(--line); }
.foot-brand p{ max-width:40ch; margin-top:18px; font-size:15px; color:var(--ink-2); }
.foot-contact{ display:flex; flex-wrap:wrap; align-items:center; gap:4px 12px; font-weight:600; }
.foot-contact .icon{ color:var(--accent-ink); }
.foot-contact span{ font-weight:400; color:var(--muted); font-size:14px; }
.foot-title{ font-family:var(--font-body); font-size:14px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--ink); margin-bottom:16px; }
.foot-grid li a{ display:inline-block; padding:7px 0; font-size:15px; color:var(--ink-2); overflow-wrap:anywhere; hyphens:auto; }
.foot-grid li a:hover{ color:var(--ink); text-decoration:underline; text-underline-offset:3px; }
.foot-bottom{ display:flex; justify-content:space-between; gap:10px 24px; flex-wrap:wrap; padding-top:22px; font-size:14px; color:var(--muted); }
.foot-bottom a{ text-decoration:underline; text-underline-offset:3px; }

.legal-content{ max-width:760px; }
.legal-content h2{ font-size:30px; margin:44px 0 14px; }
.legal-content h2:first-child{ margin-top:0; }
.legal-content h3{ font-family:var(--font-body); font-size:17px; font-weight:600; margin:26px 0 10px; }
.legal-content p, .legal-content li{ color:var(--ink-2); line-height:1.75; margin:0 0 14px; }
.legal-content ul{ list-style:disc; padding-left:20px; }
.legal-content a{ color:var(--accent-ink); text-decoration:underline; }
.legal-content table{ width:100%; border-collapse:collapse; margin:0 0 20px; }
.legal-content td, .legal-content th{ border:1px solid var(--line); padding:10px 12px; text-align:left; vertical-align:top; }

.can-reveal [data-reveal]{
  opacity:0;
  transform:translateY(16px);
  transition:opacity .7s var(--ease), transform .7s var(--ease);
  transition-delay:calc(var(--i, 0) * 70ms);
}
.can-reveal [data-reveal].is-visible{ opacity:1; transform:none; }

@media (min-width:981px){
  .checkout .summary-card{ position:sticky; top:24px; }
}

@media (max-width:1100px){
  .prod-grid{ grid-template-columns:repeat(3, minmax(0, 1fr)); }
  .focus-grid{ grid-template-columns:minmax(0, 1fr); }
  .focus-copy{ position:static; }
  .community-layout{ grid-template-columns:minmax(0, 1fr) 340px; gap:36px; }
  .service-layout{ grid-template-columns:minmax(0, 1fr) 320px; gap:28px; }
}

@media (max-width:980px){
  :root{ --header-h:72px; }
  nav.main-nav{
    display:none;
    position:absolute; top:100%; left:0; right:0;
    flex-direction:column; align-items:stretch; gap:0;
    padding:8px clamp(16px, 4vw, 40px) 20px;
    background:var(--surface);
    border-bottom:1px solid var(--line-strong);
    box-shadow:var(--shadow-md);
    max-height:calc(100dvh - 100%);
    overflow-y:auto;
    overscroll-behavior:contain;
  }
  nav.main-nav.open{ display:flex; }
  nav.main-nav a{ width:100%; min-height:52px; padding:0 4px; font-size:17px; border-bottom:1px solid var(--line); border-radius:0; }
  nav.main-nav a:hover{ background:none; color:var(--accent-ink); }
  .nav-toggle{ display:inline-flex; }
  .nav-item{ width:100%; flex-wrap:wrap; }
  .nav-item.has-sub{ border-bottom:1px solid var(--line); }
  .nav-item.has-sub > a{ flex:1; width:auto; padding-right:0; border-bottom:0; }
  .nav-item.has-sub::after{ display:none; }
  .sub-toggle{ display:flex; align-items:center; justify-content:center; width:52px; height:52px; margin-right:-12px; }
  .sub-toggle .icon{ transition:transform .2s var(--ease); }
  .nav-item.open .sub-toggle .icon{ transform:rotate(180deg); }
  .nav-item.has-sub:hover .sub-nav, .nav-item.has-sub:focus-within .sub-nav{ display:none; }
  .sub-nav{ position:static; width:100%; min-width:0; padding:0 0 10px 12px; background:none; border:0; box-shadow:none; }
  .nav-item.has-sub.open .sub-nav{ display:block; }
  nav.main-nav .sub-nav a{ min-height:44px; font-size:16px; border-bottom:0; color:var(--ink-2); }

  section{ padding:72px 0; }
  .hero{ padding:32px 0 56px; }
  .hero-grid{ grid-template-columns:minmax(0, 1fr); }
  .hero-media{ order:-1; aspect-ratio:16 / 10; }
  .cat-grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); gap:16px; }
  .cat-card, .cat-card.is-wide{ grid-column:span 1; }
  .cat-card.is-solo, .cat-card:last-child:nth-child(odd){ grid-column:1 / -1; }
  .cat-card.is-wide .cat-media{ aspect-ratio:4 / 3; }
  .cat-card:last-child:nth-child(odd) .cat-media{ aspect-ratio:16 / 9; }
  .spotlight{ grid-template-columns:minmax(0, 1fr); }
  .spotlight-media{ max-width:520px; }
  .page-head.has-media .page-head-grid{ grid-template-columns:minmax(0, 1fr); }
  .page-head-media{ order:-1; aspect-ratio:21 / 9; }
  .pdp{ grid-template-columns:minmax(0, 1fr); }
  .pdp-gallery{ position:static; }
  .pdp-main{ max-height:none; }
  .cart-layout{ grid-template-columns:minmax(0, 1fr); gap:24px; }
  .community-layout, .service-layout{ grid-template-columns:minmax(0, 1fr); gap:40px; }
  .community-aside, .service-aside{ position:static; }
  .community-aside .form-grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .upload-grid{ grid-template-columns:minmax(0, 1fr); gap:24px; }
  .foot-grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .foot-brand{ grid-column:1 / -1; }
  .cg-strip{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .cg-strip .cg-card:nth-child(n+5){ display:none; }
}

@media (max-width:768px){
  .prod-grid, .prod-grid.is-three{ grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px; }
  .form-grid, .upload-side .form-grid, .community-aside .form-grid{ grid-template-columns:minmax(0, 1fr); }
  .pay-methods, .pay-options{ grid-template-columns:minmax(0, 1fr); }
  .receipt-meta, .receipt-addresses{ grid-template-columns:minmax(0, 1fr); }
}

@media (max-width:600px){
  body{ font-size:15px; }
  section{ padding:56px 0; }
  .lead, .hero-copy p{ font-size:16px; }
  .topbar{ font-size:13px; }
  .topbar-hours, .topbar-link{ display:none; }
  .logo-art{ height:58px; }
  .logo-art.is-full{ height:auto; width:210px; }
  .hero{ padding:20px 0 48px; }
  .hero-copy{ gap:18px; }
  .hero-copy h1{ font-size:clamp(34px, 9.4vw, 44px); }
  .hero-ctas{ width:100%; }
  .hero-ctas .btn{ flex:1 1 100%; }
  .trust-list{ grid-template-columns:minmax(0, 1fr); gap:12px; padding-top:18px; padding-bottom:18px; }
  .section-head{ margin-bottom:28px; }
  .cat-grid{ grid-template-columns:minmax(0, 1fr); }
  .cat-card.is-solo, .cat-card:last-child:nth-child(odd){ grid-column:auto; }
  .cat-media, .cat-card.is-wide .cat-media, .cat-card:last-child:nth-child(odd) .cat-media{ aspect-ratio:16 / 9; }
  .cat-body{ padding:16px 60px 18px 18px; }
  .cat-name{ font-size:24px; }
  .prod-info{ padding:12px 12px 14px; gap:6px; }
  .prod-info h3{ font-size:18px; }
  .prod-price .now{ font-size:16px; }
  .prod-add{ min-height:44px; padding:0 8px; font-size:13px; }
  .prod-add .icon{ display:none; }
  .voice-row{ grid-auto-columns:86%; }
  .voice{ padding:22px; }
  .voice blockquote p{ font-size:20px; }
  .advice{ padding-bottom:56px; }
  .advice-inner{ padding:44px 20px; }
  .page-head{ padding:28px 0 32px; }
  .page-head-row .btn{ width:100%; }
  .pdp-section{ padding:16px 0 56px; }
  .pdp-price .now{ font-size:34px; }
  .buy-row{ flex-wrap:wrap; }
  .pdp-thumbs button{ width:68px; height:68px; }
  .form-card, .summary-card{ padding:20px; }
  .receipt{ padding:20px; }
  .ts-entry{ padding:22px 20px 18px; }
  .ts-message p{ font-size:20px; }
  .ts-date{ margin-left:0; flex-basis:100%; }
  .cg-wall{ columns:2; column-gap:12px; }
  .cg-wall .cg-card{ margin-bottom:12px; }
  .cg-card figcaption{ padding:10px 12px 12px; font-size:14px; }
  .cg-strip{ gap:12px; }
  .pager{ flex-wrap:wrap; justify-content:center; }
  .pager-state{ order:-1; flex-basis:100%; text-align:center; }
  .cg-lightbox-close{ top:8px; right:8px; }
  .checkout{ padding:24px 0 56px; }
  .co-locked-note{ margin-left:0; }
  .checkout-bar{ display:flex; }
  body.is-checkout{ padding-bottom:80px; }
  .checkout-head-meta{ gap:12px; }
  .back-link{ display:none; }
  .toast-wrap{ left:16px; right:16px; bottom:16px; }
  .toast{ max-width:none; }
  .foot-grid{ gap:28px; }
  .foot-bottom{ flex-direction:column; }
  .status-page{ padding:64px 0; }
}

@media (max-width:380px){
  .wrap{ padding:0 16px; }
  .prod-grid, .prod-grid.is-three{ gap:10px; }
  .prod-media{ padding:6%; }
  .prod-info{ padding:10px 10px 12px; }
  .prod-info h3{ font-size:17px; }
  .prod-add{ font-size:12.5px; padding:0 6px; }
}

@media (max-width:339px){
  .prod-grid, .prod-grid.is-three{ grid-template-columns:minmax(0, 1fr); }
  .cg-wall{ columns:1; }
  .countdown{ gap:6px; }
}

@media (pointer:coarse){
  .prod-card:hover, .cat-card:hover, .cg-card:hover{ box-shadow:none; }
  .prod-card:hover .prod-media img, .cat-card:hover .cat-media img{ transform:none; }
}

@media (prefers-reduced-motion:reduce){
  *, *::before, *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    transition-delay:0s !important;
    scroll-behavior:auto !important;
  }
}

@media print{
  .topbar, header.site, footer.site, .nav-toggle, .toast-wrap, .prod-add, .btn, .checkout-bar{ display:none !important; }
  body{ background:#fff; color:#000; }
}
