/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties {
  @supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))) {

    *,
    :before,
    :after {
      --tw-rotate-x: initial;
      --tw-rotate-y: initial;
      --tw-rotate-z: initial;
      --tw-skew-x: initial;
      --tw-skew-y: initial;
      --tw-border-style: solid;
      --tw-font-weight: initial;
      --tw-shadow: 0 0 #0000;
      --tw-shadow-color: initial;
      --tw-shadow-alpha: 100%;
      --tw-inset-shadow: 0 0 #0000;
      --tw-inset-shadow-color: initial;
      --tw-inset-shadow-alpha: 100%;
      --tw-ring-color: initial;
      --tw-ring-shadow: 0 0 #0000;
      --tw-inset-ring-color: initial;
      --tw-inset-ring-shadow: 0 0 #0000;
      --tw-ring-inset: initial;
      --tw-ring-offset-width: 0px;
      --tw-ring-offset-color: #fff;
      --tw-ring-offset-shadow: 0 0 #0000;
      --tw-outline-style: solid;
      --tw-blur: initial;
      --tw-brightness: initial;
      --tw-contrast: initial;
      --tw-grayscale: initial;
      --tw-hue-rotate: initial;
      --tw-invert: initial;
      --tw-opacity: initial;
      --tw-saturate: initial;
      --tw-sepia: initial;
      --tw-drop-shadow: initial;
      --tw-drop-shadow-color: initial;
      --tw-drop-shadow-alpha: 100%;
      --tw-drop-shadow-size: initial;
      --tw-duration: initial;
      --tw-content: ""
    }

    ::backdrop {
      --tw-rotate-x: initial;
      --tw-rotate-y: initial;
      --tw-rotate-z: initial;
      --tw-skew-x: initial;
      --tw-skew-y: initial;
      --tw-border-style: solid;
      --tw-font-weight: initial;
      --tw-shadow: 0 0 #0000;
      --tw-shadow-color: initial;
      --tw-shadow-alpha: 100%;
      --tw-inset-shadow: 0 0 #0000;
      --tw-inset-shadow-color: initial;
      --tw-inset-shadow-alpha: 100%;
      --tw-ring-color: initial;
      --tw-ring-shadow: 0 0 #0000;
      --tw-inset-ring-color: initial;
      --tw-inset-ring-shadow: 0 0 #0000;
      --tw-ring-inset: initial;
      --tw-ring-offset-width: 0px;
      --tw-ring-offset-color: #fff;
      --tw-ring-offset-shadow: 0 0 #0000;
      --tw-outline-style: solid;
      --tw-blur: initial;
      --tw-brightness: initial;
      --tw-contrast: initial;
      --tw-grayscale: initial;
      --tw-hue-rotate: initial;
      --tw-invert: initial;
      --tw-opacity: initial;
      --tw-saturate: initial;
      --tw-sepia: initial;
      --tw-drop-shadow: initial;
      --tw-drop-shadow-color: initial;
      --tw-drop-shadow-alpha: 100%;
      --tw-drop-shadow-size: initial;
      --tw-duration: initial;
      --tw-content: ""
    }
  }
}

@layer theme {

  :root,
  :host {
    --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    --spacing: .25rem;
    --text-xs: .75rem;
    --text-xs--line-height: calc(1 / .75);
    --text-sm: .875rem;
    --text-sm--line-height: calc(1.25 / .875);
    --font-weight-medium: 500;
    --radius-md: .375rem;
    --radius-lg: .5rem;
    --default-transition-duration: .15s;
    --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);
    --default-font-family: var(--font-sans);
    --default-mono-font-family: var(--font-mono)
  }
}

@layer base {

  *,
  :after,
  :before {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0
  }

  ::backdrop {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0
  }

  ::file-selector-button {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0
  }

  html,
  :host {
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    line-height: 1.5;
    font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
    font-feature-settings: var(--default-font-feature-settings, normal);
    font-variation-settings: var(--default-font-variation-settings, normal);
    -webkit-tap-highlight-color: transparent
  }

  hr {
    height: 0;
    color: inherit;
    border-top-width: 1px
  }

  abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted
  }

  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    font-size: inherit;
    font-weight: inherit
  }

  a {
    color: inherit;
    -webkit-text-decoration: inherit;
    -webkit-text-decoration: inherit;
    -webkit-text-decoration: inherit;
    -webkit-text-decoration: inherit;
    text-decoration: inherit
  }

  b,
  strong {
    font-weight: bolder
  }

  code,
  kbd,
  samp,
  pre {
    font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
    font-feature-settings: var(--default-mono-font-feature-settings, normal);
    font-variation-settings: var(--default-mono-font-variation-settings, normal);
    font-size: 1em
  }

  small {
    font-size: 80%
  }

  sub,
  sup {
    vertical-align: baseline;
    font-size: 75%;
    line-height: 0;
    position: relative
  }

  sub {
    bottom: -.25em
  }

  sup {
    top: -.5em
  }

  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse
  }

  :-moz-focusring {
    outline: auto
  }

  progress {
    vertical-align: baseline
  }

  summary {
    display: list-item
  }

  ol,
  ul,
  menu {
    list-style: none
  }

  img,
  svg,
  video,
  canvas,
  audio,
  iframe,
  embed,
  object {
    vertical-align: middle;
    display: block
  }

  img,
  video {
    max-width: 100%;
    height: auto
  }

  button,
  input,
  select,
  optgroup,
  textarea {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0
  }

  ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0
  }

  :where(select:is([multiple], [size])) optgroup {
    font-weight: bolder
  }

  :where(select:is([multiple], [size])) optgroup option {
    padding-inline-start: 20px
  }

  ::file-selector-button {
    margin-inline-end: 4px
  }

  ::placeholder {
    opacity: 1
  }

  @supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px) {
    ::placeholder {
      color: currentColor
    }

    @supports (color:color-mix(in lab, red, red)) {
      ::placeholder {
        color: color-mix(in oklab, currentcolor 50%, transparent)
      }
    }
  }

  textarea {
    resize: vertical
  }

  ::-webkit-search-decoration {
    -webkit-appearance: none
  }

  ::-webkit-date-and-time-value {
    min-height: 1lh;
    text-align: inherit
  }

  ::-webkit-datetime-edit {
    display: inline-flex
  }

  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0
  }

  ::-webkit-datetime-edit {
    padding-block: 0
  }

  ::-webkit-datetime-edit-year-field {
    padding-block: 0
  }

  ::-webkit-datetime-edit-month-field {
    padding-block: 0
  }

  ::-webkit-datetime-edit-day-field {
    padding-block: 0
  }

  ::-webkit-datetime-edit-hour-field {
    padding-block: 0
  }

  ::-webkit-datetime-edit-minute-field {
    padding-block: 0
  }

  ::-webkit-datetime-edit-second-field {
    padding-block: 0
  }

  ::-webkit-datetime-edit-millisecond-field {
    padding-block: 0
  }

  ::-webkit-datetime-edit-meridiem-field {
    padding-block: 0
  }

  ::-webkit-calendar-picker-indicator {
    line-height: 1
  }

  :-moz-ui-invalid {
    box-shadow: none
  }

  button,
  input:where([type=button], [type=reset], [type=submit]) {
    -webkit-appearance: button;
    appearance: button
  }

  ::file-selector-button {
    -webkit-appearance: button;
    appearance: button
  }

  ::-webkit-inner-spin-button {
    height: auto
  }

  ::-webkit-outer-spin-button {
    height: auto
  }

  [hidden]:where(:not([hidden=until-found])) {
    display: none !important
  }
}

@layer components;

@layer utilities {
  .pointer-events-none {
    pointer-events: none
  }

  .visible {
    visibility: visible
  }

  .sr-only {
    clip-path: inset(50%);
    white-space: nowrap;
    border-width: 0;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    position: absolute;
    overflow: hidden
  }

  .absolute {
    position: absolute
  }

  .fixed {
    position: fixed
  }

  .relative {
    position: relative
  }

  .start {
    inset-inline-start: var(--spacing)
  }

  .end {
    inset-inline-end: var(--spacing)
  }

  .top-0 {
    top: calc(var(--spacing) * 0)
  }

  .right-2 {
    right: calc(var(--spacing) * 2)
  }

  .bottom-0 {
    bottom: calc(var(--spacing) * 0)
  }

  .isolate {
    isolation: isolate
  }

  .z-10 {
    z-index: 10
  }

  .z-50 {
    z-index: 50
  }

  .container {
    width: 100%
  }

  @media (min-width:40rem) {
    .container {
      max-width: 40rem
    }
  }

  @media (min-width:48rem) {
    .container {
      max-width: 48rem
    }
  }

  @media (min-width:64rem) {
    .container {
      max-width: 64rem
    }
  }

  @media (min-width:80rem) {
    .container {
      max-width: 80rem
    }
  }

  @media (min-width:96rem) {
    .container {
      max-width: 96rem
    }
  }

  .-mx-1 {
    margin-inline: calc(var(--spacing) * -1)
  }

  .my-1 {
    margin-block: calc(var(--spacing) * 1)
  }

  .block {
    display: block
  }

  .contents {
    display: contents
  }

  .flex {
    display: flex
  }

  .grid {
    display: grid
  }

  .hidden {
    display: none
  }

  .inline {
    display: inline
  }

  .inline-flex {
    display: inline-flex
  }

  .table {
    display: table
  }

  .size-4 {
    width: calc(var(--spacing) * 4);
    height: calc(var(--spacing) * 4)
  }

  .h-\[calc\(100\%-1px\)\] {
    height: calc(100% - 1px)
  }

  .h-px {
    height: 1px
  }

  .max-h-\(--available-height\) {
    max-height: var(--available-height)
  }

  .w-\(--anchor-width\) {
    width: var(--anchor-width)
  }

  .w-fit {
    width: fit-content
  }

  .w-full {
    width: 100%
  }

  .min-w-36 {
    min-width: calc(var(--spacing) * 36)
  }

  .flex-1 {
    flex: 1
  }

  .shrink {
    flex-shrink: 1
  }

  .shrink-0 {
    flex-shrink: 0
  }

  .origin-\(--transform-origin\) {
    transform-origin: var(--transform-origin)
  }

  .transform {
    transform: var(--tw-rotate-x, ) var(--tw-rotate-y, ) var(--tw-rotate-z, ) var(--tw-skew-x, ) var(--tw-skew-y, )
  }

  .cursor-default {
    cursor: default
  }

  .resize {
    resize: both
  }

  .scroll-my-1 {
    scroll-margin-block: calc(var(--spacing) * 1)
  }

  .place-content-center {
    place-content: center
  }

  .items-center {
    align-items: center
  }

  .justify-between {
    justify-content: space-between
  }

  .justify-center {
    justify-content: center
  }

  .gap-1 {
    gap: calc(var(--spacing) * 1)
  }

  .gap-1\.5 {
    gap: calc(var(--spacing) * 1.5)
  }

  .gap-2 {
    gap: calc(var(--spacing) * 2)
  }

  .overflow-x-hidden {
    overflow-x: hidden
  }

  .overflow-y-auto {
    overflow-y: auto
  }

  .rounded {
    border-radius: .25rem
  }

  .rounded-\[4px\] {
    border-radius: 4px
  }

  .rounded-lg {
    border-radius: var(--radius-lg)
  }

  .rounded-md {
    border-radius: var(--radius-md)
  }

  .border {
    border-style: var(--tw-border-style);
    border-width: 1px
  }

  .border-transparent {
    border-color: #0000
  }

  .bg-transparent {
    background-color: #0000
  }

  .p-1 {
    padding: calc(var(--spacing) * 1)
  }

  .p-\[3px\] {
    padding: 3px
  }

  .px-1\.5 {
    padding-inline: calc(var(--spacing) * 1.5)
  }

  .py-0\.5 {
    padding-block: calc(var(--spacing) * .5)
  }

  .py-1 {
    padding-block: calc(var(--spacing) * 1)
  }

  .py-2 {
    padding-block: calc(var(--spacing) * 2)
  }

  .pr-2 {
    padding-right: calc(var(--spacing) * 2)
  }

  .pr-8 {
    padding-right: calc(var(--spacing) * 8)
  }

  .pl-1\.5 {
    padding-left: calc(var(--spacing) * 1.5)
  }

  .pl-2\.5 {
    padding-left: calc(var(--spacing) * 2.5)
  }

  .text-left {
    text-align: left
  }

  .text-sm {
    font-size: var(--text-sm);
    line-height: var(--tw-leading, var(--text-sm--line-height))
  }

  .text-xs {
    font-size: var(--text-xs);
    line-height: var(--tw-leading, var(--text-xs--line-height))
  }

  .font-medium {
    --tw-font-weight: var(--font-weight-medium);
    font-weight: var(--font-weight-medium)
  }

  .whitespace-nowrap {
    white-space: nowrap
  }

  .text-current {
    color: currentColor
  }

  .lowercase {
    text-transform: lowercase
  }

  .underline {
    text-decoration-line: underline
  }

  .shadow {
    --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, #0000001a), 0 1px 2px -1px var(--tw-shadow-color, #0000001a);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)
  }

  .shadow-md {
    --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, #0000001a), 0 2px 4px -2px var(--tw-shadow-color, #0000001a);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)
  }

  .ring-1 {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)
  }

  .outline-hidden {
    --tw-outline-style: none;
    outline-style: none
  }

  @media (forced-colors:active) {
    .outline-hidden {
      outline-offset: 2px;
      outline: 2px solid #0000
    }
  }

  .outline {
    outline-style: var(--tw-outline-style);
    outline-width: 1px
  }

  .filter {
    filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, )
  }

  .transition-all {
    transition-property: all;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration))
  }

  .transition-colors {
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration))
  }

  .transition-none {
    transition-property: none
  }

  .duration-100 {
    --tw-duration: .1s;
    transition-duration: .1s
  }

  .outline-none {
    --tw-outline-style: none;
    outline-style: none
  }

  .select-none {
    -webkit-user-select: none;
    user-select: none
  }

  .group-has-disabled\/field\:opacity-50:is(:where(.group\/field):has(:disabled) *) {
    opacity: .5
  }

  .group-has-\[\:focus-visible\]\/field-label\:ring-0:is(:where(.group\/field-label):has(:focus-visible) *) {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)
  }

  .group-data-horizontal\/tabs\:h-8:is(:where(.group\/tabs)[data-horizontal] *) {
    height: calc(var(--spacing) * 8)
  }

  .group-data-vertical\/tabs\:h-fit:is(:where(.group\/tabs)[data-vertical] *) {
    height: fit-content
  }

  .group-data-vertical\/tabs\:w-full:is(:where(.group\/tabs)[data-vertical] *) {
    width: 100%
  }

  .group-data-vertical\/tabs\:flex-col:is(:where(.group\/tabs)[data-vertical] *) {
    flex-direction: column
  }

  .group-data-vertical\/tabs\:justify-start:is(:where(.group\/tabs)[data-vertical] *) {
    justify-content: flex-start
  }

  .group-data-\[variant\=line\]\/tabs-list\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *) {
    background-color: #0000
  }

  .after\:absolute:after {
    content: var(--tw-content);
    position: absolute
  }

  .after\:-inset-x-3:after {
    content: var(--tw-content);
    inset-inline: calc(var(--spacing) * -3)
  }

  .after\:-inset-y-2:after {
    content: var(--tw-content);
    inset-block: calc(var(--spacing) * -2)
  }

  .after\:opacity-0:after {
    content: var(--tw-content);
    opacity: 0
  }

  .after\:transition-opacity:after {
    content: var(--tw-content);
    transition-property: opacity;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration))
  }

  .group-data-horizontal\/tabs\:after\:inset-x-0:is(:where(.group\/tabs)[data-horizontal] *):after {
    content: var(--tw-content);
    inset-inline: calc(var(--spacing) * 0)
  }

  .group-data-horizontal\/tabs\:after\:bottom-\[-5px\]:is(:where(.group\/tabs)[data-horizontal] *):after {
    content: var(--tw-content);
    bottom: -5px
  }

  .group-data-horizontal\/tabs\:after\:h-0\.5:is(:where(.group\/tabs)[data-horizontal] *):after {
    content: var(--tw-content);
    height: calc(var(--spacing) * .5)
  }

  .group-data-vertical\/tabs\:after\:inset-y-0:is(:where(.group\/tabs)[data-vertical] *):after {
    content: var(--tw-content);
    inset-block: calc(var(--spacing) * 0)
  }

  .group-data-vertical\/tabs\:after\:-right-1:is(:where(.group\/tabs)[data-vertical] *):after {
    content: var(--tw-content);
    right: calc(var(--spacing) * -1)
  }

  .group-data-vertical\/tabs\:after\:w-0\.5:is(:where(.group\/tabs)[data-vertical] *):after {
    content: var(--tw-content);
    width: calc(var(--spacing) * .5)
  }

  :is(.focus-visible\:ring-3:focus-visible, .focus-visible\:ring-\[3px\]:focus-visible) {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)
  }

  .focus-visible\:outline-1:focus-visible {
    outline-style: var(--tw-outline-style);
    outline-width: 1px
  }

  .disabled\:pointer-events-none:disabled {
    pointer-events: none
  }

  .disabled\:cursor-not-allowed:disabled {
    cursor: not-allowed
  }

  .disabled\:opacity-50:disabled {
    opacity: .5
  }

  .has-data-\[icon\=inline-end\]\:pr-1:has([data-icon=inline-end]) {
    padding-right: calc(var(--spacing) * 1)
  }

  .has-data-\[icon\=inline-start\]\:pl-1:has([data-icon=inline-start]) {
    padding-left: calc(var(--spacing) * 1)
  }

  .aria-disabled\:pointer-events-none[aria-disabled=true] {
    pointer-events: none
  }

  .aria-disabled\:opacity-50[aria-disabled=true] {
    opacity: .5
  }

  .aria-invalid\:ring-3[aria-invalid=true] {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)
  }

  .group-data-\[variant\=default\]\/tabs-list\:data-active\:shadow-sm:is(:where(.group\/tabs-list)[data-variant=default] *)[data-active] {
    --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, #0000001a), 0 1px 2px -1px var(--tw-shadow-color, #0000001a);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)
  }

  .group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *)[data-active] {
    background-color: #0000
  }

  .group-data-\[variant\=line\]\/tabs-list\:data-active\:shadow-none:is(:where(.group\/tabs-list)[data-variant=line] *)[data-active] {
    --tw-shadow: 0 0 #0000;
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)
  }

  .group-data-\[variant\=line\]\/tabs-list\:data-active\:after\:opacity-100:is(:where(.group\/tabs-list)[data-variant=line] *)[data-active]:after {
    content: var(--tw-content);
    opacity: 1
  }

  .data-disabled\:pointer-events-none[data-disabled] {
    pointer-events: none
  }

  .data-disabled\:opacity-50[data-disabled] {
    opacity: .5
  }

  .data-horizontal\:flex-col[data-horizontal] {
    flex-direction: column
  }

  .data-\[align-trigger\=true\]\:animate-none[data-align-trigger=true] {
    animation: none
  }

  .data-\[size\=default\]\:h-8[data-size=default] {
    height: calc(var(--spacing) * 8)
  }

  .data-\[size\=sm\]\:h-7[data-size=sm] {
    height: calc(var(--spacing) * 7)
  }

  .data-\[size\=sm\]\:rounded-\[min\(var\(--radius-md\)\,10px\)\][data-size=sm] {
    border-radius: min(var(--radius-md), 10px)
  }

  :is(.\*\:data-\[slot\=select-value\]\:line-clamp-1>*)[data-slot=select-value] {
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    display: -webkit-box;
    overflow: hidden
  }

  :is(.\*\:data-\[slot\=select-value\]\:flex>*)[data-slot=select-value] {
    display: flex
  }

  :is(.\*\:data-\[slot\=select-value\]\:items-center>*)[data-slot=select-value] {
    align-items: center
  }

  :is(.\*\:data-\[slot\=select-value\]\:gap-1\.5>*)[data-slot=select-value] {
    gap: calc(var(--spacing) * 1.5)
  }

  .data-\[variant\=line\]\:rounded-none[data-variant=line] {
    border-radius: 0
  }

  @media (prefers-color-scheme:dark) {
    .dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:border-transparent:is(:where(.group\/tabs-list)[data-variant=line] *)[data-active] {
      border-color: #0000
    }

    .dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *)[data-active] {
      background-color: #0000
    }
  }

  .\[\&_svg\]\:pointer-events-none svg {
    pointer-events: none
  }

  .\[\&_svg\]\:shrink-0 svg {
    flex-shrink: 0
  }

  .\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]) {
    width: calc(var(--spacing) * 4);
    height: calc(var(--spacing) * 4)
  }

  :is(.\*\:\[span\]\:last\:flex>*):is(span):last-child {
    display: flex
  }

  :is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child {
    align-items: center
  }

  :is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child {
    gap: calc(var(--spacing) * 2)
  }

  .\[\&\>svg\]\:size-3\.5>svg {
    width: calc(var(--spacing) * 3.5);
    height: calc(var(--spacing) * 3.5)
  }
}

