/* Product selection and quote-cart surfaces share the catalogue palette. */
.catalogue-page .product-overview{grid-template-columns:minmax(0,1fr) minmax(0,.95fr);gap:clamp(28px,4vw,64px);align-items:start;padding-bottom:48px}
.catalogue-page .product-overview>div{min-width:0}
.catalogue-page .product-visual{background:#edf1e7;border-radius:28px;min-height:0;aspect-ratio:1/1;box-shadow:inset 0 0 0 1px #142e2210;overflow:hidden}
.catalogue-page .product-visual img{width:100%;height:100%;max-height:570px;object-fit:contain;padding:30px}
.catalogue-page .product-visual.photo-cover img{padding:0;object-fit:cover}
.catalogue-page .product-image-caption{font-size:11px;line-height:1.7;margin-top:13px;max-width:52ch;color:#6a7a6b}
.catalogue-page .product-brand{font-size:12px;margin:0 0 15px}
.catalogue-page .product-brand a{text-decoration:underline;text-underline-offset:4px;text-decoration-color:#b9cbb6}
.catalogue-page .product-details h1{font-size:clamp(30px,3.2vw,44px);line-height:1.1;letter-spacing:-.045em;margin:0 0 19px;overflow-wrap:anywhere}
.catalogue-page .product-details h1 span{color:#138751}
.catalogue-page .product-details .product-type{font-size:14px;font-weight:500;line-height:1.5;margin:0 0 10px;color:#496451}
.catalogue-page .product-details .product-intro{font-size:13px;line-height:1.8;margin:0 0 25px;color:#627565}
.catalogue-page .product-purchase{padding:25px;border:1px solid #d6dfd0;border-radius:24px;background:#fffefa}
.catalogue-page .product-purchase .product-price-block{margin:0 0 22px;padding:0;border:0}
.purchase-eyebrow{display:block;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#71816f;margin-bottom:9px}
.catalogue-page .product-purchase .product-price-block strong{display:block;font-size:25px;font-weight:500;letter-spacing:-.035em;line-height:1.2;color:#123f2c}
.catalogue-page .product-purchase .product-price-block p{font-size:12px;line-height:1.7;margin:10px 0 0;color:#6b7d6c;max-width:42ch}
.purchase-quantity-label{display:block;font-size:12px;margin-bottom:8px;color:#264c37}
.catalogue-page .product-order-row{display:flex;align-items:stretch;gap:12px;margin:0}
.catalogue-page .quantity-control{border:1px solid #cbd9c6;background:#f8f9f4;border-radius:999px;display:flex;align-items:center;flex-shrink:0;min-height:50px;overflow:hidden}
.catalogue-page .quantity-control button{width:35px;min-height:48px;border:0;background:transparent;font:inherit;font-size:19px;color:#214d35;cursor:pointer;transition:background-color 150ms ease,transform 150ms ease}
.catalogue-page .quantity-control button:active{transform:scale(.96);background:#e8efdf}
.catalogue-page .quantity-control input{appearance:textfield;-moz-appearance:textfield;width:39px;text-align:center;border:0;padding:0;min-height:46px;font:inherit;font-size:14px;background:transparent;color:#183d2a;font-variant-numeric:tabular-nums}
.catalogue-page .quantity-control input::-webkit-inner-spin-button,.catalogue-page .quantity-control input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.catalogue-page .product-order-row>.cat-button{flex:1;justify-content:space-between;min-height:50px;gap:15px;padding-inline:22px;font-size:13px;transition:background-color 150ms ease,transform 150ms ease}
.catalogue-page .product-order-row>.cat-button:active{transform:scale(.96)}
.catalogue-page .product-request-note{margin-top:17px;border-top:1px solid #e3e9dc;padding-top:15px}
.product-request-note summary{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12px;list-style:none;color:#526c57;cursor:pointer;min-height:28px}
.product-request-note summary::-webkit-details-marker{display:none}
.product-request-note summary .icon{width:14px;height:14px;flex-shrink:0}
.product-request-note[open] summary .icon{transform:rotate(45deg)}
.product-request-note textarea,.quote-line-notes{display:block;width:100%;resize:vertical;border:1px solid #d6dfd0;border-radius:12px;margin-top:12px;padding:12px;font:inherit;font-size:13px;line-height:1.6;background:#fff;color:#173e2a}
.purchase-cart-link{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:17px;font-size:12px;color:#45624b;min-height:28px}
.purchase-cart-link .icon{width:15px;height:15px}
.catalogue-page .product-contact-link{font-size:12px;margin-top:19px}
.catalogue-page .product-order-note{font-size:11px;line-height:1.7;color:#7a8675;margin-top:10px}
.catalogue-page .product-spec-section .product-feature-list{padding:0 0 25px;margin:0 0 20px;border-bottom:1px solid #dce5d6}
.catalogue-page .product-spec-section .product-feature-list li{font-size:13px;line-height:1.7;margin-bottom:10px}
.catalogue-page .quote-heading{padding-top:10px;margin-bottom:36px}
.catalogue-page .quote-heading h1{font-size:clamp(34px,4vw,53px);line-height:1.08;letter-spacing:-.045em;max-width:17ch;margin-bottom:18px}
.catalogue-page .quote-heading p{font-size:14px;line-height:1.8;color:#607460;max-width:61ch}
.catalogue-page .quote-layout{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:45px;align-items:start}
.catalogue-page .quote-line{grid-template-columns:90px minmax(0,1fr) auto;gap:20px;padding-block:25px;border-color:#d9e2d3}
.catalogue-page .quote-line img{width:90px;height:104px;object-fit:contain;background:#edf1e7;border-radius:15px;padding:8px}
.catalogue-page .quote-line h2{font-size:19px;line-height:1.25;letter-spacing:-.025em;margin-bottom:9px;overflow-wrap:anywhere}
.catalogue-page .quote-line p{font-size:12px;line-height:1.7;color:#6a7c69}
.catalogue-page .quote-line .line-remove{font-size:11px;color:#796e62;min-height:30px;text-decoration:underline;text-underline-offset:3px}
.catalogue-page .quote-form{border-radius:26px;padding:28px;background:#e7eddf;box-shadow:inset 0 0 0 1px #193d2510}
.quote-form h2{font-size:25px;font-weight:500;letter-spacing:-.035em;line-height:1.15;margin:0 0 10px}
.quote-form>p{font-size:12px;line-height:1.7;color:#667963;margin-bottom:24px}
.quote-form label{display:block;font-size:12px;color:#34503a;margin-bottom:15px}
.quote-form label[for]{margin:17px 0 0}
.quote-form .field-pair label[for]{margin-top:17px}
.quote-cart-items>h2{font-size:26px;line-height:1.2;letter-spacing:-.035em;margin:8px 0 12px}
.quote-cart-items{min-width:0;padding:0;background:transparent;color:#193e2d}
.catalogue-page .quote-line .line-remove{background:transparent;border:0;padding:0;cursor:pointer;font-family:inherit}
.quote-cart-items>p:not(.label){font-size:13px;line-height:1.7;color:#697d66;max-width:55ch}
.quote-line-copy textarea{width:100%;min-height:67px;border:1px solid #d1ddc9;border-radius:10px;background:#fffefa;padding:10px 12px;font:inherit;font-size:12px;line-height:1.6;resize:vertical}
.quote-line-notes-label{display:block;font-size:11px;color:#5e755c;line-height:1.5;margin:13px 0 6px}
.quote-image-placeholder{display:grid;place-items:center;width:90px;height:104px;background:#edf1e7;border-radius:15px;color:#758570}
.quote-honeypot{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap}
.quote-form .form-note,.quote-form-note{font-size:11px!important;line-height:1.7!important;color:#6c7f67!important;margin-top:17px}
.quote-order-message{padding:15px;border-radius:12px;font-size:13px;line-height:1.8}
.quote-order-message--success{background:#e1ebd8;color:#1d4c30;border:1px solid #c9d9bd}
.quote-order-message--error{background:#f7e9df;color:#8d3b2e}
.quote-order-page [hidden]{display:none!important}
.quote-form input,.quote-form textarea{width:100%;border:1px solid #cbd8c4;border-radius:11px;padding:12px 13px;background:#fffefa;font:inherit;font-size:13px;line-height:1.5;color:#193d2a;margin-top:7px}
.quote-form textarea{resize:vertical;min-height:96px}
.quote-form .field-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.quote-form button[type=submit]{width:100%;justify-content:space-between;margin-top:7px;border:0;font:inherit;font-size:13px;cursor:pointer}
.quote-form button:disabled{opacity:.65;cursor:wait}
.quote-form [role=alert]{font-size:12px;line-height:1.6;color:#8d3b2e;background:#f7e9df;border-radius:10px;padding:12px;margin-bottom:14px}
.quote-success{padding:35px;border:1px solid #d1dfc8;border-radius:26px;background:#e8efdf;max-width:760px;margin-bottom:60px}
.quote-success h2{font-size:30px;letter-spacing:-.04em;line-height:1.15;margin:0 0 16px}
.quote-success p{font-size:14px;line-height:1.8;max-width:55ch;color:#536e53}
.quote-success .cat-button{margin-top:20px}
.quote-form [hidden],.product-purchase [hidden]{display:none!important}
.product-purchase :focus-visible,.quote-form :focus-visible,.quote-line :focus-visible{outline:2px solid #138751;outline-offset:3px}
@media(max-width:1000px){.catalogue-page .product-overview{grid-template-columns:1fr 1fr;gap:28px}.catalogue-page .product-purchase{padding:20px}.catalogue-page .product-order-row{gap:8px}.catalogue-page .product-order-row>.cat-button{padding-inline:15px}.catalogue-page .quote-layout{grid-template-columns:1fr;gap:28px}.catalogue-page .quote-form{max-width:none}}
@media(max-width:700px){.catalogue-page .product-overview{grid-template-columns:1fr;gap:25px}.catalogue-page .product-visual{aspect-ratio:1.12/1;border-radius:23px}.catalogue-page .product-visual img{padding:24px;max-height:420px}.catalogue-page .product-details h1{font-size:34px}.catalogue-page .product-purchase{padding:21px}.catalogue-page .product-order-row>.cat-button{padding-inline:21px}.catalogue-page .quote-line{grid-template-columns:75px minmax(0,1fr);gap:16px}.catalogue-page .quote-line img{width:75px;height:90px}.catalogue-page .quote-line>.quantity-control{grid-column:2;justify-self:start}.catalogue-page .quote-form{padding:23px}.quote-form .field-pair{grid-template-columns:1fr;gap:0}.product-request-note textarea,.quote-form input,.quote-form textarea,.quote-line-notes{font-size:16px}.quote-success{padding:26px}}
@media(prefers-reduced-motion:reduce){.catalogue-page .quantity-control button,.catalogue-page .product-order-row>.cat-button{transition:none}.catalogue-page .quantity-control button:active,.catalogue-page .product-order-row>.cat-button:active{transform:none}}

/* A direct phone order and a clear path to the combined quotation checkout. */
.catalogue-page .product-call-order{display:flex;width:100%;align-items:center;gap:12px;min-height:56px;justify-content:flex-start;margin:0 0 24px;padding:15px 20px;color:#123f2c;font-size:16px;font-weight:550;box-sizing:border-box}
.catalogue-page .product-call-order svg{width:22px;height:22px;flex:none}
.catalogue-page .product-call-number{margin-left:auto;font-size:13px;font-weight:500;white-space:nowrap}
.catalogue-page .product-purchase .product-price-block p{font-size:14px;color:#3f5b48;line-height:1.75}
.catalogue-page .purchase-quantity-label,.catalogue-page .purchase-cart-link,.catalogue-page .product-request-note summary{font-size:14px;color:#264c37}
.catalogue-page .product-order-note{font-size:13px;color:#46604c;line-height:1.8}
.quote-continue-shopping{display:inline-flex;align-items:center;min-height:44px;font-size:14px;color:#214e38;margin-bottom:18px;text-decoration:underline;text-underline-offset:4px}

/* Visible range searches sit above listings on every taxonomy template. */
.catalogue-range-search{display:block;width:100%;margin:0 0 34px;box-sizing:border-box}
.catalogue-range-search>label{display:block;font-size:15px;font-weight:550;color:#173e31;margin:0 0 12px;line-height:1.6}
.range-search-control{display:flex;gap:10px;align-items:stretch;min-width:0}
.catalogue-range-search .range-search-control input{flex:1;min-width:0;width:100%;height:58px;box-sizing:border-box;padding:15px 22px;border:1px solid #aebfa7;border-radius:999px;background:#fffefb;color:#173e31;font:inherit;font-size:16px;line-height:1.6}
.catalogue-range-search input::placeholder{color:#556452;opacity:1}
.range-search-control button{display:inline-flex;align-items:center;justify-content:center;gap:11px;padding:15px 25px;min-width:120px;border:0;border-radius:999px;background:#0b4b32;color:#fff;font:inherit;font-size:15px;font-weight:550;cursor:pointer;flex:none}
.range-search-control button .icon{width:20px;height:20px}
.catalogue-range-search :focus-visible{outline:2px solid #128553;outline-offset:3px}
.catalogue-range-search>p{font-size:14px;color:#405d47;margin-top:12px}
.combo-hero-copy .catalogue-range-search{margin-top:28px;margin-bottom:24px}
.filtered-listing .listing-hero-search{margin-top:28px;padding:23px 26px;background:#e5ecde;border-radius:23px}
.listing-sort-control{display:flex;align-items:center;gap:12px;flex:none;font-size:14px;color:#294e37}
.listing-sort-control select{min-height:46px;border:1px solid #bbccb1;border-radius:999px;background:#fffefb;padding:10px 32px 10px 15px;font:inherit;font-size:14px;color:#173e31}
.brand-directory-card[hidden]{display:none!important}
.catalogue-page .cat-search input{font-size:16px}
.catalogue-page .cat-search input::placeholder{color:#556452;opacity:1}

/* Readable forms at desktop and mobile sizes, including optional/helper text. */
.catalogue-page .quote-form label,.catalogue-page .quote-line-notes-label{font-size:15px;font-weight:550;color:#173e31;line-height:1.65}
.catalogue-page .quote-form label span{color:#405b49;font-size:14px;font-weight:400}
.catalogue-page .quote-form>p,.catalogue-page .quote-cart-items>p:not(.label){font-size:15px;color:#3d5947;line-height:1.8}
.catalogue-page .quote-form input,.catalogue-page .quote-form textarea,.catalogue-page .quote-line-copy textarea,.catalogue-page .product-request-note textarea{font-size:16px;line-height:1.65;color:#173e31;background:#fff;min-height:52px;border-color:#aaba9f}
.catalogue-page .quote-form input::placeholder,.catalogue-page .quote-form textarea::placeholder,.catalogue-page .quote-line-copy textarea::placeholder,.catalogue-page .product-request-note textarea::placeholder{color:#596653;opacity:1}
.catalogue-page .quote-form .form-note,.catalogue-page .quote-form-note{font-size:13px!important;color:#405a46!important;line-height:1.8!important}
.catalogue-page .quote-form button[type=submit]{font-size:16px;font-weight:550;min-height:54px}
@media(max-width:700px){.range-search-control{gap:8px}.range-search-control button{min-width:58px;width:58px;padding:15px}.range-search-control button span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.catalogue-range-search .range-search-control input{padding-left:18px}.filtered-listing .listing-hero-search{padding:21px 18px;margin-top:24px}.catalogue-page .product-call-order{padding:15px;font-size:15px;gap:9px}.catalogue-page .product-call-number{font-size:12px}.listing-sort-control{gap:8px}}
