@font-face{font-family:"Barlow";font-style:normal;font-weight:400;font-display:swap;src:url(/i/type/barlow-400.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Barlow";font-style:normal;font-weight:500;font-display:swap;src:url(/i/type/barlow-500.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Barlow";font-style:normal;font-weight:600;font-display:swap;src:url(/i/type/barlow-600.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Barlow";font-style:normal;font-weight:700;font-display:swap;src:url(/i/type/barlow-700.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:600;font-display:swap;src:url(/i/type/barlow-condensed-600.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:700;font-display:swap;src:url(/i/type/barlow-condensed-700.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

:root {
  --night: hsl(210 55% 10%);
  --deep: hsl(208 67% 17%);
  --steel: hsl(208 57% 32%);
  --haze: hsl(206 42% 91%);
  --frost: hsl(206 33% 96%);
  --seam: hsl(206 26% 88%);
  --ember: hsl(22 87% 53%);
  --ember-dark: hsl(22 86% 42%);
  --ember-soft: hsl(24 100% 75%);
  --ink: hsl(207 35% 14%);
  --dim: hsl(207 15% 40%);
  --round: 0.875rem;
  --cond: "Barlow Condensed", "Arial Narrow", sans-serif;
  --text: "Barlow", system-ui, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 5rem; }
body {
  margin: 0; background: #fff; color: var(--ink);
  font: 400 1.0625rem/1.6 var(--text); -webkit-font-smoothing: antialiased;
}
img { max-inline-size: 100%; block-size: auto; display: block; }
a { color: var(--steel); }
h1, h2, h3 { font-family: var(--cond); font-weight: 700; line-height: 1.08; color: var(--night); margin: 0 0 0.5em; letter-spacing: 0.01em; }
h1 { font-size: clamp(2.2rem, 4.4vw, 3.6rem); }
h2 { font-size: clamp(1.8rem, 3vw, 2.5rem); }
h3 { font-size: 1.3rem; }
p { margin: 0 0 1em; }
ul, ol { margin: 0; padding: 0; }
.frame { inline-size: min(77.5rem, 100% - 2rem); margin-inline: auto; }
.jump {
  position: absolute; inset-inline-start: -999rem; z-index: 99; background: var(--ember); color: #fff; padding: 0.6rem 1rem;
  &:focus { inset-inline-start: 0.5rem; }
}
.eyebrow {
  font: 700 0.92rem var(--cond); text-transform: uppercase; letter-spacing: 0.14em; color: var(--ember); margin-block-end: 0.4rem;
  & a { color: inherit; text-decoration: none; }
  &.is_warm { color: var(--ember-soft); }
}
.glyph { inline-size: 100%; block-size: 100%; }
.tick { inline-size: 1.1rem; block-size: 1.1rem; flex: none; fill: none; stroke: var(--ember); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.ring_arrow { inline-size: 1.6rem; block-size: 1.6rem; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.stars {
  --pct: calc(var(--r) / 5 * 100%);
  background: linear-gradient(90deg, hsl(40 94% 49%) var(--pct), hsl(206 20% 80%) 0);
  -webkit-background-clip: text; background-clip: text; color: transparent; letter-spacing: 1px;
}

/* strip + header */
.route_strip {
  background: var(--ember); color: #fff; text-align: center; padding: 0.42rem 1rem;
  font: 600 0.86rem var(--cond); letter-spacing: 0.06em; text-transform: uppercase;
}
.trail_head { background: var(--night); position: sticky; inset-block-start: 0; z-index: 40; border-block-end: 1px solid hsl(210 40% 19%); }
.trail_row { display: flex; align-items: center; gap: 1.75rem; min-block-size: 4.5rem; }
.brand_mark img { inline-size: 9.4rem; }
.legs_nav {
  flex: 1;
  & ul { list-style: none; display: flex; justify-content: center; flex-wrap: wrap; gap: 0.25rem; }
  & a {
    display: block; color: hsl(207 40% 90%); text-decoration: none; padding: 0.5rem 0.7rem; border-radius: 0.4rem;
    font: 600 1rem var(--cond); text-transform: uppercase; letter-spacing: 0.07em;
    &:hover, &:focus-visible { color: #fff; background: hsl(209 50% 19%); }
  }
}
.legs_toggle {
  display: none; margin-inline-start: auto; background: none; border: 1px solid hsl(209 40% 27%); border-radius: 0.5rem;
  padding: 0.55rem 0.6rem; cursor: pointer; flex-direction: column; gap: 0.25rem;
  & i { display: block; inline-size: 1.25rem; block-size: 2px; background: #fff; }
}
.buy_stamp {
  display: inline-flex; align-items: center; justify-content: center; background: var(--ember); border-radius: 999px;
  box-shadow: 0 0.4rem 1rem -0.5rem hsl(22 87% 53% / 0.8); transition: background 0.2s, translate 0.2s;
  &:hover, &:focus-visible { background: var(--ember-dark); translate: 0 -1px; }
  &.is_deck { padding: 0.62rem 1.1rem; flex: none; & img { inline-size: 9.4rem; } }
  &.is_dawn { padding: 1rem 1.8rem; & img { inline-size: 14.4rem; } }
  &.is_tile { display: flex; inline-size: 100%; padding: 0.85rem 1rem; border-radius: 0.6rem; margin-block-start: auto; & img { inline-size: min(12rem, 90%); } }
  &.is_pdp { display: flex; inline-size: 100%; max-inline-size: 27.5rem; padding: 1.05rem 1.4rem; border-radius: 0.75rem; & img { inline-size: 15.6rem; } }
}
.line_btn {
  display: inline-flex; align-items: center; padding: 0.9rem 1.6rem; border-radius: 999px; border: 2px solid #fff; color: #fff; text-decoration: none;
  font: 700 1.1rem var(--cond); text-transform: uppercase; letter-spacing: 0.08em;
  &:hover { background: #fff; color: var(--night); }
  &.is_ink { border-color: var(--night); color: var(--night); &:hover { background: var(--night); color: #fff; } }
}
.bread ol {
  list-style: none; display: flex; flex-wrap: wrap; gap: 0.5rem; padding-block: 1.1rem 0.75rem; font-size: 0.88rem; color: var(--dim);
  & li + li::before { content: "/"; margin-inline-end: 0.5rem; }
  & a { color: var(--steel); text-decoration: none; }
}

/* hero */
.dawn { background: linear-gradient(180deg, hsl(207 67% 21%) 0%, var(--deep) 38%, var(--night) 100%); color: #fff; padding-block-end: 4rem; }
.dawn_banner img { inline-size: 100%; aspect-ratio: 5 / 1; object-fit: cover; mask-image: linear-gradient(180deg, #000 72%, transparent); }
.dawn_copy {
  text-align: center; max-inline-size: 57.5rem;
  & h1 { color: #fff; margin-block-end: 0.4em; }
}
.dawn_lead { color: hsl(207 35% 86%); font-size: 1.12rem; max-inline-size: 47.5rem; margin: 0 auto 1.6rem; }
.dawn_acts { display: flex; gap: 0.9rem; justify-content: center; align-items: center; flex-wrap: wrap; }
.dawn_proof {
  list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem 1.6rem; margin-block-start: 1.8rem; color: hsl(207 40% 90%); font-size: 0.98rem;
  & li { display: flex; align-items: center; gap: 0.4rem; }
}

/* category icon row */
.leg_band { border-block-end: 1px solid var(--seam); }
.leg_icons {
  list-style: none; display: grid; grid-template-columns: repeat(7, 1fr); gap: 0.75rem; padding-block: 1.9rem;
  & a { display: flex; flex-direction: column; align-items: center; gap: 0.6rem; text-decoration: none; color: var(--night); }
  & a:hover .leg_pic { translate: 0 -3px; box-shadow: 0 0.75rem 1.5rem -1rem hsl(208 67% 17% / 0.6); }
}
.leg_pic {
  position: relative; overflow: hidden; inline-size: 100%; max-inline-size: 8.75rem; aspect-ratio: 1; border-radius: 1.1rem; background: var(--frost); transition: translate 0.2s, box-shadow 0.2s;
  & img { position: absolute; inset: 8%; inline-size: 84%; block-size: 84%; object-fit: contain; mix-blend-mode: multiply; }
}
.leg_name { font: 700 1rem var(--cond); text-transform: uppercase; letter-spacing: 0.06em; }

/* finder */
.fit_finder { background: var(--frost); padding-block: 4rem; }
.fit_layout { display: grid; grid-template-columns: 23.75rem 1fr; gap: 1.75rem; align-items: start; }
.fit_panel {
  min-inline-size: 0; background: #fff; border: 1px solid var(--seam); border-radius: var(--round); padding: 1.75rem; box-shadow: 0 1.1rem 2.5rem -1.9rem hsl(210 55% 10% / 0.6);
  & h2 { font-size: 2rem; }
  & > p:first-of-type { color: var(--dim); }
  & label { display: grid; gap: 0.4rem; margin-block-start: 0.9rem; font: 700 0.85rem var(--cond); text-transform: uppercase; letter-spacing: 0.1em; color: var(--steel); }
  & select { inline-size: 100%; min-inline-size: 0; font: 400 1rem var(--text); text-transform: none; letter-spacing: 0; padding: 0.8rem 0.9rem; border: 1px solid var(--seam); border-radius: 0.6rem; background: #fff; color: var(--ink); }
  & select:disabled { background: var(--frost); color: hsl(207 12% 62%); }
}
.fit_hint { margin: 1.1rem 0 0.5rem; font-size: 0.9rem; color: var(--dim); }
.fit_quick {
  display: flex; flex-wrap: wrap; gap: 0.5rem;
  & button { border: 1px solid var(--seam); background: var(--frost); border-radius: 999px; padding: 0.4rem 0.8rem; font: inherit; font-size: 0.9rem; cursor: pointer; color: var(--deep); }
  & button:hover, & button[aria-pressed="true"] { background: var(--deep); color: #fff; border-color: var(--deep); }
}
.fit_out { display: grid; grid-template-columns: repeat(auto-fill, minmax(14.4rem, 1fr)); gap: 0.9rem; align-content: start; }
.fit_idle {
  grid-column: 1 / -1; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
  color: var(--dim); border: 2px dashed var(--seam); border-radius: var(--round); padding: 3rem 1.5rem; min-block-size: 21rem;
  & img { margin-block-end: 0.9rem; }
}
.fit_count { grid-column: 1 / -1; font: 700 1.4rem var(--cond); margin: 0; color: var(--night); }
.fit_hit {
  display: flex; gap: 0.75rem; align-items: center; background: #fff; border: 1px solid var(--seam); border-radius: 0.75rem; padding: 0.6rem; text-decoration: none; color: var(--ink); transition: border-color 0.2s, translate 0.2s;
  &:hover { border-color: var(--ember); translate: 0 -2px; }
  & img { inline-size: 4.6rem; block-size: 4.6rem; object-fit: contain; flex: none; }
  & span { display: grid; gap: 0.1rem; min-inline-size: 0; }
  & small { text-transform: uppercase; letter-spacing: 0.1em; font-size: 0.72rem; color: var(--ember); font-weight: 700; }
  & b { font-weight: 600; font-size: 0.95rem; line-height: 1.3; }
  & em { font-style: normal; color: var(--steel); font-weight: 700; }
}

/* shared band heads */
.band_head {
  margin-block-end: 1.6rem;
  & p { color: var(--dim); }
  &.is_center { text-align: center; }
}

/* lifestyle tiles */
.ride_band { padding-block: 4.5rem; }
.ride_tiles { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.ride_tile a {
  position: relative; display: block; aspect-ratio: 4 / 3; border-radius: var(--round); overflow: hidden; color: #fff; text-decoration: none; background: var(--deep);
  & img { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; object-fit: cover; transition: scale 0.5s; }
  &::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 35%, hsl(210 55% 10% / 0.82)); }
  &:hover img { scale: 1.05; }
  & b { position: absolute; inset-inline-start: 1.25rem; inset-block-end: 2.5rem; z-index: 1; display: flex; align-items: center; gap: 0.5rem; font: 700 1.9rem var(--cond); text-transform: uppercase; letter-spacing: 0.03em; }
  & span { position: absolute; inset-inline-start: 1.25rem; inset-block-end: 1rem; z-index: 1; color: hsl(207 40% 87%); font-size: 0.95rem; }
}

/* popular tabs */
.pop_board { padding-block: 4.5rem; background: linear-gradient(180deg, #fff, var(--frost)); }
.pop_tabs {
  display: flex; justify-content: center; gap: 0.4rem; margin-block-end: 1.6rem; border-block-end: 1px solid var(--seam);
  & button {
    background: none; border: 0; border-block-end: 3px solid transparent; margin-block-end: -1px; padding: 0.7rem 1.2rem; cursor: pointer;
    font: 700 1.15rem var(--cond); text-transform: uppercase; letter-spacing: 0.08em; color: var(--dim);
    &[aria-selected="true"] { color: var(--night); border-block-end-color: var(--ember); }
  }
}

/* product tiles */
.gear_grid { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.1rem; }
.gear_tile {
  container-type: inline-size; display: flex; flex-direction: column; gap: 0.4rem; background: #fff; border: 1px solid var(--seam); border-radius: var(--round); padding: 1rem;
  transition: box-shadow 0.2s, translate 0.2s;
  &:hover { box-shadow: 0 1.25rem 2.5rem -1.75rem hsl(210 55% 10% / 0.55); translate: 0 -2px; }
}
.gear_shot {
  display: block; aspect-ratio: 1; background: var(--frost); border-radius: 0.6rem; overflow: hidden; margin-block-end: 0.4rem;
  & img { inline-size: 100%; block-size: 100%; object-fit: contain; mix-blend-mode: multiply; padding: 0.5rem; }
}
.gear_leg { font: 700 0.78rem var(--cond); text-transform: uppercase; letter-spacing: 0.12em; color: var(--ember); }
.gear_name {
  font: 600 1rem/1.35 var(--text); margin: 0;
  & a { color: var(--night); text-decoration: none; &:hover { color: var(--steel); } }
}
.score {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; margin: 0; font-size: 0.86rem; color: var(--dim);
  &.is_big { font-size: 0.95rem; margin-block-end: 0.6rem; }
}
.fresh_pin { background: var(--haze); color: var(--deep); border-radius: 999px; padding: 0.1rem 0.6rem; font-size: 0.78rem; font-weight: 600; }
.gear_line { margin: 0; font-size: 0.9rem; line-height: 1.45; color: var(--dim); }
.gear_foot { display: flex; justify-content: space-between; align-items: center; margin-block: 0.4rem 0.5rem; }
.gear_price {
  font: 700 1.5rem var(--cond); color: var(--night);
  &.is_out { font-size: 1.05rem; color: var(--dim); }
  &.is_big { font-size: 2.3rem; }
}
.gear_more { font-size: 0.88rem; font-weight: 600; }
@container (max-width: 13rem) {
  .gear_foot { flex-direction: column; align-items: flex-start; gap: 0.2rem; }
}

/* kit builder */
.kit_band { background: var(--night); color: #fff; padding-block: 4.5rem; }
.kit_layout { display: grid; grid-template-columns: 1fr 1.6fr; gap: 2.5rem; align-items: center; }
.kit_words {
  & h2 { color: #fff; }
  & p { color: hsl(207 30% 83%); }
}
.warm_link { color: var(--ember-soft); font-weight: 700; text-decoration: none; display: inline-flex; align-items: center; gap: 0.5rem; }
.kit_chain {
  list-style: none; display: flex; gap: 2.2rem; align-items: stretch;
  & li { flex: 1; position: relative; min-inline-size: 0; }
  & li + li::before { content: "+"; position: absolute; inset-inline-start: -1.7rem; inset-block-start: 40%; font: 700 2.4rem var(--cond); color: var(--ember); }
  & li:last-child::before { content: "="; }
  & a { display: flex; flex-direction: column; gap: 0.25rem; block-size: 100%; background: #fff; border-radius: 0.75rem; padding: 0.75rem; text-decoration: none; color: var(--night); }
  & small { font: 700 0.8rem var(--cond); text-transform: uppercase; letter-spacing: 0.1em; color: var(--ember); }
  & img { aspect-ratio: 1; object-fit: contain; inline-size: 100%; }
  & strong { font-size: 0.85rem; line-height: 1.3; font-weight: 600; }
}
.kit_price { font: 700 1.1rem var(--cond); }

/* store sentence */
.store_words {
  margin: 0; padding: 4rem 1rem; text-align: center; background: var(--haze);
  & img { margin: 0 auto 1.1rem; }
  & blockquote { margin: 0; }
  & p { font: 600 clamp(1.6rem, 3vw, 2.4rem)/1.2 var(--cond); color: var(--deep); max-inline-size: 56rem; margin-inline: auto; }
}

/* reviews */
.voice_band { background: hsl(206 25% 94%); padding-block: 4.5rem; }
.voice_list {
  list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem;
  & figure { margin: 0; block-size: 100%; background: #fff; border-radius: 0.4rem; padding: 1.25rem; font-size: 0.95rem; box-shadow: 0 1px 0 var(--seam); }
  & figcaption { display: flex; justify-content: space-between; gap: 0.6rem; font-size: 0.88rem; }
  & cite { font-style: normal; font-weight: 700; }
  & figcaption span { color: hsl(145 64% 33%); font-weight: 600; font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.05em; }
  & .stars { display: block; margin-block: 0.3rem 0.4rem; letter-spacing: 2px; }
  & blockquote { margin: 0; }
  & h3 { font: 700 1.02rem var(--text); }
}
.voice_for { font-size: 0.8rem; color: var(--dim); margin: 0; font-weight: 600; }
.voice_note { font-size: 0.82rem; color: var(--dim); margin-block-start: 1rem; }

/* about over photo */
.camp_story {
  position: relative; isolation: isolate; overflow: hidden; background: var(--deep); color: #fff; padding-block: 5.5rem; text-align: center;
  &::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, hsl(210 55% 10% / 0.55), hsl(210 55% 10% / 0.85)); }
  & h2 { color: #fff; }
}
.camp_photo { position: absolute; inset: 0; z-index: -2; inline-size: 100%; block-size: 100%; object-fit: cover; opacity: 0.35; }
.camp_trio {
  list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.75rem; margin-block-start: 1.9rem;
  & .glyph { inline-size: 3.5rem; block-size: 3.5rem; margin: 0 auto 0.75rem; color: #fff; }
  & h3 { color: #fff; text-transform: uppercase; letter-spacing: 0.05em; }
  & p { color: hsl(207 35% 86%); font-size: 0.98rem; }
}

/* seo prose */
.long_read { padding-block: 4.5rem; }
.long_cols { columns: 2; column-gap: 3rem; & p { break-inside: avoid; color: hsl(207 20% 26%); } }

/* promise row + footer */
.promise_band { background: hsl(210 45% 12%); color: #fff; padding-block: 2.75rem; }
.promise_row {
  list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; text-align: center;
  & .glyph { inline-size: 2.5rem; block-size: 2.5rem; margin: 0 auto 0.5rem; color: var(--ember); }
  & h2 { color: #fff; font-size: 1.1rem; text-transform: uppercase; letter-spacing: 0.07em; }
  & p { color: hsl(207 22% 78%); font-size: 0.92rem; margin: 0; }
  & a { color: var(--ember-soft); }
}
.base_camp {
  background: var(--night); color: hsl(207 25% 80%); padding-block-start: 3.5rem;
  & h2 { color: #fff; font-size: 1rem; text-transform: uppercase; letter-spacing: 0.1em; margin-block-end: 0.75rem; }
  & ul { list-style: none; margin-block-end: 1.25rem; }
  & li a { display: block; padding-block: 0.2rem; font-size: 0.94rem; color: hsl(207 25% 80%); text-decoration: none; &:hover { color: #fff; } }
}
.camp_grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 2rem; }
.camp_id {
  & img { inline-size: 13rem; margin-block-end: 0.9rem; }
  & address { font-style: normal; font-size: 0.92rem; line-height: 1.7; & a { color: inherit; } }
}
.camp_motto { color: #fff; font: 600 1.25rem var(--cond); }
.camp_base {
  border-block-start: 1px solid hsl(209 40% 19%); margin-block-start: 2.75rem;
  & .frame { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 0.75rem; padding-block: 1.1rem; font-size: 0.85rem; }
}

/* shelf (category) */
.shelf_top {
  padding-block: 0.5rem 0.6rem;
  & > :not(.shelf_banner) { max-inline-size: 56rem; }
}
.shelf_banner { margin: 0 0 1.9rem; & img { inline-size: 100%; aspect-ratio: 5 / 1; object-fit: cover; border-radius: var(--round); } }
.shelf_lead { font-size: 1.1rem; color: hsl(207 20% 26%); }
.chip_row {
  list-style: none; display: flex; flex-wrap: wrap; gap: 0.5rem;
  & a { display: block; border: 1px solid var(--seam); border-radius: 999px; padding: 0.35rem 0.9rem; text-decoration: none; color: var(--deep); font-size: 0.9rem; font-weight: 600; }
  & a:hover { border-color: var(--ember); color: var(--ember); }
}
.shelf { padding-block: 1.5rem 2.5rem; }
.shelf_bar {
  display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 0.75rem; border-block: 1px solid var(--seam); padding-block: 0.75rem; margin-block-end: 1.4rem;
  & p { margin: 0; }
  & label { display: flex; align-items: center; gap: 0.5rem; font-size: 0.92rem; color: var(--dim); }
  & select { font: inherit; padding: 0.45rem 0.6rem; border: 1px solid var(--seam); border-radius: 0.5rem; }
}
.sheet_band, .ask_band { padding-block: 1.9rem 3.1rem; }
.sheet_scroll { overflow-x: auto; border: 1px solid var(--seam); border-radius: var(--round); }
.fit_sheet {
  inline-size: 100%; min-inline-size: 35rem; border-collapse: collapse; font-size: 0.95rem;
  & th, & td { padding: 0.75rem 1rem; text-align: start; vertical-align: top; border-block-end: 1px solid var(--seam); }
  & thead th { background: var(--deep); color: #fff; font: 700 0.9rem var(--cond); text-transform: uppercase; letter-spacing: 0.08em; }
  & tbody tr:nth-child(even) { background: var(--frost); }
  & tbody th { font-weight: 600; }
  & a { color: var(--night); }
}
.sheet_price { font-weight: 700; white-space: nowrap; &.is_out { color: var(--dim); font-weight: 500; } }
.ask_list {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr)); gap: 1rem; margin: 0;
  & div { border-block-start: 3px solid var(--ember); background: var(--frost); border-radius: 0 0 0.75rem 0.75rem; padding: 1rem 1.1rem; }
  & dt { font-weight: 700; color: var(--night); margin-block-end: 0.4rem; }
  & dd { margin: 0; color: hsl(207 20% 26%); }
}

/* product page */
.pdp_shell { display: grid; grid-template-columns: 1.05fr 1fr; gap: 2.75rem; align-items: start; padding-block: 0.6rem 3.1rem; }
.shot_strip {
  display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; border-radius: var(--round); background: var(--frost); scrollbar-width: none;
  & img { flex: 0 0 100%; aspect-ratio: 1; object-fit: contain; scroll-snap-align: center; mix-blend-mode: multiply; scroll-margin-top: 6rem; }
}
.shot_thumbs {
  display: flex; flex-wrap: wrap; gap: 0.6rem; margin-block-start: 0.75rem;
  & a { inline-size: 4.9rem; block-size: 4.9rem; border: 2px solid var(--seam); border-radius: 0.6rem; padding: 0.25rem; background: #fff; }
  & a:hover, & a:focus-visible { border-color: var(--ember); }
  & img { inline-size: 100%; block-size: 100%; object-fit: contain; }
}
.pdp_side h1 { font-size: clamp(1.8rem, 3vw, 2.6rem); }
.pdp_hook { font-size: 1.1rem; color: hsl(207 20% 26%); }
.pdp_buy { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0.9rem; margin-block: 0.5rem 0.9rem; & small { font-size: 0.85rem; color: var(--dim); } }
.cut_box {
  margin-block-start: 1.6rem; background: var(--frost); border-radius: var(--round); padding: 1.1rem 1.25rem;
  & h2 { font-size: 1.3rem; text-transform: uppercase; letter-spacing: 0.08em; }
  & ul { list-style: none; display: grid; gap: 0.5rem; }
  & li { display: flex; gap: 0.5rem; align-items: flex-start; font-size: 0.97rem; }
  & .tick { margin-block-start: 0.25rem; }
}
.box_line { display: flex; gap: 0.75rem; align-items: flex-start; margin-block-start: 1rem; font-size: 0.95rem; & .glyph { inline-size: 1.9rem; block-size: 1.9rem; flex: none; color: var(--steel); } }
.pdp_story { display: grid; grid-template-columns: 1fr 1fr; gap: 2.75rem; padding-block: 2.5rem; border-block-start: 1px solid var(--seam); }
.note_list { padding-inline-start: 1.2rem; & li { margin-block-end: 0.5rem; } & li::marker { color: var(--ember); } }
.kin_band { padding-block: 1.9rem 3.75rem; }

/* notes + desk pages */
.field_note {
  max-inline-size: 53.75rem; padding-block: 0.6rem 3.75rem;
  & h2 { margin-block-start: 1.4em; font-size: 1.9rem; }
}
.note_lead { font-size: 1.18rem; color: hsl(207 20% 26%); }
.step_list {
  list-style: none; counter-reset: leg; display: grid; gap: 0.75rem;
  & li { counter-increment: leg; position: relative; background: var(--frost); border-radius: 0.75rem; padding: 0.9rem 1rem 0.9rem 3.6rem; }
  & li::before { content: counter(leg); position: absolute; inset-inline-start: 0.9rem; inset-block-start: 0.75rem; inline-size: 2rem; block-size: 2rem; border-radius: 50%; background: var(--deep); color: #fff; display: grid; place-items: center; font: 700 1rem var(--cond); }
}
.next_hop {
  margin-block-start: 2.1rem; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 0.9rem; border: 1px solid var(--seam); border-radius: var(--round); padding: 1.1rem 1.4rem;
  & p { margin: 0; font-weight: 600; }
}
.note_more { margin-block-start: 1.9rem; display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem; }
.route_legs {
  list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.9rem; margin-block: 1.5rem;
  & li { border-block-start: 4px solid var(--ember); background: var(--frost); border-radius: 0 0 0.75rem 0.75rem; padding: 1rem; }
  & b { font: 700 1.1rem var(--cond); text-transform: uppercase; letter-spacing: 0.08em; }
  & p { margin: 0.4rem 0 0; font-size: 0.95rem; }
}
.call_cards {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-block-start: 1.25rem;
  & section { border: 1px solid var(--seam); border-radius: var(--round); padding: 1.25rem; }
  & h2 { font-size: 1.4rem; margin-block-start: 0; }
  & address { font-style: normal; margin-block-end: 1em; }
}
.off_map { text-align: center; padding-block: 3.75rem; & > img { margin: 0 auto 1rem; } }

/* breakpoints */
@media (max-width: 68.75em) {
  .legs_nav a { font-size: 0.9rem; padding: 0.45rem 0.5rem; }
  .gear_grid { grid-template-columns: repeat(3, 1fr); }
  .kit_layout, .fit_layout { grid-template-columns: 1fr; }
  .camp_grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 61.25em) {
  .trail_row { gap: 0.75rem; min-block-size: 4rem; }
  .legs_toggle { display: flex; }
  .legs_nav {
    position: fixed; inset: 0 0 auto auto; margin: 0; inline-size: min(20rem, 88vw); block-size: 100dvh; border: 0; padding: 4.5rem 1.25rem 1.25rem; background: var(--night);
    & ul { flex-direction: column; justify-content: flex-start; }
    & a { font-size: 1.2rem; padding: 0.8rem 0.6rem; border-block-end: 1px solid hsl(209 40% 19%); border-radius: 0; }
    &::backdrop { background: hsl(210 55% 10% / 0.6); }
  }
  .leg_icons { grid-template-columns: repeat(4, 1fr); }
  .ride_tiles, .voice_list { grid-template-columns: 1fr 1fr; }
  .pdp_shell, .pdp_story { grid-template-columns: 1fr; gap: 1.6rem; }
  .promise_row { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 61.3em) {
  .legs_nav:not(:popover-open) { display: block; position: static; inset: auto; margin: 0; padding: 0; border: 0; background: none; inline-size: auto; block-size: auto; overflow: visible; }
}
@media (max-width: 47.5em) {
  body { font-size: 1rem; }
  .brand_mark img { inline-size: 7.4rem; }
  .buy_stamp.is_deck { display: none; }
  .dawn_banner img { aspect-ratio: auto; }
  .dawn { padding-block-end: 2.75rem; }
  .dawn_proof { display: grid; grid-template-columns: 1fr 1fr; text-align: start; }
  .buy_stamp.is_dawn img { inline-size: 12.5rem; }
  .leg_icons { grid-template-columns: repeat(3, 1fr); }
  .gear_grid { grid-template-columns: 1fr 1fr; gap: 0.75rem; }
  .gear_tile { padding: 0.6rem; }
  .ride_tiles, .voice_list, .camp_trio, .route_legs, .call_cards { grid-template-columns: 1fr; }
  .kit_chain { flex-wrap: wrap; gap: 0.75rem; & li { flex: 1 1 40%; } & li + li::before { display: none; } }
  .long_cols { columns: 1; }
  .shelf_banner img { aspect-ratio: 3 / 1; object-position: left center; }
  .camp_grid { grid-template-columns: 1fr; }
  .pop_tabs button { padding: 0.6rem; font-size: 1rem; }
}
@media (max-width: 26.25em) {
  .gear_grid, .dawn_proof { grid-template-columns: 1fr; }
}
