/** Shopify CDN: Minification failed

Line 192:11 Expected identifier but found whitespace
Line 192:17 Unexpected ";"

**/
/* Signature Greenhouses - custom component styles.
   Colours and fonts intentionally reference Horizon's own CSS custom
   properties (--color-foreground, --font-heading--family, etc.) rather
   than hardcoded values, so anything changed in Theme settings flows
   through here automatically. Never edit Horizon's stylesheets. */

:root {
  --sg-accent: #2f5d3f;
  --sg-radius: 4px;
  --sg-gap: 1rem;
}

/* Small caps label used across custom blocks. Letter-spaced uppercase at
   a small size is the cheapest way to read "considered" rather than
   "discount". */
.sg-label {
  font-family: var(--font-subheading--family);
  font-size: 0.6875rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-foreground-subdued);
  margin-bottom: 0.5rem;
  display: block;
}

.sg-h {
  font-family: var(--font-heading--family);
  font-size: 1.5rem;
  line-height: 1.2;
  margin: 0 0 0.75rem;
}

/* ---------- Trust row ---------- */
.sg-trust-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border-block: 1px solid rgb(var(--color-foreground-rgb) / 0.12);
  margin: 1.25rem 0;
}
.sg-trust-item {
  text-align: center;
  padding: 0.9rem 0.5rem;
  font-size: 0.8125rem;
  line-height: 1.35;
  color: var(--color-foreground-muted);
}
.sg-trust-item + .sg-trust-item {
  border-inline-start: 1px solid rgb(var(--color-foreground-rgb) / 0.12);
}
.sg-trust-item strong {
  display: block;
  font-size: 0.875rem;
  color: var(--color-foreground);
  margin-bottom: 0.15rem;
}
@media (max-width: 749px) {
  .sg-trust-row { grid-template-columns: repeat(2, 1fr); }
  .sg-trust-item:nth-child(3) { border-inline-start: 0; }
  .sg-trust-item:nth-child(n + 3) {
    border-block-start: 1px solid rgb(var(--color-foreground-rgb) / 0.12);
  }
}

/* ---------- Spec table ---------- */
.sg-spec-table { width: 100%; border-collapse: collapse; }
.sg-spec-table th,
.sg-spec-table td {
  text-align: start;
  padding: 0.7rem 0;
  border-block-end: 1px solid rgb(var(--color-foreground-rgb) / 0.1);
  font-size: 0.9375rem;
  vertical-align: top;
}
.sg-spec-table th {
  width: 45%;
  font-weight: 400;
  color: var(--color-foreground-subdued);
}
.sg-spec-table td { color: var(--color-foreground); }
.sg-spec-table tr:last-child th,
.sg-spec-table tr:last-child td { border-block-end: 0; }

/* ---------- Freight explainer ---------- */
.sg-freight {
  border: 1px solid rgb(var(--color-foreground-rgb) / 0.15);
  border-radius: var(--sg-radius);
}
.sg-freight > summary {
  padding: 0.9rem 1rem;
  cursor: pointer;
  font-weight: 500;
  list-style: none;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
}
.sg-freight > summary::-webkit-details-marker { display: none; }
.sg-freight > summary::after { content: "+"; font-size: 1.1rem; line-height: 1; }
.sg-freight[open] > summary::after { content: "\2013"; }
.sg-freight-body {
  padding: 0 1rem 1rem;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--color-foreground-muted);
}
.sg-freight-body ol { padding-inline-start: 1.1rem; margin: 0 0 0.75rem; }
.sg-freight-body li { margin-bottom: 0.6rem; }
.sg-freight-body strong { color: var(--color-foreground); }

/* ---------- Expert CTA ---------- */
.sg-expert {
  border: 1px solid rgb(var(--color-foreground-rgb) / 0.15);
  border-radius: var(--sg-radius);
  padding: 1rem;
  text-align: center;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: var(--color-foreground-muted);
}
.sg-expert strong { display: block; color: var(--color-foreground); margin-bottom: 0.2rem; }
.sg-expert a { color: var(--color-foreground); text-decoration: underline; text-underline-offset: 2px; }

