/* Generated by store/build/build_store.py from site.css: the store's rules, scoped to .sf-store. */
:root {
  /* colour */
  --coquelicot: #fd410d;
  --coquelicot-hover: #e93c0c;      /* about 8% darker */
  --licorice: #220901;
  --rufous: #a52b0f;
  --coral: #ff8f71;
  --mikado: #ffc817;
  --taupe: #8d8d92;
  --white: #ffffff;
  --tint: #fff2ee;                  /* Coral at about 9% on white: the alternating light section */
  --tint-2: #fff8f5;
  --ink: #220901;                   /* headings */
  --ink-2: rgba(34, 9, 1, 0.78);    /* body */
  --ink-3: rgba(34, 9, 1, 0.62);    /* secondary */
  --ink-4: #8d8d92;                 /* lightest: source lines, meta */
  --rule: rgba(141, 141, 146, 0.32);
  --rule-strong: rgba(141, 141, 146, 0.5);
  --on-dark: #ffffff;
  --on-dark-2: rgba(255, 255, 255, 0.74);
  --on-dark-rule: rgba(255, 255, 255, 0.16);
  --gradient: linear-gradient(120deg, #fd410d 0%, #ff7a1a 55%, #ffc817 100%);

  /* type */
  --font: "Montserrat", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --h1: 50px; --h2: 42px; --h3: 28px; --h4: 24px;
  --lead: 20px; --body: 16px; --small: 14px; --tiny: 12.5px;

  /* layout */
  --container: 1280px;
  --gutter: 2.5rem;
  --section: 64px;
  --header-h: 80px;
  --r-btn: 4px; --r-card: 10px; --r-card-lg: 14px; --r-table: 16px;
  --shadow: 0 1px 2px rgba(34, 9, 1, 0.05), 0 8px 24px rgba(34, 9, 1, 0.06);
  --shadow-lg: 0 2px 4px rgba(34, 9, 1, 0.05), 0 18px 48px rgba(34, 9, 1, 0.12);
}
.toast { position: fixed; left: 50%; bottom: 24px; transform: translate(-50%, 20px); background: var(--licorice); color: var(--white); padding: 12px 18px; border-radius: 8px; font-size: 14px; box-shadow: var(--shadow-lg); opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s; z-index: 100; max-width: calc(100% - 32px); }
.toast.show { opacity: 1; transform: translate(-50%, 0); }
.toast code { color: var(--coral); font-size: 13px; }
@scope (.sf-store) {
/* Silver Fox site mockup — one stylesheet for the marketing site and the store chrome.
   Tokens follow the handover (01-Projects/silver-fox-site-rebuild/handover-mockup-2026-10-22.md):
   OptiSigns' system with the Lot Sherpa palette substituted. Every section is a self-contained
   block so it can be rebuilt as a Webflow component or a Shopify section. */


@media (max-width: 767px) {
  :root { --h1: 40px; --h2: 34px; --h3: 22px; --h4: 20px; --lead: 18px; --gutter: 1.25rem; --section: 48px; --header-h: 64px; }
}

*, *::before, *::after { box-sizing: border-box; }
:scope { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 16px); }
:scope { margin: 0; font-family: var(--font); font-size: var(--body); line-height: 1.6; color: var(--ink-2); background: var(--white); -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; height: auto; }
a { color: var(--coquelicot); text-underline-offset: 3px; }
a:hover { color: var(--coquelicot-hover); }
h1, h2, h3, h4 { color: var(--ink); font-weight: 700; margin: 0; letter-spacing: -0.01em; }
h1 { font-size: var(--h1); line-height: 1.16; }
h2 { font-size: var(--h2); line-height: 1.2; }
h3 { font-size: var(--h3); line-height: 1.26; }
h4 { font-size: var(--h4); line-height: 1.3; }
p { margin: 0 0 1em; }
ul, ol { margin: 0; padding: 0; }
:focus-visible { outline: 3px solid var(--mikado); outline-offset: 2px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.container { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter); }
.narrow { max-width: 48rem; }
.section { padding: var(--section) 0; }
.section--tint { background: var(--tint); }
.section--dark { background: var(--licorice); color: var(--on-dark-2); }
.section--dark h2, .section--dark h3, .section--dark h4 { color: var(--on-dark); }
.section-head { max-width: 48rem; margin-bottom: 40px; }
.section-head.center { margin-left: auto; margin-right: auto; text-align: center; }
.section-head h2 + p, .section-head h2 + .lead { margin-top: 16px; }
.eyebrow { display: block; font-size: 14px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: var(--coquelicot); margin-bottom: 12px; }
.section--dark .eyebrow { color: var(--coral); }
.h-like { font-size: var(--h3); font-weight: 700; color: var(--ink); line-height: 1.26; margin: 0 0 12px; letter-spacing: -0.01em; }
.lead { font-size: var(--lead); line-height: 1.45; color: var(--ink-2); }
.muted { color: var(--ink-3); }
.small { font-size: var(--small); }

/* ---------- buttons ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0.8rem 1.5rem; border-radius: var(--r-btn); border: 2px solid var(--coquelicot); background: var(--coquelicot); color: var(--white); font: 600 16px/1.2 var(--font); text-decoration: none; cursor: pointer; white-space: nowrap; transition: background .15s, color .15s, border-color .15s; }
.btn:hover { background: var(--coquelicot-hover); border-color: var(--coquelicot-hover); color: var(--white); }
.btn--outline { background: transparent; color: var(--coquelicot); }
.btn--outline:hover { background: var(--coquelicot); color: var(--white); }
.btn--light { background: var(--white); border-color: var(--white); color: var(--coquelicot); }
.btn--light:hover { background: var(--tint); border-color: var(--tint); color: var(--coquelicot-hover); }
.btn--ghost-light { background: transparent; border-color: rgba(255,255,255,.8); color: var(--white); }
.btn--ghost-light:hover { background: var(--white); color: var(--coquelicot); }
.btn--dark { background: var(--licorice); border-color: var(--licorice); }
.btn--dark:hover { background: #3a1a0e; border-color: #3a1a0e; }
.btn--sm { padding: 0.5rem 0.9rem; font-size: 14px; }
.btn--block { width: 100%; }
.btn[disabled] { opacity: .5; cursor: not-allowed; }
.link-arrow { font-weight: 600; text-decoration: none; display: inline-flex; align-items: center; gap: 6px; }
.link-arrow::after { content: "→"; transition: transform .15s; }
.link-arrow:hover::after { transform: translateX(3px); }
.btn-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }

/* badges for the three store tiers */
.badge { display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; padding: 4px 9px; border-radius: 999px; line-height: 1.3; }
.badge--stock { background: #e9f7ef; color: #146c3a; }
.badge--logo { background: #fff4d6; color: #7a5600; }
.badge--custom { background: var(--tint); color: var(--rufous); }

/* ---------- mockup notice ---------- */
.mock-note { background: var(--licorice); color: var(--on-dark-2); font-size: 13px; text-align: center; padding: 7px var(--gutter); }
.mock-note a { color: var(--white); }

/* ---------- header (site chrome) ---------- */
.site-header { position: sticky; top: 0; z-index: 50; background: var(--white); border-bottom: 1px solid var(--rule); }
.site-header .bar { display: flex; align-items: center; gap: 28px; height: var(--header-h); }
.logo { display: block; flex: none; }
.logo img { height: 44px; width: auto; }
.nav { display: flex; align-items: stretch; height: 100%; gap: 4px; }
.nav-item { position: static; display: flex; align-items: center; }
.nav-trigger { display: flex; align-items: center; gap: 6px; height: 100%; padding: 0 10px; white-space: nowrap; background: none; border: 0; font: 600 16px var(--font); color: var(--ink); cursor: pointer; border-bottom: 3px solid transparent; }
.nav-trigger svg { width: 12px; height: 12px; transition: transform .15s; }
.nav-item.open .nav-trigger, .nav-trigger:hover { color: var(--coquelicot); }
.nav-item.open .nav-trigger { border-bottom-color: var(--coquelicot); }
.nav-item.open .nav-trigger svg { transform: rotate(180deg); }
.utils { margin-left: auto; display: flex; align-items: center; gap: 12px; }
.tel { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--ink); text-decoration: none; font-size: 15px; white-space: nowrap; }
.tel svg { width: 16px; height: 16px; color: var(--coquelicot); }
.menu-toggle { display: none; background: none; border: 0; padding: 8px; margin-right: -8px; cursor: pointer; color: var(--ink); }
.menu-toggle svg { width: 26px; height: 26px; }

/* mega-menu panel */
.mega { position: absolute; left: 0; right: 0; top: 100%; background: var(--white); border-bottom: 1px solid var(--rule); box-shadow: var(--shadow-lg); display: none; }
.nav-item.open .mega, .mega.is-specimen { display: block; }
.mega.is-specimen { position: static; box-shadow: var(--shadow); border-top: 0; }
.mega-inner { display: grid; grid-template-columns: repeat(4, 1fr) 1.15fr; gap: 32px; padding: 32px var(--gutter) 36px; max-width: var(--container); margin: 0 auto; }
.mega-inner.cols-3 { grid-template-columns: repeat(3, 1fr) 1.15fr; }
.mega-col h4 { font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--ink-4); font-weight: 600; margin-bottom: 12px; }
.mega-col h4 a { color: inherit; text-decoration: none; }
.mega-col ul { list-style: none; }
.mega-col li { margin: 0 0 6px; }
.mega-col a { color: var(--ink-2); text-decoration: none; font-size: 15px; line-height: 1.4; }
.mega-col a:hover { color: var(--coquelicot); }
.mega-col .lead-link { display: flex; align-items: center; gap: 8px; font-weight: 700; color: var(--ink); font-size: 16px; margin-bottom: 8px; }
.mega-col .lead-link img { width: 26px; height: 26px; }
.mega-promo { background: var(--tint); border-radius: var(--r-card-lg); overflow: hidden; display: flex; flex-direction: column; text-decoration: none; color: var(--ink); }
.mega-promo img { aspect-ratio: 16/9; object-fit: cover; width: 100%; }
.mega-promo span { padding: 14px 16px 16px; font-weight: 700; line-height: 1.35; }
.mega-promo small { display: block; font-weight: 500; color: var(--ink-3); margin-top: 4px; font-size: 13px; }

/* phone header */
@media (max-width: 1100px) {
  .tel span { display: none; }
}
@media (max-width: 991px) {
  .site-header .bar { gap: 12px; }
  .logo img { height: 30px; }
  .nav, .utils .btn--outline, .tel { display: none; }
  .menu-toggle { display: block; }
  .utils { gap: 8px; }
  .utils .btn { padding: 0.5rem 0.85rem; font-size: 14px; }
  .site-header.menu-open .nav { display: flex; flex-direction: column; position: absolute; left: 0; right: 0; top: 100%; height: auto; max-height: calc(100vh - var(--header-h)); overflow: auto; background: var(--white); border-bottom: 1px solid var(--rule); box-shadow: var(--shadow-lg); padding: 8px 0 20px; }
  .site-header.menu-open .nav-item { display: block; border-bottom: 1px solid var(--rule); }
  .site-header.menu-open .nav-trigger { width: 100%; justify-content: space-between; padding: 16px var(--gutter); border-bottom: 0; }
  .site-header.menu-open .mega { position: static; box-shadow: none; border: 0; }
  .site-header.menu-open .mega-inner { grid-template-columns: 1fr; gap: 18px; padding: 4px var(--gutter) 20px; }
  .site-header.menu-open .mega-promo { display: none; }
  .mobile-actions { display: none; }
  .site-header.menu-open .mobile-actions { display: grid; gap: 10px; padding: 20px var(--gutter) 0; }
}
@media (min-width: 992px) { .mobile-actions { display: none; } }

/* ---------- hero ---------- */
.hero { position: relative; overflow: hidden; padding: 72px 0 64px; }
.hero::before { content: ""; position: absolute; width: 1100px; height: 1100px; right: -380px; top: -520px; background: radial-gradient(closest-side, rgba(253,65,13,.16), rgba(255,200,23,.10) 55%, rgba(255,255,255,0) 100%); pointer-events: none; }
.hero--tint { background: var(--tint); }
.hero--tint::before { display: none; }
.hero-grid { position: relative; display: grid; grid-template-columns: 1.02fr 1fr; gap: 56px; align-items: center; }
.hero h1 { margin-bottom: 20px; }
.hero h1 em { font-style: normal; color: var(--coquelicot); }
.hero .lead { margin-bottom: 28px; }
.hero .micro { margin-top: 14px; font-size: 14px; color: var(--ink-3); display: flex; align-items: center; gap: 8px; }
.hero .micro svg { width: 16px; height: 16px; color: var(--coquelicot); flex: none; }
.hero-media img { border-radius: var(--r-card-lg); box-shadow: var(--shadow-lg); width: 100%; }
.hero-media figcaption, figure figcaption { font-size: 13px; color: var(--ink-3); margin-top: 10px; line-height: 1.45; }
figure { margin: 0; }
.mosaic { display: grid; grid-template-columns: 1.55fr 1fr; grid-template-rows: 1fr 1fr; gap: 14px; height: 470px; }
.mosaic img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--r-card-lg); box-shadow: var(--shadow); }
.mosaic .m-main { grid-row: span 2; object-position: 18% center; }
.names { margin-top: 44px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 26px; padding-top: 22px; border-top: 1px solid var(--rule); }
.names b { font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--ink-4); font-weight: 600; }
.names span { font-weight: 700; font-size: 15px; color: #737e8a; letter-spacing: .02em; }
.lockup-ls { display: flex; align-items: center; gap: 14px; margin-bottom: 22px; flex-wrap: wrap; }
.lockup-ls img { height: 46px; width: auto; }
.lockup-ls span { font-size: 13px; line-height: 1.35; color: var(--ink-3); border-left: 1px solid var(--rule-strong); padding-left: 14px; }
.lockup-ls span b { display: block; color: var(--ink); font-size: 14px; }
.crumbs { font-size: 13px; color: var(--ink-3); margin-bottom: 22px; }
.crumbs a { color: var(--ink-3); text-decoration: none; }
.crumbs a:hover { color: var(--coquelicot); }
.crumbs span[aria-hidden] { margin: 0 6px; color: var(--ink-4); }

@media (max-width: 991px) {
  .hero-grid { grid-template-columns: 1fr; gap: 36px; }
  .mosaic { height: 360px; }
}
@media (max-width: 767px) {
  .hero { padding: 40px 0 44px; }
  .mosaic { height: 300px; gap: 10px; }
  .names { gap: 8px 18px; margin-top: 32px; }
  .names span { font-size: 13px; }
  .btn-row .btn { flex: 1 1 auto; }
}

/* ---------- grids & cards ---------- */
.grid { display: grid; gap: 24px; }
.g-2 { grid-template-columns: repeat(2, 1fr); }
.g-3 { grid-template-columns: repeat(3, 1fr); }
.g-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 991px) { .g-4 { grid-template-columns: repeat(2, 1fr); } .g-3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767px) { .art-panel { height: 180px; } .g-2, .g-3, .g-4 { grid-template-columns: 1fr; } .g-4.keep-2 { grid-template-columns: repeat(2, 1fr); gap: 14px; } }

