:root {
  --bg: #f4f1ea;
  --ink: #1c2416;
  --muted: #5c6b52;
  --green: #2f6b3a;
  --green-2: #3e8a4c;
  --line: #d5d0c4;
  --err: #a33;
}
* { box-sizing: border-box; }
html {
  overflow-x: hidden;
  max-width: 100%;
}
body {
  margin: 0;
  font: 16px/1.45 ui-sans-serif, system-ui, -apple-system, sans-serif;
  background: var(--bg);
  color: var(--ink);
  overflow-x: hidden;
  max-width: 100%;
  position: relative;
}
.top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 22px;
  border-bottom: 1px solid var(--line);
  background: #fff;
  min-width: 0;
  max-width: 100%;
}
.top nav {
  min-width: 0;
  max-width: 100%;
}
.brand { font-weight: 800; color: var(--green); text-decoration: none; font-size: 18px; }
nav a { margin-left: 16px; color: var(--ink); }
a.tg { color: var(--green); font-weight: 650; }

.ship-banner {
  margin: 0;
  padding: 10px 22px;
  text-align: center;
  font-size: 13px;
  line-height: 1.5;
  color: var(--green);
  background: #eef4ee;
  border-bottom: 1px solid var(--line);
  max-width: none;
}
.ship-banner span { padding: 0 0.35em; color: var(--muted); }
@media (max-width: 640px) {
  .ship-banner { font-size: 12px; padding: 8px 14px; }
}
main { max-width: 920px; margin: 0 auto; padding: 28px 18px 60px; overflow-wrap: anywhere; }
footer { max-width: 920px; margin: 0 auto; padding: 0 18px 40px; color: var(--muted); font-size: 13px; overflow-wrap: anywhere; }
.legal { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); font-size: 12px; line-height: 1.45; }
.legal p { margin: 0 0 8px; }
.agree { font-size: 13px; color: var(--ink); display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: start; }
h1 { margin: 0 0 8px; }
.lede { color: var(--muted); }
.copy { max-width: 40rem; margin: 18px 0 28px; color: var(--ink); }
.copy h2 { font-size: 1.1rem; margin: 22px 0 8px; }
.copy ol { margin: 0 0 14px; padding-left: 1.2rem; }
.copy p { margin: 0 0 12px; }
#catalog {
  scroll-margin-top: 96px;
}
.catalog { list-style: none; padding: 0; display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.card {
  display: block;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
  color: inherit;
}

.card-media { position: relative; overflow: hidden; max-width: 100%; }
.card-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 1px 4px rgba(28, 36, 22, 0.14);
  color: var(--ink);
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  display: grid;
  place-items: center;
}
.card-nav:hover { background: #fff; }
.card-nav-prev { left: 8px; }
.card-nav-next { right: 8px; }

.card-carousel {
  display: flex;
  width: 100%;
  max-width: 100%;
  height: 220px;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x pinch-zoom;
  background: #e8e4da;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.card-carousel::-webkit-scrollbar { display: none; }
.card-slide {
  flex: 0 0 100%;
  display: block;
  scroll-snap-align: start;
}
.card-carousel img, .product img {
  display: block;
  width: 100%;
  height: 220px;
  object-fit: contain;
  background: #e8e4da;
}
.card-carousel picture {
  display: block;
  width: 100%;
  height: 220px;
}
.card-placeholder {
  display: block;
  text-decoration: none;
}
.card .thumb-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 220px;
  background: linear-gradient(160deg, #efeae0, #e4f0e6);
  font-size: 48px;
  line-height: 1;
}
.card-body {
  display: block;
  color: inherit;
  text-decoration: none;
}
.card .name, .card .price { display: block; padding: 4px 12px; }
.card .price { padding-bottom: 8px; color: var(--green); font-weight: 700; }
.card-body:has(+ .card-social) .price { padding-bottom: 2px; }
.card-social {
  padding: 0 12px 8px;
}
.card-rating {
  margin: 0 0 4px;
  font-size: 13px;
  line-height: 1.3;
  color: var(--ink);
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.card-stars {
  position: relative;
  display: inline-block;
  letter-spacing: 1px;
  line-height: 1;
  font-size: 14px;
}
.card-stars-bg { color: #d2cdc3; }
.card-stars-fg {
  position: absolute;
  left: 0;
  top: 0;
  overflow: hidden;
  white-space: nowrap;
  color: #c79212;
}
.card-avg {
  color: #5c6558;
  font-weight: 650;
}
a.card-remarks,
a.card-remarks:link,
a.card-remarks:visited {
  display: inline;
  margin: 0;
  padding: 0;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.35;
  color: var(--green);
  text-decoration: underline;
  text-underline-offset: 2px;
  background: none;
  border: 0;
}
a.card-remarks:hover,
a.card-remarks:focus {
  color: var(--ink);
}
.card-sizes { padding: 4px 12px 8px; }
.card-sizes a { margin-bottom: 4px; }
.product { display: grid; gap: 20px; }
@media (min-width: 720px) { .product { grid-template-columns: 1fr 1fr; } }
.price { font-size: 22px; font-weight: 800; color: var(--green); }
.desc { white-space: pre-wrap; }
.sizes a { display: inline-block; margin: 0 8px 8px 0; padding: 6px 10px; border: 1px solid var(--line); border-radius: 999px; color: inherit; }
.sizes a.on { background: var(--green); color: #fff; border-color: var(--green); }
form.checkout { display: grid; gap: 14px; max-width: 520px; }
form.checkout > label:not(.choice):not(.agree) { display: grid; gap: 6px; }
form.checkout .field-label { font-weight: 600; font-size: 14px; }
.checkout-blurb {
  max-width: 34rem;
  margin: 0 0 18px;
  display: grid;
  gap: 10px;
}
.checkout-blurb p { margin: 0; line-height: 1.5; }
.checkout-summary {
  max-width: 34rem;
  margin: 0 0 18px;
}
.checkout-summary .checkout-lines {
  margin: 0 0 8px;
}
.checkout-subtotal {
  margin: 0;
  font-weight: 600;
}
.form-box {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}
.form-box-title {
  margin: 0;
  font-weight: 700;
  font-size: 15px;
}
.choice-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.choice-row.choice-stack {
  flex-direction: column;
  align-items: stretch;
}
.choice-row.choice-stack .choice {
  width: 100%;
  box-sizing: border-box;
}
form.checkout label.choice {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 8px 14px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #faf8f4;
  cursor: pointer;
  white-space: nowrap;
  font-weight: 600;
}
form.checkout label.choice:has(input:checked) {
  border-color: var(--green);
  background: #e7f2e9;
  color: var(--green);
}
form.checkout label.choice input[type="radio"] {
  margin: 0;
  width: 1.05rem;
  height: 1.05rem;
  accent-color: var(--green);
  flex: 0 0 auto;
}
form.checkout label.choice[hidden] {
  display: none !important;
}
/* display:grid on checkout labels overrides the native [hidden] rule */
form.checkout [data-payout-field][hidden] {
  display: none !important;
}
.payout-saved {
  display: grid;
  gap: 10px;
}
.payout-saved .payout-dest {
  margin: 0;
  font-weight: 700;
  font-size: 1.05rem;
  white-space: pre-line;
  word-break: break-word;
}
.addr-grid {
  display: grid;
  gap: 12px 14px;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.7fr) minmax(0, 0.7fr);
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}
.addr-grid[hidden] { display: none !important; }
.addr-grid > label {
  display: grid;
  gap: 6px;
  min-width: 0;
  max-width: 100%;
}
.addr-grid .addr-full { grid-column: 1 / -1; }
.addr-grid .addr-street { grid-column: 1 / 2; }
.addr-grid .addr-apt { grid-column: 2 / -1; }
.addr-grid .addr-city { grid-column: 1 / 2; }
.addr-grid .addr-state { grid-column: 2 / 3; }
.addr-grid .addr-zip { grid-column: 3 / 4; }
.addr-grid .muted { margin: 0; font-size: 13px; color: var(--muted); }
/* iOS/Safari date controls have a large intrinsic min-width and overflow the card */
.addr-grid input[type="date"] {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
@media (max-width: 560px) {
  .addr-grid { grid-template-columns: 1fr 1fr; }
  .addr-grid .addr-street,
  .addr-grid .addr-apt,
  .addr-grid .addr-city { grid-column: 1 / -1; }
  .addr-grid .addr-state { grid-column: 1 / 2; }
  .addr-grid .addr-zip { grid-column: 2 / 3; }
}
input, select, textarea, button { font: inherit; padding: 8px 10px; }
input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]),
select,
textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
}
input:not([type="radio"]):not([type="checkbox"]):focus,
select:focus,
textarea:focus {
  outline: 2px solid rgba(47, 107, 58, 0.35);
  outline-offset: 1px;
  border-color: var(--green);
}
.muted { color: var(--muted); font-size: 13px; }
button, .btn {
  background: var(--green);
  color: #fff;
  border: 0;
  border-radius: 8px;
  padding: 10px 16px;
  text-decoration: none;
  display: inline-block;
  cursor: pointer;
}
.cart { list-style: none; padding: 0; }
.cart li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.cart form { display: inline-flex; gap: 6px; }
.cart form button {
  min-width: 2.2rem;
  padding: 6px 10px;
  line-height: 1;
}
.cart-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-top: 18px;
}
.err { color: var(--err); }
.mono { font-family: ui-monospace, monospace; word-break: break-all; }
.inline { display: inline; }
fieldset { border: 1px solid var(--line); border-radius: 8px; background: #fff; }

.foot-nav { display: flex; flex-wrap: wrap; gap: 10px 16px; margin: 0 0 14px; font-size: 13px; }
.foot-nav a { color: var(--green); }
.seo-blocks ul { margin: 0 0 14px; padding-left: 1.2rem; }
.faq details { border: 1px solid var(--line); border-radius: 10px; background: #fff; padding: 10px 14px; margin: 0 0 10px; }
.faq summary { cursor: pointer; font-weight: 650; }
.faq details p { margin: 8px 0 4px; color: var(--ink); }

.comment-form label { display: block; margin: 0 0 12px; font-size: 14px; }
/* display:block on labels overrides the native [hidden] rule */
.comment-form label[hidden],
.comment-form-details[hidden] { display: none !important; }
.comment-form input,
.comment-form select,
.comment-form textarea { display: block; width: 100%; margin-top: 4px; box-sizing: border-box; }
.comment-form .choice input { display: inline-block; width: auto; margin: 0 6px 0 0; }
.comment-kind { border: 0; margin: 0 0 12px; padding: 0; }
.comment-kind .choice {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 8px;
  row-gap: 2px;
  align-items: start;
  margin: 10px 0;
}
.comment-kind .choice input { grid-row: 1 / span 2; margin-top: 3px; }
.comment-kind .choice-main { font-weight: 650; }
.comment-kind .choice-sub { grid-column: 2; display: block; font-size: 13px; line-height: 1.35; }
.comment-anon { margin-bottom: 12px !important; }
.comment-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.comment-filter {
  display: inline-block;
  padding: 4px 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  text-decoration: none;
  color: var(--ink);
  font-size: 13px;
  background: #fff;
}
.comment-filter.on { border-color: var(--green); background: #eef6ef; color: var(--green); font-weight: 650; }
.comment-cards { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.comment-pager {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
  align-items: center;
  margin: 14px 0 0;
  font-size: 13px;
}
.comment-page {
  color: var(--green);
  text-decoration: none;
  font-weight: 650;
}
.comment-page-status { margin-right: auto; }
.comment-card {
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  padding: 12px 14px;
}
.comment-meta { margin: 0 0 6px; font-size: 14px; display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: baseline; }
.comment-kind-tag {
  font-size: 11px;
  font-weight: 650;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--green);
  background: #eef6ef;
  border-radius: 6px;
  padding: 2px 6px;
}
.comment-kind-tag.feedback {
  color: #6b4a1b;
  background: #f6efe3;
}
.comment-stars { letter-spacing: 1px; }
.comment-received { font-size: 12px; }
.comment-body { margin: 0; white-space: pre-wrap; }
.comment-photo-link {
  display: block;
  margin: 10px 0 0;
  max-width: min(100%, 360px);
  text-decoration: none;
}
.comment-photo {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: #f4f6f4;
  object-fit: cover;
  max-height: 420px;
}
.comment-form input[type="file"] {
  display: block;
  width: 100%;
  margin-top: 4px;
  font-size: 14px;
}


.brand { display: inline-flex; align-items: center; gap: 8px; }
.brand-snow { display: inline-block; line-height: 1; font-size: 1.15em; }
.spark { font-weight: 400; }
.hero {
  margin: 0 0 22px;
}
.hero-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin: 14px 0 0;
}
a.btn-secondary, .btn-secondary {
  background: #fff;
  color: var(--green);
  border: 1px solid var(--green);
}
a.btn-secondary:hover, .btn-secondary:hover { background: #eef6ef; }

@media (max-width: 820px) {
  .top { flex-wrap: wrap; gap: 10px; }
  nav a { margin-left: 10px; font-size: 14px; }
}

.chat-dock {
  position: fixed;
  right: max(12px, env(safe-area-inset-right, 0px));
  bottom: max(12px, env(safe-area-inset-bottom, 0px));
  z-index: 40;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  /* Avoid 100vw — on iOS it can be wider than the layout viewport and cause side-scroll. */
  max-width: min(360px, calc(100% - 24px));
}
.chat-fab {
  background: #2f5fbf;
  color: #fff;
  border: 0;
  border-radius: 999px;
  padding: 12px 18px;
  font: inherit;
  font-weight: 650;
  cursor: pointer;
  box-shadow: 0 6px 20px rgba(28, 36, 22, 0.18);
}
.chat-fab:hover { background: #3d73d9; }
/* Floating dock pills — green Check Out, red Clear Cart, blue Chat */
.chat-dock .dock-fab,
.chat-dock a.dock-fab:link,
.chat-dock a.dock-fab:visited,
.chat-dock a.dock-fab:hover,
.chat-dock a.dock-fab:active,
.chat-dock button.dock-fab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: var(--green);
  color: #fff !important;
  border: 0;
  border-radius: 999px;
  padding: 12px 18px;
  font: inherit;
  font-weight: 650;
  line-height: 1.2;
  text-decoration: none !important;
  cursor: pointer;
  box-shadow: 0 6px 20px rgba(28, 36, 22, 0.18);
  width: auto;
  box-sizing: border-box;
}
.chat-dock #checkout-fab:hover,
.chat-dock a#checkout-fab:hover {
  background: var(--green-2);
  color: #fff !important;
}
.chat-dock #clear-cart-fab,
.chat-dock button#clear-cart-fab {
  background: #b33a3a;
}
.chat-dock #clear-cart-fab:hover,
.chat-dock button#clear-cart-fab:hover {
  background: #c94a4a;
  color: #fff !important;
}
.chat-dock #chat-open.chat-fab {
  background: #2f5fbf;
}
.chat-dock #chat-open.chat-fab:hover {
  background: #3d73d9;
}
.chat-dock .dock-fab[hidden],
.chat-dock #clear-cart-fab-form[hidden] {
  display: none !important;
}
#clear-cart-fab-form { margin: 0; }
.chat-panel {
  width: min(360px, calc(100% - 24px));
  max-width: 100%;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 14px 14px 16px;
  box-shadow: 0 10px 28px rgba(28, 36, 22, 0.16);
}
.chat-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin-bottom: 6px;
}
.chat-close {
  background: transparent;
  border: 0;
  color: var(--muted);
  font-size: 22px;
  line-height: 1;
  padding: 0 4px;
  cursor: pointer;
}
.chat-lede { margin: 0 0 12px; font-size: 13px; color: var(--muted); }
.chat-contact {
  display: grid;
  gap: 8px;
}
.chat-contact input {
  width: 100%;
  margin: 0;
}
.chat-head-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
.chat-end {
  background: transparent;
  color: var(--green);
  border: 1px solid var(--green);
  border-radius: 999px;
  padding: 4px 10px;
  font: inherit;
  font-size: 12px;
  font-weight: 650;
  cursor: pointer;
}
.chat-end:hover { background: #eef6ef; }
.chat-log {
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-height: 260px;
  overflow-y: auto;
  margin: 0 0 12px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #faf8f4;
}
.chat-log:empty { display: none; }
.chat-bubble {
  display: grid;
  gap: 2px;
  padding: 8px 10px;
  border-radius: 10px;
  font-size: 14px;
  line-height: 1.4;
  max-width: 92%;
}
.chat-who {
  display: block;
  font-size: 12px;
  font-weight: 700;
  color: var(--muted);
}
.chat-who::after { content: ":"; }
.chat-body {
  display: block;
  white-space: pre-wrap;
  word-break: break-word;
  color: var(--ink);
}
.chat-visitor {
  align-self: flex-end;
  background: #e7f2e9;
  border: 1px solid #c9dfcd;
}
.chat-visitor .chat-who { color: var(--green); }
.chat-admin {
  align-self: flex-start;
  background: #fff;
  border: 1px solid var(--line);
}
.chat-admin .chat-who { color: #2a4a32; }
.chat-system {
  align-self: center;
  background: transparent;
  color: var(--muted);
  font-size: 12px;
  text-align: center;
}
.chat-compose {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  align-items: center;
}
.chat-compose input {
  margin: 0;
}
.chat-compose .btn {
  white-space: nowrap;
  padding: 9px 14px;
}
.chat-form { display: grid; gap: 10px; }
.chat-form label { display: grid; gap: 4px; font-size: 13px; }
.chat-form input,
.chat-form textarea {
  font: inherit;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  width: 100%;
}
.chat-form textarea { resize: vertical; min-height: 88px; }
/* Visually hidden honeypot — do not use left:-9999px (expands scroll width on iOS Safari). */
.chat-hp {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  border: 0;
  white-space: nowrap;
}
.chat-status { margin: 0; font-size: 13px; }
.chat-ok { color: var(--green); }
.chat-err { color: var(--err); }
.product-gallery { display: grid; gap: 10px; }
.product-gallery img { height: auto; max-height: 520px; object-fit: contain; border-radius: 12px; }

.buy-solo {
  display: grid;
  gap: 14px;
  max-width: 24rem;
  margin: 18px 0 24px;
}
.buy-solo label {
  display: grid;
  gap: 6px;
}
.buy-special {
  margin: 0 0 16px;
}
.buy-special form {
  margin-top: 12px;
}
.special {
  margin: 0;
  color: var(--green);
  font-weight: 700;
  font-size: 1.05rem;
}


/* Affiliate / share link copy control */
.copy-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.65rem;
  margin: 0.35rem 0 0.85rem;
}
.copy-row .mono {
  flex: 1 1 12rem;
  margin: 0;
  padding: 0.45rem 0.6rem;
  background: #f3f7f3;
  border-radius: 8px;
  border: 1px solid #d5e4d7;
}
.btn-copy {
  flex: 0 0 auto;
  cursor: pointer;
  font: inherit;
  font-size: 0.9rem;
  padding: 0.4rem 0.75rem;
  border-radius: 8px;
  border: 1px solid #2f6b3a;
  background: #fff;
  color: #2f6b3a;
}
.btn-copy:hover { background: #eef6ef; }
.btn-copy.is-copied {
  background: #2f6b3a;
  color: #fff;
}

.pay-coin-icon {
  width: 16px;
  height: 16px;
  vertical-align: -3px;
  margin-left: 2px;
}

.pay-deal {
  display: inline-block;
  margin-left: 4px;
  padding: 1px 6px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  color: #7a4e00;
  background: #ffe6a8;
  vertical-align: 1px;
}

a.card-more,
a.card-more:link,
a.card-more:visited,
a.card-more:hover,
a.card-more:active {
  display: block;
  margin: 0 12px 8px;
  padding: 8px 10px;
  text-align: center;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.2;
  color: var(--green) !important;
  background: #fff;
  border: 1.5px solid var(--green);
  border-radius: 8px;
  text-decoration: none !important;
  box-sizing: border-box;
  cursor: pointer;
}
a.card-more:hover,
a.card-more:focus {
  background: #eef6ef;
  color: var(--green) !important;
}
.card-add {
  display: block;
  padding: 0 12px 10px;
  margin: 0;
}
.card-add button {
  width: 100%;
  padding: 8px 10px;
  font-size: 13px;
  border-radius: 8px;
}

.cart-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.cart-line {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1 1 12rem;
  min-width: 0;
}
.cart-thumb {
  width: 48px;
  height: 48px;
  object-fit: cover;
  border-radius: 8px;
  flex-shrink: 0;
  background: #fff;
  border: 1px solid var(--line);
}
.cart-line-text {
  min-width: 0;
}
.cart-qty {
  display: inline-flex;
  align-items: center;
  gap: 0;
  margin: 0;
}
.cart-qty button {
  min-width: 36px;
  padding: 6px 10px;
}
.cart-qty-num {
  min-width: 2.2em;
  text-align: center;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  padding: 0 6px;
}
.card-qty {
  display: none;
  gap: 0;
  align-items: center;
  padding: 0 12px 10px;
  margin: 0;
}
.card-qty.is-on { display: inline-flex; width: calc(100% - 24px); }
.card-add.is-off { display: none; }
.card-qty button {
  flex: 0 0 auto;
  min-width: 40px;
  padding: 8px 10px;
  font-size: 16px;
  border-radius: 8px;
}
.card-qty .card-qty-num {
  flex: 1 1 auto;
  text-align: center;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  font-size: 15px;
  padding: 8px 4px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #fff;
}

/* ===== Snowman Research theme: icy blue + pastel pink (appended; overrides above) ===== */
:root{--bg:#f0f7fd;--ink:#1b2a3d;--muted:#4f6179;--green:#a8326a;--green-2:#b8336a;--line:#dbe6f2;--err:#b3261e;--sr-berry:#9e2a5e;--sr-pink:#fdeef5;--sr-pink-line:#f5cfe0;--sr-navy:#1d3d6b;--sr-grad:linear-gradient(135deg,#c23b75,#7a4fbf);--sr-grad-h:linear-gradient(135deg,#a8326a,#6a46b0)}
body{background-color:var(--bg);background-image:radial-gradient(900px 420px at 88% -8%,rgba(247,201,221,.5),transparent 62%),radial-gradient(700px 380px at -5% 30%,rgba(205,184,240,.22),transparent 60%),linear-gradient(180deg,#dcedfb 0%,#eef6fd 38%,#f8fbff 72%,#fff 100%);background-attachment:fixed}
body::before,body::after{content:"";position:fixed;left:-24px;right:-24px;top:-180px;bottom:0;z-index:-1;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cg transform='translate(30 30) scale(1.0)' stroke='%238fbfe6' stroke-width='1.2' stroke-linecap='round' fill='none'%3E%3Cpath d='M0-6V6M-2-4.5L0-3 2-4.5M-2 4.5L0 3 2 4.5'/%3E%3Cpath transform='rotate(60)' d='M0-6V6M-2-4.5L0-3 2-4.5M-2 4.5L0 3 2 4.5'/%3E%3Cpath transform='rotate(120)' d='M0-6V6M-2-4.5L0-3 2-4.5M-2 4.5L0 3 2 4.5'/%3E%3C/g%3E%3Cg transform='translate(120 115) scale(0.7)' stroke='%23b3d3ef' stroke-width='1.2' stroke-linecap='round' fill='none'%3E%3Cpath d='M0-6V6M-2-4.5L0-3 2-4.5M-2 4.5L0 3 2 4.5'/%3E%3Cpath transform='rotate(60)' d='M0-6V6M-2-4.5L0-3 2-4.5M-2 4.5L0 3 2 4.5'/%3E%3Cpath transform='rotate(120)' d='M0-6V6M-2-4.5L0-3 2-4.5M-2 4.5L0 3 2 4.5'/%3E%3C/g%3E%3C/svg%3E");background-size:180px 180px;background-repeat:repeat;animation:sr-snow 9s linear infinite;will-change:transform}
body::after{top:-260px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260' viewBox='0 0 260 260'%3E%3Cg transform='translate(60 140) scale(1.3)' stroke='%23a6cbec' stroke-width='1.1' stroke-linecap='round' fill='none'%3E%3Cpath d='M0-6V6M-2-4.5L0-3 2-4.5M-2 4.5L0 3 2 4.5'/%3E%3Cpath transform='rotate(60)' d='M0-6V6M-2-4.5L0-3 2-4.5M-2 4.5L0 3 2 4.5'/%3E%3Cpath transform='rotate(120)' d='M0-6V6M-2-4.5L0-3 2-4.5M-2 4.5L0 3 2 4.5'/%3E%3C/g%3E%3Cg transform='translate(200 50) scale(0.85)' stroke='%239cc5e8' stroke-width='1.2' stroke-linecap='round' fill='none'%3E%3Cpath d='M0-6V6M-2-4.5L0-3 2-4.5M-2 4.5L0 3 2 4.5'/%3E%3Cpath transform='rotate(60)' d='M0-6V6M-2-4.5L0-3 2-4.5M-2 4.5L0 3 2 4.5'/%3E%3Cpath transform='rotate(120)' d='M0-6V6M-2-4.5L0-3 2-4.5M-2 4.5L0 3 2 4.5'/%3E%3C/g%3E%3C/svg%3E");background-size:260px 260px;opacity:.9;animation:sr-snow-slow 15s linear infinite}
@keyframes sr-snow{0%{transform:translate(0,0)}25%{transform:translate(8px,45px)}50%{transform:translate(-4px,90px)}75%{transform:translate(6px,135px)}100%{transform:translate(0,180px)}}
@keyframes sr-snow-slow{0%{transform:translate(0,0)}25%{transform:translate(-9px,65px)}50%{transform:translate(5px,130px)}75%{transform:translate(-6px,195px)}100%{transform:translate(0,260px)}}
@media (prefers-reduced-motion:reduce){body::before,body::after{animation:none}}
@media print{body::before,body::after{display:none}}
.top{background:rgba(255,255,255,.92);border-bottom:3px solid #f7c9dd;border-image:linear-gradient(90deg,#f7c9dd,#d9c8f3,#bfe0f7) 1}
.brand{color:var(--sr-navy);letter-spacing:.2px}
.brand::after{content:"\2661";content:"\2661"/"";color:#e0679a;font-weight:700;font-size:.9em;margin-left:-3px}
.brand-snowman{display:inline-block;line-height:0}
.brand-snowman svg{width:2em;height:2em;vertical-align:middle}
nav a:hover{color:var(--green)}
.ship-banner{background:#e3f1fc;color:var(--sr-navy);border-bottom-color:var(--line)}
h1,h2{color:var(--sr-navy)}
a{color:#1f5f9e}
.card{border-radius:18px;border-color:#e2e9f4;box-shadow:0 2px 12px rgba(122,79,191,.07);transition:box-shadow .2s,transform .2s}
.card:hover{box-shadow:0 6px 20px rgba(194,59,117,.13);transform:translateY(-2px)}
@media (prefers-reduced-motion:reduce){.card,.card:hover{transition:none;transform:none}}
.card-carousel,.card-carousel img,.product img{background-color:#f4f8fc}
.card .thumb-placeholder{background:linear-gradient(160deg,#fdeef5,#e3f1fc)}
.card .price,.price,.special{color:var(--sr-berry)}
.card-avg{color:var(--muted)}
.card-nav{box-shadow:0 1px 4px rgba(29,61,107,.16)}
button,.btn,a.card-more,.sizes a{border-radius:999px}
button:not([class]),.btn:not(.btn-secondary):not(.sec):not(.danger),.sizes a.on,.chat-dock a#checkout-fab{background-color:#b8336a;background-image:var(--sr-grad);color:#fff;border-color:transparent}
button:not([class]):hover,.btn:not(.btn-secondary):not(.sec):not(.danger):hover,.chat-dock a#checkout-fab:hover{background-color:#a8326a;background-image:var(--sr-grad-h)}
a.btn-secondary,.btn-secondary{color:var(--green);border-color:var(--green)}
a.btn-secondary:hover,.btn-secondary:hover,.chat-end:hover,.btn-copy:hover,a.card-more:hover,a.card-more:focus,.comment-filter.on,.comment-kind-tag{background:var(--sr-pink)}
.btn-copy{border-color:var(--green);color:var(--green)}
.btn-copy.is-copied{background:var(--green);color:#fff}
.chat-fab,.chat-dock #chat-open.chat-fab{background:#7a4fbf}
.chat-fab:hover,.chat-dock #chat-open.chat-fab:hover{background:#6a46b0}
.chat-fab,.chat-dock .dock-fab,.chat-dock button.dock-fab{box-shadow:0 6px 20px rgba(122,79,191,.25)}
.chat-panel{border-radius:20px;box-shadow:0 10px 28px rgba(29,61,107,.18)}
.chat-log{background:#f7f9fd}
.chat-visitor{background:var(--sr-pink);border-color:var(--sr-pink-line)}
.chat-admin .chat-who{color:var(--sr-navy)}
input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]),select,textarea{border-radius:12px}
input:not([type="radio"]):not([type="checkbox"]):focus,select:focus,textarea:focus{outline-color:rgba(194,59,117,.35)}
.form-box,.addr-grid,.faq details,.comment-card,fieldset{border-radius:16px}
.faq summary::marker{color:#e0679a}
form.checkout label.choice{background:#f7f9fd}
form.checkout label.choice:has(input:checked){background:var(--sr-pink)}
.copy-row .mono{background:#f3f7fc;border-color:var(--line)}
.comment-photo{background:#f4f8fc}

/* ===== Snowman dark mode (toggle; default stays light) ===== */
.theme-toggle{background:transparent;border:1px solid var(--line);border-radius:999px;padding:2px 10px;margin-left:6px;font-size:1em;line-height:1.5;cursor:pointer;color:inherit;vertical-align:middle}
.theme-toggle:hover{background:var(--sr-pink)}
html[data-theme="dark"]{color-scheme:dark;--bg:#111a2c;--ink:#e4ecf8;--muted:#a3b2ca;--green:#f08fbd;--green-2:#f5a3c9;--line:#2e3c5c;--err:#ff8a80;--sr-berry:#ff9cc8;--sr-pink:#3a2440;--sr-pink-line:#5a3560;--sr-navy:#d3e3ff}
html[data-theme="dark"] body{color:var(--ink);background-image:radial-gradient(900px 420px at 88% -8%,rgba(194,59,117,.18),transparent 62%),radial-gradient(700px 380px at -5% 30%,rgba(122,79,191,.16),transparent 60%),linear-gradient(180deg,#0e1626 0%,#121c31 50%,#16213a 100%)}
html[data-theme="dark"] .top{background:rgba(19,28,48,.94)}
html[data-theme="dark"] :is(.card,.form-box,.addr-grid,textarea,input,select,fieldset,.faq details,.comment-filter,.comment-card,a.btn-secondary,.btn-secondary,.chat-panel,.chat-admin,.btn-copy,a.card-more,.cart-thumb,.card-qty .card-qty-num,.card-nav,.card-nav:hover){background:#1a2440;color:var(--ink);border-color:var(--line)}
html[data-theme="dark"] :is(.card-carousel,.card-carousel img,.product img,.comment-photo,.chat-log,form.checkout label.choice,.copy-row .mono){background-color:#16203a;border-color:var(--line)}
html[data-theme="dark"] form.checkout label.choice:has(input:checked),html[data-theme="dark"] .chat-visitor{background:var(--sr-pink)}
html[data-theme="dark"] .card .thumb-placeholder{background:linear-gradient(160deg,#2a2040,#1a2a44)}
html[data-theme="dark"] .ship-banner{background:#16233d;color:var(--sr-navy)}
html[data-theme="dark"] a{color:#8cc4ff}
html[data-theme="dark"] nav a,html[data-theme="dark"] .card-body .name,html[data-theme="dark"] .card a{color:var(--ink)}
html[data-theme="dark"] .card{box-shadow:0 2px 14px rgba(0,0,0,.35)}
html[data-theme="dark"] .pay-deal{background:#4a3a12;color:#ffe6a8}
html[data-theme="dark"] .comment-kind-tag.feedback{background:#3a3324}
html[data-theme="dark"] .chat-admin .chat-who{color:var(--sr-navy)}
html[data-theme="dark"] body::before,html[data-theme="dark"] body::after{opacity:.75}

/* floating theme toggle, bottom-left opposite chat */
.theme-toggle.theme-fab{position:fixed;left:max(14px,env(safe-area-inset-left,0px));bottom:max(14px,env(safe-area-inset-bottom,0px));z-index:40;width:50px;height:50px;margin:0;padding:0;border:0;border-radius:50%;background:#2f5fbf;color:#fff;font-size:24px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px 20px rgba(28,36,22,.22)}
.theme-toggle.theme-fab:hover{background:#3d73d9;transform:scale(1.06)}
html[data-theme="dark"] .theme-toggle.theme-fab{background:#f2f5ff;color:#0f1a33}

/* display:grid overrides the native [hidden] rule; hide contact fields after first chat message */
.chat-contact[hidden]{display:none!important}

/* snow on/off button, stacked above the theme button */
.snow-fab{position:fixed;left:max(14px,env(safe-area-inset-left,0px));bottom:calc(max(14px,env(safe-area-inset-bottom,0px)) + 60px);z-index:40;width:50px;height:50px;margin:0;padding:0;border:0;border-radius:50%;background:#2f5fbf;color:#fff;font-size:22px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px 20px rgba(28,36,22,.22);position:fixed}
.snow-fab:hover{background:#3d73d9;transform:scale(1.06)}
html[data-theme="dark"] .snow-fab{background:#f2f5ff;color:#0f1a33}
html[data-snow="off"] .snow-fab{opacity:.55;background:#8a96ad}
html[data-snow="off"] .snow-fab::after{content:"";position:absolute;width:34px;height:3px;background:#fff;border-radius:2px;transform:rotate(-45deg)}


/* smoother floating buttons on touch: no sticky hover, quick press feedback, snow fades instead of popping */
.theme-fab{touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;transition:background-color .25s ease,color .25s ease,opacity .25s ease,transform .12s ease}
.theme-toggle.theme-fab:hover,.snow-fab:hover{transform:none}
.theme-toggle.theme-fab:hover{background:#2f5fbf}
.snow-fab:hover{background:#2f5fbf}
html[data-theme="dark"] .theme-toggle.theme-fab:hover,html[data-theme="dark"] .snow-fab:hover{background:#f2f5ff}
@media (hover:hover) and (pointer:fine){.theme-toggle.theme-fab:hover,.snow-fab:hover{background:#3d73d9;transform:scale(1.06)}html[data-theme="dark"] .theme-toggle.theme-fab:hover,html[data-theme="dark"] .snow-fab:hover{background:#ffffff}}
.theme-fab:active{transform:scale(.9)!important}
html[data-snow="off"] .snow-fab,html[data-snow="off"] .snow-fab:hover{opacity:.6;background:#8a96ad}
.snow-fab::after{content:"";position:absolute;width:34px;height:3px;background:#fff;border-radius:2px;transform:rotate(-45deg) scaleX(0);transition:transform .2s ease}
html[data-snow="off"] .snow-fab::after{transform:rotate(-45deg) scaleX(1)}
body::before,body::after{transition:opacity .45s ease,visibility 0s linear 0s}
html[data-snow="off"] body::before,html[data-snow="off"] body::after{opacity:0!important;visibility:hidden;transition:opacity .45s ease,visibility 0s linear .45s}

/* rapid-tap hardening: hit area never moves or shrinks, no double-tap zoom, no text selection */
html{touch-action:manipulation}
.theme-fab,.theme-fab:hover,.theme-fab:active,.theme-toggle.theme-fab:hover,.snow-fab:hover{transform:none!important}
.theme-fab{-webkit-touch-callout:none;outline:none}
.theme-fab::after,.theme-fab *{pointer-events:none}
.theme-fab:active{filter:brightness(.85)}
.theme-fab:focus-visible{outline:2px solid #8fbfe6;outline-offset:2px}
html[data-snow="off"] body::before,html[data-snow="off"] body::after{animation-play-state:paused}

/* ---- Header (2026-10-04): one row, scrolls with the page (not sticky), secondary links under "More" ---- */
.top{position:relative;z-index:50;flex-wrap:nowrap;gap:12px;padding:10px 18px}
.top .brand{flex:0 0 auto;min-width:0;white-space:nowrap}
.top-nav{display:flex;align-items:center;flex-wrap:nowrap;gap:4px;min-width:0;margin-left:auto}
.top-nav>a,.nav-more>summary{margin:0;padding:8px 9px;border-radius:999px;color:var(--ink);text-decoration:none;font-size:15px;line-height:1.2;white-space:nowrap}
.top-nav>a:hover,.nav-more>summary:hover{background:rgba(143,191,230,.18);color:var(--green)}
.nav-count{display:inline-block;min-width:1.35em;padding:0 .35em;margin-left:2px;border-radius:999px;background:#e0679a;color:#fff;font-size:.78em;font-weight:700;line-height:1.35em;text-align:center}
.nav-more{position:relative}
.nav-more>summary{list-style:none;cursor:pointer;user-select:none}
.nav-more>summary::-webkit-details-marker{display:none}
.nav-more>summary::after{content:"\25BE";margin-left:4px;font-size:.8em}
.nav-more[open]>summary{background:rgba(143,191,230,.22)}
.nav-more>summary:focus-visible,.top-nav>a:focus-visible{outline:2px solid #8fbfe6;outline-offset:2px}
.nav-more-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:60;display:flex;flex-direction:column;min-width:200px;max-width:calc(100vw - 24px);padding:6px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 28px rgba(29,61,107,.18)}
.nav-more-menu a{margin:0;padding:10px 12px;border-radius:8px;color:var(--ink);text-decoration:none;font-size:15px;white-space:nowrap}
.nav-more-menu a:hover,.nav-more-menu a:focus-visible{background:rgba(143,191,230,.18);color:var(--green)}
html[data-theme="dark"] .nav-more-menu{background:#1a2440;border-color:var(--line)}
html[data-theme="dark"] .top-nav>a,html[data-theme="dark"] .nav-more>summary,html[data-theme="dark"] .nav-more-menu a{color:var(--ink)}
@media (max-width: 820px){
  .top{flex-wrap:nowrap;gap:8px}
  .top-nav>a,.nav-more>summary{margin:0;font-size:14px}
}
@media (max-width: 520px){
  .top{padding:8px 10px;gap:6px}
  .top-nav{gap:0}
  .top-nav>a,.nav-more>summary{padding:7px 6px;font-size:14px}
  .brand .brand-word{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
  .brand::after{display:none}
}
.top-nav>a,.nav-more>summary{display:inline-flex;align-items:center;min-height:40px;box-sizing:border-box}
@media (max-width: 400px){
  .top{padding:6px 6px;gap:2px}
  .top-nav>a,.nav-more>summary{padding:4px 4.5px;font-size:13.5px;letter-spacing:-.1px}
  .nav-more>summary::after{margin-left:2px}
  .brand-snowman svg{width:1.8em;height:1.8em}
}

/* ---- Research sections (SEO Stage 2, 2026-10-04) ---- */
.sr-research{max-width:46rem;margin:28px 0;padding:20px 22px;background:rgba(255,255,255,.88);border:1px solid #cfe3f4;border-radius:16px;box-shadow:0 4px 18px rgba(29,61,107,.07);overflow-wrap:anywhere}
.sr-research h2{font-size:1.2rem;margin:0 0 10px}
.sr-research h3{font-size:1.02rem;margin:20px 0 6px}
.sr-research p,.sr-research li{line-height:1.6}
.sr-research ul,.sr-research ol{padding-left:1.3rem}
.sr-research .sr-cite{font-size:.72em;line-height:0;white-space:nowrap}
.sr-research .sr-cite a{text-decoration:none;padding:0 1px}
.sr-research__nodose{padding:10px 12px;border-left:4px solid #e0679a;background:#fdf1f6;border-radius:8px}
.sr-research__sources{font-size:.9em}
.sr-research__sources li{margin:0 0 8px;scroll-margin-top:16px}
.sr-research__sources li:target{background:#eaf4fc;border-radius:6px}
.sr-research__ruo{font-size:.9em;color:var(--muted)}
html[data-theme="dark"] .sr-research{background:#1a2440;border-color:var(--line)}
html[data-theme="dark"] .sr-research__nodose{background:rgba(224,103,154,.14)}
html[data-theme="dark"] .sr-research__sources li:target{background:rgba(143,191,230,.16)}

/* ===== Stage 3 (2026-10-04): Snowman layout (sr- vocabulary) ===== */
.sr-drift{margin:6px 0 30px;padding:26px 22px;border-radius:24px;background:linear-gradient(160deg,rgba(255,255,255,.92),rgba(234,243,255,.88));border:1px solid #dbe7f5;box-shadow:0 10px 30px rgba(29,61,107,.08)}
.sr-drift__kicker{margin:0 0 6px;font-weight:700;color:var(--sr-berry)}
.sr-drift h1{margin:0 0 12px;font-size:clamp(1.55rem,4.6vw,2.3rem);line-height:1.15;color:var(--sr-navy)}
.sr-drift__sub{margin:0 0 16px;max-width:40rem;font-size:1.05rem;line-height:1.55}
.sr-drift__btns{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 18px}
.sr-drift__btns .btn{min-height:44px;display:inline-flex;align-items:center}
.sr-drift__trust{list-style:none;margin:0;padding:12px 0 0;border-top:1px dashed #c9dbef;display:flex;flex-wrap:wrap;gap:8px 18px;font-size:.92rem;color:var(--muted)}
.sr-globe,.sr-powder,.sr-steps,.sr-facts,.sr-faqteaser,.sr-shelf,.sr-minifaq,.sr-related,.sr-shelf__more,.sr-item__more>section{margin:0 0 34px}
.sr-globe h2,.sr-powder h2,.sr-steps h2,.sr-facts h2,.sr-faqteaser h2,.sr-snowball h2,.sr-item__more h2,.sr-minifaq h2,.sr-shelf__more h2{color:var(--sr-navy);font-size:1.35rem;margin:0 0 12px}
.sr-globe__tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.sr-tile__link{display:flex;flex-direction:column;height:100%;border-radius:18px;overflow:hidden;background:#fff;border:1px solid #dbe7f5;color:inherit;text-decoration:none;box-shadow:0 4px 14px rgba(29,61,107,.07);transition:transform .15s ease,box-shadow .15s ease}
.sr-tile__link:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(29,61,107,.13)}
.sr-tile__pic{display:block;aspect-ratio:4/3;overflow:hidden;background:linear-gradient(160deg,#eef5ff,#fdf3f8)}
.sr-tile__pic img{width:100%;height:100%;object-fit:cover;object-position:center 40%;display:block}
.sr-tile__txt{padding:10px 12px 14px}
.sr-tile__txt h3{margin:0 0 4px;font-size:1rem;line-height:1.25;color:var(--sr-navy)}
.sr-tile__line{margin:0;font-size:.86rem;line-height:1.4;color:var(--muted)}
.sr-powder__intro{margin:-4px 0 12px;color:var(--muted)}
.sr-powder__grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.sr-flake{background:#fff;border:1px solid #dbe7f5;border-radius:18px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 4px 14px rgba(29,61,107,.06)}
.sr-flake__pic{display:block;aspect-ratio:3/4;background:linear-gradient(160deg,#eef5ff,#fdf3f8);overflow:hidden}
.sr-flake__pic img{width:100%;height:100%;object-fit:cover;display:block}
.sr-flake__none{display:flex;align-items:center;justify-content:center;height:100%;font-size:2.4rem}
.sr-flake__txt{padding:10px 12px 12px}
.sr-flake__txt h3{margin:0 0 4px;font-size:.95rem;line-height:1.3}
.sr-flake__txt h3 a{color:var(--sr-navy);text-decoration:none}
.sr-flake__txt h3 a:hover{text-decoration:underline}
.sr-flake__price{margin:0;font-weight:700;color:var(--sr-berry);font-size:.92rem}
.sr-steps__row{list-style:none;counter-reset:srstep;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.sr-steps__row li{counter-increment:srstep;position:relative;padding:40px 14px 14px;border-radius:18px;background:var(--sr-pink);border:1px solid var(--sr-pink-line);line-height:1.45}
.sr-steps__row li::before{content:counter(srstep);position:absolute;top:10px;left:14px;width:24px;height:24px;border-radius:50%;background:var(--sr-grad);color:#fff;font-weight:700;font-size:.85rem;display:flex;align-items:center;justify-content:center}
.sr-facts__grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:10px 18px}
.sr-facts__grid li{padding:12px 14px;border-left:3px solid #9cc3e6;background:rgba(255,255,255,.7);border-radius:0 12px 12px 0;line-height:1.45}
.sr-snowball{margin:0 0 34px;padding:18px 20px;border-radius:20px;background:linear-gradient(135deg,rgba(253,238,245,.95),rgba(234,243,255,.95));border:1px solid var(--sr-pink-line)}
.sr-snowball p{margin:0 0 10px;line-height:1.5}
.sr-snowball__links{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.sr-snowball__links .btn{min-height:40px;display:inline-flex;align-items:center}
.sr-faqteaser ul{margin:0;padding-left:1.1rem;line-height:1.9}
.sr-basement{max-width:920px;margin:0 auto;padding:22px 18px 110px;color:var(--muted);font-size:13px;border-top:1px solid #dbe7f5}
.sr-basement__cols{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:0 0 16px}
.sr-basement__h{margin:0 0 6px;font-weight:700;color:var(--sr-navy);font-size:13px;text-transform:uppercase;letter-spacing:.04em}
.sr-basement__col ul{list-style:none;margin:0;padding:0}
.sr-basement__col li{margin:0}
.sr-basement__col a{display:inline-block;padding:6px 0;min-height:32px;color:var(--green);margin:0}
.sr-basement__fine{margin:0 0 8px;padding-top:12px;border-top:1px dashed #c9dbef;font-size:12px;line-height:1.5}
.sr-basement__pay{margin:0;font-size:12px}
.sr-crumbs ol{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-wrap:wrap;gap:4px;font-size:.88rem;color:var(--muted)}
.sr-crumbs li+li::before{content:"›";margin:0 6px 0 2px;color:#9cc3e6}
.sr-crumbs a{color:var(--green)}
.sr-shelf h1,.sr-faq h1,.sr-melted h1{color:var(--sr-navy);font-size:clamp(1.45rem,4.4vw,2.1rem);line-height:1.2;margin:0 0 10px}
.sr-shelf__intro,.sr-faq__intro{max-width:44rem;line-height:1.6;margin:0 0 20px}
.sr-shelf__h{font-size:1.1rem;color:var(--sr-navy);margin:18px 0 10px}
.sr-chips{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.sr-chip{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:6px 14px;border-radius:999px;border:1px solid #c9dbef;background:#fff;color:var(--sr-navy);text-decoration:none;font-weight:600;font-size:.92rem}
.sr-chip:hover{border-color:#e0679a}
.sr-chip.is-on{background:var(--sr-grad);color:#fff;border-color:transparent}
.sr-chip__price{font-weight:500;color:var(--muted)}
.sr-minifaq__item,.sr-faq__item{border:1px solid #dbe7f5;border-radius:14px;background:#fff;margin:0 0 8px;padding:0 14px}
.sr-minifaq__item summary,.sr-faq__item summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600;color:var(--sr-navy);list-style-position:outside}
.sr-minifaq__item p,.sr-faq__item p{margin:0 0 12px;line-height:1.55}
.sr-faq__jump{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}
.sr-faq__jump a{display:inline-flex;align-items:center;min-height:40px;padding:6px 14px;border-radius:999px;background:var(--sr-pink);border:1px solid var(--sr-pink-line);color:var(--sr-navy);text-decoration:none;font-size:.9rem;margin:0}
.sr-faq__group{margin:0 0 26px;scroll-margin-top:12px}
.sr-faq__group h2{color:var(--sr-navy);font-size:1.2rem;margin:0 0 10px}
.sr-faq__item{scroll-margin-top:12px}
.sr-shelf__more ul,.sr-melted__shelves{margin:0;padding-left:1.1rem;line-height:1.9}
/* product page */
.sr-item{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:26px;align-items:start;margin:0 0 30px}
.sr-item__shots{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.sr-shot{margin:0;grid-column:span 1}
.sr-shot--main{grid-column:1/-1}
.sr-shot img{width:100%;height:auto;display:block;border-radius:14px;border:1px solid #dbe7f5;background:#fff}
.sr-shot:not(.sr-shot--main) img{aspect-ratio:3/4;object-fit:cover}
.sr-shot figcaption{font-size:.78rem;color:var(--muted);margin-top:4px;line-height:1.35}
.sr-shot:not(.sr-shot--main) figcaption{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.sr-shot__placeholder{display:flex;align-items:center;justify-content:center;min-height:240px;border-radius:14px;background:linear-gradient(160deg,#eef5ff,#fdf3f8);font-size:3.4rem}
.sr-buy h1{color:var(--sr-navy);font-size:clamp(1.35rem,3.6vw,1.9rem);line-height:1.2;margin:0 0 6px}
.sr-item__form{margin:0 0 8px;color:var(--muted);font-size:.92rem}
.sr-buy__price{margin:0 0 12px;font-size:1.45rem;font-weight:800;color:var(--sr-berry)}
.sr-buy__label{margin:0 0 6px;font-size:.88rem;color:var(--muted)}
.sr-bundle{margin:0 0 12px;padding:12px 14px;border-radius:14px;background:var(--sr-pink);border:1px dashed var(--sr-pink-line)}
.sr-bundle__line{margin:0 0 8px;font-weight:600}
.sr-bundle .btn{min-height:40px}
.sr-buy__form{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:4px 0 14px}
.sr-buy__qty{display:flex;align-items:center;gap:8px;font-weight:600}
.sr-buy__qty input{width:5.2rem;min-height:44px}
.sr-buy__form .btn{min-height:44px}
.sr-buy__trust{list-style:none;margin:0;padding:10px 0 0;border-top:1px dashed #c9dbef;display:grid;grid-template-columns:1fr 1fr;gap:6px;font-size:.88rem;color:var(--muted)}
.sr-buy__trust li::before{content:"❄ ";color:#9cc3e6}
.sr-item__blurb{line-height:1.6;max-width:46rem}
.sr-item__label{color:var(--muted);font-size:.92rem;max-width:46rem}
.sr-spec{border-collapse:collapse;width:100%;max-width:34rem;margin:0 0 10px;font-size:.92rem}
.sr-spec th,.sr-spec td{text-align:left;padding:8px 10px;border-bottom:1px solid #dbe7f5;vertical-align:top}
.sr-spec th{width:34%;color:var(--sr-navy);font-weight:600}
.sr-spec__note{font-size:.85rem}
.sr-related__grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
.copy-row .btn-copy,.btn-copy{min-height:40px}
.sr-melted{margin:10px 0 30px}
.sr-melted__msg{font-size:1.05rem;line-height:1.55}
/* chat: bottom-left; theme + snow toggles move to the right */
.chat-dock{right:auto!important;left:max(12px,env(safe-area-inset-left,0px))!important;align-items:flex-start}
.theme-toggle.theme-fab,.snow-fab{left:auto!important;right:max(14px,env(safe-area-inset-right,0px))!important}
@media (max-width:720px){
  .sr-item{grid-template-columns:1fr;gap:18px}
  .sr-steps__row{grid-template-columns:1fr}
  .sr-facts__grid{grid-template-columns:1fr}
  .sr-basement__cols{grid-template-columns:1fr 1fr}
}
@media (max-width:420px){
  .sr-drift{padding:20px 16px}
  .sr-globe__tiles{grid-template-columns:1fr 1fr;gap:10px}
  .sr-powder__grid{grid-template-columns:1fr 1fr;gap:10px}
  .sr-basement__cols{grid-template-columns:1fr}
}
html[data-theme="dark"] .sr-drift{background:linear-gradient(160deg,rgba(24,37,64,.95),rgba(36,28,56,.92));border-color:#2e3c5c}
html[data-theme="dark"] .sr-tile__link,html[data-theme="dark"] .sr-flake,html[data-theme="dark"] .sr-minifaq__item,html[data-theme="dark"] .sr-faq__item,html[data-theme="dark"] .sr-chip,html[data-theme="dark"] .sr-shot img{background:#182540;border-color:#2e3c5c}
html[data-theme="dark"] .sr-tile__pic,html[data-theme="dark"] .sr-flake__pic,html[data-theme="dark"] .sr-shot__placeholder{background:linear-gradient(160deg,#2a2040,#1a2a44)}
html[data-theme="dark"] .sr-facts__grid li{background:rgba(24,37,64,.8)}
html[data-theme="dark"] .sr-snowball{background:linear-gradient(135deg,rgba(58,36,64,.9),rgba(24,37,64,.9))}
html[data-theme="dark"] .sr-spec th,html[data-theme="dark"] .sr-spec td{border-color:#2e3c5c}
html[data-theme="dark"] .sr-basement{border-color:#2e3c5c}
.sr-crumbs a,.sr-shelf__more a,.sr-melted a{margin:0}
.sr-buy__qty{white-space:nowrap}
/* ===== Stage 4: guides ===== */
.sr-guide h1,.sr-guides h1{color:var(--sr-navy);font-size:clamp(1.45rem,4.4vw,2.1rem);line-height:1.2;margin:0 0 10px}
.sr-guide__intro{max-width:46rem;line-height:1.6;margin:0 0 12px}
.sr-guide .sr-research__nodose,.sr-guide .sr-research__ruo{font-size:.88rem;color:var(--muted);max-width:46rem}
.sr-guide__tablewrap{overflow-x:auto;margin:0 0 22px;-webkit-overflow-scrolling:touch}
.sr-guide__table{max-width:none;min-width:520px;background:rgba(255,255,255,.85);border-radius:14px}
.sr-guide__table caption{text-align:left;font-weight:700;color:var(--sr-navy);padding:0 0 8px}
.sr-guide__table thead th{background:var(--sr-pink);color:var(--sr-navy);font-weight:700}
.sr-guide__sec,.sr-guide__shop,.sr-guide__sources{margin:0 0 26px;max-width:46rem}
.sr-guide__shop{max-width:none}
.sr-guide h2,.sr-guides h2,.sr-compare h2,.sr-hubnote h2{color:var(--sr-navy);font-size:1.25rem;margin:0 0 10px}
.sr-guide__sec p,.sr-guide__sec li{line-height:1.6}
.sr-guide__sources li{font-size:.85rem;line-height:1.45;margin:0 0 6px;overflow-wrap:anywhere}
.sr-guides__list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.sr-guides__item{padding:16px 18px;border-radius:18px;background:#fff;border:1px solid #dbe7f5}
.sr-guides__item h2{font-size:1.1rem;margin:0 0 6px}
.sr-guides__item h2 a{color:var(--sr-navy)}
.sr-guides__item p{margin:0;line-height:1.5;color:var(--muted)}
.sr-compare{margin:0 0 30px;padding:14px 18px;border-radius:18px;background:var(--sr-pink);border:1px dashed var(--sr-pink-line)}
.sr-compare ul{margin:0;padding-left:1.1rem;line-height:1.9}
.sr-hubnote{margin:0 0 30px;max-width:46rem}
.sr-hubnote p{line-height:1.6}
.sr-hubnote li{font-size:.85rem;overflow-wrap:anywhere}
html[data-theme="dark"] .sr-guides__item{background:#182540;border-color:#2e3c5c}
html[data-theme="dark"] .sr-guide__table{background:rgba(24,37,64,.85)}
@media (max-width:600px){.sr-guide__table{min-width:460px;font-size:.86rem}.sr-guide__table th,.sr-guide__table td{padding:7px 8px}.sr-guide__tablewrap::after{content:"Swipe the table sideways to see every column.";display:block;font-size:.78rem;color:var(--muted);padding-top:6px}}

/* i18n language switcher */
.lang-switch{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 10px;padding:8px 12px;font-size:.86rem;background:rgba(255,255,255,.55);border-bottom:1px solid #dbe7f5}
.lang-switch__label{color:var(--sr-navy);font-weight:600;letter-spacing:.01em}
.lang-switch__select{appearance:none;-webkit-appearance:none;min-width:11.5rem;max-width:100%;padding:7px 32px 7px 12px;border:1px solid #c5d6ea;border-radius:999px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23182540' d='M1 1l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 12px center;color:var(--sr-navy);font:inherit;font-weight:600;line-height:1.2;cursor:pointer;box-shadow:0 1px 2px rgba(24,37,64,.06)}
.lang-switch__select:focus{outline:2px solid #7eb6ff;outline-offset:2px}
.lang-switch--header{flex:0 0 auto;flex-wrap:nowrap;align-self:center;align-items:center;gap:6px;margin:0 0 0 8px;padding:0;background:transparent;border:0;justify-content:flex-end;max-width:min(16rem,48vw);z-index:51;white-space:nowrap}
.lang-switch--header .lang-switch__label{font-size:12px;white-space:nowrap}
.lang-switch--header .lang-switch__select{min-width:0;width:100%;max-width:14rem;padding:6px 28px 6px 10px;font-size:13px;box-shadow:none}
.lang-switch--header .lang-switch__links{width:auto;margin:0;justify-content:flex-end;font-size:.78rem}
.lang-switch--footer{background:transparent;border:0;padding:10px 0 0;justify-content:flex-start}
html[data-theme="dark"] .lang-switch{background:rgba(24,37,64,.6);border-color:#2e3c5c}
html[data-theme="dark"] .lang-switch--header{background:transparent;border:0}
html[data-theme="dark"] .lang-switch__label{color:#e8eef8}
html[data-theme="dark"] .lang-switch__select{background-color:#182540;border-color:#2e3c5c;color:#e8eef8;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23e8eef8' d='M1 1l5 5 5-5'/%3E%3C/svg%3E")}
.lang-switch__links{display:flex;flex-wrap:wrap;gap:4px 12px;list-style:none;margin:4px 0 0;padding:0;width:100%;justify-content:center;font-size:.82rem}
.lang-switch__links a{color:var(--sr-navy);text-decoration:underline;text-underline-offset:2px}
.lang-switch__links a[aria-current="page"]{font-weight:700;text-decoration:none}
.lang-switch--footer .lang-switch__links{justify-content:flex-start;margin-top:8px}
html[data-theme="dark"] .lang-switch__links a{color:#cfe0f8}
@media (max-width: 720px){
  .lang-switch--header{margin-left:4px;max-width:min(11.5rem,42vw)}
  .lang-switch--header .lang-switch__label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  .lang-switch--header .lang-switch__select{font-size:12.5px;padding:5px 26px 5px 8px}
}
@media (max-width: 480px){
  .top{align-items:center}
  .lang-switch--header{max-width:min(9.8rem,40vw)}
}

.trust-row{display:flex;flex-wrap:wrap;gap:8px 14px;list-style:none;margin:0 0 22px;padding:0 0 0 2px;font-size:.88rem;color:var(--muted)}
.sr-globe__list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.sr-globe__item{padding:14px 16px;border-radius:16px;background:#fff;border:1px solid #dbe7f5}
.sr-globe__item h3{margin:0 0 6px;font-size:1.05rem}
.sr-globe__item h3 a{color:var(--sr-navy)}
html[data-theme="dark"] .sr-globe__item{background:#182540;border-color:#2e3c5c}

/* Product-card photo slideshow (stacked slides, one .active) */
.sr-frost{position:relative;display:block;aspect-ratio:3/4;overflow:hidden;background:linear-gradient(160deg,#eef5ff,#fdf3f8)}
.sr-frost__link{position:absolute;inset:0;display:block}
.sr-frost__slide{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain;object-position:center;display:block;visibility:hidden}
.sr-frost__slide.active{visibility:visible;z-index:1}
.sr-frost__nav{position:absolute;top:50%;margin-top:-17px;z-index:3;width:34px;height:34px;padding:0;border:1px solid #dbe7f5;border-radius:999px;background:rgba(255,255,255,.92);color:var(--sr-navy);font-size:24px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 1px 4px rgba(29,61,107,.18);-webkit-tap-highlight-color:transparent;touch-action:manipulation;user-select:none;-webkit-user-select:none}
.sr-frost__prev{left:6px}
.sr-frost__next{right:6px}
.sr-frost__nav:focus-visible{outline:2px solid #7eb6ff;outline-offset:2px}
.sr-frost__dots{position:absolute;left:0;right:0;bottom:8px;z-index:2;display:flex;justify-content:center;gap:5px;pointer-events:none}
.sr-frost__dots i{width:6px;height:6px;border-radius:50%;background:rgba(29,61,107,.25)}
.sr-frost__dots i.on{background:#e0679a}
html[data-theme="dark"] .sr-frost{background:linear-gradient(160deg,#2a2040,#1a2a44)}
html[data-theme="dark"] .sr-frost__nav{background:rgba(24,37,64,.92);border-color:#2e3c5c;color:#e8eef8}
.sr-frost__cap{position:absolute;top:8px;left:8px;z-index:2;padding:3px 9px;border-radius:999px;background:rgba(255,255,255,.92);border:1px solid #f7c9dd;color:var(--sr-navy);font-size:12px;font-weight:700;line-height:1.3;pointer-events:none}
html[data-theme="dark"] .sr-frost__cap{background:rgba(24,37,64,.92);border-color:#2e3c5c;color:#e8eef8}
/* Card photos: whole photo, never cropped or zoomed (same frame for single and slideshow cards) */
.sr-flake__pic,.sr-flake .sr-frost{aspect-ratio:2/3}
.sr-flake__pic img,.sr-flake__pic .sr-frost__slide{object-fit:contain;object-position:center;width:100%;height:100%}

/* ---- Lab notes link + header fit (2026-10-06 labnotes) ---- */
/* Wide screens: one row, Lab notes in the main row, its twin inside More hidden. */
.top-nav>a.nav-labnotes{display:inline-flex}
.nav-more-menu a.nav-more-labnotes{display:none}
/* Narrower: the menu gets its own row under logo + language picker (and may wrap) so Sign in / More never hide under the picker. */
@media (max-width:1279px){html:not([lang="en-US"]) .top:has(.lang-switch--header){flex-wrap:wrap;row-gap:2px}html:not([lang="en-US"]) .top:has(.lang-switch--header) .top-nav{order:3;flex:1 1 100%;flex-wrap:wrap;justify-content:center;margin-left:0}html:not([lang="en-US"]) .top:has(.lang-switch--header) .lang-switch--header{margin-left:auto}}
@media (max-width:999px){html[lang="en-US"] .top:has(.lang-switch--header){flex-wrap:wrap;row-gap:2px}html[lang="en-US"] .top:has(.lang-switch--header) .top-nav{order:3;flex:1 1 100%;flex-wrap:wrap;justify-content:center;margin-left:0}html[lang="en-US"] .top:has(.lang-switch--header) .lang-switch--header{margin-left:auto}}
/* Phones: Lab notes moves into the More menu to keep the bar short. */
@media (max-width:719px){.top-nav>a.nav-labnotes{display:none}.nav-more-menu a.nav-more-labnotes{display:block}}
/* CALCNAME-20261013c (EN only): Catalog, Cart, then A-Z: Earn Money, Lab Calculator, Lab notes, Sign in/Account, More (More stays last).
   Every item stays visible; on narrower screens the menu row wraps (centred) instead of hiding links. */
.top-nav>a.nav-calc{display:inline-flex}
.nav-more-menu a.nav-more-calc{display:none}
.nav-more-menu a.nav-more-calc--all{display:block}
html[lang="en-US"] .top-nav>*{order:9}html[lang="en-US"] .top-nav>a:first-child{order:1}html[lang="en-US"] .top-nav>.nav-basket{order:2}html[lang="en-US"] .top-nav>.nav-earn{order:3}html[lang="en-US"] .top-nav>.nav-calc{order:4}html[lang="en-US"] .top-nav>.nav-labnotes{order:5}html[lang="en-US"] .top-nav>.nav-more{order:7}html[lang="en-US"] .top-nav>.nav-acct{order:6}
@media (max-width:999px){html[lang="en-US"] .top-nav{flex-wrap:wrap;justify-content:center;row-gap:0}}
@media (max-width:719px){html[lang="en-US"] .top-nav>a.nav-labnotes{display:inline-flex}html[lang="en-US"] .nav-more-menu a.nav-more-labnotes{display:none}html[lang="en-US"] .top-nav>a,html[lang="en-US"] .top-nav .nav-more>summary{min-height:34px;padding:4px 5px;font-size:13.5px}}
/* Phones: the More dropdown anchors to the full header width so it never runs off-screen. */
@media (max-width:719px){.top-nav .nav-more{position:static}.top-nav .nav-more-menu{right:8px;left:auto;top:calc(100% + 2px);max-width:calc(100vw - 16px)}.top-nav .nav-more-menu a{white-space:normal}}

/* semaguide 2026-10-17: guide tables - stop the 34% th rule from crushing the last column */
.sr-guide__table th{width:auto}.sr-guide__table tbody th{width:22%}
@media (max-width:600px){.sr-guide__table:has(thead th:nth-child(4)){min-width:640px}}