:root {
  --ink: #17283b;
  --muted: #667386;
  --green: #287c40;
  --green-dark: #1c6231;
  --line: #e0e5eb;
  --surface: #f3f5f8;
  --background: #fff;
  --foreground: #17283b;
  --primary: #287c40;
  --primary-foreground: #fff;
  --secondary: #edf2ef;
  --secondary-foreground: #17283b;
  --border: #d9dfe7;
  --input: #d9dfe7;
  --ring: #287c40;
  --popover: #fff;
  --popover-foreground: #17283b;
  --radius: 5px;
  --font-sans: Arial, Helvetica, sans-serif
}

* {
  box-sizing: border-box
}

body {
  color: var(--ink);
  background: var(--surface);
  margin: 0;
  font: 14px/1.45 Arial, Helvetica, sans-serif
}

a {
  color: inherit;
  text-decoration: none
}

a:hover {
  color: var(--green)
}

button,
input,
select,
textarea {
  font: inherit
}

button {
  cursor: pointer
}

button:disabled {
  cursor: default;
  opacity: .55
}

button,
summary,
a,
input,
select,
textarea {
  touch-action: manipulation
}

:is(button:focus-visible, a:focus-visible, summary:focus-visible) {
  outline: 2px solid var(--green);
  outline-offset: 3px
}

img {
  object-fit: contain;
  max-width: 100%
}

svg {
  flex-shrink: 0
}

h1,
h2,
h3,
p {
  margin: 0
}

h1 {
  font-size: 26px;
  font-weight: 650;
  line-height: 1.2
}

h2 {
  font-size: 20px;
  line-height: 1.3
}

h3 {
  font-size: 16px
}

p+p {
  margin-top: 8px
}

.container {
  width: min(1320px, 100% - 48px);
  margin-inline: auto
}

.sr-only {
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  overflow: hidden
}

.skip-link {
  z-index: 100;
  background: #fff;
  padding: 12px;
  position: absolute;
  top: -80px;
  left: 12px
}

.skip-link:focus {
  top: 8px
}

.shop-header {
  border-bottom: 1px solid var(--line);
  background: #fff
}

.utility-bar {
  color: #576273;
  align-items: center;
  gap: 24px;
  height: 31px;
  font-size: 12px;
  display: flex
}

.utility-bar span {
  align-items: center;
  gap: 5px;
  display: flex
}

.shop-header-main {
  align-items: center;
  gap: 14px;
  height: 66px;
  display: flex
}

.shop-brand {
  flex-shrink: 0;
  width: 190px
}

.shop-brand img {
  object-position: left;
  width: 175px;
  height: 44px;
  display: block
}

.catalog-menu {
  position: relative
}

.catalog-menu summary {
  background: var(--green);
  color: #fff;
  cursor: pointer;
  border-radius: 5px;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  list-style: none;
  display: flex
}

.catalog-menu summary::-webkit-details-marker {
  display: none
}

.catalog-menu-panel {
  z-index: 80;
  width: 280px;
  max-height: min(70vh, 640px);
  overflow-x: hidden;
  overflow-y: auto;
  background: #fff;
  border: 1px solid var(--line, #cbd3dd);
  border-radius: 6px;
  position: absolute;
  top: 49px;
  left: 0;
  box-shadow: 0 8px 24px #14253820
}

.header-search {
  background: #fff;
  border: 1px solid #cbd3dd;
  border-radius: 5px;
  flex: 1;
  min-width: 80px;
  height: 42px;
  display: flex;
  position: relative
}

.header-search .search-autocomplete {
  width: 100%
}

.header-search input {
  background: 0 0;
  border: 0;
  outline: 0;
  width: 100%;
  height: 40px;
  padding: 0 12px
}

.header-search>button {
  background: #f4f6f8;
  border: 0;
  border-radius: 4px;
  flex-shrink: 0;
  place-items: center;
  width: 45px;
  margin: 3px;
  display: grid
}

.account-link {
  flex-direction: column;
  align-items: center;
  gap: 2px;
  min-width: 54px;
  font-size: 11px;
  display: flex
}

.header-cart {
  background: #f3f6f4;
  border-radius: 5px;
  align-items: center;
  gap: 10px;
  min-width: 128px;
  padding: 7px 12px;
  display: flex
}

.header-cart strong {
  font-size: 14px
}

.header-cart small {
  color: var(--muted);
  font-size: 11px;
  display: block
}

.cart-icon {
  position: relative
}

.cart-icon b {
  background: var(--green);
  color: #fff;
  border-radius: 10px;
  padding: 1px 4px;
  font-size: 10px;
  position: absolute;
  top: -10px;
  right: -10px
}

.shop-info-nav {
  align-items: center;
  gap: 30px;
  height: 36px;
  font-size: 12px;
  display: flex
}

.mobile-shop-nav {
  display: none
}

.shop-layout {
  grid-template-columns: 225px minmax(0, 1fr);
  gap: 22px;
  padding-top: 20px;
  padding-bottom: 32px;
  display: grid
}

.shop-sidebar {
  min-width: 0
}

.shop-categories {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 5px;
  overflow: hidden
}

.shop-categories a {
  justify-content: space-between;
  align-items: center;
  gap: 5px;
  display: flex
}

.shop-categories-title {
  background: var(--green);
  padding: 12px 13px;
  font-size: 14px;
  font-weight: 600;
  color: #fff !important;
  justify-content: flex-start !important;
  gap: 10px !important
}

.shop-category-group>a {
  border-bottom: 1px solid #eef0f3;
  padding: 11px 13px;
  font-size: 13px;
  line-height: 1.35
}

.shop-category-group>a[aria-current] {
  border-left: 2px solid var(--green);
  color: var(--green);
  background: #f4f8f4;
  padding-left: 11px
}

.shop-subcategories {
  background: #fafbfc;
  border-bottom: 1px solid #eef0f3;
  padding: 4px 0 7px
}

.shop-subcategories a:hover {
  color: var(--green)
}

.shop-custom-link {
  color: var(--green);
  padding: 12px 13px;
  font-size: 13px;
  font-weight: 600
}

.sidebar-service {
  border-top: 1px solid var(--line);
  margin-top: 16px;
  padding: 15px 8px;
  font-size: 13px
}

.sidebar-service p {
  color: var(--muted);
  margin: 7px 0 10px
}

.sidebar-service a {
  color: var(--green)
}

.shop-content {
  min-width: 0
}

.shop-title-row {
  align-items: baseline;
  gap: 12px;
  margin-bottom: 14px;
  display: flex
}

.shop-title-row>span {
  color: var(--muted);
  font-size: 12px
}

.breadcrumbs {
  color: var(--muted);
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
  font-size: 12px;
  display: flex
}

.breadcrumbs ol {
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex
}

.breadcrumbs li {
  align-items: center;
  gap: 8px;
  display: flex
}

.breadcrumbs a {
  color: var(--green)
}

.promo-carousel {
  color: #285134;
  background: #eaf1e8;
  border: 1px solid #dce7d8;
  border-radius: 5px;
  align-items: center;
  gap: 17px;
  min-height: 96px;
  margin-bottom: 12px;
  padding: 15px 21px;
  display: flex
}

.promo-copy {
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  display: flex
}

.promo-copy small {
  letter-spacing: .4px;
  color: #60745e;
  font-size: 10px
}

.promo-copy strong {
  color: var(--ink);
  font-size: 23px;
  line-height: 1.2
}

.promo-copy>span {
  font-size: 12px
}

.promo-actions {
  align-items: center;
  gap: 8px;
  margin-left: auto;
  font-size: 11px;
  display: flex
}

.promo-actions button {
  background: #fff9;
  border: 1px solid #bdcbbd;
  border-radius: 3px;
  place-items: center;
  width: 30px;
  height: 30px;
  display: grid
}

.category-tiles {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 5px;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  margin-bottom: 16px;
  display: grid;
  overflow: hidden
}

.category-tiles a {
  border-right: 1px solid var(--line);
  text-align: center;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 4px;
  padding: 8px 6px;
  font-size: 12px;
  line-height: 1.2;
  display: flex
}

.category-tiles a:last-child {
  border: 0
}

.category-tiles img {
  mix-blend-mode: multiply;
  width: 72px;
  height: 55px
}

.listing-heading {
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin: 0 0 8px;
  display: flex
}

.listing-heading>a {
  color: var(--green);
  font-size: 12px
}

.type-tabs {
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 10px;
  display: flex
}

.type-tabs a {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 4px;
  padding: 6px 12px;
  font-size: 12px
}

.type-tabs a[aria-current] {
  background: var(--ink);
  border-color: var(--ink);
  color: #fff
}

.listing-count {
  color: var(--muted);
  align-items: center;
  gap: 4px;
  margin: 8px 0;
  font-size: 12px;
  display: flex
}

.listing-count strong {
  color: var(--ink)
}

.listing-count>span {
  margin-left: auto;
  font-size: 11px
}

.catalog-filter-form {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 4px;
  flex-wrap: wrap;
  align-items: end;
  gap: 8px;
  padding: 10px;
  display: flex
}

.catalog-search {
  display: none
}

.filter-toggle {
  display: none !important
}

.filter-fields {
  flex: 1;
  align-items: end;
  gap: 8px;
  min-width: 0;
  display: flex
}

.filter-fields .field {
  flex: 1;
  min-width: 70px
}

.filter-fields .field label {
  font-size: 11px
}

.filter-fields .select-control,
.filter-fields input {
  width: 100%;
  min-width: 0;
  height: 34px;
  padding: 6px 9px;
  font-size: 12px
}

.filter-fields .button {
  height: 34px;
  padding: 6px 10px;
  font-size: 12px
}

.filter-price-note {
  display: none
}

.catalog-filter-options {
  z-index: 70;
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 4px;
  font-size: 13px;
  box-shadow: 0 8px 24px #1b2c4020
}

.applied-filters {
  flex-wrap: wrap;
  gap: 6px;
  width: 100%;
  display: flex
}

.applied-filters a {
  background: #edf3ef;
  border-radius: 3px;
  align-items: center;
  gap: 7px;
  padding: 3px 8px;
  font-size: 11px;
  display: flex
}

.search-autocomplete {
  flex: 1;
  min-width: 0;
  position: relative
}

.search-positioner {
  z-index: 60
}

.search-suggestions,
.search-popup {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 5px;
  max-width: calc(100vw - 30px);
  max-height: 420px;
  overflow: auto;
  box-shadow: 0 8px 25px #1b2c4025
}

.search-suggestion {
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  font-size: 13px;
  display: flex
}

.search-suggestion[data-highlighted] {
  background: #edf4ed
}

.search-suggestion small {
  color: var(--muted);
  display: block
}

.product-grid {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 5px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  display: grid;
  overflow: hidden
}

.product-card {
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #fff;
  flex-direction: column;
  min-width: 0;
  display: flex;
  position: relative
}

.product-card:nth-child(4n) {
  border-right: 0
}

.product-card:hover {
  box-shadow: inset 0 0 0 1px #abb9ae
}

.product-gallery {
  padding: 11px 11px 0
}

.card-dimensions {
  text-align: center;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  margin-bottom: 3px;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.2
}

.card-dimensions span {
  font-size: 11px;
  font-weight: 400
}

.gallery-image {
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 135px;
  display: flex
}

.gallery-image>img,
.gallery-image>svg {
  object-fit: contain;
  width: 100%;
  height: 100%
}

.gallery-image>img {
  mix-blend-mode: multiply;
  padding: 3px
}

.gallery-navigation {
  color: #76818f;
  justify-content: space-between;
  align-items: center;
  height: 24px;
  font-size: 10px;
  display: flex
}

.gallery-navigation>span {
  align-items: center;
  gap: 6px;
  display: flex
}

.gallery-arrow {
  background: #f4f6f8;
  border: 0;
  border-radius: 3px;
  place-items: center;
  width: 27px;
  height: 24px;
  display: grid
}

.gallery-dots {
  gap: 3px;
  display: flex
}

.gallery-dots i {
  background: #c9cfd7;
  border-radius: 50%;
  width: 3px;
  height: 3px;
  display: block
}

.gallery-dots i.active {
  background: var(--green)
}

.product-body {
  flex-direction: column;
  flex: 1;
  padding: 7px 13px 12px;
  display: flex
}

.product-body .sku {
  color: #88929f;
  margin-bottom: 3px;
  font-size: 10px
}

.product-body h3,
.product-body > a.product-title,
.product-body a.product-title {
  min-height: 17px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.3
}
.product-body a.product-title {
  color: inherit;
  text-decoration: none;
  display: block
}

.product-material {
  color: var(--muted);
  margin: 3px 0 0;
  font-size: 11px
}

.product-body>.volume-display {
  display: none
}

.product-controls {
  position: relative
}

.product-controls.compact {
  flex-direction: column;
  flex: 1;
  display: flex
}

.favorite-control {
  z-index: 2;
  position: absolute;
  top: -205px;
  right: 0
}

.favorite-control .icon-button {
  border: 1px solid var(--line);
  background: #fff;
  width: 27px;
  height: 27px
}

.favorite-control output {
  color: #96382c;
  background: #fff;
  width: 170px;
  font-size: 11px;
  position: absolute;
  top: 32px;
  right: 0
}

.color-options {
  min-height: 22px;
  color: var(--muted);
  border: 0;
  align-items: center;
  gap: 5px;
  margin: 5px 0;
  padding: 0;
  font-size: 11px;
  display: flex
}

.color-options legend {
  float: left;
  margin-right: 6px;
  padding: 0;
  font-size: 11px;
  line-height: 22px
}

.color-options :is(button, a, .color-option) {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 50%;
  align-items: center;
  gap: 5px;
  padding: 2px;
  font-size: 12px;
  display: flex
}

.color-options :is(button[aria-pressed=true], a[aria-current=true]) {
  border-color: var(--ink)
}

.product-card .color-options .color-option {
  border-color: var(--line)
}

/* Card listing: color is indicator only (no click / no hover affordance) */
.product-card .color-options.is-static {
  pointer-events: none;
  user-select: none
}

.product-card .color-options.is-static .color-option {
  cursor: default
}

.color-swatch {
  background: #cda576;
  border: 1px solid #b4b7b6;
  border-radius: 50%;
  width: 14px;
  height: 14px;
  display: inline-block
}

.color-swatch.white {
  background: #fff
}

.color-swatch.white-brown {
  background: linear-gradient(90deg, #fff 50%, #cda576 50%)
}

.availability {
  color: #658064;
  margin: 0 0 5px;
  font-size: 11px
}

.availability:before {
  content: "•";
  margin-right: 4px
}

.card-price {
  margin-top: 3px;
  font-size: 23px;
  font-weight: 700;
  line-height: 1.25
}

.card-price>span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 400
}

.retail-price {
  color: var(--muted);
  font-size: 10px;
  margin: 1px 0 6px !important
}

.wholesale-price {
  font-size: 12px
}

.compact .wholesale-price {
  display: none
}

.price-tiers {
  border: 1px solid var(--line);
  border-radius: 4px;
  margin: 6px 0 9px;
  display: flex;
  overflow: hidden
}

.price-tiers button {
  border: 0;
  border-right: 1px solid var(--line);
  text-align: center;
  background: #f7f8fa;
  flex: 1;
  min-width: 0;
  padding: 5px 2px;
  font-size: 10px;
  line-height: 1.35
}

.price-tiers button:last-child {
  border: 0
}

.price-tiers button span {
  display: block
}

.price-tiers button.selected {
  color: var(--green-dark);
  background: #eaf3eb
}

.compact .quantity-note {
  color: var(--muted);
  margin-bottom: 7px;
  font-size: 10px;
  line-height: 1.3
}

.buy-row {
  align-items: center;
  gap: 6px;
  margin-top: auto;
  display: flex
}

.quantity {
  background: #fff;
  border: 1px solid #d2d9e2;
  border-radius: 4px;
  flex: 1;
  min-width: 0;
  height: 36px;
  display: flex;
  overflow: hidden
}

.quantity button {
  background: #f5f7f9;
  border: 0;
  flex-shrink: 0;
  place-items: center;
  width: 24px;
  padding: 0;
  display: grid
}

.quantity input {
  -webkit-appearance: textfield;
  appearance: textfield;
  text-align: center;
  background: #fff;
  outline: 0;
  width: 100%;
  min-width: 25px;
  font-size: 12px;
  border: 0 !important;
  height: 34px !important;
  padding: 0 !important
}

.quantity input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0
}

.quantity input::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0
}

.buy-row>.button {
  white-space: nowrap;
  flex: 1;
  gap: 4px;
  min-width: 0;
  height: 36px;
  padding: 7px 5px;
  font-size: 12px
}

.buy-row>.button svg {
  width: 14px
}

.line-total {
  color: var(--muted);
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: 3px;
  font-size: 10px;
  display: flex;
  margin-top: 6px !important
}

.line-total strong {
  color: var(--ink);
  white-space: nowrap;
  font-size: 12px
}

.added-message {
  color: var(--green);
  margin-top: 4px;
  font-size: 11px
}

.added-message:empty {
  display: none
}

.pagination {
  justify-content: center;
  gap: 7px;
  margin: 18px 0;
  display: flex
}

.pagination a {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 4px;
  min-width: 32px;
  height: 32px;
  padding: 6px 10px
}

.pagination a.active {
  background: var(--green);
  color: #fff
}

.catalog-disclaimer {
  color: var(--muted);
  margin: 14px 0;
  font-size: 11px
}

.product-photo-missing {
  color: var(--muted);
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 6px;
  height: 100%;
  font-size: 12px;
  display: flex
}

.button {
  border: 1px solid #0000;
  border-radius: 4px;
  justify-content: center;
  align-items: center;
  gap: 7px;
  min-height: 36px;
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.3;
  display: inline-flex
}

.primary {
  background: var(--green);
  color: #fff
}

.primary:hover {
  background: var(--green-dark);
  color: #fff
}

.secondary {
  color: var(--green-dark);
  background: #edf3ee;
  border-color: #d7e2d8
}

.outline {
  background: #fff;
  border-color: #cdd6df
}

.icon-button {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 4px;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 34px;
  height: 34px;
  display: inline-flex
}

.text-link,
.text-button {
  color: var(--green);
  align-items: center;
  gap: 6px;
  font-size: 13px;
  display: inline-flex
}

.text-button {
  background: 0 0;
  border: 0;
  padding: 0
}

.actions {
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 15px;
  display: flex
}

.muted,
.field-help,
.form-note {
  color: var(--muted);
  font-size: 12px
}

.error-message {
  color: #a12626;
  margin: 6px 0;
  font-size: 12px;
  line-height: 1.4
}

.status-message {
  border: 1px solid var(--line);
  background: #fff;
  padding: 12px;
  display: block
}

.page-heading {
  margin: 10px 0 20px
}

.page-heading p {
  color: var(--muted);
  max-width: 800px;
  margin-top: 7px;
  font-size: 14px
}

.eyebrow {
  letter-spacing: .5px;
  color: var(--muted);
  margin-bottom: 7px;
  font-size: 11px
}

.empty-state {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 5px;
  padding: 32px
}

.empty-state p {
  margin-top: 10px
}

.empty-state>svg {
  margin-bottom: 12px
}

.field {
  flex-direction: column;
  gap: 5px;
  min-width: 0;
  display: flex
}

.field>label,
.account-login label {
  color: #405064;
  font-size: 13px
}

.field input,
.field textarea,
.select-control,
.account-login input,
select {
  width: 100%;
  min-height: 37px;
  color: var(--ink);
  outline-color: var(--green);
  background: #fff;
  border: 1px solid #c9d1dc;
  border-radius: 4px;
  padding: 9px 10px
}

.field textarea {
  resize: vertical;
  min-height: 80px
}

.field input[aria-invalid=true] {
  border-color: #b12f2f
}

.lead-form .interactive-fields {
  border: 0;
  flex-direction: column;
  gap: 14px;
  min-width: 0;
  margin: 0;
  padding: 0;
  display: flex
}

.dimensions {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  display: grid
}

.honeypot {
  width: 1px;
  height: 1px;
  overflow: hidden;
  position: absolute !important;
  left: -10000px !important
}

.consent-row {
  color: var(--muted);
  gap: 8px;
  font-size: 11px;
  line-height: 1.4;
  display: flex
}

.consent-row button {
  flex-shrink: 0
}

.consent-row a {
  text-decoration: underline
}

.submit-button {
  width: 100%;
  min-height: 43px;
  font-size: 14px
}

.form-alternatives {
  flex-wrap: wrap;
  gap: 12px;
  font-size: 12px;
  display: flex
}

.preview-notice {
  background: #fff7e4;
  border: 1px solid #e8d8ae;
  border-radius: 4px;
  padding: 10px 12px;
  font-size: 12px;
  line-height: 1.45
}

.receipt {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 5px;
  padding: 25px
}

.receipt>svg {
  color: var(--green);
  margin-bottom: 10px
}

.receipt h2 {
  margin-bottom: 10px
}

.custom-price-status,
.standard-suggestions {
  background: #f2f6f2;
  border-radius: 4px;
  padding: 12px;
  font-size: 12px
}

.custom-price-status strong,
.standard-suggestions strong {
  margin-bottom: 5px;
  display: block
}

.standard-suggestions .text-link {
  margin-top: 6px;
  display: block
}

.spin {
  animation: 1s linear infinite spin
}