/* ---------- Size guidance ---------- */
.sg-size-guidance {
  font-size: 0.9375rem;
  color: var(--color-foreground-muted);
  padding: 0.6rem 0;
}
.sg-size-guidance strong { color: var(--color-foreground); }

/* ---------- Series comparison ---------- */
.sg-compare-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.sg-compare { width: 100%; border-collapse: collapse; min-width: 560px; }
.sg-compare th,
.sg-compare td {
  padding: 0.7rem 0.85rem;
  border-block-end: 1px solid rgb(var(--color-foreground-rgb) / 0.1);
  font-size: 0.875rem;
  text-align: start;
  white-space: nowrap;
}
.sg-compare thead th {
  font-family: var(--font-subheading--family);
  font-size: 0.6875rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-foreground-subdued);
  font-weight: 500;
}
.sg-compare tr.is-current { background: rgb(var(--color-foreground-rgb) / 0.04); }
.sg-compare tr.is-current td:first-child { font-weight: 600; }
.sg-compare a { color: var(--color-foreground); text-decoration: underline; text-underline-offset: 2px; }

/* ---------- Homepage: material story & how it works ---------- */
.sg-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 2rem;
}
.sg-grid-item h3 {
  font-family: var(--font-heading--family);
  font-size: 1.125rem;
  margin: 0 0 0.5rem;
}
.sg-grid-item p {
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--color-foreground-muted);
  margin: 0;
}
.sg-step-num {
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  border: 1px solid rgb(var(--color-foreground-rgb) / 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8125rem;
  margin-bottom: 0.75rem;
}

/* ---------- Sticky add to cart ---------- */
  position: fixed;
  inset-inline: 0;
  bottom: 0;
  background: var(--color-background);
  border-block-start: 1px solid rgb(var(--color-foreground-rgb) / 0.15);
  padding: 0.7rem 1rem;
  display: none;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  z-index: 40;
  box-shadow: 0 -2px 16px rgb(0 0 0 / 0.07);
}
  font-size: 0.8125rem;
  line-height: 1.3;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
  background: var(--sg-accent);
  color: #fff;
  border: 0;
  border-radius: var(--sg-radius);
  padding: 0.8rem 1.5rem;
  font-size: 0.9375rem;
  font-weight: 500;
  cursor: pointer;
  white-space: nowrap;
}

/* ---------- Long-form content pages ---------- */
.sg-page { max-width: 46rem; margin: 0 auto; padding: 0 1.25rem; }
.sg-page--wide { max-width: 60rem; }
.sg-page h1 {
  font-family: var(--font-heading--family);
  font-size: clamp(2rem, 5vw, 3rem);
  line-height: 1.1;
  margin: 0 0 0.75rem;
}
.sg-page .sg-lede {
  font-size: 1.125rem;
  line-height: 1.6;
  color: var(--color-foreground-muted);
  margin: 0 0 2.5rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid rgb(var(--color-foreground-rgb) / 0.15);
}
.sg-page h2 {
  font-family: var(--font-heading--family);
  font-size: 1.5rem;
  line-height: 1.25;
  margin: 3rem 0 0.75rem;
}
.sg-page h3 {
  font-family: var(--font-heading--family);
  font-size: 1.125rem;
  margin: 2rem 0 0.5rem;
}
.sg-page p,
.sg-page li { font-size: 1rem; line-height: 1.7; color: var(--color-foreground-muted); }
.sg-page p { margin: 0 0 1rem; }
.sg-page strong { color: var(--color-foreground); }
.sg-page ul, .sg-page ol { margin: 0 0 1.25rem; padding-inline-start: 1.25rem; }
.sg-page li { margin-bottom: 0.5rem; }
.sg-page a { color: var(--color-foreground); text-decoration: underline; text-underline-offset: 2px; }

.sg-toc {
  background: rgb(var(--color-foreground-rgb) / 0.04);
  border-radius: var(--sg-radius);
  padding: 1.25rem 1.5rem;
  margin: 0 0 2.5rem;
}
.sg-toc ol { margin: 0; padding-inline-start: 1.1rem; }
.sg-toc li { margin-bottom: 0.35rem; }

