/* v37 — voice review + shop secondary nav. Loaded last. */

/* ---- Home intro as a colored advertisement banner (headline only) ---- */
.home-intro-sec{padding-top:8px;padding-bottom:8px}
.home-intro--banner{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  border-radius:28px;
  padding:clamp(28px,4.6vw,56px) clamp(22px,4vw,52px);
  background:
    radial-gradient(80% 90% at 0% 0%, color-mix(in srgb, var(--blue) 22%, #fff) 0%, transparent 58%),
    radial-gradient(70% 80% at 100% 10%, color-mix(in srgb, var(--red) 18%, #fff) 0%, transparent 62%),
    linear-gradient(135deg, #e8f1fb 0%, #ffffff 46%, #fdecef 100%);
  border:1px solid var(--line);
  box-shadow:0 24px 50px -36px rgba(11,15,23,.45);
}
.home-intro--banner::before{
  content:"";
  position:absolute;
  inset:-20% -10% auto auto;
  width:58%;
  height:140%;
  background:
    repeating-linear-gradient(-18deg, transparent 0 18px, rgba(11,86,165,.06) 18px 20px),
    linear-gradient(120deg, transparent 30%, rgba(230,57,70,.10) 70%, transparent 95%);
  transform:rotate(8deg);
  pointer-events:none;
  z-index:0;
}
.home-intro--banner > *{position:relative;z-index:1}
.home-intro__kicker{
  margin:0 0 10px;
  font-size:12px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--red);
}
.home-intro--banner h2{
  margin:0 0 12px;
  max-width:16ch;
  font-size:clamp(36px,5.4vw,72px);
  line-height:.92;
}
.home-intro--banner p{margin:0;max-width:62ch;font-size:18px;color:var(--ink2)}
.home-intro--banner a{font-weight:700;text-underline-offset:3px}
@media (prefers-reduced-motion: reduce){
  .home-intro--banner::before{transform:none}
}

/* ---- Collection card images: fill the tile so frame transforms work ---- */
.card__img img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  max-width:none;
  max-height:none;
  margin:0;
  padding:8%;
  object-fit:contain;
  object-position:center;
  background:#fff;
}
.card{overflow:visible}
.card__t{overflow:visible;-webkit-line-clamp:unset;display:block}

/* ---- Boot line: text must not clip at any viewport ---- */
.boot-strip{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:8px 0 18px;
  padding:4px 0 10px;
  overflow:visible;
}
.boot-strip a{
  flex:1 1 160px;
  min-width:148px;
  max-width:280px;
  padding:14px 16px 16px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  overflow:visible;
  text-decoration:none;
  color:inherit;
}
.boot-strip a.is-on{background:#0b0f17;color:#fff}
.boot-strip b{
  display:block;
  font-family:var(--display);
  font-style:italic;
  font-weight:900;
  font-size:22px;
  letter-spacing:.02em;
  text-transform:uppercase;
  line-height:1.1;
  overflow:visible;
}
.boot-strip small{
  display:block;
  margin-top:6px;
  color:var(--muted);
  font-size:12.5px;
  line-height:1.35;
  white-space:normal;
  overflow:visible;
}
.boot-strip a.is-on small{color:#c5ceda}

/* ---- Collection banners: full art, no forced crop or black stage ---- */
.boot-banners,
.blade-hero{
  background:#f4f6f9;
  width:100%;
  overflow:hidden;
}
.blade-hero__track{display:block;overflow:visible}
.blade-hero figure{
  flex:none;
  width:100%;
  min-height:0 !important;
  margin:0;
  display:block;
  background:transparent !important;
}
.blade-hero img,
.boot-banners img,
.bnr-rail__track img,
.banner-row img{
  display:block;
  width:100%;
  height:auto;
  max-width:100%;
  max-height:none;
  object-fit:contain;
  object-position:center;
}
.bnr-rail__track>a,
.bnr-rail__track>img{
  aspect-ratio:auto;
  height:auto;
}

/* Footer cards on collections: never clip body copy */
.coll-footer,
.coll-article,
.coll-article > div,
.coll-article [style*="flex"]{
  overflow:visible;
}

/* ---- Secondary shop nav: category pills under the header ---- */
.shop-sec{
  border-bottom:1px solid var(--line);
  background:#fff;
}
.shop-sec__in{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding:10px 0 12px;
  overflow:visible;
}
.shop-sec__in a{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:0 14px;
  border-radius:999px;
  border:1.5px solid #0B1120;
  background:#fff;
  color:#0B1120;
  font-weight:700;
  font-size:13.5px;
  letter-spacing:.01em;
  text-decoration:none;
  white-space:nowrap;
}
.shop-sec__in a[aria-current="page"]{background:#0B1120;color:#fff}
.shop-sec__in a:hover{border-color:var(--red);color:var(--red)}
.shop-sec__in a[aria-current="page"]:hover{color:#fff;border-color:#0B1120}

/* ---- Left brand menu ---- */
.shop-brands,
.fl.shop-brands{
  display:block !important;
  position:sticky;
  top:calc(var(--hdr, 84px) + 16px);
  align-self:start;
  max-height:calc(100vh - var(--hdr, 84px) - 32px);
}
.shop-brands__box{
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:6px 16px 14px;
  box-shadow:0 18px 40px -34px rgba(11,15,23,.45);
}
.shop-brands__box > summary{
  list-style:none;
  cursor:pointer;
  font-family:var(--display);
  font-weight:800;
  font-size:14px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--muted);
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.shop-brands__box > summary::-webkit-details-marker{display:none}
.shop-brands__box > summary::after{
  content:"";
  width:8px;height:8px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:rotate(45deg);
  transition:transform .2s;
}
.shop-brands__box[open] > summary::after{transform:rotate(225deg)}
.shop-brands nav{display:flex;flex-direction:column;gap:2px;padding:0 0 6px}
.shop-brands nav a{
  display:flex;
  align-items:center;
  min-height:40px;
  padding:0 10px;
  border-radius:10px;
  color:var(--ink);
  font-weight:650;
  font-size:14.5px;
  text-decoration:none;
}
.shop-brands nav a:hover{background:var(--ice)}
.shop-brands nav a[aria-current="page"]{background:#0B1120;color:#fff}

@media (max-width:800px){
  .shop{grid-template-columns:1fr !important;gap:18px}
  .shop-brands, .fl.shop-brands{position:static;max-height:none;padding-right:0;display:block !important}

  .shop-sec__in{
    flex-wrap:nowrap;
    overflow-x:auto;
    scrollbar-width:thin;
    -webkit-overflow-scrolling:touch;
    padding-bottom:12px;
  }
  .shop-sec__in a{flex:0 0 auto}
}

@media (prefers-reduced-motion: reduce){
  .shop-brands__box > summary::after{transition:none}
}

/* ---- Sizer button + modal (does not change sizer internals) ---- */
.size-finder{margin:14px 0 4px}
/* Must beat .btn::before ink fill so the label stays readable */
.btn.btn--size{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:0 18px;
  color:var(--ink);
  background:transparent;
}
.btn.btn--size::before{
  background:#fff;
  box-shadow:inset 0 0 0 2px var(--ink);
  border-radius:10px;
  transform:none;
}
.btn.btn--size:hover{color:#fff}
.btn.btn--size:hover::before{background:var(--ink);transform:none}
.sizer-dlg{
  width:min(1120px,96vw);
  max-height:min(96vh,960px);
  margin:auto;
  padding:0;
  border:0;
  border-radius:18px;
  box-shadow:0 30px 80px rgba(11,15,23,.35);
}
.sizer-dlg::backdrop{background:rgba(11,15,23,.55)}
.sizer-dlg__bar{
  position:sticky;top:0;z-index:2;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:12px 16px;
  background:#fff;
  border-bottom:1px solid var(--line);
}
.sizer-dlg__t{margin:0;font-size:20px;font-family:var(--display);font-weight:800;text-transform:uppercase}
.sizer-dlg__x{
  width:44px;height:44px;border:0;background:transparent;font-size:28px;line-height:1;cursor:pointer
}
.sizer-dlg__body{padding:8px 8px 24px;overflow:auto;max-height:calc(96vh - 72px)}
.sizer-dlg .ste-sizer{margin:0}
.sizer-dlg .ste-sizer > .wrap{overflow:visible}

/* ---- Unified product spec / about section ---- */
.px{
  position:relative;
  margin:8px 0 28px;
  border:1px solid var(--line);
  border-radius:24px;
  overflow:hidden;
  background:
    radial-gradient(80% 60% at 0% 0%, color-mix(in srgb, var(--blue) 10%, transparent), transparent 60%),
    radial-gradient(70% 50% at 100% 0%, color-mix(in srgb, var(--red) 8%, transparent), transparent 62%),
    #f7f9fc;
}
.px__hd{padding:22px 22px 8px}
.px__lede{margin:4px 0 0;color:var(--muted);font-weight:650;font-size:14px}
.px__tabs{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  padding:8px 16px 0;
}
.px__tab{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:42px;
  padding:0 14px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--ink);
  font-weight:700;
  font-size:14px;
  cursor:pointer;
}
.px__tab .px__i{font-size:10px;letter-spacing:.12em;color:var(--muted);font-weight:800}
.px__tab[aria-selected="true"]{color:#fff;border-color:transparent}
.px__tab--overview[aria-selected="true"]{background:#1d4e89}
.px__tab--who[aria-selected="true"]{background:#c2410c}
.px__tab--options[aria-selected="true"]{background:#0f766e}
.px__tab--setup[aria-selected="true"]{background:#6d28d9}
.px__tab--diagrams[aria-selected="true"]{background:#334155}
.px__tab--details[aria-selected="true"]{background:#0b0f17}
.px__tab--specs[aria-selected="true"]{background:#1d4e89}
.px__tab--fit[aria-selected="true"]{background:#0f766e}
.px__tab--shipping[aria-selected="true"]{background:#1e3a5f}
.px__tab--returns[aria-selected="true"]{background:#9a3412}
.px__tab--warranty[aria-selected="true"]{background:#365314}
.px__panel{padding:18px 22px 24px}
.px__panel--overview{background:linear-gradient(180deg, rgba(29,78,137,.06), transparent 40%), #fff}
.px__panel--who{background:linear-gradient(180deg, rgba(194,65,12,.07), transparent 40%), #fff}
.px__panel--options{background:linear-gradient(180deg, rgba(15,118,110,.07), transparent 40%), #fff}
.px__panel--setup{background:linear-gradient(180deg, rgba(109,40,217,.06), transparent 40%), #fff}
.px__panel--diagrams{background:#fff}
.px__panel--details,
.px__panel--specs{background:#fff}
.px__panel--fit{background:linear-gradient(180deg, rgba(15,118,110,.05), #fff 42%)}
.px__panel--shipping{background:linear-gradient(180deg, rgba(30,58,95,.05), #fff 42%)}
.px__panel--returns{background:linear-gradient(180deg, rgba(154,52,18,.05), #fff 42%)}
.px__panel--warranty{background:linear-gradient(180deg, rgba(54,83,20,.06), #fff 42%)}
.px__h{margin:0 0 12px;font-family:var(--display);font-style:italic;font-weight:900;text-transform:uppercase;font-size:clamp(22px,2vw,30px)}
.px__body{font-size:16.5px;line-height:1.65;color:var(--ink2)}
.px__body h2,.px__body h3{font-family:var(--display);font-style:italic;font-weight:900;text-transform:uppercase;color:var(--ink);margin:1.1em 0 .4em}
.px__body .us-origin-badge{
  display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;
  background:#0b0f17;color:#fff;font-size:12px;font-weight:800;letter-spacing:.06em;margin:0 0 12px;
}
.px__body .subtitle{color:var(--red);font-weight:700;font-size:1.1rem;margin:0 0 1rem}
.px__body .impact-indicator{
  display:flex;align-items:center;gap:1rem;margin:1.2rem 0;padding:1rem 1.1rem;
  background:#f8fafc;border-left:5px solid var(--red);border-radius:12px;
}
.px__body .impact-bars{display:flex;gap:2px;align-items:flex-end;flex:1;max-width:100%}
.px__body .impact-bars span{flex:1;height:16px;min-width:3px;background:#e2e8f0;border-radius:1px}
.px__body .impact-bars span.filled{background:var(--red)}
.px__body .level-badge{display:inline-block;padding:.25rem .7rem;border-radius:999px;font-size:.75rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase}
.px__body .level-low{background:#0f766e;color:#fff}
.px__body .level-medium{background:#f4a261;color:#1a1a1a}
.px__body .level-high{background:var(--red);color:#fff}
.px__body .comparison-table{width:100%;border-collapse:separate;border-spacing:0;margin:1rem 0 1.4rem;font-size:.95rem;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.px__body .comparison-table th{background:#0b0f17;color:#fff;padding:.8rem 1rem;text-align:left}
.px__body .comparison-table td{padding:.8rem 1rem;border-bottom:1px solid var(--line);vertical-align:middle}
.px__body .comparison-table tr.highlight{background:#fff1f2}
.px__body .cta{margin-top:1.2rem;padding:1rem 1.1rem;background:#f8fafc;border-left:4px solid var(--red);border-radius:10px;font-weight:650}
.px__body .spec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:0}
.px__body .spec-grid > div{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.px__body .spec-grid dt{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.px__body .spec-grid dd{margin:.2em 0 0;font-weight:700;color:var(--ink)}
.px__body .spec-grid .unit{margin-left:.25em;color:var(--muted);font-weight:650}
.px__body img,.px__body svg,.px__body figure{max-width:100%;height:auto}
@media (max-width:640px){
  .px__tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
  .px__tab{flex:0 0 auto}
  .px__hd,.px__panel{padding-left:16px;padding-right:16px}
  .px__body .comparison-table{display:block;overflow-x:auto}
}
@media (prefers-reduced-motion: reduce){
  .card__img img{transition:none}
}

/* Collection intro: show the full lede, including on mobile */
.phd .lede{
  display:block;
  -webkit-line-clamp:unset;
  overflow:visible;
}

/* Keep the product spec heading out from under the sticky header */
.px{scroll-margin-top:calc(var(--hdr, 84px) + 16px)}
.px__hd{padding-top:28px}