@keyframes spin {
  to {
    transform: rotate(360deg)
  }
}

.order-layout {
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
  align-items: start;
  gap: 24px;
  display: grid
}

.order-items,
.order-form-section {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 5px;
  padding: 20px
}

.section-heading {
  justify-content: space-between;
  align-items: center;
  margin-bottom: 15px;
  display: flex
}

.order-line {
  border-top: 1px solid var(--line);
  grid-template-columns: minmax(0, 1fr) 112px 30px;
  align-items: center;
  gap: 12px;
  padding: 15px 0;
  display: grid
}

.order-product {
  align-items: center;
  gap: 12px;
  min-width: 0;
  display: flex
}

.order-product img {
  flex-shrink: 0;
  width: 74px;
  height: 70px
}

.order-product p,
.order-product small {
  color: var(--muted);
  font-size: 11px
}

.order-quantity-field {
  min-width: 0
}

.order-quantity-field>label {
  font-size: 11px
}

.order-line>strong {
  grid-column: 2;
  font-size: 14px
}

.order-total {
  border-top: 1px solid var(--line);
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-top: 10px;
  padding-top: 16px;
  display: flex
}

.order-total strong {
  font-size: 23px
}

.order-total small {
  font-size: 11px;
  display: block
}

.order-fulfillment {
  color: var(--muted);
  padding: 14px 0;
  font-size: 12px
}

.delivery-estimate {
  flex-direction: column;
  gap: 5px;
  padding: 10px 0;
  display: flex
}

.delivery-estimate strong {
  color: var(--ink);
  font-size: 15px
}

.order-steps {
  border-top: 1px solid var(--line);
  color: var(--muted);
  flex-direction: column;
  gap: 7px;
  padding-top: 15px;
  font-size: 12px;
  display: flex
}

.order-steps>div {
  align-items: center;
  gap: 9px;
  display: flex
}

.order-form-section h2 {
  margin-bottom: 6px
}

.order-form-section>p {
  color: var(--muted);
  margin-bottom: 18px;
  font-size: 12px
}

.order-empty img {
  max-height: 160px
}

.order-empty {
  padding: 12px 0
}

.order-quick-links {
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
  font-size: 12px;
  display: flex
}

.account-page>h1 {
  margin-bottom: 12px
}

.account-login {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 5px;
  flex-direction: column;
  gap: 14px;
  max-width: 480px;
  margin-top: 20px;
  padding: 24px;
  display: flex
}

.account-login label {
  flex-direction: column;
  gap: 5px;
  display: flex
}

.segmented {
  border: 0;
  flex-wrap: wrap;
  gap: 7px;
  margin: 14px 0;
  padding: 0;
  display: flex
}

.segmented button {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 4px;
  padding: 8px 13px
}

.segmented button[aria-pressed=true] {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink)
}

.account-toolbar {
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin: 15px 0;
  display: flex
}

.history-order,
.account-product {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 5px;
  margin: 12px 0;
  padding: 18px
}

.history-item {
  border-top: 1px solid var(--line);
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  font-size: 13px;
  display: flex
}

.history-item>input {
  flex-shrink: 0
}

.history-item img,
.account-product img {
  width: 75px;
  height: 65px
}

.history-item small {
  color: var(--muted);
  font-size: 11px;
  display: block
}

.history-order>.button {
  margin-top: 12px
}

.favorite-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  display: grid
}

.account-product {
  align-items: center;
  gap: 10px;
  display: flex
}

.account-phone-field {
  border: 1px solid var(--line);
  border-radius: 4px;
  align-items: center;
  display: flex;
  overflow: hidden
}

.account-phone-prefix {
  padding-left: 10px
}

.account-phone-field input {
  border: 0
}

.product-detail {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 5px;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
  padding: 24px;
  display: grid
}

.product-detail h1 {
  font-size: 25px
}

.product-detail .gallery-image {
  height: 310px
}

.price-large {
  margin: 12px 0;
  font-size: 32px;
  font-weight: 700
}

.price-large span {
  font-size: 13px;
  font-weight: 400
}

.product-detail .quantity {
  max-width: 170px
}

.product-detail .buy-row>.button {
  flex: none;
  height: 40px;
  padding: 10px 26px
}

.product-detail .price-tiers button {
  padding: 10px;
  font-size: 12px
}

.product-detail .price-tiers strong {
  font-size: 16px
}

.product-detail .color-options {
  margin-top: 12px
}

.product-detail .color-options :is(button, a) {
  border-radius: 4px;
  padding: 5px
}

.product-detail .product-controls>p {
  margin-block: 9px
}

.detail-meta,
.product-specs {
  margin-top: 20px;
  font-size: 13px
}

.product-specs dt {
  color: var(--muted)
}

.product-specs div,
.spec-row {
  border-bottom: 1px solid var(--line);
  justify-content: space-between;
  gap: 15px;
  padding: 8px 0;
  display: flex
}

.related-products {
  margin-top: 24px
}

.related-products h2 {
  margin-bottom: 12px
}

.prose {
  max-width: 900px;
  font-size: 14px
}

.prose h2 {
  margin: 25px 0 10px
}

.prose p {
  margin: 10px 0
}

.prose ul {
  padding-left: 20px;
  list-style: outside
}

.prose a {
  color: var(--green);
  text-decoration: underline
}

table {
  border-collapse: collapse;
  background: #fff;
  width: 100%;
  font-size: 13px
}

th,
td {
  text-align: left;
  border: 1px solid var(--line);
  padding: 10px
}

.content-grid,
.contact-grid,
.info-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  display: grid
}

.info-card,
.contact-card {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 5px;
  padding: 20px
}

.info-card h2,
.contact-card h2 {
  margin-bottom: 12px
}

.info-card p {
  margin: 8px 0
}

.finder-layout,
.custom-layout {
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  display: grid
}

.finder-form,
.custom-form-panel {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 5px;
  padding: 22px
}

.finder-form form {
  flex-direction: column;
  gap: 14px;
  display: flex
}

.finder-results {
  margin-top: 20px
}

.finder-results h2 {
  margin-bottom: 12px
}

.shop-footer {
  border-top: 1px solid var(--line);
  background: #fff;
  padding: 28px 0 18px;
  font-size: 12px
}

.footer-columns {
  grid-template-columns: 1fr 1.25fr 1fr;
  gap: 40px;
  display: grid
}

.footer-columns p {
  color: var(--muted);
  margin-top: 7px
}

.footer-columns a {
  margin-top: 7px;
  display: block
}

.local-preview-label {
  border-top: 1px solid var(--line);
  color: #85909d;
  margin-top: 24px;
  padding-top: 13px;
  font-size: 11px
}

@media (min-width:1600px) {
  .container {
    width: min(1400px, 100% - 80px)
  }

  .gallery-image {
    height: 150px
  }
}

@media (max-width:1150px) {
  .container {
    width: calc(100% - 32px)
  }

  .shop-layout {
    grid-template-columns: 195px minmax(0, 1fr);
    gap: 16px
  }

  .shop-brand {
    width: 170px
  }

  .shop-brand img {
    width: 155px
  }

  .shop-header-main {
    gap: 10px
  }

  .header-cart {
    min-width: 70px
  }

  .header-cart small {
    display: none
  }

  .shop-info-nav {
    gap: 22px
  }

  .product-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr))
  }

  .product-card:nth-child(4n) {
    border-right: 1px solid var(--line)
  }

  .product-card:nth-child(3n) {
    border-right: 0
  }

  .category-tiles img {
    height: 44px
  }

  .category-tiles a {
    font-size: 11px
  }

  .promo-copy strong {
    font-size: 20px
  }

  .filter-fields {
    flex-wrap: wrap
  }

  .filter-fields .field {
    flex: 1
  }

  .shop-category-group>a {
    font-size: 12px
  }

  .gallery-image {
    height: 125px
  }

  .card-dimensions {
    font-size: 16px
  }

  .product-body {
    padding: 6px 10px 10px
  }

  .buy-row {
    flex-wrap: wrap
  }

  .buy-row>.quantity,
  .buy-row>.button {
    flex-basis: 100%
  }

  .product-detail .buy-row {
    flex-wrap: nowrap
  }

  .product-detail .buy-row>.quantity,
  .product-detail .buy-row>.button {
    flex-basis: auto
  }
}

@media (max-width:760px),
(pointer:coarse) and (max-width:1024px) {
  body {
    font-size: 13px
  }

  .container {
    width: calc(100% - 24px)
  }

  h1 {
    font-size: 22px
  }

  .utility-bar {
    gap: 10px;
    height: 25px;
    font-size: 10px
  }

  .utility-bar>a:first-of-type {
    display: none
  }

  .utility-bar>a:last-child {
    margin-left: auto
  }

  .shop-header-main {
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 10px;
    height: 93px;
    padding-top: 6px;
    padding-bottom: 47px;
    position: relative
  }

  .shop-brand {
    flex: 1;
    width: auto
  }

  .shop-brand img {
    width: 135px;
    height: 32px
  }

  .catalog-menu summary {
    height: 32px;
    padding: 6px 9px;
    font-size: 12px
  }

  .catalog-menu-panel {
    max-height: 70vh;
    top: 37px;
    left: auto;
    right: 0;
    overflow: auto
  }

  .header-search {
    width: 100%;
    height: 36px;
    position: absolute;
    bottom: 6px;
    left: 0;
    right: 0
  }

  .header-search input {
    height: 34px;
    font-size: 13px
  }

  .header-search>button {
    width: 34px;
    height: 28px
  }

  .shop-header-main .account-link {
    display: none
  }

  .header-cart {
    min-width: 34px;
    height: 32px;
    padding: 5px 7px
  }

  .header-cart>span:last-child {
    display: none
  }

  .header-cart svg {
    width: 20px
  }

  .shop-info-nav {
    display: none
  }

  .shop-layout {
    padding-top: 13px;
    padding-bottom: 20px;
    display: block
  }

  .shop-sidebar {
    display: none
  }

  .shop-title-row {
    gap: 8px;
    margin-bottom: 10px
  }

  .shop-title-row h1 {
    font-size: 21px
  }

  .shop-title-row>span {
    white-space: nowrap;
    font-size: 10px
  }

  .promo-carousel {
    gap: 9px;
    min-height: 84px;
    margin-bottom: 10px;
    padding: 11px 12px
  }

  .promo-carousel>svg {
    display: none
  }

  .promo-copy small {
    letter-spacing: 0;
    font-size: 8px
  }

  .promo-copy strong {
    max-width: 245px;
    font-size: 17px
  }

  .promo-copy>span {
    font-size: 10px
  }

  .promo-actions {
    gap: 4px
  }

  .promo-actions button {
    width: 24px;
    height: 28px
  }

  .promo-actions>span {
    display: none
  }

  .category-tiles {
    grid-template-columns: repeat(6, 90px);
    margin-bottom: 13px;
    overflow-x: auto
  }

  .category-tiles a {
    height: 73px;
    padding: 5px;
    font-size: 10px
  }

  .category-tiles img {
    width: 60px;
    height: 42px
  }

  .listing-heading {
    align-items: baseline;
    margin-bottom: 7px
  }

  .listing-heading>strong {
    font-size: 16px
  }

  .listing-heading>a {
    text-align: right;
    max-width: 160px;
    font-size: 10px
  }

  .type-tabs {
    flex-wrap: nowrap;
    gap: 4px;
    margin-bottom: 8px;
    overflow: auto
  }

  .type-tabs a {
    white-space: nowrap;
    padding: 5px 8px;
    font-size: 11px
  }

  .catalog-filter-form {
    gap: 7px;
    padding: 7px
  }

  .filter-toggle {
    margin-left: auto;
    font-size: 12px;
    min-height: 30px !important;
    padding: 5px 10px !important;
    display: flex !important
  }

  .filter-fields {
    display: none
  }

  .filter-fields.is-open {
    flex-basis: 100%;
    padding-top: 4px;
    display: flex
  }

  .filter-fields .field {
    flex-basis: calc(50% - 10px)
  }

  .filter-fields .button {
    flex: 1
  }

  .listing-count {
    margin: 6px 0;
    font-size: 11px
  }

  .listing-count>span {
    text-align: right;
    max-width: 220px;
    font-size: 9px
  }

  .product-grid {
    border-radius: 4px;
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }

  .product-card:nth-child(3n) {
    border-right: 1px solid var(--line)
  }

  .product-card:nth-child(2n) {
    border-right: 0
  }

  .product-gallery {
    padding: 9px 7px 0
  }

  .card-dimensions {
    font-size: 14px
  }

  .card-dimensions span {
    font-size: 9px
  }

  .gallery-image {
    height: 112px
  }

  .gallery-navigation {
    height: 23px;
    font-size: 8px
  }

  .gallery-arrow {
    width: 23px;
    height: 23px
  }

  .gallery-dots {
    display: none
  }

  .product-body {
    padding: 7px 9px 10px
  }

  .product-body .sku {
    font-size: 9px
  }

  .product-body h3 {
    min-height: 31px;
    font-size: 12px
  }

  .product-material {
    margin-top: 2px;
    font-size: 10px
  }

  .color-options {
    flex-wrap: wrap;
    gap: 3px;
    min-height: 21px;
    margin: 3px 0;
    font-size: 10px
  }

  .color-options legend {
    margin-right: 4px;
    font-size: 9px;
    line-height: 21px
  }

  .color-options :is(button, a) {
    padding: 1px
  }

  .color-swatch {
    width: 12px;
    height: 12px
  }

  .availability {
    font-size: 10px
  }

  .card-price {
    margin-top: 2px;
    font-size: 21px
  }

  .card-price>span {
    font-size: 10px
  }

  .retail-price {
    font-size: 9px
  }

  .price-tiers {
    margin: 5px 0 7px
  }

  .price-tiers button {
    padding: 4px 1px;
    font-size: 9px
  }

  .price-tiers button strong {
    font-size: 11px
  }

  .buy-row {
    gap: 5px
  }

  .quantity {
    height: 31px
  }

  .quantity input {
    height: 29px !important
  }

  .quantity button {
    width: 31px
  }

  .buy-row>.button {
    height: 32px;
    min-height: 32px;
    font-size: 12px
  }

  .line-total {
    gap: 2px;
    font-size: 9px
  }

  .line-total strong {
    font-size: 11px
  }

  .favorite-control {
    top: -187px
  }

  .added-message,
  .catalog-disclaimer {
    font-size: 10px
  }

  .mobile-shop-nav {
    z-index: 40;
    height: 55px;
    padding-bottom: env(safe-area-inset-bottom);
    background: #fff;
    display: flex;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    box-shadow: 0 -1px #dce2e8
  }

  .mobile-shop-nav a {
    color: var(--ink);
    flex-direction: column;
    flex: 1;
    justify-content: center;
    align-items: center;
    gap: 3px;
    font-size: 10px;
    display: flex
  }

  body {
    padding-bottom: 55px
  }

  .shop-footer {
    padding: 20px 0
  }

  .footer-columns {
    grid-template-columns: 1fr;
    gap: 20px
  }

  .local-preview-label {
    margin-top: 18px
  }

  .page-content,
  .section {
    padding-block: 18px
  }

  .page-heading {
    margin: 4px 0 17px
  }

  .page-heading p {
    font-size: 12px
  }

  .order-layout {
    grid-template-columns: 1fr;
    gap: 14px
  }

  .order-items,
  .order-form-section {
    padding: 14px
  }

  .order-line {
    grid-template-columns: minmax(0, 1fr) 85px 25px;
    gap: 7px
  }

  .order-product {
    gap: 6px
  }

  .order-product img {
    width: 45px;
    height: 50px
  }

  .order-product h3 {
    font-size: 11px
  }

  .order-product small {
    font-size: 9px
  }

  .order-product p {
    font-size: 10px
  }

  .order-line .quantity button {
    width: 20px
  }

  .order-total strong {
    font-size: 21px
  }

  .order-steps {
    font-size: 11px
  }

  .account-login {
    padding: 17px
  }

  .account-toolbar {
    flex-wrap: wrap;
    align-items: start
  }

  .history-order,
  .account-product {
    padding: 13px
  }

  .favorite-list {
    grid-template-columns: 1fr
  }

  .history-item {
    font-size: 12px
  }

  .history-item img {
    width: 50px
  }

  .product-detail {
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 15px
  }

  .product-detail .gallery-image {
    height: 240px
  }

  .product-detail h1 {
    font-size: 21px
  }

  .content-grid,
  .contact-grid,
  .info-grid,
  .finder-layout,
  .custom-layout {
    grid-template-columns: 1fr
  }

  .finder-form,
  .custom-form-panel {
    padding: 15px
  }

  .dimensions {
    gap: 7px
  }

  .breadcrumbs {
    gap: 5px;
    font-size: 10px
  }

  .button {
    font-size: 12px
  }

  .field input,
  .field textarea,
  .select-control,
  .account-login input,
  select {
    font-size: 16px
  }

  .receipt {
    padding: 18px
  }

  .prose {
    font-size: 13px
  }

  .prose h2 {
    font-size: 18px
  }
}

@media (prefers-reduced-motion:reduce) {
  * {
    scroll-behavior: auto !important;
    transition: none !important;
    animation: none !important
  }
}

@property --tw-rotate-x {
  syntax: "*";
  inherits: false
}

@property --tw-rotate-y {
  syntax: "*";
  inherits: false
}

@property --tw-rotate-z {
  syntax: "*";
  inherits: false
}

@property --tw-skew-x {
  syntax: "*";
  inherits: false
}

@property --tw-skew-y {
  syntax: "*";
  inherits: false
}

@property --tw-border-style {
  syntax: "*";
  inherits: false;
  initial-value: solid
}

@property --tw-font-weight {
  syntax: "*";
  inherits: false
}

@property --tw-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000
}

@property --tw-shadow-color {
  syntax: "*";
  inherits: false
}

@property --tw-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%
}

@property --tw-inset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000
}

@property --tw-inset-shadow-color {
  syntax: "*";
  inherits: false
}

@property --tw-inset-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%
}

@property --tw-ring-color {
  syntax: "*";
  inherits: false
}

@property --tw-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000
}

@property --tw-inset-ring-color {
  syntax: "*";
  inherits: false
}

@property --tw-inset-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000
}

@property --tw-ring-inset {
  syntax: "*";
  inherits: false
}

@property --tw-ring-offset-width {
  syntax: "<length>";
  inherits: false;
  initial-value: 0
}

@property --tw-ring-offset-color {
  syntax: "*";
  inherits: false;
  initial-value: #fff
}

@property --tw-ring-offset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000
}

@property --tw-outline-style {
  syntax: "*";
  inherits: false;
  initial-value: solid
}

@property --tw-blur {
  syntax: "*";
  inherits: false
}

@property --tw-brightness {
  syntax: "*";
  inherits: false
}

@property --tw-contrast {
  syntax: "*";
  inherits: false
}

@property --tw-grayscale {
  syntax: "*";
  inherits: false
}

@property --tw-hue-rotate {
  syntax: "*";
  inherits: false
}

@property --tw-invert {
  syntax: "*";
  inherits: false
}

@property --tw-opacity {
  syntax: "*";
  inherits: false
}

@property --tw-saturate {
  syntax: "*";
  inherits: false
}