.sg-key {
  border-inline-start: 3px solid var(--sg-accent);
  background: rgb(var(--color-foreground-rgb) / 0.03);
  padding: 1rem 1.25rem;
  margin: 1.75rem 0;
  border-radius: 0 var(--sg-radius) var(--sg-radius) 0;
}
.sg-key p:last-child { margin-bottom: 0; }
.sg-key .sg-key-t {
  font-family: var(--font-subheading--family);
  font-size: 0.6875rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--sg-accent);
  font-weight: 700;
  display: block;
  margin-bottom: 0.4rem;
}

.sg-tbl { width: 100%; border-collapse: collapse; margin: 1.25rem 0 1.75rem; }
.sg-tbl th, .sg-tbl td {
  text-align: start;
  padding: 0.65rem 0.75rem;
  border-bottom: 1px solid rgb(var(--color-foreground-rgb) / 0.12);
  font-size: 0.9375rem;
}
.sg-tbl thead th {
  font-family: var(--font-subheading--family);
  font-size: 0.6875rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-foreground-subdued);
  font-weight: 600;
}
.sg-tbl-wrap { overflow-x: auto; }

.sg-steps { counter-reset: sgs; list-style: none; padding: 0; margin: 1.25rem 0; }
.sg-steps li {
  counter-increment: sgs;
  position: relative;
  padding-inline-start: 2.75rem;
  margin-bottom: 1.1rem;
}
.sg-steps li::before {
  content: counter(sgs);
  position: absolute;
  inset-inline-start: 0;
  top: 0.1rem;
  width: 1.75rem; height: 1.75rem;
  border-radius: 50%;
  background: var(--sg-accent);
  color: #fff;
  font-size: 0.8125rem;
  font-weight: 600;
  display: flex; align-items: center; justify-content: center;
}
.sg-note {
  font-size: 0.875rem;
  color: var(--color-foreground-subdued);
  border-top: 1px solid rgb(var(--color-foreground-rgb) / 0.12);
  padding-top: 1rem;
  margin-top: 2.5rem;
}