.card { background: var(--white); border: 1px solid var(--rule); border-radius: var(--r-card-lg); overflow: hidden; display: flex; flex-direction: column; }
.card-img { aspect-ratio: 4/3; width: 100%; object-fit: cover; }
.card-body { padding: 20px 22px 24px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.card-body h3 { font-size: 20px; line-height: 1.3; }
.card-body p { margin: 0; font-size: 15px; }
.card-body .link-arrow { margin-top: auto; padding-top: 6px; font-size: 15px; color: var(--coquelicot); }
.card-kicker { font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase; font-weight: 600; color: var(--ink-4); }
a.card { text-decoration: none; color: inherit; transition: box-shadow .15s, transform .15s; }
a.card:hover { box-shadow: var(--shadow-lg); transform: translateY(-2px); }
a.card:hover h3 { color: var(--coquelicot); }
.art-panel { background: var(--tint); height: 210px; display: flex; align-items: center; justify-content: center; padding: 22px; }
.art-panel img { max-height: 100%; width: auto; max-width: 100%; object-fit: contain; filter: drop-shadow(0 6px 10px rgba(34,9,1,.18)); }
.art-panel.pair img { max-width: 46%; }
.art-panel.pair { gap: 12px; }

/* pillars */
.pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px 48px; }
.pillar .ico { width: 52px; height: 52px; border-radius: 12px; background: var(--tint); color: var(--coquelicot); display: flex; align-items: center; justify-content: center; margin-bottom: 18px; }
.pillar .ico svg { width: 28px; height: 28px; }
.pillar h3 { font-size: 22px; margin-bottom: 8px; }
.pillar p { margin: 0; }
@media (max-width: 991px) { .pillars { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767px) { .pillars { grid-template-columns: 1fr; gap: 28px; } }

/* 3 steps */
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; counter-reset: step; }
.step { background: var(--white); border-radius: var(--r-card-lg); padding: 28px 26px 30px; border: 1px solid var(--rule); position: relative; }
.step-num { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 999px; background: var(--coquelicot); color: var(--white); font-weight: 700; font-size: 18px; margin-bottom: 16px; }
.step h3 { font-size: 22px; margin-bottom: 8px; }
.step p { margin: 0; }
.step .ico { position: absolute; right: 22px; top: 26px; color: var(--coral); }
.step .ico svg { width: 34px; height: 34px; }
@media (max-width: 767px) { .steps { grid-template-columns: 1fr; } }