@property --tw-sepia {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow-color {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%
}

@property --tw-drop-shadow-size {
  syntax: "*";
  inherits: false
}

@property --tw-duration {
  syntax: "*";
  inherits: false
}

@property --tw-content {
  syntax: "*";
  inherits: false;
  initial-value: ""
}

.header-search .search-input-wrap {
  flex: 1;
  width: 100%;
  min-width: 0
}

.header-search .search-input-wrap input {
  width: 100%;
  display: block
}

.product-body .sku,
.compact .retail-price {
  display: none
}

.product-body h3 {
  min-height: 0
}

.product-gallery .gallery-image {
  height: 115px
}

.compact .color-options {
  margin-top: 3px;
  margin-bottom: 3px
}

.compact .availability {
  margin-bottom: 3px
}

.compact .card-price {
  margin-top: 2px
}

.compact .price-tiers {
  margin-top: 5px;
  margin-bottom: 7px
}

.promo-carousel {
  min-height: 78px;
  margin-bottom: 13px;
  padding-block: 11px
}

.promo-copy strong {
  font-size: 21px
}

.promo-copy>span {
  display: none
}

.listing-heading {
  margin-top: 4px
}

.content-split {
  grid-template-columns: 1fr 1fr;
  align-items: start;
  gap: 32px;
  display: grid
}

.content-split>section,
.content-split>div {
  min-width: 0
}

.content-split>.prose {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 5px;
  padding: 22px
}

.content-split>div:has(.lead-form) {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 5px;
  padding: 22px
}

.content-product-image {
  object-fit: contain;
  width: 100%;
  height: 200px;
  margin-bottom: 14px;
  display: block
}

.form-heading {
  margin-bottom: 15px
}

.content-split .lead-form {
  margin-top: 15px
}

.volume-toggle {
  align-items: center;
  gap: 7px;
  font-size: 12px;
  display: flex
}

.volume-display {
  margin: 5px 0;
  font-size: 12px
}

.stock-note {
  color: var(--muted);
  margin-top: 15px;
  font-size: 12px
}

.delivery-summary {
  border-top: 1px solid var(--line);
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 16px;
  padding-top: 13px;
  display: grid
}

.delivery-summary a {
  gap: 8px;
  font-size: 12px;
  display: flex
}

.delivery-summary strong {
  font-size: 12px;
  font-weight: 500
}

.delivery-summary>small {
  color: var(--muted);
  grid-column: 1/-1;
  font-size: 10px
}

.spec-section {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 5px;
  margin-top: 20px;
  padding: 24px
}

.spec-section h2,
.spec-list {
  margin-bottom: 14px
}

.spec-list>div {
  border-bottom: 1px solid var(--line);
  grid-template-columns: 220px 1fr;
  gap: 10px;
  padding: 8px 0;
  font-size: 13px;
  display: grid
}

.spec-list dt {
  color: var(--muted)
}

.calculator-layout {
  grid-template-columns: 340px 1fr;
  gap: 24px;
  display: grid
}

.calculator-panel {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 5px;
  padding: 20px
}

.calculator-form {
  flex-direction: column;
  gap: 14px;
  display: flex
}

.calculator-results {
  min-width: 0
}

.calculator-result {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 5px;
  align-items: center;
  gap: 16px;
  margin: 10px 0;
  padding: 15px;
  display: flex
}

.calculator-result img {
  width: 100px;
  height: 85px
}

.calculator-result h3 {
  font-size: 15px
}

.calculator-result p {
  font-size: 12px
}

.calculator-result .button {
  margin-top: 8px
}

.search-status {
  color: var(--muted);
  padding: 6px 10px;
  font-size: 11px
}

.search-popup {
  min-width: min(460px, 100vw - 24px)
}

.search-suggestions {
  box-shadow: none;
  border: 0
}

.search-suggestion>span {
  flex: 1
}

.search-suggestion small {
  margin-top: 2px
}

.search-suggestion img {
  width: 42px;
  height: 36px
}

.search-empty,
.search-view-all {
  padding: 10px 12px;
  font-size: 12px
}

.inquiry-form {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 5px;
  max-width: 640px;
  margin: 0 auto;
  padding: 24px
}

.inquiry-form h2 {
  margin-bottom: 15px
}

@media (max-width:760px),
(pointer:coarse) and (max-width:1024px) {
  .product-gallery .gallery-image {
    height: 99px
  }

  .promo-copy strong {
    font-size: 16px
  }

  .promo-copy small {
    font-size: 8px
  }

  .promo-carousel {
    min-height: 70px
  }

  .product-body h3 {
    min-height: 0;
    font-size: 11px
  }

  .listing-heading>a {
    max-width: 170px
  }

  .content-split {
    grid-template-columns: 1fr;
    gap: 16px
  }

  .content-split>.prose {
    display: block
  }

  .custom-request-page .content-split>.prose {
    order: 2
  }

  .content-split>div:has(.lead-form) {
    padding: 15px
  }

  .spec-section {
    padding: 15px
  }

  .spec-list>div {
    grid-template-columns: 1fr 1fr;
    font-size: 12px
  }

  .calculator-layout {
    grid-template-columns: 1fr
  }

  .calculator-result {
    gap: 10px;
    padding: 12px
  }

  .calculator-result img {
    width: 65px;
    height: 70px
  }

  .calculator-panel {
    padding: 15px
  }

  .delivery-summary {
    grid-template-columns: 1fr
  }

  .inquiry-form {
    padding: 15px
  }

  .filter-toggle {
    width: 100%;
    margin: 0
  }

  .listing-count>span {
    font-size: 9px
  }

  .promo-copy {
    max-width: calc(100% - 60px)
  }
}

.shop-filter {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 4px;
  padding: 9px 11px
}

.shop-filter-disclosure>summary {
  display: none
}

.shop-filter-content {
  content-visibility: visible !important;
  display: block !important
}

.shop-filter-disclosure::details-content {
  content-visibility: visible;
  display: block
}

/* Catalog filters: 4 size fieldsets + color/sort/price/actions */
.size-filters {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  align-items: end;
  display: grid
}

.size-filters > fieldset {
  border: 0;
  min-width: 0;
  margin: 0;
  padding: 0
}

.size-filters > fieldset > legend {
  margin-bottom: 4px;
  font-size: 11px
}

.size-filters > fieldset > div {
  border: 1px solid var(--line);
  border-radius: 4px;
  align-items: center;
  gap: 2px;
  display: flex;
  overflow: hidden
}

.size-filters > fieldset input {
  -webkit-appearance: textfield;
  appearance: textfield;
  border: 0;
  width: 50%;
  min-width: 0;
  height: 30px;
  padding: 5px 8px;
  font-size: 12px
}

.size-filters > fieldset input::-webkit-inner-spin-button {
  display: none
}

.size-filters > fieldset span {
  color: #9aa3ad
}

.size-filters > .new-filter-color,
.size-filters > .shop-filter-sort,
.size-filters > .new-filter-price {
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  font-size: 10px;
  display: flex
}

.size-filters > .new-filter-color select,
.size-filters > .shop-filter-sort select,
.size-filters > .new-filter-price input {
  border: 1px solid var(--line);
  border-radius: 4px;
  min-width: 0;
  height: 30px;
  min-height: 30px;
  padding: 4px 8px;
  font-size: 11px
}

/* Row 2: color (natural) · sort · price · actions */
.size-filters > .shop-filter-sort {
  order: 6
}

.size-filters > .new-filter-price {
  order: 7
}

.size-filters > .shop-filter-actions {
  order: 8;
  align-items: center;
  gap: 8px;
  display: flex
}

.size-filters > .shop-filter-actions .button {
  height: 30px;
  min-height: 30px;
  padding: 5px 12px;
  font-size: 11px
}

@media (max-width:760px), (pointer:coarse) and (max-width:1024px) {
  .size-filters {
    grid-template-columns: 1fr 1fr;
    gap: 10px
  }

  .size-filters > .shop-filter-actions {
    grid-column: 1 / -1
  }

  .size-filters > fieldset input,
  .size-filters > .new-filter-color select,
  .size-filters > .shop-filter-sort select,
  .size-filters > .new-filter-price input {
    height: 34px;
    font-size: 13px
  }

  .size-filters > .shop-filter-actions .button {
    flex: 1;
    min-height: 34px
  }
}


.shop-filter-options {
  align-items: end;
  gap: 8px;
  margin-top: 8px;
  display: flex
}

.shop-filter-options label {
  flex-direction: column;
  flex: 1;
  gap: 3px;
  min-width: 0;
  font-size: 10px;
  display: flex
}

.shop-filter-options input,
.shop-filter-options select {
  border: 1px solid var(--line);
  border-radius: 4px;
  min-width: 0;
  height: 30px;
  min-height: 30px;
  padding: 4px 8px;
  font-size: 11px
}

.shop-filter-options .button {
  height: 30px;
  min-height: 30px;
  padding: 5px 12px;
  font-size: 11px
}

.filter-reset {
  color: var(--muted);
  padding: 7px 3px;
  font-size: 11px
}

.shop-filter .applied-filters {
  margin-top: 7px
}

@media (max-width:760px),
(pointer:coarse) and (max-width:1024px) {
  .shop-filter {
    padding: 0
  }

  .shop-filter-disclosure>summary {
    cursor: pointer;
    justify-content: center;
    align-items: center;
    gap: 7px;
    padding: 8px;
    font-size: 12px;
    list-style: none;
    display: flex
  }

  .shop-filter-disclosure>summary::-webkit-details-marker {
    display: none
  }

  .shop-filter-disclosure:not([open]) .shop-filter-content {
    content-visibility: hidden !important;
    display: none !important
  }

  .shop-filter-disclosure[open] .shop-filter-content {
    padding: 8px 10px 10px
  }

  .size-filters {
    grid-template-columns: 1fr 1fr;
    gap: 10px
  }

  .size-filters input {
    height: 34px;
    font-size: 14px
  }

  .shop-filter-options {
    flex-wrap: wrap
  }

  .shop-filter-options label {
    flex-basis: calc(50% - 8px)
  }

  .shop-filter-options input,
  .shop-filter-options select {
    height: 34px;
    font-size: 13px
  }

  .shop-filter-options .button {
    flex: 1;
    min-height: 34px
  }

  .shop-filter .applied-filters {
    padding: 0 8px 8px
  }

  .shop-filter .applied-filters a {
    font-size: 10px
  }
}

.delivery-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin: 16px 0 24px;
  display: grid
}

.delivery-grid>section,
.delivery-grid>article,
.delivery-grid>div {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 5px;
  padding: 20px
}

.delivery-grid h2 {
  margin: 9px 0;
  font-size: 18px
}

.delivery-grid p {
  font-size: 13px
}

.delivery-price {
  margin: 9px 0 !important;
  font-size: 17px !important
}

.delivery-conditions {
  padding-left: 20px;
  list-style: outside
}

.contact-entry {
  margin: 12px 0
}

.contact-entry>a {
  align-items: center;
  gap: 8px;
  display: flex
}

.contact-entry small {
  color: var(--muted);
  font-size: 12px;
  display: block
}

.contact-entry button {
  margin-top: 5px
}

.calculator-form {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 5px;
  padding: 20px
}

.calculator-form>.interactive-fields {
  flex-direction: column;
  gap: 14px;
  min-width: 0;
  display: flex
}

.calculator-guide {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 5px;
  padding: 20px
}

.size-example {
  align-items: center;
  gap: 15px;
  margin: 15px 0;
  display: flex
}

.size-example>svg {
  width: 160px;
  height: 110px
}

.size-example-value {
  font-size: 18px;
  font-weight: 600
}

.size-example-volume {
  color: var(--green);
  font-size: 14px
}

.size-example-volume span {
  color: var(--muted);
  font-size: 11px;
  display: block
}

.allowance-example {
  border-top: 1px solid var(--line);
  padding: 15px 0
}

.allowance-example h3 {
  margin-bottom: 8px
}

.allowance-example p {
  margin: 8px 0;
  font-size: 13px
}

.packing-advice {
  margin: 10px 0;
  font-size: 12px
}

.construction-guide {
  color: var(--green);
  flex-wrap: wrap;
  gap: 10px;
  font-size: 12px;
  display: flex
}

.guide-note {
  color: var(--muted);
  font-size: 12px
}

.detail-info .favorite-control {
  top: 8px;
  right: 0
}

.company-mission {
  border: 1px solid var(--line);
  background: #fff;
  margin-bottom: 18px;
  padding: 22px
}

.company-values {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 15px;
  display: grid
}

.company-values>article,
.company-values>div {
  border: 1px solid var(--line);
  background: #fff;
  padding: 20px
}

.company-values p {
  margin-top: 8px;
  font-size: 13px
}

.about-intro {
  border: 1px solid var(--line);
  background: #fff;
  grid-template-columns: 1.1fr 1fr;
  gap: 25px;
  margin: 25px 0;
  padding: 22px;
  display: grid
}

.making-preview img {
  max-height: 240px
}

.about-intro p {
  margin: 10px 0
}

.advice-rows {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin: 18px 0;
  display: grid
}

.advice-rows>article {
  border: 1px solid var(--line);
  background: #fff;
  padding: 20px
}

@media (max-width:760px),
(pointer:coarse) and (max-width:1024px) {
  .delivery-grid {
    grid-template-columns: 1fr
  }

  .delivery-grid>section,
  .delivery-grid>article,
  .delivery-grid>div,
  .calculator-form,
  .calculator-guide {
    padding: 15px
  }

  .size-example>svg {
    width: 100px;
    height: 85px
  }

  .size-example-value {
    font-size: 15px
  }

  .company-values,
  .about-intro,
  .advice-rows {
    grid-template-columns: 1fr
  }

  .about-intro,
  .company-mission {
    padding: 15px
  }
}

@media (min-width:761px) and (max-width:1150px) {
  .product-grid .buy-row {
    flex-wrap: nowrap
  }

  .product-grid .buy-row>.quantity,
  .product-grid .buy-row>.button {
    flex-basis: auto !important
  }
}

.pickup-promo {
  gap: 18px
}

.pickup-promo .promo-copy {
  gap: 5px
}

.pickup-promo .promo-copy>span {
  color: #342d1d;
  max-width: 65ch;
  font-size: 13px;
  line-height: 1.4;
  display: block
}

.pickup-promo .promo-copy>span b {
  color: #155a3a;
  padding-inline: 2px
}

.pickup-terms-link {
  color: #2e3c26;
  text-underline-offset: 3px;
  align-self: flex-start;
  font-size: 12px;
  font-weight: 650;
  text-decoration: underline
}

.pickup-promo-action {
  color: #fff;
  text-align: center;
  background: #0f5e3d;
  border: 1px solid #0f5e3d;
  border-radius: 5px;
  flex: none;
  justify-content: center;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  margin-left: auto;
  padding: 9px 14px;
  font-size: 13px;
  font-weight: 700;
  display: inline-flex
}

.pickup-promo-action:hover {
  color: #fff;
  background: #0b4930
}

:is(.pickup-promo-action:focus-visible, .pickup-terms-link:focus-visible) {
  outline-offset: 2px;
  outline: 3px solid #fff
}

main .pickup-promo-action .lucide {
  color: #fff
}

.pickup-discount-badge {
  color: #493800;
  white-space: nowrap;
  background: #f5df7b;
  border-radius: 999px;
  margin-left: 8px;
  padding: 2px 7px;
  font-size: 11px;
  line-height: 1.2;
  display: inline-flex
}

.pickup-discount-info {
  color: var(--ink);
  background: #fff9df;
  border: 1px solid #d9c879;
  border-radius: 6px;
  margin: 16px 0;
  padding: 14px;
  font-size: 12px;
  line-height: 1.5
}

.pickup-discount-info strong {
  margin-bottom: 3px;
  font-size: 14px;
  display: block
}

.pickup-discount-info p {
  margin: 0
}

.pickup-discount-info p+p {
  margin-top: 6px
}

.pickup-discount-info a {
  color: var(--green-dark);
  text-underline-offset: 3px;
  font-weight: 700
}

.pickup-discount-message {
  width: 100%;
  color: var(--ink);
  background: #fff8d8;
  border-radius: 4px;
  margin: 0;
  padding: 10px 12px;
  font-size: 12px
}

@media (max-width:760px) {
  .pickup-promo {
    flex-wrap: wrap;
    gap: 10px
  }

  .pickup-promo .promo-copy {
    flex-basis: 100%;
    max-width: none
  }

  .pickup-promo .promo-copy>span {
    font-size: 12px
  }

  .pickup-promo-action {
    width: 100%;
    margin-left: 0
  }

  .type-tabs .type-finder-link {
    text-align: right;
    flex: 1 0 100%;
    margin-left: 0
  }
}

.container {
  max-width: none
}

.type-tabs .type-finder-link {
  color: var(--green);
  background: 0 0;
  border-color: #0000;
  margin-left: auto;
  font-size: 12px
}

.privacy-settings {
  color: inherit;
  background: 0 0;
  border: 0;
  margin-top: 8px;
  padding: 0;
  font-size: 12px
}

.analytics-choice {
  z-index: 80;
  max-width: 780px;
  color: var(--ink);
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 6px;
  flex-wrap: wrap;
  gap: 12px;
  margin: auto;
  padding: 20px;
  display: flex;
  position: fixed;
  bottom: 16px;
  left: 16px;
  right: 16px;
  box-shadow: 0 3px 25px #0002
}

.analytics-choice p {
  width: 100%;
  font-size: 13px
}

.analytics-choice a {
  text-decoration: underline
}

.outline {
  color: var(--ink)
}

.home-title+.promo-carousel+.listing-heading>strong {
  display: none
}

.home-title+.promo-carousel+.listing-heading {
  justify-content: flex-end;
  margin-block: 7px 6px
}

@font-face {
  font-family: Golos;
  src: url(../fonts/golos-cyrillic.woff2)format("woff2");
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+400-52F, U+2DE0-2DFF, U+A640-A69F
}

@font-face {
  font-family: Golos;
  src: url(../fonts/golos-latin.woff2)format("woff2");
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD
}

:root {
  --ink: #182c29;
  --muted: #52615e;
  --green: #166b3e;
  --green-dark: #0c4e2a;
  --line: #d9e0dd;
  --surface: #f4f6f5;
  --background: #fff;
  --foreground: var(--ink);
  --primary: var(--green);
  --primary-foreground: #fff;
  --border: var(--line);
  --ring: var(--green);
  --font-sans: Golos, Arial, sans-serif;
  --accent: #ffcf63
}

body {
  font-family: var(--font-sans);
  color: var(--ink);
  text-rendering: optimizelegibility;
  font-size: 14px;
  line-height: 1.5
}

button,
input,
select,
textarea {
  font-family: inherit
}

h1,
h2,
h3 {
  letter-spacing: -.025em
}

h1 {
  font-weight: 700
}

h2 {
  font-weight: 650
}

h3 {
  font-weight: 600
}

:is(input:focus-visible, textarea:focus-visible, select:focus-visible) {
  outline: 2px solid var(--green);
  outline-offset: 2px
}

a,
button {
  transition: background-color .15s, color .15s, border-color .15s
}

:is(a:focus-visible, button:focus-visible) {
  outline-offset: 3px;
  outline: 3px solid #176b93
}

p {
  text-wrap: pretty
}

.button {
  border-radius: 5px;
  font-weight: 600
}

.text-link,
.text-button {
  font-weight: 550
}

.eyebrow {
  letter-spacing: .085em;
  color: var(--green);
  margin-bottom: 10px;
  font-size: 11px;
  font-weight: 650;
  display: block
}

.muted,
.form-note,
.field-help {
  font-size: 12px
}

.primary:hover {
  box-shadow: 0 2px 8px #0c4e2a20
}

.shop-header {
  border-top: 3px solid var(--green);
  box-shadow: 0 2px 8px #182c2905
}

.utility-bar {
  height: 34px;
  color: var(--muted);
  grid-template-columns: minmax(0, 1fr) auto auto minmax(0, 1fr);
  align-items: center;
  column-gap: 18px;
  font-size: 12px;
  display: grid
}

.utility-bar>* {
  align-self: center
}

.utility-location,
.utility-email {
  color: var(--ink);
  font-weight: 600
}

.utility-bar a:first-of-type {
  margin-left: 0
}

.utility-location {
  white-space: nowrap;
  justify-self: start;
  align-items: center;
  gap: 5px;
  height: 24px;
  font-weight: 800;
  line-height: 1;
  display: inline-flex
}

.shop-header .utility-bar>.utility-location {
  display: inline-flex
}

.utility-bar .utility-location-short {
  display: none
}

.utility-hours {
  white-space: nowrap;
  height: 24px;
  color: inherit;
  text-underline-offset: 3px;
  justify-self: center;
  align-items: center;
  font-weight: 600;
  line-height: 1;
  -webkit-text-decoration: underline #a7b8b0;
  text-decoration: underline #a7b8b0;
  display: inline-flex
}

.utility-hours:hover {
  color: var(--green);
  text-decoration-color: currentColor
}

.utility-bar .display-control {
  justify-self: center
}

.utility-bar .display-control>summary {
  background: 0 0;
  border-color: #c5cfca;
  height: 24px;
  padding-inline: 7px;
  font-size: 11px
}

.utility-bar .display-control>.display-options {
  top: calc(100% + 5px)
}

.utility-contacts {
  white-space: nowrap;
  justify-self: end;
  align-items: center;
  gap: 16px;
  height: 24px;
  display: flex
}

.utility-contacts>a {
  align-items: center;
  height: 24px;
  line-height: 1;
  display: inline-flex
}

.utility-phone {
  color: var(--ink);
  gap: 5px;
  font-size: 13px;
  font-weight: 800
}

.utility-max {
  height: 24px;
  box-shadow: none;
  color: #1b1f1e;
  background: 0 0;
  border: 0;
  border-radius: 0;
  justify-content: center;
  align-items: center;
  gap: 4px;
  padding: 0 7px;
  font-size: 11px;
  font-weight: 750;
  display: inline-flex
}

.utility-max:hover {
  color: #1b1f1e;
  background: 0 0;
  text-decoration: underline
}

.utility-bar a:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 2px
}

@media (max-width:880px) {
  .utility-contacts .utility-email {
    display: none
  }
}

@media (min-width:761px) and (max-width:1100px) {
  .shop-header .utility-bar {
    grid-template-columns: auto minmax(0, 1fr) auto
  }

  .utility-hours {
    display: none
  }
}

@media (max-width:1100px) {
  .shop-header .utility-bar {
    grid-template-columns: auto 1fr auto;
    gap: 6px;
    height: 26px
  }

  .utility-bar .utility-hours-full {
    display: none
  }

  .utility-hours {
    font-size: 10px
  }

  .utility-contacts {
    gap: 6px
  }

  .utility-phone {
    font-size: 11px
  }

  .utility-max {
    height: 22px;
    padding-inline: 5px;
    font-size: 10px
  }
}

@media (max-width:550px) {
  .utility-bar .utility-location-full {
    display: none
  }

  .utility-bar .utility-location-short {
    display: inline
  }
}

.shop-header-main {
  height: 70px
}

.shop-brand {
  width: 190px
}

.shop-brand img {
  width: 180px;
  height: 52px
}

.header-search {
  border-color: #a9bcb2;
  height: 44px
}

