/** Shopify CDN: Minification failed

Line 8:20 Unexpected "*"

**/
/* Spann store restyle — the site's tokens, type, header and footer (clients/spann-fitness/theme/src/assets/cd.css).
   Namespaced cd- so the old theme's CSS never collides. Fonts are the site's own self-hosted files. */
/* archivo-*/oswald-* are byte-identical variable fonts under several names (verified via hashlib, final fix round
   item 2) -> one @font-face per family covers every weight. */
@font-face{font-family:'Oswald';font-weight:200 700;font-display:swap;src:url(oswald-600.woff2) format('woff2')}
@font-face{font-family:'Archivo';font-weight:100 900;font-display:swap;src:url(archivo-400.woff2) format('woff2')}
/* safety net: any 'Inter' reference we can't reach with a CSS override (inline styles, etc.) renders with our own
   file instead of falling through to a system font or a Google fetch. */
@font-face{font-family:'Inter';font-weight:100 900;font-display:swap;src:url(archivo-400.woff2) format('woff2')}

:root {
  --cd-ground: #0a0b0d;
  --cd-ink: #f4f5f7;
  --cd-ink-soft: #a2a8b3;
  --cd-accent: #fefe08;
  --cd-accent-ink: #0a0b0d;
  --cd-hairline: rgba(244, 245, 247, 0.14);
  --cd-font-display: "Oswald", "Archivo Narrow", "Arial Narrow", sans-serif;
  --cd-font-text: "Archivo", "Helvetica Neue", Helvetica, sans-serif;
  --cd-pad: clamp(1.25rem, 4vw, 3.5rem);
  --cd-ease: cubic-bezier(0.23, 1, 0.32, 1);
}

/* theme-wide layer: every store page takes the site's ground, ink and faces; layouts untouched.
   body, body.spann-body: theme.css's own body.spann-body rule (0,1,1) beats a bare `body` (0,0,1) on specificity
   alone; matching its specificity here means load order (cd.css after theme.css) decides the tie, and we win. */
body, body.spann-body { background: var(--cd-ground); color: var(--cd-ink); font-family: var(--cd-font-text); }
h1, h2, h3, .h1, .h2, .h3 { font-family: var(--cd-font-display); }
/* the old theme's own buttons on FAQ/contact/Invitational/policy pages: the site's type only, their layout untouched */
.btn, .button, button[type="submit"]:not([class*="cd-"]) { font-family: var(--cd-font-display); letter-spacing: 0.08em; text-transform: uppercase; }
/* theme.css:131 sets .stat-label to Inter directly (0,1,0); same specificity, same load-order-wins mechanism */
.stat-label { font-family: var(--cd-font-text); }
/* phone: kept pages (contact, search, login/register) still render the old theme's native form fields */
body.spann-body input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), body.spann-body select, body.spann-body textarea { font-size: 16px; }

.cd-wrap { width: min(100%, 1180px); margin: 0 auto; padding: 0 var(--cd-pad); }
.cd-lab { font-family: var(--cd-font-display); font-weight: 500; text-transform: uppercase; letter-spacing: 0.14em; font-size: 0.72rem; color: var(--cd-ink-soft); margin: 0 0 0.75rem; }

/* header: the site's Journal header. Shopify wraps the section in a div sized to the header's own height, so
   `position: sticky` on .cd-head itself can never move -- the sticky context has to be the wrapper. */
#shopify-section-cd-header { position: sticky; top: 0; z-index: 20; }
.cd-head { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: 0.9rem var(--cd-pad); background: rgba(10, 11, 13, 0.86); backdrop-filter: blur(10px); border-bottom: 1px solid var(--cd-hairline); }
.cd-mark { display: inline-flex; align-items: center; gap: 0.55rem; font-family: var(--cd-font-display); font-weight: 600; letter-spacing: 0.16em;
  text-transform: uppercase; font-size: 0.72rem; text-decoration: none; color: var(--cd-ink); white-space: nowrap; min-height: 2.75rem; min-width: 2.75rem; }