/* ---------- global module: figures strip ---------- */
.figures { display: grid; grid-template-columns: repeat(var(--n, 3), 1fr); gap: 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.fig { padding: 30px 28px 26px; border-left: 1px solid var(--rule); display: flex; flex-direction: column; }
.fig:first-child { border-left: 0; padding-left: 0; }
.fig-num { font-size: 52px; line-height: 1.05; font-weight: 700; color: var(--coquelicot); letter-spacing: -0.02em; }
.fig-num small { font-size: 22px; font-weight: 700; margin-left: 4px; letter-spacing: 0; }
.fig-label { margin: 10px 0 14px; color: var(--ink); font-weight: 500; line-height: 1.45; }
.fig-src { margin-top: auto; font-size: 12.5px; line-height: 1.45; color: var(--ink-4); }
.fig-src::before { content: "Source: "; font-weight: 600; }
.section--dark .figures { border-color: var(--on-dark-rule); }
.section--dark .fig { border-color: var(--on-dark-rule); }
.section--dark .fig-num { color: var(--coral); }
.section--dark .fig-label { color: var(--on-dark); }
.section--dark .fig-src { color: rgba(255,255,255,.55); }
.figures-note { font-size: 13px; color: var(--ink-4); margin-top: 16px; }
.section--dark .figures-note { color: rgba(255,255,255,.55); }
@media (max-width: 991px) { .figures { grid-template-columns: repeat(2, 1fr); } .fig:nth-child(3) { border-left: 0; padding-left: 0; } .fig:nth-child(n+3) { border-top: 1px solid var(--rule); } .section--dark .fig:nth-child(n+3) { border-top-color: var(--on-dark-rule); } }
@media (max-width: 767px) { .figures { grid-template-columns: 1fr; } .fig { border-left: 0; padding: 24px 0 22px; } .fig + .fig { border-top: 1px solid var(--rule); } .section--dark .fig + .fig { border-top-color: var(--on-dark-rule); } .fig-num { font-size: 44px; } }

/* ---------- install stories ---------- */
.story { display: flex; flex-direction: column; }
.story img { aspect-ratio: 4/3; width: 100%; object-fit: cover; border-radius: var(--r-card-lg); }
.story .card-kicker { margin: 18px 0 6px; }
.story h3 { font-size: 22px; margin-bottom: 8px; }
.story p { margin: 0 0 10px; }

/* who-it's-for cards */
.who { position: relative; border-radius: var(--r-card-lg); overflow: hidden; aspect-ratio: 3/4; display: flex; align-items: flex-end; text-decoration: none; color: var(--white); background: var(--licorice); }
.who img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.who::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(34,9,1,0) 35%, rgba(34,9,1,.86) 100%); }
.who div { position: relative; z-index: 1; padding: 18px 18px 20px; }
.who h3 { color: var(--white); font-size: 19px; margin-bottom: 4px; }
.who p { margin: 0; font-size: 14px; line-height: 1.45; color: rgba(255,255,255,.86); }
.who:hover img { transform: scale(1.04); }
.who:hover h3 { color: var(--coral); }
.who .tagline { position: absolute; top: 14px; left: 14px; z-index: 1; }
@media (max-width: 767px) { .who { aspect-ratio: 1/1; } .who h3 { font-size: 15.5px; margin: 0; } .who p { display: none; } .who div { padding: 12px 12px 14px; } }