.header-search:focus-within {
  border-color: var(--green);
  box-shadow: 0 0 0 2px #166b3e14
}

.header-search input {
  height: 42px;
  font-size: 14px
}

.header-search>button {
  background: var(--green);
  color: #fff;
  width: 40px
}

.catalog-menu summary {
  border-radius: 5px;
  height: 44px;
  font-weight: 600
}

.account-link {
  font-size: 12px
}

.header-cart {
  background: var(--ink);
  color: #fff;
  padding: 8px 13px;
  position: relative
}

.header-cart:hover {
  color: #fff;
  background: var(--green-dark)
}

.header-cart small {
  color: #d5e3dc;
  font-size: 11px
}

.header-cart .cart-icon {
  flex: none;
  justify-content: center;
  align-items: center;
  display: inline-flex
}

.header-cart-count {
  background: var(--accent);
  min-width: 21px;
  height: 21px;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
  border: 2px solid #fff;
  border-radius: 12px;
  justify-content: center;
  align-items: center;
  padding: 0 4px;
  font-size: 11px;
  line-height: 1;
  display: inline-flex;
  position: absolute;
  top: -5px;
  right: -5px
}

.header-cart:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 3px
}

.shop-info-nav {
  scrollbar-width: none;
  border-top: 1px solid #eef1ef;
  gap: 7px;
  height: 42px;
  font-size: 12px;
  overflow-x: auto
}

.shop-info-nav a {
  white-space: nowrap;
  background: #f2f6f3;
  border: 1px solid #d3dfd7;
  border-radius: 5px;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  min-height: 32px;
  padding: 5px 14px;
  font-weight: 550;
  display: inline-flex
}

.shop-info-nav a:hover {
  color: var(--green-dark);
  background: #e2eee6;
  border-color: #91b39d
}

.shop-info-nav a:last-child {
  margin-left: 0
}

.shop-info-nav a[aria-current=page] {
  background: var(--green);
  border-color: var(--green);
  color: #fff
}

.shop-layout {
  grid-template-columns: 222px minmax(0, 1fr);
  gap: 24px;
  padding-top: 18px
}

.shop-categories {
  border-color: #c8d6cf;
  border-radius: 6px
}

.shop-category-group>a {
  padding: 11px 13px;
  font-size: 13px;
  font-weight: 550
}

.shop-category-group:first-of-type>a {
  background: var(--ink);
  color: #fff
}

.shop-category-group>a:hover {
  color: var(--green-dark);
  background: #e7f0eb
}

.shop-subcategories {
  background: #fff;
  padding: 5px 0
}

.shop-subcategories a {
  color: var(--muted);
  padding: 6px 18px;
  font-size: 12px
}

.shop-categories-title {
  border-bottom: 1px solid var(--line);
  background: #fff;
  color: var(--ink) !important;
  justify-content: space-between !important
}

.shop-custom-link {
  background: #e9f2ec;
  min-height: 48px;
  font-size: 12px
}

.sidebar-service {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 6px;
  margin-top: 12px;
  padding: 16px
}

.sidebar-service strong {
  font-size: 14px
}

.sidebar-service p {
  font-size: 12px
}

.sidebar-service a {
  font-size: 12px;
  font-weight: 650
}

.sidebar-service:last-child {
  background: var(--ink);
  color: #fff;
  border: 0
}

.sidebar-service:last-child p {
  color: #d6e3dc
}

.sidebar-service:last-child a {
  color: #bbebcb
}

.shop-title-row {
  margin-bottom: 14px
}

.shop-title-row h1 {
  max-width: 850px;
  font-size: 27px;
  line-height: 1.15
}

.home-title h1 {
  max-width: 830px
}

.shop-usp {
  color: var(--muted);
  font-size: 12px;
  margin-top: 8px !important
}

.promo-carousel {
  background: var(--accent);
  min-height: 68px;
  color: var(--ink);
  border: 0;
  border-radius: 6px;
  padding: 10px 18px;
  position: relative;
  overflow: hidden
}

.promo-carousel>svg {
  stroke-width: 1.5px;
  width: 35px;
  height: 35px
}

.promo-copy small {
  color: #473b20;
  letter-spacing: .035em;
  font-size: 10px
}

.promo-copy strong {
  letter-spacing: -.035em;
  font-size: 24px;
  font-weight: 750
}

.promo-copy>span {
  color: #473b20;
  font-size: 12px
}

.promo-actions button {
  background: #fff7dd;
  border: 0;
  width: 32px;
  height: 32px
}

.promo-actions {
  color: #473b20
}

.listing-heading {
  margin-block: 14px 8px
}

.listing-heading>strong {
  font-size: 16px
}

.listing-heading>a {
  font-size: 12px;
  font-weight: 550
}

.type-tabs a {
  min-height: 32px;
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 650
}

.type-tabs a[aria-current=page] {
  font-weight: 750
}

.type-tabs .type-finder-link {
  font-weight: 550
}

.type-tabs a:hover {
  border-color: var(--green)
}

.listing-count {
  font-size: 12px
}

.listing-count>span {
  color: var(--muted);
  font-size: 11px
}

.product-grid {
  background: 0 0;
  border: 0;
  border-radius: 0;
  gap: 8px
}

.product-grid>.product-card {
  background: #fff;
  border: 1px solid #d3ded7;
  border-radius: 12px;
  overflow: hidden
}

.product-grid>.product-card:hover {
  box-shadow: none;
  border-color: #80a58d
}

.product-gallery {
  padding-top: 12px
}

.card-dimensions {
  letter-spacing: -.035em;
  color: var(--ink);
  font-size: 17px;
  font-weight: 700
}

.gallery-image {
  height: 115px
}

.gallery-image>.box-model {
  width: 100%;
  max-width: 100%;
  height: 100%
}

.order-product>.box-model,
.account-product>.box-model {
  object-fit: contain;
  flex-shrink: 0
}

.gallery-navigation {
  color: var(--muted);
  height: 29px;
  font-size: 11px
}

.gallery-arrow {
  width: 28px;
  height: 27px;
  color: var(--green-dark);
  background: #eef3f0
}

.gallery-arrow:hover {
  background: #dce9e0
}

.product-body {
  padding: 7px 12px 13px
}

.product-body h3 {
  font-size: 13px;
  font-weight: 550;
  line-height: 1.35
}

.product-material {
  color: var(--muted);
  font-size: 12px
}

.product-body .sku,
.retail-price {
  color: var(--muted)
}

.color-options,
.color-options legend {
  color: var(--muted);
  font-size: 12px
}

.color-options {
  gap: 6px;
  margin-block: 5px
}

.color-options :is(button, a) {
  justify-content: center;
  min-width: 24px;
  min-height: 24px
}

.color-swatch {
  width: 16px;
  height: 16px
}

.availability {
  color: #426b50;
  font-size: 12px
}

.card-price {
  letter-spacing: -.04em;
  font-size: 25px;
  font-weight: 750
}

.card-price>span {
  letter-spacing: 0;
  font-size: 12px
}

.price-tiers {
  margin: 6px 0 8px
}

.price-tiers button {
  background: #f5f7f6;
  padding: 5px 2px;
  font-size: 11px
}

.price-tiers button strong {
  font-size: 12px
}

.price-tiers button.selected {
  color: var(--green-dark);
  box-shadow: inset 0 -2px var(--green);
  background: #e1eee5
}

.compact .quantity-note {
  color: var(--muted);
  font-size: 11px
}

.buy-row>.button {
  height: 38px;
  font-size: 12px
}

.quantity {
  border-color: #a9bcb2;
  height: 38px
}

.quantity input {
  font-size: 13px;
  height: 36px !important
}

.quantity button {
  background: #f0f5f1;
  width: 26px
}

.line-total {
  font-size: 11px
}

.line-total strong {
  font-size: 13px
}

.added-message,
.catalog-disclaimer {
  font-size: 12px
}

.compact .retail-price,
.compact .sku {
  display: none
}

.empty-state {
  border-top: 3px solid var(--green);
  padding: 28px
}

.empty-state .actions {
  margin-top: 20px
}

.pagination a {
  min-width: 36px;
  height: 36px;
  font-size: 13px
}

.shop-filter {
  margin-top: 0
}

.shop-filter .filter-reset {
  color: var(--muted)
}

.page-heading p {
  max-width: 780px;
  line-height: 1.6
}

.page-content,
.section {
  padding-block: 24px
}

.page-heading h1,
.product-detail h1 {
  font-weight: 700
}

.breadcrumbs {
  font-size: 12px
}

.breadcrumbs a:hover {
  text-decoration: underline
}

.field>label,
.account-login label {
  font-size: 13px;
  font-weight: 500
}

.consent-row {
  color: var(--muted);
  font-size: 12px
}

.order-form-section,
.order-items,
.product-detail {
  border-color: #cbd8d0
}

.order-total {
  background: #f0f6f2;
  border-radius: 4px;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: baseline;
  gap: 6px 16px;
  margin-inline: -8px;
  padding: 14px 8px;
  display: grid
}

.order-total strong {
  color: var(--green-dark);
  white-space: nowrap;
  text-align: right;
  font-variant-numeric: tabular-nums
}

.order-total>span {
  font-size: 13px;
  font-weight: 600
}

.order-total>p {
  color: var(--muted);
  grid-column: 1/-1;
  margin: 0;
  font-size: 12px;
  line-height: 1.5
}

.order-document-actions {
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  display: flex
}

.order-document-actions>p,
.order-document-actions>span {
  color: var(--muted);
  flex-basis: 100%;
  font-size: 12px
}

.form-alternatives {
  flex-wrap: wrap;
  gap: 10px 20px;
  display: flex
}

.form-alternatives>a {
  white-space: nowrap;
  align-items: center;
  gap: 7px;
  display: inline-flex
}

.form-alternatives>a svg {
  flex-shrink: 0
}

.order-product p,
.order-product small,
.order-quantity-field>label {
  font-size: 12px
}

.order-product h3 {
  font-size: 14px
}

.order-line .quantity {
  height: 36px
}

.receipt {
  border-top: 4px solid var(--green)
}

.preview-notice {
  color: #62440a
}

.submit-button {
  min-height: 46px
}

.product-detail .gallery-navigation {
  font-size: 12px
}

.product-detail .color-options {
  gap: 8px
}

.product-detail .gallery-arrow {
  width: 36px;
  height: 34px
}

.product-detail .card-dimensions {
  font-size: 25px
}

.product-detail .buy-row>.button {
  height: 44px
}

.detail-info>h1 {
  padding-right: 30px
}

.product-specs,
.detail-meta {
  font-size: 14px
}

.product-specs div {
  padding-block: 10px
}

.info-card,
.contact-card,
.delivery-grid>section {
  border-top: 3px solid var(--green)
}

.account-page {
  max-width: 1200px
}

.account-entry {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 8px;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0;
  margin: 20px 0;
  display: grid;
  overflow: hidden
}

.account-login {
  border: 0;
  border-radius: 0;
  gap: 14px;
  max-width: none;
  margin: 0;
  padding: 30px
}

.account-login>h2 {
  font-size: 24px
}

.account-login .segmented {
  margin: 0 0 6px
}

.account-login .muted {
  font-size: 12px
}

.account-login>a {
  color: var(--green);
  font-size: 13px;
  font-weight: 600
}

.account-phone-field:focus-within {
  border-color: var(--green);
  outline: 2px solid var(--green);
  outline-offset: 0
}

.account-phone-prefix {
  color: var(--ink);
  white-space: nowrap;
  flex: none
}

.account-phone-field input {
  background: 0 0;
  border: 0;
  border-radius: 0;
  outline: none;
  flex: 1;
  min-width: 0
}

.account-help {
  background: var(--ink);
  color: #fff;
  padding: 32px
}

.contacts-layout {
  align-items: start
}

.contacts-panel {
  background: var(--ink);
  color: #fff;
  border-radius: 12px;
  padding: 30px
}

.contacts-panel h2 {
  font-size: 28px
}

.contacts-intro {
  color: #d0e1d7;
  margin-top: 8px;
  font-size: 14px
}

.contacts-panel .contact-links {
  margin-block: 24px
}

.contacts-panel .contact-entry {
  border-bottom: 1px solid #476059;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin: 0;
  padding-block: 12px;
  display: flex
}

.contacts-panel .contact-entry>a {
  color: #fff;
  overflow-wrap: anywhere;
  min-width: 0;
  font-size: clamp(18px, 1.55vw, 23px);
  font-weight: 600
}

.contacts-panel .contact-entry>a:hover {
  color: #c1e7cf
}

.contacts-panel .contact-entry>a>svg:first-child {
  color: #b7dcc5
}

.contacts-panel .contact-entry>a>svg:last-child {
  color: #b7dcc5;
  width: 15px
}

.contacts-panel .copy-contact {
  color: #d9ebe0;
  background: 0 0;
  border-color: #577469;
  margin: 0
}

.contacts-panel .copy-contact:hover {
  background: #29483e
}

.contacts-panel .contact-links>a {
  color: #fff;
  border: 1px solid #769787;
  border-radius: 5px;
  justify-content: center;
  align-items: center;
  gap: 10px;
  margin-top: 16px;
  padding: 10px 12px;
  font-weight: 600;
  display: flex
}

.contacts-panel .contact-links>a:hover {
  background: #29483e
}

.contacts-pickup {
  border-top: 1px solid #577469;
  padding-top: 24px;
  scroll-margin-top: 24px
}

.contacts-pickup h3 {
  align-items: center;
  gap: 10px;
  font-size: 21px;
  display: flex
}

.contacts-address {
  max-width: 34ch;
  margin-top: 12px;
  font-size: 19px;
  line-height: 1.5
}

.contacts-hours {
  color: #d0e1d7;
  align-items: start;
  gap: 9px;
  font-size: 14px;
  display: flex
}

.contacts-hours svg {
  margin-top: 2px
}

.contacts-panel .contacts-route {
  color: var(--ink);
  background: #fff;
  min-height: 42px;
  margin-top: 18px
}

.contacts-panel .contacts-route:hover {
  background: #e6f0e9
}

.contacts-note {
  color: #d0e1d7;
  margin-top: 16px;
  font-size: 12px
}

.contacts-panel .text-link {
  color: #c1e7cf;
  margin-top: 14px
}

.contacts-form-panel {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 12px;
  padding: 28px
}

.contacts-form-panel .form-heading {
  font-size: 23px
}

.account-help>.eyebrow {
  color: #bce3c9
}

.account-help>h2 {
  margin-bottom: 22px;
  font-size: 30px;
  line-height: 1.15
}

.account-benefit {
  align-items: flex-start;
  gap: 14px;
  margin: 20px 0;
  display: flex
}

.account-benefit>svg {
  color: #bde5c9;
  width: 23px
}

.account-benefit h3 {
  color: #fff;
  font-size: 15px
}

.account-benefit p {
  color: #d6e3dc;
  margin-top: 4px;
  font-size: 13px;
  line-height: 1.5
}

.account-help>.button {
  margin-top: 8px
}

.account-help-link {
  color: #c7ecd3;
  align-items: center;
  gap: 8px;
  margin-top: 16px;
  font-size: 12px;
  display: flex
}

.account-help-link:hover {
  color: #fff
}

.account-quick-actions {
  flex-wrap: wrap;
  gap: 14px;
  margin: 20px 0;
  display: flex
}

.account-quick-actions a {
  border: 1px solid var(--line);
  background: #fff;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  font-size: 13px;
  display: flex
}

.account-quick-actions a:first-child {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink)
}

.account-toolbar h2 {
  font-size: 22px
}

.history-order {
  border-left: 3px solid var(--green)
}

.history-order>p {
  color: var(--muted);
  font-size: 12px
}

.history-item {
  font-size: 14px
}

.history-item small {
  font-size: 12px
}

.history-item input {
  width: 18px;
  height: 18px;
  accent-color: var(--green)
}

.history-search {
  flex-direction: column;
  gap: 6px;
  max-width: 500px;
  font-size: 13px;
  display: flex
}

.history-search input {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 4px;
  padding: 10px
}

.favorite-list>p {
  border: 1px solid var(--line);
  background: #fff;
  grid-column: 1/-1;
  padding: 24px;
  font-size: 14px
}

.favorite-list>p a {
  color: var(--green);
  font-weight: 600
}

.account-product {
  flex-wrap: wrap
}

.account-product>div {
  flex: 1;
  min-width: 140px
}

.account-product p {
  color: var(--muted);
  font-size: 12px
}

.buying-support {
  border-top: 1px solid var(--line);
  margin-top: 44px;
  padding-top: 28px
}

.support-heading {
  justify-content: space-between;
  align-items: end;
  gap: 20px;
  margin-bottom: 18px;
  display: flex
}

.support-heading h2 {
  font-size: 24px
}

.support-heading>a {
  white-space: nowrap;
  color: var(--green);
  gap: 5px;
  font-size: 12px;
  display: flex
}

.advice-card-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  display: grid
}

.advice-card {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 6px;
  flex-direction: column;
  min-height: 235px;
  padding: 23px;
  display: flex;
  position: relative
}

.advice-card:hover {
  color: var(--ink);
  background: #fbfdfb;
  border-color: #82a68e
}

.advice-number {
  color: var(--green);
  letter-spacing: -.05em;
  margin-bottom: 25px;
  font-size: 32px;
  font-weight: 400;
  line-height: 1;
  display: block
}

.advice-card .eyebrow {
  margin-bottom: 6px;
  font-size: 10px
}

.advice-card h2,
.advice-card h3 {
  max-width: 260px;
  font-size: 19px;
  line-height: 1.2
}

.advice-card p {
  color: var(--muted);
  margin: 10px 0 18px;
  font-size: 13px
}

.advice-card .text-link {
  margin-top: auto;
  font-size: 12px
}

.production-preview {
  background: var(--ink);
  color: #fff;
  border-radius: 6px;
  grid-template-columns: 1fr 1fr;
  margin-top: 22px;
  display: grid;
  overflow: hidden
}

.production-preview:hover {
  color: #fff
}

.production-preview>img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  min-height: 300px
}

.production-preview>div {
  flex-direction: column;
  justify-content: center;
  align-items: start;
  padding: 28px;
  display: flex
}

.production-preview .eyebrow {
  color: #bce3c9;
  font-size: 10px
}

.production-preview h2 {
  font-size: 29px;
  line-height: 1.12
}

.production-preview p {
  color: #d6e3dc;
  margin: 14px 0 18px;
  font-size: 13px
}

.production-preview small {
  color: #c1d2c8;
  margin-top: 14px;
  font-size: 11px;
  line-height: 1.5
}

.production-preview .button {
  color: var(--green-dark);
  background: #fff
}

.editorial-heading {
  max-width: 860px;
  padding: 22px 0 27px
}

.editorial-heading h1 {
  letter-spacing: -.04em;
  max-width: 830px;
  font-size: 38px;
  line-height: 1.08
}

.editorial-heading>p {
  max-width: 700px;
  color: var(--muted);
  margin-top: 16px;
  font-size: 15px;
  line-height: 1.65
}

.editorial-heading .actions {
  margin-top: 21px
}

.production-story {
  grid-template-columns: 1.15fr 1fr;
  align-items: center;
  gap: 35px;
  margin-block: 12px 35px;
  display: grid
}

.production-story figure {
  min-width: 0;
  margin: 0
}

.production-story figure>img {
  object-fit: cover;
  border-radius: 6px;
  width: 100%
}

.production-story figcaption {
  color: var(--muted);
  margin-top: 8px;
  font-size: 11px;
  line-height: 1.5
}

.production-story-copy h2 {
  margin-bottom: 14px;
  font-size: 29px;
  line-height: 1.15
}

.production-story-copy>p {
  color: var(--muted);
  font-size: 14px
}

.process-list {
  counter-reset: process;
  gap: 15px;
  margin: 20px 0;
  padding: 0;
  list-style: none;
  display: grid
}

.process-list li {
  counter-increment: process;
  grid-template-columns: 32px 1fr;
  gap: 1px 12px;
  display: grid
}

.process-list li:before {
  content: "0" counter(process);
  color: var(--green);
  grid-row: span 2;
  align-self: center;
  font-size: 17px;
  font-weight: 600
}

.process-list strong {
  font-size: 14px
}

.process-list li>span {
  color: var(--muted);
  font-size: 12px
}

.production-factors {
  border-block: 1px solid var(--line);
  padding: 28px 0
}

.production-factors h2 {
  margin-bottom: 20px;
  font-size: 26px
}

.four-factors {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  display: grid
}

.four-factors article {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 6px;
  padding: 20px
}

.four-factors svg {
  color: var(--green);
  margin-bottom: 12px
}

.four-factors h3 {
  margin-bottom: 6px;
  font-size: 17px
}

.four-factors p {
  color: var(--muted);
  font-size: 13px
}

.material-story {
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 30px;
  padding: 30px 0;
  display: grid
}

.material-story>img {
  border-radius: 6px;
  width: 100%
}

.material-story h2 {
  font-size: 29px;
  line-height: 1.2
}

.material-story p {
  color: var(--muted);
  margin: 16px 0;
  font-size: 14px;
  line-height: 1.6
}

.material-story small {
  color: var(--muted);
  margin-top: 14px;
  font-size: 11px;
  line-height: 1.5;
  display: block
}