.cd-mark img { width: 28px; height: 28px; }
.cd-nav { display: flex; align-items: center; gap: clamp(0.9rem, 2.4vw, 1.8rem); font-family: var(--cd-font-display); font-weight: 500;
  letter-spacing: 0.14em; text-transform: uppercase; font-size: 0.72rem; }
.cd-nav a { display: inline-flex; align-items: center; min-height: 2.75rem; text-decoration: none; color: var(--cd-ink-soft); white-space: nowrap; }
.cd-nav a:hover, .cd-nav a[aria-current="page"] { color: var(--cd-ink); }
.cd-nav .cd-nav__hide { display: none; }
@media (min-width: 900px) { .cd-nav .cd-nav__hide { display: inline-flex; } }
@media (max-width: 599px) { .cd-mark { font-size: 0; gap: 0; } .cd-nav .cd-nav__wide { display: none; } }

.cd-cta { display: inline-flex; align-items: center; gap: 0.6em; font-family: var(--cd-font-display); font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.08em; font-size: 0.8rem; background: var(--cd-accent); color: var(--cd-accent-ink) !important; padding: 0.85em 1.4em; min-height: 2.75rem;
  border-radius: 4px; text-decoration: none; white-space: nowrap; border: 0; cursor: pointer; transition: transform 140ms var(--cd-ease); }
.cd-cta:hover { transform: translateY(-1px); }
.cd-cta::after { content: ""; width: 0.55em; height: 0.55em; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); }
.cd-cta:focus-visible, .cd-cart:focus-visible, .cd-nav a:focus-visible, .cd-mark:focus-visible { outline: 2px solid var(--cd-accent); outline-offset: 3px; }

.cd-cart { position: relative; flex-shrink: 0; display: inline-grid; place-items: center; width: 2.75rem; height: 2.75rem; margin-left: -0.35rem;
  border-radius: 4px; color: var(--cd-ink) !important; box-shadow: inset 0 0 0 1px var(--cd-hairline); }
.cd-cart:hover { background: var(--cd-ink); color: var(--cd-ground) !important; }
.cd-cart__count { position: absolute; top: -0.4rem; right: -0.4rem; min-width: 1.2rem; height: 1.2rem; padding: 0 0.3rem; display: grid; place-items: center;
  border-radius: 999px; font: 600 0.66rem/1 var(--cd-font-text); letter-spacing: 0; color: var(--cd-accent-ink); background: var(--cd-accent); }

/* footer: the site's Journal footer */
.cd-foot { border-top: 1px solid var(--cd-hairline); padding: clamp(2.5rem, 6vw, 4rem) 0 2rem; font-size: 0.9rem; }
.cd-foot__grid { display: grid; gap: 2rem; }
@media (min-width: 760px) { .cd-foot__grid { grid-template-columns: 5fr 2fr 2fr 2fr; } }
.cd-foot p { margin: 0.4rem 0; color: var(--cd-ink-soft); }
.cd-foot a { display: inline-flex; align-items: center; min-height: 2.75rem; text-decoration: none; color: var(--cd-ink-soft); }
.cd-foot a:hover { color: var(--cd-ink); }
.cd-foot ul { list-style: none; margin: 0; padding: 0; }
.cd-foot li { line-height: 2.1; }
.cd-foot__place { margin-top: 1rem !important; }
.cd-foot__claim { margin-top: 2.2rem; padding-top: 1.2rem; border-top: 1px solid var(--cd-hairline); display: flex; flex-wrap: wrap; justify-content: space-between;
  gap: 1rem; font-family: var(--cd-font-display); letter-spacing: 0.14em; text-transform: uppercase; font-size: 0.66rem; color: var(--cd-ink-soft); }

