/** Shopify CDN: Minification failed

Line 1124:41 Unexpected "{"
Line 1124:50 Expected ":"
Line 1124:57 Unexpected "{"

**/
/* SHOPIFY_STYLESHEETS_VERSION: 1.0 */


/* CSS from section stylesheet tags */
/* START_SECTION:article-template (INDEX:4) */
/* ---------- 16:9 banner (mockup .post-hero) ---------- */
  .vw-post-hero {
    background-color: var(--vw-color-white, #fff);
  }

  .vw-post-hero-inner,
  .vw-post-article-inner {
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--vw-gutter, 60px);
    padding-right: var(--vw-gutter, 60px);
    width: 100%;
  }

  .vw-post-hero-figure {
    margin: 0;
  }

  .vw-post-hero-figure image-element {
    display: block;
  }

  .vw-post-hero-img {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    display: block;
    background-color: var(--vw-color-light-gray, #f4f4f4);
  }
  .vw-post-hero-figure image-element img {
    object-fit: contain;
    background: #ffffff;
  }
 

  /* ---------- Article body (mockup .post-article) ---------- */
  .vw-post-article {
    background-color: var(--vw-color-white, #fff);
  }

  .vw-post-article .article {
    margin: 0;
  }

  .vw-post-article-title {
    font-family: var(--vw-font-heading);
    font-weight: var(--vw-fw-bold, 700);
    line-height: var(--vw-lh-tight, 1.1);
    letter-spacing: -0.03em;
    color: var(--vw-color-charcoal, #1a2535);
    margin: 0 0 var(--vw-sp-32, 32px);
  }

  /* ---------- Byline (mockup .post-byline) ---------- */
  .vw-post-byline {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--vw-sp-12, 12px);
    font-family: var(--vw-font-body);
    font-weight: var(--vw-fw-semibold, 600);
    text-transform: var(--vw-tt-upper, uppercase);
    letter-spacing: var(--vw-ls-wide, 0.05em);
    color: var(--vw-color-muted, #6e7480);
    margin: 0 0 var(--vw-sp-32, 32px);
  }

  .vw-post-byline a {
    color: inherit;
    text-decoration: none;
    transition: color var(--vw-tr-fast, 0.18s ease);
  }

  .vw-post-byline a:hover {
    color: var(--vw-color-charcoal, #1a2535);
  }

  .vw-post-byline strong {
    color: var(--vw-color-charcoal, #1a2535);
    font-weight: var(--vw-fw-bold, 700);
  }

  .vw-post-byline-dot {
    width: 4px;
    height: 4px;
    background-color: var(--vw-color-coyote, #8b7355);
    border-radius: 50%;
  }

  /* ---------- Body content (mockup .post-body) ---------- */
  .vw-post-body > * + * {
    margin-top: var(--vw-sp-24, 24px);
  }

  .vw-post-body h2 {
    font-family: var(--vw-font-heading);
    font-weight: var(--vw-fw-bold, 700);
    line-height: var(--vw-lh-snug, 1.25);
    color: var(--vw-color-charcoal, #1a2535);
    margin-top: 0;
  }

  .vw-post-body h3,
  .vw-post-body h4 {
    font-family: var(--vw-font-heading);
    font-size: 24px;
    font-weight: var(--vw-fw-bold, 700);
    line-height: var(--vw-lh-snug, 1.25);
    color: var(--vw-color-charcoal, #1a2535);
    margin-top: var(--vw-sp-32, 32px);
  }

  .vw-post-body,
  .vw-post-body p,
  .vw-post-body li {
    line-height: var(--vw-lh-relaxed, 1.65);
    color: #353b45;
  }

  .vw-post-body a {
    color: var(--vw-color-olive, #4a5e3a);
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  .vw-post-body a:hover {
    color: var(--vw-color-olive-dark, #3a4b2d);
  }

  .vw-post-body ul,
  .vw-post-body ol {
    padding-left: var(--vw-sp-24, 24px);
    display: flex;
    flex-direction: column;
    gap: var(--vw-sp-10, 10px);
  }

  .vw-post-body blockquote {
    margin: var(--vw-sp-40, 40px) 0;
    padding: var(--vw-sp-8, 8px) 0 var(--vw-sp-8, 8px) var(--vw-sp-32, 32px);
    border-left: 3px solid var(--vw-color-olive, #4a5e3a);
    font-family: var(--vw-font-heading);
    font-size: 24px;
    font-weight: var(--vw-fw-semibold, 600);
    line-height: var(--vw-lh-snug, 1.25);
    color: var(--vw-color-charcoal, #1a2535);
  }

  .vw-post-body figure {
    margin: var(--vw-sp-40, 40px) 0;
  }

  .vw-post-body img,
  .vw-post-body figure img {
    width: 100%;
    height: auto;
    display: block;
    background-color: var(--vw-color-light-gray, #f4f4f4);
  }

  @media (max-width: 768px) {
    .vw-post-hero-inner,
    .vw-post-article-inner {
      padding-left: var(--vw-container-pl, 16px);
      padding-right: var(--vw-container-pr, 16px);
    }
    .vw-post-hero-img {
      aspect-ratio: 16 / 16;
    }
  }

  .blog-videos-section {
    display: flex;
    flex-direction: column;
    gap: 32px;
    margin-top: 0;
    padding-bottom: 40px;
    padding-top: 60px;
  }
/* END_SECTION:article-template */

/* START_SECTION:blog-posts (INDEX:7) */
.vw-blog-posts {
    background-color: var(--vw-color-light-gray, #f4f4f4);
  }

  .vw-blog-posts .section-head-link .valor-icon {
    width: 1em;
    height: 1em;
  }

  /* ---------- Post grid ---------- */
  .vw-blog-grid {
    display: grid;
    grid-template-columns: repeat(var(--vw-blog-cols, 3), minmax(0, 1fr));
    gap: var(--vw-sp-40, 40px) var(--vw-sp-32, 32px);
  }

  .vw-blog-card {
    display: flex;
    flex-direction: column;
    background-color: var(--vw-color-white, #fff);
    border: 1px solid var(--vw-color-border, #e2e2e2);
    transition: transform var(--vw-tr-base, 0.28s ease), box-shadow var(--vw-tr-base, 0.28s ease), border-color var(--vw-tr-base, 0.28s ease);
  }

  .vw-blog-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--vw-shadow-lg, 0 18px 42px rgba(17, 17, 17, 0.14));
    border-color: transparent;
  }

  .vw-blog-card-media {
    position: relative;
    display: block;
    overflow: hidden;
    aspect-ratio: var(--vw-blog-card-aspect, 16 / 10);
    background-color: var(--vw-color-light-gray, #f4f4f4);
  }

  .vw-blog-card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform var(--vw-tr-slow, 0.45s ease);
  }

  .vw-blog-card:hover .vw-blog-card-img {
    transform: scale(1.05);
  }

  .vw-blog-card-tag {
    position: absolute;
    top: var(--vw-sp-12, 12px);
    left: var(--vw-sp-12, 12px);
    display: inline-flex;
    align-items: center;
    font-family: var(--vw-font-heading);
    font-size: var(--vw-fs-11, 11px);
    font-weight: var(--vw-fw-bold, 700);
    text-transform: var(--vw-tt-upper, uppercase);
    letter-spacing: var(--vw-ls-wide, 0.05em);
    color: var(--vw-color-white, #fff);
    background-color: var(--vw-color-olive, #4a5e3a);
    padding: var(--vw-sp-6, 6px) var(--vw-sp-10, 10px);
  }

  .vw-blog-card-body {
    display: flex;
    flex-direction: column;
    gap: var(--vw-sp-10, 10px);
    padding: var(--vw-sp-24, 24px);
    flex: 1;
  }

  .vw-blog-card-title {
    font-family: var(--vw-font-heading);
    font-weight: var(--vw-fw-bold, 700);
    line-height: var(--vw-lh-snug, 1.25);
    color: var(--vw-color-charcoal, #1a2535);
    margin: 0;
  }

  .vw-blog-card-title a {
    color: inherit;
    text-decoration: none;
    transition: color var(--vw-tr-fast, 0.18s ease);
  }

  .vw-blog-card-title a:hover {
    color: var(--vw-color-olive, #4a5e3a);
  }

  .vw-blog-card-author {
    font-size: var(--vw-fs-12, 12px);
    color: var(--vw-color-muted, #6e7480);
  }

  .vw-blog-card-short {
    font-size: var(--vw-fs-15, 15px);
    line-height: var(--vw-lh-relaxed, 1.65);
    color: var(--vw-color-muted, #6e7480);
  }

  .vw-blog-card-excerpt {
    font-size: var(--vw-fs-15, 15px);
    line-height: var(--vw-lh-relaxed, 1.65);
    color: var(--vw-color-muted, #6e7480);
  }
  .vw-blog-card-excerpt > *:first-child { margin-top: 0; }
  .vw-blog-card-excerpt > *:last-child { margin-bottom: 0; }

  .vw-blog-card-meta {
    margin-top: auto;
    padding-top: var(--vw-sp-8, 8px);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--vw-sp-12, 12px);
    font-family: var(--vw-font-body);
    font-size: var(--vw-fs-12, 12px);
    font-weight: var(--vw-fw-semibold, 600);
    text-transform: var(--vw-tt-upper, uppercase);
    letter-spacing: var(--vw-ls-wide, 0.05em);
    color: var(--vw-color-muted, #6e7480);
  }

  .vw-blog-card-meta a {
    color: inherit;
    text-decoration: none;
    transition: color var(--vw-tr-fast, 0.18s ease);
  }
  .vw-blog-card-meta a:hover { color: var(--vw-color-olive, #4a5e3a); }

  /* ---------- Responsive ---------- */
  @media (max-width: 1024px) {
    .vw-blog-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (max-width: 768px) {
    .vw-blog-grid {
      grid-template-columns: 1fr;
    }
  }
/* END_SECTION:blog-posts */

/* START_SECTION:blog-template (INDEX:8) */
.vw-blog .vw-container {
    gap: var(--vw-sp-40, 40px);
  }

  /* ---------- Blog title (H1) ---------- */
  .vw-blog-head-title {
    display: inline-flex;
    align-items: center;
    gap: var(--vw-sp-12, 12px);
    font-family: var(--vw-font-heading);
    font-weight: var(--vw-fw-bold, 700);
    line-height: var(--vw-lh-tight, 1.1);
    color: var(--vw-color-charcoal, #1a2535);
    margin: 0;
  }

  .vw-blog-rss {
    display: inline-flex;
    align-items: center;
    color: var(--vw-color-muted, #6e7480);
    transition: color var(--vw-tr-fast, 0.18s ease);
  }
  .vw-blog-rss:hover {
    color: var(--vw-color-olive, #4a5e3a);
  }

  /* ---------- All posts ---------- */
  .vw-blog-posts {
    background-color: var(--vw-color-light-gray, #f4f4f4);
  }

  /* ---------- Category filter chips ---------- */
  .vw-blog-filter {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--vw-sp-10, 10px);
  }

  .vw-blog-filter-chip {
    font-family: var(--vw-font-heading);
    font-size: var(--vw-fs-12, 12px);
    font-weight: var(--vw-fw-bold, 700);
    text-transform: var(--vw-tt-upper, uppercase);
    letter-spacing: var(--vw-ls-wide, 0.05em);
    color: var(--vw-color-charcoal, #1a2535);
    background-color: var(--vw-color-white, #fff);
    border: 1px solid var(--vw-color-border, #e2e2e2);
    padding: var(--vw-sp-10, 10px) var(--vw-sp-16, 16px);
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
    line-height: 1.2;
    transition: color var(--vw-tr-fast, 0.18s ease), background-color var(--vw-tr-fast, 0.18s ease),
      border-color var(--vw-tr-fast, 0.18s ease);
  }

  .vw-blog-filter-chip:hover {
    border-color: var(--vw-color-olive, #4a5e3a);
    color: var(--vw-color-olive, #4a5e3a);
  }

  .vw-blog-filter-chip.is-active {
    background-color: var(--vw-color-olive, #4a5e3a);
    border-color: var(--vw-color-olive, #4a5e3a);
    color: var(--vw-color-white, #fff);
  }

  /* ---------- Post grid ---------- */
  .vw-blog-grid {
    display: grid;
    grid-template-columns: repeat(var(--vw-blog-cols, 3), minmax(0, 1fr));
    gap: var(--vw-sp-40, 40px) var(--vw-sp-32, 32px);
  }

  .vw-blog-card {
    display: flex;
    flex-direction: column;
    background-color: var(--vw-color-white, #fff);
    border: 1px solid var(--vw-color-border, #e2e2e2);
    transition: transform var(--vw-tr-base, 0.28s ease), box-shadow var(--vw-tr-base, 0.28s ease),
      border-color var(--vw-tr-base, 0.28s ease);
  }

  .vw-blog-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--vw-shadow-lg, 0 18px 42px rgba(17, 17, 17, 0.14));
    border-color: transparent;
  }

  .vw-blog-card-media {
    position: relative;
    display: block;
    overflow: hidden;
    aspect-ratio: var(--vw-blog-card-aspect, 16 / 10);
    background-color: var(--vw-color-light-gray, #f4f4f4);
  }

  .vw-blog-card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform var(--vw-tr-slow, 0.45s ease);
  }

  .vw-blog-card:hover .vw-blog-card-img {
    transform: scale(1.05);
  }

  .vw-blog-card-tag {
    position: absolute;
    top: var(--vw-sp-12, 12px);
    left: var(--vw-sp-12, 12px);
    display: inline-flex;
    align-items: center;
    font-family: var(--vw-font-heading);
    font-size: var(--vw-fs-11, 11px);
    font-weight: var(--vw-fw-bold, 700);
    text-transform: var(--vw-tt-upper, uppercase);
    letter-spacing: var(--vw-ls-wide, 0.05em);
    color: var(--vw-color-white, #fff);
    background-color: var(--vw-color-olive, #4a5e3a);
    padding: var(--vw-sp-6, 6px) var(--vw-sp-10, 10px);
    line-height: 1.5;
  }

  .vw-blog-card-body {
    display: flex;
    flex-direction: column;
    gap: var(--vw-sp-10, 10px);
    padding: var(--vw-sp-24, 24px);
    flex: 1;
  }

  .vw-blog-card-title {
    font-family: var(--vw-font-heading);
    font-weight: var(--vw-fw-bold, 700);
    line-height: var(--vw-lh-snug, 1.25);
    color: var(--vw-color-charcoal, #1a2535);
    margin: 0;
  }

  .vw-blog-card-title a {
    color: inherit;
    text-decoration: none;
    transition: color var(--vw-tr-fast, 0.18s ease);
  }

  .vw-blog-card-title a:hover {
    color: var(--vw-color-olive, #4a5e3a);
  }

  .vw-blog-card-author {
    font-size: var(--vw-fs-12, 12px);
    color: var(--vw-color-muted, #6e7480);
  }

  .vw-blog-card-short {
    font-size: var(--vw-fs-15, 15px);
    line-height: var(--vw-lh-relaxed, 1.65);
    color: var(--vw-color-muted, #6e7480);
  }

  .vw-blog-card-excerpt {
    font-size: var(--vw-fs-15, 15px);
    line-height: var(--vw-lh-relaxed, 1.65);
    color: var(--vw-color-muted, #6e7480);
  }
  .vw-blog-card-excerpt > *:first-child {
    margin-top: 0;
  }
  .vw-blog-card-excerpt > *:last-child {
    margin-bottom: 0;
  }

  .vw-blog-card-meta {
    margin-top: auto;
    padding-top: var(--vw-sp-8, 8px);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--vw-sp-12, 12px);
    font-family: var(--vw-font-body);
    font-size: var(--vw-fs-12, 12px);
    font-weight: var(--vw-fw-semibold, 600);
    text-transform: var(--vw-tt-upper, uppercase);
    letter-spacing: var(--vw-ls-wide, 0.05em);
    color: var(--vw-color-muted, #6e7480);
  }

  .vw-blog-card-meta a {
    color: inherit;
    text-decoration: none;
    transition: color var(--vw-tr-fast, 0.18s ease);
  }
  .vw-blog-card-meta a:hover {
    color: var(--vw-color-olive, #4a5e3a);
  }

  /* ---------- Pagination (restyle of the shared snippet, scoped) ---------- */
  .vw-blog .pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: var(--vw-sp-8, 8px);
    margin: 0;
  }

  .vw-blog .pagination .page a,
  .vw-blog .pagination .page.current,
  .vw-blog .pagination .prev a,
  .vw-blog .pagination .next a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 var(--vw-sp-12, 12px);
    font-family: var(--vw-font-heading);
    font-size: var(--vw-fs-14, 14px);
    font-weight: var(--vw-fw-semibold, 600);
    color: var(--vw-color-charcoal, #1a2535);
    background-color: var(--vw-color-white, #fff);
    border: 1px solid var(--vw-color-border, #e2e2e2);
    text-decoration: none;
    transition: color var(--vw-tr-fast, 0.18s ease), background-color var(--vw-tr-fast, 0.18s ease),
      border-color var(--vw-tr-fast, 0.18s ease);
  }

  .vw-blog .pagination .page a:hover,
  .vw-blog .pagination .prev a:hover,
  .vw-blog .pagination .next a:hover {
    border-color: var(--vw-color-olive, #4a5e3a);
    color: var(--vw-color-olive, #4a5e3a);
  }

  .vw-blog .pagination .page.current {
    background-color: var(--vw-color-olive, #4a5e3a);
    border-color: var(--vw-color-olive, #4a5e3a);
    color: var(--vw-color-white, #fff);
  }

  .vw-blog .pagination .icon {
    width: 12px;
    height: 12px;
  }
  .vw-blog-posts .pagination {
    padding: 0;
  }
  /* ---------- Responsive ---------- */
  @media (max-width: 1024px) {
    .vw-blog-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (max-width: 768px) {
    .vw-blog-grid {
      grid-template-columns: 1fr;
    }
  }
/* END_SECTION:blog-template */

/* START_SECTION:gallery-head (INDEX:20) */
.gallery-head {
    background-color: var(--vw-color-light-gray, #f4f4f4);
    border-bottom: 1px solid var(--vw-color-border, #e2e2e2);
  }
  .gallery-head__desc p.sg-sub {
    margin: 0;
  }
  .gallery-head__inner {
    display: flex;
    flex-direction: column;
    gap: 16px;
    max-width: 900px;
    margin: 0 auto;
  }
  .gallery-head__sub {
    color: var(--vw-color-olive, #4a5e3a);
    font-weight: var(--vw-fw-bold, 700);
    text-transform: uppercase;
    letter-spacing: 0.18em;
  }
  .gallery-head__title {
    font-family: var(--vw-font-heading, var(--typeHeaderPrimary));
    font-weight: var(--vw-fw-bold, 700);
    line-height: var(--vw-lh-tight, 1.1);
    color: var(--vw-color-charcoal, #1a2535);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin: 0;
  }
  .gallery-head__desc {
    line-height: var(--vw-lh-relaxed, 1.65);
    color: var(--vw-color-muted, #6e7480);
    max-width: 720px;
    margin: 0;
  }
  .gallery-head__desc p:empty,
  .gallery-head__desc p {
    margin: 0;
  }
  .gallery-filters {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: var(--vw-sp-8, 8px);
    justify-content: center;
    padding-top: var(--vw-sp-16, 16px);
  }
  body[template='policies'] .gallery-filters {
    justify-content: flex-start;
  }
  .gallery-head[style*='text-align:left'] .gallery-filters,
  .gallery-head[data-align='left'] .gallery-filters {
    justify-content: flex-start;
  }
  .gallery-head[style*='text-align:right'] .gallery-filters,
  .gallery-head[data-align='right'] .gallery-filters {
    justify-content: flex-end;
  }
  .gallery-filter {
    padding: var(--vw-sp-8, 8px) var(--vw-sp-16, 16px);
    background-color: var(--vw-color-white, #ffffff);
    color: var(--vw-color-charcoal, #1a2535);
    border: 1px solid var(--vw-color-border, #e2e2e2);
    border-radius: var(--vw-br-xs, 0);
    font-size: var(--vw-fs-13, 13px);
    font-weight: var(--vw-fw-semibold, 600);
    text-transform: uppercase;
    letter-spacing: var(--vw-ls-wide, 0.05em);
    cursor: pointer;
    transition: background-color var(--vw-tr-fast, 0.18s ease), color var(--vw-tr-fast, 0.18s ease),
      border-color var(--vw-tr-fast, 0.18s ease);
  }
  .gallery-filter:hover,
  .gallery-filter.is-active {
    background-color: var(--vw-color-charcoal, #1a2535);
    color: var(--vw-color-white, #ffffff);
    border-color: var(--vw-color-charcoal, #1a2535);
  }
/* END_SECTION:gallery-head */

/* START_SECTION:gallery-section (INDEX:21) */
.gallery-section {
    background-color: var(--vw-color-white, #FFFFFF);
  }
  .gallery-item {
    position: relative;
    overflow: hidden;
    background-color: var(--vw-color-light-gray, #F4F4F4);
    cursor: pointer;
    display: block;
    text-decoration: none;
    /* Until JS assigns a row span, span 1 row so the layout doesn't jump. */
    grid-row-end: span 1;
  }
  .gallery-item img,
  .gallery-item svg {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.45s ease;
  }
  .gallery-item::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.55) 100%);
    opacity: 0;
    transition: opacity 0.18s ease;
  }
  .gallery-item:hover img { transform: scale(1.05); }
  .gallery-item:hover::after { opacity: 1; }
  .gallery-item-caption {
    position: absolute;
    bottom: 16px;
    left: 16px;
    right: 16px;
    z-index: 2;
    color: var(--vw-color-white, #FFFFFF);
    font-size: var(--vw-fs-13, 13px);
    font-weight: var(--vw-fw-semibold, 600);
    text-transform: uppercase;
    letter-spacing: var(--vw-ls-wide, 0.05em);
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.18s ease, transform 0.18s ease;
  }
  .gallery-item:hover .gallery-item-caption {
    opacity: 1;
    transform: translateY(0);
  }

  /* Lightbox ------------------------------------------------------ */
  .gallery-lightbox {
    position: fixed;
    inset: 0;
    z-index: 9999;
    background-color: rgba(8, 10, 14, 0.94);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px 88px;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.28s ease, visibility 0s linear 0.28s;
  }
  .gallery-lightbox[hidden] { display: none; }
  .gallery-lightbox.is-open {
    opacity: 1;
    visibility: visible;
    transition: opacity 0.28s ease, visibility 0s linear 0s;
  }
  .gallery-lightbox-stage {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 28px;
    width: 100%;
    max-width: 1100px;
    max-height: 100%;
  }
  .gallery-lightbox-img {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: calc(100vh - 220px);
    object-fit: contain;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.55);
    transform: scale(0.97);
    opacity: 0;
    transition: transform 0.28s ease, opacity 0.2s ease;
  }
  .gallery-lightbox.is-open .gallery-lightbox-img {
    transform: scale(1);
    opacity: 1;
  }
  .gallery-lightbox-caption {
    color: var(--vw-color-white, #FFFFFF);
    font-family: var(--vw-font-body, var(--typeBasePrimary));
    font-size: 14px;
    font-weight: var(--vw-fw-semibold, 600);
    text-transform: uppercase;
    letter-spacing: 0.22em;
    text-align: center;
    max-width: 80vw;
  }
  .gallery-lightbox-caption:empty { display: none; }

  /* Buttons (close / prev / next) */
  .gallery-lightbox-close,
  .gallery-lightbox-prev,
  .gallery-lightbox-next {
    position: absolute;
    width: 48px;
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(255, 255, 255, 0.08);
    color: var(--vw-color-white, #FFFFFF);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 50%;
    cursor: pointer;
    padding: 0;
     z-index: 9;
    transition: background-color 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
  }
  .gallery-lightbox-close .valor-icon,
  .gallery-lightbox-prev .valor-icon,
  .gallery-lightbox-next .valor-icon {
    width: 18px;
    height: 18px;
  }
  .gallery-lightbox-close:hover,
  .gallery-lightbox-prev:hover,
  .gallery-lightbox-next:hover {
    background-color: rgba(255, 255, 255, 0.18);
    border-color: rgba(255, 255, 255, 0.35);
  }
  .gallery-lightbox-close { top: 24px; right: 24px; }
  .gallery-lightbox-prev  { left: 24px;  top: 50%; transform: translateY(-50%); }
  .gallery-lightbox-next  { right: 24px; top: 50%; transform: translateY(-50%); }
  .gallery-lightbox-prev:hover,
  .gallery-lightbox-next:hover { transform: translateY(-50%) scale(1.04); }

  /* Prev/next arrows — caret-down rotated for left/right glyph */
  .gallery-lightbox-prev .gl-arrow { transform: rotate(90deg); }
  .gallery-lightbox-next .gl-arrow { transform: rotate(-90deg); }

  body.lightbox-open { overflow: hidden; }

  /* Responsive --------------------------------------------------- */
  @media (max-width: 768px) {
    .gallery-lightbox { padding: 64px 16px 80px; }
    .gallery-lightbox-stage { gap: 18px; }
    .gallery-lightbox-img { max-height: calc(100vh - 200px); }
    .gallery-lightbox-caption { font-size: 12px; letter-spacing: 0.18em; }
    .gallery-lightbox-close,
    .gallery-lightbox-prev,
    .gallery-lightbox-next { width: 40px; height: 40px; }
    .gallery-lightbox-close { top: 14px; right: 14px; }
    .gallery-lightbox-prev  { left: 10px; }
    .gallery-lightbox-next  { right: 10px; }
  }
/* END_SECTION:gallery-section */

/* START_SECTION:main-product (INDEX:36) */
/* ============================================================
     Valor Wear — Product Detail restyle
     Targets Impulse's product-template output (.product-single__*,
     .product-block, .product__price, etc.) and reshapes it to match
     the reference product-detail design. No markup changes — purely
     visual overrides scoped under .template-product so other pages
     are unaffected.
     ============================================================ */

  /* ---------- Title ---------- */
  body.template-product .product-single__title {
    font-family: var(--vw-font-heading, var(--typeHeaderPrimary));
    font-size: clamp(22px, 2.6vw, 30px);
    font-weight: var(--vw-fw-bold, 700);
    color: var(--vw-color-charcoal, #1A2535);
    text-transform: uppercase;
    letter-spacing: -0.01em;
    line-height: 1.2;
    margin: 0 0 8px;
  }
  body.template-product .product-single__vendor {
    font-size: var(--vw-fs-12, 12px);
    color: var(--vw-color-coyote, #8B7355);
    text-transform: uppercase;
    letter-spacing: 0.18em;
    font-weight: var(--vw-fw-bold, 700);
    margin-bottom: 6px;
  }

  /* ---------- Price ---------- */
  body.template-product .product-block--price { padding: 0; }
  body.template-product .product__price {
    font-family: var(--vw-font-heading, var(--typeHeaderPrimary));
    font-size: clamp(24px, 2.4vw, 28px);
    font-weight: var(--vw-fw-bold, 700);
    color: var(--vw-color-charcoal, #1A2535);
  }
  body.template-product .product__price--compare {
    color: var(--vw-color-muted, #6E7480);
    text-decoration: line-through;
    font-size: var(--vw-fs-15, 15px);
    margin-right: 8px;
  }

  /* ---------- Description / tabs ---------- */
  body.template-product .product-block--tab {
    background: var(--vw-color-light-gray, #F4F4F4);
    border-left: 3px solid var(--vw-color-olive, #4A5E3A);
    padding: 14px 18px;
    border-radius: 2px;
    margin-bottom: 8px;
  }
  body.template-product .product-block--tab .collapsible-trigger {
    padding: 0;
    background: none;
    color: var(--vw-color-charcoal, #1A2535);
    font-family: var(--vw-font-body, var(--typeBasePrimary));
    font-size: var(--vw-fs-12, 12px);
    font-weight: var(--vw-fw-bold, 700);
    text-transform: uppercase;
    letter-spacing: 0.14em;
  }
  body.template-product .product-block--tab .collapsible-content__inner {
    padding-top: 10px;
    font-size: var(--vw-fs-14, 14px);
    line-height: 1.6;
    color: var(--vw-color-muted, #6E7480);
  }
  body.template-product .product-block--tab .collapsible-content__inner strong { color: var(--vw-color-charcoal, #1A2535); }

  /* ---------- Description block (non-tab) ---------- */
  body.template-product .product-single__description,
  body.template-product .product-single__description-full,
  body.template-product .product-block .rte {
    font-size: var(--vw-fs-14, 14px);
    line-height: 1.6;
    color: var(--vw-color-muted, #6E7480);
  }
  body.template-product .product-block .rte strong { color: var(--vw-color-charcoal, #1A2535); font-weight: var(--vw-fw-bold, 700); }

  /* ---------- Variant pickers (color swatches + selects) ---------- */
  body.template-product .selector-wrapper > label,
  body.template-product .variant-input-wrap .header { /* Impulse uses either based on style */
    font-size: var(--vw-fs-12, 12px);
    font-weight: var(--vw-fw-bold, 700);
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--vw-color-charcoal, #1A2535);
    margin-bottom: 8px;
    display: inline-block;
  }
  body.template-product .single-option-selector,
  body.template-product .product-form__input select {
    width: 100%;
    padding: 12px 36px 12px 14px;
    border: 1px solid var(--vw-color-border, #E2E2E2);
    background: var(--vw-color-white, #FFFFFF);
    font-size: var(--vw-fs-14, 14px);
    color: var(--vw-color-charcoal, #1A2535);
    border-radius: 2px;
  }
  /* Square swatches → 1" Valor look (no full circles, slight pill) */
  body.template-product .variant-input label.color-swatch {
    border-radius: 50px;
  }
  body.template-product .variant-input label {
    border-radius: 0px;
    border: 1px solid var(--vw-color-border, #E2E2E2);
    padding: 10px 14px;
    font-weight: var(--vw-fw-semibold, 600);
    background: var(--vw-color-white, #FFFFFF);
    color: var(--vw-color-charcoal, #1A2535);
    font-size: 14px;
    transition: border-color 0.18s ease, background-color 0.18s ease, color 0.18s ease;
  }
  body.template-product .variant-input input:checked + label,
  body.template-product .variant-input.variant-input--color input:checked + label {
    border-color: #4A5E3A;
    background-color: #4A5E3A;
    color: var(--vw-color-white, #FFFFFF);
  }
  body.template-product .variant-input.variant-input--color label {
    width: 36px;
    height: 36px;
    min-width: 0;
    padding: 0;
    border-radius: 50%;
  }
  body.template-product .variant-input.variant-input--color input:checked + label {
    box-shadow: 0 0 0 2px #fff inset, 0 0 0 2px var(--vw-color-charcoal, #1A2535);
  }

  /* ---------- Quantity selector ---------- */
  body.template-product .product__quantity {
    border: 1px solid var(--vw-color-border, #E2E2E2);
    border-radius: 2px;
    background: var(--vw-color-white, #FFFFFF);
  }
  body.template-product .js-qty__num {
    font-weight: var(--vw-fw-bold, 700);
    color: var(--vw-color-charcoal, #1A2535);
  }
  body.template-product .js-qty__adjust {
    color: var(--vw-color-charcoal, #1A2535);
    background: transparent;
  }
  body.template-product .js-qty__adjust:hover { background: var(--vw-color-light-gray, #F4F4F4); }

  /* ---------- Add-to-cart + buy-now buttons ---------- */
  body.template-product .product-form__cart-submit,
  body.template-product .btn.product-form__cart-submit {
    background: var(--vw-color-charcoal, #1A2535);
    color: var(--vw-color-white, #FFFFFF);
    border: 1px solid var(--vw-color-charcoal, #1A2535);
    border-radius: 2px;
    padding: 18px 24px;
    font-family: var(--vw-font-body, var(--typeBasePrimary));
    font-size: var(--vw-fs-13, 13px);
    font-weight: var(--vw-fw-bold, 700);
    text-transform: uppercase;
    letter-spacing: 0.14em;
    transition: background-color 0.18s ease, border-color 0.18s ease;
  }
  body.template-product .product-form__cart-submit:hover:not(:disabled) {
    background: var(--vw-color-olive, #4A5E3A);
    border-color: var(--vw-color-olive, #4A5E3A);
  }
  body.template-product .shopify-payment-button__button {
    background: transparent !important;
    border: 1px solid var(--vw-color-charcoal, #1A2535) !important;
    color: var(--vw-color-charcoal, #1A2535) !important;
    font-size: var(--vw-fs-13, 13px) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.14em !important;
    border-radius: 2px !important;
  }

  /* ---------- Thumbnails ---------- */
  body.template-product .product-single__thumbnail {
    border: 2px solid transparent;
    transition: border-color 0.18s ease;
  }
  body.template-product .product-single__thumbnail:hover,
  body.template-product .product-single__thumbnail.active-thumb {
    border-color: var(--vw-color-charcoal, #1A2535);
  }

  /* ---------- Sales point ---------- */
  body.template-product .product-block--sales-point {
    background: rgba(74, 94, 58, 0.06);
    border-left: 3px solid var(--vw-color-olive, #4A5E3A);
    padding: 10px 14px;
    border-radius: 2px;
    font-size: var(--vw-fs-13, 13px);
  }

  /* ---------- Trust strip (if merchant added a `text` block at the bottom) ---------- */
  body.template-product .product-block hr {
    border: 0;
    border-top: 1px solid var(--vw-color-border, #E2E2E2);
    margin: 16px 0;
  }

  /* ---------- Lead time notice ---------- */
  body.template-product .product-block--valor-lead-time { padding: 8px 0; }
  body.template-product .valor-lead-time {
    display: inline-flex; align-items: center; gap: 8px;
    margin: 0; padding: 10px 14px;
    background: rgba(74, 94, 58, 0.06);
    border-left: 3px solid var(--vw-color-olive, #4A5E3A);
    font-size: var(--vw-fs-13, 13px);
    line-height: 1.5;
    color: var(--vw-color-charcoal, #1A2535);
  }
  body.template-product .valor-lead-time .valor-icon {
    width: 18px; height: 18px;
    color: var(--vw-color-olive, #4A5E3A);
    flex: 0 0 auto;
  }
  body.template-product .valor-lead-time strong { color: var(--vw-color-charcoal, #1A2535); font-weight: var(--vw-fw-bold, 700); }

  /* ---------- Trust badges ---------- */
  body.template-product .product-block--valor-trust { padding-top: 12px; border-top: 1px solid var(--vw-color-border, #E2E2E2); margin-top: 8px; }
  body.template-product .valor-trust-badges {
    list-style: none; padding: 0; margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 10px;
  }
  body.template-product .valor-trust-badges li {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: var(--vw-fs-11, 11px);
    font-weight: var(--vw-fw-bold, 700);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--vw-color-charcoal, #1A2535);
  }
  body.template-product .valor-trust-badges .valor-icon {
    width: 16px; height: 16px;
    color: var(--vw-color-olive, #4A5E3A);
    flex: 0 0 auto;
  }

  /* ---------- Zoom icon on stage ---------- */
  body.template-product .product-single__photo-wrapper { position: relative; }
  body.template-product .product-single__photo-wrapper .product-single__photo-zoom,
  body.template-product .product__photo-zoom-icon {
    /* If theme doesn't render one natively, this rule has no effect — purely cosmetic enhancement */
  }

  /* ---------- Responsive tweaks ---------- */
  @media (max-width: 768px) {
    body.template-product .product-single__title { font-size: 22px; }
    body.template-product .product__price { font-size: 22px; }
  }

  /* ============================================================
     Valor Wear — Custom Product Detail (.vp-*)
     Hide the legacy Impulse rendering since main-product.liquid
     now outputs custom markup. Then style the new .vp-* output.
     ============================================================ */

  /* Hide any legacy Impulse template if it bleeds through */
  body.template-product .product-single__container,
  body.template-product #ProductSection-{{ section.id }} { display: none !important; }

  /* ---------- Section + container ---------- */
  .vp-detail { background: var(--vw-color-white, #FFFFFF); }
  .vp-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: flex-start;
  }
  .vp-detail--media-right .vp-row { direction: rtl; }
  .vp-detail--media-right .vp-row > * { direction: ltr; }

  /* ---------- Gallery ---------- */
  .vp-gallery {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 16px;
    position: sticky;
    top: 96px;
    align-self: start;
  }
  .vp-thumbs {
    display: flex; flex-direction: column; gap: 8px;
    max-height: 600px; overflow-y: auto; scrollbar-width: none;
  }
  .vp-thumbs::-webkit-scrollbar { display: none; }
  .vp-thumb {
    position: relative; width: 85px; height: 85px;
    padding: 0; background: #fff;
    border: 2px solid transparent; cursor: pointer; overflow: hidden;
    flex: 0 0 auto;
    transition: border-color 0.18s ease;
  }
  .vp-thumb img { width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; }
  .vp-thumb.is-active { border-color: var(--vw-color-charcoal, #1A2535); }
  .vp-thumb-play {
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    background: rgba(0,0,0,0.3); color: #fff;
  }
  .vp-thumb-play .valor-icon { width: 22px; height: 22px; }

  .vp-stage { position: relative; background: #fff; aspect-ratio: 1 / 1; overflow: hidden; }
  .vp-stage-item { display: none; width: 100%; height: 100%; }
  .vp-stage-item.is-active { display: block; }
  .vp-stage-item img,
  .vp-stage-item svg { width: 100%; height: 100%; object-fit: contain; display: block; }
  .vp-stage-item video,
  .vp-stage-item iframe { width: 100%; height: 100%; display: block; border: 0; }

  /* Zoom button */
  .vp-zoom {
    position: absolute; top: 12px; right: 24px; z-index: 2;
    width: 38px; height: 38px;
    display: inline-flex; align-items: center; justify-content: center;
    background: rgba(255, 255, 255, 0.95); color: var(--vw-color-charcoal, #1A2535);
    border: 0; cursor: pointer;
    box-shadow: 0 2px 8px rgba(17, 17, 17, 0.12);
    transition: background-color 0.18s ease, transform 0.18s ease;
  }
  .vp-zoom .valor-icon { width: 18px; height: 18px; }
  .vp-zoom:hover { background: #fff; transform: scale(1.05); }

  /* ---------- Info column ---------- */
  .vp-info { display: flex; flex-direction: column; gap: 14px; }
  .vp-title {
    font-family: var(--vw-font-heading, var(--typeHeaderPrimary));
    font-size: clamp(26px, 3vw, 38px);
    font-weight: var(--vw-fw-bold, 700);
    color: var(--vw-color-charcoal, #1A2535);
    text-transform: uppercase;
    letter-spacing: -0.01em;
    line-height: 1.15;
    margin: 0;
  }
  .vp-form { display: flex; flex-direction: column; gap: 20px; }

  /* ---------- Text + description blocks ---------- */
  .vp-block-text, .vp-block-text p,
  .vp-description, .vp-description p {
    font-size: var(--vw-fs-14, 14px);
    line-height: 1.6;
    color: var(--vw-color-muted, #6E7480);
    margin: 0;
  }
  .vp-block-text strong, .vp-description strong { color: var(--vw-color-charcoal, #1A2535); font-weight: var(--vw-fw-bold, 700); }
  .vp-separator { border: 0; border-top: 1px solid var(--vw-color-border, #E2E2E2); margin: 4px 0; }

  /* ---------- Price ---------- */
  .vp-price-row { display: flex; align-items: baseline; gap: 10px; padding: 8px 0;}
  .vp-price { font-family: var(--vw-font-heading, var(--typeHeaderPrimary)); font-size: clamp(30px, 2.4vw, 36px); font-weight: var(--vw-fw-bold, 700); color: var(--vw-color-charcoal, #1A2535); }
  .vp-compare { font-size: var(--vw-fs-15, 15px); color: var(--vw-color-muted, #6E7480); text-decoration: line-through; }

  /* ---------- Variant picker ---------- */
  .vp-variants { display: flex; flex-direction: column; gap: 14px; }
  .vp-field { display: flex; flex-direction: column; gap: 15px; }
  .vp-field-label {
    display: flex; align-items: center; justify-content: flex-start; gap: 4px;
    font-family: var(--vw-font-body, var(--typeBasePrimary));
    font-size: 12px;
    font-weight: var(--vw-fw-bold, 700);
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--vw-color-charcoal, #1A2535);
    margin-bottom: 0;
  }
  .vp-field-value, .vp-field-optional {
    color: #6E7480;
    font-weight: var(--vw-fw-regular, 400);
    text-transform: none;
    letter-spacing: 0;
  }
  .vp-field-hint { font-size: 12px; color: var(--vw-color-muted, #6E7480); }

  .vp-swatches { display: flex; flex-wrap: wrap; gap: 10px; }
  .vp-swatch { width: 32px; height: 32px; padding: 0; border: 1px solid rgba(0,0,0,0.12); border-radius: 50%; cursor: pointer; transition: box-shadow 0.18s ease; }
  .vp-swatch.is-active { box-shadow: 0 0 0 2px #fff inset, 0 0 0 2px var(--vw-color-charcoal, #1A2535); }

  /* Pill grid (size, buckle, etc.) */
  .vp-pill-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 8px; }
  .vp-pill {
    padding: 14px 16px;
    background: var(--vw-color-white, #FFFFFF);
    color: var(--vw-color-charcoal, #1A2535);
    border: 1px solid var(--vw-color-border, #E2E2E2);
    border-radius: 2px;
    font-family: var(--vw-font-body, var(--typeBasePrimary));
    font-size: 13px;
    font-weight: var(--vw-fw-semibold, 600);
    text-align: center;
    cursor: pointer;
    transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease;
  }
  .vp-pill:hover { border-color: var(--vw-color-charcoal, #1A2535); }
  .vp-pill.is-active {
    background: #4A5E3A;
    border-color: #4A5E3A;
    color: var(--vw-color-white, #FFFFFF);
  }

  /* ---------- Quantity + Wishlist ---------- */
  .vp-qty-block {
    display: flex;
    flex-direction: column;
    gap: 6px;
    background: #FAF9F6;
    border: 1px solid #E2E2E2;
    padding: 10px;
  }
  .vp-qty-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
  }
  .vp-qty { display: inline-flex; align-items: center; border: 1px solid var(--vw-color-border, #E2E2E2); width: fit-content; }
  .vp-qty-btn { width: 40px; height: 44px; background: var(--vw-color-white, #FFFFFF); border: 0; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; color: var(--vw-color-charcoal, #1A2535); }
  .vp-qty-btn .valor-icon { width: 12px; height: 12px; }
  .vp-qty-input {
    width: 44px;
    height: 42px;
    padding: 0;
    text-align: center;
    border: 0;
    font-weight: var(--vw-fw-bold, 700);
    background: #fff;
    font-size: 15px;
  }
  .vp-qty-input:focus { outline: none; }
  .vp-wishlist {
    display: inline-flex; align-items: center; gap: 6px;
    background: none; border: 0; padding: 0;
    cursor: pointer;
    font-family: var(--vw-font-body, var(--typeBasePrimary));
    font-size: 13px;
    font-weight: var(--vw-fw-semibold, 600);
    color: #1a2535;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    transition: color 0.18s ease;
  }
  .vp-wishlist .valor-icon { width: 18px; height: 18px; }
  .vp-wishlist:hover { color: var(--vw-color-charcoal, #1A2535); }
  .vp-wishlist.is-active { color: #b53a2c; }
  .vp-wishlist.is-active .valor-icon { color: #b53a2c; }

  /* ---------- Variant cards (Choose Your FI3) ---------- */
  .vp-variant-cards { display: flex; flex-direction: column; gap: 12px; }
  .vp-variant-eyebrow {
    font-family: var(--vw-font-body, var(--typeBasePrimary));
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--vw-color-muted, #6E7480);
  }
  .vp-variant-selector { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .vp-variant {
    display: grid; grid-template-columns: auto 1fr auto;
    align-items: center; gap: 12px;
    padding: 18px;
    border: 2px solid var(--vw-color-border, #E2E2E2);
    background: var(--vw-color-white, #FFFFFF);
    color: var(--vw-color-charcoal, #1A2535);
    text-decoration: none;
    border-radius: 8px;
    transition: border-color 0.18s ease, background-color 0.18s ease;
  }
  .vp-variant:hover { border-color: var(--vw-color-charcoal, #1A2535); }
  .vp-variant.is-active { border-color: var(--vw-color-olive, #4A5E3A); background: #F7F9F4; }
  .vp-variant-icon { width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; color: var(--vw-color-olive, #4A5E3A); background: rgba(74, 94, 58, 0.12); border-radius: 50px; }
  .vp-variant-icon .valor-icon { width: 18px; height: 18px; }
  .vp-variant-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
  .vp-variant-label { font-weight: 800; font-size: 15px; text-transform: uppercase; letter-spacing: 0.04em; }
  .vp-variant-note { font-size: 12px; color: var(--vw-color-muted, #6E7480); }
  .vp-variant-check { width: 22px; height: 22px; display: inline-flex; align-items: center; justify-content: center; color: #fff; background: var(--vw-color-olive, #4A5E3A); border-radius: 50%; }
  .vp-variant-check .valor-icon { width: 12px; height: 12px; }
  .vp-variant-icon svg {
    width: 20px;
    height: 20px;
    fill: #6e7480;
  }
  .vp-variant.is-active span.vp-variant-icon {
    background: #4A5E3A;
    color: #fff;
  }
  .vp-variant.is-active span.vp-variant-icon svg {
    color: #fff;
    fill: #fff;
  }

  /* ---------- Required questions ---------- */
  .vp-questions {
    display: flex; flex-direction: column; gap: 14px;
    padding: 20px;
    background: #FAF9F6;
    border-left: 3px solid var(--vw-color-olive, #4A5E3A);
  }
  .vp-questions-head {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 11px; font-weight: var(--vw-fw-bold, 700);
    text-transform: uppercase; letter-spacing: 0.16em;
    color: var(--vw-color-olive, #4A5E3A);
  }
  .vp-questions-head .valor-icon { width: 14px; height: 14px; }
  .vp-toggle { display: inline-flex; border: 1px solid var(--vw-color-border, #E2E2E2); width: fit-content; }
  .vp-toggle-btn { padding: 10px 22px; background: var(--vw-color-white, #FFFFFF); border: 0; cursor: pointer; font-size: 13px; font-weight: var(--vw-fw-semibold, 600); color: var(--vw-color-charcoal, #1A2535); }
  .vp-toggle-btn + .vp-toggle-btn { border-left: 1px solid var(--vw-color-border, #E2E2E2); }
  .vp-toggle-btn.is-active { background: var(--vw-color-charcoal, #1A2535); color: var(--vw-color-white, #FFFFFF); }
  .vp-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
  .vp-field-half { display: flex; flex-direction: column; gap: 5px; }
  .vp-input-group { position: relative; }
  .vp-input {
    width: 100%; padding: 12px 60px 12px 14px;
    border: 1px solid var(--vw-color-border, #E2E2E2);
    background: var(--vw-color-white, #FFFFFF);
    font-family: var(--vw-font-body, var(--typeBasePrimary));
    font-size: 14px; color: var(--vw-color-charcoal, #1A2535);
    box-sizing: border-box; border-radius: 2px;
  }
  .vp-input:focus { outline: none; border-color: var(--vw-color-olive, #4A5E3A); }
  .vp-input-full { padding-right: 14px; }
  .vp-input-unit { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); color: var(--vw-color-muted, #6E7480); font-size: 12px; pointer-events: none; }

  /* Metafield free-text (textarea + counter) */
  .vp-mf-ta-field { display: flex; flex-direction: column; }
  .vp-mf-textarea {
    min-height: 92px;
    padding: 12px 14px;
    line-height: 1.5;
    resize: vertical;
  }
  .vp-mf-textarea--single {
    min-height: 0;
    resize: none;
  }
  .vp-mf-ta-counter {
    align-self: flex-end;
    margin-top: 0;
    font-size: 12px;
    color: var(--vw-color-muted, #6E7480);
  }

  /* ---------- Upsell ---------- */
  .vp-upsell {
    display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: flex-start;
    cursor: pointer;
    transition: border-color 0.18s ease;
    margin: 0;
  }
  .vp-upsell:hover { border-color: var(--vw-color-charcoal, #1A2535); }
  .vp-upsell input[type="checkbox"] { display: none; }
  .vp-upsell-box { width: 22px; height: 22px; border: 1px solid var(--vw-color-border, #E2E2E2); background: #fff; display: inline-flex; align-items: center; justify-content: center; color: transparent; margin-top: 2px; }
  .vp-upsell-box .valor-icon { width: 14px; height: 14px; }
  .vp-upsell input:checked ~ .vp-upsell-box { background: var(--vw-color-olive, #4A5E3A); border-color: var(--vw-color-olive, #4A5E3A); color: #fff; }
  .vp-upsell-content { display: flex; flex-direction: column; gap: 4px; }
  .vp-upsell-price { color: var(--vw-color-olive, #4A5E3A); font-weight: var(--vw-fw-bold, 700); }
  /* Add-on option selectors (title/price/options come from the add-on product) */
  .vp-upsell-wrap { display: flex; flex-direction: column; gap: 15px; padding: 14px; border: 1px solid var(--vw-color-border, #E2E2E2); }
  .vp-upsell-options { display: flex; flex-wrap: wrap; gap: 12px; padding-left: 0; }
  .vp-upsell-option { display: flex; flex-direction: column; gap: 6px; min-width: 160px; }
  .vp-upsell-option-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
  .vp-upsell-option-label { font-size: 11px; font-weight: var(--vw-fw-bold, 700); text-transform: uppercase; letter-spacing: 0.08em; color: var(--vw-color-muted, #6E7480); }
  .vp-upsell-option-value { font-size: 12px; font-weight: var(--vw-fw-semibold, 600); color: var(--vw-color-charcoal, #1A2535); }
  .vp-upsell-select {
    appearance: none;
    -webkit-appearance: none;
    padding: 9px 30px 9px 12px;
    border: 1px solid var(--vw-color-border, #E2E2E2);
    background-color: #fff;
    color: var(--vw-color-charcoal, #1A2535);
    font-size: 13px;
    border-radius: 2px;
    cursor: pointer;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231A2535' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
    background-repeat: no-repeat;
    background-position: right 10px center;
    background-size: 12px;
  }
  .vp-upsell-select:hover, .vp-upsell-select:focus { border-color: var(--vw-color-charcoal, #1A2535); outline: none; }
  .vp-upsell-swatches { display: flex; flex-wrap: wrap; gap: 6px; }
  .vp-upsell-swatch {
    width: 26px;
    height: 26px;
    padding: 0;
    border: 1px solid rgba(0,0,0,0.12);
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    cursor: pointer;
    transition: box-shadow 0.18s ease;
  }
  .vp-upsell-swatch.is-active { box-shadow: 0 0 0 2px #fff inset, 0 0 0 2px var(--vw-color-charcoal, #1A2535); }
  .vp-upsell-text { display: flex; flex-direction: column; gap: 4px; margin-top: 4px; }
  .vp-upsell-text .vp-upsell-option-label { margin-bottom: 2px; }
  .vp-upsell-text-input {
    padding: 9px 12px;
    border: 1px solid var(--vw-color-border, #E2E2E2);
    border-radius: 2px;
    font-size: 13px;
    width: 100%;
  }
  .vp-upsell-text-input:focus { border-color: var(--vw-color-charcoal, #1A2535); outline: none; }
  .vp-upsell-text-counter { font-size: 11px; color: var(--vw-color-muted, #6E7480); align-self: flex-end; }
  .vp-upsell-note { font-size: 12px; color: var(--vw-color-muted, #6E7480); line-height: 1.5; text-transform: capitalize; letter-spacing: 0; }
  .vp-upsell-title {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: var(--vw-fw-bold, 700);
    color: var(--vw-color-charcoal, #1A2535);
    font-family: var(--vw-font-heading, var(--typeHeaderPrimary));
    font-size: 15px;
  }
  /* ---------- Measure confirm ---------- */
  .vp-checkbox {
    display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: flex-start;
    cursor: pointer; padding: 12px 14px;
    background: rgba(26, 37, 53, 0.04);
    border-left: 3px solid #8b7355;
  }
  .vp-checkbox input { display: none; }
  .vp-checkbox-box { width: 22px; height: 22px; border: 1px solid var(--vw-color-border, #E2E2E2); background: #fff; display: inline-flex; align-items: center; justify-content: center; color: transparent; margin-top: 2px; }
  .vp-checkbox-box .valor-icon { width: 14px; height: 14px; }
  .vp-checkbox input:checked ~ .vp-checkbox-box { background: var(--vw-color-olive, #4A5E3A); border-color: var(--vw-color-olive, #4A5E3A); color: #fff; }
  .vp-checkbox-text {
    font-size: 13px;
    line-height: 1.5;
    color: var(--vw-color-charcoal, #1A2535);
    text-transform: capitalize;
    letter-spacing: 0;
  }

  /* Invalid-field cue (manual validation) */
  .vp-invalid {
    outline: 2px solid #B53A2C;
    outline-offset: 3px;
    border-radius: 2px;
  }
  .vp-invalid .vp-checkbox-box { border-color: #B53A2C; }
  .vp-invalid .vp-input { border-color: #B53A2C; }

  /* ---------- CTAs (side-by-side, sticky to viewport bottom) ----------
     Add to Cart + Buy It Now stick to the bottom of the viewport while the
     product form is in view (pure CSS position:sticky — no JS pinning). The
     full-width .vp-sticky-bar takes over once the whole product section has
     scrolled past. */
  .vp-cta-sticky {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: start;
    gap: 10px;
    position: sticky;
    bottom: 0;
    z-index: 5;
    padding: 12px;
    background: var(--vw-color-white, #FFFFFF);
    border: 1px solid #E2E2E2;
  }
  /* No "Buy with Shop" button (dynamic checkout off, or variant sold out) →
     the Add to Cart / Sold out button spans the full width. */
  .vp-cta-sticky--single,
  .vp-cta-sticky.is-sold-out {
    grid-template-columns: 1fr;
  }
  .vp-cta-sticky.is-sold-out .vp-payment-btn,
  .vp-payment-btn[hidden] {
    display: none;
  }
  /* Match the "Buy with Shop" dynamic checkout button to Add to Cart.
     The --shopify-accelerated-checkout-* custom properties are exposed by
     Shopify and inherit through the Shop Pay button's shadow DOM (we can't
     edit the shadow root's own rules — e.g. --gravity-button-padding — but
     these inherited vars drive the button's height + radius). */
  .vp-payment-btn {
    width: 100%;
    --shopify-accelerated-checkout-button-block-size: 52px;
    --shopify-accelerated-checkout-button-border-radius: 2px;
  }
  .vp-payment-btn .shopify-payment-button,
  .vp-payment-btn shopify-accelerated-checkout { width: 100%; }
  .vp-add {
    display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    width: 100%; height: 52px; padding: 0 24px;
    background: #4A5E3A;
    color: var(--vw-color-white, #FFFFFF);
    border: 1px solid #4A5E3A;
    font-family: var(--vw-font-body, var(--typeBasePrimary));
    font-size: 14px; font-weight: var(--vw-fw-bold, 700);
    text-transform: uppercase; letter-spacing: 0.14em;
    cursor: pointer; border-radius: 2px;
    transition: background-color 0.18s ease, border-color 0.18s ease;
  }
  .vp-add:hover:not(:disabled),
  .vp-add:focus:not(:disabled) {
    background: #3A4B2D;
    border-color: #3A4B2D;
  }
  .vp-add:disabled { opacity: 0.55; cursor: not-allowed; }
  .vp-add .valor-icon { width: 16px; height: 16px; }

  /* ---------- Sticky add-to-cart bar (viewport bottom) ---------- */
  .vp-sticky-bar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9;
    background: var(--vw-color-white, #FFFFFF);
    border-top: 1px solid var(--vw-color-border, #E2E2E2);
    box-shadow: 0 -6px 18px rgba(17, 17, 17, 0.08);
    transform: translateY(100%);
    transition: transform 0.28s ease;
    padding: 10px 0;
  }
  .vp-sticky-bar[hidden] { display: block; }
  .vp-sticky-bar.is-visible { transform: translateY(0); }
  .vp-sticky-row {
    display: flex;
    align-items: center;
    gap: 20px;
    justify-content: space-between;
  }
  .vp-sticky-product {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    flex: 0 1 auto;
  }
  .vp-sticky-image {
    width: 56px;
    height: 56px;
    object-fit: cover;
    flex-shrink: 0;
    border: 1px solid var(--vw-color-border, #E2E2E2);
  }
  .vp-sticky-text {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
  }
  .vp-sticky-name {
    font-family: var(--vw-font-heading);
    font-size: 14px;
    font-weight: var(--vw-fw-bold, 700);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--vw-color-charcoal, #1A2535);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 220px;
  }
  .vp-sticky-meta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--vw-color-muted, #6E7480);
  }
  .vp-sticky-swatch {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    flex-shrink: 0;
    box-shadow: 0 0 0 1px var(--vw-color-border, #E2E2E2);
    background: #8B7355;
  }
  .vp-sticky-color { white-space: nowrap; }
  .vp-sticky-price {
    font-family: var(--vw-font-heading);
    font-weight: var(--vw-fw-bold, 700);
    color: var(--vw-color-charcoal, #1A2535);
    margin-left: 2px;
  }
  .vp-sticky-controls {
    display: flex;
    align-items: flex-end;
    gap: 14px;
    margin-left: auto;
    flex: 1 1 auto;
    min-width: 0;
    /* Scroll horizontally when there are many options rather than squishing them. */
    overflow-x: auto;
    overflow-y: hidden;
    flex-wrap: nowrap;
    padding-bottom: 2px;
    scrollbar-width: thin;
  }
  .vp-sticky-controls::-webkit-scrollbar { height: 4px; }
  .vp-sticky-controls::-webkit-scrollbar-thumb { background: var(--vw-color-border, #E2E2E2); border-radius: 4px; }
  .vp-sticky-control {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin: 0;
    /* Give each option enough room so the label + select aren't congested. */
    flex: 0 0 auto;
    min-width: 148px;
    max-width: 220px;
  }
  .vp-sticky-control-label {
    font-size: 10px;
    font-weight: var(--vw-fw-bold, 700);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--vw-color-muted, #6E7480);
    line-height: 1.3;
    /* Clamp long question-style names to two tidy lines. */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .vp-sticky-control .vp-sticky-select,
  .vp-sticky-control .vp-sticky-swatches { width: 100%; }
  .vp-sticky-select {
    appearance: none;
    -webkit-appearance: none;
    padding: 9px 30px 9px 12px;
    background-color: var(--vw-color-white, #FFFFFF);
    border: 1px solid var(--vw-color-border, #E2E2E2);
    color: var(--vw-color-charcoal, #1A2535);
    font-size: 13px;
    font-weight: var(--vw-fw-semibold, 600);
    cursor: pointer;
    border-radius: 2px;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231A2535' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
    background-repeat: no-repeat;
    background-position: right 10px center;
    background-size: 13px;
  }
  .vp-sticky-select:hover,
  .vp-sticky-select:focus { border-color: var(--vw-color-charcoal, #1A2535); outline: none; }
  /* Colour options in the sticky bar render as compact swatches (matching the main picker). */
  .vp-sticky-swatches { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
  .vp-sticky-swatch-btn {
    width: 26px; height: 26px; padding: 0;
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    cursor: pointer;
    transition: box-shadow 0.18s ease;
  }
  .vp-sticky-swatch-btn.is-active {
    box-shadow: 0 0 0 2px #fff inset, 0 0 0 2px var(--vw-color-charcoal, #1A2535);
  }
  .vp-sticky-add {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    flex-shrink: 0;
    padding: 15px 28px;
    background: #4A5E3A;
    color: var(--vw-color-white, #FFFFFF);
    border: 1px solid #4A5E3A;
    font-family: var(--vw-font-body, var(--typeBasePrimary));
    font-size: 14px;
    font-weight: var(--vw-fw-bold, 700);
    text-transform: uppercase;
    letter-spacing: 0.14em;
    cursor: pointer;
    border-radius: 2px;
    transition: background-color 0.18s ease, border-color 0.18s ease;
  }
  .vp-sticky-add:hover:not(:disabled),
  .vp-sticky-add:focus:not(:disabled) { background: #3A4B2D; border-color: #3A4B2D; }
  .vp-sticky-add:disabled { opacity: 0.55; cursor: not-allowed; }
  .vp-sticky-add .valor-icon { width: 16px; height: 16px; }

  /* Narrow laptop — tighten gaps + selects so the row doesn't overflow */
  @media (max-width: 1280px) {
    .vp-sticky-row { gap: 14px; }
    .vp-sticky-controls { gap: 10px; }
    .vp-sticky-select { padding: 8px 26px 8px 10px; font-size: 12px; }
    .vp-sticky-name { max-width: 160px; }
  }
  /* Tablet & mobile — instead of hiding the options, move them to their own
     full-width, horizontally scrollable row so ALL options stay usable. */
  @media (max-width: 1100px) {
    .vp-sticky-row { flex-wrap: wrap; row-gap: 14px; column-gap: 14px; }
    .vp-sticky-product { flex: 1 1 auto; min-width: 0; }
    .vp-sticky-name { max-width: none; }
    .vp-sticky-add { flex: 0 0 auto; margin-left: auto; }
    .vp-sticky-controls {
      order: 3;
      flex: 1 1 100%;
      width: 100%;
      margin-left: 0;
      -webkit-overflow-scrolling: touch;
    }
  }
  @media (max-width: 600px) {
    .vp-sticky-bar { padding: 8px 0; }
    .vp-sticky-image { width: 46px; height: 46px; }
    .vp-sticky-name { font-size: 12px; }
    .vp-sticky-meta { font-size: 12px; }
    .vp-sticky-add { padding: 13px 18px; font-size: 12px; letter-spacing: 0.1em; }
    .vp-sticky-control { min-width: 132px; }
    /* Stack: product info → options → Add to Cart (left-aligned) at the bottom. */
    .vp-sticky-product { order: 1; flex: 1 1 100%; }
    .vp-sticky-controls { order: 2; flex: 1 1 100%; }
    .vp-sticky-add { order: 3; margin-left: 0; margin-right: auto; align-self: flex-start; }
  }

  .shopify-payment-button { margin: 0; }
  .shopify-payment-button__button {
    width: 100% !important;
    height: 100% !important;
    min-height: 52px !important;
    background: transparent !important;
    border: 1px solid #4A5E3A !important;
    color: #4A5E3A !important;
    padding: 14px 24px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.14em !important;
    border-radius: 2px !important;
    transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease !important;
  }
  .shopify-payment-button__button:hover {
    background: #3A4B2D !important;
    border-color: #3A4B2D !important;
    color: #FFFFFF !important;
  }

  /* ---------- Lightbox ---------- */
  .vp-lightbox {
    position: fixed; inset: 0; z-index: 9999;
    display: flex; align-items: center; justify-content: center;
    padding: 32px 80px;
    background: rgba(8, 10, 14, 0.94);
    /* backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px); */
  }
  .vp-lightbox[hidden] { display: none; }
  .vp-lightbox-stage {
    display: flex; align-items: center; justify-content: center;
    width: 100%; max-width: 1200px;
    max-height: calc(100vh - 80px);
  }
  .vp-lightbox-img {
    display: block;
    max-width: 100%;
    max-height: calc(100vh - 80px);
    object-fit: contain;
    /* box-shadow: 0 24px 60px rgba(0, 0, 0, 0.55); */
  }
  .vp-lightbox-close,
  .vp-lightbox-nav {
    position: absolute;
    width: 48px; height: 48px;
    display: inline-flex; align-items: center; justify-content: center;
    background: rgba(255, 255, 255, 0.08);
    color: var(--vw-color-white, #FFFFFF);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 50%;
    cursor: pointer; padding: 0;
    transition: background-color 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
  }
  .vp-lightbox-close:hover,
  .vp-lightbox-nav:hover {
    background: rgba(255, 255, 255, 0.18);
    border-color: rgba(255, 255, 255, 0.35);
  }
  .vp-lightbox-close { top: 24px; right: 24px; }
  .vp-lightbox-close .valor-icon { width: 18px; height: 18px; }
  .vp-lightbox-prev { left: 24px;  top: 50%; transform: translateY(-50%); }
  .vp-lightbox-next { right: 24px; top: 50%; transform: translateY(-50%); }
  .vp-lightbox-prev:hover { transform: translateY(-50%) scale(1.04); }
  .vp-lightbox-next:hover { transform: translateY(-50%) scale(1.04); }
  .vp-lb-caret { width: 18px; height: 18px; }
  .vp-lb-caret--left  { transform: rotate(90deg); }
  .vp-lb-caret--right { transform: rotate(-90deg); }

  /* ---------- Lead time ---------- */
  .vp-lead-time {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 10px 14px;
    background: #fff8ec;
    border-left: 3px solid #d49a2e;
    font-size: 13px; line-height: 1.5;
    color: var(--vw-color-charcoal, #1A2535);
  }
  .vp-lead-time .valor-icon { width: 18px; height: 18px; color: #d49a2e; flex: 0 0 auto; }
  .vp-lead-time strong { font-weight: var(--vw-fw-bold, 700); }
  .vp-lead-time p { margin: 0; }

  /* ---------- Trust badges ---------- */
  .vp-trust-badges {
    list-style: none;
    padding: 16px;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    background: #faf9f6;
    border-radius: 0;
    border: 1px solid #E2E2E2;
    justify-content: space-between;
  }
  .vp-trust-badges li {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    margin: 0;
    font-weight: var(--vw-fw-bold, 700);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: inherit;
    font-family: var(--vw-font-heading, var(--typeHeaderPrimary));
  }
  .vp-trust-badges .valor-icon {
    width: 16px; height: 16px;
    color: var(--vp-trust-icon, var(--vw-color-olive, #4A5E3A));
    flex: 0 0 auto;
  }
  ul.vp-trust-badges svg {
    color: #4A5E3A;
    width: 16px;
  }

  /* ---------- Responsive ---------- */

  /* Tablet — single column, gallery no longer sticky, slightly tighter gap */
  @media (max-width: 991px) {
    .vp-detail { padding: 16px 0 56px; }
    .vp-row {
      grid-template-columns: 1fr;
      gap: 28px;
    }
    .vp-gallery { position: static; top: auto; }
    /* Keep the media column from getting unnecessarily tall on tablet */
    .vp-stage { max-height: 620px; }
  }

  /* Mobile — stack the gallery: main image on top (full width), thumbnails
     become a horizontal scroll strip below it. Matches the reference's
     mobile PDP rather than a cramped thumbs-left column. */
  @media (max-width: 749px) {
    .vp-gallery {
      grid-template-columns: 1fr;
      gap: 10px;
    }
    .vp-stage { order: 1; aspect-ratio: 1 / 1; }
    .vp-thumbs {
      order: 2;
      flex-direction: row;
      max-height: none;
      overflow-x: auto;
      overflow-y: hidden;
      -webkit-overflow-scrolling: touch;
      padding-bottom: 4px;
    }
    .vp-thumb { width: 64px; height: 64px; }

    /* Stack the option fields cleanly */
    .vp-variant-selector { grid-template-columns: 1fr; }
    .vp-field-row { grid-template-columns: 1fr; }
    .vp-trust-badges { grid-template-columns: 1fr; }

    /* Buy buttons stack on phones, full width each */
    .vp-cta-sticky { grid-template-columns: 1fr; }
    .vp-cta-sticky.is-stuck { padding: 10px 0; }

    /* Pills: keep at least 2 per row so size grid reads as a grid */
    .vp-pill-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }


  /* Small phones — single-column pills, tighter title */
  @media (max-width: 420px) {
    .vp-pill-grid { grid-template-columns: 1fr; }
    .vp-qty-row { gap: 10px; }
  }
/* END_SECTION:main-product */

/* START_SECTION:post-head (INDEX:42) */
.vw-post-head {
    background-color: var(--vw-color-light-gray, #f4f4f4);
  }

  .vw-post-head .vw-container {
    gap: 0;
  }

  .vw-post-head-inner {
    display: flex;
    flex-direction: column;
    width: 100%;
  }

  .vw-post-head-inner.text-center {
    margin-left: auto;
    margin-right: auto;
    align-items: center;
    text-align: center;
  }

  .vw-post-head-inner.text-right {
    margin-left: auto;
    align-items: flex-end;
    text-align: right;
  }

  /* ---------- Category badge (mirrors .blog-tag--solid) ---------- */
  .vw-post-head-tag {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    font-family: var(--vw-font-heading);
    font-size: var(--vw-fs-11, 11px);
    font-weight: var(--vw-fw-bold, 700);
    text-transform: var(--vw-tt-upper, uppercase);
    letter-spacing: var(--vw-ls-wide, 0.05em);
    line-height: 1.5;
    color: var(--vw-color-white, #fff);
    background-color: var(--vw-color-olive, #4a5e3a);
    padding: var(--vw-sp-6, 6px) var(--vw-sp-10, 10px);
    text-decoration: none;
    transition: background-color var(--vw-tr-fast, 0.18s ease), color var(--vw-tr-fast, 0.18s ease);
  }

  .vw-post-head-inner.text-center .vw-post-head-tag {
    align-self: center;
  }
  .vw-post-head-inner.text-right .vw-post-head-tag {
    align-self: flex-end;
  }

  /* ---------- Title ---------- */
  .vw-post-head-title {
    font-family: var(--vw-font-heading);
    font-weight: var(--vw-fw-bold, 700);
    line-height: var(--vw-lh-tight, 1.1);
    letter-spacing: -0.03em;
    color: var(--vw-color-charcoal, #1a2535);
    margin: 0;
  }

  /* ---------- Standfirst ---------- */
  .vw-post-head-standfirst {
    line-height: var(--vw-lh-relaxed, 1.65);
    color: var(--vw-color-muted, #6e7480);
    max-width: 88ch;
    margin: 0;
  }

  /* ---------- Byline ---------- */
  .vw-post-head-byline {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--vw-sp-12, 12px);
    font-family: var(--vw-font-body);
    font-weight: var(--vw-fw-semibold, 600);
    text-transform: var(--vw-tt-upper, uppercase);
    letter-spacing: var(--vw-ls-wide, 0.05em);
    color: var(--vw-color-muted, #6e7480);
  }

  .vw-post-head-byline strong {
    color: var(--vw-color-charcoal, #1a2535);
    font-weight: var(--vw-fw-bold, 700);
  }

  .vw-post-head-dot {
    width: 4px;
    height: 4px;
    background-color: var(--vw-color-coyote, #8b7355);
    border-radius: 50%;
  }
/* END_SECTION:post-head */

/* START_SECTION:shoppable-hero (INDEX:51) */
.kit-shoppable-hero__hotspots {
    position: relative;
    pointer-events: none;
    z-index: 3;
  }

  .kit-shoppable-hero__hotspot {
    position: absolute;
    top: var(--hotspot-top-mobile, var(--hotspot-top));
    left: var(--hotspot-left-mobile, var(--hotspot-left));
    transform: translate(-50%, -50%);
    pointer-events: auto;
  }

  .kit-shoppable-hero__product-card {
    color: inherit;
    text-decoration: inherit;
    display: block;
    min-width: calc(2rem * 4.2360679775); /* 4.2360679775 = φ^3 */
  }

  @media (min-width: 700px) {
    .kit-shoppable-hero__hotspot {
      top: var(--hotspot-top);
      left: var(--hotspot-left);
    }

    .kit-content-over-media__content {
      max-width: calc(61.803% + (var(--kit-section-gutter) * 2)); /* 61.803% = 100% - 1/φ, compensate for padding */
    }

    .kit-shoppable-hero__content .kit-text {
      color: var(--colorHeroText);
      pointer-events: none;
    }
  }

  @media (min-width: 1024px) {
    .kit-content-over-media__content {
      max-width: calc(50% + (var(--kit-section-gutter) * 2));
    }
  }
/* END_SECTION:shoppable-hero */

/* START_SECTION:story-quote (INDEX:54) */
.story-quote {
    background-color: var(--vw-color-light-gray, #F4F4F4);
    text-align: center;
  }
  .story-quote__inner {
    align-items: center;
    text-align: center;
    gap: var(--vw-sp-12, 12px);
    max-width: 880px;
    margin: 0 auto;
  }
  .story-quote-text {
    font-family: var(--vw-font-heading, var(--typeHeaderPrimary));
    font-size: clamp(26px, 3.2vw, 40px);
    font-weight: var(--vw-fw-bold, 700);
    line-height: 1.25;
    color: var(--vw-color-olive, #4A5E3A);
    font-style: italic;
    margin: 0;
    letter-spacing: -0.02em;
    padding: 0;
  }
  .story-quote-attr {
    font-size: var(--vw-fs-13, 13px);
    font-weight: var(--vw-fw-bold, 700);
    color: var(--vw-color-muted, #6E7480);
    text-transform: uppercase;
    letter-spacing: 0.18em;
    margin: 0;
  }
/* END_SECTION:story-quote */

/* START_SECTION:story-row (INDEX:55) */
.story-row {
    background-color: var(--vw-color-white, #FFFFFF);
  }
  .story-row__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
  }
  .story-row--reverse .story-row__grid { direction: rtl; }
  .story-row--reverse .story-row__grid > * { direction: ltr; }

  .story-row__content {
    display: flex;
    flex-direction: column;
    gap: var(--vw-sp-16, 16px);
  }
  .story-row__eyebrow {
    font-size: var(--vw-fs-12, 12px);
    font-weight: var(--vw-fw-bold, 700);
    color: var(--vw-color-olive, #4A5E3A);
    text-transform: uppercase;
    letter-spacing: 0.18em;
  }
  .story-row__title {
    /* font-size: clamp(24px, 2.6vw, 34px); */
    font-weight: var(--vw-fw-bold, 700);
    line-height: 1.2;
    color: var(--vw-color-charcoal, #1A2535);
    letter-spacing: -0.02em;
    margin: 0;
  }
  svg.story-row__video-play-icon {
    width: 32px;
    height: 32px;
  }
  .story-row__text,
  .story-row__text p {
    font-size: 16px;
    line-height: var(--vw-lh-relaxed, 1.65);
    color: var(--vw-color-charcoal, #1A2535);
    margin: 0;
  }
  .story-row__text p + p { margin-top: 12px; }

  .story-row__quote,
  .story-row__text em,
  .story-row__text i,
  .story-row__text em strong,
  .story-row__text strong em {
    font-style: oblique 50deg;
    font-synthesis: style weight;
  }
  .story-row__quote {
    margin: 4px 0 0;
    padding: 14px 0 16px;
    border-top: 1px solid var(--vw-color-border, #E2E2E2);
    border-bottom: 1px solid var(--vw-color-border, #E2E2E2);
    font-family: var(--vw-font-body, var(--typeBasePrimary));
    font-size: clamp(16px,2vw,20px);
    line-height: var(--vw-lh-relaxed, 1.55);
    color: var(--vw-color-olive, #4A5E3A);
    font-weight: 800;
  }

  /* CTA row */
  .story-row__ctas { 
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    padding-top: 12px;
  }
  .story-row__btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 24px;
    background-color: var(--vw-color-olive, #4A5E3A);
    color: var(--vw-color-white, #FFFFFF);
    border: 2px solid var(--vw-color-olive, #4A5E3A);
    border-radius: var(--vw-br-xs, 0);
    font-family: var(--vw-font-body, var(--typeBasePrimary));
    font-size: 14px;
    font-weight: var(--vw-fw-semibold, 600);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.18s ease,
                color 0.18s ease,
                border-color 0.18s ease,
                transform 0.18s ease;
  }
  .story-row__btn:hover {
    background-color: var(--vw-color-charcoal, #1A2535);
    border-color: var(--vw-color-charcoal, #1A2535);
    color: var(--vw-color-white, #FFFFFF);
  }
  .story-row__btn .valor-icon {
    width: 16px;
    height: 16px;
    transition: transform 0.18s ease;
  }
  .story-row__btn:hover .valor-icon { transform: translateX(3px); }

  .story-row__btn--style-outline {
    background-color: transparent;
    color: var(--vw-color-charcoal, #1A2535);
    border-color: var(--vw-color-charcoal, #1A2535);
  }
  .story-row__btn--style-outline:hover {
    background-color: var(--vw-color-charcoal, #1A2535);
    color: var(--vw-color-white, #FFFFFF);
  }
  .story-row__btn--style-link {
    background-color: transparent;
    color: var(--vw-color-olive, #4A5E3A);
    border-color: transparent;
    padding: 8px 0;
    text-transform: none;
    letter-spacing: 0;
    font-size: var(--vw-fs-15, 15px);
  }
  .story-row__btn--style-link:hover {
    background-color: transparent;
    color: var(--vw-color-charcoal, #1A2535);
  }

  /* Figure (image or video) */
  .story-row__figure {
    margin: 0;
    overflow: hidden;
    /* aspect-ratio: 4 / 3; */
    background-color: var(--vw-color-light-gray, #F4F4F4);
    /* border-radius: 6px; */
    position: relative;
  }
  .story-row__figure--image { aspect-ratio: 1 / 1; }
  .story-row__figure img,
  .story-row__figure svg {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 0.6s ease;
  }
  .story-row__figure--image:hover img { transform: scale(1.03); }

  /* Video thumb */
  .story-row__video-thumb {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    margin: 0;
    background: none;
    border: 0;
    cursor: pointer;
    font: inherit;
    text-align: left;
  }
  .story-row__video-thumb::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,0.55) 100%);
    pointer-events: none;
    transition: opacity 0.2s ease;
  }
  .story-row__video-poster { transition: transform 0.45s ease; }
  .story-row__video-thumb:hover .story-row__video-poster { transform: scale(1.02); }

  .story-row__video-play {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 88px;
    height: 88px;
    transform: translate(-50%, -50%);
    background-color: var(--vw-color-white, #FFFFFF);
    color: var(--vw-color-olive, #4A5E3A);
    border: 1px solid var(--vw-color-white, #FFFFFF);
    border-radius: 0px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
    pointer-events: none;
  }
  .story-row__figure svg {
    width: 32px;
    height: 32px;
  }
  .story-row__video-thumb:hover .story-row__video-play {
    background-color: var(--vw-color-olive, #4A5E3A);
    border-color: var(--vw-color-olive, #4A5E3A);;
    color: var(--vw-color-white, #FFFFFF);
    transform: translate(-50%, -50%) scale(1.04);
  }
  .story-row__video-play-icon {
    width: 28px;
    height: 28px;
    display: block;
  }

  .story-row__video-caption {
    position: absolute;
    left: 18px;
    bottom: 18px;
    z-index: 2;
    padding: 8px 14px;
    background-color: rgba(0, 0, 0, 0.55);
    color: var(--vw-color-white, #FFFFFF);
    font-family: var(--vw-font-body, var(--typeBasePrimary));
    font-size: var(--vw-fs-12, 12px);
    font-weight: var(--vw-fw-semibold, 600);
    text-transform: uppercase;
    letter-spacing: 0.18em;
  }
  .story-row__figure.is-playing .story-row__video-thumb { display: none; }
  .story-row__figure iframe,
  .story-row__figure video {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
  }

  /* Icon + heading + text values list */
  .story-row__values {
    list-style: none;
    padding: 0;
    margin: var(--vw-sp-12, 12px) 0 0;
    display: flex;
    flex-direction: column;
    gap: var(--vw-sp-20, 20px);
  }
  .story-row__value {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: var(--vw-sp-16, 16px);
    margin: 0;
    padding: 0;
  }
  .story-row__value-icon {
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--vw-color-olive, #4A5E3A);
    background-color: rgba(74, 94, 58, 0.08);
    border-radius: 50%;
  }
  .story-row__value-icon .valor-icon { width: 22px; height: 22px; }
  .story-row__value-body {
    display: flex;
    flex-direction: column;
    gap: var(--vw-sp-4, 4px);
  }
  .story-row__value-heading {
    font-family: var(--vw-font-heading, var(--typeHeaderPrimary));
    font-size: 16px;
    font-weight: var(--vw-fw-bold, 700);
    color: var(--vw-color-charcoal, #1A2535);
    text-transform: uppercase;
    letter-spacing: var(--vw-ls-wide, 0.05em);
    line-height: 1.25;
    margin: 0;
  }
  .story-row__value-text {
    font-size: var(--vw-fs-15, 15px);
    line-height: var(--vw-lh-relaxed, 1.65);
    color: var(--vw-color-muted, #6E7480);
    margin: 0;
  }

  /* Mobile */
  @media (max-width: 768px) {
    .story-row__grid {
      grid-template-columns: 1fr;
      align-items: stretch;
    }
    .story-row--reverse .story-row__grid { direction: ltr; }
    .story-row__figure { order: 2; aspect-ratio: 4 / 3; }
    .story-row__content { order: 1; }
    .story-row--m-image-top .story-row__figure { order: 1; }
    .story-row--m-image-top .story-row__content { order: 2; }
    .story-row__title { font-size: 24px; }
    .story-row__text,
    .story-row__text p { font-size: 15px; }
    .story-row__quote { font-size: 15px; }
    .story-row__values { gap: 16px; }
    .story-row__value-icon { width: 38px; height: 38px; }
    .story-row__value-icon .valor-icon { width: 18px; height: 18px; }
    .story-row__video-play { width: 60px; height: 60px; }
    .story-row__video-play-icon { width: 22px; height: 22px; }
    .story-row__video-caption { left: 12px; bottom: 12px; font-size: 10px; padding: 6px 10px; }
  }
/* END_SECTION:story-row */

/* START_SECTION:valor-announcement (INDEX:60) */
.announcement-bar {
    position: relative;
    width: 100%;
    padding: var(--vw-sp-10, 10px) 0;
    z-index: 1;
    transition: background-color var(--vw-tr-base, 0.28s ease), opacity var(--vw-tr-base, 0.28s ease);
  }
  .announcement-bar--overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
  }
  .announcement-bar--blur {
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
  }
  .announcement-bar .vw-container {
    gap: 0;
  }
  .announcement-slider {
    position: relative;
    /* height is set inline via {% style %} for editor responsiveness */
    overflow: hidden;
  }
  .announcement-slide {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: var(--vw-sp-8, 8px);
    font-family: var(--vw-font-body);
    font-size: var(--vw-fs-12, 12px);
    font-weight: var(--vw-fw-medium, 500);
    text-transform: var(--vw-tt-upper, uppercase);
    letter-spacing: var(--vw-ls-wide, 0.05em);
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.5s ease, transform 0.5s ease;
    pointer-events: none;
    line-height: 1;
  }
  .announcement-slide.is-active {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }
  .announcement-slide i {
    font-size: var(--vw-fs-14, 14px);
  }
  .announcement-slide__link {
    display: inline-flex;
    align-items: center;
    gap: var(--vw-sp-8, 8px);
    color: inherit;
    text-decoration: none;
  }
  .announcement-slide__link:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  /* When overlay is enabled, the hero section already reserves top space
     for the bar via its own padding-top calc(announcement-h + 96).
     When overlay is OFF, the bar takes real space — normalize hero padding
     so we don't double-up the offset. Modern browsers ≥ 2023 (:has()). */
  body:has(.announcement-bar):not(:has(.announcement-bar--overlay)) .hero-section {
    padding-top: var(--vw-sp-96, 96px);
  }

  @media (max-width: 600px) {
    .announcement-bar {
      padding: var(--vw-sp-8, 8px) 0;
    }
    .announcement-slide {
      font-size: var(--vw-fs-11, 11px);
      padding: 0 var(--vw-sp-8, 8px);
      text-align: center;
    }
  }
/* END_SECTION:valor-announcement */

/* START_SECTION:valor-breadcrumb (INDEX:61) */
.vp-crumb {
    background-color: var(--vw-color-white, #FFFFFF);
    border-bottom: 1px solid var(--vw-color-border, #E2E2E2);
  }
  .vp-crumb__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    font-family: var(--vw-font-body, var(--typeBasePrimary));
    font-size: var(--vw-fs-12, 12px);
    font-weight: var(--vw-fw-semibold, 600);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--vw-color-muted, #6E7480);
  }
  .vp-crumb__item { display: inline-flex; align-items: center; gap: 0px; margin-bottom: 0; }
  .vp-crumb__item:not(:last-child)::after {
    content: '/';
    margin-left: 6px;
    color: var(--vw-color-border, #C9CCD2);
    font-weight: var(--vw-fw-regular, 400);
  }
  .vp-crumb__item a {
    color: var(--vw-color-muted, #6E7480);
    text-decoration: none;
    transition: color 0.18s ease;
  }
  .vp-crumb__item a:hover { color: var(--vw-color-charcoal, #1A2535); }
  .vp-crumb__item[aria-current="page"] span { color: var(--vw-color-charcoal, #1A2535); }

  /* @media (max-width: 600px) {
    .vp-crumb__list { font-size: 11px; letter-spacing: 0.06em; }
  } */
/* END_SECTION:valor-breadcrumb */

/* START_SECTION:valor-collection-banner (INDEX:62) */
.page-head {
    background-color: var(--vw-color-light-gray, #f4f4f4);
    padding: 64px 0 56px;
    border-bottom: 1px solid var(--vw-color-border, #E2E2E2);
  }
  .page-head .vw-container {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
  .page-head-title {
    font-family: var(--vw-font-heading, var(--typeHeaderPrimary));
    font-size: 52px;
    color: var(--vw-color-charcoal, #1A2535);
    line-height: var(--vw-lh-tight, 1.1);
    margin: 0;
  }
  .page-head-text {
    font-size: 17px;
    color: var(--vw-color-muted, #6E7480);
    line-height: var(--vw-lh-relaxed, 1.7);
    max-width: 720px;
    margin: 0;
  }
  /* Background-image variant — dynamic values arrive as inline custom properties. */
  .page-head--banner {
    position: relative;
    min-height: var(--ph-min-h, 320px);
    display: flex;
    align-items: center;
    background-color: var(--vw-color-charcoal, #1A2535);
    background-image: var(--ph-banner-image);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border-bottom: 0;
    overflow: hidden;
  }
  .page-head--banner::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: rgba(17, 17, 17, var(--ph-overlay, 0.35));
    z-index: 0;
  }
  .page-head--banner .vw-container { position: relative; z-index: 1; }
  .page-head--banner .page-head-title,
  .page-head--banner .eyebrow { color: inherit; }
  .page-head--banner .eyebrow { opacity: 0.9; }
  .page-head--banner .page-head-text { color: inherit; opacity: 0.88; }
  
  @media (max-width: 768px) {
    .page-head { padding: 40px 0 32px; }
    .page-head--banner { min-height: var(--ph-min-h-m, 220px); }
    .page-head-title { font-size: 30px; }
  }
/* END_SECTION:valor-collection-banner */

/* START_SECTION:valor-collection (INDEX:63) */
/* ========================================================================
     Valor Collection — ported from reference style.css.
     Reference vars mapped to theme --vw-* tokens with literal fallbacks.
     ======================================================================== */

  /* ---------- Page Head ---------- */
  .page-head {
    background-color: var(--vw-color-light-gray, #f4f4f4);
    padding: 64px 0 56px;
    border-bottom: 1px solid var(--vw-color-border, #E2E2E2);
  }
  .page-head .vw-container {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
  .page-head-title {
    font-size: 52px;
    color: var(--vw-color-charcoal, #1A2535);
    line-height: var(--vw-lh-tight, 1.1);
    margin: 0;
  }
  .page-head-text {
    font-size: 17px;
    color: var(--vw-color-muted, #6E7480);
    line-height: var(--vw-lh-relaxed, 1.7);
    max-width: 720px;
    margin: 0;
  }

  /* ---------- Collection banner (background image variant) ----------
     Dynamic values (image URL, overlay, heights, text color) arrive as inline
     CSS custom properties on the section, so these rules stay static/cacheable. */
  .page-head--banner {
    position: relative;
    min-height: var(--ph-min-h, 320px);
    display: flex;
    align-items: center;
    background-color: var(--vw-color-charcoal, #1A2535);
    background-image: var(--ph-banner-image);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border-bottom: 0;
    overflow: hidden;
  }
  .page-head--banner::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: rgba(17, 17, 17, var(--ph-overlay, 0.35));
    z-index: 0;
  }
  .page-head--banner .vw-container {
    position: relative;
    z-index: 1;
  }
  /* Inherit the configured banner text color (set inline on the section). */
  .page-head--banner .page-head-title,
  .page-head--banner .eyebrow { color: inherit; }
  .page-head--banner .eyebrow { opacity: 0.9; }
  .page-head--banner .page-head-text { color: inherit; opacity: 0.88; }

  /* ---------- Product card base (mirrors sections/valor-products.liquid;
     those styles are section-scoped to the homepage, so we redefine the base
     here for the collection grid). ---------- */
  .cb-grid .product-card {
    display: flex;
    flex-direction: column;
    background-color: var(--vw-color-white, #fff);
    border-radius: var(--vw-br-md, 0);
    /* No overflow:hidden here — it would clip the Wishlist by Square heart at the
       top of .grid__item-image-wrapper. Image zoom is clipped by .grid-product__image-mask. */
    transition: transform var(--vw-tr-base, 0.28s ease), box-shadow var(--vw-tr-base, 0.28s ease);
  }
  .cb-grid .product-card .grid-product__image-mask {
    border-radius: var(--vw-br-md, 0);
    overflow: hidden;
  }
  .cb-grid .product-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--vw-shadow-md, 0 6px 18px rgba(17, 17, 17, 0.08));
  }
  .cb-grid .product-image-wrap {
    position: relative;
    display: block;
    width: 100%;
    overflow: hidden;
    background-color: #fff;
    text-decoration: none;
  }
  .cb-grid .product-card:hover .product-image { transform: scale(1.04); }

  /* QUICK ADD — bottom of image, slides up on hover */
  .cb-grid .product-quick-add {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 14px 18px;
    background-color: var(--vw-color-charcoal, #1A2535);
    color: #fff;
    font-family: var(--vw-font-body);
    font-size: 12px;
    font-weight: var(--vw-fw-bold, 700);
    text-transform: uppercase;
    letter-spacing: var(--vw-ls-wider, 0.14em);
    text-decoration: none;
    border: 0;
    cursor: pointer;
    opacity: 0;
    transform: translateY(100%);
    transition: opacity 0.22s ease, transform 0.22s ease, background-color 0.18s ease;
    pointer-events: none;
    z-index: 3;
  }
  .cb-grid .product-quick-add:hover {
    background-color: var(--vw-color-olive, #4A5E3A);
    color: #fff;
  }
  .cb-grid .product-card:hover .product-quick-add,
  .cb-grid .product-card:focus-within .product-quick-add {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }
  .cb-grid .product-quick-add[disabled],
  .cb-grid .product-quick-add.is-loading {
    opacity: 0.7;
    cursor: wait;
  }

  .cb-grid .product-badge {
    position: absolute;
    top: 12px;
    left: 12px;
    padding: 4px 10px;
    font-size: 10px;
    font-weight: var(--vw-fw-bold, 700);
    text-transform: var(--vw-tt-upper, uppercase);
    letter-spacing: var(--vw-ls-wider, 0.12em);
    z-index: 2;
  }
  .cb-grid .product-badge-new  { background-color: var(--vw-color-olive,    #4A5E3A); color: #fff; }
  .cb-grid .product-badge-best { background-color: var(--vw-color-coyote,   #8B7355); color: #fff; }
  .cb-grid .product-badge-fi   { background-color: var(--vw-color-charcoal, #1A2535); color: #fff; }

  /* Wishlist app block (e.g. Wishlist by Square) — top-right of the card image. */
  .cb-grid .product-wishlist {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 4;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
  }

  .cb-grid .product-info {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 20px;
  }
  .cb-grid .product-name {
    color: var(--vw-color-charcoal, #1A2535);
    line-height: var(--vw-lh-snug, 1.25);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
    margin: 0;
    font-family: var(--vw-font-heading);
    font-size: 16px;
    font-weight: var(--vw-fw-bold, 700);
    text-transform: uppercase;
    letter-spacing: var(--vw-ls-wide, 0.03em);
  }
  .cb-grid .product-name a { text-decoration: none; }
  .cb-grid .product-meta-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-top: 4px;
  }
  .cb-grid .product-price {
    font-family: var(--vw-font-heading);
    font-size: 20px;
    font-weight: var(--vw-fw-bold, 700);
    color: var(--vw-color-charcoal, #1A2535);
    letter-spacing: var(--vw-ls-wide, 0.05em);
  }
  .cb-grid .product-rating {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    font-weight: var(--vw-fw-semibold, 600);
    color: var(--vw-color-charcoal, #1A2535);
  }
  .cb-grid .product-rating .valor-icon {
    color: var(--vw-color-coyote, #8B7355);
    width: 14px;
    height: 14px;
  }
  .cb-grid .product-swatches {
    display: flex;
    flex-direction: row;
    gap: 6px;
    padding-top: 6px;
  }
  .cb-grid .swatch {
    width: 12px;
    height: 12px;
    cursor: pointer;
    padding: 0;
    border: 0;
    box-shadow: 0 0 0 1px #e0dfdf;
    transition: transform var(--vw-tr-fast, 0.18s ease), box-shadow var(--vw-tr-fast, 0.18s ease);
  }
  .cb-grid .swatch:hover { transform: scale(1.15); }
  .cb-grid .swatch.is-active {
    box-shadow: 0 0 0 1px #FFFFFF, 0 0 0 2px #4A5E3A;
  }

  /* ---------- Toolbar (sticky) ---------- */
  .collection-toolbar {
    width: 100%;
    display: flex;
    justify-content: center;
    background-color: var(--vw-color-white, #fff);
    border-bottom: 1px solid var(--vw-color-border, #E2E2E2);
    padding: 16px 0;
    position: sticky;
    top: 61px;
    z-index: 3;
  }
  .ctb-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
  }
  .ctb-filter-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    border: 1px solid var(--vw-color-border, #E2E2E2);
    background-color: var(--vw-color-white, #fff);
    color: var(--vw-color-charcoal, #1A2535);
    font-size: 13px;
    font-weight: var(--vw-fw-bold, 700);
    text-transform: var(--vw-tt-upper, uppercase);
    letter-spacing: var(--vw-ls-wider, 0.14em);
    cursor: pointer;
    transition: border-color var(--vw-tr-fast, 0.18s ease);
  }
  .ctb-filter-toggle:hover { border-color: var(--vw-color-charcoal, #1A2535); }
  .ctb-filter-toggle .valor-icon { width: 16px; height: 16px; }
  .ctb-count {
    font-size: 13px;
    color: var(--vw-color-muted, #6E7480);
    text-transform: var(--vw-tt-upper, uppercase);
    letter-spacing: var(--vw-ls-wider, 0.14em);
  }
  .ctb-count strong { color: var(--vw-color-charcoal, #1A2535); font-weight: var(--vw-fw-bold, 700); }
  .ctb-cluster {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 16px;
  }
  .ctb-sort {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--vw-color-muted, #6E7480);
    text-transform: var(--vw-tt-upper, uppercase);
    letter-spacing: var(--vw-ls-wider, 0.14em);
  }
  .ctb-sort-select {
    appearance: none;
    -webkit-appearance: none;
    padding: 10px 32px 10px 12px;
    background-color: var(--vw-color-white, #fff);
    border: 1px solid var(--vw-color-border, #E2E2E2);
    color: var(--vw-color-charcoal, #1A2535);
    font-size: 13px;
    font-weight: var(--vw-fw-bold, 700);
    text-transform: none;
    letter-spacing: 0;
    cursor: pointer;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231A2535' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
    background-repeat: no-repeat;
    background-position: right 10px center;
    background-size: 14px;
  }
  .ctb-sort-select:hover,
  .ctb-sort-select:focus { border-color: var(--vw-color-charcoal, #1A2535); }

  /* ---------- Body Layout ---------- */
  .collection-body {
    width: 100%;
    display: flex;
    justify-content: center;
    background-color: var(--vw-color-white, #fff);
    padding: 40px 0 80px;
  }
  .cb-row {
    display: block;
    width: 100%;
  }

  /* ---------- Filter Drawer (slide-in from left) ----------
     Mobile viewport-height fix:
     - 100vh on mobile counts the browser URL bar/toolbar in the height,
       so drawer content near the bottom gets hidden behind them.
       100dvh ("dynamic viewport height") tracks the *actually visible*
       area and resolves the cut-off. 100vh is kept as a fallback for
       browsers that don't support dvh.
     - padding-bottom adds breathing room so the last filter (Price)
       can scroll fully into view above the safe-area / OS gesture bar.
     - -webkit-overflow-scrolling: touch keeps iOS momentum scrolling. */
  .cb-filters {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    max-width: 420px;
    height: 100vh;
    height: 100dvh;
    z-index: 600;
    background-color: var(--vw-color-white, #fff);
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 24px 24px calc(48px + env(safe-area-inset-bottom, 0px));
    transform: translateX(-100%);
    transition: transform var(--vw-tr-base, 0.28s ease);
    box-shadow: var(--vw-shadow-lg, 0 18px 42px rgba(17,17,17,0.14));
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }
  .cb-filters.is-open { transform: translateX(0); }

  .cb-filters-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 0 16px;
    margin-bottom: 16px;
    border-bottom: 1px solid var(--vw-color-border, #E2E2E2);
  }
  .cb-filters-title {
    font-family: var(--vw-font-heading);
    font-size: 20px;
    font-weight: var(--vw-fw-bold, 700);
    text-transform: var(--vw-tt-upper, uppercase);
    color: var(--vw-color-charcoal, #1A2535);
  }
  .cb-filters-close {
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--vw-color-charcoal, #1A2535);
    background: none;
    border: 0;
    cursor: pointer;
    font-size: 20px;
  }
  .cb-filters-close .valor-icon { width: 18px; height: 18px; }

  .cb-active-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding: 12px 0 16px;
    border-bottom: 1px solid var(--vw-color-border, #E2E2E2);
    margin-bottom: 8px;
  }
  .cb-active-label {
    font-size: 12px;
    text-transform: var(--vw-tt-upper, uppercase);
    letter-spacing: var(--vw-ls-wider, 0.14em);
    color: var(--vw-color-muted, #6E7480);
  }
  .cb-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    background-color: var(--vw-color-light-gray, #f4f4f4);
    color: var(--vw-color-charcoal, #1A2535);
    font-size: 12px;
    font-weight: var(--vw-fw-semibold, 600);
    text-decoration: none;
    cursor: pointer;
    transition: background-color var(--vw-tr-fast, 0.18s ease), color var(--vw-tr-fast, 0.18s ease);
  }
  .cb-chip:hover { background-color: var(--vw-color-charcoal, #1A2535); color: var(--vw-color-white, #fff); }
  .cb-chip .valor-icon { width: 12px; height: 12px; }
  .cb-clear {
    margin-left: auto;
    font-size: 12px;
    text-transform: var(--vw-tt-upper, uppercase);
    letter-spacing: var(--vw-ls-wider, 0.14em);
    color: var(--vw-color-coyote, #8B7355);
    font-weight: var(--vw-fw-bold, 700);
    text-decoration: underline;
    text-underline-offset: 3px;
  }
  .cb-clear:hover { color: var(--vw-color-charcoal, #1A2535); }

  .cb-group {
    border-bottom: 1px solid var(--vw-color-border, #E2E2E2);
    padding: 16px 0;
  }
  .cb-group-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    list-style: none;
    cursor: pointer;
    font-family: var(--vw-font-heading);
    font-size: 14px;
    font-weight: var(--vw-fw-bold, 700);
    text-transform: var(--vw-tt-upper, uppercase);
    letter-spacing: var(--vw-ls-wider, 0.14em);
    color: var(--vw-color-charcoal, #1A2535);
  }
  .cb-group-head::-webkit-details-marker { display: none; }
  .cb-group-head .valor-icon {
    transition: transform var(--vw-tr-fast, 0.18s ease);
    width: 14px;
    height: 14px;
    color: var(--vw-color-muted, #6E7480);
  }
  .cb-group[open] .cb-group-head .valor-icon { transform: rotate(180deg); }
  .cb-group-body {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding-top: 16px;
  }

  /* Checkbox */
  .cb-check {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    font-size: 14px;
    color: var(--vw-color-charcoal, #1A2535);
    margin:0;
  }
  .cb-check input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
  }
  .cb-check-box {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    background-color: var(--vw-color-white, #fff);
    border: 1px solid var(--vw-color-border, #E2E2E2);
    display: flex;
    align-items: center;
    justify-content: center;
    color: transparent;
    transition: background-color var(--vw-tr-fast, 0.18s ease), border-color var(--vw-tr-fast, 0.18s ease), color var(--vw-tr-fast, 0.18s ease);
  }
  .cb-check-box .valor-icon { width: 12px; height: 12px; }
  .cb-check input:checked ~ .cb-check-box {
    background-color: var(--vw-color-olive, #4A5E3A);
    border-color: var(--vw-color-olive, #4A5E3A);
    color: var(--vw-color-white, #fff);
  }
  .cb-check em {
    color: var(--vw-color-muted, #6E7480);
    font-style: normal;
    margin-left: 4px;
    font-size: 12px;
  }

  /* Min/max price row */
  .cb-size-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
  }
  .cb-price-input:focus {
    outline: none;
    border-color: var(--vw-color-charcoal, #1A2535);
  }

  /* Color row */
  .cb-color {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    margin: 0;
  }
  .cb-color input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
  }
  .cb-color-dot {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 2px solid var(--vw-color-border, #E2E2E2);
    flex-shrink: 0;
    transition: border-color var(--vw-tr-fast, 0.18s ease), box-shadow var(--vw-tr-fast, 0.18s ease);
  }
  .cb-color input:checked ~ .cb-color-dot {
    border-color: var(--vw-color-charcoal, #1A2535);
    box-shadow: 0 0 0 2px var(--vw-color-white, #fff) inset, 0 0 0 1px var(--vw-color-olive, #4A5E3A);
  }
  .cb-color-name {
    font-size: 13px;
    color: var(--vw-color-charcoal, #1A2535);
  }

  /* Category links — navigate to other collections */
  .cb-cat {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    font-size: 14px;
    color: var(--vw-color-charcoal, #1A2535);
    text-decoration: none;
    text-transform: capitalize;
    transition: color var(--vw-tr-fast, 0.18s ease);
  }
  .cb-cat:hover { color: var(--vw-color-olive, #4A5E3A); }
  .cb-cat em {
    flex-shrink: 0;
    color: var(--vw-color-muted, #6E7480);
    font-style: normal;
    font-size: 12px;
  }
  .cb-cat.is-active {
    font-weight: var(--vw-fw-bold, 700);
    color: var(--vw-color-olive, #4A5E3A);
  }
  .cb-cat.is-active em { color: var(--vw-color-olive, #4A5E3A); }

  /* ---------- Results Grid ---------- */
  .cb-results {
    display: flex;
    flex-direction: column;
    gap: 32px;
  }
  .cb-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
  }
  .cb-grid .product-card {
    flex: none;
    min-width: 0;
    border: 1px solid var(--vw-color-border, #E2E2E2);
  }
  .cb-grid .product-card:hover { border-color: transparent; }
  .cb-grid .product-name a { color: var(--vw-color-charcoal, #1A2535); }
  .cb-grid .product-name a:hover { color: var(--vw-color-olive, #4A5E3A); }
  .cb-grid .product-image-link {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
  }
  .cb-grid .product-image {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
  }

  /* ---------- Pagination ---------- */
  .cb-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
  }
  .cb-page {
    min-width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 10px;
    background-color: var(--vw-color-white, #fff);
    border: 1px solid var(--vw-color-border, #E2E2E2);
    color: var(--vw-color-charcoal, #1A2535);
    font-family: var(--vw-font-heading);
    font-size: 14px;
    font-weight: var(--vw-fw-bold, 700);
    text-decoration: none;
    transition: background-color var(--vw-tr-fast, 0.18s ease), color var(--vw-tr-fast, 0.18s ease), border-color var(--vw-tr-fast, 0.18s ease);
  }
  .cb-page:hover:not([disabled]):not(.is-active) { border-color: var(--vw-color-charcoal, #1A2535); }
  .cb-page.is-active {
    background-color: var(--vw-color-charcoal, #1A2535);
    border-color: var(--vw-color-charcoal, #1A2535);
    color: var(--vw-color-white, #fff);
  }
  .cb-page[disabled] {
    color: var(--vw-color-muted, #6E7480);
    cursor: not-allowed;
    opacity: 0.5;
  }
  .cb-page-dots {
    color: var(--vw-color-muted, #6E7480);
    padding: 0 6px;
  }

  /* ---------- Filter Drawer Backdrop ---------- */
  .cb-filter-backdrop {
    position: fixed;
    inset: 0;
    background-color: var(--vw-color-overlay, rgba(17,17,17,0.55));
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--vw-tr-base, 0.28s ease);
    z-index: 599;
  }
  .cb-filter-backdrop.is-open {
    opacity: 1;
    pointer-events: auto;
  }
  label.ctb-sort {
    margin: 0;
  }
  .cb-check span, span.cb-color-name {
    text-transform: capitalize;
    letter-spacing: 0.1px;
  }

  /* ---------- Responsive ---------- */
  @media (max-width: 1100px) {
    .cb-grid { grid-template-columns: repeat(3, 1fr); }
    .page-head-title { font-size: 36px; }
  }
  @media (max-width: 900px) {
    .cb-filters { max-width: min(360px, 92vw); }
  }
  @media (max-width: 768px) {
    .cb-grid {
      grid-template-columns: repeat(2, 1fr);
      gap: 12px;
    }
    .page-head { padding: 40px 0 32px; }
    .page-head--banner { min-height: var(--ph-min-h-m, 220px); }
    .page-head-title { font-size: 30px; }
    .ctb-cluster {
      width: 100%;
      margin-left: 0;
      justify-content: space-between;
    }
    .ctb-sort { flex: 1; }
    .ctb-sort-select { flex: 1; }
    .cb-page {
      min-width: 36px;
      height: 36px;
      font-size: 13px;
    }
    .page-head-text { 
      font-size: 14px;
    }
    .cb-grid .product-info {
      padding: 12px;
      gap: 6px;
    }
    .cb-grid .product-name {
      font-size: 14px;
    }
    .cb-grid .product-price {
      font-size: 16px;
    }
  }
  @media (max-width: 768px) { 
    .collection-toolbar { 
      top: 53px;
    }
  }
/* END_SECTION:valor-collection */

/* START_SECTION:valor-connection (INDEX:64) */
.connection-section {
    background-color: var(--vw-color-light-gray, #f4f4f4);
    padding: var(--vw-sp-80, 80px) 0;
  }

  .connection-row {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: var(--vw-sp-72, 72px);
  }

  .connection-media {
    flex: 1;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--vw-sp-12, 12px);
  }

  .connection-media-stack {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 60%;
    flex-shrink: 0;
  }

  .connection-image {
    display: block;
    border-radius: 0;
    width: 100%;
    height: auto;
    object-fit: contain;
  }
  .connection-media-stack .connection-image { width: 100%; height: auto; }
  .connection-media > .connection-image { width: 40%; height: auto; }

  .connection-content {
    flex: 0 0 360px;
    max-width: 360px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: var(--vw-sp-20, 20px);
  }

  /* connection-text: .p17 utility class supplies font-size */
  .connection-text {
    color: var(--vw-color-muted, #6E7480);
    line-height: var(--vw-lh-relaxed, 1.65);
    margin: 0;
  }
  .connection-text strong {
    color: var(--vw-color-charcoal, #1A2535);
    font-weight: var(--vw-fw-bold, 700);
  }

  .connection-cta-row {
    display: flex;
    flex-direction: row;
    gap: var(--vw-sp-12, 12px);
    flex-wrap: wrap;
    padding-top: var(--vw-sp-12, 12px);
  }

  @media (max-width: 991px) {
    .connection-row {
      flex-direction: column;
      gap: var(--vw-sp-40, 40px);
    }
    .connection-content { flex: none; max-width: 100%; }
  }
  @media (max-width: 600px) {
    .connection-section { padding: var(--vw-sp-56, 56px) 0; }
    /* Keep both images side-by-side on mobile (don't stack) */
    .connection-media {
      flex-direction: row;
      align-items: center;
      gap: var(--vw-sp-12, 12px);
    }
    .connection-media-stack { width: 60%; }
    .connection-media > .connection-image { width: 40%; }
  }
/* END_SECTION:valor-connection */

/* START_SECTION:valor-contact-form (INDEX:65) */
.contact-section {
    background-color: var(--vw-color-white, #FFFFFF);
  }
  .contact-row {
    display: grid;
    grid-template-columns: minmax(0,0.9fr) minmax(0,1.2fr);
    gap: clamp(24px, 4vw, 48px);
    align-items: flex-start;
  }

  /* ---------- Info column (dark card) ---------- */
  .contact-info {
    display: flex;
    flex-direction: column;
    gap: 32px;
    background-color: var(--vw-color-charcoal, #1A2535);
    color: var(--vw-color-white, #FFFFFF);
    padding: clamp(24px, 3.4vw, 48px);
  }
  .contact-info .eyebrow,
  .contact-info-head .eyebrow {
    color: var(--vw-color-coyote, #8B7355);
  }
  .contact-info-head {
    display: flex;
    flex-direction: column;
    gap: var(--vw-sp-12, 12px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    padding-bottom: 24px;
  }
  .contact-info .section-title {
    color: var(--vw-color-white, #FFFFFF);
  }
  .contact-info-text {
    font-size: 15px;
    line-height: var(--vw-lh-relaxed, 1.65);
    color: #ffffffc7;
    margin: 0;
  }
  .contact-info-text strong { color: var(--vw-color-white, #FFFFFF); font-weight: var(--vw-fw-bold, 700); }

  .contact-info-list {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: var(--vw-sp-20, 20px) var(--vw-sp-20, 20px);
    list-style: none;
    padding: 0;
    margin: 0;
  }
  .contact-info-item {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: var(--vw-sp-12, 12px);
    margin: 0;
  }
  /* Olive SQUARE icon block (not circle), white icon */
  .contact-info-icon {
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--vw-color-white, #FFFFFF);
    background-color: var(--vw-color-olive, #4A5E3A);
    border-radius: 2px;
  }
  .contact-info-icon .valor-icon { width: 20px; height: 20px; }
  .contact-info-body { display: flex; flex-direction: column; gap: 2px; }
  .contact-info-label {
    font-family: var(--vw-font-body, var(--typeBasePrimary));
    font-size: 12px;
    font-weight: var(--vw-fw-bold, 700);
    text-transform: uppercase;
    letter-spacing: 0.16em;
    color: var(--vw-color-coyote, #8B7355);
    margin: 0;
  }
  .contact-info-value {
    font-size: 15px;
    line-height: 1.45;
    color: #ffffffeb;
    margin: 0;
  }
  .contact-info-value a {
    color: inherit;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: border-color 0.18s ease, color 0.18s ease;
  }
  .contact-info-value a:hover {
    color: var(--vw-color-white, #FFFFFF);
    border-bottom-color: currentColor;
  }

  .contact-info-credentials {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--vw-sp-16, 16px);
    padding-top: var(--vw-sp-16, 16px);
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    font-size: var(--vw-fs-12, 12px);
    color: rgba(255, 255, 255, 0.72);
    letter-spacing: 0.06em;
  }
  .contact-info-credentials strong {
    color: #fff;
    font-weight: var(--vw-fw-bold, 700);
    margin-right: 4px;
    letter-spacing: 0.12em;
  }
  .contact-info-credentials-divider {
    width: 1px;
    height: 12px;
    background-color: rgba(255, 255, 255, 0.18);
    display: inline-block;
  }

  .contact-info-social {
    display: flex;
    flex-direction: row;
    gap: var(--vw-sp-8, 8px);
  }
  .contact-info-social a {
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--vw-color-white, #FFFFFF);
    border: 1px solid #ffffff33;
    background-color: transparent;
    border-radius: 0px;
    transition: background-color .18s ease, color .18s ease;
  }
  .contact-info-social a:hover {
    background-color: var(--vw-color-coyote, #8B7355);
    color: var(--vw-color-white, #FFFFFF);
  }
  .contact-info-social .valor-icon { width: 18px; height: 18px; }

  /* ---------- Form column ---------- */
  .contact-form-wrap {
    background-color: var(--vw-color-light-gray, #F4F4F4);
    padding: clamp(24px, 3.4vw, 48px);
    border: 1px solid #e2e2e2;
  }
  .contact-form-head {
    display: flex;
    flex-direction: column;
    gap: var(--vw-sp-8, 8px);
    padding-bottom: var(--vw-sp-20, 20px);
    margin-bottom: var(--vw-sp-24, 24px);
    border-bottom: 1px solid var(--vw-color-border, #E2E2E2);
  }
  .contact-form-title {
    font-family: var(--vw-font-heading, var(--typeHeaderPrimary));
    font-size: clamp(20px, 2.3vw, 30px);
    font-weight: var(--vw-fw-bold, 700);
    color: var(--vw-color-charcoal, #1A2535);
    letter-spacing: -0.01em;
    line-height: 1.2;
    margin: 0;
  }
  .contact-form-success {
    background-color: rgba(74, 94, 58, 0.12);
    color: var(--vw-color-olive, #4A5E3A);
    border: 1px solid rgba(74, 94, 58, 0.3);
    padding: 12px 16px;
    margin: 0 0 var(--vw-sp-16, 16px);
    font-size: var(--vw-fs-14, 14px);
  }
  .contact-form-error {
    background-color: rgba(181, 58, 44, 0.08);
    color: #b53a2c;
    border: 1px solid rgba(181, 58, 44, 0.3);
    padding: 12px 16px;
    margin: 0 0 var(--vw-sp-16, 16px);
    font-size: var(--vw-fs-14, 14px);
  }
  .contact-form-error__list {
    list-style: none;
    padding: 0;
    margin: 0;
  }
  .contact-form-error__list li {
    line-height: 1.4;
  }
  .contact-form-error__list li + li {
    margin-top: 4px;
  }

  .contact-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--vw-sp-16, 16px);
  }
  .form-field { display: flex; flex-direction: column; gap: 8px; }
  .form-field-full { grid-column: 1 / -1; }
  .contact-section .form-field label {
    font-family: var(--vw-font-body, var(--typeBasePrimary));
    font-size: var(--vw-fs-12, 12px);
    font-weight: var(--vw-fw-bold, 700);
    text-transform: uppercase;
    letter-spacing: 0.14em;
    margin: 0;
    color: var(--vw-color-charcoal, #1A2535);
  }
  .form-optional {
    font-weight: var(--vw-fw-regular, 400);
    color: var(--vw-color-muted, #6E7480);
    margin-left: 6px;
    text-transform: none;
    letter-spacing: 0;
  }
  .form-required {
    color: #b53a2c;
    margin-left: 4px;
    font-weight: var(--vw-fw-bold, 700);
  }
  /* Per-field inline error message + invalid-state border */
  .form-field-error {
    display: none;
    margin-top: 6px;
    font-size: var(--vw-fs-12, 12px);
    color: #b53a2c;
    line-height: 1.4;
  }
  .form-field.has-error .form-field-error {
    display: block;
  }
  .form-field.has-error input,
  .form-field.has-error select,
  .form-field.has-error textarea {
    border-color: #b53a2c;
    box-shadow: 0 0 0 3px rgba(181, 58, 44, 0.08);
  }
  .form-field input[type="text"],
  .form-field input[type="email"],
  .form-field input[type="tel"],
  .form-field select,
  .form-field textarea {
    width: 100%;
    padding: 12px 14px;
    background-color: var(--vw-color-white, #FFFFFF);
    border: 1px solid var(--vw-color-border, #E2E2E2);
    border-radius: 2px;
    font-family: var(--vw-font-body, var(--typeBasePrimary));
    font-size: var(--vw-fs-14, 14px);
    color: var(--vw-color-charcoal, #1A2535);
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
  }
  .form-field textarea { resize: vertical; min-height: 140px; }
  .form-field input:focus,
  .form-field select:focus,
  .form-field textarea:focus {
    outline: none;
    border-color: var(--vw-color-olive, #4A5E3A);
    box-shadow: 0 0 0 3px rgba(74, 94, 58, 0.12);
  }

  .form-consent {
    margin-top: 4px;
  }
  .form-consent-label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-family: var(--vw-font-body, var(--typeBasePrimary));
    font-size: var(--vw-fs-13, 13px);
    font-weight: var(--vw-fw-regular, 400);
    text-transform: none;
    letter-spacing: 0;
    line-height: 1.45;
    color: var(--vw-color-muted, #6E7480);
    cursor: pointer;
  }
  .form-consent-label input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: var(--vw-color-olive, #4A5E3A);
    flex: 0 0 auto;
    margin: 0px;
  }

  .contact-form-footer {
    display: flex;
    gap: 20px;
    padding-top: var(--vw-sp-20, 20px);
    margin-top: 12px;
    border-top: 1px solid var(--vw-color-border, #E2E2E2);
    align-items: center;
  }
  .contact-form-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    align-self: flex-start;
    padding: 14px 28px;
    background-color: #4a5e3a;
    color: var(--vw-color-white, #FFFFFF);
    border: 1px solid #4a5e3a;
    border-radius: 2px;
    font-family: var(--vw-font-body, var(--typeBasePrimary));
    font-size: 14px;
    font-weight: var(--vw-fw-bold, 700);
    text-transform: uppercase;
    letter-spacing: 0.14em;
    cursor: pointer;
    transition: background-color 0.18s ease, transform 0.18s ease;
  }
  .contact-form-submit:hover {
    background-color: #3a4b2d;
    border-color: #3a4b2d;
  }
  .contact-form-submit:hover .valor-icon { transform: translateX(3px); }
  .contact-form-submit .valor-icon { transition: transform 0.18s ease; width: 16px; height: 16px; }
  .contact-form-note {
    font-size: 12px;
    line-height: 1.55;
    color: var(--vw-color-muted, #6E7480);
    margin: 0;
  }

  /* ---------- Responsive ---------- */
  @media (max-width: 991px) {
    /* Single-column stack on tablet + mobile. minmax(0, 1fr) lets each
       child shrink to fit, and the inline width/box-sizing on the cards
       prevents form inputs (which size from `width: 100%`) from forcing
       horizontal overflow past the .vw-container's right padding. */
    .contact-row {
      grid-template-columns: minmax(0, 1fr);
    }
    .contact-info,
    .contact-form-wrap {
      width: 100%;
      min-width: 0;
      max-width: 100%;
      box-sizing: border-box;
    }
    .contact-form-footer { 
      flex-direction: column;
    }
    .contact-form-submit { 
      width: 100%;
    }
  }
  @media (max-width: 600px) {
    .contact-info-list { grid-template-columns: 1fr; }
    .contact-form-grid { grid-template-columns: 1fr; }
    .contact-info { 
      gap: 24px;
    }
  }
/* END_SECTION:valor-contact-form */

/* START_SECTION:valor-featured (INDEX:66) */
.vw-featured-section {
    background-color: var(--vw-color-white, #fff);
  }

  .vw-featured-list {
    display: flex;
    flex-direction: column;
    gap: var(--vw-sp-48, 48px);
  }

  .vw-featured-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--vw-sp-48, 48px);
    align-items: center;
  }

  /* Image on the right: swap visual order of the two columns. */
  .vw-featured-card--media-right .vw-featured-media {
    order: 2;
  }
  .vw-featured-card--media-right .vw-featured-body {
    order: 1;
  }

  .vw-featured-media {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 7 / 4.14;
    overflow: hidden;
    background-color: var(--vw-color-light-gray, #f4f4f4);
  }

  .vw-featured-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--vw-tr-slow, 0.45s ease);
  }

  .vw-featured-card:hover .vw-featured-img {
    transform: scale(1.03);
  }

  .vw-featured-badge {
    position: absolute;
    top: var(--vw-sp-16, 16px);
    left: var(--vw-sp-16, 16px);
    display: inline-flex;
    align-items: center;
    font-family: var(--vw-font-heading);
    font-size: var(--vw-fs-11, 11px);
    font-weight: var(--vw-fw-bold, 700);
    text-transform: var(--vw-tt-upper, uppercase);
    letter-spacing: var(--vw-ls-wide, 0.05em);
    color: var(--vw-color-white, #fff);
    background-color: var(--vw-color-olive, #4a5e3a);
    padding: var(--vw-sp-6, 6px) var(--vw-sp-10, 10px);
    line-height: 1.5;
  }

  .vw-featured-body {
    display: flex;
    flex-direction: column;
    gap: var(--vw-sp-16, 16px);
  }

  .vw-featured-meta {
    display: flex;
    align-items: center;
    gap: var(--vw-sp-12, 12px);
    font-family: var(--vw-font-body);
    font-size: var(--vw-fs-12, 12px);
    font-weight: var(--vw-fw-semibold, 600);
    text-transform: var(--vw-tt-upper, uppercase);
    letter-spacing: var(--vw-ls-wide, 0.05em);
    color: var(--vw-color-muted, #6e7480);
    line-height: 1.5;
  }

  .vw-featured-meta time {
    white-space: nowrap;
  }

  .vw-featured-meta-dot {
    flex: none;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background-color: var(--vw-color-coyote, #8b7355);
  }

  .vw-featured-title {
    font-family: var(--vw-font-heading);
    font-weight: var(--vw-fw-bold, 700);
    line-height: var(--vw-lh-tight, 1.1);
    color: var(--vw-color-charcoal, #1a2535);
    margin: 0;
  }

  .vw-featured-title a {
    color: inherit;
    text-decoration: none;
    transition: color var(--vw-tr-fast, 0.18s ease);
  }

  .vw-featured-title a:hover {
    color: var(--vw-color-olive, #4a5e3a);
  }

  .vw-featured-excerpt {
    font-size: var(--vw-fs-17, 17px);
    line-height: var(--vw-lh-relaxed, 1.65);
    color: var(--vw-color-muted, #6e7480);
    max-width: 56ch;
    margin: 0;
  }
  .vw-featured-excerpt p {
    margin-bottom: 0;
    max-width: 600px;
    letter-spacing: -0.3px;
  }
  /* Description is rich text — collapse outer margins on its block children. */
  .vw-featured-excerpt > * {
    margin-top: 0;
  }
  .vw-featured-excerpt > *:last-child {
    margin-bottom: 0;
  }

  .vw-featured-readmore {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: var(--vw-sp-8, 8px);
    font-family: var(--vw-font-heading);
    font-size: var(--vw-fs-13, 13px);
    font-weight: var(--vw-fw-bold, 700);
    text-transform: var(--vw-tt-upper, uppercase);
    letter-spacing: var(--vw-ls-wide, 0.05em);
    color: var(--vw-color-olive, #4a5e3a);
    text-decoration: none;
    transition: gap var(--vw-tr-fast, 0.18s ease), color var(--vw-tr-fast, 0.18s ease);
    line-height: 1.5;
  }

  .vw-featured-readmore:hover {
    gap: var(--vw-sp-12, 12px);
    color: var(--vw-color-olive-dark, #3a4b2d);
  }

  .vw-featured-readmore .valor-icon {
    width: 1em;
    height: 1em;
  }

  /* ---------- Responsive ---------- */
  @media (max-width: 1024px) {
    .vw-featured-card {
      grid-template-columns: 1fr;
      gap: var(--vw-sp-24, 24px);
    }
    /* When stacked, the image always sits on top regardless of side setting. */
    .vw-featured-card--media-right .vw-featured-media,
    .vw-featured-card--media-right .vw-featured-body {
      order: 0;
    }
    .vw-featured-media {
      aspect-ratio: 16 / 10;
    }
  }

  @media (max-width: 480px) {
    .vw-featured-media {
      aspect-ratio: 4 / 3;
    }
  }
/* END_SECTION:valor-featured */

/* START_SECTION:valor-fi (INDEX:67) */
.fi-section {
    position: relative;
    width: 100%;
    min-height: 100vh;
    min-height: 100dvh;
    padding: var(--vw-sp-120, 120px) 0;
    /* padding: 100px 0 var(--vw-sp-120, 120px) 0; */
    background-color: var(--vw-color-charcoal, #1a2535);
    color: var(--vw-color-white, #fff);
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    box-sizing: border-box;
  }
  /* Fixed (parallax) background — image stays put while content scrolls over it.
     The image URL is set per-section in the scoped style block above; here we
     handle sizing + the fixed attachment. */
  .fi-bg {
    position: absolute;
    inset: 0;
    z-index: 1;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    /* Default to scroll — iOS/iPadOS Safari renders background-attachment: fixed
       broken (wrong size/position), which is why it failed on iPad. */
    background-attachment: scroll;
  }
  /* Enable the parallax fixed background ONLY on real desktops (fine pointer +
     hover), so touch devices — iPad included — never hit the broken fixed path. */
  @media (min-width: 992px) and (hover: hover) and (pointer: fine) {
    .fi-bg {
      background-attachment: fixed;
    }
  }

  .fi-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
      90deg,
      rgba(17, 17, 17, 0.55) 0%,
      rgba(17, 17, 17, 0.35) 40%,
      rgba(17, 17, 17, 0.1) 80%,
      rgba(17, 17, 17, 0) 100%
    );
    z-index: 2;
  }

  .fi-top-texture {
    position: absolute;
    top: -1px;
    left: 0;
    width: 100%;
    height: auto;
    object-fit: cover;
    object-position: top center;
    pointer-events: none;
    z-index: 2;
  }

  .fi-mountain {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: auto;
    object-fit: cover;
    object-position: bottom center;
    pointer-events: none;
    z-index: 2;
  }

  .fi-section .vw-container {
    position: relative;
    z-index: 3;
    align-items: flex-start;
  }

  .fi-content {
    display: flex;
    flex-direction: column;
    gap: var(--vw-sp-20, 20px);
    max-width: 620px;
    /* padding-top: 50px; */
  }

  /* Eyebrow with translucent pill background. Color = white-ish. */
  .fi-eyebrow {
    display: inline-flex;
    align-self: flex-start;
    padding: var(--vw-sp-6, 6px) var(--vw-sp-12, 12px);
    background-color: rgba(0, 0, 0, 0.65);
    color: var(--vw-color-white, #fff);
    border-left: 2px solid var(--vw-color-olive, #4a5e3a);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
  }

  /* fi-text: .p17 utility class supplies font-size */
  .fi-text {
    line-height: var(--vw-lh-relaxed, 1.65);
    color: rgba(255, 255, 255, 0.95);
    margin: 0;
  }

  /* Module callout */
  .fi-module-callout {
    display: inline-flex;
    align-self: flex-start;
    align-items: stretch;
    background-color: rgba(0, 0, 0, 0.55);
    border: 1px solid rgba(74, 94, 58, 0.6);
    border-radius: var(--vw-br-xs, 0);
    overflow: hidden;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.3);
    transition: transform var(--vw-tr-fast, 0.18s ease), box-shadow var(--vw-tr-fast, 0.18s ease);
  }
  .fi-module-callout:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.4);
  }

  .fi-module-price {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    padding: var(--vw-sp-12, 12px) var(--vw-sp-20, 20px);
    background-color: var(--vw-color-olive, #4a5e3a);
    color: var(--vw-color-white, #fff);
    line-height: 1;
  }
  /* Big price number — keep static-large since it's a unique element */
  .fi-module-price-amt {
    font-family: var(--vw-font-heading);
    font-size: 30px;
    font-weight: var(--vw-fw-bold, 700);
    line-height: 1;
  }
  .fi-module-price-label {
    font-size: var(--vw-fs-10, 10px);
    font-weight: var(--vw-fw-bold, 700);
    text-transform: var(--vw-tt-upper, uppercase);
    letter-spacing: var(--vw-ls-widest, 0.18em);
    opacity: 0.9;
  }

  .fi-module-info {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
    padding: var(--vw-sp-12, 12px) var(--vw-sp-20, 20px);
  }
  .fi-module-info-title {
    font-family: var(--vw-font-heading);
    font-size: 16px;
    font-weight: var(--vw-fw-bold, 700);
    color: var(--vw-color-white, #fff);
    text-transform: var(--vw-tt-upper, uppercase);
    letter-spacing: var(--vw-ls-wide, 0.05em);
  }
  .fi-module-info-sub {
    font-size: var(--vw-fs-12, 12px);
    color: rgba(255, 255, 255, 0.7);
  }

  .fi-cta-row {
    display: flex;
    flex-direction: row;
    gap: var(--vw-sp-12, 12px);
    flex-wrap: wrap;
    padding-top: var(--vw-sp-12, 12px);
  }

  @media (max-width: 991px) {
    .fi-section {
      padding: var(--vw-sp-96, 96px) 0;
      background-attachment: scroll;
    }
  }
  @media (max-width: 768px) {
    /* Mobile: stacked layout — image banner on top (in normal flow), content
       below on solid charcoal. */
    .fi-section {
      display: block;
      min-height: 0;
      padding: 0;
      background-color: var(--vw-color-charcoal, #1a2535);
    }
    .fi-bg {
      position: relative;
      inset: auto;
      width: 100%;
      aspect-ratio: 4 / 3;
      background-attachment: scroll;
      background-position: bottom;
    }
    .fi-overlay,
    .fi-top-texture,
    .fi-mountain {
      display: none;
    }
    .fi-section .vw-container {
      padding-top: var(--vw-sp-40, 40px);
      padding-bottom: var(--vw-sp-56, 56px);
    }
    .fi-content {
      max-width: 100%;
    }
    .fi-cta-row {
      width: 100%;
      flex-direction: column;
    }
    .fi-cta-row .vw-btn {
      width: 100%;
    }
    body .fi-module-info-title {
      font-size: 14px;
    }
    body .fi-module-price-amt {
      font-size: 20px;
    }
  }
/* END_SECTION:valor-fi */

/* START_SECTION:valor-hero (INDEX:68) */
@media only screen and (max-width: 1299px) {
    body .hero-section {
      height: 100%;
    }
  }
  .hero-section {
    position: relative;
    width: 100%;
    height: 100vh;
    height: 100dvh;
    min-height: 600px;
    padding: calc(var(--vw-announcement-h, 42px) + var(--vw-sp-96, 96px)) 0 var(--vw-sp-80, 80px);
    background-color: var(--vw-color-charcoal, #1A2535);
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
  }

  .hero-bg-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
  }

  .hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
      90deg,
      rgba(17, 17, 17, calc(var(--vw-hero-overlay-start, 0.75))) 0%,
      rgba(17, 17, 17, calc(var(--vw-hero-overlay-start, 0.75) * 0.73)) 30%,
      rgba(17, 17, 17, 0) 60%
    );
    z-index: 2;
  }

  .hero-section .vw-container {
    position: relative;
    z-index: 3;
    align-items: flex-start;
  }

  .hero-content {
    display: flex;
    flex-direction: column;
    gap: var(--vw-sp-24, 24px);
    max-width: 760px;
  }

  /* Hero title: <h1> sizing + font-family come from global theme typography
     (--font-h1-d / --font-h1-m for size, --typeHeaderPrimary for family).
     We only override the color (white on dark bg) + tighten line-height. */
  .hero-title {
    color: #fff;
    line-height: var(--vw-lh-tight, 1.1);
    letter-spacing: var(--vw-ls-wide, -0.02em);
    margin: 0;
  }

  /* Hero body: .p18 utility class supplies responsive font-size from the
     global Paragraph 18 setting. We only override color + line-height + max-width. */
  .hero-text {
    color: rgba(255, 255, 255, 0.82);
    line-height: var(--vw-lh-relaxed, 1.65);
    max-width: 620px;
    margin: 0;
  }

  .hero-cta-row {
    display: flex;
    flex-direction: row;
    gap: var(--vw-sp-12, 12px);
    flex-wrap: wrap;
    padding-top: var(--vw-sp-8, 8px);
  }

  @media (max-width: 991px) {
    .hero-content {
      max-width: 600px;
    }
    /* Tablet (incl. iPad portrait): full 100dvh crops the image to a tall sliver.
       Cap to a banner height so the background image composition is preserved. */
    .hero-section {
      height: auto;
      min-height: 72vh;
    }
    /* Center the background image on tablet/iPad so it isn't cropped to one side. */
    .hero-bg-img {
      object-position: center center;
    }
  }

  @media (max-width: 768px) {
    .hero-section {
      height: auto;
      min-height: 0;
      padding: 0;
      flex-direction: column;
      align-items: stretch;
    }
    .hero-bg-img {
      position: relative;
      inset: auto;
      width: 100%;
      height: 520px;
    }
    .hero-overlay {
      display: none;
    }
    .hero-section .vw-container {
      padding-top: var(--vw-sp-32, 32px);
      padding-bottom: var(--vw-sp-32, 32px);
    }
    .hero-content {
      gap: var(--vw-sp-16, 16px);
      max-width: 100%;
    }
    .hero-cta-row {
      width: 100%;
    }
    .hero-cta-row .vw-btn {
      flex: 1;
      padding: var(--vw-sp-12, 12px) var(--vw-sp-16, 16px);
      font-size: var(--vw-fs-12, 12px);
    }
  }

  @media (max-width: 480px) {
    .hero-cta-row {
      flex-direction: column;
    }
    .hero-cta-row .vw-btn {
      width: 100%;
    }
  }
/* END_SECTION:valor-hero */

/* START_SECTION:valor-icon-text (INDEX:69) */
.vw-it {
    background-color: var(--vw-color-light-gray, #F4F4F4);
  }
  .vw-it__head {
    text-align: center;
    max-width: 46rem;
    margin: 0 auto var(--vw-sp-40, 40px);
  }
  .vw-it__eyebrow {
    display: block;
    font-family: var(--vw-font-body, sans-serif);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--vw-color-coyote, #8B7355);
    margin-bottom: var(--vw-sp-12, 12px);
  }
  .vw-it__heading {
    font-family: var(--vw-font-heading, sans-serif);
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    line-height: 1.1;
    color: var(--vw-color-charcoal, #1A2535);
    margin: 0;
  }
  .vw-it__subheading {
    font-family: var(--vw-font-body, sans-serif);
    font-size: 1rem;
    line-height: 1.55;
    color: #6E7480;
    margin: var(--vw-sp-12, 12px) 0 0;
  }

  /* Grid: cells sit on a 1px border-colored background so the gaps read as
     clean separating lines (a table look). */
  .vw-it__grid {
    display: grid;
    gap: 1px;
    background-color: var(--vw-color-border, #E2E2E2);
    border: 1px solid var(--vw-color-border, #E2E2E2);
  }

  .vw-it__cell {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--vw-sp-16, 16px);
    padding: clamp(1.25rem, 3vw, 2rem);
    background-color: #F7F5F0;
    text-decoration: none;
    min-width: 0;
    transition: background-color 0.2s ease;
  }
  a.vw-it__cell {
    cursor: pointer;
  }
  a.vw-it__cell:hover {
    background-color: var(--vw-color-light-gray, #FBFAF7);
  }
  a.vw-it__cell:hover .vw-it__icon {
    color: var(--vw-color-olive, #4A5E3A);
  }
  a.vw-it__cell:focus-visible {
    outline: 2px solid var(--vw-color-coyote, #8B7355);
    outline-offset: -2px;
  }

  .vw-it__icon {
    display: inline-flex;
    color: var(--vw-color-coyote, #8B7355);
    line-height: 0;
    transition: color 0.2s ease;
  }
  .vw-it__icon svg {
    width: 30px;
    height: 30px;
    display: block;
  }
  .vw-it__icon-img {
    width: 30px;
    height: 30px;
    object-fit: contain;
    display: block;
  }

  .vw-it__title {
    font-family: var(--vw-font-heading, sans-serif);
    font-size: 0.9375rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    line-height: 1.3;
    color: var(--vw-color-charcoal, #1A2535);
    margin: 0;
  }

  .vw-it__text {
    font-family: var(--vw-font-body, sans-serif);
    font-size: 0.875rem;
    line-height: 1.55;
    color: #6E7480;
    margin: 0;
  }
  .vw-it__text > *:first-child { margin-top: 0; }
  .vw-it__text > *:last-child { margin-bottom: 0; }

  @media (max-width: 768px) {
    .vw-it__title { font-size: 0.875rem; }
  }
/* END_SECTION:valor-icon-text */

/* START_SECTION:valor-instagram (INDEX:70) */
.instagram-section {
    background-color: var(--vw-color-white, #fff);
    padding: var(--vw-sp-80, 80px) 0;
  }
  .instagram-section .eyebrow i {
    font-size: var(--vw-fs-16, 16px);
  }

  .instagram-grid {
    display: flex;
    flex-direction: row;
    gap: var(--vw-sp-12, 12px);
    flex-wrap: wrap;
  }

  .instagram-post {
    flex: 1 1 calc((100% - var(--vw-sp-12, 12px) * 5) / 6);
    min-width: auto;
    aspect-ratio: 1 / 1;
    position: relative;
    overflow: hidden;
    border-radius: var(--vw-br-sm, 0);
    background-color: var(--vw-color-light-gray, #f4f4f4);
    display: flex;
    text-decoration: none;
  }

  .instagram-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--vw-tr-slow, 0.45s ease);
  }
  .instagram-post:hover .instagram-image { transform: scale(1.08); }

  .instagram-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--vw-sp-12, 12px);
    background-color: rgba(17, 17, 17, 0.6);
    color: var(--vw-color-white, #fff);
    opacity: 0;
    transition: opacity var(--vw-tr-base, 0.28s ease);
    padding: var(--vw-sp-12, 12px);
  }
  .instagram-post:hover .instagram-overlay,
  .instagram-post:focus-within .instagram-overlay {
    opacity: 1;
  }
  .instagram-overlay > i {
    font-size: 32px;
    color: var(--vw-color-white, #fff);
  }

  .instagram-stats {
    display: flex;
    flex-direction: row;
    gap: var(--vw-sp-16, 16px);
    font-size: var(--vw-fs-13, 13px);
    font-weight: var(--vw-fw-semibold, 600);
  }
  .instagram-stats span {
    display: inline-flex;
    align-items: center;
    gap: var(--vw-sp-6, 6px);
  }
  .instagram-stats i {
    color: var(--vw-color-white, #fff);
    font-size: var(--vw-fs-15, 15px);
  }

  @media (max-width: 991px) {
    .instagram-post { flex: 1 1 calc((100% - var(--vw-sp-12, 12px) * 2) / 3); }
  }
  @media (max-width: 768px) {
    .instagram-section { padding: var(--vw-sp-56, 56px) 0; }
    /* Horizontal-scroll slider on mobile/tablet (matches reference behavior) */
    .instagram-grid {
      flex-wrap: nowrap;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      gap: var(--vw-sp-12, 12px);
      padding-bottom: var(--vw-sp-8, 8px);
    }
    .instagram-grid::-webkit-scrollbar { display: none; }
    .instagram-post {
      flex: 0 0 45%;
      min-width: 0;
      scroll-snap-align: start;
    }
    /* Always show the overlay on touch (hover doesn't fire) */
    .instagram-post .instagram-overlay {
      opacity: 1;
      background-color: rgba(17, 17, 17, 0.35);
    }
    .instagram-post .instagram-overlay > .valor-icon {
      display: none;
    }
  }
  @media (max-width: 499px) {
    .instagram-post { flex: 0 0 80%; }
  }
/* END_SECTION:valor-instagram */

/* START_SECTION:valor-policy-card (INDEX:71) */
.policy-section { background-color: var(--vw-color-white, #FFFFFF); position: relative; }
  .policy-anchor {
    position: absolute;
    top: -80px;
    visibility: hidden;
  }
  .policy-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: clamp(20px, 2.4vw, 32px);
    align-items: flex-start;
    /* max-width: 920px; */
    margin: 0 auto;
    width: 100%;
  }
  .policy-icon {
    flex: 0 0 auto;
    width: 96px;
    height: 96px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: var(--vw-color-charcoal, #1A2535);
    color: var(--vw-color-white, #FFFFFF);
    border-radius: 2px;
  }
  .policy-icon .valor-icon { width: 44px; height: 44px; }

  .policy-body {
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
  }
  .policy-heading {
    font-family: var(--vw-font-heading, var(--typeHeaderPrimary));
    /* font-size: clamp(22px, 2.6vw, 32px); */
    font-weight: var(--vw-fw-bold, 700);
    color: var(--vw-color-charcoal, #1A2535);
    text-transform: uppercase;
    letter-spacing: -0.01em;
    line-height: 1.2;
    margin: 0;
  }
  .policy-text,
  .policy-text p {
    font-size: clamp(14px,2vw,16px);
    line-height: var(--vw-lh-relaxed, 1.65);
    color: #1A2535;

    margin: 0;
  }
  .policy-text strong {
    color: var(--vw-color-charcoal, #1A2535);
    font-weight: var(--vw-fw-bold, 700);
  }
  .policy-text p + p { margin-top: 10px; }

  /* Bullet list with check icons */
  .policy-list {
    list-style: none;
    padding: 0;
    margin: 4px 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  .policy-list li {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 12px;
    align-items: flex-start;
    font-size: var(--vw-fs-15, 15px);
    color: var(--vw-color-charcoal, #1A2535);
    margin: 0;
  }
  .policy-list__check {
    width: fit-content;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--vw-color-olive, #4A5E3A);
    flex: 0 0 auto;
    margin-top: 2px;
  }
  span.policy-list__text p {
    margin: 0;
  }
  .policy-list__check .valor-icon { width: 16px; height: 16px; }
  .policy-list__text strong { color: var(--vw-color-charcoal, #1A2535); font-weight: var(--vw-fw-bold, 700); }

  /* Note panel — info / warn variants */
  .policy-note {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 12px;
    align-items: flex-start;
    padding: 14px 18px;
    border-left: 3px solid;
    border-radius: 2px;
    margin: 4px 0 0;
    font-size: var(--vw-fs-14, 14px);
    line-height: 1.55;
  }
  .policy-note__icon { display: inline-flex; align-items: center; justify-content: center; padding-top: 4px; }
  .policy-note__icon .valor-icon { width: 18px; height: 18px; }
  .policy-note__body strong { font-weight: var(--vw-fw-bold, 700); }
  .policy-note--info {
    background-color: #4a5e3a14;
    border-color: #4A5E3A;
    color: var(--vw-color-charcoal, #1A2535);
  }
  .policy-note--info p, .policy-note--warn p {
    margin: 0;
  }
  .policy-note--info .policy-note__icon { color: var(--vw-color-charcoal, #1A2535); }
  .policy-note--warn {
    background-color: #8b73551a;
    border-color: #8b7355;
    color: var(--vw-color-charcoal, #1A2535);
  }
  /*.policy-note--warn .policy-note__icon { color: #b53a2c; }
   .policy-note--warn .policy-note__body strong { color: #8a2c20; } */

  /* CTA row */
  .policy-cta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    padding-top: 8px;
  }
  .policy-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 28px;
    background-color: var(--vw-color-olive, #4A5E3A);
    color: var(--vw-color-white, #FFFFFF);
    border: 1px solid var(--vw-color-olive, #4A5E3A);
    /* border-radius: 2px; */
    font-family: var(--vw-font-body, var(--typeBasePrimary));
    font-size: 14px;
    font-weight: var(--vw-fw-bold, 700);
    text-transform: uppercase;
    letter-spacing: 0.14em;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease;
  }
  .policy-btn:hover {
    background-color: var(--vw-color-charcoal, #1A2535);
    border-color: var(--vw-color-charcoal, #1A2535);
  }
  .policy-btn .valor-icon { width: 16px; height: 16px; transition: transform 0.18s ease; }
  .policy-btn:hover .valor-icon { transform: translateX(3px); }
  .policy-btn--style-outline {
    background-color: transparent;
    color: var(--vw-color-charcoal, #1A2535);
    border-color: var(--vw-color-charcoal, #1A2535);
  }
  .policy-btn--style-outline:hover {
    background-color: var(--vw-color-charcoal, #1A2535);
    color: var(--vw-color-white, #FFFFFF);
  }
  .policy-btn--style-link {
    background-color: transparent;
    border-color: transparent;
    color: var(--vw-color-olive, #4A5E3A);
    padding: 8px 0;
    text-transform: none;
    letter-spacing: 0;
    font-size: var(--vw-fs-15, 15px);
  }
  .policy-btn--style-link:hover {
    background-color: transparent;
    color: var(--vw-color-charcoal, #1A2535);
  }

  /* Responsive */
  @media (max-width: 600px) {
    .policy-card { grid-template-columns: 1fr; gap: var(--vw-sp-16, 16px); }
    .policy-icon { width: 64px; height: 64px; }
    .policy-icon .valor-icon { width: 30px; height: 30px; }
    body .policy-btn { 
      padding: 14px 20px;
     }
  }
/* END_SECTION:valor-policy-card */

/* START_SECTION:valor-product-tabs (INDEX:72) */
.pdt { background-color: var(--vw-color-white, #FFFFFF); }
  .pdt-head { 
    display: flex; flex-direction: column; align-items: center; text-align: center;
    gap: 8px; margin-bottom: 0;
  }
  .pdt-tabs { max-width: 100%; width: 100%; margin: 0 auto; }

  /* ---------- Section-level content alignment ----------
     Controls head + tab row + panel text. Default "left" leaves the tabs and
     body left-aligned; the head is centered by its own base rule but follows
     the section alignment when set to center/right. */
  .pdt--align-left  .pdt-head { align-items: flex-start; text-align: left; }
  .pdt--align-right .pdt-head { align-items: flex-end;   text-align: right; }
  .pdt--align-left  .pdt-tablist { justify-content: flex-start; }
  .pdt--align-center .pdt-tablist { justify-content: center; }
  .pdt--align-right .pdt-tablist { justify-content: flex-end; }
  .pdt--align-center .pdt-rte,
  .pdt--align-center .pdt-faq-list,
  .pdt--align-center .pdt-features { text-align: center; }
  .pdt--align-center .pdt-features li { padding-left: 0; }
  .pdt--align-center .pdt-features li::before { display: none; }
  .pdt--align-right .pdt-rte,
  .pdt--align-right .pdt-faq-list { text-align: right; }
  .pdt-tablist {
    display: flex; flex-wrap: wrap; gap: 4px;
    border-bottom: 1px solid var(--vw-color-border, #E2E2E2);
    margin-bottom: 28px;
  }
  .pdt-tab {
    appearance: none; background: none; border: 0;
    padding: 12px 18px;
    margin-bottom: -1px;
    font-family: var(--vw-font-body, var(--typeBasePrimary));
    font-size: var(--vw-fs-13, 13px);
    font-weight: var(--vw-fw-bold, 700);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--vw-color-muted, #6E7480);
    border-bottom: 2px solid transparent;
    cursor: pointer;
    white-space: nowrap;
    transition: color 0.18s ease, border-color 0.18s ease;
  }
  .pdt-tab:hover { color: var(--vw-color-charcoal, #1A2535); }
  .pdt-tab.is-active {
    color: var(--vw-color-charcoal, #1A2535);
    border-bottom-color: var(--vw-color-olive, #4A5E3A);
  }

  /* "Next tab" arrow — hidden by default; only shown on mobile when there are
     more tabs than fit (handled in the mobile media query below). */
  .pdt-tablist-wrap { position: relative; }
  .pdt-tab-next {
    display: none;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 1px;
    width: 38px;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    border-bottom: 2px solid var(--vw-color-olive, #4A5E3A);
    background: var(--vw-color-white, #FFFFFF);
    box-shadow: -12px 0 12px -6px rgba(17, 17, 17, 0.12);
    color: var(--vw-color-charcoal, #1A2535);
    cursor: pointer;
  }
  .pdt-tab-next svg { width: 16px; height: 16px; display: block; }

  .pdt-panel { display: none; }
  .pdt-panel.is-active { display: block; animation: pdt-fade 0.25s ease; }
  @keyframes pdt-fade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }

  .pdt-rte, .pdt-rte p {
    font-size: var(--vw-fs-15, 15px);
    line-height: var(--vw-lh-relaxed, 1.7);
    color: var(--vw-color-muted, #6E7480);
  }
  .pdt-rte p { margin: 0 0 14px; }
  .pdt-rte strong { color: var(--vw-color-charcoal, #1A2535); font-weight: var(--vw-fw-bold, 700); }
  .pdt-rte a { color: var(--vw-color-olive, #4A5E3A); text-decoration: underline; text-underline-offset: 3px; }

  .pdt-subhead {
    font-family: var(--vw-font-heading, var(--typeHeaderPrimary));
    font-size: var(--vw-fs-16, 16px);
    font-weight: var(--vw-fw-bold, 700);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--vw-color-charcoal, #1A2535);
    margin: 24px 0 12px;
  }
  .pdt-features { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
  .pdt-features li {
    display: flex; flex-direction: column; gap: 2px;
    padding-left: 16px; position: relative;
  }
  .pdt-features li::before {
    content: ''; position: absolute; left: 0; top: 8px;
    width: 6px; height: 6px; border-radius: 50%;
    background: var(--vw-color-olive, #4A5E3A);
  }
  .pdt-features strong { font-size: var(--vw-fs-15, 15px); color: var(--vw-color-charcoal, #1A2535); font-weight: var(--vw-fw-bold, 700); }
  .pdt-features span { font-size: var(--vw-fs-14, 14px); color: var(--vw-color-muted, #6E7480); line-height: 1.55; }
  .pdt-note {
    margin-top: 20px; padding: 12px 16px;
    background: var(--vw-color-light-gray, #F4F4F4);
    border-left: 3px solid var(--vw-color-olive, #4A5E3A);
    font-size: var(--vw-fs-14, 14px); color: var(--vw-color-charcoal, #1A2535);
  }
  .pdt-note a { color: var(--vw-color-olive, #4A5E3A); font-weight: var(--vw-fw-bold, 700); }

  /* Table */
  .pdt-table {
    width: 100%; border-collapse: collapse; margin: 4px 0 25px;
    font-size: var(--vw-fs-14, 14px);
  }
  .pdt-table th, .pdt-table td {
    text-align: left; padding: 14px 16px;
    border-bottom: 1px solid var(--vw-color-border, #E2E2E2);
    vertical-align: middle;
  }
  .pdt-table thead th {
    font-weight: var(--vw-fw-bold, 700);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: var(--vw-fs-12, 12px);
    color: var(--vw-color-charcoal, #1A2535);
    background: var(--vw-color-light-gray, #F4F4F4);
  }
  .pdt-table tbody th[scope="row"] {
    font-weight: var(--vw-fw-semibold, 600);
    color: var(--vw-color-charcoal, #1A2535);
    width: fit-content;
    /* background: #f4f4f4; */
  }
  .pdt-rte.rte.pdt-table-footer h4 {
    font-size: 18px;
    font-family: var(--vw-font-heading, var(--typeHeaderPrimary));
    color: #1a2535;
    padding-bottom: 8px;
    border-bottom: 1px solid #E2E2E2;
  }
  .pdt-table tbody td { color: var(--vw-color-muted, #6E7480); }
  /* Zebra striping like the reference size-guide table */
  .pdt-table tbody tr:nth-child(odd) { background: #fff; }
  .pdt-table tbody tr:nth-child(odd) th[scope="row"],
  /* .pdt-table tbody tr:nth-child(odd) td { background: transparent; } */
  .pdt-table-footer { margin-top: 16px; }

  /* 3-column table: even thirds (e.g. Size / Neck Range / Velcro Panel) */
  .pdt-table--3col tbody th[scope="row"] { width: 33.333%; }
  .pdt-table--3col th, .pdt-table--3col td { width: 33.333%; }

  /* Content alignment of the value cells (label column stays left) */
  .pdt-table--center thead th + th,
  .pdt-table--center tbody td { text-align: center; }
  .pdt-table--right  thead th + th,
  .pdt-table--right  tbody td { text-align: right; }

  /* FAQ */
  .pdt-faq-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; }
  .pdt-faq-item { padding: 16px 0; border-bottom: 1px solid var(--vw-color-border, #E2E2E2); }
  .pdt-faq-item:first-child { padding-top: 0; }
  .pdt-faq-q {
    font-family: var(--vw-font-heading, var(--typeHeaderPrimary));
    font-size: var(--vw-fs-15, 15px);
    font-weight: var(--vw-fw-bold, 700);
    color: var(--vw-color-charcoal, #1A2535);
    margin: 0 0 6px;
  }
  .pdt-faq-a { font-size: var(--vw-fs-14, 14px); line-height: 1.6; color: var(--vw-color-muted, #6E7480); margin: 0; }

  @media (max-width: 600px) {
    .pdt-tablist { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; scroll-behavior: smooth; }
    .pdt-tablist::-webkit-scrollbar { display: none; }
    /* Reveal the next-tab arrow and reserve room for it so tabs aren't hidden behind it. */
    .pdt-has-more .pdt-tab-next { display: flex; }
    .pdt-has-more .pdt-tablist { padding-right: 42px; }
    .pdt-table th, .pdt-table td { padding: 11px 12px; }
    .pdt-table tbody th[scope="row"] { width: 40%; }
    /* 3-col tables can crowd on phones — let the value cells share the rest evenly */
    .pdt-table--3col tbody th[scope="row"] { width: 34%; }
    .pdt-table--3col th, .pdt-table--3col td { width: auto; }
  }
/* END_SECTION:valor-product-tabs */

/* START_SECTION:valor-production (INDEX:73) */
.production-callout {
    padding: var(--vw-sp-56, 56px) 0;
    background-color: var(--vw-color-light-gray, #f4f4f4);
    border-top: 1px solid var(--vw-color-border, #E2E2E2);
    border-bottom: 1px solid var(--vw-color-border, #E2E2E2);
  }

  .production-callout-row {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: var(--vw-sp-40, 40px);
  }

  .production-callout-icon {
    width: 72px;
    height: 72px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background-color: var(--vw-color-olive, #4A5E3A);
    color: var(--vw-color-white, #fff);
    font-size: 32px;
    flex-shrink: 0;
  }

  .production-callout-text {
    min-width: 0;
  }

  /* production-callout-title: keep a static H3-style size (it's a unique element name,
     not a section <h2>). Wrapping in <h2> tag would also work — using static size here
     because the reference uses --fs-h3 (30px) which is between h2 and h3. */
  .production-callout-title {
    font-family: var(--vw-font-heading);
    font-size: 30px;
    font-weight: var(--vw-fw-bold, 700);
    color: var(--vw-color-charcoal, #1A2535);
    margin: var(--vw-sp-8, 8px) 0 var(--vw-sp-12, 12px);
    line-height: 1.15;
  }

  /* production-callout-body: .p15 utility class supplies font-size */
  .production-callout-body {
    line-height: var(--vw-lh-relaxed, 1.65);
    color: var(--vw-color-muted, #6E7480);
    margin: 0;
    max-width: 60ch;
  }

  .production-callout-stats {
    display: grid;
    gap: var(--vw-sp-32, 32px);
    align-items: center;
    flex-shrink: 0;
  }
  @media only screen and (min-width:1199px){
    .production-callout-stats { 
        grid-template-columns: repeat(3, auto);
    }
  }

  .production-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--vw-sp-4, 4px);
    text-align: center;
    min-width: 80px;
  }

  .production-stat-num {
    font-family: var(--vw-font-heading);
    font-size: 30px;
    font-weight: var(--vw-fw-bold, 700);
    color: var(--vw-color-olive, #4A5E3A);
    line-height: 1;
  }

  .production-stat-label {
    font-size: var(--vw-fs-11, 11px);
    font-weight: var(--vw-fw-bold, 700);
    text-transform: uppercase;
    letter-spacing: var(--vw-ls-wider, 0.12em);
    color: var(--vw-color-muted, #6E7480);
  }

  @media (max-width: 960px) {
    .production-callout-row {
      grid-template-columns: 1fr;
      gap: var(--vw-sp-24, 24px);
      text-align: center;
    }
    .production-callout-icon { margin: 0 auto; }
    .production-callout-body { margin-left: auto; margin-right: auto; }
    .production-callout-stats { display: flex; justify-content: center; gap: var(--vw-sp-24, 24px); }
  }
  /* Horizontal-scroll stats slider on small screens (matches reference) */
  @media (max-width: 560px) {
    .production-callout-stats {
      display: flex;
      flex-direction: row;
      flex-wrap: nowrap;
      grid-template-columns: none;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      gap: var(--vw-sp-24, 24px);
      padding-bottom: var(--vw-sp-8, 8px);
      justify-content: flex-start;
      width: 100%;
    }
    .production-callout-stats::-webkit-scrollbar { display: none; }
    .production-stat {
      flex: 0 0 auto;
      min-width: 120px;
      scroll-snap-align: start;
    }
  }
/* END_SECTION:valor-production */

/* START_SECTION:valor-products (INDEX:74) */
.products-section {
    background-color: var(--vw-color-light-gray, #f4f4f4);
    padding: var(--vw-sp-80, 80px) 0;
  }

  .products-row {
    display: flex;
    flex-direction: row;
    gap: var(--vw-sp-24, 24px);
    flex-wrap: wrap;
  }

  .product-card {
    flex: 1 1 calc(25% - var(--vw-sp-24, 24px));
    min-width: 240px;
    display: flex;
    flex-direction: column;
    background-color: var(--vw-color-white, #fff);
    border-radius: var(--vw-br-md, 0);
    /* No overflow:hidden here — it would clip the Wishlist by Square heart that
       sits at the top of .grid__item-image-wrapper. Image zoom is clipped by the
       inner .grid-product__image-mask instead (see below). */
    transition: transform var(--vw-tr-base, 0.28s ease), box-shadow var(--vw-tr-base, 0.28s ease);
  }
  /* Clip the image (and hover zoom) to the card's radius WITHOUT clipping the heart. */
  .product-card .grid-product__image-mask {
    border-radius: var(--vw-br-md, 0);
    overflow: hidden;
  }
  .product-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--vw-shadow-md, 0 6px 18px rgba(17, 17, 17, 0.08));
  }

  .product-image-wrap {
    position: relative;
    display: block;
    width: 100%;
    overflow: hidden;
    background-color: #fff;
    text-decoration: none;
  }
  .product-image-link {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    text-decoration: none;
  }
  .product-image,
  .product-image-link .placeholder-svg {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform var(--vw-tr-slow, 0.45s ease);
  }
  .product-card:hover .product-image { transform: scale(1.04); }

  /* QUICK ADD — sits at the bottom of the image, slides up on hover. */
  .product-quick-add {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 14px 18px;
    background-color: var(--vw-color-charcoal, #1A2535);
    color: #fff;
    font-family: var(--vw-font-body);
    font-size: 12px;
    font-weight: var(--vw-fw-bold, 700);
    text-transform: uppercase;
    letter-spacing: var(--vw-ls-wider, 0.14em);
    text-decoration: none;
    border: 0;
    cursor: pointer;
    opacity: 0;
    transform: translateY(100%);
    transition: opacity 0.22s ease, transform 0.22s ease, background-color 0.18s ease;
    pointer-events: none;
    z-index: 3;
  }
  .product-quick-add:hover {
    background-color: var(--vw-color-olive, #4A5E3A);
    color: #fff;
  }
  .product-card:hover .product-quick-add,
  .product-card:focus-within .product-quick-add {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }
  .product-quick-add[disabled],
  .product-quick-add.is-loading {
    opacity: 0.7;
    cursor: wait;
  }

  .product-badge {
    position: absolute;
    top: var(--vw-sp-12, 12px);
    left: var(--vw-sp-12, 12px);
    padding: var(--vw-sp-4, 4px) var(--vw-sp-10, 10px);
    font-size: var(--vw-fs-10, 10px);
    font-weight: var(--vw-fw-bold, 700);
    text-transform: var(--vw-tt-upper, uppercase);
    letter-spacing: var(--vw-ls-wider, 0.12em);
    border-radius: var(--vw-br-xs, 0);
  }
  .product-badge-new  { background-color: var(--vw-color-olive,    #4A5E3A); color: #fff; }
  .product-badge-best { background-color: var(--vw-color-coyote,   #8B7355); color: #fff; }
  .product-badge-fi   { background-color: var(--vw-color-charcoal, #1A2535); color: #fff; }

  /* Wishlist app block (e.g. Wishlist by Square) — top-right of the card image. */
  .product-wishlist {
    position: absolute;
    top: var(--vw-sp-8, 8px);
    right: var(--vw-sp-8, 8px);
    z-index: 4;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
  }

  .product-info {
    display: flex;
    flex-direction: column;
    gap: var(--vw-sp-8, 8px);
    padding: var(--vw-sp-20, 20px);
  }

  .product-name {
    color: var(--vw-color-charcoal, #1A2535);
    line-height: var(--vw-lh-snug, 1.25);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
    margin: 0;
    font-family: var(--vw-font-heading);
    font-size: var(--vw-fs-15, 15px);
    font-weight: var(--vw-fw-bold, 700);
    text-transform: uppercase;
    letter-spacing: var(--vw-ls-wide, 0.03em);
  }
  .product-name a { color: inherit; text-decoration: none; }

  .product-meta-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: var(--vw-sp-12, 12px);
    padding-top: var(--vw-sp-4, 4px);
  }

  .product-price {
    font-family: var(--vw-font-heading);
    font-size: 20px;
    font-weight: var(--vw-fw-bold, 700);
    color: var(--vw-color-charcoal, #1A2535);
    letter-spacing: var(--vw-ls-wide, 0.05em);
  }

  .product-rating {
    display: inline-flex;
    align-items: center;
    gap: var(--vw-sp-4, 4px);
    font-size: var(--vw-fs-13, 13px);
    font-weight: var(--vw-fw-semibold, 600);
    color: var(--vw-color-charcoal, #1A2535);
  }
  .product-rating i {
    color: var(--vw-color-coyote, #8B7355);
    font-size: var(--vw-fs-14, 14px);
  }

  .product-swatches {
    display: flex;
    flex-direction: row;
    gap: var(--vw-sp-6, 6px);
    padding-top: var(--vw-sp-6, 6px);
  }
  /* Small square swatches — matches reference's `.swatch` look */
  .swatch {
    width: 12px;
    height: 12px;
    cursor: pointer;
    padding: 0;
    border: 1px solid;
    transition: transform var(--vw-tr-fast, 0.18s ease), box-shadow var(--vw-tr-fast, 0.18s ease), border-color var(--vw-tr-fast, 0.18s ease);
  }
  .swatch:hover { transform: scale(1.15); }
  .swatch.is-active {
    box-shadow: 0 0 0 1px #FFFFFF, 0 0 0 2px #4A5E3A;
  }

  /* Slider dots — hidden on desktop, visible on mobile */
  .products-slider-dots {
    display: none;
    justify-content: center;
    gap: var(--vw-sp-8, 8px);
    padding-top: var(--vw-sp-20, 20px);
  }
  .products-slider-dot {
    width: 8px;
    height: 8px;
    border-radius: var(--vw-br-circle, 50%);
    background-color: rgba(26, 37, 53, 0.25);
    border: none;
    padding: 0;
    cursor: pointer;
    transition: background-color var(--vw-tr-fast, 0.18s ease), transform var(--vw-tr-fast, 0.18s ease);
  }
  .products-slider-dot:hover { background-color: rgba(26, 37, 53, 0.5); }
  .products-slider-dot.is-active {
    background-color: var(--vw-color-charcoal, #1A2535);
    transform: scale(1.25);
  }

  /* Quick Add modal CSS lives in assets/valor-quick-add.css (shared with valor-collection). */

  /* ---------- Responsive ----------
     Card width by viewport:
       ≥1152px   → 4 cards / row  (flex-basis 25%)
       992–1151  → 3 cards / row  (flex-basis 33.33%)
       601–991   → 2 cards / row  (flex-basis 50%)
       ≤600      → mobile slider or 1 card / row
     Without the 992–1151 rule, the row fits only 3 cards (240px min-width
     wins over the 25% flex-basis) and `flex-grow: 1` stretches the lonely
     4th card to 100% width on the next row. Forcing the 3-up basis there
     keeps a balanced 3+1 wrap with the 4th card at the same width as its
     siblings, not full-width. */
  @media (max-width: 1152px) {
    .shopify-section--valor-products .product-card { flex: 1 1 calc(33.333% - var(--vw-sp-24, 24px)); max-width: calc(33.333% - var(--vw-sp-24, 24px)); }
  }
  @media (max-width: 991px) {
    .shopify-section--valor-products .product-card { flex: 1 1 calc(50% - var(--vw-sp-24, 24px)); max-width: calc(50% - var(--vw-sp-24, 24px)); }
  }

  /* ---------- Slider mode (≤1152px when enabled) ----------
     Horizontal scroll-snap slider replaces the grid wrap on every viewport
     from desktop-medium down. Card width scales per breakpoint so the user
     sees roughly:
       992–1152 → 3 cards + small peek
       769–991  → 2 cards + small peek
       601–768  → 1.5 cards
       ≤600     → 1 card + side peek
     Dots also become visible at slider-active widths. The fallback (slider
     disabled) keeps the grid wrap behaviour from the rules above. */
  @media (max-width: 1152px) {
    .products-section[data-mobile-slider="true"] .products-row {
      flex-wrap: nowrap;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      margin: 0;
      padding: 0 0 var(--vw-sp-8, 8px);
      gap: var(--vw-sp-16, 16px);
    }
    .products-section[data-mobile-slider="true"] .products-row::-webkit-scrollbar { display: none; }
    .products-section[data-mobile-slider="true"] .product-card {
      flex: 0 0 calc(33.333% - var(--vw-sp-12, 12px));
      max-width: calc(33.333% - var(--vw-sp-12, 12px));
      min-width: 0;
      scroll-snap-align: start;
      max-width: 78%;
    }
    .products-section[data-mobile-slider="true"] .products-slider-dots { display: flex; }
  }
  @media (max-width: 991px) {
    .products-section[data-mobile-slider="true"] .product-card {
      flex: 0 0 calc(45% - var(--vw-sp-12, 12px));
      max-width: calc(45% - var(--vw-sp-12, 12px));
    }
  }
  @media (max-width: 449px) {
    .products-section[data-mobile-slider="true"] .product-card {
      flex: 0 0 66%;
      max-width: 66%;
    }
  }
  @media (max-width: 600px) {
    .products-section { padding: var(--vw-sp-56, 56px) 0; }

    .products-section[data-mobile-slider="true"] .product-card {
      flex: 0 0 78%;
      max-width: 78%;
    }
    .products-section[data-mobile-slider="true"] .product-image { height: 280px; }

    /* Fallback (slider disabled): stacked cards */
    .products-section[data-mobile-slider="false"] .product-card { flex: 1 1 100%; }
    .products-section[data-mobile-slider="false"] .product-image { height: 280px; }

    /* On touch devices the hover state never triggers — always show Quick Add */
    .product-quick-add {
      opacity: 1;
      transform: translateY(0);
      pointer-events: auto;
      padding: 12px 14px;
      font-size: 11px;
    }
  }
/* END_SECTION:valor-products */

/* START_SECTION:valor-prop65 (INDEX:75) */
.vp-prop65 { width: 100%; }
  .vp-prop65__row {
    display: flex;
    align-items: flex-start;
    gap: 16px;
  }
  .vp-prop65__icon {
    flex-shrink: 0;
    display: inline-flex;
    line-height: 0;
    margin-top: 1px;
  }
  .vp-prop65__icon svg { width: 26px; height: 26px; display: block; }
  .vp-prop65__body { display: flex; flex-direction: column; gap: 6px; }
  .vp-prop65__title {
    margin: 0;
    font-family: var(--vw-font-heading);
    font-size: 13px;
    font-weight: var(--vw-fw-bold, 700);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    line-height: 1.3;
  }
  .vp-prop65__text,
  .vp-prop65__link {
    margin: 0;
    font-family: var(--vw-font-body, var(--typeBasePrimary));
    font-size: 12px;
    line-height: 1.6;
  }
  .vp-prop65__link a {
    text-decoration: underline;
    text-underline-offset: 2px;
    transition: opacity 0.18s ease;
  }
  .vp-prop65__link a:hover { opacity: 0.7; }
  aside.vp-prop65[hidden] {
    display: none;
  }
  @media (max-width: 768px) {
    .vp-prop65__row { gap: 12px; }
    .vp-prop65__icon svg { width: 22px; height: 22px; }
    .vp-prop65__text,
    .vp-prop65__link { font-size: 13px; }
  }
/* END_SECTION:valor-prop65 */

/* START_SECTION:valor-quick-help (INDEX:76) */
.quick-help-section {
    background-color: var(--vw-color-light-gray, #F4F4F4);
  }
  .quick-help-head {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: var(--vw-sp-8, 8px);
    margin-bottom: 0;
  }
  .quick-help-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
  }
  .quick-help-card {
    display: flex;
    flex-direction: column;
    gap: var(--vw-sp-12, 12px);
    background-color: var(--vw-color-white, #FFFFFF);
    border: 1px solid var(--vw-color-border, #E2E2E2);
    border-radius: 2px;
    padding: clamp(24px, 2.4vw, 32px);
    text-decoration: none;
    color: inherit;
    transition: transform var(--vw-tr-base, 0.28s ease),
                box-shadow var(--vw-tr-base, 0.28s ease),
                border-color var(--vw-tr-base, 0.28s ease);
  }
  .quick-help-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--vw-shadow-md, 0 6px 18px rgba(17, 17, 17, 0.08));
    border-color: var(--vw-color-olive, #4A5E3A);
  }
  .quick-help-icon {
    width: 48px;
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--vw-color-white, #FFFFFF);
    background-color: var(--vw-color-olive, #4A5E3A);
    border-radius: 2px;
    transition: background-color var(--vw-tr-fast, 0.18s ease);
  }
  .quick-help-icon .valor-icon { width: 24px; height: 24px; }
  /* .quick-help-card:hover .quick-help-icon {
    background-color: var(--vw-color-charcoal, #1A2535);
  } */

  .quick-help-title {
    font-family: var(--vw-font-heading, var(--typeHeaderPrimary));
    font-size: clamp(15px,2vw, 20px);
    font-weight: var(--vw-fw-bold, 700);
    color: var(--vw-color-charcoal, #1A2535);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    line-height: 1.25;
    margin: 0;
  }
  .quick-help-text {
    font-size: 14px;
    line-height: var(--vw-lh-relaxed, 1.55);
    color: var(--vw-color-muted, #6E7480);
    margin: 0;
    flex: 1;
    letter-spacing: 0;
  }
  .quick-help-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
    font-family: var(--vw-font-body, var(--typeBasePrimary));
    font-size: 12px;
    font-weight: var(--vw-fw-bold, 700);
    color: var(--vw-color-olive, #4A5E3A);
    text-transform: uppercase;
    letter-spacing: 0.16em;
    transition: color var(--vw-tr-fast, 0.18s ease);
  }
  .quick-help-link .valor-icon {
    width: 14px;
    height: 14px;
    transition: transform var(--vw-tr-fast, 0.18s ease);
  }
  .quick-help-card:hover .quick-help-link { color: var(--vw-color-charcoal, #1A2535); }
  .quick-help-card:hover .quick-help-link .valor-icon { transform: translateX(3px); }

  /* ---------- Responsive ---------- */
  @media (max-width: 1100px) {
    .quick-help-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (max-width: 600px) {
    .quick-help-row { grid-template-columns: 1fr; }
    .quick-help-head { 
      gap: 16px;
    }
    .quick-help-icon .valor-icon {
      width: 18px;
      height: 18px;
    }
  }
/* END_SECTION:valor-quick-help */

/* START_SECTION:valor-quick-tips (INDEX:77) */
.vw-quick-tips {
    background-color: var(--vw-color-light-gray, #f4f4f4);
  }

  /* Optional intro paragraph below the heading. */
  .vw-quick-tips-intro {
    max-width: 64ch;
    font-size: var(--vw-fs-17, 17px);
    line-height: var(--vw-lh-relaxed, 1.65);
    color: var(--vw-color-muted, #6e7480);
  }
  .vw-quick-tips-intro > *:first-child {
    margin-top: 0;
  }
  .vw-quick-tips-intro > *:last-child {
    margin-bottom: 0;
  }

  /* ---------- Horizontal Shorts scroller ---------- */
  .vw-shorts-scroller {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(220px, 1fr);
    gap: var(--vw-sp-24, 24px);
    overflow-x: auto;
    padding-bottom: var(--vw-sp-12, 12px);
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: var(--vw-color-coyote, #8b7355) transparent;
  }

  .vw-shorts-scroller::-webkit-scrollbar {
    height: 6px;
  }
  .vw-shorts-scroller::-webkit-scrollbar-thumb {
    background-color: var(--vw-color-coyote, #8b7355);
  }

  .vw-short-card {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 9 / 16;
    overflow: hidden;
    background-color: var(--vw-color-charcoal, #1a2535);
    scroll-snap-align: start;
    border: 1px solid var(--vw-color-border, #e2e2e2);
    text-decoration: none;
    /* Button reset (cards are now <button> for inline playback). */
    padding: 0;
    margin: 0;
    font: inherit;
    color: inherit;
    text-align: left;
    cursor: pointer;
  }

  /* Inline YouTube embed injected on click — covers the poster + overlay. */
  .vw-short-card-video {
    position: absolute;
    inset: 0;
    z-index: 4;
    background: #000;
  }
  .vw-short-card-video iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
  }
  .vw-short-card[data-playing] .vw-short-card-play,
  .vw-short-card[data-playing] .vw-short-card-overlay,
  .vw-short-card[data-playing] .vw-short-card-img {
    opacity: 0;
    pointer-events: none;
  }

  .vw-short-card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform var(--vw-tr-slow, 0.45s ease);
  }

  .vw-short-card:hover .vw-short-card-img {
    transform: scale(1.05);
  }

  .vw-short-card-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(17, 17, 17, 0) 45%, rgba(17, 17, 17, 0.82) 100%);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: var(--vw-sp-16, 16px);
    gap: var(--vw-sp-8, 8px);
  }

  .vw-short-card-play {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 54px;
    height: 54px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(255, 255, 255, 0.92);
    color: var(--vw-color-olive, #4a5e3a);
    transition: transform var(--vw-tr-fast, 0.18s ease), background-color var(--vw-tr-fast, 0.18s ease);
  }

  .vw-short-card-play svg {
    width: 22px;
    height: 22px;
    margin-left: 2px; /* optical centering of the triangle */
  }

  .vw-short-card:hover .vw-short-card-play {
    transform: translate(-50%, -50%) scale(1.08);
    background-color: var(--vw-color-white, #fff);
  }

  .vw-short-card-label {
    position: relative;
    z-index: 1;
    font-family: var(--vw-font-heading);
    font-size: var(--vw-fs-14, 14px);
    font-weight: var(--vw-fw-semibold, 600);
    line-height: var(--vw-lh-snug, 1.25);
    color: var(--vw-color-white, #fff);
    letter-spacing: normal;
  }

  .vw-short-card-tag {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: var(--vw-sp-6, 6px);
    font-family: var(--vw-font-body);
    font-size: var(--vw-fs-11, 11px);
    font-weight: var(--vw-fw-semibold, 600);
    text-transform: var(--vw-tt-upper, uppercase);
    letter-spacing: var(--vw-ls-wide, 0.05em);
    color: rgba(255, 255, 255, 0.8);
    line-height: 16.5px;
  }

  .vw-short-card-tag .valor-icon {
    width: 1em;
    height: 1em;
  }
/* END_SECTION:valor-quick-tips */

/* START_SECTION:valor-related-products (INDEX:78) */
.vp-related { background-color: var(--vw-color-light-gray, #F4F4F4); }
  .vp-related-row {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
  }
  /* Reuses the global .product-card / .product-quick-add / swatch styles
     defined by valor-products' stylesheet. Just set the per-row flex basis. */
  .vp-related-row .product-card {
    flex: 1 1 calc(25% - var(--vw-sp-24, 24px));
    min-width: 0;
  }
  /* Wishlist app block (e.g. Wishlist by Square) — top-right of the card image. */
  .vp-related .product-image-wrap { position: relative; }
  .vp-related .product-wishlist {
    position: absolute;
    top: var(--vw-sp-8, 8px);
    right: var(--vw-sp-8, 8px);
    z-index: 4;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
  }
  @media (max-width: 1151px) {
    .vp-related-row .product-card { flex: 1 1 calc(33.333% - var(--vw-sp-24, 24px)); max-width: calc(33.333% - var(--vw-sp-24, 24px)); }
  }
  @media (max-width: 991px) {
    .vp-related-row .product-card { flex: 1 1 calc(50% - var(--vw-sp-24, 24px)); max-width: calc(50% - var(--vw-sp-24, 24px)); }
  }
  @media (max-width: 600px) {
    /* Horizontal scroll-snap slider on phones */
    .vp-related-row {
      flex-wrap: nowrap;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      padding-bottom: 8px;
    }
    .vp-related-row::-webkit-scrollbar { display: none; }
    .vp-related-row .product-card {
      flex: 0 0 78%;
      max-width: 78%;
      scroll-snap-align: start;
    }
  }
/* END_SECTION:valor-related-products */

/* START_SECTION:valor-reviews (INDEX:79) */
.reviews-section {
    background-color: var(--vw-color-light-gray, #f4f4f4);
    padding: var(--vw-sp-80, 80px) 0;
  }
  .reviews-track {
    width: 100%;
    overflow: hidden;
    cursor: grab;
    user-select: none;
    touch-action: pan-y;
  }
  .reviews-row {
    display: flex;
    flex-direction: row;
    gap: var(--vw-sp-48, 48px);
    flex-wrap: nowrap;
    transform: translateX(0);
    transition: transform var(--vw-tr-slow, 0.45s ease);
    will-change: transform;
  }
  .review-card {
    flex: 0 0 calc((100% - var(--vw-sp-48, 48px) * 2) / 3);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--vw-sp-16, 16px);
    padding: var(--vw-sp-24, 24px) var(--vw-sp-16, 16px);
    text-align: center;
    background-color: transparent;
    border: none;
    border-radius: 0;
  }
  /* Quote icon: keep static h2-ish size */
  .review-quote-icon {
    font-size: 40px;
    color: var(--vw-color-charcoal, #1A2535);
    line-height: 1;
  }
  /* review-text: .p17 utility class supplies font-size */
  .review-text {
    color: var(--vw-color-charcoal, #1A2535);
    line-height: var(--vw-lh-relaxed, 1.65);
    flex: 1;
    max-width: 480px;
    margin: 0;
  }
  .review-author-name {
    font-family: var(--vw-font-heading);
    font-size: 20px;
    font-weight: var(--vw-fw-bold, 700);
    color: var(--vw-color-charcoal, #1A2535);
    letter-spacing: var(--vw-ls-wide, 0.05em);
  }
  .review-author-tag {
    font-size: var(--vw-fs-13, 13px);
    color: var(--vw-color-muted, #6E7480);
    font-weight: var(--vw-fw-medium, 500);
  }

  .reviews-dots {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: var(--vw-sp-10, 10px);
    padding-top: var(--vw-sp-32, 32px);
  }
  /* Force-circular dots — high specificity to beat any default button styling */
  .reviews-section button.review-dot {
    width: 10px;
    height: 10px;
    background-color: rgba(26, 37, 53, 0.25);
    border: none;
    padding: 0;
    margin: 0;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    box-shadow: none;
    flex-shrink: 0;
    transition: background-color var(--vw-tr-fast, 0.18s ease), transform var(--vw-tr-fast, 0.18s ease);
  }
  .reviews-section button.review-dot:hover { background-color: rgba(26, 37, 53, 0.5); }
  .reviews-section button.review-dot.is-active {
    background-color: var(--vw-color-charcoal, #1A2535);
    transform: scale(1.2);
  }
  .reviews-track.is-dragging { cursor: grabbing; }
  .reviews-track.is-dragging .reviews-row { transition: none; }
  .reviews-section .review-quote-icon {
    width: 40px;
    height: 40px;
    color: var(--vw-color-charcoal, #1A2535);
  }

  @media (max-width: 991px) {
    .review-card { flex: 0 0 calc((100% - var(--vw-sp-48, 48px)) / 2); }
  }
  @media (max-width: 600px) {
    .reviews-section { padding: var(--vw-sp-56, 56px) 0; }
    .reviews-row { gap: var(--vw-sp-24, 24px); }
    .review-card { flex: 0 0 100%; }
  }
/* END_SECTION:valor-reviews */

/* START_SECTION:valor-segments (INDEX:80) */
.segments-section {
    background-color: var(--vw-color-white, #fff);
    padding: var(--vw-sp-80, 80px) 0;
  }

  .segments-row {
    display: flex;
    flex-direction: row;
    gap: var(--vw-sp-24, 24px);
  }

  .segment-card {
    flex: 1;
    display: flex;
    flex-direction: column;
    background-color: var(--vw-color-light-gray, #f4f4f4);
    border-radius: var(--vw-br-lg, 0);
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: transform var(--vw-tr-base, 0.28s ease), box-shadow var(--vw-tr-base, 0.28s ease);
  }

  .segment-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--vw-shadow-lg, 0 18px 42px rgba(17, 17, 17, 0.14));
    color: inherit;
  }

  .segment-image-wrap {
    position: relative;
    width: 100%;
    overflow: hidden;
  }

  .segment-image {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    object-position: center 30%;
    transition: transform var(--vw-tr-slow, 0.45s ease);
  }

  .segment-card:hover .segment-image {
    transform: scale(1.05);
  }

  .segment-content {
    display: flex;
    flex-direction: column;
    gap: var(--vw-sp-12, 12px);
    padding: var(--vw-sp-32, 32px);
  }

  /* segment-tag: uses static 12px micro-label (matches reference --fs-12). */
  .segment-tag {
    font-family: var(--vw-font-body);
    font-size: var(--vw-fs-12, 12px);
    font-weight: var(--vw-fw-bold, 700);
    text-transform: var(--vw-tt-upper, uppercase);
    letter-spacing: var(--vw-ls-widest, 0.18em);
    color: var(--vw-color-coyote, #8B7355);
  }

  /* segment-title: <h3> picks up font-size + family from global Heading 3 setting */
  .segment-title {
    color: var(--vw-color-charcoal, #1A2535);
    line-height: var(--vw-lh-snug, 1.25);
    margin: 0;
    /* Reserve min-height for visual balance — uses approx 2 lines @ current h3 size. */
    /* min-height: 2.5em; */
  }

  /* segment-desc: .p15 utility class supplies font-size; we override line-height + color */
  .segment-desc {
    color: var(--vw-color-muted, #6E7480);
    line-height: var(--vw-lh-relaxed, 1.65);
    margin: 0;
    /* Reserve min-height for visual balance — uses approx 3 lines @ current p15 size. */
    min-height: 4.95em;
  }

  .segment-cta {
    display: inline-flex;
    align-items: center;
    gap: var(--vw-sp-8, 8px);
    font-size: var(--vw-fs-13, 13px);
    font-weight: var(--vw-fw-bold, 700);
    text-transform: var(--vw-tt-upper, uppercase);
    letter-spacing: var(--vw-ls-wider, 0.12em);
    color: var(--vw-color-olive, #4A5E3A);
    padding-top: var(--vw-sp-8, 8px);
    transition: color var(--vw-tr-base, 0.28s ease);
  }

  .segment-card:hover .segment-cta {
    color: var(--vw-color-olive-dark, #3A4B2D);
  }

  /* Optional CTA row below the grid (e.g. About page "More to Explore") */
  .segments-cta {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--vw-sp-16, 16px);
    padding-top:28px;
    text-align: center;
  }
  .segments-cta__text {
    font-size: var(--vw-fs-16, 16px);
    color: var(--vw-color-muted, #6E7480);
    line-height: var(--vw-lh-relaxed, 1.65);
    max-width: 560px;
    margin: 0;
  }

  /* ---------- Slider mode (≤1152px) ----------
     Horizontal scroll-snap slider replaces the 4-up grid on every viewport
     from desktop-medium down. Card width scales per breakpoint so the user
     sees roughly:
       992–1152 → 3 cards + small peek
       769–991  → 2 cards + small peek
       550–768  → 2 cards
       ≤549     → 1 card + side peek
  */
  @media (max-width: 1152px) {
    .segments-section {
      padding: var(--vw-sp-56, 56px) 0;
    }
    .segments-row {
      flex-wrap: nowrap;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      gap: var(--vw-sp-16, 16px);
      padding-bottom: var(--vw-sp-8, 8px);
    }
    .segments-row::-webkit-scrollbar { display: none; }
    .segment-card {
      flex: 0 0 calc(30% - var(--vw-sp-12, 12px));
      max-width: calc(30% - var(--vw-sp-12, 12px));
      min-width: 0;
      scroll-snap-align: start;
    }
  }
  @media (max-width: 991px) {
    .segment-card {
      flex: 0 0 calc(45% - var(--vw-sp-8, 8px));
      max-width: calc(45% - var(--vw-sp-8, 8px));
    }
  }
  @media (max-width: 768px) {
    .segment-card { flex: 0 0 45%;  max-width: 45%; }
    .segment-image {
      aspect-ratio: auto;
      height: 240px;
    }
    .segment-content {
      padding: var(--vw-sp-20, 20px);
      gap: var(--vw-sp-8, 8px);
    }
    .segment-title,
    .segment-desc {
      min-height: 0;
    }
    body .segments-cta {
      padding-top: 0;
    }
  }
  @media (max-width: 549px) {
    .segment-card { flex: 0 0 82%; max-width: 82%; }
  }
/* END_SECTION:valor-segments */

/* START_SECTION:valor-size-steps (INDEX:81) */
.sg-section { background-color: var(--vw-color-white, #FFFFFF); }
  .sg-row {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1.1fr);
    align-items: start;
  }
  .sg-row--reverse { direction: rtl; }
  .sg-row--reverse > * { direction: ltr; }

  /* ---------- Left: content ---------- */
  .sg-content {
    display: flex;
    flex-direction: column;
    gap: var(--vw-sp-16, 16px);
  }
  .sg-text,
  .sg-text p {
    font-size: clamp(14px, 2vw, 16px);
    line-height: var(--vw-lh-relaxed, 1.65);
    color: var(--vw-color-charcoal, #1A2535);
    margin: 0;
  }
  .sg-text strong { color: var(--vw-color-charcoal, #1A2535); font-weight: var(--vw-fw-bold, 700); }

  .sg-steps {
    list-style: none;
    padding: 0;
    margin: var(--vw-sp-12, 12px) 0 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
    counter-reset: sg-step; 
  }
  .sg-text.rte {
    margin: 0;
  }
  .sg-step {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: var(--vw-sp-16, 16px);
    align-items: flex-start;
    padding: 16px;
    background-color: var(--vw-color-light-gray, #F4F4F4);
    border-left: 3px solid var(--vw-color-olive, #4A5E3A);
    border-radius: 2px;
  }
  .sg-step-num {
    font-family: var(--vw-font-heading, var(--typeHeaderPrimary));
    font-size: 24px; 
    font-weight: var(--vw-fw-bold, 700);
    letter-spacing: 0.06em;
    color: #4A5E3A;
    background: none;
    padding: 0;
    min-width: 18px;
    text-align: left;
  }
  .sg-step-body { display: flex; flex-direction: column; gap: 2px; }
  .sg-step-heading {
    font-family: var(--vw-font-heading, var(--typeHeaderPrimary));
    font-size: clamp(14px, 2vw, 16px);
    font-weight: var(--vw-fw-bold, 700);
    color: var(--vw-color-charcoal, #1A2535);
    text-transform: uppercase;
    letter-spacing: var(--vw-ls-wide, 0.05em);
    line-height: 1.25;
    margin: 0;
  }
  .sg-step-text {
    font-size: var(--vw-fs-14, 14px);
    line-height: var(--vw-lh-relaxed, 1.6);
    color: var(--vw-color-muted, #6E7480);
    margin: 0;
  }
  .sg-step-text strong { color: var(--vw-color-charcoal, #1A2535); }

  /* ---------- CTA row ---------- */
  .sg-cta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    padding-top: 8px;
  }
  .sg-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 24px;
    border: 2px solid var(--vw-color-olive, #4A5E3A);
    background-color: var(--vw-color-olive, #4A5E3A);
    color: var(--vw-color-white, #FFFFFF);
    font-family: var(--vw-font-body, var(--typeBasePrimary));
    font-size: 14px;
    font-weight: var(--vw-fw-bold, 700);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease;
  }
  
  .sg-btn .valor-icon { width: 16px; height: 16px; transition: transform 0.18s ease; }
  .sg-btn:hover .valor-icon { transform: translateX(3px); }
  .sg-btn--style-ghost {
    background-color: transparent;
    color: var(--vw-color-charcoal, #1A2535);
    border-color: var(--vw-color-charcoal, #1A2535);
  }
  /* .sg-btn--style-ghost:hover {
    background-color: var(--vw-color-charcoal, #1A2535);
    color: var(--vw-color-white, #FFFFFF);
  } */

  /* ---------- Right: video aside ---------- */
  .sg-aside {
    display: flex;
    flex-direction: column;
    gap: var(--vw-sp-16, 16px);
  }
  .sg-video-wrap {
    position: relative;
    margin: 0;
    overflow: hidden;
    background-color: var(--vw-color-light-gray, #F4F4F4);
    aspect-ratio: 16/9;
  }
  .sg-video {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .sg-video-wrap::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(0,0,0,0) 60%, rgba(0,0,0,0.5) 100%);
  }
  .sg-video-caption {
    position: absolute;
    left: 16px;
    bottom: 16px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    background-color: rgba(0, 0, 0, 0.55);
    color: var(--vw-color-white, #FFFFFF);
    font-family: var(--vw-font-body, var(--typeBasePrimary));
    font-size: var(--vw-fs-12, 12px);
    font-weight: var(--vw-fw-semibold, 600);
    text-transform: uppercase;
    letter-spacing: 0.16em;
  }
  .sg-video-caption .valor-icon { width: 16px; height: 16px; }

  /* Dark quote card — matches reference (dark charcoal panel + white italic). */
  .sg-quote-card {
    background-color: var(--vw-color-charcoal, #1A2535);
    padding: 40px 32px;
    display: flex;
    flex-direction: column;
    gap: var(--vw-sp-12, 12px);
    border-radius: 0;
    border-top: 4px solid #4A5E3A;
  }
  .sg-quote-icon {
    width: 22px;
    height: 22px;
    color: var(--vw-color-coyote, #8B7355);
  }
  .sg-quote-text {
    font-family: var(--vw-font-body, var(--typeBasePrimary));
    font-size: clamp(18px, 1.6vw, 24px);
    line-height: 1.35;
    color: var(--vw-color-white, #FFFFFF);
    font-weight: var(--vw-fw-semibold, 600);
    /* oblique forces a visible slant on fonts without an italic variant */
    /* font-style: oblique 12deg; */
    margin: 0;
    font-style: italic;
  }
  .sg-quote-by {
    font-size: var(--vw-fs-12, 12px);
    color: #8B7355;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    font-weight: var(--vw-fw-bold, 700);
  }

  /* ---------- Responsive ---------- */
  @media (max-width: 991px) {
    .sg-row { grid-template-columns: 1fr; }
    .sg-row--reverse { direction: ltr; }
  }
  @media (max-width: 600px) {
    .sg-step-num { width: 36px; height: 36px; font-size: 18px; }
    body .sg-quote-card { 
      padding: 24px;
    }
  }
  @media (min-width: 991px) { 
    .sg-aside {   
      position: sticky;
      top: 0;
    }
  }
/* END_SECTION:valor-size-steps */

/* START_SECTION:valor-size-where (INDEX:82) */
.sg-where { color: var(--vw-color-white, #FFFFFF); }
  .sg-where-head {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 16px;
    max-width: 820px;
    margin: 0 auto;
  }
  .sg-where-eyebrow {
    color:#fff;
  }
  .sg-where-title {
    font-family: var(--vw-font-heading, var(--typeHeaderPrimary));
    /* font-size: clamp(28px, 3.4vw, 44px); */
    font-weight: var(--vw-fw-bold, 700);
    line-height: var(--vw-lh-tight, 1.1);
    color: var(--vw-color-white, #FFFFFF);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    margin: 0;
  }
  .sg-where-sub {
    font-size: clamp(14px, 2vw, 17px);
    line-height: var(--vw-lh-relaxed, 1.65);
    color: rgba(255, 255, 255, 0.72);
    margin: 0;
  }

  .sg-where-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
  }

  /* ---------- Left: image + pins ---------- */
  .sg-where-figure {
    position: relative;
    margin: 0;
    overflow: hidden;
    background-color: rgba(255, 255, 255, 0.04);
    border: 1px solid #fff;
  }
  .sg-where-img,
  .sg-where-figure svg {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 2px;
  }
  .sg-where-pin {
    position: absolute;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    font-family: var(--vw-font-body, var(--typeBasePrimary));
    font-size: var(--vw-fs-11, 11px);
    font-weight: var(--vw-fw-bold, 700);
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--vw-color-white, #FFFFFF);
    pointer-events: none;
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
  }
  .sg-where-pin .valor-icon { width: 14px; height: 14px; }
  .sg-where-pin--good {
    background-color: #4a5e3aeb;
    border-left: 3px solid #b8d89a;
  }
  .sg-where-pin--bad {
    background-color: rgba(139, 115, 85, 0.92);
    border-left: 3px solid rgb(212, 185, 142);
  }

  /* ---------- Right: cards + note ---------- */
  .sg-where-cards {
    display: flex;
    flex-direction: column;
    gap: var(--vw-sp-16, 16px);
  }
  .sg-where-card {
    background-color: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    padding: var(--vw-sp-24, 24px) var(--vw-sp-28, 28px);
    display: flex;
    flex-direction: column;
    gap: var(--vw-sp-10, 10px);
    border-radius: 0;
  }
  .sg-where-flag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    align-self: flex-start;
    padding: 6px 12px;
    font-family: var(--vw-font-body, var(--typeBasePrimary));
    font-size: var(--vw-fs-11, 11px);
    font-weight: var(--vw-fw-bold, 700);
    text-transform: uppercase;
    letter-spacing: 0.16em;
    border-radius: 2px;
  }
  .sg-where-flag .valor-icon { width: 12px; height: 12px; }
  .sg-where-card--good .sg-where-flag {
    background-color: #4a5e3a40;
    color: #b8d89a;
  }
  .sg-where-card--bad .sg-where-flag {
    background-color: #8b735540;
    color: #d4b98e;
  }
  .sg-where-card-heading {
    font-family: var(--vw-font-heading, var(--typeHeaderPrimary));
    font-size: clamp(16px, 2vw, 20px);
    font-weight: var(--vw-fw-bold, 700);
    color: var(--vw-color-white, #FFFFFF);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    line-height: 1.25;
    margin: 0;
  }
  .sg-where-card-text {
    font-size: var(--vw-fs-14, 14px);
    line-height: var(--vw-lh-relaxed, 1.6);
    color: #ffffffbf;
    margin: 0;
  }
  .sg-where-note {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 16px 20px;
    background-color: rgba(255, 255, 255, 0.03);
    border-left: 3px solid #4A5E3A;
    color: rgba(255, 255, 255, 0.75);
    font-size: var(--vw-fs-13, 13px);
    line-height: 1.5;
    margin: 0;
  }
  .sg-where-note .valor-icon { width: 16px; height: 16px; flex: 0 0 auto; margin-top: 2px; color: #4a5e3a; }
  .sg-where-card.sg-where-card--good {
    border-left: 4px solid #4A5E3A;
  }
  .sg-where-card.sg-where-card--bad {
    border-left: 4px solid #8B7355;
  }
  /* ---------- Responsive ---------- */
  @media (max-width: 991px) {
    .sg-where-layout { grid-template-columns: 1fr; }
  }
  @media (max-width: 600px) {
    .sg-where-head { margin-bottom: var(--vw-sp-32, 32px); }
    .sg-where-pin { font-size: 10px; padding: 4px 8px; letter-spacing: 0.1em; }
    .sg-where-pin .valor-icon { width: 12px; height: 12px; }
    .sg-where-card { 
      padding: 24px;
    }
  }
/* END_SECTION:valor-size-where */

/* START_SECTION:valor-story (INDEX:83) */
.story-section {
    position: relative;
    width: 100%;
    height: 100vh;
    height: 100dvh;
    min-height: 600px;
    padding: var(--vw-sp-96, 96px) 0;
    background-color: var(--vw-color-charcoal, #1A2535);
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
  }
  .story-bg-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
  }
  .story-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
      90deg,
      rgba(17, 17, 17, 0.5) 0%,
      rgba(17, 17, 17, 0.3) 30%,
      rgba(17, 17, 17, 0) 60%
    );
    z-index: 2;
  }
  .story-section .vw-container {
    position: relative;
    z-index: 3;
    align-items: flex-start;
  }
  .story-content {
    display: flex;
    flex-direction: column;
    gap: var(--vw-sp-24, 24px);
    max-width: 620px;
  }
  .story-text {
    color: rgba(255, 255, 255, 0.78);
    line-height: var(--vw-lh-relaxed, 1.65);
    margin: 0;
  }
  .story-cta-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--vw-sp-16, 16px);
    flex-wrap: wrap;
    padding-top: var(--vw-sp-8, 8px);
  }

  @media (max-width: 768px) {
    /* Stack image above + content below on mobile (no overlay) */
    .story-section {
      display: block;
      height: auto;
      min-height: 0;
      padding: 0;
      background-color: var(--vw-color-charcoal, #1A2535);
    }
    .story-bg-img {
      position: relative;
      inset: auto;
      width: 100%;
      height: 280px;
      object-fit: cover;
    }
    .story-overlay { display: none; }
    .story-section .vw-container {
      padding-top: var(--vw-sp-40, 40px);
      padding-bottom: var(--vw-sp-56, 56px);
    }
    .story-content { max-width: 100%; }
    .story-cta-row { width: 100%; flex-direction: column; align-items: stretch; }
    .story-cta-row .vw-btn { width: 100%; }
  }
/* END_SECTION:valor-story */

/* START_SECTION:valor-trust (INDEX:84) */
.trust-section {
    background-color: var(--vw-color-charcoal, #1A2535);
    padding: var(--vw-sp-80, 80px) 0;
    color: var(--vw-color-white, #fff);
  }

  .trust-section .vw-container {
    gap: 0;
  }

  .trust-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--vw-sp-72, 72px);
  }

  .trust-media {
    position: relative;
    flex: 1;
  }

  .trust-image {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    border-radius: var(--vw-br-lg, 0);
  }

  .trust-badge-floating {
    position: absolute;
    bottom: var(--vw-sp-32, 32px);
    right: var(--vw-sp-32, 32px);
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--vw-sp-12, 12px);
    padding: var(--vw-sp-20, 20px) var(--vw-sp-24, 24px);
    background-color: var(--vw-color-white, #fff);
    border-radius: var(--vw-br-md, 0);
    box-shadow: var(--vw-shadow-lg, 0 18px 42px rgba(17, 17, 17, 0.14));
    color: var(--vw-color-charcoal, #1A2535);
  }

  .trust-badge-floating i {
    font-size: 30px;
    color: var(--vw-color-olive, #4A5E3A);
  }

  .trust-badge-text {
    display: flex;
    flex-direction: column;
    gap: var(--vw-sp-2, 2px);
  }

  /* Badge title: uses static h5-ish size for compact display */
  .trust-badge-title {
    font-family: var(--vw-font-heading);
    font-size: 20px;
    font-weight: var(--vw-fw-bold, 700);
    letter-spacing: var(--vw-ls-wide, 0.05em);
    line-height: 1.1;
  }

  .trust-badge-sub {
    font-size: var(--vw-fs-12, 12px);
    text-transform: var(--vw-tt-upper, uppercase);
    letter-spacing: var(--vw-ls-wider, 0.12em);
    color: var(--vw-color-muted, #6E7480);
    font-weight: var(--vw-fw-semibold, 600);
  }

  .trust-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: var(--vw-sp-24, 24px);
  }

  /* trust-text: .p17 utility class supplies font-size */
  .trust-text {
    line-height: var(--vw-lh-relaxed, 1.65);
    color: rgba(255, 255, 255, 0.78);
    margin: 0;
  }

  .trust-cta {
    align-self: flex-start;
    margin-top: var(--vw-sp-12, 12px);
  }

  @media (max-width: 768px) {
    .trust-section {
      padding: var(--vw-sp-56, 56px) 0;
    }
    .trust-row {
      flex-direction: column;
      gap: var(--vw-sp-32, 32px);
    }
    .trust-image {
      aspect-ratio: auto;
      height: 360px;
    }
    .trust-badge-floating {
      bottom: var(--vw-sp-16, 16px);
      right: var(--vw-sp-16, 16px);
      padding: var(--vw-sp-12, 12px) var(--vw-sp-16, 16px);
    }
  }
/* END_SECTION:valor-trust */

/* START_SECTION:valor-upsell (INDEX:85) */
.fi-upsell-section {
    background-color: var(--vw-color-black, #111);
    padding: var(--vw-sp-40, 40px) 0 var(--vw-sp-80, 80px) 0;
    color: var(--vw-color-white, #fff);
  }

  .upsell-row {
    display: flex;
    flex-direction: column;
    gap: var(--vw-sp-32, 32px);
  }

  .upsell-head {
    display: flex;
    flex-direction: column;
    gap: var(--vw-sp-12, 12px);
    align-items: center;
    text-align: center;
  }

  .upsell-grid {
    display: flex;
    flex-direction: row;
    gap: var(--vw-sp-24, 24px);
    flex-wrap: wrap;
    justify-content: center;
  }

  .upsell-card {
    position: relative;
    flex: 1 1 calc(50% - var(--vw-sp-24, 24px));
    display: flex;
    flex-direction: row;
    background-color: var(--vw-color-white, #fff);
    overflow: hidden;
    transition: transform var(--vw-tr-base, 0.28s ease), box-shadow var(--vw-tr-base, 0.28s ease);
  }
  .upsell-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--vw-shadow-lg, 0 18px 42px rgba(17, 17, 17, 0.14));
  }
  /* Whole-card link overlay — covers the card so a click anywhere navigates.
     The Add-to-Build button is raised above it so it still adds to cart. */
  .upsell-card--link { cursor: pointer; }
  .upsell-card__link {
    position: absolute;
    inset: 0;
    z-index: 1;
    text-indent: -9999px;
    overflow: hidden;
  }
  .upsell-card--link .upsell-toggle {
    position: relative;
    z-index: 2;
  }

  .upsell-image-wrap {
    position: relative;
    flex: 0 0 50%;
    aspect-ratio: 4 / 3;
    background-color: var(--vw-color-light-gray, #f4f4f4);
    overflow: hidden;
  }
  .upsell-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: bottom;
    transition: transform var(--vw-tr-slow, 0.45s ease);
  }
  .upsell-card:hover .upsell-image { transform: scale(1.05); }

  .upsell-body {
    display: flex;
    flex-direction: column;
    gap: var(--vw-sp-8, 8px);
    padding: var(--vw-sp-24, 24px) var(--vw-sp-24, 24px) 0;
    flex: 1;
  }

  .upsell-tag {
    font-size: var(--vw-fs-11, 11px);
    font-weight: var(--vw-fw-bold, 700);
    text-transform: var(--vw-tt-upper, uppercase);
    letter-spacing: var(--vw-ls-widest, 0.18em);
    color: var(--vw-color-coyote, #8B7355);
  }

  /* upsell-name: <h5> picks up font-size + family from global Heading 5 setting */
  .upsell-name {
    color: var(--vw-color-charcoal, #1A2535);
    line-height: var(--vw-lh-tight, 1.1);
    margin: 0;
    min-height: 2.2em;
  }

  /* upsell-desc: .p14 utility class supplies font-size */
  .upsell-desc {
    color: var(--vw-color-muted, #6E7480);
    line-height: var(--vw-lh-relaxed, 1.65);
    margin: 0;
    min-height: 3.3em;
  }

  .upsell-foot {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: 0;
    margin: auto calc(-1 * var(--vw-sp-24, 24px)) 0;
    border-top: 1px solid var(--vw-color-border, #E2E2E2);
  }
  .upsell-price {
    flex: 0 0 40%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--vw-sp-16, 16px) var(--vw-sp-12, 12px);
    font-family: var(--vw-font-heading);
    font-size: 20px;
    font-weight: var(--vw-fw-bold, 700);
    color: var(--vw-color-charcoal, #1A2535);
    letter-spacing: var(--vw-ls-wide, 0.05em);
  }
  .upsell-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--vw-sp-6, 6px);
    flex: 1;
    padding: var(--vw-sp-16, 16px) var(--vw-sp-12, 12px);
    font-size: var(--vw-fs-12, 12px);
    font-weight: var(--vw-fw-bold, 700);
    text-transform: var(--vw-tt-upper, uppercase);
    letter-spacing: var(--vw-ls-wider, 0.12em);
    color: var(--vw-color-white, #fff);
    background-color: var(--vw-color-charcoal, #1A2535);
    border: none;
    cursor: pointer;
    text-decoration: none;
    transition: background-color var(--vw-tr-fast, 0.18s ease);
  }
  .upsell-card:hover .upsell-toggle {
    background-color: var(--vw-color-olive, #4A5E3A);
    color: var(--vw-color-white, #fff);
  }

  @media (max-width: 1299px) {
    .upsell-card { flex: 1 1 100%; }
  }
  @media (max-width: 600px) {
    .fi-upsell-section { padding: var(--vw-sp-32, 32px) 0 var(--vw-sp-56, 56px); }
    .upsell-card { flex-direction: column; }
    .upsell-image-wrap { flex: none; width: 100%; }
    .upsell-foot { margin-bottom: 0; }
  }

  /* Disabled / adding state on the add-to-build button */
  .upsell-toggle[disabled],
  .upsell-toggle.is-adding {
    opacity: 0.7;
    cursor: not-allowed;
  }
/* END_SECTION:valor-upsell */

/* START_SECTION:valor-usp (INDEX:86) */
.usp-section {
    background-color: var(--vw-color-white, #fff);
    padding: var(--vw-sp-56, 56px) 0;
    border-top: 1px solid var(--vw-color-border, #E2E2E2);
  }
  .usp-grid {
    display: flex;
    flex-direction: row;
    gap: var(--vw-sp-40, 40px);
    flex-wrap: wrap;
  }
  .usp-item {
    flex: 1 1 0;
    min-width: 260px;
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: var(--vw-sp-16, 16px);
  }
  .usp-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--vw-color-coyote, #8B7355);
    font-size: 32px;
    flex-shrink: 0;
  }
  .usp-text-wrap {
    display: flex;
    flex-direction: column;
    gap: var(--vw-sp-6, 6px);
  }
  /* usp-title: <h4> picks up font-size + family from global Heading 4 setting */
  .usp-title {
    color: var(--vw-color-charcoal, #1A2535);
    line-height: var(--vw-lh-tight, 1.1);
    margin: 0;
  }
  /* usp-text: .p15 utility class supplies font-size */
  .usp-text {
    color: var(--vw-color-muted, #6E7480);
    line-height: var(--vw-lh-relaxed, 1.65);
    max-width: 360px;
    margin: 0;
  }
  @media (max-width: 768px) {
    .usp-section { padding: 24px 0; }
    /* Horizontal-scroll slider on mobile (matches reference) */
    .usp-grid {
      flex-wrap: nowrap;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      gap: 12px;
    }
    .usp-grid::-webkit-scrollbar { display: none; }
    .usp-item {
      flex: 0 0 86%;
      min-width: 0;
      scroll-snap-align: start;
      padding: 16px;
      border: 1px solid #e2e2e2;
    }
    .usp-title { 
      font-size: 14px;
    }
    p.usp-text.p15 {
      font-size: 13px;
    }
  }
/* END_SECTION:valor-usp */

/* CSS from snippet stylesheet tags */
/* START_SNIPPET:customer-account (INDEX:115) */
.mobile-nav shopify-account::part(signed-out-avatar) {
    font-size: var(--typeBodySizeMobile);
    -webkit-font-smoothing: antialiased;
  }

  .site-nav shopify-account::part(signed-out-avatar) {
    color: var(--colorNavText);
  }

  .is-light .site-nav shopify-account::part(signed-out-avatar) {
    color: #fff;
  }

  shopify-account {
    --shopify-account-color-accent: var(--colorBtnPrimary);
    --shopify-account-color-accent-hover: var(--colorBtnPrimaryLight);
    --shopify-account-color-accent-text: var(--colorTextBody);
    --shopify-account-color-background: var(--colorBody);
    --shopify-account-color-background-subdued: color-mix(in srgb, var(--colorBorder) 20%, transparent);
    --shopify-account-color-border: var(--colorBorder);
    --shopify-account-color-card-background: var(--colorBody);
    --shopify-account-color-control-background: var(--colorBody);
    --shopify-account-color-text: var(--colorTextBody);
    --shopify-account-color-text-subdued: color-mix(in srgb, var(--colorBorder) 50%, black);
    --shopify-account-font-body: var(--typeBasePrimary), var(--typeBaseFallback);
    --shopify-account-font-body-weight: var(--typeBaseWeight);
    --shopify-account-font-heading: var(--typeHeaderPrimary), var(--typeHeaderFallback);
    --shopify-account-font-heading-weight: var(--typeHeaderWeight);
    --shopify-account-radius-base: var(--buttonRadius);
    --shopify-account-radius-button: var(--buttonRadius);
    --shopify-account-radius-button-small: var(--buttonRadius);
    --shopify-account-radius-dialog: var(--buttonRadius);
    --shopify-account-radius-input: var(--buttonRadius);
    --shopify-account-signed-in-avatar-color-background: var(--colorBody);
    --shopify-account-signed-in-avatar-color-text: var(--colorTextBody);
  }
/* END_SNIPPET:customer-account */

/* START_SNIPPET:element.badge (INDEX:117) */
.element-badge {
    /* Layout & Typography */
    --_radius: var(--element-badge-radius, var(--chip-radius, var(--radius-xs)));
    --_px: var(--element-badge-px, var(--size-3));
    --_py: var(--element-badge-py, var(--size-1));
    --_border-width: var(--element-badge-border-width, var(--size-0-25));
    --_font-family: var(
      --element-badge-font-family,
      var(--element-text-font-family--body),
      var(--element-text-font-family-fallback--body)
    );
    --_font-size: var(--element-badge-font-size, var(--element-text-font-size--body-sm));
    --_letter-spacing: var(--element-badge-letter-spacing, var(--element-text-letter-spacing--body-sm));
    --_line-height: var(--element-badge-line-height, var(--element-text-line-height--body-sm));

    /* Colors */
    --_base-primary: var(--color-secondary);
    --_base-secondary: var(--color-primary);
    --_color-primary: var(--_base-primary);
    --_color-secondary: var(--_base-secondary);
    --_color-background: var(--_color-primary);
    --_color-text: var(--_color-secondary);
    --_color-border: var(--_color-secondary);
    --_shade-inset-box-shadow: var(--element-badge-shade-inset-box-shadow, 12%);
    --_inset-box-shadow: inset 0 0 0 var(--_border-width)
      color-mix(in srgb, var(--_color-border) var(--_shade-inset-box-shadow), transparent);

    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--_radius);
    padding-inline: var(--_px);
    padding-block: var(--_py);
    font-family: var(--_font-family);
    font-size: var(--_font-size);
    letter-spacing: var(--_letter-spacing);
    background-color: var(--_color-background);
    color: var(--_color-text);
    box-shadow: var(--_inset-box-shadow);
    text-transform: uppercase;
    width: fit-content;
    white-space: nowrap;
  }

  .element-badge--inverted {
    --_color-primary: var(--_base-secondary);
    --_color-secondary: var(--_base-primary);

    & > * {
      --color-primary: currentColor;
    }
  }

  .element-badge--sale {
    --_base-primary: var(--color-sale-tag-text);
    --_base-secondary: var(--color-sale-tag);
  }
/* END_SNIPPET:element.badge */

/* START_SNIPPET:element.button (INDEX:118) */
:root {
    /* Base Layout Variables */
    --element-button-display: inline-flex;
    --element-button-width: fit-content;
    --element-button-height: auto;
    --element-button-radius: var(--radius-xs);
    --element-button-flex-direction: row;
    --element-button-gap: var(--size-2);
    --element-button-justify-content: center;
    --element-button-align-items: center;
    --element-button-white-space: nowrap;

    /* Base Spacing Variables */
    --element-button-padding-block: var(--size-3);
    --element-button-padding-inline: var(--size-5);
    --element-button-border-width: var(--size-0-25);

    /* Base Color Variables */
    --element-button-color-primary: initial;
    --element-button-color-secondary: initial;
    --element-button-shade-background: 0%;
    --element-button-shade-text: 0%;
    --element-button-shade-border: 20%;

    /* Typography Overrides */
    /* By default, the button will inherit the typography styles from element.text. Set these to other values to override. */
    /* --element-button-font-family: initial; */
    /* --element-button-font-family-fallback: initial; */
    /* --element-button-font-weight: initial; */
    /* --element-button-letter-spacing: initial; */
    /* --element-button-text-transform: initial; */
    /* --element-button-line-height: initial; */
    /* --element-button-color: initial; */

    /* Base Effect Variables */
    --element-button-box-shadow: initial;
    --element-button-transition-duration: 200ms;
    --element-button-transition-timing: ease;
    --element-button-transform: none;
    --element-button-backdrop-filter: none;
    --element-button-opacity: 1;

    /* Hover State Variables */
    --element-button-shade-background--hover: 8%;
    --element-button-shade-border--hover: 30%;

    /* Focus State Variables */
    --element-button-color-focus: var(--color-focus);
    --element-button-border-width--focus: var(--size-0-5);

    /* Active State Variables */
    --element-button-shade-background--active: 16%;
    --element-button-shade-border--active: var(--element-button-shade-border);

    /* Disabled State Variables */
    --element-button-shade-background--disabled: 12%;
    --element-button-shade-text--disabled: 70%;
    --element-button-shade-border--disabled: 12%;
  }

  /* Component Implementation */
  .element-button,
  .element-button--shopify-payment-wrapper .shopify-payment-button .shopify-payment-button__button--unbranded {
    /* Base Layout */
    --_display: var(--element-button-display);
    --_width: var(--element-button-width);
    --_height: var(--element-button-height);
    --_radius: var(--element-button-radius);
    --_flex-direction: var(--element-button-flex-direction);
    --_gap: var(--element-button-gap);
    --_justify-content: var(--element-button-justify-content);
    --_align-items: var(--element-button-align-items);
    --_white-space: var(--element-button-white-space);

    /* Base Spacing */
    --_padding-block: var(--element-button-padding-block);
    --_padding-inline: var(--element-button-padding-inline);
    --_border-width: var(--element-button-border-width);

    /* Base Colors */
    --_color-primary: var(--element-button-color-primary, var(--color-primary));
    --_color-secondary: var(--element-button-color-secondary, var(--color-secondary));
    --_color-focus: var(--element-button-color-focus, var(--color-focus, #4a9afc));
    --_color-text: var(--_color-secondary);
    --_color-background: var(--_color-primary);
    --_outline: none;
    --_border: none;
    --_shade-background: var(--element-button-shade-background);
    --_shade-text: var(--element-button-shade-text);
    --_shade-border: var(--element-button-shade-border);
    --_box-shadow: var(--element-button-box-shadow, inset 0 0 0 var(--_border-width) color-mix(in srgb, var(--_color-text) var(--_shade-border), transparent));

    /* Base Effects */
    --_transition-duration: var(--element-button-transition-duration);
    --_transition-timing: var(--element-button-transition-timing);
    --_transform: var(--element-button-transform);
    --_backdrop-filter: var(--element-button-backdrop-filter);
    --_opacity: var(--element-button-opacity);

    /* Text Styles */
    --element-text-font-family: var(--element-button-font-family);
    --element-text-font-family-fallback: var(--element-button-font-family-fallback);
    --element-text-font-weight: var(--element-button-font-weight);
    --element-text-letter-spacing: var(--element-button-letter-spacing);
    --element-text-text-transform: var(--element-button-text-transform);
    --element-text-line-height: var(--element-button-line-height);
    --element-text-color: var(--element-button-color);
    --element-text-font-size: var(--element-button-font-size);

    /* Icon Styles */
    --element-icon-size: var(--element-text-font-size--body-md);

    /* Base Styles */
    display: var(--_display);
    width: var(--_width);
    height: var(--_height);
    justify-content: var(--_justify-content);
    align-items: var(--_align-items);
    white-space: var(--_white-space);
    flex-direction: var(--_flex-direction);
    gap: var(--_gap);
    padding-block: var(--_padding-block);
    padding-inline: var(--_padding-inline);
    border-radius: var(--_radius);
    background-color: color-mix(in srgb, var(--_color-text) var(--_shade-background), var(--_color-background));
    color: color-mix(in srgb, var(--_color-background) var(--_shade-text), var(--_color-text));
    box-shadow: var(--_box-shadow);
    outline: var(--_outline);
    border: var(--_border);
    transform: var(--_transform);
    backdrop-filter: var(--_backdrop-filter);
    opacity: var(--_opacity);
    transition: all var(--_transition-duration) var(--_transition-timing);
    cursor: pointer;

    &:is(button.shopify-payment-button__button--unbranded) {
      width: 100%;
      line-height: var(--element-text-line-height--body-md);
      min-height: 32px;
    }

    &:has(> svg:only-child) {
      --_padding-inline: var(--_padding-block);
      --_display: flex;
    }

    /* Hover State */
    &:hover {
      --_shade-background: var(--element-button-shade-background--hover);
      --_shade-border: var(--element-button-shade-border--hover);
    }

    /* Focus State */
    &:focus-visible,
    input[type='radio']:focus-visible + & {
      --_border-width: var(--element-button-border-width--focus);
      --_box-shadow: inset 0 0 0 var(--_border-width) var(--_color-focus);
    }

    /* Disabled State */
    &:disabled,
    input[type='radio']:disabled + &,
    .disabled > input[type='radio'] + &,
    shopify-buy-it-now-button[disabled] > & {
      --_shade-background: var(--element-button-shade-background--disabled);
      --_shade-text: var(--element-button-shade-text--disabled);
      --_shade-border: var(--element-button-shade-border--disabled);

      &:is(:disabled),
      shopify-buy-it-now-button[disabled] > & {
        cursor: not-allowed;
      }
    }

    /* Active State */
    &:active,
    input[type='radio']:checked + & {
      --_shade-background: var(--element-button-shade-background--active);
      --_shade-border: var(--element-button-shade-border--active);
    }

    /* Variants */
    &.element-button--size-sm {
      --_padding-block: var(--size-2);
      --_padding-inline: var(--size-4);
    }

    &.element-button--size-lg {
      --_padding-block: var(--size-4);
      --_padding-inline: var(--size-6);
    }

    &.element-button--inverted {
      --_color-text: var(--_color-primary);
      --_color-background: var(--_color-secondary);
    }

    &.element-button--transparent {
      --_color-background: transparent;

      &:disabled {
        --_shade-border: var(--element-button-shade-border--disabled);
        --_shade-background: 0%;
      }

      &:disabled:active {
        --_border-width: var(--element-button-border-width);
        --_shade-border: var(--element-button-shade-border--disabled);
      }
    }

    &:is(.shopify-payment-button__button--unbranded):hover:not([disabled]) {
      background-color: color-mix(in srgb, var(--_color-secondary) var(--_shade-background), var(--_color-primary));
      color: color-mix(in srgb, var(--_color-background) var(--_shade-text), var(--_color-text));
    }
  }

  .element-button--shopify-payment-wrapper {
    --_radius: var(--element-button-radius);
    --_padding-block: var(--element-button-padding-block);
    --_line-height: var(--element-button-line-height, var(--element-text-line-height--body));
    --_font-size: var(--element-button-font-size, var(--element-text-font-size--body-md));

    --shopify-accelerated-checkout-button-border-radius: var(--_radius);
    --shopify-accelerated-checkout-button-block-size: calc((2 * var(--_padding-block)) + (var(--_line-height) * var(--_font-size)));

    font-family: var(--element-button-font-family, var(--element-text-font-family));
  }
/* END_SNIPPET:element.button */

/* START_SNIPPET:element.checkbox (INDEX:119) */
.element-checkbox {
    /* Layout & Typography */
    --_size: var(--element-checkbox-size, var(--size-5));
    --_icon-size: var(--element-checkbox-icon-size, var(--size-3-5));
    --_radius: var(--element-checkbox-radius, 1px);
    --_gap: var(--element-checkbox-gap, var(--size-2));
    --_outline-width: var(--element-checkbox-outline-width, 1px);
    --_outline-width-active: var(--element-checkbox-outline-width-active, 2px);
    --_font-family: var(
      --element-checkbox-font-family,
      var(--element-text-font-family--body),
      var(--element-text-font-family-fallback--body)
    );
    --_font-size: var(--element-checkbox-font-size, var(--element-text-font-size--body-md));
    --_letter-spacing: var(--element-checkbox-letter-spacing, var(--element-text-letter-spacing--body));
    --_line-height: var(--element-checkbox-line-height, var(--element-text-line-height--body));
    --_font-weight: var(--element-checkbox-font-weight, normal);

    /* Colors */
    --_color-primary: var(--color-primary);
    --_color-secondary: var(--color-secondary);
    --_color-active: var(--color-focus);
    --_color-shadow: var(
      --element-checkbox-shadow-color,
      color-mix(in srgb, var(--root-color-primary) var(--_outline-shade), var(--root-color-secondary))
    );
    --_color-background: var(--root-color-secondary);
    --_color-text: var(--_color-primary);
    --_outline-shade: var(--element-checkbox-outline-shade, 12%);
    --_shadow-inset: var(--element-checkbox-shadow-inset, inset);
    --_shadow-h-offset: var(--element-checkbox-shadow-horizontal-offset, 0);
    --_shadow-v-offset: var(--element-checkbox-shadow-vertical-offset, 0);
    --_shadow-blur: var(--element-checkbox-shadow-blur-radius, 0);
    --_shadow-spread: var(--element-checkbox-shadow-spread-radius, var(--_outline-width));
    --_icon-opacity: var(--element-checkbox-icon-opacity, 0);

    @media (max-width: 768px) {
      --_size: var(--element-checkbox-size, var(--size-4));
      --_icon-size: var(--element-checkbox-icon-size, var(--size-3));
    }

    position: relative;
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: var(--_gap);
    color: var(--_color-text);
    font-family: var(--_font-family);
    font-size: var(--_font-size);
    letter-spacing: var(--_letter-spacing);
    line-height: var(--_line-height);
    font-weight: var(--_font-weight);
    cursor: pointer;

    input[type='checkbox'] {
      position: absolute;
      opacity: 0;
      pointer-events: none;
    }

    &:hover {
      --_color-background: color-mix(in srgb, var(--_color-primary) 4%, var(--_color-secondary));
    }

    &:hover:has(input[type='checkbox']:checked) {
      --_color-shadow: color-mix(in srgb, var(--_color-secondary) 12%, var(--_color-primary));
      --_color-background: color-mix(in srgb, var(--_color-secondary) 4%, var(--_color-primary));
    }

    &:has(input[type='checkbox']:checked) {
      --_icon-opacity: 1;
      --_color-background: var(--_color-primary);
      --_color-shadow: var(--_color-primary);
    }

    &:has(input[type='checkbox']:focus-visible) {
      --_color-shadow: var(--_color-active);
      --_outline-width: var(--_outline-width-active);
    }

    &:not(.element-checkbox--with-icon):has(input[type='checkbox']:focus-visible) {
      outline: 3px solid var(--color-focus);
    }

    &:has(input[type='checkbox']:disabled) {
      --_color-background: color-mix(in srgb, var(--_color-primary) 8%, var(--_color-secondary));
      --_color-shadow: color-mix(in srgb, var(--_color-primary) 8%, var(--_color-secondary));
    }
  }

  .element-checkbox__icon {
    display: flex;
    flex-shrink: 0;
    justify-content: center;
    align-items: center;
    width: var(--_size);
    height: var(--_size);
    border-radius: var(--_radius);
    box-shadow: var(--_shadow-inset) var(--_shadow-h-offset) var(--_shadow-v-offset) var(--_shadow-blur)
      var(--_shadow-spread) var(--_color-shadow);
    background-color: var(--_color-background);

    .element-icon {
      width: var(--_icon-size);
      height: var(--_icon-size);
      color: var(--_color-secondary);
      opacity: var(--_icon-opacity);
    }
  }
/* END_SNIPPET:element.checkbox */

/* START_SNIPPET:element.divider (INDEX:120) */
.element-divider {
    /* Layout & Typography */
    --_width: var(--element-divider-width, 100%);
    --_margin: var(--element-divider-margin, 0);
    --_border-width: var(--element-divider-border-width, var(--size-0-25));

    /* Colors */
    --_color-primary: var(--color-primary);
    --_color-secondary: var(--color-secondary);
    --_shade-border: var(--element-divider-border-shade, var(--shade-12));
    --_border-color: var(
      --element-divider-border-color,
      color-mix(in srgb, var(--_color-primary) var(--_shade-border), var(--_color-secondary))
    );

    width: var(--_width);
    margin: var(--_margin) auto;
    border: 0;
    border-top: var(--_border-width) solid var(--_border-color);
  }

  .element-divider--small {
    --_margin: var(--size-4);
  }

  .element-divider--medium {
    --_margin: var(--size-7-5);
  }

  .element-divider--large {
    --_margin: var(--size-7-5);

    @media (min-width: 769px) {
      --_margin: calc(var(--size-7-5) * 1.5);
    }
  }
/* END_SNIPPET:element.divider */

/* START_SNIPPET:element.icon (INDEX:121) */
:root {
    --element-icon-size: 20px;
    --element-icon-width: initial;
    --element-icon-height: initial;
    --element-icon-stroke-width: 1px;
    --element-icon-stroke-linejoin: miter;
    --element-icon-color: inherit;
    --element-icon-opacity: 1;
  }

  .element-icon {
    /* Layout & Typography */
    --_size: var(--element-icon-size);
    --_width: var(--element-icon-width, var(--_size));
    --_height: var(--element-icon-height, var(--_size));
    --_stroke-width: var(--element-icon-stroke-width);
    --_stroke-linejoin: var(--element-icon-stroke-linejoin);

    /* Colors */
    --_color: var(--element-icon-color);
    --_opacity: var(--element-icon-opacity);

    display: inline-block;
    vertical-align: middle;
    width: var(--_width);
    height: var(--_height);
    color: var(--_color);
    opacity: var(--_opacity);

    &.element-icon--line {
      stroke-width: var(--_stroke-width);
      stroke-linejoin: var(--_stroke-linejoin);
    }
  }
/* END_SNIPPET:element.icon */

/* START_SNIPPET:element.input (INDEX:124) */
:root {
    /* Base Layout Variables */
    --element-input-width: auto;
    --element-input-height: auto;
    --element-input-radius: var(--radius-xs);
    --element-input-padding-inline: var(--size-3);
    --element-input-padding-block: var(--size-3);

    --element-input-font-family: var(--element-text-font-family--body), var(--element-text-font-family-fallback--body);
    --element-input-font-size: var(--element-text-font-size--body-md);
    --element-input-line-height: var(--element-text-line-height--body);
    --element-input-letter-spacing: var(--element-text-letter-spacing--body-md);

    /* Base Outline Variables */
    --element-input-box-shadow-horizontal-offset: 0;
    --element-input-box-shadow-vertical-offset: 0;
    --element-input-box-shadow-blur-radius: 0;
    --element-input-box-shadow-spread-radius: 1px;

    /* Base Colors Variables */
    --element-input-color-primary: initial;
    --element-input-color-secondary: initial;
    --element-input-box-shadow-shade: 12%;
    --element-input-background-shade: 0%;
    --element-input-text-shade: 70%;
    --element-input-text-shade-placeholder: 50%;

    /* Active State Variables */
    --element-input-box-shadow-spread-radius--active: 2px;
    --element-input-box-shadow-shade--active: var(--element-input-box-shadow-shade);
    --element-input-background-shade--active: var(--element-input-background-shade);
    --element-input-text-shade--active: 100%;
    --element-input-box-shadow-color--active: var(--color-focus, #4a9afc);

    /* Focus State Variables */
    --element-input-box-shadow-spread-radius--focus: 2px;
    --element-input-box-shadow-shade--focus: var(--element-input-box-shadow-shade);
    --element-input-background-shade--focus: var(--element-input-background-shade);
    --element-input-text-shade--focus: var(--element-input-text-shade);
    --element-input-box-shadow-color--focus: var(--color-focus, #4a9afc);

    /* Hover State Variables */
    --element-input-box-shadow-spread-radius--hover: 2px;
    --element-input-box-shadow-shade--hover: var(--element-input-box-shadow-shade);
    --element-input-background-shade--hover: 4%;
    --element-input-text-shade--hover: 100%;

    /* Disabled State Variables */
    --element-input-box-shadow-spread-radius--disabled: 2px;
    --element-input-box-shadow-shade--disabled: 8%;
    --element-input-background-shade--disabled: 8%;
    --element-input-text-shade--disabled: 20%;

    /* Error State Variables */
    --element-input-box-shadow-spread-radius--error: 2px;
    --element-input-box-shadow-shade--error: 8%;
    --element-input-background-shade--error: initial;
    --element-input-text-shade--error: 100%;
    --element-input-box-shadow-color--error: var(--color-error, #ff0000);
  }

  .element-input {
    /* Base Layout*/
    --_width: var(--element-input-width);
    --_height: var(--element-input-height);
    --_radius: var(--element-input-radius);
    --_padding-inline: var(--element-input-padding-inline);
    --_padding-block: var(--element-input-padding-block);

    /* Base Typography */
    --_font-family: var(--element-input-font-family);
    --_font-size: var(--element-input-font-size);
    --_line-height: var(--element-input-line-height);
    --_letter-spacing: var(--element-input-letter-spacing);

    /* Base Colors */
    --_color-primary: var(--element-input-color-primary, var(--root-color-primary, #000));
    --_color-secondary: var(--element-input-color-secondary, var(--root-color-secondary, #fff));
    --_color-error: var(--element-input-color-error);
    --_color-active: var(--element-input-color-active);
    --_shade-box-shadow: var(--element-input-box-shadow-shade);
    --_shade-background: var(--element-input-background-shade);
    --_shade-text: var(--element-input-text-shade);
    --_shade-text-placeholder: var(--element-input-text-shade-placeholder);

    --_color-background: color-mix(in srgb, var(--_color-primary) var(--_shade-background), var(--_color-secondary));
    --_color-text: color-mix(in srgb, var(--_color-primary) var(--_shade-text), var(--_color-secondary));
    --_color-text-placeholder: color-mix(
      in srgb,
      var(--_color-primary) var(--_shade-text-placeholder),
      var(--_color-secondary)
    );
    --_color-box-shadow: color-mix(in srgb, var(--_color-primary) var(--_shade-box-shadow), var(--_color-secondary));

    /* Base Outline */
    --_box-shadow-horizontal-offset: var(--element-input-box-shadow-horizontal-offset);
    --_box-shadow-vertical-offset: var(--element-input-box-shadow-vertical-offset);
    --_box-shadow-blur-radius: var(--element-input-box-shadow-blur-radius);
    --_box-shadow-spread-radius: var(--element-input-box-shadow-spread-radius);
    --_box-shadow: inset var(--_box-shadow-horizontal-offset) var(--_box-shadow-vertical-offset)
      var(--_box-shadow-blur-radius) var(--_box-shadow-spread-radius) var(--_color-box-shadow);

    display: flex;
    align-items: center;
    position: relative;
    border: none;
    outline: none;
    padding-inline: var(--_padding-inline);
    padding-block: var(--_padding-block);
    width: var(--_width);
    height: var(--_height);
    border-radius: var(--_radius);
    box-shadow: var(--_box-shadow);
    background-color: var(--_color-background);
    color: var(--_color-text);
    font-family: var(--_font-family);
    font-size: var(--_font-size);
    line-height: var(--_line-height);
    letter-spacing: var(--_letter-spacing);

    &::placeholder {
      color: var(--_color-text-placeholder);
    }

    &:hover:not(:disabled) {
      --_box-shadow-spread-radius: var(--element-input-box-shadow-spread-radius--hover);
      --_shade-box-shadow: var(--element-input-box-shadow-shade--hover);
      --_shade-background: var(--element-input-background-shade--hover);
      --_shade-text: var(--element-input-text-shade--hover);
    }

    &:active {
      --_box-shadow-spread-radius: var(--element-input-box-shadow-spread-radius--active);
      --_shade-box-shadow: var(--element-input-box-shadow-shade--active);
      --_shade-background: var(--element-input-background-shade--active);
      --_shade-text: var(--element-input-text-shade--active);
      --_color-box-shadow: var(--element-input-box-shadow-color--active);
    }

    &:focus {
      --_box-shadow-spread-radius: var(--element-input-box-shadow-spread-radius--focus);
      --_shade-box-shadow: var(--element-input-box-shadow-shade--focus);
      --_shade-background: var(--element-input-background-shade--focus);
      --_shade-text: var(--element-input-text-shade--focus);
      --_color-box-shadow: var(--element-input-box-shadow-color--focus);
    }

    &:disabled {
      --_box-shadow-spread-radius: var(--element-input-box-shadow-spread-radius--disabled);
      --_shade-box-shadow: var(--element-input-box-shadow-shade--disabled);
      --_shade-background: var(--element-input-background-shade--disabled);
      --_shade-text: var(--element-input-text-shade--disabled);
      cursor: not-allowed;
    }

    &[aria-invalid='true'] {
      --_box-shadow-spread-radius: var(--element-input-box-shadow-spread-radius--error);
      --_shade-box-shadow: var(--element-input-box-shadow-shade--error);
      --_shade-background: var(--element-input-background-shade--error);
      --_shade-text: var(--element-input-text-shade--error);
      --_color-box-shadow: var(--element-input-box-shadow-color--error);
    }

    & ~ button {
      --element-button-height: 100%;
    }
  }

  .element-input--inverted {
    --_color-secondary: var(--element-input-color-primary, var(--color-primary, #000));
    --_color-primary: var(--element-input-color-secondary, var(--color-secondary, #fff));
  }

  .element-input--transparent {
    --_color-primary: var(--element-input-color-primary, var(--color-primary, #000));
    --_color-secondary: transparent;
  }

  .element-input--inverted.element-input--transparent {
    --_color-primary: var(--element-input-color-secondary, var(--rootcolor-secondary, #fff));
    --_color-secondary: transparent;
  }

  .element-input--inline {
    --_radius: var(--radius-none);
    --_box-shadow: inset 0 calc(var(--_box-shadow-spread-radius) * -1) 0 0 var(--_color-box-shadow);
  }

  .element-input--full {
    --_width: 100%;
  }

  /* Date input specific styles */
  .element-input[type="date"] {
    text-align: left;
    padding-right: var(--size-8); /* Space for calendar icon */
  }

  .element-input[type="date"]::-webkit-calendar-picker-indicator {
    position: absolute;
    right: var(--_padding-inline);
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    width: var(--size-4);
    height: var(--size-4);
  }

  .element-input[type="date"]::-webkit-datetime-edit {
    width: 100%;
  }

  .element-input[type="date"]::-webkit-datetime-edit-fields-wrapper {
    width: 100%;
  }
/* END_SNIPPET:element.input */

/* START_SNIPPET:element.placeholder (INDEX:126) */
.element-placeholder {
    fill: #999;
    background-color: #e1e1e1;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    display: block;
    padding: 30px 0;
  }

  .element-placeholder--no-padding {
    padding: 0;
  }
/* END_SNIPPET:element.placeholder */

/* START_SNIPPET:element.quantity-selector (INDEX:127) */
.element-quantity-selector {
    --element-input-color-primary: var(--color-primary, #000);
    --element-input-color-secondary: var(--color-secondary, #fff);

    width: fit-content;
    display: inline-block;
    position: relative;
    overflow: visible;
    pointer-events: auto;

    &.is-loading {
      opacity: 0.5;
      pointer-events: none;
    }
  }

  .element-quantity-selector__input {
    --element-input-radius: var(--element-button-radius);
    --element-input-padding-inline: calc(
      var(--element-input-line-height) * var(--element-input-font-size) + 2 * var(--element-input-padding-block)
    );
    --element-input-width: max(calc(var(--digit-count, 1ch) + 2 * var(--size-1)), 32px);
    box-sizing: content-box;
    text-align: center;
  }

  .element-quantity-selector__button {
    --element-button-border-width: 0;
    --element-button-color-primary: var(--element-input-color-primary, var(--root-color-primary, #000));
    --element-button-color-secondary: var(--element-input-color-secondary, var(--root-color-secondary, #fff));

    position: absolute;
    top: 0;
    height: 100%;
    aspect-ratio: 1;
    border: 1px solid transparent;
    background-clip: padding-box;
    z-index: 1;

    &:has(+ .element-quantity-selector__input:focus),
    .element-quantity-selector__input:focus + & {
      border-width: var(--element-input-box-shadow-spread-radius--hover);
    }

    &:is(.element-quantity-selector__button--minus) {
      border-radius: var(--element-button-radius) 0 0 var(--element-button-radius);
      left: 0;
    }

    &:is(.element-quantity-selector__button--plus) {
      border-radius: 0 var(--element-button-radius) var(--element-button-radius) 0;
      right: 0;
    }
  }
/* END_SNIPPET:element.quantity-selector */

/* START_SNIPPET:element.radio (INDEX:128) */
:root {
    --element-radio-size: var(--size-5);
    --element-radio-dot-size: var(--size-2-5);
    --element-radio-dot-opacity: 0;
    --element-radio-radius: 50%;
    --element-radio-gap: var(--size-2);
    --element-radio-border-width: 1px;
    --element-radio-border-width--focus: 2px;

    --element-radio-color-primary: initial;
    --element-radio-color-secondary: initial;
    --element-radio-color-focus: var(--color-focus);
    --element-radio-shade-background: 0%;
    --element-radio-shade-background--hover: 4%;
    --element-radio-shade-background--checked: 100%;
    --element-radio-shade-background--disabled: 8%;
    --element-radio-shade-border: 12%;
    --element-radio-shade-border--disabled: 8%;
  }

  .element-radio {
    /* Layout & Typography */
    --_size: var(--element-radio-size);
    --_dot-size: var(--element-radio-dot-size);
    --_dot-opacity: var(--element-radio-dot-opacity);
    --_radius: var(--element-radio-radius);
    --_gap: var(--element-radio-gap);
    --_border-width: var(--element-radio-border-width);

    /* Colors */
    --_color-primary: var(--element-radio-color-primary, var(--color-primary));
    --_color-secondary: var(--element-radio-color-secondary, var(--color-secondary));
    --_color-focus: var(--element-radio-color-focus, var(--color-focus, #4a9afc));
    --_shade-background: var(--element-radio-shade-background);
    --_shade-border: var(--element-radio-shade-border);

    --_box-shadow: 0 0 0 var(--_border-width) color-mix(in srgb, var(--_color-primary) var(--_shade-border), var(--_color-secondary));

    @media (max-width: 768px) {
      --_size: var(--radio-size, var(--size-4));
      --_dot-size: var(--radio-dot-size, var(--size-2));
    }

    position: relative;
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: var(--_gap);
    cursor: pointer;

    input[type='radio'] {
      position: absolute;
      opacity: 0;
      inset: 0;
      cursor: pointer;
    }

    &:hover {
      --_shade-background: var(--element-radio-shade-background--hover);
    }

    &:has(input[type='radio']:checked) {
      --_dot-opacity: 1;
      --_shade-background: var(--element-radio-shade-background--checked);
    }

    &:has(input[type='radio']:focus-visible) {
      --_border-width: var(--element-radio-border-width--focus);
      --_box-shadow: 0 0 0 var(--_border-width) var(--_color-focus);
    }

    &:has(input[type='radio']:disabled) {
      --_shade-background: var(--element-radio-shade-background--disabled);
      --_shade-border: var(--element-radio-shade-border--disabled);
      cursor: not-allowed;
    }
  }

  .element-radio__icon {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: var(--_size);
    height: var(--_size);
    border-radius: var(--_radius);
    box-shadow: var(--_box-shadow);
    background-color: color-mix(in srgb, var(--_color-primary) var(--_shade-background), var(--_color-secondary));

    &::before {
      content: '';
      width: var(--_dot-size);
      height: var(--_dot-size);
      background-color: var(--_color-secondary);
      border-radius: 50%;
      opacity: var(--_dot-opacity);
    }
  }
/* END_SNIPPET:element.radio */

/* START_SNIPPET:element.select (INDEX:129) */
element-select {
    display: inline-block;
    position: relative;
  }

  /* Ensure the custom element inherits the wrapper styles */
  element-select.element-select__wrapper {
    position: relative;
    display: inline-block;
  }

  element-select.element-select__wrapper select {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
    z-index: 2;
    /* Ensure the select is focusable and visible to screen readers */
    pointer-events: auto;
  }

  /* Focus state for the wrapper */
  element-select.element-select__wrapper--focused .element-button {
    --_box-shadow: 0 0 0 var(--element-input-box-shadow-spread-radius--focus) color-mix(in srgb, var(--color-primary) var(--element-input-box-shadow-shade--focus), transparent);
  }

  element-select select:focus-visible + .element-button {
    --_border-width: var(--element-input-box-shadow-spread-radius--focus);
    --_box-shadow: inset 0 0 0 var(--_border-width) var(--_color-focus);
  }

  /* Ensure the button takes full width */
  element-select .element-button {
    width: 100%;
    justify-content: space-between;
  }
/* END_SNIPPET:element.select */

/* START_SNIPPET:element.swatch (INDEX:130) */
.element-swatch {
    /* Layout */
    --_size-small: var(--element-swatch-size-small, var(--size-4));
    --_size-large: var(--element-swatch-size-large, var(--size-8));
    --_size-mobile-ratio: var(--element-swatch-size-mobile-ratio, 0.875); /* 3.5/4 for small, 6/8 for large (0.75) */
    --_size: var(--_size-small);
    --_radius: var(--element-swatch-radius, var(--radius-full));
    --_border-width: var(--element-swatch-border-width, var(--size-0-25));
    --_outline-width: var(--element-swatch-outline-width, 3px);
    --_line-disabled-width: var(
      --element-swatch-line-disabled-width,
      max(var(--size-0-25), calc(var(--_size) * 0.0625))
    );

    /* Colors */
    --_color-primary: var(--color-primary, #000);
    --_color-secondary: var(--color-secondary, #fff);
    --_color-background: var(--element-swatch-color-background, var(--_color-primary));
    --_color-background-image: var(--element-swatch-color-background-image, none);
    --_color-border: var(--element-swatch-color-border, var(--_color-primary));
    --_color-disabled: var(--element-swatch-color-disabled, none);
    --_color-focus: var(--element-swatch-color-focus, var(--color-focus, #4a9afc));
    --_shade-inset: var(--element-swatch-shade-inset, 16%);
    --_shade-outer: var(--element-swatch-shade-outer, 0%);
    --_shade-outer-hover: var(--element-swatch-shade-outer-hover, 20%);
    --_shade-outer-selected: var(--element-swatch-shade-outer-selected, 100%);

    display: inline-block;
    background: var(--_color-disabled), var(--_color-background-image) center / cover, var(--_color-background);
    width: var(--_size);
    height: var(--_size);
    border-radius: var(--_radius);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--_color-secondary) 100%, transparent),
      0 0 0 var(--_outline-width) color-mix(in srgb, var(--_color-primary) var(--_shade-outer), transparent),
      inset 0 0 0 var(--_border-width) color-mix(in srgb, var(--_color-border) var(--_shade-inset), transparent);
    outline: 0;

    @media only screen and (max-width: 768px) {
      --_size: calc(var(--_size-small) * var(--_size-mobile-ratio));
    }

    label:hover &,
    &:hover {
      --_outline-width: 4px;
      --_shade-outer: var(--_shade-outer-hover);
    }

    &:focus,
    input:checked ~ &,
    .element-swatch--selected {
      --_shade-outer: var(--_shade-outer-selected);
    } 

    /* Focus State */
    &:focus-visible,
    input[type='radio']:focus-visible ~ & {
      --_color-primary: var(--_color-focus);
      --_outline-width: 4px;
    }
  }

  .element-swatch--large {
    --_size: var(--_size-large);

    @media only screen and (max-width: 768px) {
      --_size: calc(var(--_size-large) * var(--_size-mobile-ratio));
    }
  }

  .element-swatch--disabled,
  .disabled > input[type='radio'] ~ &,
  input:disabled + & {
    --_color-disabled: linear-gradient(
      to bottom right,
      transparent calc(50% - var(--_line-disabled-width)),
      var(--color-secondary) calc(50% - var(--_line-disabled-width)) calc(50% + var(--_line-disabled-width)),
      transparent calc(50% + var(--_line-disabled-width))
    );
  }
/* END_SNIPPET:element.swatch */

/* START_SNIPPET:element.text--body (INDEX:131) */
/* Public Body Variables */
  :root {
    /* Body Font Styles */
    --element-text-font-family--body: 'Arial';
    --element-text-font-family-fallback--body: 'sans-serif';
    --element-text-font-weight--body: var(--font-weight-400);
    --element-text-letter-spacing--body: var(--letter-space-md);
    --element-text-text-transform--body: none;
    
    /* Body Color */
    --element-text-color--body: initial;
    
    /* Body Font Sizes */
    --element-text-font-size--body: initial;
    --element-text-font-size--body-xs: var(--text-size-3);
    --element-text-font-size--body-sm: var(--text-size-3-5);
    --element-text-font-size--body-md: var(--text-size-4);
    --element-text-font-size--body-lg: var(--text-size-4-5);
    
    /* Body Line Heights */
    --element-text-line-height--body: var(--line-height-md);
    --element-text-line-height--body-xs: initial;
    --element-text-line-height--body-sm: initial;
    --element-text-line-height--body-md: initial;
    --element-text-line-height--body-lg: initial;
  }

  .element-text:is([class*="element-text--body"]) {
    /* Body Font Styles */
    --_font-family--body: var(--_font-family, var(--element-text-font-family--body));
    --_font-family-fallback--body: var(--_font-family-fallback, var(--element-text-font-family-fallback--body));
    --_font-weight--body: var(--_font-weight, var(--element-text-font-weight--body));
    --_letter-spacing--body: var(--_letter-spacing, var(--element-text-letter-spacing--body));
    --_text-transform--body: var(--_text-transform, var(--element-text-text-transform--body));

    /* Body Color */
    --_color--body: var(--_color, var(--element-text-color--body, currentColor));

    /* Body Font Sizes */
    --_font-size--body: var(--_font-size, var(--element-text-font-size--body));
    --_font-size--body-xs: var(--_font-size--body, var(--element-text-font-size--body-xs));
    --_font-size--body-sm: var(--_font-size--body, var(--element-text-font-size--body-sm));
    --_font-size--body-md: var(--_font-size--body, var(--element-text-font-size--body-md));
    --_font-size--body-lg: var(--_font-size--body, var(--element-text-font-size--body-lg));

    /* Body Line Heights */
    --_line-height--body: var(--_line-height, var(--element-text-line-height--body));
    --_line-height--body-xs: var(--element-text-line-height--body-xs, var(--_line-height--body));
    --_line-height--body-sm: var(--element-text-line-height--body-sm, var(--_line-height--body));
    --_line-height--body-md: var(--element-text-line-height--body-md, var(--_line-height--body));
    --_line-height--body-lg: var(--element-text-line-height--body-lg, var(--_line-height--body));

    font-family: var(--_font-family--body), var(--_font-family-fallback--body);
    font-weight: var(--_font-weight--body);
    letter-spacing: var(--_letter-spacing--body);
    text-transform: var(--_text-transform--body);
    color: var(--_color--body);

    &:where(.element-text--body-xs) {
      --_font-size: var(--_font-size--body-xs); 
      line-height: var(--_line-height--body-xs);
    }

    &:where(.element-text--body-sm) {
      font-size: var(--_font-size--body-sm);
      line-height: var(--_line-height--body-sm);
    }

    &:where(.element-text--body-md) {
      font-size: var(--_font-size--body-md);
      line-height: var(--_line-height--body-md);
    } 

    &:where(.element-text--body-lg) {
      font-size: var(--_font-size--body-lg);
      line-height: var(--_line-height--body-lg);
    }
  }
/* END_SNIPPET:element.text--body */

/* START_SNIPPET:element.text--heading (INDEX:132) */
/* Public Heading Variables */
  :root {
    /* Heading Font Styles */
    --element-text-font-family--heading: 'Arial';
    --element-text-font-family-fallback--heading: 'sans-serif';
    --element-text-font-weight--heading: var(--font-weight-700);
    --element-text-letter-spacing--heading: var(--letter-space-md);
    --element-text-text-transform--heading: none;
    
    /* Heading Color */
    --element-text-color--heading: initial;
    
    /* Heading Font Sizes */
    --element-text-font-size--heading: initial;
    --element-text-font-size--heading-2xl: var(--text-size-12);
    --element-text-font-size--heading-xl: var(--text-size-8);
    --element-text-font-size--heading-lg: var(--text-size-6);
    --element-text-font-size--heading-md: var(--text-size-5);
    --element-text-font-size--heading-sm: var(--text-size-4-5);
    --element-text-font-size--heading-xs: var(--text-size-4);
    --element-text-font-size--heading-2xs: var(--text-size-3-5);
    
    /* Heading Line Heights */
    --element-text-line-height--heading: var(--line-height-md);
    --element-text-line-height--heading-2xl: initial;
    --element-text-line-height--heading-xl: initial;
    --element-text-line-height--heading-lg: initial;
    --element-text-line-height--heading-md: initial;
    --element-text-line-height--heading-sm: initial;
    --element-text-line-height--heading-xs: initial;
    --element-text-line-height--heading-2xs: initial;
  } 

  .element-text:is([class*="element-text--heading"]) {
    /* Heading Font Styles */
    --_font-family--heading: var(--_font-family, var(--element-text-font-family--heading));
    --_font-family-fallback--heading: var(--_font-family-fallback, var(--element-text-font-family-fallback--heading));
    --_font-weight--heading: var(--_font-weight, var(--element-text-font-weight--heading));
    --_letter-spacing--heading: var(--_letter-spacing, var(--element-text-letter-spacing--heading));
    --_text-transform--heading: var(--_text-transform, var(--element-text-text-transform--heading));

    /* Heading Color */
    --_color--heading: var(--_color, var(--element-text-color--heading, currentColor));

    /* Heading Font Sizes */
    --_font-size--heading: var(--_font-size, var(--element-text-font-size--heading));
    --_font-size--heading-2xl: var(--_font-size--heading, var(--element-text-font-size--heading-2xl));
    --_font-size--heading-xl: var(--_font-size--heading, var(--element-text-font-size--heading-xl));
    --_font-size--heading-lg: var(--_font-size--heading, var(--element-text-font-size--heading-lg));
    --_font-size--heading-md: var(--_font-size--heading, var(--element-text-font-size--heading-md));
    --_font-size--heading-sm: var(--_font-size--heading, var(--element-text-font-size--heading-sm));
    --_font-size--heading-xs: var(--_font-size--heading, var(--element-text-font-size--heading-xs));

    /* Heading Line Heights */
    --_line-height--heading: var(--_line-height, var(--element-text-line-height--heading));
    --_line-height--heading-2xl: var(--element-text-line-height--heading-2xl, var(--_line-height--heading));
    --_line-height--heading-xl: var(--element-text-line-height--heading-xl, var(--_line-height--heading));
    --_line-height--heading-lg: var(--element-text-line-height--heading-lg, var(--_line-height--heading));
    --_line-height--heading-md: var(--element-text-line-height--heading-md, var(--_line-height--heading));
    --_line-height--heading-sm: var(--element-text-line-height--heading-sm, var(--_line-height--heading));
    --_line-height--heading-xs: var(--element-text-line-height--heading-xs, var(--_line-height--heading));

    font-family:var(--_font-family--heading), var(--_font-family-fallback--heading);
    font-weight: var(--_font-weight--heading);
    letter-spacing: var(--_letter-spacing--heading);
    text-transform: var(--_text-transform--heading);
    color: var(--_color--heading);

    &:where(.element-text--heading-2xs) {
      font-size: var(--_font-size--heading-2xs);
      line-height: var(--_line-height--heading-2xs);
    }
  
    &:where(.element-text--heading-xs) {
      font-size: var(--_font-size--heading-xs);
      line-height: var(--_line-height--heading-xs);
    }

    &:where(.element-text--heading-sm) {
      font-size: var(--_font-size--heading-sm);
      line-height: var(--_line-height--heading-sm);
    }

    &:where(.element-text--heading-md) {
      font-size: var(--_font-size--heading-md);
      line-height: var(--_line-height--heading-md);
    }

    &:where(.element-text--heading-lg) {
      font-size: var(--_font-size--heading-lg);
      line-height: var(--_line-height--heading-lg);
    }

    &:where(.element-text--heading-xl) {
      font-size: var(--_font-size--heading-xl);
      line-height: var(--_line-height--heading-xl);
    }

    &:where(.element-text--heading-2xl) {
      font-size: var(--_font-size--heading-2xl);
      line-height: var(--_line-height--heading-2xl);
    }
  }
/* END_SNIPPET:element.text--heading */

/* START_SNIPPET:element.text--rte (INDEX:133) */
/* Public RTE Variables */
  :root {
    /* Body Font Stack */
    --element-text-font-family--rte-body: var(--element-text-font-family--body);
    --element-text-font-family-fallback--rte-body: var(--element-text-font-family-fallback--body);
    --element-text-font-weight--rte-body: var(--element-text-font-weight--body);
    --element-text-letter-spacing--rte-body: var(--element-text-letter-spacing--body);
    --element-text-line-height--rte-body: var(--element-text-line-height--body);
    --element-text-text-transform--rte-body: var(--element-text-text-transform--body);

    /* Body Font Sizes */
    --element-text-font-size--rte-body: var(--element-text-font-size--body-md);
    --element-text-line-height--rte-body: var(--element-text-line-height--body);

    /* Heading Font Stack */
    --element-text-font-family--rte-heading: var(--element-text-font-family--heading);
    --element-text-font-family-fallback--rte-heading: var(--element-text-font-family-fallback--heading);
    --element-text-font-weight--rte-heading: var(--element-text-font-weight--heading);
    --element-text-letter-spacing--rte-heading: var(--element-text-letter-spacing--heading);
    --element-text-text-transform--rte-heading: var(--element-text-text-transform--heading);

    /* Heading Font Sizes */
    --element-text-font-size--rte-heading-h1: var(--element-text-font-size--heading-xl);
    --element-text-line-height--rte-heading-h1: var(--element-text-line-height--heading-xl);
    --element-text-font-size--rte-heading-h2: var(--element-text-font-size--heading-lg);
    --element-text-line-height--rte-heading-h2: var(--element-text-line-height--heading-lg);
    --element-text-font-size--rte-heading-h3: var(--element-text-font-size--heading-md);
    --element-text-line-height--rte-heading-h3: var(--element-text-line-height--heading-md);
    --element-text-font-size--rte-heading-h4: var(--element-text-font-size--heading-sm);
    --element-text-line-height--rte-heading-h4: var(--element-text-line-height--heading-sm);
    --element-text-font-size--rte-heading-h5: var(--element-text-font-size--heading-xs);
    --element-text-line-height--rte-heading-h5: var(--element-text-line-height--heading-xs);
    --element-text-font-size--rte-heading-h6: var(--element-text-font-size--heading-xs);
  }

  .element-text.element-text--rte {
    /* Body Font Stack */
    --_font-family--rte-body: var(--element-text-font-family--rte-body);
    --_font-family-fallback--rte-body: var(--element-text-font-family-fallback--rte-body);
    --_font-weight--rte-body: var(--element-text-font-weight--rte-body);
    --_letter-spacing--rte-body: var(--element-text-letter-spacing--rte-body);
    --_text-transform--rte-body: var(--element-text-text-transform--rte-body);

    /* Body Font Sizes */
    --_line-height--rte-body: var(--element-text-line-height--rte-body);
    --_font-size--rte-body: var(--element-text-font-size--rte-body);

    /* Heading Font Stack */
    --_font-family--rte-heading: var(--element-text-font-family--rte-heading);
    --_font-family-fallback--rte-heading: var(--element-text-font-family-fallback--rte-heading);
    --_font-weight--rte-heading: var(--element-text-font-weight--rte-heading);
    --_letter-spacing--rte-heading: var(--element-text-letter-spacing--rte-heading);
    --_text-transform--rte-heading: var(--element-text-text-transform--rte-heading);

    /* Heading Font Sizes */
    --_font-size--rte-heading-h1: var(--element-text-font-size--rte-heading-h1);
    --_line-height--rte-heading-h1: var(--element-text-line-height--rte-heading-h1);
    --_font-size--rte-heading-h2: var(--element-text-font-size--rte-heading-h2);
    --_line-height--rte-heading-h2: var(--element-text-line-height--rte-heading-h2);
    --_font-size--rte-heading-h3: var(--element-text-font-size--rte-heading-h3);
    --_line-height--rte-heading-h3: var(--element-text-line-height--rte-heading-h3);
    --_font-size--rte-heading-h4: var(--element-text-font-size--rte-heading-h4);
    --_line-height--rte-heading-h4: var(--element-text-line-height--rte-heading-h4);
    --_font-size--rte-heading-h5: var(--element-text-font-size--rte-heading-h5);
    --_line-height--rte-heading-h5: var(--element-text-line-height--rte-heading-h5);
    --_font-size--rte-heading-h6: var(--element-text-font-size--rte-heading-h6);
    --_line-height--rte-heading-h6: var(--element-text-line-height--rte-heading-h6);

    font-size: var(--_font-size--rte-body);
    font-family: var(--_font-family--rte-body), var(--_font-family-fallback--rte-body);
    font-weight: var(--_font-weight--rte-body);
    letter-spacing: var(--_letter-spacing--rte-body);
    text-transform: var(--_text-transform--rte-body);
    line-height: var(--_line-height--rte-body);

    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
      font-family: var(--_font-family--rte-heading), var(--_font-family-fallback--rte-heading);
      font-weight: var(--_font-weight--rte-heading);
      letter-spacing: var(--_letter-spacing--rte-heading);
      text-transform: var(--_text-transform--rte-heading);
      margin: 0 0 var(--size-4);

      @media only screen and (min-width: 769px) {
        margin: 0 0 var(--size-5);
      }
    }

    h6 {
      font-size: var(--_font-size--rte-heading-h6);
      line-height: var(--_line-height--rte-heading-h6);
    }

    h5 {
      font-size: var(--_font-size--rte-heading-h5);
      line-height: var(--_line-height--rte-heading-h5);
    }

    h4 {
      font-size: var(--_font-size--rte-heading-h4);
      line-height: var(--_line-height--rte-heading-h4);
    }

    h3 {
      font-size: var(--_font-size--rte-heading-h3);
      line-height: var(--_line-height--rte-heading-h3);
    }

    h2 {
      font-size: var(--_font-size--rte-heading-h2);
      line-height: var(--_line-height--rte-heading-h2);
    }

    h1 {
      font-size: var(--_font-size--rte-heading-h1);
      line-height: var(--_line-height--rte-heading-h1);
    }

    a {
      text-decoration: underline;
    }

    p {
      margin-bottom: var(--size-8);

      &:last-child {
        margin-bottom: 0;
      }
    }

    & table {
      @media only screen and (max-width: 768px) {
        & td,
        & th {
          padding: 6px 8px;
        }
      }
    }

    .table-wrapper {
      max-width: 100%;
      overflow: auto;
      -webkit-overflow-scrolling: touch;
    }

    .video-wrapper {
      position: relative;
      overflow: hidden;
      max-width: 100%;
      padding-bottom: 56.25%;

      & iframe,
      & video {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
      }
    }
  }
/* END_SNIPPET:element.text--rte */

/* START_SNIPPET:element.text (INDEX:134) */
:root {
    --element-text-font-family: initial;
    --element-text-font-family-fallback: initial;
    --element-text-font-weight: initial;
    --element-text-letter-spacing: initial;
    --element-text-text-transform: initial;
    --element-text-line-height: initial;
    --element-text-color: initial;
    --element-text-font-size: initial;
  }

  .element-text {
    /* Base Typography Variables */
    --_font-family: var(--element-text-font-family);
    --_font-family-fallback: var(--element-text-font-family-fallback);
    --_font-weight: var(--element-text-font-weight);
    --_letter-spacing: var(--element-text-letter-spacing);
    --_text-transform: var(--element-text-text-transform);
    --_line-height: var(--element-text-line-height);
    --_color: var(--element-text-color, currentColor);
    --_font-size: var(--element-text-font-size);

    font-family: var(--_font-family), var(--_font-family-fallback);
    font-weight: var(--_font-weight);
    letter-spacing: var(--_letter-spacing);
    text-transform: var(--_text-transform);
    line-height: var(--_line-height);
    color: var(--_color);
    font-size: var(--_font-size);
    margin: 0;
    -webkit-font-smoothing: antialiased;

    &.element-text--price {
      sup {
        top: -0.5em;
        font-size: 60%;
      }
    }

    &.element-text--align-start {
      text-align: start;
    }

    &.element-text--align-center {
      text-align: center;
    }

    &.element-text--align-end {
      text-align: end;
    }

    &.element-text--align-justify {
      text-align: justify;
    }

    &.element-text--break-word {
      word-break: break-word;
    }

    &.element-text--truncate {
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    &.element-text--visually-hidden {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      border: 0;
    }

    &.element-text--line-through {
      text-decoration: line-through;
    }

    &.element-text--line-through.element-text--price-superscript {
      text-decoration: none;

      span {
        text-decoration: line-through;
      }
      
      sup {
        text-decoration: line-through;
        position: relative;
        top: -0.5em;
        font-size: 60%;
      }
    }

    &.element-text--underline {
      text-decoration: underline;
    }

    &.element-text--uppercase {
      text-transform: uppercase;
    }

    &.element-text--lowercase {
      text-transform: lowercase;
    }

    &.element-text--capitalize {
      text-transform: capitalize;
    }
  }
/* END_SNIPPET:element.text */

/* START_SNIPPET:element.video (INDEX:135) */
video-media {
    --default-aspect-ratio: 16 / 9;

    display: block;
    position: relative;
    width: 100%;
    aspect-ratio: var(--aspect-ratio, var(--default-aspect-ratio));
  }

  video-media > :is(video, iframe, img, svg) {
    border-radius: inherit;
    width: 100%;
    height: 100%;
    transition: opacity 0.2s ease-in-out, visibility 0.2s ease-in-out;
  }

  video-media > img,
  video-media > svg,
  video-media > video:not(:fullscreen) {
    object-fit: cover;
    object-position: center;
  }

  .element-video[data-background='true'] > video-media,
  .element-video[data-background='true'] > .element-placeholder {
    position: absolute;
    height: 100%;
    width: 100%;
  }

  .element-video.aspect-ratio--square {
    --aspect-ratio: 1 / 1;
    aspect-ratio: 1 / 1;
  }

  .element-video.aspect-ratio--portrait {
    --aspect-ratio: 9 / 16;
    aspect-ratio: 9 / 16;
  }

  .element-video.aspect-ratio--landscape,
  .element-video.aspect-ratio--16-9 {
    --aspect-ratio: 16 / 9;
    aspect-ratio: 16 / 9;
  }

  video-media:not([loaded]) > :is(video, iframe),
  video-media[loaded] > img,
  video-media[loaded] > svg {
    visibility: hidden;
    opacity: 0;
  }
/* END_SNIPPET:element.video */

/* START_SNIPPET:form.product (INDEX:142) */
.product-form__submit-button--pulsing {
    animation: product-form-pulse 1.5s ease-in-out infinite;
    pointer-events: none;
    opacity: 0.6;
  }
  
  @keyframes product-form-pulse {
    0%, 100% { opacity: 0.6; }
    50% { opacity: 1; }
  }
/* END_SNIPPET:form.product */

/* START_SNIPPET:form.product.messages (INDEX:143) */
product-form-messages {
    display: inline;
  }

  product-form-messages.hide {
    display: none;
  }
/* END_SNIPPET:form.product.messages */

/* START_SNIPPET:kit.button (INDEX:153) */
.kit-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5em;
    font-family: var(--kit-font-family-body);
    border-radius: var(--kit-radius-md);
    cursor: pointer;
    text-decoration: none;
    border: none;
    transition: background var(--kit-transition-normal);
    line-height: var(--kit-body-line-height);
    letter-spacing: var(--kit-body-letter-spacing);
    background: var(--kit-button-color-background);
    color: var(--kit-button-color-text);
    box-shadow: inset 0 0 0 1px var(--kit-button-color-border);
  }

  /* Variants */
  .kit-button--primary {
    --kit-button-color-background: var(--kit-color-primary-button, var(--kit-color-primary));
    --kit-button-color-text: var(--kit-color-on-primary-button, var(--kit-color-secondary));
    --kit-button-color-border: var(--kit-color-primary-button-border, var(--kit-button-color-background));
  }

  .kit-button--secondary {
    --kit-button-color-background: var(--kit-color-secondary-button, var(--kit-color-secondary));
    --kit-button-color-text: var(--kit-color-on-secondary-button, var(--kit-color-primary));
    --kit-button-color-border: var(--kit-color-secondary-button-border, var(--kit-button-color-text));
  }

  .kit-button--transparent {
    --kit-button-color-background: transparent;
    --kit-button-color-text: var(--kit-color-on-secondary-button, var(--kit-color-primary));
    --kit-button-color-border: transparent;
  }

  /* Sizes */
  .kit-button--sm {
    padding: 0.375rem 0.75rem;
    font-size: var(--kit-font-size-sm);
  }

  .kit-button--md {
    padding: 0.5rem 1.25rem;
    font-size: var(--kit-font-size-base);
  }

  .kit-button--lg {
    padding: 0.75rem 1.75rem;
    font-size: var(--kit-font-size-lg);
  }

  .kit-button--icon-only.kit-button--sm { padding: 0.375rem; }
  .kit-button--icon-only.kit-button--md { padding: 0.5rem; }
  .kit-button--icon-only.kit-button--lg { padding: 0.75rem; }

  /* States */
  .kit-button:hover {
    background: color-mix(in srgb, var(--kit-button-color-text) var(--kit-color-mix-hover), var(--kit-button-color-background));
  }

  .kit-button:active,
  .kit-button:focus-visible {
    background: color-mix(in srgb, var(--kit-button-color-text) var(--kit-color-mix-active), var(--kit-button-color-background));
  }

  .kit-button--full-width {
    width: 100%;
  }

  .kit-button--disabled {
    opacity: var(--kit-opacity-disabled);
    pointer-events: none;
  }

  /* Loading — toggled via JS:
     el.classList.add('kit-button--loading');
     el.disabled = true;                          // <button>
     el.setAttribute('aria-disabled', 'true');    // <a>
  */
  .kit-button.kit-button--loading {
    position: relative;
    pointer-events: none;
  }

  .kit-button--loading::before {
    content: '';
    position: absolute;
    inset: 1px;
    background: inherit;
    border-radius: inherit;
  }

  .kit-button.kit-button--loading::before {
    background: var(--kit-button-color-background);
  }

  .kit-button--transparent.kit-button--loading::before {
    background: var(--kit-color-secondary);
  }

  .kit-button--loading::after {
    content: '';
    position: absolute;
    inset: 0;
    margin: auto;
    width: 1em;
    height: 1em;
    border: 2px solid currentColor;
    border-top-color: transparent;
    border-radius: 50%;
    animation: kit-button-spin 0.6s linear infinite;
  }

  @keyframes kit-button-spin {
    to {
      transform: rotate(360deg);
    }
  }
/* END_SNIPPET:kit.button */

/* START_SNIPPET:kit.content-over-media (INDEX:154) */
.kit-content-over-media {
    display: grid;
    overflow: hidden;
    position: relative;

    /* Layout state — default: overlay */
    --_cols: 1fr min(var(--kit-page-width), 100%) 1fr;
    --_rows: 1fr;
    --_content-col: 2;
    --_content-row: 1;
    --_content-place: var(--com-place);
    --_content-align: var(--com-text-align);
    --_media-row: 1;
    --_overlay: '';

    grid-template-columns: var(--_cols);
    grid-template-rows: var(--_rows);

    /* Break inheritance chain for nested instances */
    --com-layout: initial;
    --com-layout-md: initial;
    --com-layout-lg: initial;
    --com-layout-xl: initial;
    --com-place: initial;
    --com-place-md: initial;
    --com-place-lg: initial;
    --com-place-xl: initial;
    --com-text-align: initial;
    --com-text-align-md: initial;
    --com-text-align-lg: initial;
    --com-text-align-xl: initial;
  }

  .kit-content-over-media__media {
    grid-column: 1 / -1;
    grid-row: var(--_media-row);
    display: grid;
  }

  .kit-content-over-media > .kit-content-over-media__media > *,
  .kit-content-over-media__media > picture > img {
    grid-area: 1 / 1;
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
  }

  .kit-content-over-media--overlay::after {
    content: var(--_overlay);
    grid-column: 1 / -1;
    grid-row: var(--_media-row);
    background: color-mix(in srgb, var(--kit-color-tint) var(--kit-color-mix-tint-overlay), transparent);
    z-index: 1;
    pointer-events: none;
  }

  .kit-content-over-media__content {
    grid-column: var(--_content-col);
    grid-row: var(--_content-row);
    z-index: 2;
    padding: var(--kit-section-gutter);
    place-self: var(--_content-place);
    text-align: var(--_content-align);
  }

  /* Stacking — base */
  .kit-content-over-media[style*='--com-layout: stack-below'],
  .kit-content-over-media[style*='--com-layout: stack-above'] {
    --_cols: 1fr;
    --_rows: auto auto;
    --_content-col: 1;
    --_content-row: 2;
    --_content-place: auto;
    --_media-row: 1;
    --_overlay: none;
  }

  .kit-content-over-media[style*='--com-layout: stack-above'] {
    --_content-row: 1;
    --_media-row: 2;
  }

  @media (min-width: 700px) {
    .kit-content-over-media[style*='--com-layout-md: overlay'] {
      --_cols: 1fr min(var(--kit-page-width), 100%) 1fr;
      --_rows: 1fr;
      --_content-col: 2;
      --_content-row: 1;
      --_content-place: var(--com-place);
      --_content-align: var(--com-text-align);
      --_media-row: 1;
      --_overlay: '';
    }

    .kit-content-over-media[style*='--com-layout-md: stack-below'],
    .kit-content-over-media[style*='--com-layout-md: stack-above'] {
      --_cols: 1fr;
      --_rows: auto auto;
      --_content-col: 1;
      --_content-row: 2;
      --_content-place: auto;
      --_media-row: 1;
      --_overlay: none;
    }

    .kit-content-over-media[style*='--com-layout-md: stack-above'] {
      --_content-row: 1;
      --_media-row: 2;
    }

    .kit-content-over-media[style*='--com-place-md'] {
      --_content-place: var(--com-place-md);
      --_content-align: var(--com-text-align-md);
    }
  }

  @media (min-width: 1024px) {
    .kit-content-over-media[style*='--com-layout-lg: overlay'] {
      --_cols: 1fr min(var(--kit-page-width), 100%) 1fr;
      --_rows: 1fr;
      --_content-col: 2;
      --_content-row: 1;
      --_content-place: var(--com-place);
      --_content-align: var(--com-text-align);
      --_media-row: 1;
      --_overlay: '';
    }

    .kit-content-over-media[style*='--com-layout-lg: stack-below'],
    .kit-content-over-media[style*='--com-layout-lg: stack-above'] {
      --_cols: 1fr;
      --_rows: auto auto;
      --_content-col: 1;
      --_content-row: 2;
      --_content-place: auto;
      --_media-row: 1;
      --_overlay: none;
    }

    .kit-content-over-media[style*='--com-layout-lg: stack-above'] {
      --_content-row: 1;
      --_media-row: 2;
    }

    .kit-content-over-media[style*='--com-place-lg'] {
      --_content-place: var(--com-place-lg);
      --_content-align: var(--com-text-align-lg);
    }
  }

  @media (min-width: 1200px) {
    .kit-content-over-media[style*='--com-layout-xl: overlay'] {
      --_cols: 1fr min(var(--kit-page-width), 100%) 1fr;
      --_rows: 1fr;
      --_content-col: 2;
      --_content-row: 1;
      --_content-place: var(--com-place);
      --_content-align: var(--com-text-align);
      --_media-row: 1;
      --_overlay: '';
    }

    .kit-content-over-media[style*='--com-layout-xl: stack-below'],
    .kit-content-over-media[style*='--com-layout-xl: stack-above'] {
      --_cols: 1fr;
      --_rows: auto auto;
      --_content-col: 1;
      --_content-row: 2;
      --_content-place: auto;
      --_media-row: 1;
      --_overlay: none;
    }

    .kit-content-over-media[style*='--com-layout-xl: stack-above'] {
      --_content-row: 1;
      --_media-row: 2;
    }

    .kit-content-over-media[style*='--com-place-xl'] {
      --_content-place: var(--com-place-xl);
      --_content-align: var(--com-text-align-xl);
    }
  }
/* END_SNIPPET:kit.content-over-media */

/* START_SNIPPET:kit.image (INDEX:155) */
.kit-image {
    display: block;
    max-width: 100%;
    height: auto;
  }

  .kit-image--ratio {
    width: 100%;
  }

  .kit-image--fill {
    width: 100%;
    height: 100%;
  }
/* END_SNIPPET:kit.image */

/* START_SNIPPET:kit.placeholder (INDEX:157) */
.kit-placeholder {
    width: 100%;
    height: 100%;
    overflow: hidden;
  }

  .kit-placeholder svg {
    width: 100%;
    height: 100%;
    display: block;
  }

  .kit-placeholder--outline {
    fill: currentColor;
    opacity: 0.3;
  }
/* END_SNIPPET:kit.placeholder */

/* START_SNIPPET:kit.popover (INDEX:158) */
.kit-popover {
    position: absolute;
    inset: auto;
    margin: 0;
    padding: var(--kit-space-md);
    border: none;
    border-radius: var(--kit-radius-md);
    box-shadow: var(--kit-shadow-md);
    background-color: var(--kit-color-secondary);
    color: var(--kit-color-primary);
    font-family: var(--kit-font-family-body);
    font-size: var(--kit-font-size-base);
    line-height: var(--kit-body-line-height);
    letter-spacing: var(--kit-body-letter-spacing);
  }

  .kit-popover:popover-open {
    animation: kit-popover-show 150ms ease;
  }

  @keyframes kit-popover-show {
    from {
      opacity: 0;
      scale: 0.96;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .kit-popover:popover-open {
      animation: none;
    }
  }

  @media (forced-colors: active) {
    .kit-popover {
      border: solid 1px;
    }
  }
/* END_SNIPPET:kit.popover */

/* START_SNIPPET:kit.section (INDEX:159) */
.kit-section {
    width: 100%;
  }

  .kit-section__content {
    max-width: var(--kit-page-width);
    margin-inline: auto;
    padding-inline: var(--kit-section-gutter);
  }

  .kit-section--full-width > .kit-section__content {
    max-width: none;
    padding-inline: 0;
  }

  .kit-section--padding-top {
    padding-top: var(--kit-section-spacing);
  }

  .kit-section--padding-bottom {
    padding-bottom: var(--kit-section-spacing);
  }
/* END_SNIPPET:kit.section */

/* START_SNIPPET:kit.stack (INDEX:160) */
.kit-stack {
    display: flex;
    flex-direction: var(--stack-direction, column);
    gap: var(--stack-gap, 0);
    margin: 0;
    padding: 0;

    /* Break inheritance chain for nested stacks */
    --stack-direction: initial;
    --stack-direction-md: initial;
    --stack-direction-lg: initial;
    --stack-direction-xl: initial;
    --stack-gap: initial;
    --stack-gap-md: initial;
    --stack-gap-lg: initial;
    --stack-gap-xl: initial;
  }

  /* Wrap */
  .kit-stack--wrap {
    flex-wrap: wrap;
  }

  /* Align (cross-axis) */
  .kit-stack--align-start {
    align-items: flex-start;
  }

  .kit-stack--align-center {
    align-items: center;
  }

  .kit-stack--align-end {
    align-items: flex-end;
  }

  .kit-stack--align-stretch {
    align-items: stretch;
  }

  .kit-stack--align-baseline {
    align-items: baseline;
  }

  /* Justify (main-axis) */
  .kit-stack--justify-start {
    justify-content: flex-start;
  }

  .kit-stack--justify-center {
    justify-content: center;
  }

  .kit-stack--justify-end {
    justify-content: flex-end;
  }

  .kit-stack--justify-between {
    justify-content: space-between;
  }

  /* Responsive */
  @media (min-width: 700px) {
    .kit-stack[style*='--stack-direction-md'] {
      flex-direction: var(--stack-direction-md);
    }

    .kit-stack[style*='--stack-gap-md'] {
      gap: var(--stack-gap-md);
    }
  }

  @media (min-width: 1024px) {
    .kit-stack[style*='--stack-direction-lg'] {
      flex-direction: var(--stack-direction-lg);
    }

    .kit-stack[style*='--stack-gap-lg'] {
      gap: var(--stack-gap-lg);
    }
  }

  @media (min-width: 1200px) {
    .kit-stack[style*='--stack-direction-xl'] {
      flex-direction: var(--stack-direction-xl);
    }

    .kit-stack[style*='--stack-gap-xl'] {
      gap: var(--stack-gap-xl);
    }
  }
/* END_SNIPPET:kit.stack */

/* START_SNIPPET:kit.text (INDEX:161) */
.kit-text {
    font-family: inherit;
    font-size: var(--kit-font-size-base);
    font-weight: var(--kit-font-weight-normal);
    line-height: var(--kit-body-line-height);
    letter-spacing: var(--kit-body-letter-spacing);
    color: inherit;
    margin: 0;
  }

  /* Heading variants */
  .kit-text--heading-xl {
    font-family: var(--kit-font-family-heading);
    font-size: var(--kit-heading-font-size-xl);
    font-weight: var(--kit-heading-font-weight);
    line-height: var(--kit-heading-line-height);
    letter-spacing: var(--kit-heading-letter-spacing);
    text-transform: var(--kit-heading-text-transform);
  }

  .kit-text--heading-lg {
    font-family: var(--kit-font-family-heading);
    font-size: var(--kit-heading-font-size-lg);
    font-weight: var(--kit-heading-font-weight);
    line-height: var(--kit-heading-line-height);
    letter-spacing: var(--kit-heading-letter-spacing);
    text-transform: var(--kit-heading-text-transform);
  }

  .kit-text--heading-md {
    font-family: var(--kit-font-family-heading);
    font-size: var(--kit-heading-font-size-md);
    font-weight: var(--kit-heading-font-weight);
    line-height: var(--kit-heading-line-height);
    letter-spacing: var(--kit-heading-letter-spacing);
    text-transform: var(--kit-heading-text-transform);
  }

  .kit-text--heading-sm {
    font-family: var(--kit-font-family-heading);
    font-size: var(--kit-heading-font-size-sm);
    font-weight: var(--kit-heading-font-weight);
    line-height: var(--kit-heading-line-height);
    letter-spacing: var(--kit-heading-letter-spacing);
    text-transform: var(--kit-heading-text-transform);
  }

  /* Body variants */
  .kit-text--body-sm {
    font-size: var(--kit-font-size-sm);
  }

  .kit-text--caption {
    font-size: var(--kit-font-size-xs);
    color: color-mix(in srgb, var(--kit-color-primary) var(--kit-color-mix-text-subdued), var(--kit-color-secondary));
  }

  /* Alignment */
  .kit-text--align-start {
    text-align: start;
  }

  .kit-text--align-center {
    text-align: center;
  }

  .kit-text--align-end {
    text-align: end;
  }

  /* Utilities */
  .kit-text--balance {
    text-wrap: balance;
  }
/* END_SNIPPET:kit.text */

/* START_SNIPPET:kit.tokens (INDEX:162) */
@layer kit {
    :root {
      /* Base colors */
      --kit-color-primary: #000;
      --kit-color-secondary: #fff;
      --kit-color-tint: #000; /* for shadows, overlays, etc. */

      /* Absolute colors */
      --kit-color-focus: #4a9afc;
      --kit-color-border: initial; /* takes precedence over --kit-color-mix-border when set */
      --kit-color-links: currentColor;
      --kit-color-icons: currentColor;
      --kit-color-success: #16a34a;
      --kit-color-error: #dc2626;
      --kit-color-info: #3b82f6;
      --kit-color-warning: #f59e0b;
      --kit-color-sale: #980606;
      --kit-color-sale-contrast: #fff;
      --kit-color-sold-out: #000;
      --kit-color-sold-out-contrast: #fff;

      /* Primary/secondary: for color-mix(in srgb, var(--kit-color-primary) [%], var(--kit-color-secondary)); */
      --kit-color-mix-off-background: 4%;
      --kit-color-mix-border: 16%;
      --kit-color-mix-text-subdued: 60%;
      --kit-color-mix-hover: 12%;
      --kit-color-mix-active: 16%;
      --kit-color-mix-disabled: 8%;
      --kit-color-mix-on-disabled: 30%;

      /* Tint: for color-mix(in srgb, var(--kit-color-tint) [%], transparent) */
      --kit-color-mix-tint-shadow: 8%;
      --kit-color-mix-tint-overlay-light: 15%;
      --kit-color-mix-tint-overlay: 50%;

      /* Opacity */
      --kit-opacity-disabled: 0.5;

      /* Typography — Families */
      --kit-font-family-body: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
      --kit-font-family-heading: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;

      /* Typography — Sizes (mobile-first) */
      --kit-font-size-xs: 0.75rem;
      --kit-font-size-sm: 0.75rem;
      --kit-font-size-base: 0.875rem;
      --kit-font-size-lg: 1rem;
      --kit-font-size-xl: 1.125rem;
      --kit-font-size-2xl: 1.25rem;
      --kit-font-size-3xl: 1.5rem;

      /* Typography — Weights */
      --kit-font-weight-normal: 400;
      --kit-font-weight-semibold: 600;
      --kit-font-weight-bold: 700;

      /* Typography — Heading sizes (mobile-first, independent from shared scale) */
      --kit-heading-font-size-sm: 1rem;
      --kit-heading-font-size-md: 1.125rem;
      --kit-heading-font-size-lg: 1.25rem;
      --kit-heading-font-size-xl: 1.5rem;

      /* Typography — Headings */
      --kit-heading-font-weight: 700;
      --kit-heading-line-height: 1.2;
      --kit-heading-letter-spacing: -0.025em;
      --kit-heading-text-transform: none;

      /* Typography — Body */
      --kit-body-font-style: normal;
      --kit-body-line-height: 1.5;
      --kit-body-letter-spacing: normal;

      /* Spacing */
      --kit-space-2xs: 0.25rem;
      --kit-space-xs: 0.5rem;
      --kit-space-sm: 0.75rem;
      --kit-space-md: 1rem;
      --kit-space-lg: 1.5rem;
      --kit-space-xl: 2rem;
      --kit-space-2xl: 3rem;

      /* Border radius */
      --kit-radius-sm: 0.25rem;
      --kit-radius-md: 0.5rem;
      --kit-radius-lg: 1rem;
      --kit-radius-full: 9999px;

      /* Shadows */
      --kit-shadow-inner: inset 0 0 0 1px
        color-mix(in srgb, var(--kit-color-tint) var(--kit-color-mix-tint-overlay-light), transparent);
      --kit-shadow-xs: 0 0.5px 0.5px 3px
        color-mix(in srgb, var(--kit-color-tint) var(--kit-color-mix-tint-shadow), transparent);
      --kit-shadow-sm: 0 1px 2px 0
        color-mix(in srgb, var(--kit-color-tint) var(--kit-color-mix-tint-shadow), transparent);
      --kit-shadow-md: 0 2px 4px -1px color-mix(in srgb, var(--kit-color-tint) var(--kit-color-mix-tint-shadow), transparent);
      --kit-shadow-lg: 0 8px 16px -4px color-mix(in srgb, var(--kit-color-tint) var(--kit-color-mix-tint-shadow), transparent);

      /* Transitions */
      --kit-transition-fast: 75ms ease;
      --kit-transition-normal: 150ms ease;
      --kit-transition-slow: 300ms ease;

      /* Focus */
      --kit-focus-ring: 2px solid var(--kit-color-focus);
      --kit-focus-ring-offset: 0;

      /* Icons */
      --kit-icon-stroke-width: 1px;

      /* Layout */
      --kit-page-width: 1500px;
      --kit-section-spacing: 2rem;
      --kit-section-gutter: var(--kit-space-md);
    }

    @media (min-width: 700px) {
      :root {
        --kit-font-size-sm: 0.875rem;
        --kit-font-size-base: 1rem;
        --kit-font-size-lg: 1.125rem;
        --kit-font-size-xl: 1.25rem;
        --kit-font-size-2xl: 1.5rem;
        --kit-font-size-3xl: 1.875rem;

        --kit-heading-font-size-sm: 1.125rem;
        --kit-heading-font-size-md: 1.25rem;
        --kit-heading-font-size-lg: 1.5rem;
        --kit-heading-font-size-xl: 1.875rem;
      }
    }

    /* Global focus style for kit interactive elements */
    [class^='kit-']:focus-visible,
    [class*=' kit-']:focus-visible {
      outline: var(--kit-focus-ring);
      outline-offset: var(--kit-focus-ring-offset);
    }
  }
/* END_SNIPPET:kit.tokens */

/* START_SNIPPET:layout.grid (INDEX:164) */
/* Public Layout Grid Tokens */
  :root {
    /* Layout Grid Gap Sizes - These are assigned by the value passed to the 'gap' param */
    --layout-grid-gap-size-none: 0px;
    --layout-grid-gap-size-3xs: var(--gap-size-3xs);
    --layout-grid-gap-size-2xs: var(--gap-size-2xs);
    --layout-grid-gap-size-xs: var(--gap-size-xs);
    --layout-grid-gap-size-sm: var(--gap-size-sm);
    --layout-grid-gap-size-md: var(--gap-size-md);
    --layout-grid-gap-size-lg: var(--gap-size-lg);
    --layout-grid-gap-size-xl: var(--gap-size-xl);
    --layout-grid-gap-size-2xl: var(--gap-size-2xl);

    /* Layout Grid Line Sizes - These are assigned by the value passed to the 'lines' param */
    --layout-grid-line-size-none: 0px;
    --layout-grid-line-size-xs: var(--line-size-xs);
    --layout-grid-line-size-sm: var(--line-size-sm);
    --layout-grid-line-size-md: var(--line-size-md);
    --layout-grid-line-size-lg: var(--line-size-lg);
    --layout-grid-line-size-xl: var(--line-size-xl);

    --layout-grid-line-color-shade: 12%;
  }
/* END_SNIPPET:layout.grid */

/* START_SNIPPET:layout.section (INDEX:165) */
:root {
    --layout-section-max-inline-size: var(--page-width, 1500px);

    --layout-section-padding-inline: var(--size-4);
    --layout-section-padding-inline--xs: initial;
    --layout-section-padding-inline--sm: initial;
    --layout-section-padding-inline--md: initial;
    --layout-section-padding-inline--lg: initial;
    --layout-section-padding-inline--xl: initial;

    --layout-section-padding-block: var(--size-8);
    --layout-section-padding-block--xs: initial;
    --layout-section-padding-block--sm: initial;
    --layout-section-padding-block--md: initial;
    --layout-section-padding-block--lg: initial;
    --layout-section-padding-block--xl: initial;

    --layout-section-color: initial;
    --layout-section-background: initial;
  }

  .layout-section {
    --_max-inline-size: var(--layout-section-max-inline-size);

    --_padding-inline--xs: var(--layout-section-padding-inline--xs, var(--layout-section-padding-inline));
    --_padding-inline--sm: var(--layout-section-padding-inline--sm, var(--_padding-inline--xs));
    --_padding-inline--md: var(--layout-section-padding-inline--md, var(--_padding-inline--sm));
    --_padding-inline--lg: var(--layout-section-padding-inline--lg, var(--_padding-inline--md));
    --_padding-inline--xl: var(--layout-section-padding-inline--xl, var(--_padding-inline--lg));
    --_padding-inline: var(--_padding-inline--xs);

    --_padding-block--xs: var(--layout-section-padding-block--xs, var(--layout-section-padding-block));
    --_padding-block--sm: var(--layout-section-padding-block--sm, var(--_padding-block--xs));
    --_padding-block--md: var(--layout-section-padding-block--md, var(--_padding-block--sm));
    --_padding-block--lg: var(--layout-section-padding-block--lg, var(--_padding-block--md));
    --_padding-block--xl: var(--layout-section-padding-block--xl, var(--_padding-block--lg));
    --_padding-block: var(--_padding-block--xs);

    --_color: var(--layout-section-color, var(--color-primary, #000));
    --_background: var(--layout-section-background, var(--color-secondary, #fff));

    display: flex;
    width: 100%;
    position: relative;
    justify-content: center;
    background: var(--_background);
    color: var(--_color);
    padding-inline: var(--_padding-inline);
    padding-block: var(--_padding-block);

    & > .layout-section__content {
      display: block;
      max-inline-size: var(--_max-inline-size);
      z-index: 1;
      width: 100%;
      flex-grow: 1;
    }

    &.layout-section--full-width > .layout-section__content {
      max-inline-size: 100%;
    }

    &.layout-section--padding-none {
      padding-block: 0;
    }

    &.layout-section--padding-top {
      padding-block-end: 0;
    }

    &.layout-section--padding-bottom {
      padding-block-start: 0;
    }
  }
/* END_SNIPPET:layout.section */

/* START_SNIPPET:layout.stack (INDEX:166) */
/* Public Layout Stack Tokens */
  :root {
    /* Layout Stack Gap Sizes - These are assigned by the value passed to the 'gap' param */
    --layout-stack-gap-size-none: 0px;
    --layout-stack-gap-size-3xs: var(--gap-size-3xs);
    --layout-stack-gap-size-2xs: var(--gap-size-2xs);
    --layout-stack-gap-size-xs: var(--gap-size-xs);
    --layout-stack-gap-size-sm: var(--gap-size-sm);
    --layout-stack-gap-size-md: var(--gap-size-md);
    --layout-stack-gap-size-lg: var(--gap-size-lg);
    --layout-stack-gap-size-xl: var(--gap-size-xl);
    --layout-stack-gap-size-2xl: var(--gap-size-2xl);

    /* Layout Stack Default Layout */
    --layout-stack-margin: 0;
  }
/* END_SNIPPET:layout.stack */

/* START_SNIPPET:layout.sticky-scroller (INDEX:167) */
:root {
    --layout-sticky-scroller-top: 20px;
  }

	sticky-scroller {
	  --_top: var(--layout-sticky-scroller-top);
	
	  display: block;
	  position: sticky;
	  top: var(--_top);
	}
/* END_SNIPPET:layout.sticky-scroller */

/* START_SNIPPET:overlay.drawer (INDEX:178) */
:root {
  --overlay-drawer-size: 480px;
  --overlay-drawer-gutter: var(--gap-size-none); /* better name? */
  --overlay-drawer-label-margin-bottom: var(--size-4);

  --overlay-drawer-padding-inline: var(--size-4);
  --overlay-drawer-padding-inline--xs: initial;
  --overlay-drawer-padding-inline--sm: initial;
  --overlay-drawer-padding-inline--md: initial;
  --overlay-drawer-padding-inline--lg: initial;
  --overlay-drawer-padding-inline--xl: initial;

  --overlay-drawer-padding-block: var(--size-8);
  --overlay-drawer-padding-block--xs: initial;
  --overlay-drawer-padding-block--sm: initial;
  --overlay-drawer-padding-block--md: initial;
  --overlay-drawer-padding-block--lg: initial;
  --overlay-drawer-padding-block--xl: initial;

  --overlay-drawer-background: initial;
  --overlay-drawer-overlay-color: rgba(0, 0, 0, 0.5);

  --overlay-drawer-z-index: 9999;
  --overlay-drawer-transition-duration: 0.3s;
  --overlay-drawer-transition-timing-function: ease-in-out;
}

/* Scroll lock when drawer is open */
body:has(.overlay-drawer[open='true']) {
  overflow: hidden;
}

.overlay-drawer {
  --_width: calc(100% - var(--overlay-drawer-gutter));
  --_max-width: var(--overlay-drawer-size);

  --_padding-inline--xs: var(--overlay-drawer-padding-inline--xs, var(--overlay-drawer-padding-inline));
  --_padding-inline--sm: var(--overlay-drawer-padding-inline--sm, var(--_padding-inline--xs));
  --_padding-inline--md: var(--overlay-drawer-padding-inline--md, var(--_padding-inline--sm));
  --_padding-inline--lg: var(--overlay-drawer-padding-inline--lg, var(--_padding-inline--md));
  --_padding-inline--xl: var(--overlay-drawer-padding-inline--xl, var(--_padding-inline--lg));
  --_padding-inline: var(--_padding-inline--xs);

  --_padding-block--xs: var(--overlay-drawer-padding-block--xs, var(--overlay-drawer-padding-block));
  --_padding-block--sm: var(--overlay-drawer-padding-block--sm, var(--_padding-block--xs));
  --_padding-block--md: var(--overlay-drawer-padding-block--md, var(--_padding-block--sm));
  --_padding-block--lg: var(--overlay-drawer-padding-block--lg, var(--_padding-block--md));
  --_padding-block--xl: var(--overlay-drawer-padding-block--xl, var(--_padding-block--lg));
  --_padding-block: var(--_padding-block--xs);

  --_background: var(--overlay-drawer-background, var(--color-secondary, #fff));

  display: block;
  position: fixed;
  inset: 0;
  height: 100%;
  width: 100%;
  transition-property: background-color;
  transition-duration: var(--overlay-drawer-transition-duration);
  transition-timing-function: var(--overlay-drawer-transition-timing-function);
  cursor: pointer;
  z-index: var(--overlay-drawer-z-index);

  &[open='false'] {
    pointer-events: none;
  }

  &[open='true'] {
    background-color: var(--overlay-drawer-overlay-color);
  }
}

.overlay-drawer__inner {
  background: var(--_background);
  cursor: initial;
  position: absolute;
  width: var(--_width);
  max-width: var(--_max-width);
  top: 0;
  transition-property: transform;
  transition-duration: var(--overlay-drawer-transition-duration);
  transition-timing-function: var(--overlay-drawer-transition-timing-function);
  height: 100%;
  overflow-y: auto;
  padding-inline: var(--_padding-inline);
  padding-block: var(--_padding-block);

  .overlay-drawer--start & {
    left: max(calc(-1 * var(--_width)), calc(-1 * var(--_max-width)));
  }

  .overlay-drawer--start[open='true'] & {
    transform: translateX(100%);
  }

  .overlay-drawer--end & {
    right: max(calc(-1 * var(--_width)), calc(-1 * var(--_max-width)));
  }

  .overlay-drawer--end[open='true'] & {
    transform: translateX(-100%);
  }
}

.overlay-drawer__header {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  margin-block-end: var(--overlay-drawer-label-margin-bottom);

  &:has(.overlay-drawer__label) {
    justify-content: space-between;
  }
}

.overlay-drawer__close-button {
  line-height: 0;
}
/* END_SNIPPET:overlay.drawer */

/* START_SNIPPET:overlay.lightbox (INDEX:179) */
overlay-lightbox {
    display: contents;
  }

  .overlay-lightbox__trigger {
    display: contents;
    cursor: pointer;
  }

  .overlay-lightbox__overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    background: rgba(0, 0, 0, 0.95);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    box-sizing: border-box;
    opacity: 0;
    visibility: hidden;
  }

  .overlay-lightbox__overlay--open {
    opacity: 1;
    visibility: visible;
  }

  .overlay-lightbox__content {
    max-width: 100%;
    max-height: 100%;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .overlay-lightbox__content img {
    max-width: 100%;
    max-height: 100%;
    width: 100%;
    height: auto;
    object-fit: contain;
  }

  .overlay-lightbox__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
  }

  .overlay-lightbox__nav--prev {
    left: 1rem;
  }

  .overlay-lightbox__nav--next {
    right: 1rem;
  }

  /* Hide navigation buttons when there's only one item in the group */
  .overlay-lightbox__overlay--single-item .overlay-lightbox__nav {
    display: none;
  }

  .lightbox-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
  }
/* END_SNIPPET:overlay.lightbox */

/* START_SNIPPET:product.hot-reload (INDEX:192) */
product-hot-reload {
    contain: layout style paint;
  }

  .product-hot-reload--loading {
    opacity: 0.6;
    animation: pulse 1.5s ease-in-out infinite;
  }

  @keyframes pulse {
    0%, 100% { 
      opacity: 1;
    }
    50% { 
      opacity: 0.6;
    }
  }

  /* View Transitions API support */
  @supports (view-transition-name: none) {
    product-hot-reload {
      view-transition-name: product-content;
    }
  }
/* END_SNIPPET:product.hot-reload */

/* START_SNIPPET:section.flex-pdp.gift-recipient (INDEX:209) */
gift-recipient-form {
	  display: block;
	  position: relative;
	
	  & .recipient-fields {
	    display: none;
	  }
	}
/* END_SNIPPET:section.flex-pdp.gift-recipient */

/* START_SNIPPET:section.flex-pdp.media-gallery (INDEX:213) */
.media-gallery {
    --media-gallery-thumb-size: 80px;
    --media-gallery-thumb-gap: var(--gap-size-xs);

    display: block;
    position: relative;
    overflow: hidden;
  }

  .media-gallery__main {
    position: relative;
    width: 100%;
    flex: 1;
    overflow: hidden;
    min-height: 400px;
    aspect-ratio: 1;
    touch-action: pan-y pinch-zoom;
    transition: height 0.3s ease-in-out;
  }

  /* Disable transition when setting height programmatically */
  .media-gallery__main--no-transition {
    transition: none;
  }

  .media-gallery__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    opacity: 0.7;
    transition: opacity 0.2s ease;
  }

  .media-gallery__main:hover .media-gallery__nav {
    opacity: 1;
  }

  .media-gallery__nav--prev {
    left: var(--gap-size-sm);
  }

  .media-gallery__nav--next {
    right: var(--gap-size-sm);
  }

  .media-gallery__nav:focus-visible {
    opacity: 1;
  }

  .media-gallery__slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    z-index: 1;
  }

  .media-gallery__slide--is-animating {
    transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out;
  }

  .media-gallery__slide--active {
    opacity: 1;
    transform: translateX(0);
    z-index: 2;
  }

  .media-gallery__slide--prev {
    transform: translateX(-100%);
  }

  .media-gallery__slide--next {
    transform: translateX(100%);
  }

  .media-gallery__slide img:not(.overlay-lightbox__overlay img) {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .media-gallery__thumbnails {
    display: block;
    width: fit-content;
    max-width: 100%;

    max-height: 650px;
    scrollbar-width: thin;
    scrollbar-color: var(--color-border) transparent;
  }

  .media-gallery__thumbnails--top,
  .media-gallery__thumbnails--bottom {
    overflow-x: auto;
  }

  .media-gallery__thumbnails--left,
  .media-gallery__thumbnails--right {
    overflow-y: auto;
  }

  /* Webkit scrollbar styling */
  .media-gallery__thumbnails::-webkit-scrollbar {
    height: 4px;
    width: 4px;
  }

  .media-gallery__thumbnails::-webkit-scrollbar-track {
    background: transparent;
  }

  .media-gallery__thumbnails::-webkit-scrollbar-thumb {
    background: var(--color-border);
  }

  .media-gallery__thumbnails::-webkit-scrollbar-thumb:hover {
    background: var(--color-text-muted);
  }

  .media-gallery__thumb {
    position: relative;
    border: 2px solid transparent;
    background: none;
    padding: 0;
    cursor: pointer;
    overflow: hidden;
    transition: border-color 0.2s ease;
    flex-shrink: 0;
    width: var(--media-gallery-thumb-size);
    height: var(--media-gallery-thumb-size);
  }

  .media-gallery__thumb--active {
    border-color: var(--color-primary);
  }

  .media-gallery__thumb:hover {
    border-color: var(--color-primary);
    opacity: 0.8;
  }

  .media-gallery__thumb:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
  }

  .media-gallery__thumb-image {
    position: relative;
    width: 100%;
    max-width: var(--media-gallery-thumb-size);
    max-height: var(--media-gallery-thumb-size);
    height: var(--media-gallery-thumb-size);
    aspect-ratio: 1;
  }

  .media-gallery__thumb-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .media-gallery__thumb-icon {
    display: flex;
    position: absolute;
    top: var(--gap-size-2xs);
    right: var(--gap-size-2xs);
    background: var(--color-primary);
    color: var(--color-secondary);
    border-radius: 0;
    padding: var(--gap-size-2xs);
    z-index: 1;
  }

  .media-gallery__thumb-icon .element-icon {
    width: 12px;
    height: 12px;
  }


  .media-gallery .shopify-model-viewer-ui,
  .media-gallery .shopify-model-viewer-ui model-viewer {
      width: 100%;
      height: 100%;
  }

  /* Responsive adjustments */
  @media (max-width: 768px) {
    .media-gallery__main {
      min-height: 300px;
    }


    .media-gallery__nav {
      opacity: 1;
    }
  }
/* END_SNIPPET:section.flex-pdp.media-gallery */

/* START_SNIPPET:section.flex-pdp.media-grid (INDEX:214) */
.media-grid {
    overflow-x: auto;
    overflow-y: hidden;
  }

  .media-grid__container {
    min-width: 350px;
    flex: 1 1 300px;

    & img:not(.overlay-lightbox__overlay img) {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }

  .media-grid .shopify-model-viewer-ui,
  .media-grid .shopify-model-viewer-ui model-viewer {
    width: 100%;
    height: 100%;
  }
/* END_SNIPPET:section.flex-pdp.media-grid */

/* START_SNIPPET:section.flex-pdp.pick-up (INDEX:215) */
.element-icon-in-stock {
	  fill: var(--success-green, #56ad6a);
	}
	
	.element-icon-out-of-stock {
	  fill: var(--color-error, #ba4444);
	}

	.element-text__store-address p {
	  margin: 0;
	}
/* END_SNIPPET:section.flex-pdp.pick-up */

/* START_SNIPPET:style.normalize (INDEX:228) */
/*! modern-normalize v3.0.1 | MIT License | https://github.com/sindresorhus/modern-normalize */

  /*
  Document
  ========
  */

  /**
  Use a better box model (opinionated).
  */

  *,
  ::before,
  ::after {
    box-sizing: border-box;
  }

  /**
  1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
  2. Correct the line height in all browsers.
  3. Prevent adjustments of font size after orientation changes in iOS.
  4. Use a more readable tab size (opinionated).
  */

  html {
    font-family:
      system-ui,
      'Segoe UI',
      Roboto,
      Helvetica,
      Arial,
      sans-serif,
      'Apple Color Emoji',
      'Segoe UI Emoji'; /* 1 */
    line-height: 1.15; /* 2 */
    -webkit-text-size-adjust: 100%; /* 3 */
    tab-size: 4; /* 4 */
  }

  /*
  Sections
  ========
  */

  /**
  Remove the margin in all browsers.
  */

  body {
    margin: 0;
  }

  /*
  Text-level semantics
  ====================
  */

  /**
  Add the correct font weight in Chrome and Safari.
  */

  b,
  strong {
    font-weight: bolder;
  }

  /**
  1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
  2. Correct the odd 'em' font sizing in all browsers.
  */

  code,
  kbd,
  samp,
  pre {
    font-family:
      ui-monospace,
      SFMono-Regular,
      Consolas,
      'Liberation Mono',
      Menlo,
      monospace; /* 1 */
    font-size: 1em; /* 2 */
  }

  /**
  Add the correct font size in all browsers.
  */

  small {
    font-size: 80%;
  }

  /**
  Prevent 'sub' and 'sup' elements from affecting the line height in all browsers.
  */

  sub,
  sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
  }

  sub {
    bottom: -0.25em;
  }

  sup {
    top: -0.5em;
  }

  /*
  Tabular data
  ============
  */

  /**
  Correct table border color inheritance in Chrome and Safari. (https://issues.chromium.org/issues/40615503, https://bugs.webkit.org/show_bug.cgi?id=195016)
  */

  table {
    border-color: currentcolor;
  }

  /*
  Forms
  =====
  */

  /**
  1. Change the font styles in all browsers.
  2. Remove the margin in Firefox and Safari.
  */

  button,
  input,
  optgroup,
  select,
  textarea {
    font-family: inherit; /* 1 */
    font-size: 100%; /* 1 */
    line-height: 1.15; /* 1 */
    margin: 0; /* 2 */
  }

  /**
  Correct the inability to style clickable types in iOS and Safari.
  */

  button,
  [type='button'],
  [type='reset'],
  [type='submit'] {
    -webkit-appearance: button;
  }

  /**
  Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.
  */

  legend {
    padding: 0;
  }

  /**
  Add the correct vertical alignment in Chrome and Firefox.
  */

  progress {
    vertical-align: baseline;
  }

  /**
  Correct the cursor style of increment and decrement buttons in Safari.
  */

  ::-webkit-inner-spin-button,
  ::-webkit-outer-spin-button {
    height: auto;
  }

  /**
  1. Correct the odd appearance in Chrome and Safari.
  2. Correct the outline style in Safari.
  */

  [type='search'] {
    -webkit-appearance: textfield; /* 1 */
    outline-offset: -2px; /* 2 */
  }

  /**
  Remove the inner padding in Chrome and Safari on macOS.
  */

  ::-webkit-search-decoration {
    -webkit-appearance: none;
  }

  /**
  1. Correct the inability to style clickable types in iOS and Safari.
  2. Change font properties to 'inherit' in Safari.
  */

  ::-webkit-file-upload-button {
    -webkit-appearance: button; /* 1 */
    font: inherit; /* 2 */
  }

  /*
  Interactive
  ===========
  */

  /*
  Add the correct display in Chrome and Safari.
  */

  summary {
    display: list-item;
  }
/* END_SNIPPET:style.normalize */

/* START_SNIPPET:style.primitive-tokens (INDEX:229) */
:root {
    /* Core Sizes */
    --size-0-25: 0.0625rem; /* 1px */
    --size-0-5: 0.125rem; /* 2px */
    --size-1: 0.25rem; /* 4px */
    --size-1-5: 0.375rem; /* 6px */
    --size-2: 0.5rem; /* 8px */
    --size-2-5: 0.625rem; /* 10px */
    --size-3: 0.75rem; /* 12px */
    --size-3-5: 0.875rem; /* 14px */
    --size-4: 1rem; /* 16px */
    --size-4-5: 1.125rem; /* 18px */
    --size-5: 1.25rem; /* 20px */
    --size-5-5: 1.375rem; /* 22px */
    --size-6: 1.5rem; /* 24px */
    --size-6-5: 1.625rem; /* 26px */
    --size-7: 1.75rem; /* 28px */
    --size-7-5: 1.875rem; /* 30px */
    --size-8: 2rem; /* 32px */
    --size-8-5: 2.125rem; /* 34px */
    --size-9: 2.25rem; /* 36px */
    --size-9-5: 2.375rem; /* 38px */
    --size-10: 2.5rem; /* 40px */
    --size-11: 2.75rem; /* 44px */
    --size-12: 3rem; /* 48px */
    --size-14: 3.5rem; /* 56px */
    --size-16: 4rem; /* 64px */
    --size-18: 4.5rem; /* 72px */
    --size-20: 5rem; /* 80px */
    --size-24: 6rem; /* 96px */
    --size-28: 7rem; /* 112px */
    --size-32: 8rem; /* 128px */

    /* Text Sizes */
    --text-size-2: 0.5rem; /* 8px */
    --text-size-2-5: 0.625rem; /* 10px */
    --text-size-3: 0.75rem; /* 12px */
    --text-size-3-5: 0.875rem; /* 14px */
    --text-size-4: 1rem; /* 16px */
    --text-size-4-5: 1.125rem; /* 18px */
    --text-size-5: 1.25rem; /* 20px */
    --text-size-5-5: 1.375rem; /* 22px */
    --text-size-6: 1.5rem; /* 24px */
    --text-size-6-5: 1.625rem; /* 26px */
    --text-size-7: 1.75rem; /* 28px */
    --text-size-7-5: 1.875rem; /* 30px */
    --text-size-8: 2rem; /* 32px */
    --text-size-8-5: 2.125rem; /* 34px */
    --text-size-9: 2.25rem; /* 36px */
    --text-size-9-5: 2.375rem; /* 38px */
    --text-size-10: 2.5rem; /* 40px */
    --text-size-11: 2.75rem; /* 44px */
    --text-size-12: 3rem; /* 48px */
    --text-size-14: 3.5rem; /* 56px */
    --text-size-16: 4rem; /* 64px */
    --text-size-18: 4.5rem; /* 72px */
    --text-size-20: 5rem; /* 80px */
    --text-size-24: 6rem; /* 96px */
    --text-size-28: 7rem; /* 112px */
    --text-size-32: 8rem; /* 128px */

    /* Line */
    --line-size-none: 0px;
    --line-size-xs: 0.5px;
    --line-size-sm: 1px;
    --line-size-md: 2px;
    --line-size-lg: 4px;
    --line-size-xl: 8px;

    /* Gap */
    --gap-size-none: 0px;
    --gap-size-3xs: var(--size-0-5);
    --gap-size-2xs: var(--size-1);
    --gap-size-xs: var(--size-2);
    --gap-size-sm: var(--size-4);
    --gap-size-md: var(--size-8);
    --gap-size-lg: var(--size-12);
    --gap-size-xl: var(--size-16);
    --gap-size-2xl: var(--size-24);

    /* Radius */
    --radius-xs: 4px;
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 16px;
    --radius-xl: 24px;
    --radius-2xl: 32px;
    --radius-none: 0px;
    --radius-full: 999px;

    /* Dropshadow */
    --shadow-none: 0px 0px 0px 0px rgba(0, 0, 0, 0);
    --shadow-sm: 0px 1px 2px 0px rgba(0, 0, 0, 0.08);
    --shadow-md: 0px 2px 4px -1px rgba(0, 0, 0, 0.08);
    --shadow-lg: 0px 8px 16px -4px rgba(0, 0, 0, 0.08);
    --shadow-xl: 0px 16px 32px -6px rgba(0, 0, 0, 0.12);
    --shadow-2xl: 0px 16px 64px -12px rgba(0, 0, 0, 0.22);

    /* Font Weights */
    --font-weight-100: 100;
    --font-weight-200: 200;
    --font-weight-300: 300;
    --font-weight-400: 400;
    --font-weight-500: 500;
    --font-weight-600: 600;
    --font-weight-700: 700;
    --font-weight-800: 800;
    --font-weight-900: 900;

    /* Letter Spacings */
    --letter-space-2xs: -0.05em;
    --letter-space-xs: -0.03em;
    --letter-space-sm: -0.015em;
    --letter-space-md: 0em;
    --letter-space-lg: 0.015em;
    --letter-space-xl: 0.03em;
    --letter-space-2xl: 0.05em;
    --letter-space-3xl: 0.08em;
    --letter-space-4xl: 0.12em;

    /* Line Heights */
    --line-height-2xs: 0.9;
    --line-height-xs: 1;
    --line-height-sm: 1.1;
    --line-height-md: 1.2;
    --line-height-lg: 1.5;
    --line-height-xl: 1.7;
    --line-height-2xl: 2;

    /* Color Shades */
    --shade-0: 0%;
    --shade-4: 4%;
    --shade-8: 8%;
    --shade-12: 12%;
    --shade-16: 16%;
    --shade-20: 20%;
    --shade-30: 30%;
    --shade-40: 40%;
    --shade-50: 50%;
    --shade-60: 60%;
    --shade-70: 70%;
    --shade-80: 80%;
    --shade-90: 90%;
    --shade-100: 100%;
  }
/* END_SNIPPET:style.primitive-tokens */

/* START_SNIPPET:utility.color-scheme-texture (INDEX:239) */
.scheme-image,
	.scheme-darken,
	.scheme-squiggle,
	.scheme-swirl,
	.scheme-dots,
	.scheme-notebook,
	.scheme-wave,
	.scheme-minimal-wave,
	.scheme-plants,
	.scheme-cold-blur,
	.scheme-warm-blur,
	.scheme-custom-texture-1,
	.scheme-custom-texture-2,
	.scheme-custom-texture-3 {
	  position: absolute;
	  width: 100%;
	  height: 100%;
	  top: 0;
	  left: 0;
	  z-index: 0;
	}
	
	[data-animate].scheme-image {
	  object-fit: cover;
	  pointer-events: none;
	  mix-blend-mode: multiply;
	  opacity: 1;
	
	  /*Specific styles on some textures*/
	
	  &[data-texture='space.jpg'] {
	    mix-blend-mode: screen;
	  }
	}
	
	[data-animate].scheme-texture--linen,
	[data-animate].scheme-texture--sand,
	[data-animate].scheme-texture--stone,
	[data-animate].scheme-texture--wildflower {
	  opacity: 0.24;
	}
	
	/*Darken is CSS, not image*/
	.scheme-darken {
	  --z-index-overlay: 1;
	  z-index: 1;
	  pointer-events: none;
	
	  &:after {
	    background-color: rgba(0, 0, 0, 0.027);
	    pointer-events: none;
	  }
	}
	
	/*
	  SVG images as backgrounds
	    - larger images are cached external assets that are only loaded when used
	 */
	.scheme-swirl {
	  background-image: url(swirl.svg);
	  opacity: 0.12;
	}
	
	.scheme-squiggle {
	  background: url("data:image/svg+xml,%3Csvg width='150' height='75' viewBox='0 0 52 26' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.17'%3E%3Cpath d='M10 10c0-2.21-1.79-4-4-4-3.314 0-6-2.686-6-6h2c0 2.21 1.79 4 4 4 3.314 0 6 2.686 6 6 0 2.21 1.79 4 4 4 3.314 0 6 2.686 6 6 0 2.21 1.79 4 4 4v2c-3.314 0-6-2.686-6-6 0-2.21-1.79-4-4-4-3.314 0-6-2.686-6-6zm25.464-1.95l8.486 8.486-1.414 1.414-8.486-8.486 1.414-1.414z' /%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
	}
	
	.scheme-dots {
	  background-image: radial-gradient(rgba(0, 0, 0, 0.15) 0.5px, transparent 2px);
	  background-size: 16px 16px;
	}
	
	.scheme-notebook {
	  background-image: url(notebook.svg);
	  opacity: 0.5;
	}
	
	.scheme-wave {
	  background-image: url(wave.svg);
	  background-size: cover;
	  opacity: 0.5;
	}
	
	.scheme-minimal-wave {
	  background-image: url(minimal-wave.svg);
	  opacity: 0.5;
	  background-size: cover;
	}
	
	.scheme-plants {
	  background-image: url(plants.svg);
	  background-size: cover;
	}
	
	.scheme-cold-blur {
	  background-image: url(cold-blur.svg);
	  background-size: cover;
	}
	
	.scheme-warm-blur {
	  background-image: url(warm-blur.svg);
	  background-size: cover;
	}
	
	.scheme-custom-texture-1 {
	  background-image: url(custom-texture-1.svg);
	  background-size: cover;
	}
	
	.scheme-custom-texture-2 {
	  background-image: url(custom-texture-2.svg);
	  background-size: cover;
	}
	
	.scheme-custom-texture-3 {
	  background-image: url(custom-texture-3.svg);
	  background-size: cover;
	}
/* END_SNIPPET:utility.color-scheme-texture */