.editorial-cta {
  border: 1px solid #bdd0c3;
  border-left: 4px solid var(--green);
  background: #fff;
  border-radius: 5px;
  justify-content: space-between;
  align-items: center;
  gap: 22px;
  margin: 25px 0;
  padding: 26px;
  display: flex
}

.editorial-cta h2 {
  font-size: 23px
}

.editorial-cta p {
  color: var(--muted);
  margin-top: 7px;
  font-size: 13px
}

.editorial-cta>.button {
  flex-shrink: 0
}

.advice-hub .advice-card {
  min-height: 280px
}

.advice-hub .advice-card h2 {
  font-size: 24px
}

.article-layout {
  grid-template-columns: minmax(0, 820px) minmax(220px, 1fr);
  align-items: start;
  gap: 45px;
  margin-top: 20px;
  display: grid
}

.guide-article {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 6px;
  padding: 32px
}

.guide-article h1 {
  font-size: 34px;
  line-height: 1.12
}

.article-intro {
  color: var(--muted);
  margin-top: 16px;
  font-size: 17px;
  line-height: 1.55
}

.guide-article>section {
  border-top: 1px solid var(--line);
  grid-template-columns: 35px 1fr;
  gap: 15px;
  margin-top: 26px;
  padding-top: 24px;
  display: grid
}

.chapter-number {
  color: var(--green);
  font-size: 20px;
  font-weight: 500
}

.guide-article h2 {
  margin-bottom: 12px;
  font-size: 22px;
  line-height: 1.25
}

.guide-article section p {
  color: #334840;
  font-size: 15px;
  line-height: 1.75
}

.article-next {
  border-top: 1px solid var(--line);
  flex-wrap: wrap;
  align-items: start;
  gap: 12px;
  margin-top: 25px;
  padding-top: 25px;
  display: flex
}

.article-next h2 {
  width: 100%;
  margin: 0 0 6px
}

.article-aside {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 6px;
  padding: 20px;
  position: sticky;
  top: 20px
}

.article-aside>strong {
  margin-bottom: 8px;
  font-size: 17px;
  display: block
}

.article-aside>a:not(.button) {
  border-bottom: 1px solid var(--line);
  justify-content: space-between;
  gap: 16px;
  padding: 12px 0;
  font-size: 13px;
  display: flex
}

.article-aside .button {
  width: 100%;
  margin-top: 18px;
  font-size: 12px
}

.article-aside>a span {
  color: var(--green)
}

.shop-footer {
  background: var(--ink);
  color: #fff;
  margin-top: 15px;
  padding: 30px 0 20px;
  font-size: 13px
}

.footer-columns strong {
  font-size: 16px
}

.footer-columns p {
  color: #cadbd1;
  font-size: 12px
}

.footer-columns a {
  font-size: 12px
}

.footer-columns a:hover {
  color: #b4e5c4
}

.local-preview-label {
  color: #c6d6cc;
  border-color: #3c5149;
  font-size: 11px
}

.story-navigation {
  flex-wrap: wrap;
  gap: 20px;
  margin: 16px 0;
  font-size: 13px;
  display: flex
}

.story-navigation a {
  align-items: center;
  gap: 8px;
  display: flex
}

.story-navigation svg {
  width: 17px
}

.about-reasons .advice-rows>a {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 5px;
  align-items: start;
  gap: 15px;
  padding: 20px;
  display: flex
}

.about-reasons small {
  color: var(--muted);
  margin-top: 6px;
  font-size: 13px;
  line-height: 1.5;
  display: block
}

.about-reasons strong {
  font-size: 15px
}

.about-reasons .advice-rows>a>svg {
  color: var(--green)
}

.about-reasons .advice-rows>a>svg:last-child {
  margin-left: auto
}

.bottom-cta {
  border-left: 4px solid var(--green);
  background: #fff;
  border-radius: 5px;
  margin-block: 28px;
  padding: 22px
}

.company-mission {
  border-left: 4px solid var(--green);
  border-radius: 5px
}

.making-preview>p {
  color: var(--muted);
  font-size: 12px
}

.making-preview a>span {
  align-items: center;
  gap: 15px;
  margin-top: 10px;
  display: flex
}

.company-values>div,
.company-values>article,
.company-values>a {
  border-radius: 5px
}

.company-values>a {
  border: 1px solid var(--line);
  background: #fff;
  padding: 20px;
  display: block
}

.company-values>a>svg {
  color: var(--green);
  margin-bottom: 12px
}

.company-values>a>span {
  color: var(--green);
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  font-size: 12px;
  display: flex
}

@media (max-width:1150px) {
  .shop-layout {
    grid-template-columns: 192px minmax(0, 1fr);
    gap: 16px;
    padding-top: 16px
  }

  .shop-header-main {
    gap: 10px
  }

  .shop-brand {
    width: 168px
  }

  .shop-brand img {
    width: 156px;
    height: 48px
  }

  .shop-info-nav {
    gap: 7px;
    font-size: 11px
  }

  .shop-title-row h1 {
    font-size: 25px
  }

  .promo-copy strong {
    font-size: 22px
  }

  .card-dimensions {
    font-size: 16px
  }

  .product-card .gallery-image {
    height: 96px
  }

  .product-body {
    padding-inline: 10px
  }

  .product-body h3 {
    font-size: 12px
  }

  .product-material {
    font-size: 11px
  }

  .product-grid .buy-row>.quantity,
  .product-grid .buy-row>.button {
    flex-basis: 100%
  }

  .support-heading {
    align-items: start
  }

  .support-heading h2 {
    font-size: 22px
  }

  .advice-card-grid {
    gap: 10px
  }

  .advice-card {
    padding: 18px
  }

  .production-preview>div {
    padding: 22px
  }

  .production-preview h2 {
    font-size: 26px
  }

  .four-factors {
    gap: 12px
  }

  .four-factors article {
    padding: 16px
  }

  .article-layout {
    gap: 24px
  }

  .account-help {
    padding: 28px
  }
}

@media (max-width:760px),
(pointer:coarse) and (max-width:1024px) {
  body {
    font-size: 14px
  }

  .utility-bar {
    gap: 8px;
    height: 26px;
    font-size: 10px
  }

  .shop-header-main {
    height: 102px;
    padding-top: 7px
  }

  .shop-brand {
    width: auto
  }

  .shop-brand img {
    width: 136px;
    height: 38px
  }

  .catalog-menu summary {
    height: 32px;
    padding: 6px 9px;
    font-size: 12px
  }

  .header-cart {
    color: #176c40;
    background: #e6f1e9;
    border: 1px solid #a9c9b4;
    border-radius: 7px;
    flex: none;
    justify-content: center;
    width: 44px;
    min-width: 44px;
    height: 44px;
    padding: 8px
  }

  .header-cart:hover {
    color: #176c40;
    background: #d5e8dc
  }

  .header-cart svg {
    width: 24px;
    height: 24px
  }

  .header-cart .cart-summary {
    display: none
  }

  .header-search {
    height: 38px
  }

  .header-search input {
    height: 36px;
    font-size: 14px
  }

  .header-search>button {
    width: 35px;
    height: 30px
  }

  .shop-info-nav {
    scrollbar-width: none;
    gap: 7px;
    height: 46px;
    font-size: 11px;
    display: flex;
    overflow-x: auto
  }

  .contacts-panel,
  .contacts-form-panel {
    padding: 20px
  }

  .contacts-panel h2 {
    font-size: 25px
  }

  .shop-info-nav a:last-child {
    margin: 0
  }

  .shop-layout {
    padding-top: 14px
  }

  .shop-title-row {
    margin-bottom: 10px
  }

  .shop-title-row h1 {
    font-size: 20px;
    line-height: 1.15
  }

  .is-home .shop-info-nav,
  .home-title+.promo-carousel+.listing-heading {
    display: none
  }

  .shop-usp {
    font-size: 11px;
    line-height: 1.45;
    margin-top: 6px !important
  }

  .promo-carousel {
    gap: 8px;
    min-height: 74px;
    padding: 10px 12px
  }

  .promo-copy small {
    letter-spacing: 0;
    font-size: 9px
  }

  .promo-copy strong {
    font-size: 18px;
    line-height: 1.15
  }

  .promo-copy>span {
    font-size: 11px
  }

  .promo-actions {
    gap: 4px
  }

  .promo-actions button {
    width: 27px;
    height: 30px
  }

  .listing-heading {
    align-items: center;
    margin-top: 10px
  }

  .listing-heading>strong {
    max-width: 170px;
    font-size: 13px
  }

  .listing-heading>a {
    max-width: 155px;
    font-size: 11px
  }

  .type-tabs a {
    min-height: 30px;
    padding: 6px 8px;
    font-size: 11px
  }

  .listing-count {
    margin-block: 7px;
    font-size: 11px
  }

  .listing-count>span {
    max-width: 180px;
    font-size: 10px;
    line-height: 1.25
  }

  .product-gallery {
    padding: 9px 7px 0
  }

  .card-dimensions {
    letter-spacing: -.04em;
    font-size: 14px
  }

  .card-dimensions span {
    font-size: 10px
  }

  .gallery-image {
    height: 102px
  }

  .gallery-navigation {
    height: 27px;
    font-size: 10px
  }

  .gallery-arrow {
    width: 25px;
    height: 25px
  }

  .product-body {
    padding: 5px 9px 10px
  }

  .product-body h3 {
    min-height: 16px;
    font-size: 12px;
    line-height: 1.3
  }

  .product-material {
    font-size: 11px;
    line-height: 1.3
  }

  .color-options,
  .color-options legend {
    font-size: 10px;
    line-height: 20px
  }

  .color-options {
    gap: 4px;
    min-height: 24px;
    margin: 3px 0
  }

  .color-options :is(button, a) {
    min-width: 24px;
    min-height: 24px
  }

  .color-swatch {
    width: 14px;
    height: 14px
  }

  .availability {
    margin-bottom: 3px;
    font-size: 11px;
    line-height: 1.3
  }

  .card-price {
    font-size: 23px
  }

  .card-price>span {
    font-size: 11px
  }

  .price-tiers {
    margin: 5px 0 6px
  }

  .price-tiers button {
    padding: 4px 1px;
    font-size: 10px
  }

  .price-tiers button strong {
    font-size: 11px
  }

  .compact .quantity-note {
    margin-bottom: 6px;
    font-size: 10px
  }

  .quantity {
    height: 34px
  }

  .quantity input {
    font-size: 14px;
    height: 32px !important
  }

  .quantity button {
    width: 28px
  }

  .buy-row>.button {
    height: 35px;
    min-height: 35px;
    font-size: 12px
  }

  .line-total {
    font-size: 10px
  }

  .line-total strong {
    font-size: 12px
  }

  .added-message {
    font-size: 11px
  }

  .mobile-shop-nav {
    height: 58px
  }

  .mobile-shop-nav a {
    font-size: 11px
  }

  .mobile-shop-nav a:nth-child(2) {
    color: var(--green);
    font-weight: 650
  }

  .catalog-disclaimer {
    font-size: 11px
  }

  .shop-footer {
    padding-bottom: 28px
  }

  .footer-columns {
    gap: 24px
  }

  .breadcrumbs {
    font-size: 11px
  }

  .page-content,
  .section {
    padding-block: 18px
  }

  .page-heading p {
    font-size: 13px
  }

  .account-entry {
    grid-template-columns: 1fr;
    margin-top: 16px
  }

  .account-login {
    gap: 13px;
    padding: 20px
  }

  .account-login>h2 {
    font-size: 22px
  }

  .account-login label {
    font-size: 13px
  }

  .account-help {
    padding: 24px
  }

  .account-help>h2 {
    font-size: 27px
  }

  .account-benefit {
    margin: 18px 0
  }

  .account-quick-actions {
    gap: 8px
  }

  .account-quick-actions a {
    padding: 10px;
    font-size: 12px
  }

  .account-toolbar {
    font-size: 12px
  }

  .account-toolbar h2 {
    font-size: 20px
  }

  .history-order {
    padding: 15px
  }

  .history-item {
    font-size: 13px
  }

  .order-product h3 {
    font-size: 12px
  }

  .order-product p,
  .order-product small,
  .order-quantity-field>label {
    font-size: 10px
  }

  .order-line .quantity {
    height: 32px
  }

  .order-line .quantity input {
    font-size: 12px;
    height: 30px !important
  }

  .order-quantity-field .quantity button {
    width: 20px
  }

  .consent-row {
    font-size: 12px
  }

  .product-detail .gallery-image {
    height: 225px
  }

  .product-detail h1 {
    font-size: 23px
  }

  .product-detail .card-dimensions {
    font-size: 22px
  }

  .product-detail .color-options {
    font-size: 13px
  }

  .product-detail .color-options legend {
    font-size: 12px
  }

  .product-detail .quantity {
    height: 42px
  }

  .product-detail .quantity input {
    height: 40px !important
  }

  .product-detail .buy-row>.button {
    padding-inline: 20px;
    font-size: 14px
  }

  .buying-support {
    margin-top: 28px;
    padding-top: 24px
  }

  .support-heading {
    flex-direction: column;
    gap: 12px
  }

  .support-heading h2 {
    font-size: 23px
  }

  .support-heading>a {
    font-size: 13px
  }

  .advice-card-grid {
    grid-template-columns: 1fr;
    gap: 12px
  }

  .advice-card,
  .advice-hub .advice-card {
    min-height: 0;
    padding: 22px
  }

  .advice-number {
    margin: 0;
    font-size: 25px;
    position: absolute;
    top: 20px;
    right: 20px
  }

  .advice-card .eyebrow {
    margin-right: 40px
  }

  .advice-card h2,
  .advice-card h3,
  .advice-hub .advice-card h2 {
    max-width: 280px;
    font-size: 22px
  }

  .advice-card p {
    margin-bottom: 15px
  }

  .production-preview {
    grid-template-columns: 1fr
  }

  .production-preview>img {
    height: 220px;
    min-height: 0
  }

  .production-preview>div {
    padding: 24px
  }

  .production-preview h2 {
    font-size: 30px
  }

  .editorial-heading {
    padding: 16px 0 24px
  }

  .editorial-heading h1 {
    font-size: 30px;
    line-height: 1.1
  }

  .editorial-heading>p {
    margin-top: 14px;
    font-size: 14px;
    line-height: 1.6
  }

  .production-story {
    grid-template-columns: 1fr;
    gap: 24px;
    margin-bottom: 24px
  }

  .production-story-copy h2 {
    font-size: 26px
  }

  .production-story figcaption {
    font-size: 11px
  }

  .production-factors {
    padding-block: 24px
  }

  .production-factors h2 {
    font-size: 24px
  }

  .four-factors {
    grid-template-columns: 1fr 1fr;
    gap: 10px
  }

  .four-factors article {
    padding: 16px
  }

  .four-factors p {
    font-size: 12px
  }

  .material-story {
    grid-template-columns: 1fr;
    gap: 20px;
    padding-block: 24px
  }

  .material-story h2 {
    font-size: 26px
  }

  .editorial-cta {
    flex-direction: column;
    align-items: start;
    gap: 16px;
    padding: 20px
  }

  .editorial-cta h2 {
    font-size: 23px
  }

  .article-layout {
    grid-template-columns: 1fr;
    gap: 20px;
    margin-top: 14px
  }

  .guide-article {
    padding: 21px 18px
  }

  .guide-article h1 {
    font-size: 28px
  }

  .article-intro {
    font-size: 15px
  }

  .guide-article>section {
    grid-template-columns: 26px 1fr;
    gap: 10px;
    margin-top: 22px;
    padding-top: 22px
  }

  .guide-article h2 {
    font-size: 20px
  }

  .guide-article section p {
    font-size: 14px;
    line-height: 1.7
  }

  .article-aside {
    position: static
  }

  .article-next h2 {
    font-size: 21px
  }

  .article-next .button {
    font-size: 13px
  }

  .about-reasons .advice-rows>a {
    padding: 18px
  }

  .bottom-cta {
    padding: 20px
  }

  .empty-state {
    padding: 22px
  }

  .local-preview-label {
    font-size: 11px
  }
}

.shop-header .utility-bar {
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  column-gap: 12px;
  font-weight: 400
}

.utility-bar :is(.utility-location, .utility-hours, .utility-email, .utility-phone, .utility-max, .utility-discount) {
  font-weight: 400
}

.utility-bar .utility-phone {
  font-weight: 500
}

.utility-message {
  justify-self: center;
  align-items: center;
  gap: 12px;
  min-width: 0;
  display: flex
}

.utility-message .utility-hours {
  display: inline-flex
}

.utility-discount {
  background: var(--accent);
  min-height: 27px;
  color: var(--ink);
  text-align: center;
  white-space: nowrap;
  border-radius: 4px;
  justify-content: center;
  align-items: center;
  padding: 4px 9px;
  line-height: 1.2;
  display: inline-flex
}

.utility-discount:hover {
  color: var(--ink);
  background: #f7c34d
}

@media (max-width:1100px) {
  .utility-bar .utility-location-full {
    display: none
  }

  .utility-bar .utility-location-short {
    display: inline
  }
}

@media (max-width:760px),
(pointer:coarse) and (max-width:1024px) {
  .shop-header .utility-bar {
    grid-template-rows: auto auto;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 3px 8px;
    height: auto;
    min-height: 54px;
    padding-block: 3px
  }

  .utility-bar .utility-location {
    grid-area: 1/1
  }

  .utility-bar .utility-contacts {
    grid-area: 1/2;
    gap: 6px;
    min-width: 0
  }

  .utility-bar .utility-message {
    flex-wrap: wrap;
    grid-area: 2/1/auto/-1;
    justify-content: center;
    gap: 3px 8px
  }

  .utility-message .utility-hours {
    font-size: 10px
  }

  .utility-discount {
    min-height: 24px;
    padding: 3px 7px;
    font-size: 10px
  }
}

.display-control {
  min-inline-size: 0;
  color: var(--ink);
  white-space: nowrap;
  border: 0;
  flex: none;
  align-items: center;
  gap: 4px;
  margin: 0;
  padding: 0;
  font: 600 12px/1.2 Golos, Arial, sans-serif;
  display: inline-flex
}

.display-control>button {
  width: 34px;
  height: 34px;
  color: var(--green-dark);
  cursor: pointer;
  background: #fff;
  border: 1px solid #c5cfca;
  border-radius: 5px;
  place-items: center;
  padding: 0;
  display: grid
}

.display-control>button:hover,
.display-control>button[aria-pressed=true] {
  border-color: var(--green);
  background: #edf5ef
}

.display-control>button:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 2px
}

.display-control>span {
  text-align: center;
  min-width: 89px
}

@media (min-width:761px) {
  html[data-display-size=compact] .container {
    max-width: min(1700px, 100% - 24px)
  }

  html[data-display-size=compact] .shop-layout {
    gap: 14px
  }

  html[data-display-size=compact] .shop-sidebar {
    width: 202px
  }

  html[data-display-size=compact] .page-content,
  html[data-display-size=compact] .section {
    padding-block: 18px
  }

  html[data-display-size=compact] .product-grid {
    border: 0;
    gap: 9px
  }

  html[data-display-size=compact] .product-card {
    border: 1px solid var(--line);
    border-radius: 5px
  }

  html[data-display-size=compact] .product-body {
    padding: 6px 10px 10px
  }

  html[data-display-size=compact] .product-gallery {
    padding: 8px 8px 0
  }

  html[data-display-size=compact] .product-detail {
    gap: 18px;
    padding: 18px
  }

  html[data-display-size=compact] .catalog-filter-form {
    padding: 10px
  }
}

@media (min-width:1300px) {
  html[data-display-size=compact] .product-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr))
  }
}

@media (max-width:760px) {
  .display-control {
    display: none
  }

  .shop-header .utility-bar {
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
    height: auto;
    min-height: 26px
  }

  .utility-hours {
    display: none
  }

  .utility-location,
  .utility-contacts {
    min-width: 0
  }

  .utility-contacts {
    white-space: normal;
    flex-wrap: wrap;
    justify-content: flex-end;
    height: auto
  }

  .utility-contacts>a {
    white-space: normal
  }

  .utility-phone {
    overflow-wrap: anywhere
  }

  .shop-layout,
  .shop-content,
  .buying-support,
  .advice-card-grid,
  .advice-card {
    min-width: 0
  }

  .advice-card-grid {
    grid-template-columns: minmax(0, 1fr)
  }

  .advice-card :is(h2, h3, p) {
    overflow-wrap: anywhere
  }

  .card-dimensions {
    white-space: normal;
    overflow-wrap: anywhere
  }

  .product-specs div {
    flex-wrap: wrap
  }

  .product-specs dd {
    overflow-wrap: anywhere;
    min-width: 0
  }

  .spec-section,
  .spec-list,
  .spec-list>div,
  .spec-list :is(dt, dd) {
    min-width: 0
  }

  .spec-list>div {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr)
  }

  .spec-list :is(dt, dd) {
    overflow-wrap: anywhere
  }

  .product-detail,
  .product-detail .detail-info {
    min-width: 0
  }

  .product-detail :is(h1, h2, h3),
  .spec-section h2 {
    overflow-wrap: anywhere
  }
}

@media print {
  .display-control {
    display: none
  }
}