@media (prefers-reduced-motion: reduce) { .cd-cta { transition: none; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* product pages: gallery left, buy box right (one column on phones). minmax(0, ...) on every track: without it an
   oversized child (a wide description table, a long word) grows the grid track past 1fr and blows out the page. */
.cd-pdp { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3.5rem); padding: clamp(1.5rem, 4vw, 3rem) var(--cd-pad) clamp(3rem, 6vw, 5rem); max-width: 1320px; margin: 0 auto; }
.cd-pdp__media, .cd-pdp__buy { min-width: 0; }
@media (min-width: 990px) { .cd-pdp { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); align-items: start; } .cd-pdp__media { position: sticky; top: 5rem; } }
.cd-display { font-family: var(--cd-font-display); font-weight: 700; text-transform: uppercase; line-height: 0.92; font-size: clamp(2.2rem, 5vw, 3.6rem); margin: 0.2rem 0 0.8rem; color: var(--cd-ink); }
.cd-claim { color: var(--cd-ink-soft); max-width: 46ch; margin: 0 0 1.2rem; }
.cd-price { font-family: var(--cd-font-display); font-weight: 600; font-size: 1.9rem; color: var(--cd-ink); margin: 0 0 1.2rem; }

.cd-gallery { position: relative; }
.cd-gallery__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; list-style: none; margin: 0; padding: 0; border-radius: 6px; scrollbar-width: none; }
.cd-gallery__track::-webkit-scrollbar { display: none; }
.cd-gallery__slide { flex: 0 0 100%; scroll-snap-align: start; aspect-ratio: 4 / 3; background: #121419; }
.cd-gallery__slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cd-gallery__slide--contain img { object-fit: contain; }
.cd-gallery__nav { display: flex; justify-content: flex-end; gap: 0.5rem; margin-top: 0.6rem; }
.cd-gallery__note { margin: 0.6rem 0 0; font-size: 0.8rem; color: var(--cd-ink-soft); }
.cd-gallery__btn { width: 2.75rem; height: 2.75rem; border-radius: 4px; border: 0; cursor: pointer; font-size: 1.4rem; line-height: 1; color: var(--cd-ink);
  background: transparent; box-shadow: inset 0 0 0 1px var(--cd-hairline); }
.cd-gallery__btn:hover { background: var(--cd-ink); color: var(--cd-ground); }
.cd-gallery__btn:focus-visible { outline: 2px solid var(--cd-accent); outline-offset: 3px; }

.cd-specs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.75rem 1rem; margin: 1.2rem 0 0; }
.cd-specs div { border-top: 1px solid var(--cd-hairline); padding-top: 0.6rem; }
.cd-specs dt { font-family: var(--cd-font-display); text-transform: uppercase; letter-spacing: 0.14em; font-size: 0.66rem; color: var(--cd-ink-soft); }
.cd-specs dd { margin: 0.2rem 0 0; font-family: var(--cd-font-display); font-weight: 600; font-size: 1.15rem; color: var(--cd-ink); }
.cd-specs .cd-specs__who { grid-column: 1 / -1; }
.cd-specs .cd-specs__who dd { font-family: var(--cd-font-text); font-weight: 400; font-size: 0.95rem; color: var(--cd-ink-soft); }
@media (max-width: 599px) { .cd-specs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.cd-cards { border: 0; padding: 0; margin: 0 0 1rem; display: grid; gap: 0.5rem; }
.cd-card { position: relative; display: grid; grid-template-columns: 1fr auto; gap: 0.15rem 1rem; align-items: center; min-height: 44px; padding: 0.8rem 1rem;
  border-radius: 6px; cursor: pointer; box-shadow: inset 0 0 0 1px var(--cd-hairline); }
.cd-card:hover { background: rgba(244, 245, 247, 0.04); }
.cd-card__input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.cd-card__name { font-family: var(--cd-font-display); font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--cd-ink); }
.cd-card__specs { grid-column: 1; font-size: 0.85rem; color: var(--cd-ink-soft); }
.cd-card__price { grid-column: 2; grid-row: 1 / span 2; font-family: var(--cd-font-display); font-weight: 600; color: var(--cd-ink); }
.cd-card:has(.cd-card__input:checked) { box-shadow: inset 0 0 0 2px var(--cd-accent); }
.cd-card:has(.cd-card__input:focus-visible) { outline: 2px solid var(--cd-accent); outline-offset: 3px; }
.cd-card--soldout { opacity: 0.5; cursor: not-allowed; }
.cd-card__input:disabled { cursor: not-allowed; }