/* ---------- global module: FAQ ---------- */
.faq { border-top: 1px solid var(--rule); }
.faq details { border-bottom: 1px solid var(--rule); }
.faq summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 0; cursor: pointer; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary h2 { font-size: 19px; line-height: 1.4; font-weight: 600; letter-spacing: 0; }
.faq summary:hover h2 { color: var(--coquelicot); }
.faq .chev { flex: none; width: 34px; height: 34px; border-radius: 999px; background: var(--tint); color: var(--coquelicot); display: flex; align-items: center; justify-content: center; transition: transform .2s; }
.faq .chev svg { width: 14px; height: 14px; }
.faq details[open] .chev { transform: rotate(180deg); }
.faq .faq-a { padding: 0 64px 24px 0; }
.faq .faq-a p:last-child { margin-bottom: 0; }
.faq-layout { display: grid; grid-template-columns: 0.8fr 1.6fr; gap: 56px; align-items: start; }
.faq-layout .section-head { margin-bottom: 0; }
@media (max-width: 991px) { .faq-layout { grid-template-columns: 1fr; gap: 24px; } }
@media (max-width: 767px) { .faq summary h2 { font-size: 17px; } .faq .faq-a { padding-right: 0; } }

/* ---------- global module: closing band ---------- */
.band { background: var(--coquelicot); color: var(--white); position: relative; overflow: hidden; }
.band::before { content: ""; position: absolute; width: 900px; height: 900px; left: -300px; bottom: -620px; background: radial-gradient(closest-side, rgba(255,200,23,.45), rgba(255,200,23,0)); pointer-events: none; }
.band .container { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; padding-top: 72px; padding-bottom: 72px; }
.band h2 { color: var(--white); margin-bottom: 16px; }
.band p { color: rgba(255,255,255,.92); }
.band .lead { color: rgba(255,255,255,.95); margin-bottom: 28px; }
.band .fork { margin-top: 22px; font-size: 14px; color: rgba(255,255,255,.9); }
.band .fork b { color: var(--white); }
.form-card { background: var(--white); color: var(--ink-2); border-radius: var(--r-card-lg); padding: 28px; box-shadow: var(--shadow-lg); }
.form-card h3 { font-size: 20px; margin-bottom: 4px; }
.form-card .muted { font-size: 14px; margin-bottom: 18px; }
.band .form-card p { color: var(--ink-3); }
.band .form-card .form-done { color: var(--rufous); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.form-grid .full { grid-column: 1 / -1; }
label.f { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 600; color: var(--ink); }
input, select, textarea { font: 15px var(--font); color: var(--ink); padding: 11px 12px; border: 1px solid var(--rule-strong); border-radius: var(--r-btn); background: var(--white); width: 100%; }
input:focus, select:focus, textarea:focus { outline: 2px solid var(--coquelicot); outline-offset: 0; border-color: var(--coquelicot); }
textarea { min-height: 84px; resize: vertical; }
.seg { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.seg label { display: block; }
.seg input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.seg span { display: block; text-align: center; padding: 10px 6px; border: 1px solid var(--rule-strong); border-radius: var(--r-btn); font-weight: 600; font-size: 14px; cursor: pointer; color: var(--ink-2); }
.seg input:checked + span { border-color: var(--coquelicot); background: var(--tint); color: var(--coquelicot); }
.seg input:focus-visible + span { outline: 3px solid var(--mikado); }
.form-note { font-size: 12.5px; color: var(--ink-4); margin: 12px 0 0; }
.form-done { display: none; margin-top: 12px; font-size: 14px; font-weight: 600; color: var(--rufous); }
form.sent .form-done { display: block; }
@media (max-width: 991px) { .band .container { grid-template-columns: 1fr; gap: 36px; } }
@media (max-width: 767px) { .band .container { padding-top: 52px; padding-bottom: 52px; } .form-card { padding: 22px 18px; } .form-grid { grid-template-columns: 1fr; } }

/* ---------- global module: see it on a real lot ---------- */
.reallot { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 16px; }
.reallot figure { position: relative; border-radius: var(--r-card-lg); overflow: hidden; }
.reallot img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4/3; }
.reallot figure:first-child img { aspect-ratio: auto; height: 100%; }
.reallot figcaption { position: absolute; left: 12px; bottom: 12px; right: 12px; margin: 0; background: rgba(34,9,1,.78); color: var(--white); font-size: 13px; padding: 7px 10px; border-radius: 6px; line-height: 1.35; }
.reallot-head { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 28px; flex-wrap: wrap; }
.reallot-head .section-head { margin-bottom: 0; }
@media (max-width: 767px) { .reallot { grid-template-columns: 1fr 1fr; } .reallot figure:first-child { grid-column: 1 / -1; } .reallot figure:first-child img { aspect-ratio: 4/3; } }

/* ---------- global module: Field Notes cards ---------- */
.note-card .card-img { aspect-ratio: 16/10; }
.note-meta { font-size: 13px; color: var(--ink-4); display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.note-meta i { width: 3px; height: 3px; border-radius: 99px; background: var(--ink-4); display: inline-block; }
.note-card .card-kicker { color: var(--coquelicot); }

/* cross-sell tiles */
.xsell a.card .card-img { aspect-ratio: 16/10; }

/* ---------- product family tiles / split ---------- */
.family .card-body h3 { font-size: 19px; }
@media (max-width: 767px) { .family .art-panel { height: 120px; padding: 12px; } .family .card-body { padding: 12px 12px 14px; gap: 4px; } .family .card-body h3 { font-size: 15px; } .family .card-body p { font-size: 12.5px; line-height: 1.45; } }
.split { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.tier { border: 1px solid var(--rule); border-radius: var(--r-card-lg); padding: 28px 26px; background: var(--white); display: flex; flex-direction: column; gap: 14px; }
.tier--stock { border: 2px solid var(--coquelicot); box-shadow: var(--shadow); }
.tier h3 { font-size: 22px; }
.tier .badge { align-self: flex-start; }
.tier ul { list-style: none; display: grid; gap: 8px; margin: 2px 0 6px; }
.tier li { display: flex; gap: 10px; font-size: 15px; line-height: 1.45; }
.tier li svg { flex: none; width: 18px; height: 18px; color: var(--coquelicot); margin-top: 2px; }
.tier .btn { margin-top: auto; align-self: flex-start; }
@media (max-width: 991px) { .split { grid-template-columns: 1fr; } }

.messages { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border-top: 1px solid var(--on-dark-rule); }
.msg { padding: 28px 28px 30px 0; border-bottom: 1px solid var(--on-dark-rule); }
.msg:not(:nth-child(3n+1)) { padding-left: 28px; border-left: 1px solid var(--on-dark-rule); }
.msg .n { font-size: 13px; font-weight: 700; color: var(--coral); letter-spacing: 1px; }
.msg h3 { font-size: 21px; margin: 6px 0 8px; }
.msg p { margin: 0; }
@media (max-width: 991px) { .messages { grid-template-columns: 1fr 1fr; } .msg:not(:nth-child(3n+1)) { padding-left: 0; border-left: 0; } .msg:nth-child(even) { padding-left: 24px; border-left: 1px solid var(--on-dark-rule); } }
@media (max-width: 767px) { .messages { grid-template-columns: 1fr; } .msg:nth-child(even) { padding-left: 0; border-left: 0; } .msg { padding-right: 0; } }

/* gallery */
.gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.gallery figure img { aspect-ratio: 4/3; width: 100%; object-fit: cover; border-radius: var(--r-card); }
.gallery figcaption b { color: var(--ink); display: block; font-size: 14px; }
@media (max-width: 767px) { .gallery { grid-template-columns: 1fr 1fr; gap: 12px; } .gallery figcaption { font-size: 12px; } }

/* situation rows (media + text) */
.situations { display: grid; gap: 56px; }
.sit { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.sit:nth-child(even) .sit-media { order: 2; }
.sit-media img { border-radius: var(--r-card-lg); width: 100%; aspect-ratio: 4/3; object-fit: cover; box-shadow: var(--shadow); }
.sit h3 { margin-bottom: 12px; }
.sit .n { font-weight: 700; color: var(--coquelicot); font-size: 14px; letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 8px; display: block; }
@media (max-width: 767px) { .sit { grid-template-columns: 1fr; gap: 20px; } .sit:nth-child(even) .sit-media { order: 0; } .situations { gap: 40px; } }

/* product cards (who-it's-for "what we'd put on it") */
.prod .art-panel { height: 190px; }
.prod .card-body { gap: 10px; }
.prod .card-body h3 { font-size: 18px; }
.prod .card-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }

/* quote block / story feature */
.feature { display: grid; grid-template-columns: 1.1fr 1fr; gap: 0; border-radius: var(--r-card-lg); overflow: hidden; background: var(--licorice); color: var(--on-dark-2); }
.feature .pics { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; background: var(--licorice); }
.feature .pics img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 3/4; }
.feature .txt { padding: 44px 44px; display: flex; flex-direction: column; justify-content: center; }
.feature h2, .feature h3 { color: var(--on-dark); }
.feature h2 { font-size: 34px; margin-bottom: 16px; }
.feature .eyebrow { color: var(--coral); }
.feature .link-arrow { color: var(--coral); margin-top: 8px; }
@media (max-width: 991px) { .feature { grid-template-columns: 1fr; } .feature .txt { padding: 32px 24px; } .feature h2 { font-size: 26px; } }

/* ---------- article (Field Note) ---------- */
.article-head { padding: 48px 0 8px; }
.article-head h1 { margin: 6px 0 16px; }
.article-head .lead { margin-bottom: 18px; }
.article-hero { margin: 28px 0 8px; }
.article-hero img { border-radius: var(--r-card-lg); width: 100%; aspect-ratio: 16/8; object-fit: cover; }
.article { font-size: 17px; line-height: 1.7; }
.article h2 { font-size: 30px; margin: 44px 0 14px; }
.article p { margin-bottom: 1.1em; }
.article ul.plain { padding-left: 1.2em; margin-bottom: 1.1em; }
.article ul.plain li { margin-bottom: .45em; }
.takeaways { background: var(--tint); border-radius: var(--r-card-lg); padding: 26px 30px 24px; margin: 28px 0 8px; border-left: 4px solid var(--coquelicot); }
.takeaways h2 { font-size: 15px !important; letter-spacing: 2px; text-transform: uppercase; color: var(--coquelicot); margin: 0 0 12px !important; }
.takeaways ul { list-style: none; display: grid; gap: 10px; }
.takeaways li { display: flex; gap: 12px; font-size: 16px; line-height: 1.55; color: var(--ink); }
.takeaways li svg { flex: none; width: 20px; height: 20px; color: var(--coquelicot); margin-top: 2px; }
.callout { display: flex; gap: 16px; align-items: flex-start; border: 1px solid var(--rule); border-radius: var(--r-card-lg); padding: 20px 22px; margin: 28px 0; background: var(--white); box-shadow: var(--shadow); }
.callout .ico { flex: none; width: 44px; height: 44px; border-radius: 10px; background: var(--coquelicot); color: var(--white); display: flex; align-items: center; justify-content: center; }
.callout .ico svg { width: 24px; height: 24px; }
.callout p { margin: 0 0 6px; font-size: 16px; }
.callout b { color: var(--ink); }
.callout img { width: 120px; height: 90px; object-fit: cover; border-radius: 8px; flex: none; }
.table-wrap { overflow-x: auto; margin: 24px 0 8px; border: 1px solid var(--rule); border-radius: var(--r-table); }
table.data { width: 100%; border-collapse: collapse; font-size: 15px; }
table.data caption { caption-side: bottom; text-align: left; font-size: 12.5px; color: var(--ink-4); padding: 12px 18px 14px; line-height: 1.45; }
table.data th, table.data td { text-align: left; padding: 13px 18px; border-bottom: 1px solid var(--rule); }
table.data thead th { background: var(--tint); color: var(--ink); font-weight: 700; font-size: 14px; }
table.data tbody tr:last-child td { border-bottom: 0; }
table.data td.num { font-weight: 700; color: var(--ink); }
table.data tr.hl td { background: var(--tint-2); }
.sources { font-size: 14px; color: var(--ink-3); }
.sources ol { padding-left: 1.3em; display: grid; gap: 8px; }
.sources h2 { font-size: 22px !important; }
.byline { display: flex; gap: 10px; align-items: center; font-size: 14px; color: var(--ink-3); }
.byline img { width: 34px; height: 34px; }
@media (max-width: 767px) { .article { font-size: 16px; } .article h2 { font-size: 24px; margin-top: 36px; } .takeaways { padding: 20px 18px; } .callout { flex-direction: column; } .callout img { width: 100%; height: 140px; } .article-hero img { aspect-ratio: 4/3; } }

/* ---------- footer (site chrome) ---------- */
.site-footer { background: var(--licorice); color: var(--on-dark-2); font-size: 15px; }
.site-footer a { color: var(--on-dark-2); text-decoration: none; }
.site-footer a:hover { color: var(--white); }
.foot-top { display: grid; grid-template-columns: 1.35fr repeat(4, 1fr); gap: 40px; padding: 64px 0 44px; }
.foot-brand img.sf { height: 40px; width: auto; margin-bottom: 18px; }
.foot-brand p { font-size: 14px; line-height: 1.6; margin-bottom: 14px; }
.foot-col h4 { color: var(--white); font-size: 13px; letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 14px; }
.foot-col ul { list-style: none; display: grid; gap: 8px; }
.foot-col li { font-size: 14.5px; line-height: 1.4; }
.foot-sign { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; padding: 30px 0; border-top: 1px solid var(--on-dark-rule); }
.foot-sign h3 { color: var(--white); font-size: 20px; margin-bottom: 4px; }
.foot-sign p { margin: 0; font-size: 14px; }
.foot-sign form { display: flex; gap: 10px; }
.foot-sign input { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.25); color: var(--white); }
.foot-sign input::placeholder { color: rgba(255,255,255,.5); }
.foot-lockup { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; padding: 26px 0; border-top: 1px solid var(--on-dark-rule); }
.division { display: flex; align-items: center; gap: 14px; }
.division img { height: 34px; width: auto; }
.division span { font-size: 14px; line-height: 1.35; border-left: 1px solid var(--on-dark-rule); padding-left: 14px; color: var(--on-dark-2); }
.division span b { color: var(--white); font-weight: 600; }
.social { display: flex; gap: 10px; }
.social a { width: 38px; height: 38px; border-radius: 999px; border: 1px solid var(--on-dark-rule); display: flex; align-items: center; justify-content: center; }
.social a:hover { border-color: var(--coral); color: var(--coral); }
.social svg { width: 17px; height: 17px; }
.legal { display: flex; justify-content: space-between; gap: 18px; flex-wrap: wrap; padding: 18px 0 28px; border-top: 1px solid var(--on-dark-rule); font-size: 13px; color: rgba(255,255,255,.55); }
.legal nav { display: flex; gap: 18px; flex-wrap: wrap; }
.legal a { color: rgba(255,255,255,.55); }
@media (max-width: 991px) { .foot-top { grid-template-columns: 1fr 1fr; } .foot-brand { grid-column: 1 / -1; } .foot-sign { grid-template-columns: 1fr; gap: 16px; } }
@media (max-width: 767px) { .foot-top { gap: 28px 20px; padding-top: 48px; } .foot-sign form { flex-direction: column; } }

/* ---------- toast for links to pages not in the mockup ---------- */
.toast { position: fixed; left: 50%; bottom: 24px; transform: translate(-50%, 20px); background: var(--licorice); color: var(--white); padding: 12px 18px; border-radius: 8px; font-size: 14px; box-shadow: var(--shadow-lg); opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s; z-index: 100; max-width: calc(100% - 32px); }
.toast.show { opacity: 1; transform: translate(-50%, 0); }
.toast code { color: var(--coral); font-size: 13px; }

/* ===================== store chrome (Shopify at shop.) ===================== */
.store-bar { background: var(--licorice); color: var(--on-dark-2); font-size: 13.5px; text-align: center; padding: 9px var(--gutter); }
.store-bar b { color: var(--white); }
.store-header { position: sticky; top: 0; z-index: 50; background: var(--white); border-bottom: 1px solid var(--rule); }
.sf-store .store-header { position: static; }   /* inside the site, whose own header stays on top */
.store-header .bar { display: flex; align-items: center; gap: 24px; height: 72px; }
.store-brand { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.store-brand img { height: 34px; width: auto; }
.store-brand--text { font-weight: 700; color: var(--coquelicot); font-size: 15px; letter-spacing: 1px; text-transform: uppercase; }
.store-brand span { font-weight: 700; color: var(--coquelicot); font-size: 15px; letter-spacing: 1px; text-transform: uppercase; border-left: 1px solid var(--rule-strong); padding-left: 12px; }
.store-search { flex: 1; max-width: 460px; position: relative; }
.store-search input { padding-left: 40px; background: #faf8f7; }
.store-search svg { position: absolute; left: 13px; top: 50%; width: 17px; height: 17px; transform: translateY(-50%); color: var(--ink-4); }
.store-icons { margin-left: auto; display: flex; align-items: center; gap: 6px; }
.store-icons a { display: inline-flex; align-items: center; gap: 6px; color: var(--ink); text-decoration: none; font-weight: 600; font-size: 14px; padding: 8px 10px; border-radius: 6px; position: relative; }
.store-icons a:hover { background: var(--tint); color: var(--coquelicot); }
.store-icons svg { width: 21px; height: 21px; }
.cart-count { position: absolute; top: 1px; right: 0; background: var(--coquelicot); color: var(--white); font-size: 11px; font-weight: 700; border-radius: 99px; min-width: 18px; height: 18px; display: flex; align-items: center; justify-content: center; padding: 0 4px; }
.store-nav { border-top: 1px solid var(--rule); }
.store-nav .container { display: flex; gap: 26px; align-items: center; height: 48px; overflow-x: auto; scrollbar-width: none; }
.store-nav a { white-space: nowrap; color: var(--ink-2); text-decoration: none; font-weight: 600; font-size: 14.5px; }
.store-nav a.active, .store-nav a:hover { color: var(--coquelicot); }
.store-nav .sep { margin-left: auto; color: var(--ink-3); font-weight: 500; }
@media (max-width: 767px) {
  .store-header .bar { gap: 10px; height: 60px; }
  .store-brand img { height: 26px; }
  .store-brand span { font-size: 12px; padding-left: 8px; }
  .store-search { display: none; }
  .store-icons a span { display: none; }
  .store-nav .container { gap: 18px; height: 44px; }
  .store-nav .sep { display: none; }
}

.pdp { display: grid; grid-template-columns: 1.15fr 1fr; gap: 56px; padding: 28px 0 64px; align-items: start; }
.pdp-gallery .main { position: relative; border-radius: var(--r-card-lg); overflow: hidden; background: var(--tint); }
.pdp-gallery .main img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.pdp-gallery .main img.contain { object-fit: contain; padding: 8%; }
.sample-tag { position: absolute; left: 14px; top: 14px; background: rgba(34,9,1,.82); color: var(--white); font-size: 12px; font-weight: 600; letter-spacing: .5px; padding: 6px 10px; border-radius: 6px; }
.thumbs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 10px; }
.thumbs button { padding: 0; border: 2px solid transparent; border-radius: 8px; overflow: hidden; cursor: pointer; background: var(--tint); }
.thumbs button[aria-current="true"] { border-color: var(--coquelicot); }
.thumbs img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.thumbs img.contain { object-fit: contain; padding: 6px; }
.pdp-info h1 { font-size: 36px; line-height: 1.2; margin: 6px 0 12px; }
.price { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 4px; }
.price b { font-size: 30px; color: var(--ink); }
.price span { color: var(--ink-3); }
.price-note { font-size: 14px; color: var(--ink-3); margin-bottom: 20px; }
.pdp-info .desc { margin-bottom: 22px; }
.opt { margin-bottom: 20px; }
.opt-label { font-size: 13px; font-weight: 700; color: var(--ink); text-transform: uppercase; letter-spacing: 1px; margin-bottom: 10px; display: block; }
.opt-label span { text-transform: none; letter-spacing: 0; font-weight: 500; color: var(--ink-3); margin-left: 6px; }
.swatches { display: flex; gap: 10px; }
.swatches label { cursor: pointer; }
.swatches input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.swatches i { display: block; width: 38px; height: 38px; border-radius: 999px; border: 1px solid var(--rule-strong); box-shadow: inset 0 0 0 3px var(--white); }
.swatches input:checked + i { outline: 2px solid var(--coquelicot); outline-offset: 2px; }
.swatches input:focus-visible + i { outline: 3px solid var(--mikado); }
.buy-row { display: flex; gap: 12px; margin-bottom: 14px; }
.qty { display: flex; align-items: center; border: 1px solid var(--rule-strong); border-radius: var(--r-btn); }
.qty button { width: 42px; height: 48px; background: none; border: 0; font-size: 20px; cursor: pointer; color: var(--ink); }
.qty output { min-width: 66px; text-align: center; font-weight: 700; color: var(--ink); font-size: 15px; }
.buy-row .btn { flex: 1; font-size: 17px; }
.ships { display: flex; gap: 10px; align-items: flex-start; font-size: 14.5px; color: var(--ink-2); padding: 14px 16px; background: #f4faf6; border-radius: 8px; margin-bottom: 20px; }
.ships svg { flex: none; width: 20px; height: 20px; color: #146c3a; margin-top: 1px; }
.delivery { border: 1px solid var(--rule); border-radius: var(--r-card); margin-bottom: 20px; }
.delivery label { display: flex; gap: 12px; padding: 13px 16px; border-bottom: 1px solid var(--rule); cursor: pointer; font-size: 14.5px; align-items: flex-start; }
.delivery label:last-child { border-bottom: 0; }
.delivery input { width: auto; margin-top: 4px; accent-color: var(--coquelicot); }
.delivery b { color: var(--ink); display: block; }
.delivery small { color: var(--ink-3); font-size: 13.5px; }
.builtfor { font-size: 14.5px; margin-bottom: 16px; }
.builtfor b { color: var(--ink); }
.group-fork { font-size: 14px; color: var(--ink-3); border-top: 1px solid var(--rule); padding-top: 16px; }
.specs { width: 100%; border-collapse: collapse; font-size: 15px; }
.specs th, .specs td { text-align: left; padding: 12px 0; border-bottom: 1px solid var(--rule); vertical-align: top; }
.specs th { width: 34%; color: var(--ink); font-weight: 600; padding-right: 16px; }
.after { list-style: none; display: grid; gap: 14px; counter-reset: a; }
.after li { display: flex; gap: 14px; align-items: flex-start; }
.after li::before { counter-increment: a; content: counter(a); flex: none; width: 30px; height: 30px; border-radius: 99px; background: var(--coquelicot); color: var(--white); font-weight: 700; display: flex; align-items: center; justify-content: center; font-size: 14px; }
.pdp-more { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; }
.pdp-more h2.h3 { font-size: 26px; margin-bottom: 18px; }
@media (max-width: 991px) { .pdp { grid-template-columns: 1fr; gap: 28px; } .pdp-more { grid-template-columns: 1fr; gap: 40px; } }
@media (max-width: 767px) { .pdp-info h1 { font-size: 28px; } .pdp { padding-top: 16px; } }

.store-footer { background: var(--licorice); color: var(--on-dark-2); font-size: 14px; }
.store-footer a { color: var(--on-dark-2); text-decoration: none; }
.store-footer a:hover { color: var(--white); }
.store-footer .cols { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 36px; padding: 48px 0 32px; }
.store-footer h4 { color: var(--white); font-size: 13px; letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 12px; }
.store-footer ul { list-style: none; display: grid; gap: 7px; }
.store-footer img.sf { height: 34px; width: auto; margin-bottom: 14px; }
@media (max-width: 767px) { .store-footer .cols { grid-template-columns: 1fr 1fr; } .store-footer .cols > div:first-child { grid-column: 1 / -1; } }

/* ===================== design-system sheet ===================== */
.ds-sec { padding: 56px 0; border-top: 1px solid var(--rule); }
.ds-sec > .container > h2 { font-size: 30px; margin-bottom: 6px; }
.ds-sec > .container > p.muted { margin-bottom: 28px; max-width: 48rem; }
.swatch-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 16px; }
.swatch { border: 1px solid var(--rule); border-radius: var(--r-card); overflow: hidden; }
.swatch .chip { height: 92px; }
.swatch div:last-child { padding: 12px 14px; font-size: 13px; line-height: 1.45; }
.swatch b { display: block; color: var(--ink); font-size: 14px; }
.swatch code { font-size: 12.5px; color: var(--ink-3); }
.type-row { display: grid; grid-template-columns: 200px 1fr; gap: 24px; padding: 18px 0; border-bottom: 1px solid var(--rule); align-items: baseline; }
.type-row .spec { font-size: 13px; color: var(--ink-4); line-height: 1.45; }
.type-row .spec b { color: var(--ink); display: block; font-size: 14px; }
.spec-table { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.spec-table th, .spec-table td { padding: 11px 14px; border-bottom: 1px solid var(--rule); text-align: left; vertical-align: top; }
.spec-table th { background: var(--tint); color: var(--ink); font-size: 13px; }
.spec-table code { font-size: 13px; color: var(--rufous); }
.specimen { border: 1px dashed var(--rule-strong); border-radius: var(--r-card-lg); padding: 28px; background: #fdfcfb; }
.specimen.dark { background: var(--licorice); border-color: transparent; }
.specimen-label { font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--ink-4); font-weight: 600; margin: 26px 0 10px; }
.radius-demo { display: flex; gap: 18px; flex-wrap: wrap; }
.radius-demo div { width: 120px; height: 80px; background: var(--tint); border: 1px solid var(--coral); display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 600; color: var(--rufous); }
.icon-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 12px; }
.icon-grid div { border: 1px solid var(--rule); border-radius: var(--r-card); padding: 16px 8px 12px; text-align: center; font-size: 12px; color: var(--ink-3); }
.icon-grid svg { width: 30px; height: 30px; color: var(--coquelicot); display: block; margin: 0 auto 8px; }
.logo-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.logo-grid > div { border: 1px solid var(--rule); border-radius: var(--r-card); padding: 26px; display: flex; flex-direction: column; justify-content: space-between; gap: 18px; min-height: 160px; }
.logo-grid > div.on-dark { background: var(--licorice); border-color: transparent; color: var(--on-dark-2); }
.logo-grid img { max-height: 54px; width: auto; }
.logo-grid p { margin: 0; font-size: 13px; }
.case-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.case-compare > div { border: 1px solid var(--rule); border-radius: var(--r-card); padding: 20px 22px; }
.case-compare h3 { font-size: 24px; margin: 6px 0 0; }
.rhythm { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; }
.rhythm div { height: 70px; border-radius: 8px; font-size: 12px; font-weight: 600; display: flex; align-items: flex-end; padding: 8px; border: 1px solid var(--rule); }
.ds-toc { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 14px; }
.ds-toc a { text-decoration: none; font-weight: 600; }
@media (max-width: 767px) { .type-row { grid-template-columns: 1fr; gap: 6px; } .logo-grid, .case-compare { grid-template-columns: 1fr; } .rhythm { grid-template-columns: repeat(3, 1fr); } .specimen { padding: 18px 14px; } }

/* ===================== mockup cover (index) ===================== */
.cover-pages { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.cover-pages .card-img { aspect-ratio: 16/11; object-fit: cover; object-position: top; border-bottom: 1px solid var(--rule); }
.cover-pages .card-body .small a { font-weight: 600; }
.react { counter-reset: r; list-style: none; display: grid; gap: 14px; }
.react li { display: grid; grid-template-columns: 34px 1fr; gap: 12px; align-items: start; }
.react li::before { counter-increment: r; content: counter(r); width: 30px; height: 30px; border-radius: 99px; background: var(--coquelicot); color: var(--white); font-weight: 700; display: flex; align-items: center; justify-content: center; font-size: 14px; }
@media (max-width: 991px) { .cover-pages { grid-template-columns: 1fr 1fr; } }
@media (max-width: 767px) { .cover-pages { grid-template-columns: 1fr; } }

/* ---------- the ready-to-print store's collection and product pages (store/build/build_store.py) ---------- */
.store-grid .card-price { margin-top: auto; font-size: 15px; color: var(--ink-2); }
.store-grid .card-price b { font-size: 20px; color: var(--licorice); }
.store-grid .card-price--tbd, .price--tbd b { color: var(--ink-3); font-size: 15px; font-weight: 600; }
.store-grid .card-pack { font-size: 13px; color: var(--ink-3); }
.art-panel--icon svg, .pdp-gallery .main--icon svg { width: 56px; height: 56px; stroke: var(--coquelicot); fill: none; stroke-width: 1.6; opacity: .55; }
.pdp-gallery .main--icon { aspect-ratio: 4/3; background: var(--tint); border-radius: var(--r-card-lg); display: flex; align-items: center; justify-content: center; }
.collection-head { max-width: 48rem; margin: 18px 0 36px; }
.collection-head h1 { margin-bottom: 14px; }
.store-fork { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; }
@media (max-width: 767px) { .store-fork { grid-template-columns: 1fr; gap: 28px; } }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip input { position: absolute; opacity: 0; pointer-events: none; }
.chip span { display: inline-block; padding: 8px 14px; border: 1.5px solid var(--rule); border-radius: 999px; font-size: 14px; font-weight: 600; cursor: pointer; }
.chip input:checked + span { border-color: var(--coquelicot); color: var(--coquelicot); background: var(--tint); }
.chip input:focus-visible + span { outline: 2px solid var(--coquelicot); outline-offset: 2px; }
.hero-media { position: relative; }
.hero-media .hero-img { width: 100%; border-radius: 14px; box-shadow: var(--shadow-lg, 0 18px 40px rgba(34,9,1,.18)); }
.hero-media .sample-tag { position: absolute; left: 12px; bottom: 12px; }
.chip { position: relative; display: inline-block; }
.chip input { left: 0; top: 0; width: 1px; height: 1px; margin: 0; }
.hero-media .sample-tag { top: auto; }

/* ---------- store review fixes (2026-10-23): balanced headings, centered last rows, one media box ---------- */
h1, h2, h3 { text-wrap: balance; }
.store-grid.g-3, .store-collections { display: flex; flex-wrap: wrap; justify-content: center; }
.store-grid.g-3 > *, .store-collections > * { flex: 0 1 calc((100% - 48px) / 3); min-width: 0; }
@media (max-width: 767px) { .store-grid.g-3 > *, .store-collections > * { flex-basis: 100%; } }
.store-grid .card-img, .store-grid .art-panel, .store-collections .card-img, .store-collections .art-panel { aspect-ratio: 4/3; height: auto; width: 100%; }
.store-grid .art-panel, .store-collections .art-panel { min-height: 0; overflow: hidden; }
.store-grid .art-panel img, .store-collections .art-panel img { max-height: 100%; max-width: 88%; }
.art-panel--icon { flex-direction: column; gap: 10px; }
.art-panel--icon span, .pdp-gallery .main--icon span { font-size: 12.5px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--ink-3); }
.pdp-gallery .main--icon { flex-direction: column; gap: 12px; }
.card-note { margin: 0; font-size: 12.5px; font-weight: 600; color: var(--ink-3); }
.pdp-gallery .img-note { margin: 10px 2px 0; font-size: 13.5px; font-weight: 600; color: var(--ink-3); }
.cart-count { left: 24px; right: auto; top: 0; }
.store-nav a.season::after { content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--coquelicot); margin-left: 7px; vertical-align: 2px; }
.store-nav a.season:not(.active):not(:hover) { color: var(--ink-2); }
.store-nav a.active { color: var(--coquelicot); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 7px; }
@media (max-width: 767px) {
  .store-nav { position: relative; }
  .store-nav::after { content: ""; position: absolute; top: 1px; right: 0; bottom: 0; width: 40px; background: linear-gradient(90deg, rgba(255,255,255,0), #fff 85%); pointer-events: none; }
  .store-nav .container { padding-right: 40px; }
}
.store-fork { grid-template-rows: auto auto; row-gap: 0; }
.store-fork > div { display: grid; grid-row: span 2; grid-template-rows: subgrid; align-content: start; }
.store-fork h2 { margin-bottom: 14px; }
.store-fork p, .store-fork .after { margin-top: 0; }
@media (max-width: 480px) {
  .specs tr, .specs th, .specs td { display: block; width: auto; }
  .specs th { padding: 12px 0 2px; border-bottom: 0; }
  .specs td { padding: 0 0 12px; }
}

/* the store's one bar (2026-10-27): "Shop" and the collections on the left, search and the icons on the
   right of the same row; the news line carries the mockup note. Overrides the two-row header above. */
.store-bar .mock-flag { margin-left: 14px; padding-left: 14px; border-left: 1px solid rgba(255,255,255,.25); color: var(--on-dark-3, #b9a9a3); font-size: 12.5px; }
.store-header--one .bar { height: 60px; gap: 16px; }
.store-header--one .store-nav { flex: 1; min-width: 0; border-top: 0; display: flex; align-items: center; gap: 20px; height: 60px; overflow-x: auto; scrollbar-width: none; }
.store-header--one .store-nav::-webkit-scrollbar { display: none; }
.store-header--one .store-nav .store-home { color: var(--coquelicot); font-weight: 700; letter-spacing: .5px; padding-right: 22px; border-right: 1px solid var(--rule); }
.store-header--one .store-search { flex: 0 1 170px; min-width: 150px; }
.store-header--one .store-icons { margin-left: 0; gap: 2px; }
.store-header--one .store-icons a span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (max-width: 1320px) { .store-header--one .store-search { display: none; } }
@media (max-width: 767px) {
  .store-bar .mock-flag { display: block; margin: 2px 0 0; padding: 0; border: 0; }
  .store-header--one .bar { gap: 6px; height: 52px; }
  .store-header--one .store-nav { height: 52px; gap: 18px; position: relative; -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); padding-right: 24px; }
  .store-header--one .store-nav::after { display: none; }
  .store-header--one .store-nav .store-home { padding-right: 16px; }
}
/* the store front (2026-10-27): its hero is a stack of what it sells; one short section on what happens next */
.store-hero-art, .store-hero-art.art-panel { position: relative; height: auto; padding: 0; aspect-ratio: 4/3; border-radius: var(--r-card-lg); background: transparent; }
.store-hero-art img, .hero-media .store-hero-art img { position: absolute; inset: 4%; width: 92%; height: 92%; object-fit: contain; box-shadow: none; border-radius: 0; filter: drop-shadow(0 10px 18px rgba(34,9,1,.16)); }
.store-after { max-width: 760px; }
.store-after h2 { margin-bottom: 14px; }


}