.catalog-load-error {
  color: #62440a;
  text-align: center;
  background: #fff0d5;
  padding: 12px 24px
}

.catalog-load-error button {
  margin-left: 10px;
  text-decoration: underline
}

@media (max-width:760px) {
  .product-detail .detail-info {
    order: -1;
    min-width: 0
  }

  .product-detail .detail-media {
    min-width: 0
  }

  .product-detail .gallery-image {
    height: clamp(180px, 55vw, 240px)
  }

  .product-detail .product-controls:not(.compact) {
    flex-direction: column;
    display: flex
  }

  .product-detail .product-controls:not(.compact) .line-total {
    order: 1
  }

  .product-detail .product-controls:not(.compact) .price-tiers {
    order: 2
  }

  .product-detail .product-controls:not(.compact) .added-message {
    order: 3
  }

  .product-detail .quantity button {
    width: 44px;
    min-width: 44px;
    min-height: 44px
  }

  .product-detail .quantity,
  .product-detail .quantity input,
  .product-detail .buy-row>.button {
    min-height: 44px
  }

  .product-detail .quantity {
    height: 44px
  }

  .product-detail .quantity input {
    height: 44px !important
  }

  .product-detail .buy-row>.button {
    height: 44px;
    padding-inline: 10px
  }

  body:has(.product-detail .buy-row) {
    padding-bottom: calc(168px + env(safe-area-inset-bottom))
  }

  .product-detail .price-large {
    z-index: 55;
    left: 0;
    right: 0;
    bottom: calc(124px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--line);
    background: #fff;
    height: 44px;
    margin: 0;
    padding: 5px 12px;
    font-size: 22px;
    line-height: 34px;
    position: fixed
  }

  .product-detail .buy-row {
    z-index: 55;
    left: 0;
    right: 0;
    bottom: calc(64px + env(safe-area-inset-bottom));
    background: #fff;
    flex-wrap: nowrap;
    gap: 8px;
    height: 60px;
    margin: 0;
    padding: 7px 12px 9px;
    display: flex;
    position: fixed
  }

  .product-detail .buy-row>.quantity {
    flex: 0 0 146px;
    max-width: 146px
  }

  .product-detail .buy-row>.button {
    flex: auto;
    min-width: 0
  }

  body.mobile-keyboard-open:has(.product-detail .buy-row) .price-large {
    display: none
  }

  body.mobile-keyboard-open:has(.product-detail .buy-row) .buy-row {
    bottom: 8px
  }
}

@media (max-width:350px) {
  .utility-hours {
    display: none
  }
}

@media (max-width:760px) {
  .calculator-guide .size-example {
    gap: 10px
  }

  .calculator-guide .size-example>img {
    flex: 0 0 100px;
    width: 100px;
    height: 100px
  }

  .calculator-guide .size-example>div {
    overflow-wrap: anywhere;
    min-width: 0
  }

  .product-card .color-options :is(button, a) {
    justify-content: center;
    min-width: 28px;
    min-height: 28px
  }

  .product-card .gallery-navigation {
    min-height: 30px
  }

  .product-card .gallery-arrow {
    min-width: 30px;
    min-height: 30px
  }

  .product-card .favorite-control .icon-button {
    min-width: 32px;
    min-height: 32px
  }

  .order-line .quantity button {
    min-width: 28px;
    min-height: 32px
  }
}

.box-render {
  flex-shrink: 0;
  width: 100%;
  min-width: 0;
  height: 100%;
  display: block;
  position: relative
}

.box-photo {
  flex-shrink: 0;
  width: 100%;
  min-width: 0;
  height: 100%;
  display: block
}

.box-photo-image {
  width: 100%;
  height: 100%;
  display: block
}

.bag-dimension-visual {
  flex-shrink: 0;
  width: 100%;
  min-width: 0;
  height: 100%;
  display: block;
  position: relative
}

.bag-dimension-visual>img,
.bag-dimension-visual>.product-photo-missing {
  object-fit: contain;
  width: 100%;
  height: 100%;
  display: block
}

.bag-dimensions-overlay {
  pointer-events: none;
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0
}

.bag-dimension-label {
  fill: #234a36;
  stroke: #fff;
  stroke-width: 9px;
  paint-order: stroke;
  font-size: 62px;
  font-weight: 650
}

.product-card .owner-photo-gallery .gallery-image {
  height: 150px
}

.product-card .photo-dimension-label {
  font-size: 62px
}

.box-render>.box-render-image {
  object-fit: contain;
  width: 100%;
  max-width: 100%;
  height: 100%;
  display: block
}

.box-dimensions-overlay {
  pointer-events: none;
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0
}

.product-gallery .gallery-image {
  position: relative
}

button.gallery-image {
  cursor: zoom-in;
  background: #fff;
  border: 0;
  justify-content: center;
  align-items: center;
  width: 100%;
  padding: 0;
  display: flex
}

.gallery-zoom-hint {
  width: 36px;
  height: 36px;
  color: var(--green);
  background: #f0f5f1;
  border-radius: 5px;
  place-items: center;
  display: grid;
  position: absolute;
  bottom: 10px;
  right: 10px
}

.gallery-thumbnails {
  border: 0;
  gap: 5px;
  min-width: 0;
  margin: 0;
  padding: 6px 0 0;
  display: flex
}

.gallery-thumbnail {
  border: 1px solid var(--line);
  min-width: 0;
  color: var(--muted);
  background: #fff;
  border-radius: 5px;
  flex: 1;
  padding: 2px
}

.gallery-thumbnail:hover {
  border-color: #7ba68a
}

.gallery-thumbnail[aria-pressed=true] {
  border-color: var(--green);
  box-shadow: inset 0 0 0 1px var(--green);
  color: var(--green-dark)
}

.gallery-thumbnail-image {
  height: 28px;
  display: block;
  position: relative
}

.gallery-thumbnail-image>img {
  object-fit: contain;
  width: 100%;
  height: 100%
}

.gallery-thumb-label {
  display: none
}

.product-card .gallery-image {
  height: 150px
}

.product-card .box-dimension-label {
  font-size: 43px
}

.product-detail {
  grid-template-columns: minmax(0, 1.08fr) minmax(340px, 1fr);
  align-items: start;
  gap: 28px
}

.product-detail .detail-media {
  min-width: 0
}

.product-detail .product-gallery {
  padding: 0
}

.product-detail .gallery-image {
  height: clamp(320px, 38vw, 490px);
  margin-top: 10px
}

.product-detail .gallery-thumbnails,
.media-viewer .gallery-thumbnails {
  justify-content: center;
  gap: 8px;
  padding-top: 12px
}

.product-detail .gallery-thumbnail,
.media-viewer .gallery-thumbnail {
  flex: 0 98px;
  padding: 4px
}

.product-detail .gallery-thumbnail-image,
.media-viewer .gallery-thumbnail-image {
  height: 60px
}

.product-detail .gallery-thumb-label,
.media-viewer .gallery-thumb-label {
  padding-block: 4px;
  font-size: 10px;
  line-height: 1.3;
  display: block
}

.media-viewer {
  width: min(1100px, 100vw - 32px);
  max-height: calc(100dvh - 32px);
  color: var(--ink);
  background: #fff;
  border: 0;
  border-radius: 12px;
  padding: 20px;
  overflow: auto
}

.media-viewer::backdrop {
  background: #0f201ab8
}

html:has(.media-viewer[open]) {
  overflow: hidden
}

.media-viewer-heading {
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  display: flex
}

.media-viewer-heading strong {
  font-size: 20px
}

.media-viewer-close {
  width: 44px;
  height: 44px
}

.media-viewer-image {
  height: min(68dvh, 650px);
  min-height: 200px
}

.media-viewer-image>img {
  object-fit: contain;
  width: 100%;
  height: 100%
}

@media (max-width:1150px) {
  .product-card .gallery-image {
    height: 150px
  }
}

@media (max-width:760px),
(pointer:coarse) and (max-width:1024px) {
  .product-detail {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px
  }

  .product-detail .gallery-image {
    height: clamp(240px, 76vw, 420px)
  }

  .product-card .product-gallery {
    padding-top: 7px
  }

  .product-card .gallery-thumbnails {
    gap: 3px;
    padding-top: 4px
  }

  .product-card .gallery-thumbnail {
    padding: 1px
  }

  .product-card .gallery-thumbnail-image {
    height: 27px
  }

  .media-viewer {
    width: calc(100vw - 16px);
    max-height: calc(100dvh - 16px);
    padding: 12px
  }

  .media-viewer-heading strong {
    font-size: 16px
  }

  .media-viewer-image {
    height: min(60dvh, 480px)
  }

  .product-detail .gallery-thumbnail-image,
  .media-viewer .gallery-thumbnail-image {
    height: 48px
  }
}

.custom-request-grid {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  align-items: start;
  gap: 24px;
  display: grid
}

.custom-suggestion-heading h2 {
  margin: 0 0 9px;
  font-size: 23px;
  line-height: 1.25
}

.custom-suggestion-heading p {
  color: var(--muted);
  margin: 0 0 12px;
  font-size: 13px;
  line-height: 1.55
}

.custom-example-label {
  color: var(--muted);
  margin: 0 0 8px;
  font-size: 12px
}

.custom-mini-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  display: grid
}

.custom-mini-card {
  border: 1px solid var(--line);
  color: var(--ink);
  background: #fff;
  border-radius: 12px;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  padding: 13px;
  display: flex
}

.custom-mini-card:hover {
  border-color: var(--green)
}

.custom-mini-card:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 3px
}

.custom-mini-card>strong {
  text-align: center;
  white-space: nowrap;
  font-size: 16px
}

.custom-mini-card small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 400
}

.custom-mini-card>span {
  font-size: 12px
}

.custom-mini-photo {
  justify-content: center;
  align-items: center;
  height: 150px;
  display: flex;
  overflow: hidden
}

.custom-mini-photo .box-photo {
  width: 100% !important;
  height: 100% !important
}

.custom-mini-price {
  color: var(--green);
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin-top: auto;
  display: flex
}

.custom-mini-price b {
  white-space: nowrap;
  font-size: 19px
}

.custom-mini-card .fit-difference {
  font-size: 11px
}

.custom-next-steps {
  padding: 20px 0
}

.custom-next-steps h3 {
  margin-bottom: 12px;
  font-size: 17px
}

.custom-next-steps p {
  color: var(--muted);
  align-items: center;
  gap: 8px;
  margin: 8px 0;
  font-size: 13px;
  display: flex
}

.custom-next-steps svg {
  color: var(--green);
  flex-shrink: 0
}

.custom-no-match {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 12px;
  padding: 22px
}

.custom-no-match svg {
  color: var(--green);
  margin-bottom: 10px
}

.custom-no-match p {
  margin-top: 8px;
  font-size: 14px;
  line-height: 1.5
}

.custom-request-form {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 12px;
  min-width: 0;
  padding: 20px
}

.custom-request-form .form-heading {
  margin-bottom: 15px;
  font-size: 22px
}

.custom-request-form .interactive-fields {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  display: grid
}

.custom-request-form .interactive-fields>* {
  grid-column: 1/-1;
  min-width: 0;
  margin-block: 0
}

.custom-request-form .interactive-fields>.contact-phone-field,
.custom-request-form .interactive-fields>.contact-email-field,
.custom-request-form .interactive-fields>.custom-tolerance-field,
.custom-request-form .interactive-fields>.custom-quantity-field {
  grid-column: auto
}

.custom-request-form .custom-quantity-field small {
  margin-top: 5px;
  font-size: 11px;
  line-height: 1.4;
  display: block
}

.mobile-custom-suggestions {
  display: none
}

.custom-product-suggestions {
  position: sticky;
  top: 20px
}

.custom-request-form .field label,
.custom-request-form legend {
  margin-bottom: 5px;
  font-size: 12px
}

.custom-request-form .field input,
.custom-request-form .select-control {
  height: 38px;
  min-height: 38px
}

.custom-request-form .custom-price-status {
  background: #f0f6f2;
  border-radius: 5px;
  padding: 10px 12px;
  font-size: 12px
}

.custom-request-form .custom-price-status p {
  margin: 4px 0 0;
  font-size: 12px;
  line-height: 1.45
}

.custom-request-form .form-note {
  font-size: 11px;
  line-height: 1.5
}

.custom-request-form .form-alternatives {
  font-size: 12px
}

.custom-request-guide {
  border-top: 1px solid var(--line);
  max-width: 920px;
  margin-top: 28px;
  padding: 22px 0
}

.custom-request-guide h2 {
  font-size: 22px
}

.custom-request-guide h3 {
  margin-top: 16px;
  font-size: 17px
}

.custom-request-guide p {
  font-size: 14px;
  line-height: 1.55
}

@media (max-width:950px) {
  .custom-request-grid {
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: 16px
  }

  .custom-request-form {
    padding: 15px
  }

  .custom-request-form .interactive-fields>.contact-phone-field,
  .custom-request-form .interactive-fields>.contact-email-field {
    grid-column: 1/-1
  }

  .custom-mini-card {
    padding: 9px
  }

  .custom-mini-card>strong {
    font-size: 13px
  }

  .custom-mini-photo {
    height: 115px
  }
}

@media (max-width:760px),
(pointer:coarse) and (max-width:1024px) {
  .custom-request-grid {
    flex-direction: column;
    gap: 20px;
    display: flex
  }

  .custom-request-form {
    order: 0;
    width: 100%
  }

  .custom-product-suggestions {
    order: 1;
    width: 100%
  }

  .custom-mini-photo {
    height: 140px
  }

  .custom-mini-card>strong {
    font-size: 16px
  }

  .custom-request-guide {
    margin-top: 14px
  }

  .custom-request-form .field input,
  .custom-request-form .select-control {
    font-size: 16px
  }

  .custom-product-suggestions {
    display: none
  }

  .mobile-custom-suggestions {
    border-block: 1px solid var(--line);
    padding: 12px 0;
    display: block
  }

  .mobile-custom-suggestions .custom-suggestion-heading h2 {
    font-size: 17px
  }

  .mobile-custom-suggestions .custom-mini-card {
    padding: 8px
  }

  .mobile-custom-suggestions .custom-mini-card>strong {
    font-size: 13px
  }

  .mobile-custom-suggestions .custom-mini-photo {
    height: 100px
  }

  .mobile-custom-suggestions .custom-mini-price b {
    font-size: 17px
  }
}

:root {
  --section-icon-color: #16814b;
  --section-icon-surface: #e6f3ea;
  --section-icon-line: #c0dfca
}

.section-icon {
  color: var(--section-icon-color);
  vertical-align: middle;
  flex-shrink: 0
}

.shop-category-group>a,
.shop-categories-title,
.shop-custom-link {
  align-items: center;
  gap: 10px;
  display: flex
}

.shop-custom-link {
  color: #0d6f3f;
  background: #edf5ef;
  border-bottom: 1px solid #c8dacf;
  font-weight: 700
}

.shop-custom-link:hover {
  color: var(--green-dark);
  background: #e3f0e7
}

.shop-categories .nav-label {
  flex: 1;
  min-width: 0
}

.shop-categories a>svg:last-child:not(.section-icon) {
  flex-shrink: 0;
  margin-left: auto
}

.shop-category-group:first-of-type>a {
  color: var(--ink);
  background: #fff
}

.shop-category-group>a[aria-current=page],
.shop-custom-link[aria-current=page] {
  background: var(--green);
  color: #fff;
  border-color: var(--green)
}

.shop-categories a[aria-current=page] .section-icon,
.shop-info-nav a[aria-current=page] .section-icon {
  color: currentColor
}

.shop-subcategories a {
  padding-left: 43px
}

.shop-info-nav a {
  gap: 7px
}

.shop-categories a:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: -3px
}

.page-section-title {
  justify-content: flex-start;
  align-items: flex-start;
  gap: 10px;
  display: flex
}

.page-section-title>.section-icon {
  width: .86em;
  height: .86em;
  margin-top: .15em
}

.page-section-title>span {
  min-width: 0
}

.product-section-label,
.footer-columns .section-footer-link {
  align-items: center;
  gap: 8px;
  display: flex
}

.story-navigation a[aria-current=page] .section-icon {
  color: currentColor
}

.catalog-service-nav {
  display: none
}

.account-link {
  height: 44px;
  color: var(--green-dark);
  white-space: nowrap;
  background: #e6f0e9;
  border: 1px solid #8eaf9b;
  border-radius: 5px;
  flex-direction: row;
  flex-shrink: 0;
  justify-content: center;
  gap: 7px;
  padding: 0 12px;
  font-size: 14px;
  font-weight: 700;
  transition: background-color .15s, border-color .15s
}

.account-link:hover {
  border-color: var(--green);
  color: var(--green-dark);
  background: #d6e8dd
}

.account-link:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 3px
}

.account-link svg {
  flex-shrink: 0
}

.account-link-icon {
  flex: none;
  justify-content: center;
  align-items: center;
  display: inline-flex;
  position: relative
}

.account-auth-dot {
  background: var(--green);
  border: 2px solid #e6f0e9;
  border-radius: 50%;
  width: 8px;
  height: 8px;
  position: absolute;
  top: -2px;
  right: -3px
}

.account-link-label {
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
  max-width: 96px;
  display: block;
  overflow: hidden
}

.account-link-copy {
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  min-width: 0;
  line-height: 1.05;
  display: flex
}

main .lucide,
.shop-header .lucide,
.shop-footer .lucide {
  color: var(--section-icon-color);
  flex-shrink: 0
}

main .button .lucide,
.shop-header :is(.header-cart, .catalog-menu>summary, .header-search>button) .lucide,
.shop-info-nav a[aria-current=page] .lucide,
.shop-categories a[aria-current=page] .lucide,
.catalog-service-nav a[aria-current=page] .lucide {
  color: inherit
}

:is(.delivery-grid>section, .company-values>a, .four-factors>article, .custom-no-match, .packing-advice, .account-benefit)>.lucide {
  border: 1px solid var(--section-icon-line);
  background: var(--section-icon-surface);
  width: 42px;
  height: 42px;
  color: var(--section-icon-color);
  border-radius: 7px;
  padding: 9px
}

.delivery-details .delivery-conditions {
  margin-top: 16px;
  padding-left: 0;
  list-style: none
}

.delivery-conditions>li {
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: start;
  gap: 11px;
  margin: 14px 0;
  display: grid
}

.delivery-conditions>li>.lucide,
.payment-conditions>h3>.lucide,
.process-step-label>.lucide:not(:last-child),
.construction-guide>a>.lucide:first-child {
  border: 1px solid var(--section-icon-line);
  background: var(--section-icon-surface);
  width: 34px;
  height: 34px;
  color: var(--section-icon-color);
  border-radius: 6px;
  padding: 6px
}

.payment-conditions>h3 {
  align-items: center;
  gap: 11px;
  margin-top: 16px;
  display: flex
}

.contacts-panel .contact-entry>a>.lucide:first-child,
.contacts-panel .contact-links>a>.lucide:first-child,
.contacts-pickup>h3>.lucide,
.contacts-hours>.lucide,
.account-help-link>.lucide {
  background: var(--section-icon-surface);
  width: 30px;
  height: 30px;
  color: var(--section-icon-color);
  border-radius: 5px;
  padding: 5px
}

.contacts-panel :is(.text-link, .contact-entry>a)>.lucide:last-child,
.contacts-panel .copy-contact .lucide {
  color: #b8e2c8
}

.shop-footer .section-icon {
  background: var(--section-icon-surface);
  width: 22px;
  height: 22px;
  color: var(--section-icon-color);
  border-radius: 4px;
  padding: 3px
}

@media (max-width:760px),
(pointer:coarse) and (max-width:1024px) {
  .mobile-shop-nav .mobile-account-link {
    isolation: isolate;
    color: var(--green-dark);
    font-weight: 700;
    position: relative
  }

  .mobile-account-link:before {
    content: "";
    z-index: -1;
    background: #e6f0e9;
    border: 1px solid #a5c1b0;
    border-radius: 5px;
    position: absolute;
    inset: 5px max(8px, 50% - 52px)
  }

  .mobile-account-link:is(:hover, [aria-current=page]):before {
    border-color: var(--green);
    background: #d6e8dd
  }

  .mobile-account-link:focus-visible {
    outline: 2px solid var(--green);
    outline-offset: -3px
  }

  .mobile-account-link .account-link-copy {
    align-items: center
  }

  .mobile-account-link .account-link-label {
    max-width: 21vw
  }

  .mobile-account-link .account-auth-dot {
    border-color: #fff
  }

  .shop-categories .section-icon {
    width: 20px;
    height: 20px
  }

  .shop-category-group>a,
  .shop-custom-link {
    min-height: 44px
  }

  .page-section-title {
    gap: 8px
  }

  .catalog-service-nav {
    border-top: 1px solid var(--line);
    background: #fff;
    padding: 6px;
    display: grid
  }

  .catalog-service-nav a {
    border-radius: 4px;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    padding: 8px;
    font-size: 12px;
    display: flex
  }

  .catalog-service-nav a:is(:hover, :focus-visible) {
    background: #e7f0eb
  }

  .catalog-service-nav a[aria-current=page] {
    background: var(--green);
    color: #fff
  }

  .catalog-service-nav a[aria-current=page] .section-icon {
    color: currentColor
  }
}

