/* Matches Block Shop's product and checkout button treatment. */
.dubble-o-quote-product-action { margin: 1.25rem 0; }
.dubble-o-quote-minimum { margin: 0 0 .75rem; color: #888; font-size: 15px; }
.dubble-o-button { -webkit-appearance: none; appearance: none; border: 0; border-radius: 0; box-shadow: none; cursor: pointer; display: inline-block; font: inherit; font-size: 16px; line-height: 1.2; margin: 0; outline-offset: 3px; padding: 18px 28px; text-align: center; text-decoration: none; transition: opacity .2s ease-in-out; }
.dubble-o-button--primary { background: #000; color: #fff; }
.dubble-o-button--primary:focus, .dubble-o-button--primary:hover { color: #fff; opacity: .8; }
.dubble-o-button--secondary { background: transparent; color: #000; padding: 18px 0; text-decoration: none; background-image: linear-gradient(to top, #000 1px, #000 1px, transparent 1px, transparent 1px); background-position: 0 100%; background-repeat: no-repeat; background-size: 100% 100%; transition: background-size .35s ease-in-out; }
.dubble-o-button--secondary:focus, .dubble-o-button--secondary:hover { background-size: 0 100%; color: #000; }
/* The primary treatment belongs on a single-product page only. */
.dubble-o-quote-trigger:not(.dubble-o-quote-trigger--loop) { min-height: 64px; padding: 0 32px; font-size: 18px; }
.dubble-o-quote-trigger:not(.dubble-o-quote-trigger--loop).is-added-to-quote-list { background: #888; }
.dubble-o-quote-trigger:not(.dubble-o-quote-trigger--loop).is-added-to-quote-list:focus, .dubble-o-quote-trigger:not(.dubble-o-quote-trigger--loop).is-added-to-quote-list:hover { background: #000; }
/* The loop class deliberately matches Block Shop's native Add to cart hover control. */
.products li .shop-product-box .product-info .dubble-o-quote-trigger--loop { border: 0; cursor: pointer; font: inherit; }
.dubble-o-quote-list-widget { position: fixed; text-align: center; z-index: 9997; }
.dubble-o-quote-list-widget--bottom-right { bottom: 1.25rem; right: 1.25rem; }
.dubble-o-quote-list-widget--top-right { right: 1.25rem; top: 1.25rem; }
.dubble-o-quote-list-widget--middle-right { right: 1.25rem; top: 50%; transform: translateY(-50%); }
.dubble-o-quote-list-widget--bottom-left { bottom: 1.25rem; left: 1.25rem; }
.dubble-o-quote-list-widget--top-left { left: 1.25rem; top: 1.25rem; }
.dubble-o-quote-list-widget--middle-left { left: 1.25rem; top: 50%; transform: translateY(-50%); }
.dubble-o-quote-list-button { box-shadow: 0 10px 24px rgba(0,0,0,.2); }
.dubble-o-quote-list-widget[hidden], .dubble-o-modal [hidden] { display: none !important; }
.dubble-o-quote-count { background: #fff; border-radius: 50%; color: #000; display: inline-grid; height: 1.45rem; margin-left: .45rem; min-width: 1.45rem; place-items: center; font-size: .82rem; }
.dubble-o-quote-list-toggle { background: transparent; border: 0; color: #000; cursor: pointer; display: block; font: inherit; font-size: 13px; margin: .45rem auto 0; padding: 0; text-decoration: underline; }
.dubble-o-quote-list-widget.is-collapsed .dubble-o-quote-list-button { border-radius: 50%; height: 3rem; min-width: 3rem; padding: 0; }
.dubble-o-quote-list-widget.is-collapsed .dubble-o-quote-list-label { display: none; }
.dubble-o-quote-list-widget.is-collapsed .dubble-o-quote-count { margin-left: 0; }
.dubble-o-modal { display: none; inset: 0; overflow-y: auto; padding: 1rem; position: fixed; z-index: 9999; }
.dubble-o-modal[aria-hidden="false"] { display: grid; place-items: center; }
.dubble-o-modal-open { overflow: hidden; }
.dubble-o-modal__backdrop { background: rgba(0,0,0,.55); inset: 0; position: fixed; }
.dubble-o-modal__panel { background: #fff; box-shadow: 0 20px 50px rgba(0,0,0,.25); max-height: calc(100vh - 2rem); max-width: 700px; overflow: auto; padding: clamp(1.5rem,4vw,2.5rem); position: relative; width: min(100%,700px); z-index: 1; }
.dubble-o-modal__panel--choice, .dubble-o-modal__panel--confirmation { width: min(100%,500px); }
.dubble-o-modal__panel h2 { color: #000; font-size: clamp(1.4rem,3vw,1.8rem); font-weight: 400; line-height: 1.25; margin: 0 2.5rem 1rem 0; }
.dubble-o-modal__panel p { color: #444; font-size: 16px; line-height: 1.55; }
.dubble-o-modal__intro { color: #888 !important; margin-top: 0; }
.dubble-o-modal__close { background: transparent; border: 0; color: #000; cursor: pointer; font-size: 2rem; line-height: 1; padding: .25rem; position: absolute; right: 1rem; top: 1rem; }
.dubble-o-quote-item { align-items: end; border-bottom: 1px solid #ddd; display: grid; gap: 1rem; grid-template-columns: minmax(0,1fr) 8rem auto; padding: 1rem 0; }
.dubble-o-quote-item strong, .dubble-o-quote-item span { display: block; }
.dubble-o-quote-item strong { color: #000; font-weight: 400; }
.dubble-o-quote-item span { color: #888; font-size: 13px; margin-top: .3rem; }
.dubble-o-quote-item label, .dubble-o-quote-fields label { color: #555; display: block; font-size: 14px; font-weight: 400; }
.dubble-o-quote-item input, .dubble-o-quote-fields input, .dubble-o-quote-fields textarea { background: transparent; border: 0; border-bottom: 1px solid #aaa; border-radius: 0; color: #000; display: block; font: inherit; margin-top: .45rem; padding: .6rem 0; width: 100%; }
.dubble-o-quote-item input:focus, .dubble-o-quote-fields input:focus, .dubble-o-quote-fields textarea:focus { border-bottom-color: #000; outline: 0; }
.dubble-o-remove-quote-item { background: transparent; border: 0; color: #000; cursor: pointer; font: inherit; font-size: 13px; padding: 0; text-decoration: underline; }
.dubble-o-quote-fields { display: grid; gap: 0 1.25rem; grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 1.5rem; }
.dubble-o-quote-fields p { margin: 0 0 1rem; }
.dubble-o-quote-fields p:last-child { grid-column: 1 / -1; }
.dubble-o-quote-error { color: #b91c1c !important; font-weight: 600; min-height: 1.25rem; margin: .5rem 0; }
.dubble-o-modal__actions { align-items: center; display: flex; flex-wrap: wrap; gap: 1.25rem; justify-content: flex-end; margin-top: 1.5rem; }
@media (max-width:600px) { .dubble-o-quote-item, .dubble-o-quote-fields { grid-template-columns: 1fr; } .dubble-o-quote-list-widget--bottom-right { bottom: .75rem; right: .75rem; } .dubble-o-quote-list-widget--top-right { right: .75rem; top: .75rem; } .dubble-o-quote-list-widget--middle-right { right: .75rem; } .dubble-o-quote-list-widget--bottom-left { bottom: .75rem; left: .75rem; } .dubble-o-quote-list-widget--top-left { left: .75rem; top: .75rem; } .dubble-o-quote-list-widget--middle-left { left: .75rem; } .dubble-o-modal__actions { align-items: stretch; flex-direction: column-reverse; } .dubble-o-modal__actions .dubble-o-button { width: 100%; } }