.cd-buy__row { display: flex; gap: 0.75rem; align-items: end; margin: 0 0 0.9rem; }
.cd-qty { display: grid; gap: 0.3rem; }
.cd-qty input { width: 5rem; min-height: 44px; font-size: 16px; font-family: var(--cd-font-text); padding: 0 0.6rem; border-radius: 4px; border: 0; color: var(--cd-ink); background: #121419; box-shadow: inset 0 0 0 1px var(--cd-hairline); }
.cd-qty input:focus-visible { outline: 2px solid var(--cd-accent); outline-offset: 2px; }
.cd-buy__add { flex: 1; justify-content: center; min-height: 44px; }
.cd-buy__add[disabled] { opacity: 0.5; cursor: not-allowed; transform: none; }
.cd-trust { list-style: none; display: flex; flex-wrap: wrap; gap: 0.5rem 1.2rem; padding: 0; margin: 1.4rem 0; font-family: var(--cd-font-display);
  text-transform: uppercase; letter-spacing: 0.1em; font-size: 0.72rem; color: var(--cd-ink-soft); }
.cd-rte { color: var(--cd-ink-soft); line-height: 1.6; }
/* a product description can hold a fixed-width table (e.g. a size guide); it must scroll inside the buy column,
   never grow the page past the viewport. */
.cd-rte { overflow-x: auto; max-width: 100%; }
.cd-rte table { background: #ffffff; }
.cd-rte table, .cd-rte table * { color: #0a0b0d; }
.cd-faq { margin-top: 2rem; }
.cd-faq__item { border-top: 1px solid var(--cd-hairline); padding: 0.9rem 0; }
.cd-faq__item summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; list-style: none; font-family: var(--cd-font-display); font-weight: 500; text-transform: uppercase; letter-spacing: 0.06em; color: var(--cd-ink); }
.cd-faq__item summary::-webkit-details-marker { display: none; }
.cd-faq__item summary::after { content: "+"; font-family: var(--cd-font-display); font-size: 1.2rem; color: var(--cd-accent); }
.cd-faq__item[open] summary::after { content: "\2212"; }
.cd-faq__item p { color: var(--cd-ink-soft); margin: 0.4rem 0 0; }

.cd-select { width: 100%; min-height: 44px; font-size: 16px; padding: 0 0.8rem; margin: 0.3rem 0 1rem; border-radius: 4px; border: 0; color: var(--cd-ink);
  background: #121419; box-shadow: inset 0 0 0 1px var(--cd-hairline); font-family: var(--cd-font-text); }
.cd-select:focus-visible { outline: 2px solid var(--cd-accent); outline-offset: 2px; }

/* cart: a pass over Shopify's own cart form, whatever template renders it (SPEC.md component 5) */
form[action="/cart"] { font-family: var(--cd-font-text); color: var(--cd-ink); }
form[action="/cart"] a[href*="/products/"] { color: var(--cd-ink); font-family: var(--cd-font-display); text-transform: uppercase; letter-spacing: 0.06em; text-decoration: none; }
form[action="/cart"] input[name^="updates"], form[action="/cart"] textarea { min-height: 44px; font-size: 16px; border-radius: 4px; border: 0;
  color: var(--cd-ink); background: #121419; box-shadow: inset 0 0 0 1px var(--cd-hairline); }
form[action="/cart"] button[name="checkout"], form[action="/cart"] input[name="checkout"] { min-height: 48px; border: 0; border-radius: 4px; cursor: pointer;
  font-family: var(--cd-font-display); font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; background: var(--cd-accent); color: var(--cd-accent-ink); }
form[action="/cart"] button[name="checkout"]:focus-visible { outline: 2px solid var(--cd-accent); outline-offset: 3px; }

/* the live cart template lays out with inline styles, which only !important can reach: one column on phones (its
   1fr 380px grid overflows a 375px screen) and 44px quantity/remove controls (SPEC component 5) */
@media (max-width: 899px) { .spann-cart form[action="/cart"] > div { grid-template-columns: 1fr !important; gap: 2rem !important; } }
.spann-cart form[action="/cart"] button[type="button"] { min-width: 44px; min-height: 44px; }
.spann-cart form[action="/cart"] a[href*="/cart/change"] { display: inline-flex; align-items: center; min-height: 44px; }
.spann-cart a[href*="/collections/all"] { padding-block: 0.75rem; }

/* colour layer: the old theme's blue (#116DFF) becomes the site's accent on the pages that keep their layout
   (SPEC component 6). Classes from pull/assets/theme.css that those pages still use: */
.btn-primary, .btn-primary:hover { background-color: var(--cd-accent); color: var(--cd-accent-ink); }
.section-label, .spann-faq__question:hover, .spann-faq__icon { color: var(--cd-accent); }
.blue-rule, .nav-link::after { background-color: var(--cd-accent); }
.btn-outline:hover, .card-dark:hover, .spann-about__mission-item { border-color: var(--cd-accent); }
.card-dark:hover { box-shadow: none; }
/* …and the kept templates' inline styles (collection, contact, policies, Invitational) */
[style*="color:#116DFF" i] { color: var(--cd-accent) !important; }
[style*="solid #116DFF" i] { border-color: var(--cd-accent) !important; }
[style*="rgba(17,109,255" i] { background: rgba(254, 254, 8, 0.06) !important; }

/* the phone menu (Zack 2026-09-25): under 900px the header folds into Menu + the cart, like the site */
.cd-menu { position: relative; display: none; }
.cd-menu > summary { list-style: none; }
.cd-menu > summary::-webkit-details-marker { display: none; }
.cd-menu__toggle { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 2.75rem; padding: 0 0.9rem; border-radius: 4px;
  cursor: pointer; font-weight: 600; letter-spacing: 0.16em; color: var(--cd-ink); box-shadow: inset 0 0 0 1px var(--cd-hairline); }
.cd-menu__toggle i { width: 0.5em; height: 0.5em; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: translateY(-2px) rotate(45deg); transition: transform 160ms var(--cd-ease); }
.cd-menu[open] .cd-menu__toggle i { transform: translateY(2px) rotate(-135deg); }
.cd-menu__toggle:focus-visible { outline: 2px solid var(--cd-accent); outline-offset: 3px; }
.cd-menu__panel { position: absolute; top: calc(100% + 0.6rem); right: 0; z-index: 30; display: flex; flex-direction: column;
  align-items: stretch; gap: 0.35rem; min-width: 13rem; padding: 0.5rem; border-radius: 6px; background: var(--cd-ground);
  box-shadow: 0 18px 40px -18px rgba(0, 0, 0, 0.7), inset 0 0 0 1px var(--cd-hairline); }
.cd-menu__panel a:not(.cd-cta) { display: flex; align-items: center; justify-content: center; min-height: 2.75rem; padding: 0 0.8rem;
  border-radius: 4px; color: var(--cd-ink); }
.cd-menu__panel a:not(.cd-cta):hover, .cd-menu__panel a[aria-current="page"] { background: rgba(244, 245, 247, 0.08); }
.cd-menu__panel a:focus-visible { outline: 2px solid var(--cd-accent); outline-offset: -2px; }
.cd-menu__panel .cd-cta { justify-content: center; margin-top: 0.25rem; }
@media (max-width: 899px) {
  .cd-menu { display: block; }
  .cd-nav .cd-nav__wide, .cd-nav .cd-nav__hide, .cd-nav > .cd-cta { display: none; }
}
@media (prefers-reduced-motion: reduce) { .cd-menu__toggle i { transition: none; } }