.card-save-row {
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  min-width: 0;
  padding: 6px 12px 0;
  display: flex
}

.card-save-row>span {
  color: var(--muted);
  overflow-wrap: anywhere;
  font-size: 12px
}

.product-card .product-body>.sku {
  display: none
}

.favorite-button {
  color: #176c40;
  cursor: pointer;
  background: #fff;
  border: 1px solid #b9cbbf;
  border-radius: 8px;
  flex: none;
  justify-content: center;
  align-items: center;
  gap: 8px;
  width: 44px;
  height: 44px;
  padding: 8px;
  display: inline-flex
}

.favorite-button[aria-pressed=true] {
  background: #e6f2e9;
  border-color: #176c40
}

.favorite-button[aria-pressed=true] svg,
.favorite-button._active_ svg {
  fill: currentColor
}

.favorite-button[aria-pressed=false] svg {
  fill: none
}

.favorite-button:hover {
  background: #edf5ef
}

:is(.favorite-button:focus-visible, .header-favorites:focus-visible) {
  outline-offset: 3px;
  outline: 2px solid #176c40
}

.favorite-button:disabled {
  cursor: wait;
  opacity: .6
}

.favorite-button.with-label {
  width: auto;
  max-width: 100%;
  margin: 8px 0 14px;
  font-size: 13px;
  font-weight: 650
}

.header-favorites {
  min-height: 44px;
  color: var(--green);
  flex: none;
  justify-content: center;
  align-items: center;
  gap: 7px;
  padding: 8px;
  font-size: 13px;
  font-weight: 650;
  text-decoration: none;
  display: flex
}

.favorites-nav-icon {
  flex: none;
  display: inline-flex;
  position: relative
}

.favorites-nav-icon b {
  background: var(--green);
  color: #fff;
  text-align: center;
  font-variant-numeric: tabular-nums;
  border: 2px solid #fff;
  border-radius: 12px;
  min-width: 19px;
  padding: 1px 4px;
  font-size: 10px;
  line-height: 14px;
  position: absolute;
  top: -10px;
  right: -12px
}

.favorites-heading {
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin: 16px 0 24px;
  display: flex
}

.favorites-heading h1 {
  align-items: center;
  gap: 12px;
  display: flex
}

.favorites-heading h1 svg {
  color: var(--green);
  flex: none
}

.favorites-heading p {
  color: var(--muted);
  margin-top: 8px
}

.favorites-toolbar {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin-bottom: 20px;
  display: flex
}

.favorites-toolbar p {
  flex: 1;
  min-width: 180px
}

.favorites-toolbar p a {
  color: var(--green);
  text-decoration: underline
}

.favorites-clear-confirm {
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  display: flex
}

.favorites-empty {
  text-align: center;
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 12px;
  padding: 48px 20px
}

.favorites-empty>svg {
  color: var(--green);
  margin: 0 auto 16px
}

.favorites-empty p {
  max-width: 480px;
  color: var(--muted);
  margin: 12px auto 24px
}

.favorites-empty .button {
  display: inline-flex
}

.favorites-order-hint {
  color: var(--muted);
  margin-top: 20px
}

.favorite-unavailable {
  gap: 16px;
  padding: 24px
}

.custom-mini-item {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 12px;
  min-width: 0;
  overflow: hidden
}

.custom-mini-item>.custom-mini-card {
  border: 0;
  border-radius: 0
}

.favorites-feedback:not(:empty),
.favorites-error {
  z-index: 80;
  color: #fff;
  background: #193c2a;
  border-radius: 8px;
  max-width: calc(100vw - 24px);
  padding: 12px 18px;
  font-size: 14px;
  position: fixed;
  bottom: 20px;
  left: 50%;
  transform: translate(-50%)
}

.favorites-error {
  color: #7a3929;
  overflow-wrap: anywhere;
  background: #fff;
  border: 1px solid #7a3929;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  display: flex
}

.favorites-error button {
  color: inherit;
  background: #fff;
  border: 1px solid;
  border-radius: 5px;
  min-height: 44px;
  padding: 8px
}

@media (min-width:761px) and (max-width:1200px) {
  .header-favorites {
    flex-direction: column;
    gap: 4px;
    font-size: 11px
  }

  .shop-header-main {
    gap: 10px
  }
}

@media (max-width:760px),
(pointer:coarse) and (max-width:1024px) {
  .shop-header-main .header-favorites {
    display: none
  }

  .mobile-shop-nav {
    height: calc(64px + env(safe-area-inset-bottom));
    padding: 4px 6px env(safe-area-inset-bottom);
    box-sizing: border-box
  }

  .mobile-shop-nav a,
  .mobile-shop-nav a:nth-child(2) {
    min-width: 0;
    min-height: 52px;
    color: var(--ink);
    border-radius: 7px;
    gap: 4px;
    font-size: 11px;
    font-weight: 650
  }

  .mobile-shop-nav a svg {
    stroke-width: 2.3px
  }

  .mobile-shop-nav a[aria-current=page] {
    color: var(--green-dark);
    background: #e5f1e9;
    font-weight: 750
  }

  .mobile-shop-nav .mobile-account-link:before {
    display: none
  }

  body {
    padding-bottom: calc((76px + env(safe-area-inset-bottom)) / var(--display-scale, 1))
  }

  .card-save-row {
    gap: 4px;
    padding: 6px 8px 0
  }

  .card-save-row>span {
    font-size: max(10px, calc(10px / var(--display-scale, 1)))
  }

  .favorites-heading {
    flex-wrap: wrap;
    margin-bottom: 20px
  }

  .favorites-toolbar {
    align-items: stretch
  }

  .favorites-toolbar>p {
    flex-basis: 100%
  }

  .favorites-toolbar .button,
  .favorites-heading .button {
    min-height: calc(44px / var(--display-scale, 1))
  }

  .favorites-feedback:not(:empty),
  .favorites-error {
    bottom: calc(76px + env(safe-area-inset-bottom))
  }

  body.mobile-keyboard-open .mobile-shop-nav {
    display: none
  }
}

.product-media-heading {
  align-items: center;
  gap: 4px;
  min-width: 0;
  min-height: 36px;
  display: flex
}

.product-media-heading .card-dimensions {
  white-space: normal;
  overflow-wrap: anywhere;
  flex: 1;
  min-width: 0;
  margin: 0
}

.product-media-heading>.favorite-button {
  background: 0 0;
  border: 0;
  border-radius: 50%;
  width: 32px;
  min-width: 32px;
  height: 32px;
  margin-left: auto;
  padding: 7px
}

.product-media-heading>.favorite-button svg {
  width: 16px;
  height: 16px
}

.product-photo-frame,
.media-viewer-image {
  min-width: 0;
  position: relative
}

.photo-arrow {
  z-index: 2;
  width: 32px;
  height: 40px;
  color: var(--green-dark);
  cursor: pointer;
  background: #ffffffe6;
  border: 1px solid #dce5df;
  border-radius: 6px;
  place-items: center;
  padding: 0;
  display: grid;
  position: absolute;
  top: 50%;
  transform: translateY(-50%)
}

.photo-arrow-prev {
  left: 2px
}

.photo-arrow-next {
  right: 2px
}

.photo-arrow:hover {
  background: #e6f2e9
}

.photo-arrow:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 2px
}

.photo-arrow:disabled {
  opacity: .5;
  cursor: wait
}

.custom-mini-card .product-gallery {
  padding: 0
}

.custom-mini-card .gallery-image {
  height: 155px
}

.custom-mini-details {
  flex-direction: column;
  gap: 6px;
  font-size: 12px;
  display: flex
}

@media (pointer:coarse) {
  .product-media-heading>.favorite-button {
    width: 44px;
    min-width: 44px;
    height: 44px;
    padding: 14px
  }

  .photo-arrow {
    width: 36px;
    height: 44px
  }
}

@media (max-width:760px) {
  .custom-mini-card .gallery-image {
    height: 130px
  }

  .product-media-heading .card-dimensions {
    font-size: 13px
  }
}

.utility-bar .utility-location {
  font-weight: 600
}

@media (max-width:760px) {
  .shop-header .utility-bar {
    grid-template-rows: auto auto;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 3px 8px;
    height: auto;
    min-height: 54px;
    padding-block: 3px
  }

  .utility-bar .utility-location {
    grid-area: 1/1
  }

  .utility-bar .utility-contacts {
    grid-area: 1/2;
    min-width: 0
  }

  .utility-bar .utility-message {
    grid-area: 2/1/auto/-1;
    justify-content: center
  }
}

@media (min-width:761px) {
  .shop-header .utility-bar {
    grid-template-rows: 1fr;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 8px;
    height: 30px;
    min-height: 30px;
    padding-block: 0
  }

  .utility-bar .utility-location {
    grid-area: 1/1
  }

  .utility-bar .utility-message {
    flex-wrap: nowrap;
    grid-area: 1/2;
    gap: 8px
  }

  .utility-bar .utility-contacts {
    grid-area: 1/3;
    min-width: 0
  }

  .utility-bar .utility-discount {
    min-height: 24px;
    padding: 3px 7px
  }
}

@media (max-width:380px) {
  .shop-header .utility-bar {
    grid-template-columns: 1fr
  }

  .utility-bar .utility-location {
    grid-area: 1/1;
    justify-self: center
  }

  .utility-bar .utility-contacts {
    grid-area: 2/1;
    justify-self: center
  }

  .utility-bar .utility-message {
    grid-row: 3
  }
}

:root {
  --card-price-size: 24px;
  --card-price-unit-size: 12px
}

.product-card .card-price,
.custom-mini-price b {
  font-size: var(--card-price-size);
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  line-height: 1.25
}

.product-card .card-price>span,
.custom-mini-price b>small {
  font-size: var(--card-price-unit-size);
  font-weight: 400
}

@media (max-width:760px) {
  :root {
    --card-price-size: 20px;
    --card-price-unit-size: 11px
  }
}

.catalog-guide {
  color: #17332e;
  border-top: 1px solid #d9e2dc;
  max-width: 88ch;
  margin: 48px 0 32px;
  padding-top: 32px
}

.catalog-guide h2 {
  letter-spacing: -.02em;
  max-width: 25ch;
  margin: 0 0 22px;
  font-size: clamp(1.35rem, 2vw, 1.8rem);
  line-height: 1.2
}

.catalog-guide-sections {
  gap: 22px;
  margin-bottom: 26px;
  display: grid
}

.catalog-guide h3 {
  margin: 0 0 8px;
  font-size: 1.08rem;
  line-height: 1.3
}

.catalog-guide p {
  color: #354b47;
  max-width: 72ch;
  margin: 0;
  line-height: 1.65
}

.catalog-guide p+p {
  margin-top: 12px
}

.transition-products {
  border-top: 1px solid #d9e2dc;
  max-width: 88ch;
  margin: 32px 0;
  padding-top: 28px
}

.transition-products h2 {
  margin: 0 0 7px;
  font-size: 1.25rem
}

.transition-products p {
  color: #50615c;
  margin: 0 0 16px
}

.transition-products-list {
  gap: 7px;
  display: grid
}

.transition-products-list a {
  color: #143e31;
  border: 1px solid #d9e2dc;
  border-radius: 6px;
  align-items: center;
  gap: 10px;
  padding: 11px 12px;
  text-decoration: none;
  display: flex
}

.transition-products-list a:hover {
  background: #f2f8f5
}

.transition-products-list span {
  color: #586c64;
  white-space: nowrap;
  margin-left: auto
}

.transition-products-list svg {
  flex: none
}

.catalog-related-links {
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 16px;
  margin: 24px 0 36px;
  display: flex
}

.catalog-related-links a {
  color: #155d40;
  text-underline-offset: 3px;
  align-items: center;
  min-height: 36px;
  text-decoration: underline;
  display: inline-flex
}

.transition-product {
  max-width: 930px
}

.transition-product h1 {
  margin: 8px 0
}

.transition-product-intro {
  max-width: 66ch;
  line-height: 1.55
}

.transition-product-actions {
  flex-wrap: wrap;
  align-items: center;
  gap: 18px;
  margin: 24px 0 50px;
  display: flex
}

@media (max-width:600px) {
  .catalog-guide {
    margin-top: 36px;
    padding-top: 26px
  }

  .catalog-guide-sections {
    gap: 20px
  }

  .catalog-guide p {
    line-height: 1.55
  }

  .transition-products-list a {
    flex-wrap: wrap
  }

  .transition-products-list span {
    margin-left: 0
  }

  .transition-product-actions .button {
    justify-content: center;
    width: 100%
  }
}

/* mSearch2 / jQuery UI autocomplete (header search) */
.ui-autocomplete.ui-menu,
ul.ui-autocomplete {
  z-index: 10000 !important;
  box-sizing: border-box;
  margin: 4px 0 0;
  padding: 4px 0;
  list-style: none;
  border: 1px solid var(--line, #cbd3dd);
  border-radius: 5px;
  background: #fff;
  max-height: min(420px, 70vh);
  overflow: auto;
  box-shadow: 0 8px 25px #1b2c4025
}

.ui-autocomplete .ui-menu-item {
  margin: 0;
  padding: 0;
  list-style: none
}

.ui-autocomplete .ui-menu-item-wrapper,
.ui-autocomplete .mse2-ac-item,
.ui-autocomplete a.mse2-ac-item {
  display: block;
  color: var(--ink, #142538);
  text-decoration: none;
  font-size: 13px;
  line-height: 1.35;
  padding: 10px 12px;
  cursor: pointer;
  background: #fff
}

.ui-autocomplete .ui-menu-item-wrapper.ui-state-active,
.ui-autocomplete .ui-menu-item-wrapper.ui-state-focus,
.ui-autocomplete .ui-state-active,
.ui-autocomplete .mse2-ac-item:hover,
.ui-autocomplete a.mse2-ac-item:hover {
  background: #edf4ed;
  border: 0;
  margin: 0;
  color: var(--ink, #142538)
}

.ui-helper-hidden-accessible {
  position: absolute !important;
  clip: rect(1px, 1px, 1px, 1px);
  width: 1px;
  height: 1px;
  overflow: hidden
}

/* NEW: catalog dropdown panel — solid overlay, no bleed into sidebar */
.catalog-menu-panel {
  z-index: 80;
  width: 280px;
  max-height: min(70vh, 640px);
  overflow-x: hidden;
  overflow-y: auto;
  background: #fff;
  border: 1px solid var(--line, #cbd3dd);
  border-radius: 6px
}

.catalog-menu-panel .shop-categories {
  border: 0;
  border-radius: 0;
  background: #fff
}

.catalog-menu[open] > summary {
  position: relative;
  z-index: 81
}

/* Expandable catalog subcategories (sidebar + dropdown) */
.shop-category-row {
  border-bottom: 1px solid #eef0f3;
  align-items: stretch;
  display: flex
}

.shop-category-row > .shop-category-link {
  border-bottom: 0;
  flex: 1;
  min-width: 0;
  justify-content: flex-start;
  align-items: center;
  gap: 10px;
  padding: 11px 8px 11px 13px;
  font-size: 13px;
  line-height: 1.35;
  display: flex
}

.shop-category-row:hover {
  color: var(--green-dark, #0d5c34);
  background: #e7f0eb
}

.shop-category-group.is-open > .shop-category-row {
  background: #f4f8f4
}

.shop-category-toggle {
  color: inherit;
  cursor: pointer;
  background: 0 0;
  border: 0;
  flex-shrink: 0;
  place-items: center;
  padding: 0 12px;
  display: none
}

.shop-category-group.has-children > .shop-category-row > .shop-category-toggle {
  display: grid
}

.shop-category-toggle svg {
  transition: transform .15s ease
}

.shop-category-group.is-open > .shop-category-row > .shop-category-toggle svg {
  transform: rotate(90deg)
}

.shop-category-group > .shop-subcategories {
  display: none
}

.shop-category-group.is-open > .shop-subcategories {
  display: block
}

.catalog-menu-panel .shop-subcategories {
  display: none
}

.catalog-menu-panel .shop-category-group.is-open > .shop-subcategories {
  display: block
}

/* Catalog overview (verstka /katalog) */
.catalog-overview .page-heading {
  margin: 10px 0 20px
}

.assortment-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px
}

.assortment-item {
  background: #fff;
  border: 1px solid #d7e2de;
  border-radius: 12px;
  min-width: 0;
  overflow: hidden
}

.assortment-link {
  color: inherit;
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr) 18px;
  align-items: center;
  gap: 16px;
  height: 100%;
  padding: 16px;
  text-decoration: none
}

.assortment-grid-detailed .assortment-link {
  height: auto
}

.assortment-link img {
  object-fit: contain;
  width: 100px;
  height: 100px
}

.assortment-link h2 {
  overflow-wrap: anywhere;
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.35
}

.assortment-link > svg {
  color: #16703e
}

.assortment-link:hover {
  background: #f0f7f2
}

.assortment-link:focus-visible {
  outline-offset: -3px;
  outline: 3px solid #16703e
}

.assortment-detail {
  padding: 0 20px 20px
}

.assortment-detail p {
  color: #536664;
  margin: 0 0 12px;
  font-size: .9375rem;
  line-height: 1.5
}

.assortment-detail ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0 16px;
  margin: 0;
  padding: 0;
  list-style: none
}

.assortment-detail a {
  color: #166d3e;
  text-underline-offset: 3px;
  align-items: center;
  min-height: 44px;
  text-decoration: underline;
  display: inline-flex
}

@media (max-width: 1100px) {
  .assortment-link {
    grid-template-columns: 72px minmax(0, 1fr) 16px;
    gap: 10px;
    padding: 12px
  }

  .assortment-link img {
    width: 72px;
    height: 72px
  }
}

@media (max-width: 800px) {
  .assortment-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px
  }

  .assortment-grid-detailed {
    grid-template-columns: 1fr
  }

  .assortment-grid-detailed .assortment-link {
    grid-template-columns: 72px minmax(0, 1fr) 18px
  }

  .assortment-link h2 {
    font-size: .9375rem
  }
}

/* Home hub (verstka /) */
.home-hub {
  padding-top: 28px;
  padding-bottom: 52px
}

.home-hub a:focus-visible {
  outline-offset: -3px;
  outline: 3px solid #16703e
}

.home-intro {
  max-width: 970px;
  margin-bottom: 24px
}

.home-intro h1 {
  margin: 0 0 12px;
  font-size: clamp(1.65rem, 2.5vw, 2.4rem);
  line-height: 1.15
}

.home-intro p {
  color: var(--muted, #536664);
  margin: 0;
  line-height: 1.5
}

.home-title-break {
  display: none
}

.home-sizing {
  background: #e8f2ec;
  border-radius: 12px;
  align-items: center;
  gap: 20px;
  margin-top: 24px;
  padding: 24px;
  display: flex
}

.home-sizing > svg {
  color: #16703e;
  flex-shrink: 0
}

.home-sizing > div {
  flex: 1;
  min-width: 0
}

.home-sizing h2 {
  margin: 0 0 6px;
  font-size: 1.35rem
}

.home-sizing p {
  margin: 0;
  line-height: 1.5
}

.home-sizing .button {
  flex-shrink: 0
}

.home-products,
.home-advice {
  margin-top: 40px
}

.hub-section-heading {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 12px 24px;
  margin-bottom: 18px;
  display: flex
}

.hub-section-heading h2 {
  margin: 0;
  font-size: 1.5rem
}

.hub-section-heading > a {
  color: #166d3e;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  display: inline-flex
}

.home-products .product-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr))
}

.home-fulfillment {
  border-top: 1px solid #d7e2de;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  margin-top: 40px;
  padding-top: 32px;
  display: grid
}

.home-fulfillment article {
  min-width: 0
}

.home-fulfillment svg {
  color: #16703e
}

.home-fulfillment h2 {
  margin: 12px 0 8px;
  font-size: 1.125rem
}

.home-fulfillment p {
  margin: 0 0 8px;
  line-height: 1.6
}

.home-fulfillment a {
  color: #166d3e;
  align-items: center;
  min-height: 44px;
  display: inline-flex
}

.home-advice-links {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  display: grid
}

.home-advice-links a {
  min-height: 80px;
  color: inherit;
  background: #fff;
  border: 1px solid #d7e2de;
  border-radius: 10px;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 20px;
  line-height: 1.5;
  display: flex;
  text-decoration: none
}

.home-advice-links a:hover {
  background: #f0f7f2
}

.home-advice-links svg {
  color: #16703e;
  flex-shrink: 0
}

@media (max-width: 800px) {
  .home-sizing {
    flex-wrap: wrap;
    gap: 16px
  }

  .home-sizing .button {
    margin-left: 48px
  }

  .home-products .product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }

  .home-fulfillment,
  .home-advice-links {
    grid-template-columns: 1fr;
    gap: 16px
  }

  .home-fulfillment article {
    padding-bottom: 12px
  }
}

@media (max-width: 480px) {
  .home-hub {
    padding-top: 20px
  }

  .home-intro {
    margin-bottom: 20px
  }

  .home-sizing {
    padding: 20px
  }

  .home-sizing > svg {
    display: none
  }

  .home-sizing .button {
    white-space: normal;
    width: 100%;
    margin: 0
  }

  .home-products .product-grid {
    grid-template-columns: minmax(0, 1fr)
  }
}
