/* DCJS desktop: editable presentation only. No hard-coded breakpoint.
   Prefer dcjs-search-desktop.custom.css for changes that must survive plugin updates. */
.dcjs-search-suggest { position:fixed; z-index:10050; box-sizing:border-box; overflow:auto; overscroll-behavior:contain;
    background:var(--dcjs-search-background,#ffffff); color:var(--dcjs-search-text-color,#222222);
    border:var(--dcjs-search-border-width,1px) solid var(--dcjs-search-border-color,#d1d5db);
    border-radius:var(--dcjs-search-radius,8px); box-shadow:var(--dcjs-search-shadow,0 4px 16px rgba(0,0,0,.16));
    font-size:var(--dcjs-search-font-size,14px); line-height:var(--dcjs-search-line-height,1.4);
    padding:var(--dcjs-search-padding-y,12px) var(--dcjs-search-padding-x,14px); }
.dcjs-search-suggest[hidden] { display:none !important; }
.dcjs-search-suggest *, .dcjs-search-suggest *::before, .dcjs-search-suggest *::after { box-sizing:border-box; }
.dcjs-search-suggest a { text-decoration:none; color:inherit; min-width:0; }
.dcjs-search-section { margin:0 0 var(--dcjs-search-section-gap,10px); }
.dcjs-search-section-title { color:var(--dcjs-search-heading-color,#444444); font-weight:600; padding:4px 0 8px; }
.dcjs-search-category { display:flex; flex-direction:column; justify-content:center; overflow-wrap:anywhere;
    min-height:var(--dcjs-search-category-min-height,36px); padding:4px 6px;
    border-bottom:1px solid var(--dcjs-search-separator-color,#e5e7eb); }
.dcjs-search-category-name { font-size:var(--dcjs-search-category-font-size,16px); font-weight:700; }
.dcjs-search-category-breadcrumb { display:block; opacity:.75; }
.dcjs-search-products { display:grid; min-width:0; }
.dcjs-search-products--rows { grid-template-columns:minmax(0,1fr); gap:var(--dcjs-search-gap,4px); }
.dcjs-search-product { min-width:0; overflow:hidden; transition:background-color .15s,box-shadow .15s; }
.dcjs-search-product:hover { background:var(--dcjs-search-hover-background,#f3f6f8); }
.dcjs-search-product--card:hover { box-shadow:var(--dcjs-search-card-hover-shadow,0 4px 12px rgba(0,0,0,.12)); }
.dcjs-search-product--row { display:flex; align-items:flex-start; flex-wrap:nowrap; min-height:max(var(--dcjs-search-row-height,80px),var(--dcjs-search-product-min-height,80px));
    border-bottom:1px solid var(--dcjs-search-separator-color,#e5e7eb); padding:6px; gap:var(--dcjs-search-image-gap,12px); }
.dcjs-search-product-link { display:flex; align-items:center; min-width:0; gap:var(--dcjs-search-image-gap,12px); flex:1 1 180px; }
.dcjs-search-product-content { display:flex; flex-direction:column; min-width:0; flex:1; }
.dcjs-search-product-image-container { flex:0 0 auto; width:var(--dcjs-search-image-size,72px); height:auto; aspect-ratio:var(--dcjs-search-image-format,1/1);
    position:relative; background:var(--dcjs-search-image-background,#ffffff); }
.dcjs-search-product-image { position:absolute; inset:0; width:100%; height:100%; object-fit:var(--dcjs-search-image-fit,contain); }
.dcjs-search-product--row .dcjs-search-product-link { flex:1 1 0; }
.dcjs-search-product-name { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:var(--dcjs-search-name-max-lines,3);
    overflow:hidden; overflow-wrap:anywhere; font-size:var(--dcjs-search-name-font-size,14px); }
.dcjs-search-match-label { display:block; overflow-wrap:anywhere; font-size:var(--dcjs-search-label-font-size,11px); }
.dcjs-search-price { font-weight:600; font-size:var(--dcjs-search-price-font-size,14px); margin-top:4px; }
.dcjs-search-price-group { display:flex; flex-wrap:wrap; align-items:baseline; min-width:0; gap:4px 6px; margin-top:4px; }
.dcjs-search-price-group .dcjs-search-price { margin-top:0; overflow-wrap:anywhere; }
.dcjs-search-tax { font-size:var(--dcjs-search-tax-font-size,11px); font-weight:400; overflow-wrap:anywhere; }
.dcjs-search-availability { display:block; font-size:var(--dcjs-search-availability-font-size,11px); overflow-wrap:anywhere; }
.dcjs-search-stock-icon { width:1.15em; height:1.15em; vertical-align:-.15em; margin-right:.3em; }
.dcjs-search-delivery-time:not(:first-child)::before { content:' · '; }
.dcjs-search-highlight { color:var(--dcjs-search-highlight-color,#8f4100); background:var(--dcjs-search-highlight-background,#fff1b8);
    padding:0; border-radius:2px; }
/* Cards use device-specific CSS variables, never an arbitrary inline column count. */
.dcjs-search-products--cards { grid-template-columns:repeat(var(--dcjs-cards-per-row,3),minmax(0,1fr));
    column-gap:var(--dcjs-search-card-gap-x,12px); row-gap:var(--dcjs-search-card-gap-y,12px); }
.dcjs-search-product--card { display:flex; flex-direction:column; min-height:var(--dcjs-search-card-min-height,280px);
    background:var(--dcjs-search-card-background,#ffffff); border:var(--dcjs-search-card-border-width,1px) solid var(--dcjs-search-card-border-color,#d1d5db);
    border-radius:var(--dcjs-search-card-radius,6px); box-shadow:var(--dcjs-search-card-shadow,none); padding:var(--dcjs-search-card-padding,12px); }
.dcjs-search-product--card .dcjs-search-product-link { flex-direction:column; align-items:stretch; flex:1 1 auto; }
.dcjs-search-product--card .dcjs-search-product-content { flex:1 1 auto; }
.dcjs-search-product--card .dcjs-search-price-group { margin-top:auto; padding-top:4px; }
/* Keep non-purchasable cards on the same price line as cards with direct-cart controls. */
.dcjs-search-products--cards:has(.dcjs-search-cart) .dcjs-search-product--card:not(:has(.dcjs-search-cart))::after {
    content:''; flex:0 0 auto; height:max(36px,var(--dcjs-search-quantity-height,36px)); margin-top:var(--dcjs-search-cart-margin-top,8px); }
.dcjs-search-product--card .dcjs-search-product-image-container { width:100%; max-height:var(--dcjs-search-image-height,160px);
    height:auto; aspect-ratio:var(--dcjs-search-image-format,1/1); }
.dcjs-search-suggest .dcjs-search-product--card form.dcjs-search-cart { flex:0 0 auto; flex-direction:row;
    flex-wrap:nowrap; justify-content:center; align-items:center; align-self:center; }
/* Outrank admorris' three-class :is(..., .form-basket) gallery rule without affecting cards. */
.dcjs-search-suggest .dcjs-search-product--row form.dcjs-search-cart { margin-top:0; flex:0 0 auto; flex-direction:row;
    flex-wrap:nowrap; align-items:flex-start; align-self:flex-start; }
.dcjs-search-cart { display:flex; align-items:center; flex-wrap:wrap; gap:var(--dcjs-search-cart-gap,8px);
    margin-top:var(--dcjs-search-cart-margin-top,8px); }
.dcjs-search-quantity { width:max(36px,var(--dcjs-search-quantity-width,36px)); max-width:100%; min-width:0;
    height:max(36px,var(--dcjs-search-quantity-height,36px)); border:1px solid var(--dcjs-search-border-color,#d1d5db); border-radius:4px; padding:4px; }
.dcjs-search-quantity { flex:0 1 auto; min-width:36px; text-align:center; font-size:18px; appearance:textfield; }
.dcjs-search-suggest .dcjs-search-quantity--decimal { font-size:var(--dcjs-search-quantity-decimal-font-size,14px); }
.dcjs-search-quantity::-webkit-inner-spin-button,
.dcjs-search-quantity::-webkit-outer-spin-button { appearance:none; margin:0; }
.dcjs-search-product--row .dcjs-search-add-to-cart { flex:0 1 auto; white-space:nowrap; }
.dcjs-search-add-to-cart { display:inline-flex; align-items:center; justify-content:center; flex:0 1 auto; min-width:36px;
    width:36px; height:max(36px,var(--dcjs-search-quantity-height,36px)); max-width:100%;
    border:0; border-radius:4px; padding:0; cursor:pointer;
    background:var(--dcjs-search-button-color,#404040); color:var(--dcjs-search-button-text-color,#ffffff); }
.dcjs-search-cart-icon { width:20px; height:20px; flex:none; pointer-events:none; }
.dcjs-search-add-to-cart:hover, .dcjs-search-add-to-cart:focus-visible { background:var(--dcjs-search-button-hover-color,#2d2d2d); }
.dcjs-search-add-to-cart:disabled { opacity:.6; cursor:wait; }
/* Quantity may be configured independently; the cart keeps its 36 px width. */
.dcjs-search-suggest form.dcjs-search-cart:has(.dcjs-search-quantity[type="number"]) { display:grid;
    grid-template-columns:minmax(36px,1fr) 36px;
    width:calc(max(36px,var(--dcjs-search-quantity-width,36px)) + 36px + var(--dcjs-search-cart-gap,8px)); max-width:100%; }
.dcjs-search-cart:has(.dcjs-search-quantity[type="number"]) > .dcjs-search-quantity,
.dcjs-search-cart:has(.dcjs-search-quantity[type="number"]) > .dcjs-search-add-to-cart { width:100%; }
/* Narrow minus/plus hug the input; the empty track separates the cart button. */
.dcjs-search-suggest form.dcjs-search-cart--stepper:has(.dcjs-search-quantity[type="number"]) {
    grid-template-columns:25px minmax(36px,1fr) 25px min(var(--dcjs-search-cart-gap,8px),max(0px,calc(100% - 122px))) 36px;
    column-gap:0;
    width:calc(max(36px,var(--dcjs-search-quantity-width,36px)) + 86px + var(--dcjs-search-cart-gap,8px)); }
.dcjs-search-cart--stepper > .dcjs-search-quantity-minus { grid-column:1; }
.dcjs-search-cart--stepper > .dcjs-search-quantity { grid-column:2; }
.dcjs-search-cart--stepper > .dcjs-search-quantity-plus { grid-column:3; }
.dcjs-search-cart--stepper > .dcjs-search-add-to-cart { grid-column:5; }
.dcjs-search-cart--stepper > .dcjs-search-quantity[type="number"] {
    border-radius:0; border-left:0; border-right:0; border-color:var(--dcjs-search-button-color,#404040); }
/* Oversized control settings must not consume the product link's text space. */
.dcjs-search-suggest .dcjs-search-product--row form.dcjs-search-cart.dcjs-search-cart--stepper {
    max-width:max(122px,calc(100% - max(180px,calc(var(--dcjs-search-image-size,72px) + var(--dcjs-search-image-gap,12px) + 96px)) - var(--dcjs-search-image-gap,12px))); }
.dcjs-search-product--row:has(.dcjs-search-cart--stepper) .dcjs-search-product-image-container {
    width:min(var(--dcjs-search-image-size,72px),max(0px,calc(100% - var(--dcjs-search-image-gap,12px) - 96px))); }
.dcjs-search-quantity-button { display:inline-flex; justify-content:center; align-items:center; width:25px; min-width:25px; max-width:25px;
    height:max(36px,var(--dcjs-search-quantity-height,36px)); padding:0; font-size:20px; cursor:pointer;
    border:0; border-radius:0;
    color:var(--dcjs-search-button-text-color,#ffffff); background:var(--dcjs-search-button-color,#404040); }
.dcjs-search-quantity-minus { border-radius:4px 0 0 4px; }
.dcjs-search-quantity-plus { border-radius:0 4px 4px 0; }
.dcjs-search-quantity-button:disabled { opacity:1; cursor:default; }
.dcjs-search-quantity-button:hover:not(:disabled), .dcjs-search-quantity-button:focus-visible { background:var(--dcjs-search-button-hover-color,#2d2d2d); }
.dcjs-search-cart > [role="status"] { grid-column:1 / -1; overflow-wrap:anywhere; }
.dcjs-search-product--card { container-type:inline-size; }
@container (max-width:121px) {
    .dcjs-search-products--cards:has(.dcjs-search-cart--stepper) .dcjs-search-product--card:not(:has(.dcjs-search-cart))::after {
        height:calc(2 * max(36px,var(--dcjs-search-quantity-height,36px)) + var(--dcjs-search-cart-gap,8px)); }
    .dcjs-search-suggest form.dcjs-search-cart--stepper:has(.dcjs-search-quantity[type="number"]) {
        grid-template-columns:25px minmax(36px,1fr) 25px;
        width:calc(max(36px,var(--dcjs-search-quantity-width,36px)) + 50px); }
    .dcjs-search-cart--stepper .dcjs-search-quantity-minus { grid-column:1; grid-row:1; }
    .dcjs-search-cart--stepper .dcjs-search-quantity-plus { grid-column:3; grid-row:1; }
    .dcjs-search-cart--stepper .dcjs-search-quantity { grid-column:2; grid-row:1; }
    .dcjs-search-cart--stepper .dcjs-search-add-to-cart { grid-column:1 / -1; grid-row:2; width:36px; justify-self:center; }
}
.dcjs-search-suggest a:not(.dcjs-search-product-link):hover { background:var(--dcjs-search-hover-background,#f3f6f8); }
.dcjs-search-category { transition:background-color .15s; }
.dcjs-search-suggest a:focus-visible, .dcjs-search-suggest a[aria-selected="true"] {
    background:var(--dcjs-search-hover-background,#f3f6f8); outline:2px solid var(--dcjs-search-highlight-color,#8f4100); outline-offset:-2px; }
.dcjs-search-all-results { display:block; text-align:center; font-weight:600; padding:12px 6px;
    border-top:1px solid var(--dcjs-search-separator-color,#e5e7eb); }
.dcjs-search-status { position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.dcjs-full-match { font-size: .85rem; line-height: 1.4; padding: .35rem .5rem; margin-bottom: .5rem; background: #f3f6f8; overflow-wrap: anywhere; }
.dcjs-full-match mark { background: #fff1b8; color: #8f4100; }
.dcjs-full-categories { margin: 1rem 0; }
.dcjs-full-categories ul { display: flex; flex-wrap: wrap; gap: .5rem 1rem; list-style: none; padding: .5rem 0; margin: 0; }
