/* Extra styles are dormant until a native control changes an authored state. */
.overlay-open { overflow: hidden; }
main > .viewport { overflow-x: clip; overflow-y: visible; }
.runtime-toast { position: fixed; inset: auto 20px 20px auto; max-width: min(520px, calc(100% - 40px)); padding: 16px 20px; border-radius: 8px; background: #29452f; color: #fff; box-shadow: 0 8px 32px #0003; z-index: 2147483647; font-size: 14px; line-height: 1.5; }
.runtime-dialog { position: fixed; inset: 0; margin: auto; width: min(560px, calc(100% - 40px)); height: max-content; max-height: calc(100dvh - 40px); overflow: auto; border-radius: 8px; background: #fff; padding: 32px; color: #343438; }
.runtime-dialog > button { float: right; color: #29452f; }
.runtime-dialog h2 { font-size: 24px; margin: 16px 0; }
.runtime-dialog p { margin: 0; font-size: 16px; line-height: 1.5; }
.runtime-dialog [data-info-content] { font-size: 16px; line-height: 1.5; overflow-wrap: anywhere; }
.runtime-dialog [data-info-content] > * + * { margin-top: 12px; }
.runtime-dialog form { display: flex; flex-wrap: wrap; gap: 16px; }
.runtime-dialog label { width: 100%; display: flex; flex-direction: column; gap: 12px; }
.runtime-dialog input { width: 100%; padding: 12px; border: 1px solid #c9c9cc; border-radius: 4px; }
.runtime-dialog form > button { background: #29452f; color: #fff; padding: 12px 20px; border-radius: 8px; }
.runtime-empty { width: 100%; margin: 24px 0; color: #4d4d52; font-size: 18px; line-height: 1.5; grid-column: 1 / -1 !important; }
.runtime-form-status { position: relative; z-index: 1; flex: 0 0 100%; width: 100%; margin: 16px 0 0; padding: 12px 16px; border-radius: 4px; background: #eef4ef; color: #29452f; font-size: 14px; line-height: 1.5; }
.runtime-form-status[data-error="true"] { background: #fff0ed; color: #8b2a18; }
.runtime-receipt-status { position: relative; z-index: 1; width: 100%; margin: 0; font-size: 14px; line-height: 1.5; color: #29452f; text-align: center; white-space: normal; overflow-wrap: anywhere; }
form[aria-busy="true"] [data-action="form-submit"] { cursor: wait; }
.runtime-hidden-control { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0); clip-path: inset(50%); white-space: nowrap; }
.genesis-honeypot { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; border: 0 !important; overflow: hidden !important; clip: rect(0,0,0,0); clip-path: inset(50%); white-space: nowrap; pointer-events: none !important; }
.runtime-partner-select { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; z-index: 5; opacity: 0; }
.runtime-partner-select.has-value { opacity: 1; padding: 25px 12px 6px !important; background: #fff; border: 1px solid #c9c9cc; border-radius: 4px; }
.runtime-contact-toggle { position: absolute; inset: 0 0 auto; width: 100%; height: 59px; z-index: 5; padding: 24px 40px 0 12px; background: transparent; font-size: 16px; line-height: 1.4; text-align: left; }
.runtime-contact-toggle:not(.has-value) { color: transparent; }
.runtime-contact-toggle.has-value { background: transparent; color: transparent; border: 0; }
[data-contact-has-value="true"] { height: 43px !important; }
.runtime-contact-value { display: block; flex-shrink: 0; height: 23px; font-size: 16px; line-height: 22.72px; white-space: nowrap; }
.runtime-contact-list, .runtime-filter-options { position: absolute; inset: 100% 0 auto; z-index: 20; padding: 12px; background: #fff; border: 1px solid #c9c9cc; border-radius: 4px; box-shadow: 0 8px 24px #0002; color: #343438; max-height: 320px; overflow: auto; }
.runtime-contact-list { display: flex; flex-direction: column; gap: 8px; }
.runtime-contact-list button { width: 100%; text-align: left; padding: 4px 0; }
.runtime-contact-list button:hover, .runtime-contact-list button:focus { color: #29452f; }
[data-overlay="consultation"] .runtime-contact-list { background: #456f4e; color: #fff; border-color: #ffffff29; border-radius: 8px; gap: 12px; }
[data-overlay="consultation"] .runtime-contact-list button { color: inherit; font-weight: 600; }
[data-overlay="consultation"] .runtime-contact-list button:hover, [data-overlay="consultation"] .runtime-contact-list button:focus { color: #fff; background: #ffffff14; }
[data-overlay="consultation"] [data-contact-popup-overflow="true"] { overflow: visible !important; z-index: 30 !important; }
.runtime-filter-options { display: flex; flex-direction: column; gap: 12px; min-width: min(250px, calc(100vw - 40px)); }
.runtime-source-filter-options { inset: 0 auto auto 0; display: block; width: 324px; max-width: calc(100vw - 40px); min-width: 0; max-height: none; overflow: visible; padding: 0; border: 0; border-radius: 0; box-shadow: none; background: transparent; }
.runtime-filter-options.runtime-source-filter-options label { gap: 8px; }
.runtime-source-filter-options input.native-choice { width: 100%; height: 100%; opacity: 0; }
.runtime-filter-header-toggle { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 5; background: transparent; border: 0; }
[data-filter-popup-overflow="true"] { overflow: visible !important; z-index: 30 !important; }
.runtime-filter-options label, .runtime-color-list label { display: flex; gap: 12px; align-items: center; font-size: 16px; line-height: 1.4; cursor: pointer; }
.runtime-filter-options input, .runtime-color-list input { width: 20px; height: 20px; margin: 0; accent-color: #29452f; flex-shrink: 0; }
.runtime-color-list { display: flex; flex-direction: column; gap: 12px; margin-top: 12px; }
.runtime-filter-select { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; z-index: 6; }
.source-sort-select { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; padding: 0; border: 0; opacity: 0; z-index: 5; }
[data-sort-caption][data-sort-derived="true"] { display: block; white-space: normal; }
input[data-field]:focus-visible, textarea[data-field]:focus-visible, select[data-field]:focus-visible { outline: none; }
.fig-node:is([data-field-wrapper="catalogSort"],[data-field-wrapper="catalogSearch"]):not([data-component]):has(:focus-visible) { outline: 2px solid #29452f; outline-offset: 2px; }
.fig-node:is([data-widget="checkbox"],[data-widget="radio"]):has(input.native-choice:focus-visible) { outline: 2px solid #29452f; outline-offset: 3px; }
.fig-node:is([data-widget="checkbox"],[data-widget="radio"]) input.native-choice:focus-visible { opacity: 0; outline: none; }
textarea[data-field] { resize: none; }
.runtime-choice-image { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.fig-node[data-quantity] { width: 100%; min-width: 0; margin: 0; padding: 0; border: 0; appearance: textfield; -moz-appearance: textfield; text-align: center !important; }
.fig-node[data-quantity]::-webkit-inner-spin-button, .fig-node[data-quantity]::-webkit-outer-spin-button { margin: 0; -webkit-appearance: none; }
.runtime-photo-dialog { position: fixed; inset: 0; margin: auto; width: min(1200px, calc(100% - 40px)); height: max-content; max-height: calc(100dvh - 40px); overflow: auto; background: #252629; border-radius: 8px; padding: 16px; }
.runtime-photo-toolbar { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 16px; margin-bottom: 16px; color: #fff; }
.runtime-photo-dialog [data-photo-preview] { width: 100%; max-height: calc(100dvh - 130px); object-fit: contain; }
.runtime-faq-answer { width: 100%; margin: 12px 0 0; font-size: 16px; line-height: 1.5; white-space: normal; }
[data-contact-option] { cursor: pointer; }
[data-runtime-text="true"] { white-space: normal !important; }
[data-runtime-text="true"]:not(input,select,textarea) { height: auto !important; min-height: var(--runtime-source-height, 0) !important; overflow-wrap: anywhere; }
[data-cms-edited="true"] { height: auto !important; min-height: 0 !important; white-space: pre-line !important; overflow-wrap: anywhere; }
[data-cms-edited="true"] > .source-line { position: static !important; white-space: inherit !important; }
[data-dynamic-layout="true"] { height: auto !important; }
[data-runtime-grid="true"] { display: grid !important; grid-template-columns: repeat(var(--runtime-columns, 3), minmax(0, 1fr)) !important; grid-template-rows: none !important; grid-auto-rows: auto !important; gap: 16px !important; }
[data-runtime-grid="true"] > [data-product-card], [data-runtime-grid="true"] > [data-name="Product cell"] { position: relative !important; grid-column: auto !important; grid-row: auto !important; width: 100% !important; height: auto !important; min-height: 0 !important; }
[data-runtime-grid="true"] > [data-name="Product cell"] > [data-product-card] { width: 100% !important; }
[data-runtime-grid="true"] > [data-action="catalog-more"] { position: relative !important; grid-column: 1 / -1 !important; grid-row: auto !important; width: 100% !important; }
a[aria-disabled="true"], button:disabled { cursor: default; opacity: .55; }
@media (max-width: 599px) {
  .runtime-dialog { padding: 20px; }
  .runtime-toast { inset-inline: 20px; }
  .runtime-filter-options { min-width: 165px; }
  .runtime-source-filter-options { min-width: 0; }
  [data-runtime-grid="true"] { gap: 12px 5px !important; }
}

/* Editable cart amounts keep their currency on the same line and reserve native widths. */
[data-runtime-money="true"] { width:max-content!important; min-width:var(--runtime-money-min-width,0px)!important; white-space:nowrap!important; overflow-wrap:normal!important; }
[data-runtime-money-container="true"] { width:max-content!important; min-width:var(--runtime-money-min-width,0px)!important; flex-shrink:0; }

[data-runtime-count="true"] { width:max-content!important; min-width:var(--runtime-count-min-width,0px)!important; white-space:nowrap!important; overflow-wrap:normal!important; }

/* A newly priced quotation uses the native amount and secondary-unit typography. */
.fig-text[data-genesis-price-joined="true"][data-cms-edited="true"] { display:inline-flex!important; align-items:baseline; gap:4px; width:max-content!important; max-width:100%; white-space:nowrap!important; overflow-wrap:normal!important; flex-shrink:0!important; }
[data-genesis-price-container="true"] { width:max-content!important; max-width:100%; min-width:0!important; }
[data-genesis-price-joined="true"] > .genesis-price-secondary { flex-shrink:0; font-size:12px; font-weight:600; line-height:16.8px; letter-spacing:.6px; color:#343438; text-transform:uppercase; white-space:nowrap; }
.viewport.tablet [data-genesis-price-joined="true"] > .genesis-price-secondary, .viewport.mobile [data-genesis-price-joined="true"] > .genesis-price-secondary { font-size:11px; line-height:15.4px; letter-spacing:.55px; }

/* Selected and explicitly authored specifications use bounded natural columns. */
[data-product-specifications="true"] { height:auto!important; }
[data-product-spec-row="true"]:not([hidden]) { display:flex!important; flex-direction:row; align-items:baseline; justify-content:space-between; gap:12px; height:auto!important; min-height:var(--cms-source-height,0px); }
[data-product-spec-key="true"], [data-product-spec-value="true"] { flex:0 1 auto!important; width:max-content!important; min-width:0!important; height:auto!important; white-space:normal!important; overflow-wrap:anywhere; }
[data-product-spec-key="true"] { max-width:42%!important; }
[data-product-spec-value="true"] { max-width:calc(58% - 12px)!important; }
[data-product-spec-key="true"] > .source-line, [data-product-spec-value="true"] > .source-line { position:static!important; white-space:inherit!important; }
[data-product-unit="true"] { width:max-content!important; max-width:100%; white-space:nowrap!important; overflow-wrap:normal!important; flex-shrink:0!important; }
[data-product-price="true"] { width:max-content!important; max-width:100%; }
[data-product-breadcrumb="true"] { width:max-content!important; max-width:100%; flex-shrink:1!important; white-space:normal!important; overflow-wrap:anywhere; }
[data-product-breadcrumbs="true"] { max-width:100%; flex-wrap:wrap; }

/* Only edited tablet specifications move the formerly absolute card into normal flow. */
.viewport.tablet [data-node="2790:4824"]:has([data-primary-product] [data-product-specifications="true"]) { height:auto!important; }
.viewport.tablet [data-node="2790:4829"]:has(> [data-primary-product] [data-product-specifications="true"]) { min-height:max-content!important; }
.viewport.tablet [data-node="2790:4829"] > [data-primary-product]:has([data-product-specifications="true"]) { position:relative!important; inset:auto!important; margin:79px 40px 40px!important; height:auto!important; }