/* ---------- Homepage hero ---------- */
.sg-hero { position: relative; overflow: hidden; }
.sg-hero__bg {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover; z-index: 0;
}
.sg-hero--image .sg-hero__inner { position: relative; z-index: 2; }
.sg-hero--image::after {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(90deg, rgb(0 0 0 / .55), rgb(0 0 0 / .15));
}
.sg-hero--image .sg-hero__eyebrow,
.sg-hero--image .sg-hero__h,
.sg-hero--image .sg-hero__p,
.sg-hero--image .sg-hero__note { color: #fff; }

.sg-hero__inner {
  max-width: 52rem;
  margin: 0 auto;
  padding: clamp(3.5rem, 9vw, 7rem) 1.5rem;
  text-align: center;
}
.sg-hero__eyebrow {
  display: block;
  font-family: var(--font-subheading--family);
  font-size: 0.6875rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--sg-accent);
  font-weight: 700;
  margin-bottom: 1.25rem;
}
.sg-hero__h {
  font-family: var(--font-heading--family);
  font-size: clamp(2.1rem, 5.4vw, 3.75rem);
  line-height: 1.08;
  letter-spacing: -0.01em;
  margin: 0 0 1.25rem;
  text-wrap: balance;
}
.sg-hero__p {
  font-size: clamp(1rem, 1.6vw, 1.1875rem);
  line-height: 1.6;
  color: var(--color-foreground-muted);
  max-width: 38rem;
  margin: 0 auto 2rem;
}
.sg-hero__cta {
  display: flex; flex-wrap: wrap; gap: 0.75rem; justify-content: center;
}
.sg-btn {
  display: inline-block;
  padding: 0.85rem 1.75rem;
  border-radius: var(--sg-radius);
  font-size: 0.9375rem;
  font-weight: 600;
  text-decoration: none;
  border: 1.5px solid transparent;
  transition: background .15s, color .15s, border-color .15s;
}
.sg-btn--primary { background: var(--sg-accent); color: #fff; border-color: var(--sg-accent); }
.sg-btn--primary:hover { filter: brightness(0.92); }
.sg-btn--ghost {
  background: transparent;
  color: var(--color-foreground);
  border-color: rgb(var(--color-foreground-rgb) / 0.3);
}
.sg-hero--image .sg-btn--ghost { color: #fff; border-color: rgb(255 255 255 / .55); }
.sg-btn--ghost:hover { border-color: var(--sg-accent); }
.sg-hero__note {
  margin: 1.5rem 0 0;
  font-size: 0.8125rem;
  color: var(--color-foreground-subdued);
}

/* ---------- CTA band ---------- */
.sg-band {
  background: rgb(var(--color-foreground-rgb) / 0.04);
  padding: clamp(2.5rem, 6vw, 4rem) 1.5rem;
  text-align: center;
}
.sg-band__inner { max-width: 42rem; margin: 0 auto; }
.sg-band h2 {
  font-family: var(--font-heading--family);
  font-size: clamp(1.5rem, 3vw, 2rem);
  line-height: 1.2;
  margin: 0 0 0.75rem;
}
.sg-band p {
  font-size: 1rem; line-height: 1.65;
  color: var(--color-foreground-muted);
  margin: 0 0 1.5rem;
}

/* ---------- Layout containers ----------
   These deliberately consume Horizon's own --page-width and
   --page-margin variables rather than hardcoding values, so custom
   sections track the Page width theme setting (narrow / normal / wide)
   and the responsive gutter (16px mobile, 40px desktop) automatically. */
.sg-container {
  width: 100%;
  max-width: var(--page-width);
  margin-inline: auto;
  padding-inline: var(--page-margin);
}

/* Prose keeps a narrower measure than the page grid - long lines are
   hard to read - but still never touches the viewport edge. */
.sg-page {
  max-width: 46rem;
  margin-inline: auto;
  padding-inline: var(--page-margin);
}
.sg-page--wide { max-width: 60rem; }

.sg-hero__inner { padding-inline: var(--page-margin); }
.sg-band { padding-inline: var(--page-margin); }
.sg-band__inner { max-width: 42rem; margin-inline: auto; }

/* ---------- Header logo ----------
   Interim swap: Horizon's logo setting expects an image uploaded to
   Shopify Files, which cannot be pushed from the CLI. This replaces the
   text wordmark with the brand lockup shipped as a theme asset.

   The url() is intentionally relative - it resolves against this
   stylesheet's own CDN directory, which is where theme assets live.

   PERMANENT FIX: upload sg-logo-horizontal.png in Theme editor ->
   Header -> Logo. That gives responsive srcset and proper alt text,
   which this override cannot. Delete this block once that is done. */
.header-logo {
  display: inline-block !important;
  width: 208px;
  height: 40px;
  background-image: url("sg-logo-horizontal.png");
  background-repeat: no-repeat;
  background-position: left center;
  background-size: contain;
  font-size: 0 !important;
  line-height: 0 !important;
  color: transparent !important;
  overflow: hidden;
}
.header-logo * { visibility: hidden; }
@media (max-width: 749px) {
  .header-logo { width: 168px; height: 32px; }
}

/* ---------- Hero background video ----------
   The poster image sits underneath and always paints first; the video
   layers over it only once it can play. Suppressed on small screens
   (data, battery, and the crop is wrong at portrait ratios) and for
   anyone who has asked their system to reduce motion. */
.sg-hero__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}
@media (max-width: 749px) {
  .sg-hero__video { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .sg-hero__video { display: none; }
}
/* Text sits above both poster and video. */
.sg-hero--image .sg-hero__inner { z-index: 2; }
.sg-hero--image::after { z-index: 1; }
/* Scrim over media so the type keeps accessible contrast. */
.sg-hero--image::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(18,26,19,.55), rgba(18,26,19,.72));
}
.sg-hero--image .sg-hero__eyebrow { color: #A8C4AF; }
.sg-hero--image .sg-hero__h,
.sg-hero--image .sg-hero__p,
.sg-hero--image .sg-hero__note { color: #fff; }
.sg-hero--image .sg-hero__p { color: #D7DED8; }
.sg-hero--image .sg-hero__note { color: #B9C6BC; }
