/* Self-contained, lightweight storefront components; no global element overrides. */
.carter-cart-form{font:inherit;display:grid;gap:1rem;max-width:670px}
.carter-cart-item{min-width:0}
.carter-choice{display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,120px);gap:.4rem .9rem;align-items:end}
.carter-label{font:600 .9rem/1.4 system-ui,sans-serif;color:inherit;display:block}
.carter-select,.carter-quantity{font:inherit;min-height:44px;padding:.6rem;border:1px solid #8a9ca3;border-radius:8px;background:white;color:#1b3035;width:100%;min-width:0}
.carter-cart-form .carter-add,.carter-catalog-form .carter-add{font:600 1rem/1.4 system-ui,sans-serif;border:0;background:#136b68;color:white;border-radius:8px;padding:.8rem 1.4rem;min-height:44px;cursor:pointer;justify-self:start}
.carter-cart-form button:disabled{opacity:.55;cursor:wait}
.carter-status{font:.9rem/1.5 system-ui,sans-serif;margin:0;min-height:1em;color:#166054}
.carter-status[data-error="true"]{color:#a32030}
.carter-icon{font:inherit;display:inline-flex;align-items:center;gap:.4rem;border:0;background:transparent;color:inherit;padding:.4rem;cursor:pointer;min-height:44px}
.carter-badge{background:#c92a38;color:#fff;border-radius:999px;min-width:1.6em;text-align:center;padding:.15rem .4rem;font:700 .8rem/1.3 system-ui,sans-serif}
.carter-icon:focus-visible,.carter-cart-form :focus-visible,.carter-catalog-form :focus-visible{outline:3px solid #1968d2;outline-offset:3px}
@media(max-width:380px){.carter-choice{grid-template-columns:minmax(0,1fr)}}
/* 007: compact searchable product catalogue and contextual product options. */
.carter-cart-form,.carter-catalog-form{max-width:100%;gap:14px}
.carter-catalog-rows{display:grid;gap:16px}
.carter-product-row{border:1px solid #dce5e7;border-radius:12px;background:#fafdfd;padding:16px;display:grid;gap:11px;min-width:0}
.carter-row-head{display:flex;gap:10px;align-items:center;justify-content:space-between}
.carter-row-title{font-size:1rem}.carter-row-remove{border:0;background:none;color:#476f70;text-decoration:underline;text-underline-offset:3px;cursor:pointer;font:inherit;font-size:.8rem;min-height:36px}
.carter-row-inputs{display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:12px;align-items:end}
.carter-choose,.carter-quantity-wrap{display:grid;gap:5px;min-width:0}
.carter-search{min-height:44px;border:1px solid #8a9ca3;border-radius:8px;padding:9px 12px;font:inherit;min-width:0;background:#fff;color:#1b3035;width:100%}
.carter-modifier-panel:not(:empty){border-left:3px solid #307f7a;background:#eef7f5;padding:12px;display:grid;gap:8px;border-radius:0 7px 7px 0}
.carter-modifier-title{font-size:.88rem;color:#245b59}.carter-modifier-panel label{display:grid;gap:4px}
.carter-modifier{border:1px solid #8a9ca3;border-radius:8px;min-height:44px;padding:9px 12px;font:inherit;min-width:0;width:100%;background:#fff;color:#1b3035}
.carter-help{font-size:.81rem;color:#60747a;margin:0;min-height:1px}
.carter-cart-form .carter-more,.carter-catalog-form .carter-more{background:transparent;color:#12645f;font:inherit;border:1px dashed #98bcb6;border-radius:8px;padding:9px 16px;min-height:44px;justify-self:start;cursor:pointer}
.carter-row-inputs select{width:100%}
@media(max-width:520px){.carter-row-inputs{grid-template-columns:minmax(0,1fr)}.carter-quantity-wrap{max-width:130px}}

/* 008: visible keyboard-accessible catalogue results instead of an obscured native select dropdown. */
.carter-search-results{max-height:330px;overflow:auto;border:1px solid #cadbdc;border-radius:9px;background:#fff}
.carter-search-results[hidden],.carter-selected[hidden],.carter-select[hidden]{display:none!important}
.carter-result{display:flex;width:100%;gap:8px;align-items:center;justify-content:space-between;text-align:left;border:0;border-top:1px solid #eef1f2;background:#fff;color:#19323e;padding:10px 12px;min-height:48px;cursor:pointer;font:inherit}
.carter-result:hover,.carter-result:focus-visible{background:#e8f5f2;outline-offset:-3px}
.carter-result-name{font-weight:600}.carter-result-meta{font-size:.83rem;color:#516c70;white-space:nowrap}
.carter-result-note{padding:8px 12px;margin:0;background:#f1f8f6;font-size:.82rem;color:#48686b}
.carter-selected{display:grid;gap:2px;background:#edf7f5;border:1px solid #a4c8c1;border-radius:9px;padding:12px;font-size:.92rem}
.carter-selected span{font-size:.82rem;color:#476c6a}
.carter-options{display:grid;gap:9px}.carter-options summary{cursor:pointer}.carter-options label{margin-top:9px}
.carter-modifier-panel:has(> .carter-help){border-left:0;background:none;padding:0}
@media(max-width:630px){.carter-result{flex-wrap:wrap}.carter-result-meta{white-space:normal}}

/* 009: a selected product is compact; one click to choose another. */
.carter-change-product{justify-self:start;display:inline-block;border:0;background:transparent;color:#176b69;padding:7px 0;text-decoration:underline;cursor:pointer;min-height:38px;font:inherit;font-size:.9rem}
.carter-demo-colour,.carter-modifier{width:100%;min-height:44px;padding:9px 12px;border:1px solid #94aab0;border-radius:8px;background:white;color:#19323e;font:inherit}
.carter-options{display:grid;gap:10px;margin-top:10px}
.carter-options .carter-help{margin:0}
.carter-options label{display:grid;gap:5px}

.carter-result-notes{width:100%;font-size:.79rem;color:#657d7c;line-height:1.3}

/* Ensure hidden pickers stay hidden despite component display rules. */
.carter-catalog-form [hidden],.carter-cart-form [hidden]{display:none!important}
